diff --git a/engine/include/XCEngine/RHI/D3D12/D3D12Enum.h b/engine/include/XCEngine/RHI/D3D12/D3D12Enum.h index f0dd8b03..0484507a 100644 --- a/engine/include/XCEngine/RHI/D3D12/D3D12Enum.h +++ b/engine/include/XCEngine/RHI/D3D12/D3D12Enum.h @@ -172,10 +172,20 @@ inline D3D12_RESOURCE_STATES ToD3D12(ResourceStates state) { case ResourceStates::CopySrc: return D3D12_RESOURCE_STATE_COPY_SOURCE; case ResourceStates::CopyDst: return D3D12_RESOURCE_STATE_COPY_DEST; case ResourceStates::Present: return D3D12_RESOURCE_STATE_PRESENT; + case ResourceStates::GenericRead: return D3D12_RESOURCE_STATE_GENERIC_READ; } return D3D12_RESOURCE_STATE_COMMON; } +inline D3D12_HEAP_TYPE ToD3D12(HeapType type) { + switch (type) { + case HeapType::Default: return D3D12_HEAP_TYPE_DEFAULT; + case HeapType::Upload: return D3D12_HEAP_TYPE_UPLOAD; + case HeapType::Readback: return D3D12_HEAP_TYPE_READBACK; + } + return D3D12_HEAP_TYPE_DEFAULT; +} + inline D3D12_PRIMITIVE_TOPOLOGY_TYPE ToD3D12(PrimitiveTopology topology) { switch (topology) { case PrimitiveTopology::PointList: return D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT; diff --git a/engine/include/XCEngine/RHI/Enums.h b/engine/include/XCEngine/RHI/Enums.h index 8d4b2484..f0b0917a 100644 --- a/engine/include/XCEngine/RHI/Enums.h +++ b/engine/include/XCEngine/RHI/Enums.h @@ -280,7 +280,15 @@ enum class ResourceStates : uint32_t { PixelShaderResource, CopySrc, CopyDst, - Present + Present, + GenericRead +}; + +enum class HeapType : uint8_t { + Default, + Upload, + Readback, + Custom }; } // namespace RHI