mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-18 19:10:32 +01:00
zink: add a pipe_context::fence_server_sync hook
Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9626>
This commit is contained in:
parent
6d005ba3fc
commit
49efef9d55
3 changed files with 20 additions and 0 deletions
|
|
@ -2340,6 +2340,7 @@ zink_context_create(struct pipe_screen *pscreen, void *priv, unsigned flags)
|
|||
|
||||
ctx->base.draw_vbo = zink_draw_vbo;
|
||||
ctx->base.launch_grid = zink_launch_grid;
|
||||
ctx->base.fence_server_sync = zink_fence_server_sync;
|
||||
ctx->base.flush = zink_flush;
|
||||
ctx->base.memory_barrier = zink_memory_barrier;
|
||||
ctx->base.texture_barrier = zink_texture_barrier;
|
||||
|
|
|
|||
|
|
@ -158,6 +158,22 @@ fence_finish(struct pipe_screen *pscreen, struct pipe_context *pctx,
|
|||
timeout_ns);
|
||||
}
|
||||
|
||||
void
|
||||
zink_fence_server_sync(struct pipe_context *pctx, struct pipe_fence_handle *pfence)
|
||||
{
|
||||
struct zink_fence *fence = zink_fence(pfence);
|
||||
|
||||
if (pctx && fence->deferred_ctx == pctx)
|
||||
return;
|
||||
|
||||
if (fence->deferred_ctx) {
|
||||
zink_curr_batch(zink_context(pctx))->has_work = true;
|
||||
/* this must be the current batch */
|
||||
pctx->flush(pctx, NULL, 0);
|
||||
}
|
||||
zink_fence_finish(zink_screen(pctx->screen), pctx, fence, PIPE_TIMEOUT_INFINITE);
|
||||
}
|
||||
|
||||
void
|
||||
zink_screen_fence_init(struct pipe_screen *pscreen)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -64,6 +64,9 @@ bool
|
|||
zink_fence_finish(struct zink_screen *screen, struct pipe_context *pctx, struct zink_fence *fence,
|
||||
uint64_t timeout_ns);
|
||||
|
||||
void
|
||||
zink_fence_server_sync(struct pipe_context *pctx, struct pipe_fence_handle *pfence);
|
||||
|
||||
void
|
||||
zink_screen_fence_init(struct pipe_screen *pscreen);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue