diff options
author | Marek Olšák <[email protected]> | 2016-08-11 17:56:44 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2016-08-17 12:24:35 +0200 |
commit | a6b5845a0d7547198037a2e5ea5c7d3f6f5f9f26 (patch) | |
tree | 4d66155fbb48ffa8be0c5793e8670141d0ea2570 /src/gallium/drivers/radeonsi | |
parent | 9812a50ae682ac386c5745a3de978376aea861e7 (diff) |
radeonsi: use current context for DCC feedback-loop decompress, fixes Elemental
This is just a workaround. The problem is described in the code.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96541
v2: say that it's only between the current context and aux_context
Reviewed-by: Nicolai Hähnle <[email protected]> (v1)
Diffstat (limited to 'src/gallium/drivers/radeonsi')
-rw-r--r-- | src/gallium/drivers/radeonsi/si_blit.c | 12 | ||||
-rw-r--r-- | src/gallium/drivers/radeonsi/si_descriptors.c | 2 |
2 files changed, 5 insertions, 9 deletions
diff --git a/src/gallium/drivers/radeonsi/si_blit.c b/src/gallium/drivers/radeonsi/si_blit.c index f4bff6b5bb1..3cfd0114d51 100644 --- a/src/gallium/drivers/radeonsi/si_blit.c +++ b/src/gallium/drivers/radeonsi/si_blit.c @@ -557,10 +557,8 @@ static void si_check_render_feedback_textures(struct si_context *sctx, render_feedback = true; } - if (render_feedback) { - struct si_screen *screen = sctx->screen; - r600_texture_disable_dcc(&screen->b, tex); - } + if (render_feedback) + r600_texture_disable_dcc(&sctx->b, tex); } } @@ -599,10 +597,8 @@ static void si_check_render_feedback_images(struct si_context *sctx, render_feedback = true; } - if (render_feedback) { - struct si_screen *screen = sctx->screen; - r600_texture_disable_dcc(&screen->b, tex); - } + if (render_feedback) + r600_texture_disable_dcc(&sctx->b, tex); } } diff --git a/src/gallium/drivers/radeonsi/si_descriptors.c b/src/gallium/drivers/radeonsi/si_descriptors.c index 7600671d07e..1d04a9c6e4d 100644 --- a/src/gallium/drivers/radeonsi/si_descriptors.c +++ b/src/gallium/drivers/radeonsi/si_descriptors.c @@ -663,7 +663,7 @@ static void si_set_shader_image(struct si_context *ctx, * The decompression is relatively cheap if the surface * has been decompressed already. */ - if (r600_texture_disable_dcc(&screen->b, tex)) + if (r600_texture_disable_dcc(&ctx->b, tex)) uses_dcc = false; else ctx->b.decompress_dcc(&ctx->b.b, tex); |