enumerazione D3D11_RESOURCE_MISC_FLAG (d3d11.h)

Identifica le opzioni per le risorse.

Sintassi

typedef enum D3D11_RESOURCE_MISC_FLAG {
  D3D11_RESOURCE_MISC_GENERATE_MIPS = 0x1L,
  D3D11_RESOURCE_MISC_SHARED = 0x2L,
  D3D11_RESOURCE_MISC_TEXTURECUBE = 0x4L,
  D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS = 0x10L,
  D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS = 0x20L,
  D3D11_RESOURCE_MISC_BUFFER_STRUCTURED = 0x40L,
  D3D11_RESOURCE_MISC_RESOURCE_CLAMP = 0x80L,
  D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX = 0x100L,
  D3D11_RESOURCE_MISC_GDI_COMPATIBLE = 0x200L,
  D3D11_RESOURCE_MISC_SHARED_NTHANDLE = 0x800L,
  D3D11_RESOURCE_MISC_RESTRICTED_CONTENT = 0x1000L,
  D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE = 0x2000L,
  D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER = 0x4000L,
  D3D11_RESOURCE_MISC_GUARDED = 0x8000L,
  D3D11_RESOURCE_MISC_TILE_POOL = 0x20000L,
  D3D11_RESOURCE_MISC_TILED = 0x40000L,
  D3D11_RESOURCE_MISC_HW_PROTECTED = 0x80000L,
  D3D11_RESOURCE_MISC_SHARED_DISPLAYABLE,
  D3D11_RESOURCE_MISC_SHARED_EXCLUSIVE_WRITER
} ;

Costanti

 
D3D11_RESOURCE_MISC_GENERATE_MIPS
Valore: 0x1L
Abilita la generazione di mappe MIP usando ID3D11DeviceContext::GenerateMips in una risorsa trama. La risorsa deve essere creata con i flag di associazione che specificano che la risorsa è una destinazione di rendering e una risorsa shader.
D3D11_RESOURCE_MISC_SHARED
Valore: 0x2L
Abilita la condivisione dei dati delle risorse tra due o più dispositivi Direct3D. Le uniche risorse che possono essere condivise sono trame non mipmapped 2D.


D3D11_RESOURCE_MISC_SHARED e D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX si escludono a vicenda.


I dispositivi WARP e REF non supportano le risorse condivise.
Se si tenta di creare una risorsa con questo flag in un dispositivo WARP o REF , il metodo create restituirà un codice di errore E_OUTOFMEMORY .


Nota A partire da Windows 8, i dispositivi WARP supportano completamente le risorse condivise.

 

Nota A partire da Windows 8, è consigliabile abilitare la condivisione dei dati delle risorse tra due o più dispositivi Direct3D usando una combinazione dei flag D3D11_RESOURCE_MISC_SHARED_NTHANDLE e D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX.

 
D3D11_RESOURCE_MISC_TEXTURECUBE
Valore: 0x4L
Imposta una risorsa come trama del cubo creata da un oggetto Texture2DArray che contiene 6 trame.
D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS
Valore: 0x10L
Abilita la creazione di istanze del contenuto generato dalla GPU.
D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS
Valore: 0x20L
Abilita una risorsa come buffer di indirizzi di byte.
D3D11_RESOURCE_MISC_BUFFER_STRUCTURED
Valore: 0x40L
Abilita una risorsa come buffer strutturato.
D3D11_RESOURCE_MISC_RESOURCE_CLAMP
Valore: 0x80L
Abilita una risorsa con blocco mappa MIP da usare con ID3D11DeviceContext::SetResourceMinLOD.
D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX
Valore: 0x100L
Consente di sincronizzare la risorsa usando IDXGIKeyedMutex::AcquireSync e
IDXGIKeyedMutex::ReleaseSync Api.
Le API di creazione delle risorse Direct3D 11 seguenti, che accettano D3D11_RESOURCE_MISC_FLAG parametri, sono state estese per supportare il nuovo flag.


Se si chiama uno di questi metodi con il set di flag D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX , l'interfaccia restituita supporterà l'interfaccia IDXGIKeyedMutex . È possibile recuperare un puntatore all'interfaccia IDXGIKeyedMutex dalla risorsa usando IUnknown::QueryInterface. L'interfaccia IDXGIKeyedMutex implementa le API IDXGIKeyedMutex::AcquireSync e IDXGIKeyedMutex::ReleaseSync per sincronizzare l'accesso alla superficie. Il dispositivo che crea la superficie e qualsiasi altro dispositivo che apre la superficie usando OpenSharedResource deve chiamare IDXGIKeyedMutex::AcquireSync prima di eseguire comandi di rendering sulla superficie. Al termine del rendering, questi dispositivi devono chiamare IDXGIKeyedMutex::ReleaseSync.


