Partager via


énumération D3D12_RESOURCE_FLAGS (d3d12.h)

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

Syntaxe

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, ni n’est-elle disponible pour les textures compressées avec les 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 de créer une vue de gabarit de profondeur pour la ressource, ainsi que de permettre à 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’adaptateur 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 :

  • Soit 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.

  • Impossible d’être utilisé avec D3D12_RESOURCE_DIMENSION_BUFFER, alignement 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 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’une sous-région. CopyTextureRegion devez copier une sous-ressource entière vers ou depuis des ressources avec cet indicateur.

D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS
Valeur : 0x4
Permet de créer une vue d’accès non ordonnée pour la ressource, ainsi que de permettre à la ressource de passer à l’état de D3D12_RESOURCE_STATE_UNORDERED_ACCESS. Certaines architectures d’adaptateur doivent recourir à des dispositions de texture moins efficaces pour fournir cette fonctionnalité. Si une texture est rarement utilisée pour l’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 les 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
Empêche la création d’une vue de ressource du nuanceur pour la ressource, ainsi que la désactivation de la ressource de la transition vers 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 de 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 seront 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 d’utiliser 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 empêchent généralement les techniques qui réduisent la bande passante de texture efficace pendant l’utilisation, et certaines architectures d’adaptateur 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 à une ressource d’être accessible simultanément par plusieurs files d’attente, appareils ou processus différents (par exemple, permet à une ressource d’être utilisée avec ResourceBarrier transitions effectuées dans plusieurs listes de commandes exécutées en même temps).

L’accès simultané permet plusieurs lecteurs et un enregistreur, tant que l’enregistreur ne modifie pas simultanément les texels auxquels d’autres lecteurs accèdent. Certaines architectures d’adaptateurs ne peuvent pas tirer parti des techniques pour réduire la bande passante de texture efficace pendant l’utilisation.

Toutefois, votre application doit éviter de définir cet indicateur lorsque plusieurs lecteurs ne sont pas requis 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 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.

  • Impossible d’utiliser des textures MSAA.

  • Impossible d’utiliser D3D12_RESOURCE_FLAGS ::D 3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL.

D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY
Valeur : 0x40
Specfies que cette ressource peut être utilisée uniquement comme trame 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 D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED dans l’indicateur de configuration de la structure D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT. Si cela se produit, votre application doit allouer des trames 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
Specfies que cette ressource peut être utilisée uniquement comme trame de référence encode. Il peut être écrit ou lu uniquement par l’opération d’encodage vidéo.
D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE
Valeur : 0x100
Nécessite le KIT SDK d’agilité DirectX 12 1.608.0 ou version ultérieure. Indique qu’une mémoire tampon doit être utilisée comme structure d’accélération raytracing. Lorsque vous utilisez des barrières améliorées D3D12, cet indicateur remplace D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE, car les mémoires tampons n’ont plus de dispositions/états.

Remarques

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

Exigences

Exigence Valeur
d’en-tête d3d12.h

Voir aussi

  • énumérations Core