[Mesa-dev] [PATCH 2/3] meta: Recompile msaa color resolve shader when the sample count changes

Anuj Phogat anuj.phogat at gmail.com
Thu Aug 28 16:48:16 PDT 2014


Currently, BLIT_MSAA_SHADER_2D_MULTISAMPLE_RESOLVE* and
BLIT_MSAA_SHADER_2D_MULTISAMPLE_ARRAY_RESOLVE* shaders
in setup_glsl_msaa_blit_shader() are not recompiled
when the source buffer sample count changes.

Fixes following piglit tests on Broadwell:
ext_framebuffer_multisample-accuracy all_samples color
ext_framebuffer_multisample-accuracy all_samples depth_draw
ext_framebuffer_multisample-accuracy all_samples depth_resolve
ext_framebuffer_multisample-accuracy all_samples stencil_draw
ext_framebuffer_multisample-accuracy all_samples stencil_resolve
ext_framebuffer_multisample-formats all_samples

Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
---
 src/mesa/drivers/common/meta_blit.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/mesa/drivers/common/meta_blit.c b/src/mesa/drivers/common/meta_blit.c
index 0785ddd..1c2d8c1 100644
--- a/src/mesa/drivers/common/meta_blit.c
+++ b/src/mesa/drivers/common/meta_blit.c
@@ -147,7 +147,9 @@ setup_glsl_msaa_blit_shader(struct gl_context *ctx,
       shader_index == BLIT_MSAA_SHADER_2D_MULTISAMPLE_ARRAY_DEPTH_COPY ||
       shader_index == BLIT_MSAA_SHADER_2D_MULTISAMPLE_DEPTH_COPY;
 
-   if (blit->msaa_shaders[shader_index]) {
+   if (blit->msaa_shaders[shader_index] &&
+       (is_shader_msaa_depth_resolve_or_copy ||
+        blit->samples == samples)) {
       _mesa_UseProgram(blit->msaa_shaders[shader_index]);
       return;
    }
-- 
1.9.3



More information about the mesa-dev mailing list