D3D11_RESOURCE_MISC_SHARED e D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX si escludono a vicenda.


I dispositivi WARP e REF non supportano le risorse condivise.
Se si tenta di creare una risorsa con questo flag in un dispositivo WARP o REF , il metodo create restituirà un codice di errore E_OUTOFMEMORY .


Nota A partire da Windows 8, i dispositivi WARP supportano completamente le risorse condivise.

 
D3D11_RESOURCE_MISC_GDI_COMPATIBLE
Valore: 0x200L
Abilita una risorsa compatibile con GDI. È necessario impostare il flag di D3D11_RESOURCE_MISC_GDI_COMPATIBLE sulle superfici usate con GDI. L'impostazione del flag D3D11_RESOURCE_MISC_GDI_COMPATIBLE consente il rendering GDI sulla superficie tramite IDXGISurface1::GetDC.


Prendere in considerazione i suggerimenti di programmazione seguenti per l'uso di D3D11_RESOURCE_MISC_GDI_COMPATIBLE quando si crea una trama o si usa tale trama in una catena di scambio:


  • D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX e D3D11_RESOURCE_MISC_GDI_COMPATIBLE si escludono a vicenda. Pertanto, non usarli insieme.

  • D3D11_RESOURCE_MISC_RESOURCE_CLAMP e D3D11_RESOURCE_MISC_GDI_COMPATIBLE si escludono a vicenda. Pertanto, non usarli insieme.

  • È necessario associare la trama come destinazione di rendering per la fase di fusione dell'output. Ad esempio, impostare il flag D3D11_BIND_RENDER_TARGET nel membro BindFlags della struttura D3D11_TEXTURE2D_DESC .

  • È necessario impostare il numero massimo di livelli di mappa MIP su 1. Ad esempio, impostare il membro MipLevels della struttura D3D11_TEXTURE2D_DESC su 1.

  • È necessario specificare che la trama richiede l'accesso in lettura e scrittura dalla GPU. Ad esempio, impostare il membro Usage della struttura D3D11_TEXTURE2D_DESC su D3D11_USAGE_DEFAULT.


  • È necessario impostare il formato trama su uno dei tipi seguenti.


    • DXGI_FORMAT_B8G8R8A8_UNORM

    • DXGI_FORMAT_B8G8R8A8_TYPELESS

    • DXGI_FORMAT_B8G8R8A8_UNORM_SRGB

    Ad esempio, impostare il membro Format della struttura D3D11_TEXTURE2D_DESC su uno di questi tipi.

  • Non è possibile usare D3D11_RESOURCE_MISC_GDI_COMPATIBLE con multicampionamento. Impostare quindi il membro Count della struttura DXGI_SAMPLE_DESC su 1. Impostare quindi il membro SampleDesc della struttura D3D11_TEXTURE2D_DESC su questa struttura DXGI_SAMPLE_DESC .

D3D11_RESOURCE_MISC_SHARED_NTHANDLE
Valore: 0x800L
Impostare questo flag per abilitare l'uso dei valori NT HANDLE quando si crea una risorsa condivisa. Abilitando questo flag, si depreca l'uso dei valori HANDLE esistenti.

Il valore specifica un nuovo tipo di risorsa condivisa che indirizza il runtime all'uso dei valori NT HANDLE per la risorsa condivisa. Il runtime deve quindi verificare che la risorsa condivisa funzioni su tutti gli hardware a livello di funzionalità specificato.


Senza questo flag impostato, il runtime non convalida rigorosamente i parametri delle risorse condivise, ovvero formati, flag, utilizzo e così via. Quando il runtime non convalida i parametri delle risorse condivise, il comportamento di gran parte dell'API Direct3D potrebbe non essere definito e può variare da driver a driver.

Direct3D 11 e versioni precedenti: Questo valore non è supportato fino a Direct3D 11.1.
D3D11_RESOURCE_MISC_RESTRICTED_CONTENT
Valore: 0x1000L
Impostare questo flag per indicare che la risorsa potrebbe contenere contenuto protetto; pertanto, il sistema operativo deve usare la risorsa solo quando il driver e l'hardware supportano la protezione del contenuto. Se il driver e l'hardware non supportano la protezione del contenuto e si tenta di creare una risorsa con questo flag, la creazione della risorsa ha esito negativo.

