llvmpipe: allow resource_copy_region to perform replicate operations

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-02-22 12:28:45 -05:00 committed by Marge Bot
parent 8563a95bd7
commit f2f517b315
1 changed files with 4 additions and 3 deletions

View File

@ -51,10 +51,10 @@ lp_resource_copy_ms(struct pipe_context *pipe,
src_format = src->format;
for (unsigned i = 0; i < src->nr_samples; i++) {
for (unsigned i = 0; i < MAX2(src->nr_samples, dst->nr_samples); i++) {
struct pipe_transfer *src_trans, *dst_trans;
const uint8_t *src_map = llvmpipe_transfer_map_ms(pipe,
src, 0, PIPE_MAP_READ, i,
src, 0, PIPE_MAP_READ, MIN2(i, src->nr_samples - 1),
src_box,
&src_trans);
if (!src_map)
@ -103,7 +103,8 @@ lp_resource_copy(struct pipe_context *pipe,
"blit src");
if (dst->nr_samples > 1 &&
dst->nr_samples == src->nr_samples) {
(dst->nr_samples == src->nr_samples ||
(src->nr_samples == 1 && dst->nr_samples > 1))) {
lp_resource_copy_ms(pipe, dst, dst_level, dstx, dsty, dstz,
src, src_level, src_box);
return;