vrend: chain conditions for using gl-based blitter

Once we know the GL shader-based blitter is needed, there's no need
test remaining conditions.

Signed-off-by: Ryan Neph <ryanneph@google.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
macos/master
Ryan Neph 3 years ago
parent 0f1a55f1ea
commit 738db75c66
  1. 27
      src/vrend_renderer.c

@ -8884,31 +8884,30 @@ static void vrend_renderer_blit_int(struct vrend_context *ctx,
src_y2 = src_res->base.height0 - info->src.box.y; src_y2 = src_res->base.height0 - info->src.box.y;
} }
if (use_gl) {;}
/* GLES generally doesn't support blitting to a multi-sample FB, and also not /* GLES generally doesn't support blitting to a multi-sample FB, and also not
* from a multi-sample FB where the regions are not exatly the same or the * from a multi-sample FB where the regions are not exatly the same or the
* source and target format are different. For * source and target format are different. For
* downsampling DS blits to zero samples we solve this by doing two blits */ * downsampling DS blits to zero samples we solve this by doing two blits */
if (vrend_state.use_gles && else if (vrend_state.use_gles &&
((dst_res->base.nr_samples > 0) || ((dst_res->base.nr_samples > 0) ||
((info->mask & PIPE_MASK_RGBA) && ((info->mask & PIPE_MASK_RGBA) &&
(src_res->base.nr_samples > 0) && (src_res->base.nr_samples > 0) &&
(info->src.box.x != info->dst.box.x || (info->src.box.x != info->dst.box.x ||
info->src.box.width != info->dst.box.width || info->src.box.width != info->dst.box.width ||
dst_y1 != src_y1 || dst_y2 != src_y2 || dst_y1 != src_y1 || dst_y2 != src_y2 ||
info->src.format != info->dst.format)) info->src.format != info->dst.format))
) )
) { ) {
VREND_DEBUG(dbg_blit, ctx, "Use GL fallback because dst:ms:%d src:ms:%d (%d %d %d %d) -> (%d %d %d %d)\n", VREND_DEBUG(dbg_blit, ctx, "Use GL fallback because dst:ms:%d src:ms:%d (%d %d %d %d) -> (%d %d %d %d)\n",
dst_res->base.nr_samples, src_res->base.nr_samples, info->src.box.x, info->src.box.x + info->src.box.width, dst_res->base.nr_samples, src_res->base.nr_samples, info->src.box.x, info->src.box.x + info->src.box.width,
src_y1, src_y2, info->dst.box.x, info->dst.box.x + info->dst.box.width, dst_y1, dst_y2); src_y1, src_y2, info->dst.box.x, info->dst.box.x + info->dst.box.width, dst_y1, dst_y2);
use_gl = true; use_gl = true;
} }
/* for 3D mipmapped blits - hand roll time */ /* for 3D mipmapped blits - hand roll time */
if (info->src.box.depth != info->dst.box.depth) else if (info->src.box.depth != info->dst.box.depth)
use_gl = true; use_gl = true;
else if (vrend_blit_needs_swizzle(info->dst.format, info->src.format))
if (vrend_blit_needs_swizzle(info->dst.format, info->src.format))
use_gl = true; use_gl = true;
if (has_feature(feat_texture_view)) if (has_feature(feat_texture_view))

Loading…
Cancel
Save