mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 11:48:06 +02:00
d3d12: Implement server signal/wait
Reviewed-by: Bill Kristiansen <billkris@microsoft.com> Reviewed-by: Giancarlo Devich <gdevich@microsoft.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17446>
This commit is contained in:
parent
416f10fc3f
commit
ea243ef1d5
1 changed files with 22 additions and 0 deletions
|
|
@ -2141,6 +2141,25 @@ d3d12_flush_resource(struct pipe_context *pctx,
|
|||
d3d12_apply_resource_states(ctx, false);
|
||||
}
|
||||
|
||||
static void
|
||||
d3d12_signal(struct pipe_context *pipe,
|
||||
struct pipe_fence_handle *pfence)
|
||||
{
|
||||
struct d3d12_screen *screen = d3d12_screen(pipe->screen);
|
||||
struct d3d12_fence *fence = d3d12_fence(pfence);
|
||||
d3d12_flush_cmdlist(d3d12_context(pipe));
|
||||
screen->cmdqueue->Signal(fence->cmdqueue_fence, fence->value);
|
||||
}
|
||||
|
||||
static void
|
||||
d3d12_wait(struct pipe_context *pipe, struct pipe_fence_handle *pfence)
|
||||
{
|
||||
struct d3d12_screen *screen = d3d12_screen(pipe->screen);
|
||||
struct d3d12_fence *fence = d3d12_fence(pfence);
|
||||
d3d12_flush_cmdlist(d3d12_context(pipe));
|
||||
screen->cmdqueue->Wait(fence->cmdqueue_fence, fence->value);
|
||||
}
|
||||
|
||||
static void
|
||||
d3d12_init_null_sampler(struct d3d12_context *ctx)
|
||||
{
|
||||
|
|
@ -2496,6 +2515,9 @@ d3d12_context_create(struct pipe_screen *pscreen, void *priv, unsigned flags)
|
|||
ctx->base.flush = d3d12_flush;
|
||||
ctx->base.flush_resource = d3d12_flush_resource;
|
||||
|
||||
ctx->base.fence_server_signal = d3d12_signal;
|
||||
ctx->base.fence_server_sync = d3d12_wait;
|
||||
|
||||
ctx->base.memory_barrier = d3d12_memory_barrier;
|
||||
|
||||
ctx->base.get_sample_position = d3d12_get_sample_position;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue