Compartir a través de


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

Consulte también

ID3D12Device