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 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev