r600/compute: only mark buffer/image state dirty for fragment shaders
The compute emission path always emits this currently, and emitting it on the fragment path breaks the blitter. This fixes gpu hangs in KHR-GL45.compute_shader.resource-texture Reviewed-by: Roland Scheidegger <sorland@vmware.com> Cc: <mesa-stable@lists.freedesktop.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
@@ -4060,7 +4060,8 @@ static void evergreen_set_shader_buffers(struct pipe_context *ctx,
|
||||
r600_mark_atom_dirty(rctx, &rctx->cb_misc_state.atom);
|
||||
}
|
||||
|
||||
r600_mark_atom_dirty(rctx, &istate->atom);
|
||||
if (shader == PIPE_SHADER_FRAGMENT)
|
||||
r600_mark_atom_dirty(rctx, &istate->atom);
|
||||
}
|
||||
|
||||
static void evergreen_set_shader_images(struct pipe_context *ctx,
|
||||
@@ -4236,7 +4237,8 @@ static void evergreen_set_shader_images(struct pipe_context *ctx,
|
||||
r600_mark_atom_dirty(rctx, &rctx->cb_misc_state.atom);
|
||||
}
|
||||
|
||||
r600_mark_atom_dirty(rctx, &istate->atom);
|
||||
if (shader == PIPE_SHADER_FRAGMENT)
|
||||
r600_mark_atom_dirty(rctx, &istate->atom);
|
||||
}
|
||||
|
||||
static void evergreen_get_pipe_constant_buffer(struct r600_context *rctx,
|
||||
|
||||
Reference in New Issue
Block a user