summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/radeonsi
diff options
context:
space:
mode:
authorSamuel Pitoiset <[email protected]>2017-04-06 00:07:33 +0200
committerSamuel Pitoiset <[email protected]>2017-04-10 23:05:32 +0200
commit6646212de0b1a1b8161c46f6191a21b1540f2dd4 (patch)
tree7cb218fefbcc00baffa6827799aa0c2ff272b03c /src/gallium/drivers/radeonsi
parent9cc91ba6d5fafa5435ff4b6081f731acc99af47f (diff)
radeonsi: add new depth_needs_decompression() helper
v2: - rename to depth_needs_decompression() instead Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/gallium/drivers/radeonsi')
-rw-r--r--src/gallium/drivers/radeonsi/si_descriptors.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/gallium/drivers/radeonsi/si_descriptors.c b/src/gallium/drivers/radeonsi/si_descriptors.c
index 703a7cb1fa8..47e455f9bc7 100644
--- a/src/gallium/drivers/radeonsi/si_descriptors.c
+++ b/src/gallium/drivers/radeonsi/si_descriptors.c
@@ -559,6 +559,13 @@ static bool is_compressed_colortex(struct r600_texture *rtex)
(rtex->dcc_offset && rtex->dirty_level_mask);
}
+static bool depth_needs_decompression(struct r600_texture *rtex,
+ struct si_sampler_view *sview)
+{
+ return rtex->db_compatible &&
+ (!rtex->tc_compatible_htile || sview->is_stencil_sampler);
+}
+
static void si_update_compressed_tex_shader_mask(struct si_context *sctx,
unsigned shader)
{
@@ -602,8 +609,7 @@ static void si_set_sampler_views(struct pipe_context *ctx,
(struct r600_texture*)views[i]->texture;
struct si_sampler_view *rview = (struct si_sampler_view *)views[i];
- if (rtex->db_compatible &&
- (!rtex->tc_compatible_htile || rview->is_stencil_sampler)) {
+ if (depth_needs_decompression(rtex, rview)) {
samplers->depth_texture_mask |= 1u << slot;
} else {
samplers->depth_texture_mask &= ~(1u << slot);