Mesa (main): virgl/vtest: use correct resource stride in flush_frontbuffer

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sat Dec 11 18:09:49 UTC 2021


Module: Mesa
Branch: main
Commit: b6d04470272666de9cba86326e544436ee7eebb5
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b6d04470272666de9cba86326e544436ee7eebb5

Author: Italo Nicola <italonicola at collabora.com>
Date:   Fri Jul  9 07:47:29 2021 -0300

virgl/vtest: use correct resource stride in flush_frontbuffer

The displaytarget's resource stride is alignment is currently 64-bytes,
where the shared resource stride is unaligned.

Signed-off-by: Italo Nicola <italonicola at collabora.com>
Reviewed-by: Gert Wollny <gert.wollny at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11714>

---

 src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.c b/src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.c
index b452637c194..1d7fb623118 100644
--- a/src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.c
+++ b/src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.c
@@ -628,7 +628,8 @@ static void virgl_vtest_flush_frontbuffer(struct virgl_winsys *vws,
 
    if (sub_box) {
       box = *sub_box;
-      offset = box.y / util_format_get_blockheight(res->format) * res->stride +
+      uint32_t shm_stride = util_format_get_stride(res->format, res->width);
+      offset = box.y / util_format_get_blockheight(res->format) * shm_stride +
                box.x / util_format_get_blockwidth(res->format) * util_format_get_blocksize(res->format);
    } else {
       box.z = layer;



More information about the mesa-commit mailing list