- Updated dependencies, including `Misaki.HighPerformance` and `TerraFX.Interop`. - Refactored `Result` struct for better error handling and chaining. - Removed `Ptr<T>` struct as it was no longer necessary. - Enhanced `Win32Utility` with `Attach` and `Dispose` methods. - Improved `ProjectService` and `AppStateMachine` with `Result` integration. - Refactored `IShaderCompiler` to support SPIR-V cross-compilation and pass-level compilation. - Standardized Direct3D12 resource management with `UniquePtr` and added `D3D12Object` base class. - Improved shader reflection validation and pipeline creation in `D3D12PipelineLibrary`. - Updated `SDLCompiler` for better error handling during shader generation. - Enhanced logging, debugging, and code readability across the codebase. - Performed general code cleanup, including unused namespace removal and naming consistency.
51 lines
1.4 KiB
C#
51 lines
1.4 KiB
C#
namespace Ghost.Graphics.RHI;
|
|
|
|
/// <summary>
|
|
/// Command queue interface
|
|
/// </summary>
|
|
public interface ICommandQueue : IDisposable
|
|
{
|
|
/// <summary>
|
|
/// Type of commands this queue can execute
|
|
/// </summary>
|
|
public CommandQueueType Type
|
|
{
|
|
get;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Submits a single command buffer for execution
|
|
/// </summary>
|
|
/// <param name="commandBuffer">Command buffer to submit</param>
|
|
public void Submit(ICommandBuffer commandBuffer);
|
|
|
|
/// <summary>
|
|
/// Submits multiple command buffers for execution
|
|
/// </summary>
|
|
/// <param name="commandBuffers">Command buffers to submit</param>
|
|
public void Submit(params ReadOnlySpan<ICommandBuffer> commandBuffers);
|
|
|
|
/// <summary>
|
|
/// Signals a fence with the specified Value
|
|
/// </summary>
|
|
/// <param name="value">Value to signal</param>
|
|
/// <returns>The fence Value that was signaled</returns>
|
|
public ulong Signal(ulong value);
|
|
|
|
/// <summary>
|
|
/// Waits for the fence to reach the specified Value
|
|
/// </summary>
|
|
/// <param name="value">Value to wait for</param>
|
|
public void WaitForValue(ulong value);
|
|
|
|
/// <summary>
|
|
/// Gets the last completed fence Value
|
|
/// </summary>
|
|
/// <returns>Last completed fence Value</returns>
|
|
public ulong GetCompletedValue();
|
|
|
|
/// <summary>
|
|
/// Waits until all submitted commands have finished executing
|
|
/// </summary>
|
|
public void WaitIdle();
|
|
} |