Major overhaul of GPU resource/heap management: - Replace resource pooling and upload buffer logic with transient heap/page-based suballocation in ResourceManager. - Add support for suballocation and heap flags/types, with D3D12 helpers. - Remove ICommandBuffer.UploadBuffer/UploadTexture; add UpdateSubResources and CopyBuffer, move upload logic to RenderingContext. - Refactor D3D12ResourceAllocator/Database for suballocation, heap flags, and mapping. - Standardize on Handle<GPUBuffer> usage. - Update meshlet/mesh utilities for new allocation handles and memory pools. - Refactor RenderGraph and docs to use "heap" terminology. - Use cpuFrame/gpuFrame consistently for frame sync. - Add s2h.hlsl, s2h_3d.hlsl, s2h_scatter.hlsl shader debug libs. - Miscellaneous fixes, cleanup, and dependency updates. BREAKING CHANGE: Resource pooling and upload APIs replaced with new heap/page-based suballocation system. Update all buffer/texture creation and upload code to use new ResourceManager and ICommandBuffer methods.
51 lines
975 B
C#
51 lines
975 B
C#
using Ghost.Core;
|
|
|
|
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>
|
|
ICommandQueue GraphicsQueue
|
|
{
|
|
get;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Compute command queue for compute shader operations
|
|
/// </summary>
|
|
ICommandQueue ComputeQueue
|
|
{
|
|
get;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Copy command queue for data transfer operations
|
|
/// </summary>
|
|
ICommandQueue CopyQueue
|
|
{
|
|
get;
|
|
}
|
|
|
|
FeatureSupport FeatureSupport
|
|
{
|
|
get;
|
|
}
|
|
} |