33 lines
1.6 KiB
Markdown
33 lines
1.6 KiB
Markdown
# Juliet\src\Graphics\D3D12\D3D12Synchronization
|
|
|
|
## Source Files
|
|
- Header: `Juliet\src\Graphics\D3D12\D3D12Synchronization.h`
|
|
- Source: `Juliet\src\Graphics\D3D12\D3D12Synchronization.cpp`
|
|
|
|
## AI Description
|
|
This C++ component provides synchronization primitives for managing GPU operations in a DirectX 12 environment. It includes functions to wait until the GPU is idle, wait for multiple fences, query fence values, and release fences. The implementation uses a pool of available fences to efficiently manage resources and ensure that commands are executed on the correct GPU.
|
|
|
|
## Symbols
|
|
|
|
### Namespace `Juliet::D3D12`
|
|
|
|
#### Classes, Structs & Unions
|
|
- `struct D3D12Fence`
|
|
|
|
#### Functions & Methods
|
|
- `extern bool WaitUntilGPUIsIdle(NonNullPtr<GPUDriver> driver)`
|
|
- `extern bool Wait(NonNullPtr<GPUDriver> driver, bool waitForAll, Fence* const* fences,
|
|
uint32 numFences JULIET_DEBUG_PARAM(String querier))`
|
|
- `extern bool QueryFence(NonNullPtr<GPUDriver> driver, NonNullPtr<Fence> fence)`
|
|
- `extern void ReleaseFence(NonNullPtr<GPUDriver> driver, NonNullPtr<Fence> fence JULIET_DEBUG_PARAM(String querier))`
|
|
|
|
### Namespace `Juliet::D3D12::Internal`
|
|
|
|
#### Functions & Methods
|
|
- `extern void ResourceBarrier(NonNullPtr<D3D12CommandList> commandList, D3D12_RESOURCE_STATES sourceState,
|
|
D3D12_RESOURCE_STATES destinationState, ID3D12Resource* resource,
|
|
uint32 subresourceIndex, bool needsUavBarrier)`
|
|
- `extern D3D12Fence* AcquireFence(NonNullPtr<D3D12Driver> driver JULIET_DEBUG_PARAM(String querier))`
|
|
- `extern void DestroyFence(NonNullPtr<D3D12Fence> fence)`
|
|
|