Partager via


énumération D3D12_RESOURCE_FLAGS (d3d12.h)

Définit des constantes qui spécifient les options d’utilisation des ressources.

Syntax

typedef enum D3D12_RESOURCE_FLAGS {
  D3D12_RESOURCE_FLAG_NONE = 0,
  D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1,
  D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2,
  D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4,
  D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8,
  D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10,
  D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20,
  D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40,
  D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 0x80,
  D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 0x100
} ;

Constantes

 
D3D12_RESOURCE_FLAG_NONE
Valeur : 0
Aucune option n'est spécifiée.
D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET
Valeur : 0x1
Permet de créer une vue cible de rendu pour la ressource ; et permet également à la ressource de passer à l’état de D3D12_RESOURCE_STATE_RENDER_TARGET. Certaines architectures d’adaptateur allouent de la mémoire supplémentaire pour les textures avec cet indicateur afin de réduire la bande passante effective pendant le rendu courant. Cette caractéristique peut ne pas être bénéfique pour les textures qui ne sont jamais rendues dans, ni disponible pour les textures compressées avec des formats BC. Votre application doit éviter de définir cet indicateur lorsque le rendu ne se produit jamais.

Les restrictions et interactions suivantes s’appliquent :
D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL
Valeur : 0x2
Permet la création d’un affichage de gabarit de profondeur pour la ressource et permet à la ressource de passer à l’état de D3D12_RESOURCE_STATE_DEPTH_WRITE et/ou de D3D12_RESOURCE_STATE_DEPTH_READ. La plupart des architectures d’adaptateurs allouent de la mémoire supplémentaire pour les textures avec cet indicateur afin de réduire la bande passante effective et d’optimiser les optimisations pour les tests de profondeur précoces. Votre application doit éviter de définir cet indicateur lorsque les opérations de profondeur ne se produisent jamais.

Les restrictions et interactions suivantes s’appliquent :

  • Le format de texture doit prendre en charge les fonctionnalités de gabarit de profondeur au niveau de la fonctionnalité actuelle. Ou, lorsque le format est un format sans type, un format au sein du même groupe sans type doit prendre en charge les fonctionnalités de gabarit de profondeur au niveau de la fonctionnalité actuelle.

  • Ne peut pas être utilisé avec D3D12_RESOURCE_DIMENSION_BUFFER, Alignement de 4 Ko, D3D12_RESOURCE_FLAGS ::D 3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET, D3D12_RESOURCE_FLAGS ::D 3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS, D3D12_RESOURCE_FLAGS ::D 3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS, D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, ni utilisé avec des tas qui ont des D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES ou D3D12_HEAP_FLAG_ALLOW_DISPLAY.

  • Empêche l’utilisation de WriteToSubresource et ReadFromSubresource.

  • Empêche la copie GPU d’un sous-ensemble. CopyTextureRegion doit copier une sous-ressource entière vers ou depuis des ressources avec cet indicateur.

D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS
Valeur : 0x4
Permet la création d’un affichage d’accès non ordonné pour la ressource, ainsi que la transition de la ressource vers l’état de D3D12_RESOURCE_STATE_UNORDERED_ACCESS. Certaines architectures d’adaptateurs doivent recourir à des dispositions de texture moins efficaces pour fournir cette fonctionnalité. Si une texture est rarement utilisée pour un accès non ordonné, il peut être utile d’avoir deux textures autour et de copier entre elles. Une texture aurait cet indicateur, tandis que l’autre ne le serait pas. Votre application doit éviter de définir cet indicateur lorsque des opérations d’accès non ordonnées ne se produisent jamais.

Les restrictions et interactions suivantes s’appliquent :
D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE
Valeur : 0x8
Interdit la création d’une vue de ressource de nuanceur pour la ressource et désactive la transition de la ressource dans l’état de D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE ou de D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE. Certaines architectures d’adaptateurs gagnent en capacité de bande passante pour les textures de gabarit de profondeur lorsque les vues de ressources du nuanceur sont exclues. Si une texture est rarement utilisée pour les ressources du nuanceur, il peut être utile d’avoir deux textures autour et de copier entre elles. Une texture aurait cet indicateur, tandis que l’autre ne le serait pas. Votre application doit définir cet indicateur lorsque les textures de gabarit de profondeur ne sont jamais utilisées à partir des vues de ressources du nuanceur.

Les restrictions et interactions suivantes s’appliquent :

  • Doit être utilisé avec D3D12_RESOURCE_FLAGS ::D 3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL.

D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER
Valeur : 0x10
Permet l’utilisation de la ressource pour les données inter-adaptateurs, ainsi que les fonctionnalités activées par D3D12_RESOURCE_FLAGS ::D 3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS. Les ressources inter-adaptateurs excluent généralement les techniques qui réduisent la bande passante de texture effective pendant l’utilisation, et certaines architectures d’adaptateurs peuvent nécessiter un comportement de mise en cache différent. Votre application doit éviter de définir cet indicateur lorsque les données de ressource ne seront jamais utilisées avec un autre adaptateur.

Les restrictions et interactions suivantes s’appliquent :
D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS
Valeur : 0x20
Permet d’accéder simultanément à une ressource par plusieurs files d’attente, appareils ou processus différents (par exemple, permet à une ressource d’être utilisée avec des transitions ResourceBarrier effectuées dans plusieurs listes de commandes s’exécutant en même temps).

L’accès simultané autorise plusieurs lecteurs et un seul rédacteur, à condition que l’enregistreur ne modifie pas simultanément les texels auxquels les autres lecteurs accèdent. Certaines architectures d’adaptateurs ne peuvent pas tirer parti des techniques permettant de réduire la bande passante de texture effective pendant l’utilisation.

Toutefois, votre application doit éviter de définir cet indicateur lorsque plusieurs lecteurs ne sont pas nécessaires pendant les écritures fréquentes et sans chevauchement dans les textures. L’utilisation de cet indicateur peut compromettre les clôtures de ressources pour effectuer des attentes et empêcher toute compression d’être utilisée avec une ressource.

Les restrictions et interactions suivantes s’appliquent :

  • Ne peut pas être utilisé avec D3D12_RESOURCE_DIMENSION_BUFFER ; mais les mémoires tampons ont toujours les propriétés représentées par cet indicateur.

  • Ne peut pas être utilisé avec les textures MSAA.

  • Ne peut pas être utilisé avec D3D12_RESOURCE_FLAGS ::D 3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL.

D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY
Valeur : 0x40
Indique que cette ressource peut être utilisée uniquement comme cadre de référence de décodage. Il peut être écrit ou lu uniquement par l’opération de décodage vidéo.

D3D12_VIDEO_DECODE_TIER_1 et D3D12_VIDEO_DECODE_TIER_2 peuvent signaler des D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED dans l’indicateur de configuration de structure D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT . Si cela se produit, votre application doit allouer des cadres de référence avec l’indicateur de ressource D3D12_RESOURCE_FLAGS ::D 3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY .

D3D12_VIDEO_DECODE_TIER_3 ne doit pas définir le [D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED]
(.. Indicateur de configuration /d3d12video/ne-d3d12video-d3d12_video_decode_configuration_flags) et ne doit pas nécessiter l’utilisation de cet indicateur de ressource.
D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY
Valeur : 0x80
Indique que cette ressource peut être utilisée uniquement comme cadre de référence d’encodage. Il peut être écrit ou lu uniquement par l’opération d’encodage vidéo.
D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE
Valeur : 0x100
Réservé pour un usage futur. Ne pas utiliser.

Nécessite le Kit de développement logiciel (SDK) d’agilité DirectX 12 1.7 ou version ultérieure. Indique qu’une mémoire tampon doit être utilisée comme structure d’accélération de raytracing.

Remarques

Cette énumération est utilisée par le membre Flags du D3D12_RESOURCE_DESC.

Configuration requise

Condition requise Valeur
En-tête d3d12.h

Voir aussi