INTERFACE ID3D12Device (d3d12.h)

Représente une carte virtuelle ; il est utilisé pour créer des allocateurs de commandes, des listes de commandes, des files d’attente de commandes, des clôtures, des ressources, des objets d’état de pipeline, des tas, des signatures racines, des échantillonneurs et de nombreux affichages de ressources.

Note Cette interface a été introduite dans Windows 10. Les applications ciblant Windows 10 doivent utiliser cette interface au lieu des versions ultérieures. Les applications ciblant une version ultérieure de Windows 10 doivent utiliser la version appropriée de l’interface ID3D12Device. La dernière version de cette interface est ID3D12Device3 introduite dans Windows 10 Fall Creators Update.
 

Héritage

L’interface ID3D12Device hérite d’ID3D12Object. ID3D12Device a également les types de membres suivants :

Méthodes

L’interface ID3D12Device utilise ces méthodes.

 
ID3D12Device ::CheckFeatureSupport

Obtient des informations sur les fonctionnalités prises en charge par le pilote graphique actuel. (ID3D12Device.CheckFeatureSupport)
ID3D12Device ::CopyDescriptors

Copie les descripteurs d’une source vers une destination. (ID3D12Device.CopyDescriptors)
ID3D12Device ::CopyDescriptorsSimple

Copie les descripteurs d’une source vers une destination. (ID3D12Device.CopyDescriptorsSimple)
ID3D12Device ::CreateCommandAllocator

Crée un objet d’allocateur de commande.
ID3D12Device ::CreateCommandList

Crée une liste de commandes.
ID3D12Device ::CreateCommandQueue

Crée une file d’attente de commandes.
ID3D12Device ::CreateCommandSignature

Cette méthode crée une signature de commande.
ID3D12Device ::CreateCommittedResource

Crée à la fois une ressource et un tas implicite, de sorte que le tas soit suffisamment grand pour contenir la ressource entière, et que la ressource soit mappée au tas.
ID3D12Device ::CreateComputePipelineState

Crée un objet d’état de pipeline de calcul.
ID3D12Device ::CreateConstantBufferView

Crée une vue de mémoire tampon constante pour accéder aux données de ressources.
ID3D12Device ::CreateDepthStencilView

Crée une vue profondeur-gabarit pour accéder aux données de ressource.
ID3D12Device ::CreateDescriptorHeap

Crée un objet tas de descripteur.
ID3D12Device ::CreateFence

Crée un objet de clôture. (ID3D12Device.CreateFence)
ID3D12Device ::CreateGraphicsPipelineState

Crée un objet d’état de pipeline graphique.
ID3D12Device ::CreateHeap

Crée un tas qui peut être utilisé avec des ressources placées et des ressources réservées.
ID3D12Device ::CreatePlacedResource

Crée une ressource qui est placée dans un tas spécifique. Les ressources placées sont les objets de ressources les plus légers disponibles et sont les plus rapides à créer et à détruire.
ID3D12Device ::CreateQueryHeap

Crée un tas de requête. Un tas de requêtes contient un tableau de requêtes.
ID3D12Device ::CreateRenderTargetView

Crée une vue de cible de rendu pour accéder aux données de ressource. (ID3D12Device.CreateRenderTargetView)
ID3D12Device ::CreateReservedResource

Crée une ressource qui est réservée et qui n’est pas encore mappée aux pages d’un tas.
ID3D12Device ::CreateRootSignature

Crée une disposition de signature racine.
ID3D12Device ::CreateSampler

Créez un objet sampler qui encapsule les informations d’échantillonnage pour une texture.
ID3D12Device ::CreateShaderResourceView

Crée une vue nuanceur-ressource pour accéder aux données d’une ressource. (ID3D12Device.CreateShaderResourceView)
ID3D12Device ::CreateSharedHandle

Crée un handle partagé sur un tas, une ressource ou un objet de clôture.
ID3D12Device ::CreateUnorderedAccessView

Crée une vue pour un accès non ordonné.
ID3D12Device ::Evict

Active la sortie de page des données, ce qui empêche l’accès GPU de ces données.
ID3D12Device ::GetAdapterLuid

Obtient un identificateur local unique pour l’appareil actuel (adaptateur).
ID3D12Device ::GetCopyableFootprints

Obtient une disposition de ressource qui peut être copiée. Aide l’application à remplir D3D12_PLACED_SUBRESOURCE_FOOTPRINT et D3D12_SUBRESOURCE_FOOTPRINT lors de la sous-allocation d’espace dans les tas de chargement.
ID3D12Device ::GetDescriptorHandleIncrementSize

Obtient la taille de l’incrément de handle pour le type donné de tas de descripteur. Cette valeur est généralement utilisée pour incrémenter un handle dans un tableau de descripteur d’une quantité correcte.
ID3D12Device ::GetDeviceRemovedReason

Obtient la raison pour laquelle l’appareil a été supprimé.
ID3D12Device ::GetNodeCount

Indique le nombre d’adaptateurs physiques (nœuds) associés à cet appareil.
ID3D12Device ::GetResourceTiling

Obtient des informations sur la façon dont une ressource en mosaïque est divisée en vignettes. (ID3D12Device.GetResourceTiling)
ID3D12Device ::MakeResident

Rend les objets résidant pour l’appareil.
ID3D12Device ::OpenSharedHandle

Ouvre un handle pour les ressources partagées, les tas partagés et les clôtures partagées, en utilisant HANDLE et REFIID.
ID3D12Device ::OpenSharedHandleByName

Ouvre un handle pour les ressources partagées, les tas partagés et les clôtures partagées, à l’aide du nom et de l’accès.
ID3D12Device ::SetStablePowerState

Aide au moment du développement pour certains types de profilage et de prototypage expérimental.

Remarques

Utilisez D3D12CreateDevice pour créer un appareil.

Pour Windows 10 Anniversaire, certaines fonctionnalités supplémentaires sont disponibles via ID3D12Device1.

Exemples

L’exemple D3D1211on12 utilise ID3D12Device comme suit :

Déclarations de fichier d’en-tête.

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

Vérification des fonctionnalités prises en charge.

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

Reportez-vous à l’exemple de code dans la référence D3D12.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête d3d12.h

Voir aussi

Interfaces principales

Création de descripteurs

ID3D12Device1

ID3D12Device2

ID3D12Object

Gestion de la mémoire dans Direct3D 12