namespace Ghost.Graphics.RHI; /// /// Command queue interface /// public interface ICommandQueue : IDisposable { /// /// Type of commands this queue can execute /// public CommandQueueType Type { get; } /// /// Submits a single command buffer for execution /// /// Command buffer to submit public void Submit(ICommandBuffer commandBuffer); /// /// Submits multiple command buffers for execution /// /// Command buffers to submit public void Submit(params ReadOnlySpan commandBuffers); /// /// Signals a fence with the specified value /// /// Value to signal /// The fence value that was signaled public ulong Signal(ulong value); /// /// Waits for the fence to reach the specified value /// /// Value to wait for public void WaitForValue(ulong value); /// /// Gets the last completed fence value /// /// Last completed fence value public ulong GetCompletedValue(); /// /// Waits until all submitted commands have finished executing /// public void WaitIdle(); }