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