summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/nvfx/nvfx_surface.c
AgeCommit message (Collapse)Author
2010-09-12nvfx: Move declaration before code.Vinson Lee
Fixes SCons build.
2010-09-05nvfx: switch to rules-ng-ng register headersLuca Barbieri
This is the new register generation toolkit in use by nouveau. As far as I know, this is the best register description toolkit in existence, and you should use it too for your hardware :) Thanks to Marcin Kościelnicki for inventing it and performing invaluable reverse engineering work of nVidia chips.
2010-09-05nvfx: pause occlusion queries during blitter usageLuca Barbieri
Thanks for Dave Airlie and Jerome Glisse for their code which made me realize I need this too.
2010-09-05nvfx: support using blitter to copy depth/stencil resources, fix HeavenLuca Barbieri
We might want to copy them as color ones though. Also works around crash in Unigine Heaven due to failing to allocate a 64 MB temporary in GART for a CPU copy. Unigine Heaven now works on nv40, albeit with very heavy glitches (with the floating branch with render_hdr 0).
2010-09-04nvfx: move 2D format selection logic to 2D codeLuca Barbieri
2010-09-04nvfx: fix swizzling of high bpp surfacesLuca Barbieri
2010-09-04nvfx: fix the temporary copying logic and add assertsLuca Barbieri
2010-09-04nvfx: allow nested blitter usage, fixing bug in clearLuca Barbieri
2010-08-28nvfx: Remove util_is_pot in favor of util_is_power_of_two.Vinson Lee
This is a follow up to commit 89b2897220acfacdc431f138377fbcec9f0ea812.
2010-08-23nvfx: Remove unnecessary headers.Vinson Lee
2010-08-21nvfx: Fix SCons build.Vinson Lee
Move declarations before code. Fix void pointer arithmetic.
2010-08-21nvfx: rewrite draw code and buffer codeLuca Barbieri
This is a full rewrite of the drawing and buffer management logic. It offers a lot of improvements: 1. A copy of buffers is now always kept in system memory. This is necessary to allow software processing of them, which is necessary or improves performance in many cases. 2. Support for pushing vertices on the FIFO, with index lookup if necessary. 3. "Smart" draw code that tries to intelligently choose the cheapest way to draw something: whether to use inline vertices or hardware vertex buffer, and whether to use hardware index buffers 4. Support for all vertex formats supported by the hardware 5. Usage of translate to push vertices, supporting all formats that are sensible to use as vertex formats 6. Support for base vertex 7. Usage of Ben Skeggs' primitive splitter originally for nv50, allowing correct splitting of line loops, triangle fans, etc. 8. Support for instancing 9. Precomputation using the vertex elements CSO Thanks to Ben Skeggs for his primitive splitter originally for nv50. Thanks to Christoph Bumiller for his nv50 push code, that was the basis of this work, even though I changed his code dramatically, in particular to replace his ad-hoc vertex data emitter with translate. The changes could also go into nv50 too, but there are substantial differences due to the additional nv50 hardware features.
2010-08-21nvfx: new 2D: use a CPU copy for up to 4 pixels, up from 0Luca Barbieri
Seems a reasonable threshold for now. Significantly speeds up Piglit's 1x1 glReadPixels (but, you know, reading pixels in 1x1 blocks is NOT a good idea, especially if you might be running on a less-than-perfect driver).
2010-08-21nvfx: new 2D: new render temporaries with resourcesLuca Barbieri
This patch adds support for creating temporary surfaces to allow rendering to surfaces that cannot be rendered to. It uses the _second_ version of the render temporary infrastructure. This is necessary for swizzled 3D textures and small mipmaps of swizzled 2D textures. This version of the patch creates a resource to use as a temporary instead of a raw BO, making the code simpler.
2010-08-21nvfx: new 2D: use new 2D engine in GalliumLuca Barbieri
This patch implements nv04_surface_copy/fill using the new 2D engine module. It supports falling back to the 3D engine using the u_blitter module, which will be added in a later patch. Also adds support for using the 3D engine, reusing the u_blitter module created for r300. This is used for unswizzling and copies between swizzled surfaces.
2010-06-09nvfx: fix typo from gallium-msaa mergeBen Skeggs
2010-06-03gallium: rename clearRT / clearDS to clear_render_target / clear_depth_stencilRoland Scheidegger
more consistent with rest of gallium naming conventions. Also rename driver-internal names for these the same.
2010-05-29nvfx: adapt to clear interface changesRoland Scheidegger
2010-05-17nouveau: adapt to interface changesRoland Scheidegger
this probably needs further cleanup (just getting a surface for the resource seems quite nonoptimal and potentially cause unnecessary copies I think)
2010-04-17nvfx: Remove unnecessary headers.Vinson Lee
2010-03-15nv30, nv40: unify nv[34]0_query.cLuca Barbieri
The files are identical except formatting.