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;
}

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

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 d3d12.h

참고 항목

Core 인터페이스

설명자 만들기

ID3D12Device1

ID3D12Device2

ID3D12Object

Direct3D 12의 메모리 관리