D3D11_RESOURCE_FLAGS-Struktur (d3d11on12.h)
Wird mit ID3D11On12Device::CreateWrappedResource verwendet, um Flags zu überschreiben, die von den Ressourceneigenschaften oder Heapeigenschaften abgeleitet werden, einschließlich Bindungsflags, misc-Flags und CPU-Zugriffsflags.
Syntax
typedef struct D3D11_RESOURCE_FLAGS {
UINT BindFlags;
UINT MiscFlags;
UINT CPUAccessFlags;
UINT StructureByteStride;
} D3D11_RESOURCE_FLAGS;
Member
BindFlags
Bindungsflags müssen entweder vollständig abgeleitet oder vollständig angegeben sein, damit der Grafiktreiber eine allgemeine D3D12-Ressource auf etwas festlegen kann, das D3D11 verstehen kann.
Wenn ein Bindungsflag angegeben wird, das von der bereitgestellten Ressource nicht unterstützt wird, wird ein Fehler zurückgegeben.
Die folgenden Bindungsflags (D3D11_BIND_FLAG Enumerationskonstanten) werden nicht angenommen und müssen angegeben werden, damit eine Ressource auf diese Weise verwendet werden kann:
- 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, solange D3D12_RESOURCE_MISC_DENY_SHADER_RESOURCE nicht vorhanden ist
- D3D11_BIND_RENDER_TARGET, wenn D3D12_RESOURCE_MISC_ALLOW_RENDER_TARGET vorhanden ist
- D3D11_BIND_DEPTH_STENCIL, wenn D3D12_RESOURCE_MISC_ALLOW_DEPTH_STENCIL vorhanden ist
- D3D11_BIND_UNORDERED_ACCESS, wenn D3D12_RESOURCE_MISC_ALLOW_UNORDERED_ACCESS vorhanden ist
MiscFlags
Wenn misc-Flags nicht zero sind, werden alle angegebenen Flags or'd in the final resource desc mit abgeleiteten Flags. Misc-Flags können teilweise angegeben werden, um Funktionen hinzuzufügen, aber implizite misc-Flags können nicht maskiert werden.
Die folgenden misc-Flags (D3D11_RESOURCE_MISC_FLAG Enumerationskonstanten) werden nicht angenommen:
- D3D11_RESOURCE_MISC_GENERATE_MIPS (Konflikte mit CLAMP).
- D3D11_RESOURCE_MISC_TEXTURECUBE (ändert das Standardverhalten der Ansicht).
- D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS (exklusiv mit einigen Bindungsflags).
- D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS (exklusiv mit anderen UaVs).
- D3D11_RESOURCE_MISC_BUFFER_STRUCTURED (exklusiv mit anderen UaVs).
- D3D11_RESOURCE_MISC_RESOURCE_CLAMP (verbietet D3D10-QIs, Konflikte mit GENERATE_MIPS).
- D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX. Es ist möglich, eine D3D11-Mutex-Ressource mit Schlüsseln zu erstellen, einen freigegebenen Handle für sie zu erstellen und sie über 11on12 oder D3D11 zu öffnen.
- D3D11_RESOURCE_MISC_SHARED, D3D11_RESOURCE_MISC_SHARED_NTHANDLE, D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE sind ggf. Heap-Misc-Flags vorhanden.
- D3D11_RESOURCE_MISC_GDI_COMPATIBLE, wenn die D3D12-Ressource GDI-kompatibel ist.
- D3D11_RESOURCE_MISC_TILED, wenn die D3D12-Ressource über CreateReservedResource erstellt wurde.
- D3D11_RESOURCE_MISC_TILE_POOL, wenn ein D3D12-Heap übergeben wurde.
- D3D11_RESOURCE_MISC_RESTRICTED_CONTENT, da D3D12 nur Hardwareschutz unterstützt.
- D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER ist in 12 nicht vorhanden und kann nach der Ressourcenerstellung nicht hinzugefügt werden.
- D3D11_RESOURCE_MISC_GUARDED soll nur durch einen internen Erstellungsmechanismus festgelegt werden.
CPUAccessFlags
Die CPUAccessFlags werden nicht aus der D3D12-Ressource abgeleitet. Dies liegt daran, dass alle Ressourcen als D3D11_USAGE_DEFAULT behandelt werden, sodass CPUAccessFlags eine Überprüfung erzwingt, die die Zuordnung von Standardpuffern oder Texturen vorausnimmt. Umschlossene Ressourcen unterstützen Map(DISCARD) nicht. Umschlossene Ressourcen unterstützen Map(NO_OVERWRITE) nicht, dies kann jedoch implementiert werden, indem stattdessen die zugrunde liegende D3D12-Ressource zugeordnet wird. Wenn Sie einen Kartenaufruf für eine umschlossene Ressource ausgeben, werden alle D3D11-Arbeiten synchronisiert, die für diese Ressource übermittelt werden, es sei denn, das DO_NOT_WAIT-Flag wurde verwendet.
StructureByteStride
Die Größe jedes Elements in der Pufferstruktur (in Bytes), wenn der Puffer einen strukturierten Puffer darstellt.
Hinweise
Verwenden Sie diese Struktur mit CreateWrappedResource.
Anforderungen
Anforderung | Wert |
---|---|
Header | d3d11on12.h |