summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r600/r600_state_common.c
AgeCommit message (Collapse)Author
2011-02-14r600g: do not destroy the original index buffer when translating indicesMarek Olšák
Because we only translate a subrange of the buffer.
2011-02-07r600g: Add support for relative addressing on constant buffers.Henri Verbeet
Relative addressing of constant buffers can't work properly through the kcache, since you can only address within the currently locked kcache window. Instead, this patch binds the constant buffer as a shader resource, and then explicitly fetches the constant using a vertex fetch with fetch type VTX_FETCH_NO_INDEX_OFFSET from the shader. There's probably still some room for improvement, doing the fetch right before the instruction that needs the value may not be quite optimal for example.
2011-02-07r600g: Generalize the pipe_add_vertex_attrib() functions.Henri Verbeet
This allows them to be used for VS or PS buffer resources as well.
2011-02-07r600g: Remove vs_resource and ps_resource from the pipe context.Henri Verbeet
These are practically unused, only the vs_resource array is being abused for fetch shader resources.
2011-02-07r600g: use the new vertex buffer managerMarek Olšák
2011-02-03r600g: rework dirty / depth texture tracking.Dave Airlie
this adds a flag to keep track of whether the depth texture structure is the flushed texture or not, so we can avoid doing flushes when we do a hw rendering from one to the other. it also renames flushed to dirty_db which tracks if the DB copy has been dirtied by being bound to the hw. Signed-off-by: Dave Airlie <airlied@redhat.com>
2011-01-31r600g: fix invalid ref count handling in r600_set_constant_bufferChristian König
Only decrement ref count if r600_upload_const_buffer really changes the buffer.
2011-01-30r600g: Update the flushed depth texture after drawing to the corresponding ↵Henri Verbeet
texture. I know Jerome will probably rewrite the way depth textures work sometime soon. For the time being this should at least make common depth texture usage for shadowing work properly though.
2011-01-30r600g: rework vertex format fallbackMarek Olšák
1) Only translate the [min_index, max_index] range. 2) Upload translated vertices via the uploader.
2011-01-30r600g: fix vertex format fallbackMarek Olšák
This fixes: - piglit/draw-vertices - piglit/draw-vertices-half-float
2011-01-30r600g: rework vertex buffer uploadsMarek Olšák
Only upload the [min_index, max_index] range instead of [0, userbuf_size]. This an important optimization. Framerate in Lightsmark: Before: 22 fps After: 75 fps The same optimization is already in r300g.
2011-01-30r600g: consolidate set_constant_buffer functionsMarek Olšák
2011-01-30r600g: consolidate vertex_buffer_update functionsMarek Olšák
2011-01-30r600g: consolidate draw_vbo functions (v2)Marek Olšák
Added a conditional to spi_update per Dave's comment.
2011-01-30r600g: add back u_upload_mgr integrationMarek Olšák
I can't see a performance difference with this code, which means all the driver-specific code removed in this commit was unnecessary. Now we use u_upload_mgr in a slightly different way than we did before it got dropped. I am not restoring the original code "as is" due to latest u_upload_mgr changes that r300g performance benefits from. This also fixes: - piglit/fp-kil
2010-12-22r600g: fix evergreen segfaults.Dave Airlie
evergreen was crashing running even gears here. This is a 7.10 candidate if its broken the same. Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-12-20r600g: properly unset vertex bufferJerome Glisse
Fix bug http://bugs.freedesktop.org/show_bug.cgi?id=32455 Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-12-14r600g: fix segfault when translating vertex bufferJerome Glisse
Note the support for non float vertex draw likely regressed need to find what we want to do there. candidates for 7.10 branches Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-12-12r600g: fix rendering with a vertex attrib having a zero strideAlex Deucher
The hardware supports zero stride just fine. This is a port of 2af8a1983180fc0168c1e0e53bcc69ee3d684ea4 from r300g. NOTE: This is a candidate for both the 7.9 and 7.10 branches. Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
2010-12-06r600g: avoid useless shader rebuild at draw callJerome Glisse
Avoid rebuilding constant shader state at each draw call, factor out spi update that might change at each draw call. Best would be to update spi only when revealent states change (likely only flat shading & sprite point). Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-12-06r600g: build fetch shader from vertex elementsJerome Glisse
Vertex elements change are less frequent than draw call, those to avoid rebuilding fetch shader to often build the fetch shader along vertex elements. This also allow to move vertex buffer setup out of draw path and make update to it less frequent. Shader update can still be improved to only update SPI regs (based on some rasterizer state like flat shading or point sprite ...). Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-12-03r600g: update polygon offset only when rasterizer or zbuffer changeJerome Glisse
Aim is to build as little state as possible in draw functions. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-11-17r600g: code cleanup (indent, trailing space, empty line ...)Jerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-10-24r600g: drop more common state handling codeDave Airlie
2010-10-24r600g: merge more of the common r600/evergreen state handlingDave Airlie
2010-10-24r600g: Fixed r600_vertex_element leak.Tilman Sauerbeck
Signed-off-by: Tilman Sauerbeck <tilman@code-monkey.de> Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-10-21r600g: start splitting out common code from eg/r600.Dave Airlie
no point duplicating code that doesn't touch hw, also make it easier to spot mistakes