Passer au contenu principal
Crée à la fois une ressource et un tas implicite (éventuellement pour une session protégée), de sorte que le tas soit suffisamment grand pour contenir toute la ressource et que la ressource soit mappée au tas. Consultez également ID3D12Device::CreateCommittedResource pour obtenir un exemple de code.

Syntaxe

Paramètres

pHeapProperties [in]
Type : const D3D12_HEAP_PROPERTIES *
Pointeur vers une structure D3D12_HEAP_PROPERTIES qui fournit les propriétés du tas de la ressource. HeapFlags [in]
Type : D3D12_HEAP_FLAGS
Options du tas, sous la forme d’une combinaison OR au niveau du bit de constantes d’énumération D3D12_HEAP_FLAGS. pDesc [in]
Type : const D3D12_RESOURCE_DESC *
Pointeur vers une structure D3D12_RESOURCE_DESC qui décrit la ressource. InitialResourceState [in]
Type : D3D12_RESOURCE_STATES
État initial de la ressource, sous la forme d’une combinaison OR au niveau du bit de constantes d’énumération D3D12_RESOURCE_STATES. Lorsque vous créez une ressource avec un tas D3D12_HEAP_TYPE_UPLOAD, vous devez définir InitialResourceState sur D3D12_RESOURCE_STATE_GENERIC_READ. Lorsque vous créez une ressource avec un tas D3D12_HEAP_TYPE_READBACK, vous devez définir InitialResourceState sur D3D12_RESOURCE_STATE_COPY_DEST. pOptimizedClearValue [in, optional]
Type : const D3D12_CLEAR_VALUE *
Spécifie une structure D3D12_CLEAR_VALUE qui décrit la valeur par défaut d’une couleur d’effacement. pOptimizedClearValue spécifie une valeur pour laquelle les opérations d’effacement sont les plus optimales. Lorsque la ressource créée est une texture avec l’indicateur D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET ou D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL, vous devez choisir la valeur avec laquelle l’opération d’effacement sera le plus souvent appelée. Vous pouvez appeler l’opération d’effacement avec d’autres valeurs, mais ces opérations ne seront pas aussi efficaces que lorsque la valeur correspond à celle transmise lors de la création de la ressource. Lorsque vous utilisez D3D12_RESOURCE_DIMENSION_BUFFER, vous devez définir pOptimizedClearValue sur nullptr. pProtectedSession [in, optional]
Type : ID3D12ProtectedResourceSession *
Pointeur facultatif vers un objet qui représente une session de protection du contenu. S’il est fourni, cette session indique que la ressource doit être protégée. Vous pouvez obtenir un ID3D12ProtectedResourceSession en appelant ID3D12Device4::CreateProtectedResourceSession. riidResource [in]
Type : const IID &
Référence à l’identificateur global unique (GUID) de l’interface de ressource à renvoyer dans ppvResource. Bien que riidResource soit le plus souvent le GUID de ID3D12Resource, il peut s’agir du GUID de n’importe quelle interface. Si l’objet ressource ne prend pas en charge l’interface correspondant à ce GUID, la création échoue avec E_NOINTERFACE. ppvResource [out, optional]
Type : void **
Pointeur facultatif vers un bloc de mémoire qui reçoit le pointeur d’interface demandé vers l’objet ressource créé. ppvResource peut être nullptr, afin de permettre le test des capacités. Lorsque ppvResource est nullptr, aucun objet n’est créé et S_FALSE est renvoyé si pDesc est valide.

Valeur renvoyée

Type : HRESULT Si la fonction réussit, elle renvoie S_OK. Sinon, elle renvoie un code d’erreur HRESULT. Consultez Codes de retour Direct3D 12 pour connaître les autres valeurs de retour possibles.

Remarques

Cette méthode crée à la fois une ressource et un tas, de sorte que le tas soit suffisamment grand pour contenir toute la ressource et que la ressource soit mappée au tas. Le tas créé est appelé tas implicite, car l’objet tas ne peut pas être obtenu par l’application. Avant de libérer la dernière référence à la ressource, votre application doit s’assurer que le GPU ne lira plus et n’écrira plus dans cette ressource. Le tas implicite est rendu résident pour l’accès GPU avant que la méthode ne rende le contrôle à votre application. Consultez également Résidence. Le mappage VA GPU de la ressource ne peut pas être modifié. Consultez ID3D12CommandQueue::UpdateTileMappings et Ressources en mosaïque de volume. Cette méthode peut être appelée simultanément par plusieurs threads.

Configuration requise

En-tête : d3d12_xs.h
Bibliothèque : d3d12_xs.lib
Plateformes prises en charge : consoles XBOX Series

Voir aussi

Dernière modification le 6 octobre 2026