[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