vrend: Don't set resolve filter for non-RGBA buffers

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@chromium.org>
macos/master
Stéphane Marchesin 7 years ago committed by Dave Airlie
parent 26a7ca8fad
commit e4b943eeaf
  1. 3
      src/vrend_renderer.c

@ -5916,7 +5916,8 @@ static void vrend_renderer_blit_int(struct vrend_context *ctx,
use_gl = true; use_gl = true;
/* for scaled MS blits we either need extensions or hand roll */ /* 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 && src_res->base.nr_samples != dst_res->base.nr_samples &&
(info->src.box.width != info->dst.box.width || (info->src.box.width != info->dst.box.width ||
info->src.box.height != info->dst.box.height)) { info->src.box.height != info->dst.box.height)) {

Loading…
Cancel
Save