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@amd.com> Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Signed-off-by: Qiang Yu <yuq825@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13868>
This commit is contained in:
parent
391569e911
commit
24aa03e9e8
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue