namespace Ghost.Graphics.RHI; /// /// D3D12-style command queue interface /// public interface ICommandQueue : IDisposable { /// /// Type of commands this queue can execute /// CommandQueueType Type { get; } /// /// Submits a single command buffer for execution /// /// Command buffer to submit void Submit(ICommandBuffer commandBuffer); /// /// Submits multiple command buffers for execution /// /// Command buffers to submit void Submit(ICommandBuffer[] commandBuffers); /// /// Signals a fence with the specified value /// /// Value to signal /// The fence value that was signaled ulong Signal(ulong value); /// /// Waits for the fence to reach the specified value /// /// Value to wait for void WaitForValue(ulong value); /// /// Gets the last completed fence value /// /// Last completed fence value ulong GetCompletedValue(); } /// /// Command queue types matching D3D12 /// public enum CommandQueueType { Graphics, Compute, Copy }