structure D3D11_RESOURCE_FLAGS (d3d11on12.h)
Utilisé avec ID3D11On12Device ::CreateWrappedResource pour remplacer les indicateurs qui seraient déduits par les propriétés de ressource ou les propriétés de tas, notamment les indicateurs de liaison, les indicateurs d’erreur et les indicateurs d’accès au processeur.
Syntaxe
typedef struct D3D11_RESOURCE_FLAGS {
UINT BindFlags;
UINT MiscFlags;
UINT CPUAccessFlags;
UINT StructureByteStride;
} D3D11_RESOURCE_FLAGS;
Membres
BindFlags
Les indicateurs de liaison doivent être complètement déduits ou complètement spécifiés pour permettre au pilote graphique d’étendre une ressource D3D12 générale à quelque chose que D3D11 peut comprendre.
Si un indicateur de liaison est spécifié qui n’est pas pris en charge par la ressource fournie, une erreur est retournée.
Les indicateurs de liaison suivants (D3D11_BIND_FLAG constantes d’énumération) ne sont pas supposés et doivent être spécifiés pour qu’une ressource soit utilisée de cette manière :
- D3D11_BIND_VERTEX_BUFFER
- D3D11_BIND_INDEX_BUFFER
- D3D11_BIND_CONSTANT_BUFFER
- D3D11_BIND_STREAM_OUTPUT
- D3D11_BIND_DECODER
- D3D11_BIND_VIDEO_ENCODER
- D3D11_BIND_SHADER_RESOURCE, tant que D3D12_RESOURCE_MISC_DENY_SHADER_RESOURCE n’est pas présent
- D3D11_BIND_RENDER_TARGET, si D3D12_RESOURCE_MISC_ALLOW_RENDER_TARGET est présent
- D3D11_BIND_DEPTH_STENCIL, si D3D12_RESOURCE_MISC_ALLOW_DEPTH_STENCIL est présent
- D3D11_BIND_UNORDERED_ACCESS, si D3D12_RESOURCE_MISC_ALLOW_UNORDERED_ACCESS est présent
MiscFlags
Si les indicateurs d’erreur ne sont pas nuls, tous les indicateurs spécifiés seront OR’d dans le desc de ressource final avec des indicateurs déduits. Les indicateurs d’erreur peuvent être partiellement spécifiés pour ajouter des fonctionnalités, mais les indicateurs incorrects qui sont implicites ne peuvent pas être masqués.
Les indicateurs d’erreur suivants (D3D11_RESOURCE_MISC_FLAG constantes d’énumération) ne sont pas supposés :
- D3D11_RESOURCE_MISC_GENERATE_MIPS (conflits avec CLAMP).
- D3D11_RESOURCE_MISC_TEXTURECUBE (modifie le comportement d’affichage par défaut).
- D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS (exclusif avec certains indicateurs de liaison).
- D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS (exclusif avec d’autres types d’UAV).
- D3D11_RESOURCE_MISC_BUFFER_STRUCTURED (exclusif avec d’autres types d’UAV).
- D3D11_RESOURCE_MISC_RESOURCE_CLAMP (interdit les QIs D3D10, est en conflit avec GENERATE_MIPS).
- D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX. Il est possible de créer une ressource mutex à clé D3D11, de créer un handle partagé pour celle-ci et de l’ouvrir via 11on12 ou D3D11.
- D3D11_RESOURCE_MISC_SHARED, D3D11_RESOURCE_MISC_SHARED_NTHANDLE, D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE, si des indicateurs d’erreur de tas appropriés sont présents.
- D3D11_RESOURCE_MISC_GDI_COMPATIBLE, si la ressource D3D12 est compatible avec GDI.
- D3D11_RESOURCE_MISC_TILED, si la ressource D3D12 a été créée via CreateReservedResource.
- D3D11_RESOURCE_MISC_TILE_POOL, si un tas D3D12 a été transmis.
- D3D11_RESOURCE_MISC_RESTRICTED_CONTENT, puisque D3D12 prend uniquement en charge la protection matérielle.
- D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER n’existe pas dans 12 et ne peut pas être ajouté après la création de la ressource.
- D3D11_RESOURCE_MISC_GUARDED est uniquement destiné à être défini par un mécanisme de création interne.
CPUAccessFlags
Les cpuAccessFlags ne sont pas déduits de la ressource D3D12. Cela est dû au fait que toutes les ressources sont traitées comme D3D11_USAGE_DEFAULT, de sorte que CPUAccessFlags force la validation, ce qui suppose que mappe des mémoires tampons ou des textures par défaut. Les ressources encapsulées ne prennent pas en charge Map(DISCARD). Les ressources encapsulées ne prennent pas en charge Map(NO_OVERWRITE), mais elles peuvent être implémentées en mappant la ressource D3D12 sous-jacente à la place. L’émission d’un appel de carte sur une ressource encapsulée se synchronise avec tout le travail D3D11 envoyé sur cette ressource, sauf si l’indicateur DO_NOT_WAIT a été utilisé.
StructureByteStride
Taille de chaque élément de la structure de mémoire tampon (en octets) lorsque la mémoire tampon représente une mémoire tampon structurée.
Remarques
Utilisez cette structure avec CreateWrappedResource.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | d3d11on12.h |