Freigeben über


ID3D12Device::CreateQueryHeap-Methode (d3d12.h)

Erstellt einen Abfrageheap. Ein Abfrageheap enthält ein Array von Abfragen.

Syntax

HRESULT CreateQueryHeap(
  [in]            const D3D12_QUERY_HEAP_DESC *pDesc,
                  REFIID                      riid,
  [out, optional] void                        **ppvHeap
);

Parameter

[in] pDesc

Typ: const D3D12_QUERY_HEAP_DESC*

Gibt den Abfrageheap in einer D3D12_QUERY_HEAP_DESC-Struktur an.

riid

Typ: REFIID

Gibt eine REFIID an, die den Heap eindeutig identifiziert.

[out, optional] ppvHeap

Typ: void**

Gibt einen Zeiger auf den Heap an, der bei erfolgreichem Abschluss der Methode zurückgegeben wird. ppvHeap kann NULL sein, um Funktionstests zu ermöglichen. Wenn ppvHeap NULL ist, wird kein Objekt erstellt, und S_FALSE wird zurückgegeben, wenn pDesc gültig ist.

Rückgabewert

Typ: HRESULT

Diese Methode gibt einen der Direct3D 12-Rückgabecodes zurück.

Hinweise

Weitere Informationen finden Sie unter Abfragen .

Beispiele

Im D3D12PredicationQueries-Beispiel wird ID3D12Device::CreateQueryHeap wie folgt verwendet:

Erstellen Sie einen Abfrageheap und einen Abfrageergebnispuffer.

// 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)));

Weitere Informationen finden Sie im Beispielcode in der D3D12-Referenz.

Anforderungen

   
Zielplattform Windows
Kopfzeile d3d12.h
Bibliothek D3D12.lib
DLL D3D12.dll

Weitere Informationen

ID3D12Device