diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c index 74bf8182b4a..4f88635e7e4 100644 --- a/src/gallium/drivers/r600/r600_shader.c +++ b/src/gallium/drivers/r600/r600_shader.c @@ -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)