public SynchronizedCommandQueue( ExecutionContext context, ComPtr <ID3D12CommandQueue> queue, ComPtr <ID3D12Fence> fence ) { Debug.Assert(queue.Exists); Debug.Assert(fence.Exists); _queue = queue; _fence = fence; _marker = new FenceMarker(FenceMarker.GetFirstFenceForExecutionContext(context), context); _queue.Get()->Signal(_fence.Get(), _marker.FenceValue); }
internal void Signal(ID3D12Fence *fence, FenceMarker marker) { _queue.Get()->Signal(fence, marker.FenceValue); }
internal GpuDispatchSynchronizer GetSynchronizer(FenceMarker fenceMarker) { return(new GpuDispatchSynchronizer(_fence.Copy(), fenceMarker)); }
/// <summary> /// Creates a new instance of <see cref="GpuDispatchSynchronizer"/> /// </summary> public GpuDispatchSynchronizer(ComPtr <ID3D12Fence> fence, FenceMarker completionValue) { _fence = fence; _completionValue = completionValue; }