When the current bound shaders don't use any bindless textures or images, it's useless to decompress the resident resources.
Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com> --- src/gallium/drivers/radeonsi/si_blit.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_blit.c b/src/gallium/drivers/radeonsi/si_blit.c index 3aee0f4fc8..96b3cc56fc 100644 --- a/src/gallium/drivers/radeonsi/si_blit.c +++ b/src/gallium/drivers/radeonsi/si_blit.c @@ -793,8 +793,10 @@ void si_decompress_graphics_textures(struct si_context *sctx) si_decompress_textures(sctx, u_bit_consecutive(0, SI_NUM_GRAPHICS_SHADERS)); - si_decompress_resident_textures(sctx); - si_decompress_resident_images(sctx); + if (si_graphics_uses_bindless_samplers(sctx)) + si_decompress_resident_textures(sctx); + if (si_graphics_uses_bindless_images(sctx)) + si_decompress_resident_images(sctx); } void si_decompress_compute_textures(struct si_context *sctx) @@ -804,8 +806,10 @@ void si_decompress_compute_textures(struct si_context *sctx) si_decompress_textures(sctx, 1 << PIPE_SHADER_COMPUTE); - si_decompress_resident_textures(sctx); - si_decompress_resident_images(sctx); + if (si_compute_uses_bindless_samplers(sctx)) + si_decompress_resident_textures(sctx); + if (si_compute_uses_bindless_images(sctx)) + si_decompress_resident_images(sctx); } static void si_clear(struct pipe_context *ctx, unsigned buffers, -- 2.13.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev