Path: blob/21.2-virgl/src/gallium/drivers/d3d12/d3d12_fence.h
4570 views
/*1* Copyright © Microsoft Corporation2*3* Permission is hereby granted, free of charge, to any person obtaining a4* copy of this software and associated documentation files (the "Software"),5* to deal in the Software without restriction, including without limitation6* the rights to use, copy, modify, merge, publish, distribute, sublicense,7* and/or sell copies of the Software, and to permit persons to whom the8* Software is furnished to do so, subject to the following conditions:9*10* The above copyright notice and this permission notice (including the next11* paragraph) shall be included in all copies or substantial portions of the12* Software.13*14* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR15* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,16* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL17* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER18* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING19* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS20* IN THE SOFTWARE.21*/2223#ifndef D3D12_FENCE_H24#define D3D12_FENCE_H2526#include "util/u_inlines.h"2728#ifndef _WIN3229#include <wsl/winadapter.h>30#endif3132#include <directx/d3d12.h>3334struct pipe_screen;35struct d3d12_screen;3637struct d3d12_fence {38struct pipe_reference reference;39ID3D12Fence *cmdqueue_fence;40HANDLE event;41int event_fd;42uint64_t value;43bool signaled;44};4546static inline struct d3d12_fence *47d3d12_fence(struct pipe_fence_handle *pfence)48{49return (struct d3d12_fence *)pfence;50}5152struct d3d12_fence *53d3d12_create_fence(struct d3d12_screen *screen, struct d3d12_context *ctx);5455void56d3d12_fence_reference(struct d3d12_fence **ptr, struct d3d12_fence *fence);5758bool59d3d12_fence_finish(struct d3d12_fence *fence, uint64_t timeout_ns);6061void62d3d12_screen_fence_init(struct pipe_screen *pscreen);6364#endif656667