Direct3D 11: Questo valore non è supportato fino a Direct3D 11.1.
D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE
Valore: 0x2000L
Impostare questo flag per indicare che il sistema operativo limita l'accesso alla superficie condivisa. È possibile usare questo flag insieme al flag D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER e solo quando si crea una superficie condivisa. Il processo che crea la risorsa condivisa può sempre aprire la risorsa condivisa.

Direct3D 11: Questo valore non è supportato fino a Direct3D 11.1.
D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER
Valore: 0x4000L
Impostare questo flag per indicare che il driver limita l'accesso alla superficie condivisa. È possibile usare questo flag in combinazione con il flag D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE e solo quando si crea una superficie condivisa. Il processo che crea la risorsa condivisa può sempre aprire la risorsa condivisa.

Direct3D 11: Questo valore non è supportato fino a Direct3D 11.1.
D3D11_RESOURCE_MISC_GUARDED
Valore: 0x8000L
Impostare questo flag per indicare che la risorsa è protetta. Tale risorsa viene restituita dalle API IDCompositionSurface::BeginDraw (DirectComposition) e ISurfaceImageSourceNative::BeginDraw (Windows Runtime). Per queste API, fornisci un'area di interesse (ROI) in una superficie da aggiornare. Questa superficie non è compatibile con più destinazioni di rendering (MRT).

Una risorsa sorvegliata limita automaticamente tutte le scritture nell'area correlata a una delle API precedenti. Inoltre, la risorsa applica l'accesso al ROI con queste restrizioni:


Direct3D 11: Questo valore non è supportato fino a Direct3D 11.1.
D3D11_RESOURCE_MISC_TILE_POOL
Valore: 0x20000L
Impostare questo flag per indicare che la risorsa è un pool di riquadri.

Direct3D 11: Questo valore non è supportato fino a Direct3D 11.2.
D3D11_RESOURCE_MISC_TILED
Valore: 0x40000L
Impostare questo flag per indicare che la risorsa è una risorsa riquadri.

Direct3D 11: Questo valore non è supportato fino a Direct3D 11.2.
D3D11_RESOURCE_MISC_HW_PROTECTED
Valore: 0x80000L
Impostare questo flag per indicare che la risorsa deve essere creata in modo che sia protetta dall'hardware. La creazione delle risorse avrà esito negativo se la protezione del contenuto hardware non è supportata.

Questo flag presenta le restrizioni seguenti:


  • Questo flag non può essere usato con i valori di D3D11_USAGE seguenti:

    • D3D11_USAGE_DYNAMIC

    • D3D11_USAGE_STAGING



  • Questo flag non può essere usato con i valori di D3D11_BIND_FLAG seguenti.

    • D3D11_BIND_VERTEX_BUFFER

    • D3D11_BIND_INDEX_BUFFER



  • Non è possibile specificare flag di accesso alla CPU.


Nota  

La creazione di una trama con questo flag non garantisce automaticamente che la protezione hardware venga abilitata per l'allocazione sottostante. Alcune implementazioni richiedono che i componenti DRM vengano inizializzati prima di qualsiasi garanzia di protezione.


 

Nota Questo valore di enumerazione è supportato a partire da Windows 10.
D3D11_RESOURCE_MISC_SHARED_DISPLAYABLE
Consente alla risorsa di usare la funzionalità superfici visualizzabili . È necessario usare D3D11_RESOURCE_MISC_SHARED_DISPLAYABLE in combinazione con D3D11_RESOURCE_MISC_SHARED e D3D11_RESOURCE_MISC_SHARED_NTHANDLE.
D3D11_RESOURCE_MISC_SHARED_EXCLUSIVE_WRITER
TBD

Commenti

Questa enumerazione viene usata in D3D11_BUFFER_DESC, D3D11_TEXTURE1D_DESC, D3D11_TEXTURE2D_DESC, D3D11_TEXTURE3D_DESC.

Questi flag possono essere combinati da OR bit per bit.

Impossibile usare D3D11_RESOURCE_MISC_FLAG durante la creazione di risorse con flag di D3D11_CPU_ACCESS .

Requisiti

Requisito Valore
Intestazione d3d11.h

Vedi anche

Enumerazioni delle risorse