24 [[nodiscard]] ComPtr<ID3D12Resource>
CreateBuffer(ID3D12Device* device, uint64_t sizeBytes,
BufferKind kind);
42 [[nodiscard]] uint32_t
SrvIndex(uint32_t shaderRegister)
const {
48 const RootSignatureLayout& layout);
51 ID3D12RootSignature* rootSignature,
52 std::span<const std::byte> bytecode);
55 [[nodiscard]] std::expected<std::vector<std::byte>, std::string>
LoadShader(std::string_view relativePath);
58 [[nodiscard]]
bool ReadBuffer(ID3D12Resource* readback, std::span<std::byte> destination);
61 [[nodiscard]] D3D12_RESOURCE_BARRIER
Transition(ID3D12Resource* resource, D3D12_RESOURCE_STATES before,
62 D3D12_RESOURCE_STATES after);
65 [[nodiscard]] D3D12_RESOURCE_BARRIER
UavBarrier(ID3D12Resource* resource);
68 void RecordCopyToReadback(ID3D12GraphicsCommandList* list, ID3D12Resource* source, ID3D12Resource* readback);
ComPtr< ID3D12RootSignature > CreateRootSignature(ID3D12Device *device, const RootSignatureLayout &layout)
std::expected< std::vector< std::byte >, std::string > LoadShader(std::string_view relativePath)
bool ReadBuffer(ID3D12Resource *readback, std::span< std::byte > destination)
ComPtr< ID3D12PipelineState > CreateComputePipeline(ID3D12Device *device, ID3D12RootSignature *rootSignature, std::span< const std::byte > bytecode)
D3D12_RESOURCE_BARRIER Transition(ID3D12Resource *resource, D3D12_RESOURCE_STATES before, D3D12_RESOURCE_STATES after)
ComPtr< ID3D12Resource > CreateBuffer(ID3D12Device *device, uint64_t sizeBytes, BufferKind kind)
void RecordCopyToReadback(ID3D12GraphicsCommandList *list, ID3D12Resource *source, ID3D12Resource *readback)
D3D12_RESOURCE_BARRIER UavBarrier(ID3D12Resource *resource)
uint32_t GraphTraceIndex() const
uint32_t DebugRingIndex() const
uint32_t SrvIndex(uint32_t shaderRegister) const
uint32_t RootConstantIndex() const
uint32_t GraphStatsIndex() const
uint32_t rootConstantCount