llvmpipe: add a shortcut for blitter resolves

if this is only going to do a sample0 resolve, the functionality is
equivalent to just copying the first sample, and in llvmpipe terms,
this just means doing a direct copy at offset=0

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17705>
This commit is contained in:
Mike Blumenkrantz 2022-07-22 00:34:46 -04:00 committed by Marge Bot
parent 6064d838e7
commit f1ae6523b1
1 changed files with 11 additions and 0 deletions

View File

@ -127,6 +127,17 @@ static void lp_blit(struct pipe_context *pipe,
return; /* done */
}
if (blit_info->src.resource->format == blit_info->src.format &&
blit_info->dst.resource->format == blit_info->dst.format &&
blit_info->src.format == blit_info->dst.format &&
blit_info->src.resource->nr_samples > 1 &&
blit_info->dst.resource->nr_samples < 2 &&
blit_info->sample0_only) {
util_resource_copy_region(pipe, blit_info->dst.resource, blit_info->dst.level, blit_info->dst.box.x, blit_info->dst.box.y, blit_info->dst.box.z,
blit_info->src.resource, blit_info->src.level, &blit_info->src.box);
return;
}
if (!util_blitter_is_blit_supported(lp->blitter, &info)) {
debug_printf("llvmpipe: blit unsupported %s -> %s\n",
util_format_short_name(info.src.resource->format),