[Mesa-dev] [PATCH 0/2] [RFC] r600g: improve handling of the shader exports

Vadim Girlin vadimgirlin at gmail.com
Fri Jun 22 07:02:00 PDT 2012


  r600g: avoid unnecessary shader exports
  r600g: enable DUAL_EXPORT mode when possible

First patch fixes the lockups with DUAL_EXPORT mode for me, also AFAICS it
fixes some depth/stencil tests, though I'm not sure why, haven't looked
into it (possibly unexpected color exports were written over the depth 
exports).

Second patch enables DUAL_EXPORT mode when possible, giving about 40% 
improvement with the results of the "fill" demo (on juniper). Also it sets
DB_SOURCE_FORMAT to the EXPORT_DB_TWO when in DUAL_EXPORT mode, though I'm not sure yet if it has any effect on performance.

I haven't tried to implement the same for pre-evergreen cards - I can't test it
anyway without r600 hw, but I guess it shouldn't be hard. AFAIK there will be
additional requirements for DUAL_EXPORT mode for r6xx (it's documented in the 
R6xx_3D_Registers.pdf).

There are no regressions with piglit on evergreen (juniper).

 src/gallium/drivers/r600/evergreen_state.c   |   56 ++++++++++++++++++++------
 src/gallium/drivers/r600/evergreend.h        |    7 ++++
 src/gallium/drivers/r600/r600_pipe.h         |    5 +++
 src/gallium/drivers/r600/r600_shader.c       |   25 ++++++++++--
 src/gallium/drivers/r600/r600_shader.h       |    7 +++-
 src/gallium/drivers/r600/r600_state_common.c |    7 +++-
 6 files changed, 88 insertions(+), 19 deletions(-)

-- 
1.7.10.4



More information about the mesa-dev mailing list