On Wed, Feb 29, 2012 at 11:52 AM, Marek Olšák <mar...@gmail.com> wrote: > Hi everyone, > > here's another series of patches for r600g. > > These 5 patches are mostly about improving queries: > r600g: move all query code into r600_query.c > r600g: release query buffers in destroy_query > r600g: don't suspend timer queries for u_blitter > r600g: correctly handle queries which don't need begin_query > r600g: remove obsolete todo comments > > These make changes to how we use the scissor registers and also fixing > GL_RASTERIZER_DISCARD. > r600g: rework scissor for evergreen > r600g: rework scissor for r600-r700 > r600g: make some scissor regs invariant on evergreen > r600g: make some scissor regs invariant on r600-r700 > r600g: rework rasterizer discard for evergreen > r600g: fix and improve rasterizer discard for r600-r700 > > Next up are small improvements to texturing. The support for new colorbuffer > formats also means blitting is fully accelerated on those (previously it > wasn't). > r600g: permit blitting between textures with STREAM and STAGING usage > r600g: remove support for SCALED colorbuffer formats > r600g: add support for missing texture formats > > These are mostly improvements to streamout. I am not sure whether > VS_GS_OUT_PRIM_TYPE should be initialized, I have done so just to be safe > because I am having some issues with streamout. > r600g: if pixel shader is NULL, bind a dummy one > r600g: initialize SX_SURFACE_SYNC > r600g: initialize VS_GS_OUT_PRIM_TYPE > r600g: initialize DB_DEPTH_CONTROL at beginning of CS > winsys/radeon: add usage parameter to cs_is_buffer_referenced > > The last 2 patches are the most important, but not yet working very well, so > I am not going to push them. > r600g: accelerate buffer copying > r600g: implement wait-free buffer transfer for DISCARD flags > > The problem is streamout is not reliable yet. Although all tests for > glCopyBufferSubData and all but 2 GL2 transform feedback piglit tests pass, I > have seen data corruption and lockups with Wine (even on RV670 and Evergreen, > which we thought worked well). Or there might be some other bug that we just > uncovered. > > Efficient handling of the DISCARD transfer flags is crucial for performance. > If those flags are ignored, both the CPU and the GPU may idle in the middle > of rendering (because of the GEM_WAIT_IDLE ioctl), which makes every other > optimization less useful. I have seen the last patch improve framerate in > Wine. > > Please review.
Looks good to me. Reviewed-by: Alex Deucher <alexander.deuc...@amd.com> > > src/gallium/drivers/r300/r300_transfer.c | 2 +- > src/gallium/drivers/r600/eg_sq.h | 2 +- > src/gallium/drivers/r600/evergreen_hw_context.c | 44 +-- > src/gallium/drivers/r600/evergreen_state.c | 260 +++++++----- > src/gallium/drivers/r600/evergreend.h | 9 + > src/gallium/drivers/r600/r600.h | 12 - > src/gallium/drivers/r600/r600_asm.c | 2 +- > src/gallium/drivers/r600/r600_blit.c | 82 +++-- > src/gallium/drivers/r600/r600_buffer.c | 65 +++- > src/gallium/drivers/r600/r600_hw_context.c | 451 +------------------- > src/gallium/drivers/r600/r600_pipe.c | 32 +- > src/gallium/drivers/r600/r600_pipe.h | 43 ++- > src/gallium/drivers/r600/r600_query.c | 514 > +++++++++++++++++++++-- > src/gallium/drivers/r600/r600_shader.c | 10 +- > src/gallium/drivers/r600/r600_state.c | 210 ++++++---- > src/gallium/drivers/r600/r600_state_common.c | 74 +++- > src/gallium/drivers/r600/r600_texture.c | 17 +- > src/gallium/drivers/r600/r600d.h | 9 + > src/gallium/winsys/radeon/drm/radeon_drm_cs.c | 18 +- > src/gallium/winsys/radeon/drm/radeon_winsys.h | 3 +- > 20 files changed, 1096 insertions(+), 763 deletions(-) > > Marek > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev