summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2022-04-21 09:49:31 +1000
committerDylan Baker <dylan.c.baker@intel.com>2022-04-21 21:03:07 -0700
commit048813108f6369ac800321c7b71ecfa2ec205cdd (patch)
treec48fe54db2d79d17d085604b10f599ed65db1b9a
parent05296c5f2712a76115fd7054113386fb411e2cba (diff)
u_blitter/stencil: take dstbox x/y into accounts for dst fb width
When setting the dst framebuffer width height, it might be silly to constrain this beyond the dst resource, but at least constrain it correctly to take account of x/y offsets. This fixes some uses of this as a fallback for zink with GTF-GL46.gtf30.GL3Tests.framebuffer_blit.framebuffer_blit_functionality_stencil_blit Fixes: b4c07a8a87d0 ("gallium/util: allow scaling blits for stencil-fallback") Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16069> (cherry picked from commit dbc264f50418306650e9ec5a0b8613fe0aabb228)
-rw-r--r--.pick_status.json2
-rw-r--r--src/gallium/auxiliary/util/u_blitter.c4
2 files changed, 3 insertions, 3 deletions
diff --git a/.pick_status.json b/.pick_status.json
index e78c4b58bfa..8090635d7f1 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -116,7 +116,7 @@
"description": "u_blitter/stencil: take dstbox x/y into accounts for dst fb width",
"nominated": true,
"nomination_type": 1,
- "resolution": 0,
+ "resolution": 1,
"because_sha": "b4c07a8a87d06f2c347f204cac9fe708428e272d"
},
{
diff --git a/src/gallium/auxiliary/util/u_blitter.c b/src/gallium/auxiliary/util/u_blitter.c
index 593f8951a13..d6f0be54442 100644
--- a/src/gallium/auxiliary/util/u_blitter.c
+++ b/src/gallium/auxiliary/util/u_blitter.c
@@ -2937,8 +2937,8 @@ util_blitter_stencil_fallback(struct blitter_context *blitter,
/* set a framebuffer state */
struct pipe_framebuffer_state fb_state = { 0 };
- fb_state.width = dstbox->width;
- fb_state.height = dstbox->height;
+ fb_state.width = dstbox->x + dstbox->width;
+ fb_state.height = dstbox->y + dstbox->height;
fb_state.zsbuf = dst_view;
pipe->set_framebuffer_state(pipe, &fb_state);
pipe->set_sample_mask(pipe, ~0);