Mesa (main): loader/dri3: fix piglit egl-copy-buffer test

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Nov 30 02:32:39 UTC 2021


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

Author: Qiang Yu <yuq825 at gmail.com>
Date:   Fri Nov 19 09:24:38 2021 +0800

loader/dri3: fix piglit egl-copy-buffer test

In the test no front buffer has been allocated on the client
side, so we get a segfault when access it directly.

eglCopyBuffers() just need to do server side copy, so we don't
really need to create a client side front buffer to perform
the copy.

Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>
Signed-off-by: Qiang Yu <yuq825 at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13868>

---

 src/loader/loader_dri3_helper.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/loader/loader_dri3_helper.c b/src/loader/loader_dri3_helper.c
index b9019b6cd25..fb8abde944a 100644
--- a/src/loader/loader_dri3_helper.c
+++ b/src/loader/loader_dri3_helper.c
@@ -894,13 +894,19 @@ loader_dri3_copy_drawable(struct loader_dri3_drawable *draw,
 {
    loader_dri3_flush(draw, __DRI2_FLUSH_DRAWABLE, __DRI2_THROTTLE_COPYSUBBUFFER);
 
-   dri3_fence_reset(draw->conn, dri3_fake_front_buffer(draw));
+   struct loader_dri3_buffer *front = dri3_fake_front_buffer(draw);
+   if (front)
+      dri3_fence_reset(draw->conn, front);
+
    dri3_copy_area(draw->conn,
                   src, dest,
                   dri3_drawable_gc(draw),
                   0, 0, 0, 0, draw->width, draw->height);
-   dri3_fence_trigger(draw->conn, dri3_fake_front_buffer(draw));
-   dri3_fence_await(draw->conn, draw, dri3_fake_front_buffer(draw));
+
+   if (front) {
+      dri3_fence_trigger(draw->conn, front);
+      dri3_fence_await(draw->conn, draw, front);
+   }
 }
 
 void



More information about the mesa-commit mailing list