다음을 통해 공유


ID3D12Device::CreateQueryHeap 메서드(d3d12.h)

쿼리 힙을 만듭니다. 쿼리 힙에는 쿼리 배열이 포함됩니다.

구문

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

매개 변수

[in] pDesc

형식: const D3D12_QUERY_HEAP_DESC*

D3D12_QUERY_HEAP_DESC 구조에서 쿼리 힙을 지정합니다.

riid

형식: REFIID

힙을 고유하게 식별하는 REFIID를 지정합니다.

[out, optional] ppvHeap

형식: void**

메서드를 성공적으로 완료할 때 반환되는 힙에 대한 포인터를 지정합니다. ppvHeap은 기능 테스트를 사용하도록 설정하기 위해 NULL일 수 있습니다. ppvHeap이 NULL이면 개체가 생성되지 않으며 pDesc가 유효하면 S_FALSE 반환됩니다.

반환 값

형식: HRESULT

이 메서드는 Direct3D 12 반환 코드 중 하나를 반환합니다.

설명

자세한 내용은 쿼리를 참조하세요.

예제

D3D12PredicationQueries 샘플은 다음과 같이 ID3D12Device::CreateQueryHeap을 사용합니다.

쿼리 힙 및 쿼리 결과 버퍼를 만듭니다.

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

D3D12 참조의 예제 코드를 참조하세요.

요구 사항

   
대상 플랫폼 Windows
헤더 d3d12.h
라이브러리 D3D12.lib
DLL D3D12.dll

추가 정보

ID3D12Device