mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 03:08:05 +02:00
virgl: Don't try handling server fences when they are not supported
vtest doesn't implement the according API and would segfault:
Program received signal SIGSEGV, Segmentation fault.
#0 0x0000000000000000 in ?? ()
#1 in virgl_fence_server_sync at
src/gallium/drivers/virgl/virgl_context.c:1049
#2 in st_server_wait_sync at
src/mesa/state_tracker/st_cb_syncobj.c:155
so just don't do the call when the function pointers are not set.
Fixes dEQP:
dEQP-GLES3.functional.fence_sync.wait_sync_smalldraw
dEQP-GLES3.functional.fence_sync.wait_sync_largedraw
Fixes: d1a1c21e76
virgl: native fence fd support
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Robert Foss <robert.foss@collabora.com>
This commit is contained in:
parent
073fdd7382
commit
091295d7cb
1 changed files with 4 additions and 2 deletions
|
|
@ -1037,7 +1037,8 @@ static void virgl_create_fence_fd(struct pipe_context *ctx,
|
|||
assert(type == PIPE_FD_TYPE_NATIVE_SYNC);
|
||||
struct virgl_screen *rs = virgl_screen(ctx->screen);
|
||||
|
||||
*fence = rs->vws->cs_create_fence(rs->vws, fd);
|
||||
if (rs->vws->cs_create_fence)
|
||||
*fence = rs->vws->cs_create_fence(rs->vws, fd);
|
||||
}
|
||||
|
||||
static void virgl_fence_server_sync(struct pipe_context *ctx,
|
||||
|
|
@ -1046,7 +1047,8 @@ static void virgl_fence_server_sync(struct pipe_context *ctx,
|
|||
struct virgl_context *vctx = virgl_context(ctx);
|
||||
struct virgl_screen *rs = virgl_screen(ctx->screen);
|
||||
|
||||
rs->vws->fence_server_sync(rs->vws, vctx->cbuf, fence);
|
||||
if (rs->vws->fence_server_sync)
|
||||
rs->vws->fence_server_sync(rs->vws, vctx->cbuf, fence);
|
||||
}
|
||||
|
||||
static void virgl_set_shader_images(struct pipe_context *ctx,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue