- 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.
44 lines
902 B
C#
44 lines
902 B
C#
namespace Ghost.Graphics.RHI;
|
|
|
|
[Flags]
|
|
public enum FeatureSupport
|
|
{
|
|
None = 0,
|
|
RayTracing = 1 << 0,
|
|
VariableRateShading = 1 << 1,
|
|
MeshShaders = 1 << 2,
|
|
SamplerFeedback = 1 << 3,
|
|
BindlessResources = 1 << 4,
|
|
}
|
|
|
|
/// <summary>
|
|
/// D3D12-native render device interface for creating graphics resources
|
|
/// </summary>
|
|
public interface IRenderDevice : IDisposable
|
|
{
|
|
/// <summary>
|
|
/// Graphics command queue for rendering operations
|
|
/// </summary>
|
|
public ICommandQueue GraphicsQueue
|
|
{
|
|
get;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Compute command queue for compute shader operations
|
|
/// </summary>
|
|
public ICommandQueue ComputeQueue
|
|
{
|
|
get;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Copy command queue for data transfer operations
|
|
/// </summary>
|
|
public ICommandQueue CopyQueue
|
|
{
|
|
get;
|
|
}
|
|
|
|
public FeatureSupport GetFeatureSupport();
|
|
} |