Método ID3D12Device::CreateQueryHeap (d3d12.h)
Crea un montón de consultas. Un montón de consultas contiene una matriz de consultas.
Sintaxis
HRESULT CreateQueryHeap(
[in] const D3D12_QUERY_HEAP_DESC *pDesc,
REFIID riid,
[out, optional] void **ppvHeap
);
Parámetros
[in] pDesc
Tipo: const D3D12_QUERY_HEAP_DESC*
Especifica el montón de consultas en una estructura de D3D12_QUERY_HEAP_DESC .
riid
Tipo: REFIID
Especifica un REFIID que identifica de forma única el montón.
[out, optional] ppvHeap
Tipo: void**
Especifica un puntero al montón, que se devolverá cuando se complete correctamente el método. ppvHeap puede ser NULL para habilitar las pruebas de funcionalidad. Cuando ppvHeap es NULL, no se creará ningún objeto y S_FALSE se devolverá cuando pDesc sea válido.
Valor devuelto
Tipo: HRESULT
Este método devuelve uno de los códigos de retorno de Direct3D 12.
Comentarios
Consulte Consultas para obtener más información.
Ejemplos
El ejemplo D3D12PredicationQueries usa ID3D12Device::CreateQueryHeap de la siguiente manera:
Cree un montón de consultas y un búfer de resultados de la consulta.
// Pipeline objects.
D3D12_VIEWPORT m_viewport;
D3D12_RECT m_scissorRect;
ComPtr<IDXGISwapChain3> m_swapChain;
ComPtr<ID3D12Device> m_device;
ComPtr<ID3D12Resource> m_renderTargets[FrameCount];
ComPtr<ID3D12CommandAllocator> m_commandAllocators[FrameCount];
ComPtr<ID3D12CommandQueue> m_commandQueue;
ComPtr<ID3D12RootSignature> m_rootSignature;
ComPtr<ID3D12DescriptorHeap> m_rtvHeap;
ComPtr<ID3D12DescriptorHeap> m_cbvHeap;
ComPtr<ID3D12DescriptorHeap> m_dsvHeap;
ComPtr<ID3D12QueryHeap> m_queryHeap;
UINT m_rtvDescriptorSize;
UINT m_cbvSrvDescriptorSize;
UINT m_frameIndex;
// Synchronization objects.
ComPtr<ID3D12Fence> m_fence;
UINT64 m_fenceValues[FrameCount];
HANDLE m_fenceEvent;
// Asset objects.
ComPtr<ID3D12PipelineState> m_pipelineState;
ComPtr<ID3D12PipelineState> m_queryState;
ComPtr<ID3D12GraphicsCommandList> m_commandList;
ComPtr<ID3D12Resource> m_vertexBuffer;
ComPtr<ID3D12Resource> m_constantBuffer;
ComPtr<ID3D12Resource> m_depthStencil;
ComPtr<ID3D12Resource> m_queryResult;
D3D12_VERTEX_BUFFER_VIEW m_vertexBufferView;
// Describe and create a heap for occlusion queries.
D3D12_QUERY_HEAP_DESC queryHeapDesc = {};
queryHeapDesc.Count = 1;
queryHeapDesc.Type = D3D12_QUERY_HEAP_TYPE_OCCLUSION;
ThrowIfFailed(m_device->CreateQueryHeap(&queryHeapDesc, IID_PPV_ARGS(&m_queryHeap)));
Consulte el código de ejemplo en la referencia de D3D12.
Requisitos
Plataforma de destino | Windows |
Encabezado | d3d12.h |
Library | D3D12.lib |
Archivo DLL | D3D12.dll |