【发布时间】:2017-02-04 15:31:58
【问题描述】:
到目前为止,在我查看的示例中,一些命令类似于:
- D3D12_DESCRIPTOR_HEAP_DESC 与 D3D12_DESCRIPTOR_HEAP_TYPE::D3D12_DESCRIPTOR_HEAP_TYPE_RTV
- ID3D12Device::CreateDescriptorHeap
- D3D12_CPU_DESCRIPTOR_HANDLE 和 ID3D12DescriptorHeap::GetCPUDescriptorHandleForHeapStart(也可能是 ID3D12Device::GetDescriptorHandleIncrementSize)
- (可选?)ID3D12Device::CreateRenderTargetView
- (可选?)IDXGISwapChain3::GetBuffer
- 将渲染内容安排到命令列表,注意 OMSetRenderTargets 和 DrawInstanced,然后关闭命令列表。
- ID3D12CommandQueue::ExecuteCommandLists
- (可选?)IDXGISwapChain3::Present
- 在栅栏上使用 ID3D12CommandQueue::Signal 调度信号
- 等待 GPU 完成 ID3D12Fence::SetEventOnCompletion 和 WaitForSingleObjectEx
如果可能,如何将步骤 4.1 替换为选择的缓冲区? IE。如何创建一个 ID3D12Resource* 并呈现给它,然后从中读取一个 std::vector? (我假设是否可以忽略步骤 6.1,因为没有可供交换链呈现的渲染目标视图。在这种情况下,也许步骤 4 也是不必要的?也许只有 OMSetRenderTargets 很重要?)
【问题讨论】:
标签: directx-12