summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/radeonsi
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2016-08-11 17:56:44 +0200
committerMarek Olšák <[email protected]>2016-08-17 12:24:35 +0200
commita6b5845a0d7547198037a2e5ea5c7d3f6f5f9f26 (patch)
tree4d66155fbb48ffa8be0c5793e8670141d0ea2570 /src/gallium/drivers/radeonsi
parent9812a50ae682ac386c5745a3de978376aea861e7 (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.c12
-rw-r--r--src/gallium/drivers/radeonsi/si_descriptors.c2
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);