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>
(cherry picked from commit ab5cee4c24)
This commit is contained in:
Dave Airlie 2018-02-05 10:14:19 +10:00 committed by Emil Velikov
parent dd2ea3a3e9
commit ec2b454d86

View file

@ -4059,7 +4059,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,
@ -4235,7 +4236,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);
}
void evergreen_init_state_functions(struct r600_context *rctx)