[virglrenderer-devel] [PATCH] vrend: Don't set resolve filter for non-RGBA buffers

Stéphane Marchesin marcheu at chromium.org
Sat Mar 24 06:46:42 UTC 2018


When we blit between depth or stencil buffers, but MSAA is enabled,
we can hit that path and set the GL_SCALED_RESOLVE_NICEST_EXT. This
causes the blit to fail. Fix this by not going in that path for
depth/stencil buffers.

Fixes:
dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_color
dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_depth
dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_stencil
dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_msaa_color
dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_msaa_depth
dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_msaa_stencil

Signed-off-by: Stéphane Marchesin <marcheu at chromium.org>
---
 src/vrend_renderer.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/vrend_renderer.c b/src/vrend_renderer.c
index 3d3bcc1..061e50e 100644
--- a/src/vrend_renderer.c
+++ b/src/vrend_renderer.c
@@ -5916,7 +5916,8 @@ static void vrend_renderer_blit_int(struct vrend_context *ctx,
       use_gl = true;
 
    /* for scaled MS blits we either need extensions or hand roll */
-   if (src_res->base.nr_samples > 1 &&
+   if (info->mask & PIPE_MASK_RGBA &&
+       src_res->base.nr_samples > 1 &&
        src_res->base.nr_samples != dst_res->base.nr_samples &&
        (info->src.box.width != info->dst.box.width ||
         info->src.box.height != info->dst.box.height)) {
-- 
2.17.0.rc0.231.g781580f067-goog



More information about the virglrenderer-devel mailing list