r600: Don't use SB with R600 style scratch reads

SB fails when handling indirect READ_SCRATCH commands.

Fixes: 1d871aa626
   r600g: Implement spilling of temp arrays (v2)

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18130>
(cherry picked from commit ebcd8c51dc)
This commit is contained in:
Gert Wollny 2022-08-16 10:33:36 +02:00 committed by Dylan Baker
parent 08b7aa08e5
commit 7e7a085317
2 changed files with 4 additions and 1 deletions

View file

@ -148,7 +148,7 @@
"description": "r600: Don't use SB with R600 style scratch reads",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "1d871aa6268159cdc63ef846599456d9ba567206"
},

View file

@ -260,6 +260,9 @@ int r600_pipe_shader_create(struct pipe_context *ctx,
use_sb &= !shader->shader.uses_images;
use_sb &= !shader->shader.uses_helper_invocation;
/* SB can't handle READ_SCRATCH properly */
use_sb &= !(shader->shader.needs_scratch_space && rscreen->b.gfx_level < R700);
/* sb has bugs in array reg allocation
* (dEQP-GLES2.functional.shaders.struct.local.struct_array_dynamic_index_fragment
* with NTT)