Major architecture upgrade: - Add native render pass merging (hardware pass grouping, load/store op inference) - Implement heap-based aliasing for textures & buffers (D3D12-style) - Unify resource model: buffers and textures in one registry - Extend builder API for buffer creation/usage, access flags, hints - Improve barrier/state tracking (buffer hints, indirect argument state) - Update caching, hashing, and debug output for new model - Add enums/structs: AttachmentLoadOp, StoreOp, BufferHint, etc. - D3D12 backend: support named resources, temp upload buffers, correct heap usage - Update docs, benchmarks, and project files for new features Brings render graph closer to AAA engine standards, enabling efficient memory usage, lower driver overhead, and a more flexible API.
49 lines
984 B
C#
49 lines
984 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,
|
|
WorkGraphs = 1 << 5,
|
|
AliasBuffersAndTextures = 1 << 6,
|
|
}
|
|
|
|
/// <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 FeatureSupport
|
|
{
|
|
get;
|
|
}
|
|
} |