ID3D12Device 인터페이스(d3d12.h)
가상 어댑터를 나타냅니다. 명령 할당자, 명령 목록, 명령 큐, 펜스, 리소스, 파이프라인 상태 개체, 힙, 루트 서명, 샘플러 및 여러 리소스 뷰를 만드는 데 사용됩니다.
참고 이 인터페이스는 Windows 10 도입되었습니다. Windows 10 대상으로 하는 애플리케이션은 이후 버전 대신 이 인터페이스를 사용해야 합니다. 최신 버전의 Windows 10 대상으로 하는 애플리케이션은 적절한 버전의 ID3D12Device 인터페이스를 사용해야 합니다. 이 인터페이스의 최신 버전은 Windows 10 Fall Creators Update 도입된 ID3D12Device3입니다.
상속
ID3D12Device 인터페이스는 ID3D12Object에서 상속됩니다. ID3D12Device 에는 다음과 같은 유형의 멤버도 있습니다.
메서드
ID3D12Device 인터페이스에는 이러한 메서드가 있습니다.
ID3D12Device::CheckFeatureSupport 현재 그래픽 드라이버에서 지원하는 기능에 대한 정보를 가져옵니다. (ID3D12Device.CheckFeatureSupport) |
ID3D12Device::CopyDescriptors 설명자를 원본에서 대상으로 복사합니다. (ID3D12Device.CopyDescriptors) |
ID3D12Device::CopyDescriptorsSimple 설명자를 원본에서 대상으로 복사합니다. (ID3D12Device.CopyDescriptorsSimple) |
ID3D12Device::CreateCommandAllocator 명령 할당자 개체를 만듭니다. |
ID3D12Device::CreateCommandList 명령 목록을 만듭니다. |
ID3D12Device::CreateCommandQueue 명령 큐를 만듭니다. |
ID3D12Device::CreateCommandSignature 이 메서드는 명령 서명을 만듭니다. |
ID3D12Device::CreateCommittedResource 힙이 전체 리소스를 포함할 수 있을 만큼 크고 리소스가 힙에 매핑되도록 리소스와 암시적 힙을 모두 만듭니다. |
ID3D12Device::CreateComputePipelineState 컴퓨팅 파이프라인 상태 개체를 만듭니다. |
ID3D12Device::CreateConstantBufferView 리소스 데이터에 액세스하기 위한 상수 버퍼 보기를 만듭니다. |
ID3D12Device::CreateDepthStencilView 리소스 데이터에 액세스하기 위한 깊이 스텐실 보기를 만듭니다. |
ID3D12Device::CreateDescriptorHeap 설명자 힙 개체를 만듭니다. |
ID3D12Device::CreateFence 펜스 개체를 만듭니다. (ID3D12Device.CreateFence) |
ID3D12Device::CreateGraphicsPipelineState 그래픽 파이프라인 상태 개체를 만듭니다. |
ID3D12Device::CreateHeap 배치된 리소스 및 예약된 리소스와 함께 사용할 수 있는 힙을 만듭니다. |
ID3D12Device::CreatePlacedResource 특정 힙에 배치되는 리소스를 만듭니다. 배치된 리소스는 사용 가능한 가장 가벼운 리소스 개체이며 가장 빠르게 만들고 삭제할 수 있습니다. |
ID3D12Device::CreateQueryHeap 쿼리 힙을 만듭니다. 쿼리 힙에는 쿼리 배열이 포함되어 있습니다. |
ID3D12Device::CreateRenderTargetView 리소스 데이터에 액세스하기 위한 렌더링 대상 보기를 만듭니다. (ID3D12Device.CreateRenderTargetView) |
ID3D12Device::CreateReservedResource 예약되어 있고 아직 힙의 페이지에 매핑되지 않은 리소스를 만듭니다. |
ID3D12Device::CreateRootSignature 루트 서명 레이아웃을 만듭니다. |
ID3D12Device::CreateSampler 텍스처에 대한 샘플링 정보를 캡슐화하는 샘플러 개체를 만듭니다. |
ID3D12Device::CreateShaderResourceView 리소스의 데이터에 액세스하기 위한 셰이더 리소스 뷰를 만듭니다. (ID3D12Device.CreateShaderResourceView) |
ID3D12Device::CreateSharedHandle 힙, 리소스 또는 펜스 개체에 대한 공유 핸들을 만듭니다. |
ID3D12Device::CreateUnorderedAccessView 순서가 지정되지 않은 액세스에 대한 보기를 만듭니다. |
ID3D12Device::Evict 해당 데이터의 GPU 액세스를 배제하는 데이터 페이지 아웃을 사용하도록 설정합니다. |
ID3D12Device::GetAdapterLuid 현재 디바이스(어댑터)에 대한 로컬 고유 식별자를 가져옵니다. |
ID3D12Device::GetCopyableFootprints 복사할 수 있는 리소스 레이아웃을 가져옵니다. 업로드 힙에서 공간을 하위 할당할 때 앱이 D3D12_PLACED_SUBRESOURCE_FOOTPRINT 및 D3D12_SUBRESOURCE_FOOTPRINT 채우는 데 도움이 됩니다. |
ID3D12Device::GetDescriptorHandleIncrementSize 지정된 형식의 설명자 힙에 대한 핸들 증분 크기를 가져옵니다. 이 값은 일반적으로 올바른 양만큼 설명자 배열로 핸들을 증분하는 데 사용됩니다. |
ID3D12Device::GetDeviceRemovedReason 디바이스가 제거된 이유를 가져옵니다. |
ID3D12Device::GetNodeCount 이 디바이스와 연결된 실제 어댑터(노드) 수를 보고합니다. |
ID3D12Device::GetResourceTiling 타일형 리소스가 타일로 분할되는 방법에 대한 정보를 가져옵니다. (ID3D12Device.GetResourceTiling) |
ID3D12Device::MakeResident 개체를 디바이스에 상주하게 만듭니다. |
ID3D12Device::OpenSharedHandle HANDLE 및 REFIID를 사용하여 공유 리소스, 공유 힙 및 공유 펜스에 대한 핸들을 엽니다. |
ID3D12Device::OpenSharedHandleByName 이름 및 액세스를 사용하여 공유 리소스, 공유 힙 및 공유 펜스에 대한 핸들을 엽니다. |
ID3D12Device::SetStablePowerState 특정 유형의 프로파일링 및 실험적 프로토타입에 대한 개발 시간 지원. |
설명
D3D12CreateDevice를 사용하여 디바이스를 만듭니다.
Windows 10 1주년을 위해 ID3D12Device1을 통해 일부 추가 기능을 사용할 수 있습니다.
예제
D3D1211on12 샘플은 다음과 같이 ID3D12Device를 사용합니다.
헤더 파일 선언.
// Pipeline objects.
D3D12_VIEWPORT m_viewport;
ComPtr<IDXGISwapChain3> m_swapChain;
ComPtr<ID3D12Device> m_device;
ComPtr<ID3D12Resource> m_renderTargets[FrameCount];
ComPtr<ID3D12Resource> m_depthStencil;
ComPtr<ID3D12CommandAllocator> m_commandAllocator;
ComPtr<ID3D12GraphicsCommandList> m_commandList;
ComPtr<ID3D12CommandQueue> m_commandQueue;
ComPtr<ID3D12RootSignature >m_rootSignature;
ComPtr<ID3D12DescriptorHeap> m_rtvHeap;
ComPtr<ID3D12DescriptorHeap> m_cbvSrvHeap;
ComPtr<ID3D12DescriptorHeap> m_dsvHeap;
ComPtr<ID3D12DescriptorHeap> m_samplerHeap;
ComPtr<ID3D12PipelineState> m_pipelineState1;
ComPtr<ID3D12PipelineState> m_pipelineState2;
D3D12_RECT m_scissorRect;
지원되는 기능을 확인합니다.
inline UINT8 D3D12GetFormatPlaneCount(
_In_ ID3D12Device* pDevice,
DXGI_FORMAT Format
)
{
D3D12_FEATURE_DATA_FORMAT_INFO formatInfo = {Format};
if (FAILED(pDevice->CheckFeatureSupport(D3D12_FEATURE_FORMAT_INFO, &formatInfo, sizeof(formatInfo))))
{
return 0;
}
return formatInfo.PlaneCount;
}
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | Windows |
헤더 | d3d12.h |