r600: enable sb by default also for NIR

Currently, the NIR code path doesn't use clause local registers,
but these seem to help a lot with some work loads.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Filip Gawin <filip@gawin.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17076>
This commit is contained in:
Gert Wollny
2022-05-18 22:29:06 +02:00
committed by Marge Bot
parent 79ca456b48
commit e562fde86a
+3 -2
View File
@@ -179,8 +179,8 @@ int r600_pipe_shader_create(struct pipe_context *ctx,
pipe_shader_type_from_mesa(sel->nir->info.stage);
bool dump = r600_can_dump_shader(&rctx->screen->b, processor);
unsigned use_sb = !(rctx->screen->b.debug_flags & (DBG_NO_SB | DBG_NIR)) ||
(rctx->screen->b.debug_flags & DBG_NIR_SB);
unsigned use_sb = !(rctx->screen->b.debug_flags & DBG_NO_SB) ||
(rctx->screen->b.debug_flags & DBG_NIR_SB);
unsigned sb_disasm;
unsigned export_shader;
@@ -263,6 +263,7 @@ int r600_pipe_shader_create(struct pipe_context *ctx,
* with NTT)
*/
use_sb &= !(shader->shader.indirect_files & (1 << TGSI_FILE_TEMPORARY));
use_sb &= !(shader->shader.indirect_files & (1 << TGSI_FILE_CONSTANT));
/* sb has scheduling assertion fails with interpolate_at. */
use_sb &= !shader->shader.uses_interpolate_at_sample;