[Mesa-dev] [PATCH 1/6] radeonsi: fix a u_blitter crash after a shader with FBFETCH
Marek Olšák
maraeo at gmail.com
Fri Jan 11 23:53:34 UTC 2019
From: Marek Olšák <marek.olsak at amd.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108877
Cc: 18.3 <mesa-stable at lists.freedesktop.org>
---
src/gallium/drivers/radeonsi/si_state_shaders.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c b/src/gallium/drivers/radeonsi/si_state_shaders.c
index 2adae673808..007175d3bbe 100644
--- a/src/gallium/drivers/radeonsi/si_state_shaders.c
+++ b/src/gallium/drivers/radeonsi/si_state_shaders.c
@@ -1650,21 +1650,21 @@ static inline void si_shader_selector_key(struct pipe_context *ctx,
sel->info.uses_linear_centroid +
sel->info.uses_linear_sample > 1;
if (sel->info.opcode_count[TGSI_OPCODE_INTERP_SAMPLE])
key->mono.u.ps.interpolate_at_sample_force_center = 1;
}
key->part.ps.epilog.alpha_func = si_get_alpha_test_func(sctx);
/* ps_uses_fbfetch is true only if the color buffer is bound. */
- if (sctx->ps_uses_fbfetch) {
+ if (sctx->ps_uses_fbfetch && !sctx->blitter->running) {
struct pipe_surface *cb0 = sctx->framebuffer.state.cbufs[0];
struct pipe_resource *tex = cb0->texture;
/* 1D textures are allocated and used as 2D on GFX9. */
key->mono.u.ps.fbfetch_msaa = sctx->framebuffer.nr_samples > 1;
key->mono.u.ps.fbfetch_is_1D = sctx->chip_class != GFX9 &&
(tex->target == PIPE_TEXTURE_1D ||
tex->target == PIPE_TEXTURE_1D_ARRAY);
key->mono.u.ps.fbfetch_layered = tex->target == PIPE_TEXTURE_1D_ARRAY ||
tex->target == PIPE_TEXTURE_2D_ARRAY ||
--
2.17.1
More information about the mesa-dev
mailing list