D3D11_RESOURCE_FLAGS struttura (d3d11on12.h)

Usato con ID3D11On12Device::CreateWrappedResource per eseguire l'override dei flag che verranno dedotti dalle proprietà delle risorse o dalle proprietà heap, inclusi flag di associazione, flag di misc e flag di accesso della CPU.

Sintassi

typedef struct D3D11_RESOURCE_FLAGS {
  UINT BindFlags;
  UINT MiscFlags;
  UINT CPUAccessFlags;
  UINT StructureByteStride;
} D3D11_RESOURCE_FLAGS;

Members

BindFlags

I flag di associazione devono essere completamente dedotti o completamente specificati per consentire al driver grafico di definire l'ambito di una risorsa D3D12 generale in un elemento che D3D11 può comprendere.

Se viene specificato un flag di associazione che non è supportato dalla risorsa specificata, verrà restituito un errore.

I flag di associazione seguenti (costanti di enumerazione D3D11_BIND_FLAG) non verranno assunti e devono essere specificati per poter usare una risorsa in modo simile:

  • D3D11_BIND_VERTEX_BUFFER
  • D3D11_BIND_INDEX_BUFFER
  • D3D11_BIND_CONSTANT_BUFFER
  • D3D11_BIND_STREAM_OUTPUT
  • D3D11_BIND_DECODER
  • D3D11_BIND_VIDEO_ENCODER
I flag di associazione seguenti verranno assunti in base alla presenza del flag di risorse D3D12 corrispondente e possono essere rimossi specificando flag di associazione:
  • D3D11_BIND_SHADER_RESOURCE, purché D3D12_RESOURCE_MISC_DENY_SHADER_RESOURCE non sia presente
  • D3D11_BIND_RENDER_TARGET, se è presente D3D12_RESOURCE_MISC_ALLOW_RENDER_TARGET
  • D3D11_BIND_DEPTH_STENCIL, se è presente D3D12_RESOURCE_MISC_ALLOW_DEPTH_STENCIL
  • D3D11_BIND_UNORDERED_ACCESS, se è presente D3D12_RESOURCE_MISC_ALLOW_UNORDERED_ACCESS
È possibile eseguire il wrapping di una destinazione di rendering o di un buffer UAV senza eseguire l'override dei flag; ma un buffer VB/IB/CB/SO deve avere flag di associazione specificati manualmente, poiché questi sono reciprocamente esclusivi in Direct3D 11.

MiscFlags

Se i flag misc non sono zero, eventuali flag specificati saranno OR nel desc finale delle risorse con flag posticipati. I flag misc possono essere parzialmente specificati per aggiungere funzionalità, ma i flag misc che non possono essere mascherati.

Non verranno assunti i flag di enumerazione seguenti (costanti di enumerazione D3D11_RESOURCE_MISC_FLAG):

  • D3D11_RESOURCE_MISC_GENERATE_MIPS (conflitti con CLAMP).
  • D3D11_RESOURCE_MISC_TEXTURECUBE (modifica il comportamento predefinito della visualizzazione).
  • D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS (esclusivo con alcuni flag di associazione).
  • D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS (esclusivo con altri tipi di UAV).
  • D3D11_RESOURCE_MISC_BUFFER_STRUCTURED (esclusivo con altri tipi di UAV).
  • D3D11_RESOURCE_MISC_RESOURCE_CLAMP (impedisce D3D10 QIs, conflitti con GENERATE_MIPS).
  • D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX. È possibile creare una risorsa mutex con chiave D3D11, crearne un handle condiviso e aprirla tramite 11on12 o D3D11.
I flag di misc seguenti verranno assunti e non possono essere rimossi dal desc della risorsa prodotta. Se una di queste è impostata e la risorsa D3D12 non lo supporta, la creazione avrà esito negativo:
  • D3D11_RESOURCE_MISC_SHARED, D3D11_RESOURCE_MISC_SHARED_NTHANDLE, D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE, se sono presenti flag di errore heap appropriati.
  • D3D11_RESOURCE_MISC_GDI_COMPATIBLE, se la risorsa D3D12 è compatibile con GDI.
  • D3D11_RESOURCE_MISC_TILED, se la risorsa D3D12 è stata creata tramite CreateReservedResource.
  • D3D11_RESOURCE_MISC_TILE_POOL, se è stato passato un heap D3D12.
I flag di misc seguenti non sono validi per specificare per questa API:
  • D3D11_RESOURCE_MISC_RESTRICTED_CONTENT, poiché D3D12 supporta solo la protezione hardware.
  • D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER non esiste in 12 e non può essere aggiunto dopo la creazione della risorsa.
  • D3D11_RESOURCE_MISC_GUARDED è destinato solo a essere impostato da un meccanismo di creazione interno.

CPUAccessFlags

Le CPUAccessFlags non vengono derivate dalla risorsa D3D12. Ciò avviee perché tutte le risorse vengono considerate come D3D11_USAGE_DEFAULT, quindi la convalida cpuAccessFlags forza la convalida che presuppone la mappa dei buffer o delle trame predefinite. Le risorse con wrapping non supportano Map(DISCARD). Le risorse con wrapping non supportano map(NO_OVERWRITE), ma che possono essere implementate eseguendo il mapping della risorsa D3D12 sottostante. L'emissione di una chiamata mappa in una risorsa con wrapping verrà sincronizzata con tutte le operazioni D3D11 inviate a tale risorsa, a meno che non sia stato usato il flag di DO_NOT_WAIT.

StructureByteStride

Dimensioni di ogni elemento nella struttura del buffer (in byte) quando il buffer rappresenta un buffer strutturato.

Commenti

Usare questa struttura con CreateWrappedResource.

Requisiti

Requisito Valore
Intestazione d3d11on12.h

Vedi anche

Strutture 11on12