Compartilhar via


Interface ID3D12Device (d3d12.h)

Representa um adaptador virtual; ele é usado para criar alocadores de comandos, listas de comandos, filas de comandos, cercas, recursos, objetos de estado de pipeline, heaps, assinaturas raiz, exemplores e muitas exibições de recursos.

Nota Essa interface foi introduzida no Windows 10. Os aplicativos direcionados Windows 10 devem usar essa interface em vez de versões posteriores. Os aplicativos direcionados a uma versão posterior do Windows 10 devem usar a versão apropriada da interface ID3D12Device. A versão mais recente dessa interface é ID3D12Device3 introduzida no Windows 10 Fall Creators Update.
 

Herança

A interface ID3D12Device herda de ID3D12Object. ID3D12Device também tem estes tipos de membros:

Métodos

A interface ID3D12Device tem esses métodos.

 
ID3D12Device::CheckFeatureSupport

Obtém informações sobre os recursos compatíveis com o driver de gráficos atual. (ID3D12Device.CheckFeatureSupport)
ID3D12Device::CopyDescriptors

Copia descritores de uma origem para um destino. (ID3D12Device.CopyDescriptors)
ID3D12Device::CopyDescriptorsSimple

Copia descritores de uma origem para um destino. (ID3D12Device.CopyDescriptorsSimple)
ID3D12Device::CreateCommandAllocator

Cria um objeto alocador de comando.
ID3D12Device::CreateCommandList

Cria uma lista de comandos.
ID3D12Device::CreateCommandQueue

Cria uma fila de comandos.
ID3D12Device::CreateCommandSignature

Esse método cria uma assinatura de comando.
ID3D12Device::CreateCommittedResource

Cria um recurso e um heap implícito, de modo que o heap seja grande o suficiente para conter todo o recurso e o recurso seja mapeado para o heap.
ID3D12Device::CreateComputePipelineState

Cria um objeto de estado do pipeline de computação.
ID3D12Device::CreateConstantBufferView

Cria uma exibição de buffer constante para acessar dados de recursos.
ID3D12Device::CreateDepthStencilView

Cria uma exibição de estêncil de profundidade para acessar dados de recursos.
ID3D12Device::CreateDescriptorHeap

Cria um objeto heap de descritor.
ID3D12Device::CreateFence

Cria um objeto fence. (ID3D12Device.CreateFence)
ID3D12Device::CreateGraphicsPipelineState

Cria um objeto de estado de pipeline gráfico.
ID3D12Device::CreateHeap

Cria um heap que pode ser usado com recursos colocados e recursos reservados.
ID3D12Device::CreatePlacedResource

Cria um recurso que é colocado em um heap específico. Os recursos colocados são os objetos de recurso mais leves disponíveis e são os mais rápidos para criar e destruir.
ID3D12Device::CreateQueryHeap

Cria um heap de consulta. Um heap de consulta contém uma matriz de consultas.
ID3D12Device::CreateRenderTargetView

Cria uma exibição de destino de renderização para acessar dados de recurso. (ID3D12Device.CreateRenderTargetView)
ID3D12Device::CreateReservedResource

Cria um recurso reservado e ainda não mapeado para nenhuma página em um heap.
ID3D12Device::CreateRootSignature

Cria um layout de assinatura raiz.
ID3D12Device::CreateSampler

Crie um objeto de amostra que encapsula informações de amostragem para uma textura.
ID3D12Device::CreateShaderResourceView

Cria uma exibição de recurso de sombreador para acessar dados em um recurso. (ID3D12Device.CreateShaderResourceView)
ID3D12Device::CreateSharedHandle

Cria um identificador compartilhado para um heap, recurso ou objeto fence.
ID3D12Device::CreateUnorderedAccessView

Cria uma exibição para acesso não ordenado.
ID3D12Device::Remove

Habilita a página de dados, o que impede o acesso à GPU desses dados.
ID3D12Device::GetAdapterLuid

Obtém um identificador exclusivo localmente para o dispositivo atual (adaptador).
ID3D12Device::GetCopyableFootprints

Obtém um layout de recurso que pode ser copiado. Ajuda o aplicativo a preencher D3D12_PLACED_SUBRESOURCE_FOOTPRINT e D3D12_SUBRESOURCE_FOOTPRINT ao subalocar espaço em heaps de upload.
ID3D12Device::GetDescriptorHandleIncrementSize

Obtém o tamanho do incremento do identificador para o tipo determinado de heap de descritor. Esse valor normalmente é usado para incrementar um identificador em uma matriz de descritor pelo valor correto.
ID3D12Device::GetDeviceRemovedReason

Obtém o motivo pelo qual o dispositivo foi removido.
ID3D12Device::GetNodeCount

Relata o número de adaptadores físicos (nós) associados a este dispositivo.
ID3D12Device::GetResourceTiling

Obtém informações sobre como um recurso lado a lado é dividido em blocos. (ID3D12Device.GetResourceTiling)
ID3D12Device::MakeResident

Torna os objetos residentes para o dispositivo.
ID3D12Device::OpenSharedHandle

Abre um identificador para recursos compartilhados, heaps compartilhados e cercas compartilhadas usando HANDLE e REFIID.
ID3D12Device::OpenSharedHandleByName

Abre um identificador para recursos compartilhados, heaps compartilhados e cercas compartilhadas usando Nome e Acesso.
ID3D12Device::SetStablePowerState

Um auxílio em tempo de desenvolvimento para determinados tipos de criação de perfil e prototipagem experimental.

Comentários

Use D3D12CreateDevice para criar um dispositivo.

Para Windows 10 Aniversário, algumas funcionalidades adicionais estão disponíveis por meio de ID3D12Device1.

Exemplos

O exemplo D3D1211on12 usa ID3D12Device da seguinte maneira:

Declarações de arquivo de cabeçalho.

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

Verificando os recursos com suporte.

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

Consulte o código de exemplo na referência D3D12.

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho d3d12.h

Confira também

Interfaces principais

Como criar descritores

ID3D12Device1

ID3D12Device2

ID3D12Object

Gerenciamento de memória no Direct3D 12