enumeración D3D11_RESOURCE_MISC_FLAG (d3d11.h)

Identifica las opciones de los recursos.

Syntax

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,
  D3D11_RESOURCE_MISC_NO_SHADER_ACCESS
} ;

Constantes

 
D3D11_RESOURCE_MISC_GENERATE_MIPS
Valor: 0x1L
Habilita la generación de mapas MIP mediante ID3D11DeviceContext::GenerateMips en un recurso de textura. El recurso debe crearse con las marcas de enlace que especifican que el recurso es un destino de representación y un recurso de sombreador.
D3D11_RESOURCE_MISC_SHARED
Valor: 0x2L
Habilita el uso compartido de datos de recursos entre dos o más dispositivos Direct3D. Los únicos recursos que se pueden compartir son texturas no mipmapped 2D.


D3D11_RESOURCE_MISC_SHARED y D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX son mutuamente excluyentes.


Los dispositivos WARP y REF no admiten recursos compartidos.
Si intenta crear un recurso con esta marca en un dispositivo WARP o REF , el método create devolverá un código de error E_OUTOFMEMORY .


Nota A partir de Windows 8, los dispositivos WARP admiten totalmente los recursos compartidos.

 

Nota A partir de Windows 8, se recomienda habilitar el uso compartido de datos de recursos entre dos o más dispositivos Direct3D mediante una combinación de las marcas de D3D11_RESOURCE_MISC_SHARED_NTHANDLE y D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX en su lugar.

 
D3D11_RESOURCE_MISC_TEXTURECUBE
Valor: 0x4L
Establece un recurso como una textura de cubo creada a partir de texture2DArray que contiene 6 texturas.
D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS
Valor: 0x10L
Habilita la creación de instancias de contenido generado por GPU.
D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS
Valor: 0x20L
Habilita un recurso como un búfer de direcciones de bytes.
D3D11_RESOURCE_MISC_BUFFER_STRUCTURED
Valor: 0x40L
Habilita un recurso como un búfer estructurado.
D3D11_RESOURCE_MISC_RESOURCE_CLAMP
Valor: 0x80L
Habilita un recurso con fijación de mapa MIP para su uso con ID3D11DeviceContext::SetResourceMinLOD.
D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX
Valor: 0x100L
Permite sincronizar el recurso mediante IDXGIKeyedMutex::AcquireSync y
IDXGIKeyedMutex::ReleaseSync Apis.
Las siguientes API de creación de recursos de Direct3D 11, que toman D3D11_RESOURCE_MISC_FLAG parámetros, se han ampliado para admitir la nueva marca.


Si llama a cualquiera de estos métodos con la marca D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX establecida, la interfaz devuelta admitirá la interfaz IDXGIKeyedMutex . Puede recuperar un puntero a la interfaz IDXGIKeyedMutex del recurso mediante IUnknown::QueryInterface. La interfaz IDXGIKeyedMutex implementa las API IDXGIKeyedMutex::AcquireSync e IDXGIKeyedMutex::ReleaseSync para sincronizar el acceso a la superficie. El dispositivo que crea la superficie y cualquier otro dispositivo que abra la superficie mediante OpenSharedResource, debe llamar a IDXGIKeyedMutex::AcquireSync antes de emitir comandos de representación en la superficie. Cuando esos dispositivos terminen de representarse, deben llamar a IDXGIKeyedMutex::ReleaseSync.


D3D11_RESOURCE_MISC_SHARED y D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX son mutuamente excluyentes.


Los dispositivos WARP y REF no admiten recursos compartidos.
Si intenta crear un recurso con esta marca en un dispositivo WARP o REF , el método create devolverá un código de error E_OUTOFMEMORY .


Nota A partir de Windows 8, los dispositivos WARP admiten totalmente los recursos compartidos.

 
D3D11_RESOURCE_MISC_GDI_COMPATIBLE
Valor: 0x200L
Habilita un recurso compatible con GDI. Debe establecer la marca de D3D11_RESOURCE_MISC_GDI_COMPATIBLE en superficies que use con GDI. Al establecer la marca D3D11_RESOURCE_MISC_GDI_COMPATIBLE se permite la representación de GDI en la superficie a través de IDXGISurface1::GetDC.


Tenga en cuenta las siguientes sugerencias de programación para usar D3D11_RESOURCE_MISC_GDI_COMPATIBLE cuando cree una textura o use esa textura en una cadena de intercambio:


  • D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX y D3D11_RESOURCE_MISC_GDI_COMPATIBLE son mutuamente excluyentes. Por lo tanto, no los use juntos.

  • D3D11_RESOURCE_MISC_RESOURCE_CLAMP y D3D11_RESOURCE_MISC_GDI_COMPATIBLE son mutuamente excluyentes. Por lo tanto, no los use juntos.

  • Debe enlazar la textura como destino de representación para la fase de fusión de salida. Por ejemplo, establezca la marca D3D11_BIND_RENDER_TARGET en el miembro BindFlags de la estructura D3D11_TEXTURE2D_DESC .

  • Debe establecer el número máximo de niveles de mapa de MIP en 1. Por ejemplo, establezca el miembro MipLevels de la estructura D3D11_TEXTURE2D_DESC en 1.

  • Debe especificar que la textura requiere acceso de lectura y escritura mediante la GPU. Por ejemplo, establezca el miembro Usage de la estructura D3D11_TEXTURE2D_DESC en D3D11_USAGE_DEFAULT.


  • Debe establecer el formato de textura en uno de los tipos siguientes.


    • DXGI_FORMAT_B8G8R8A8_UNORM

    • DXGI_FORMAT_B8G8R8A8_TYPELESS

    • DXGI_FORMAT_B8G8R8A8_UNORM_SRGB

    Por ejemplo, establezca el miembro Format de la estructura D3D11_TEXTURE2D_DESC en uno de estos tipos.

  • No se puede usar D3D11_RESOURCE_MISC_GDI_COMPATIBLE con muestreo múltiple. Por lo tanto, establezca el miembro Count de la estructura DXGI_SAMPLE_DESC en 1. A continuación, establezca el miembro SampleDesc de la estructura D3D11_TEXTURE2D_DESC en esta estructura de DXGI_SAMPLE_DESC .

D3D11_RESOURCE_MISC_SHARED_NTHANDLE
Valor: 0x800L
Establezca esta marca para habilitar el uso de valores NT HANDLE al crear un recurso compartido. Al habilitar esta marca, se deja de usar los valores HANDLE existentes.

El valor especifica un nuevo tipo de recurso compartido que dirige el tiempo de ejecución para usar valores NT HANDLE para el recurso compartido. A continuación, el entorno de ejecución debe confirmar que el recurso compartido funciona en todo el hardware en el nivel de característica especificado.


Sin este conjunto de marcas, el tiempo de ejecución no valida estrictamente los parámetros de recursos compartidos (es decir, formatos, marcas, uso, etc.). Cuando el tiempo de ejecución no valida los parámetros de recursos compartidos, el comportamiento de gran parte de la API de Direct3D podría no estar definido y puede variar de controlador a controlador.

Direct3D 11 y versiones anteriores: Este valor no se admite hasta Direct3D 11.1.
D3D11_RESOURCE_MISC_RESTRICTED_CONTENT
Valor: 0x1000L
Establezca esta marca para indicar que el recurso podría contener contenido protegido; por lo tanto, el sistema operativo debe usar el recurso solo cuando el controlador y el hardware admiten la protección de contenido. Si el controlador y el hardware no admiten la protección de contenido e intenta crear un recurso con esta marca, se produce un error en la creación de recursos.

Direct3D 11: Este valor no se admite hasta Direct3D 11.1.
D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE
Valor: 0x2000L
Establezca esta marca para indicar que el sistema operativo restringe el acceso a la superficie compartida. Puede usar esta marca junto con la marca D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER y solo cuando se crea una superficie compartida. El proceso que crea el recurso compartido siempre puede abrir el recurso compartido.

Direct3D 11: Este valor no se admite hasta Direct3D 11.1.
D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER
Valor: 0x4000L
Establezca esta marca para indicar que el controlador restringe el acceso a la superficie compartida. Puede usar esta marca junto con la marca D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE y solo cuando se crea una superficie compartida. El proceso que crea el recurso compartido siempre puede abrir el recurso compartido.

Direct3D 11: Este valor no se admite hasta Direct3D 11.1.
D3D11_RESOURCE_MISC_GUARDED
Valor: 0x8000L
Establezca esta marca para indicar que el recurso está protegido. Las API IDCompositionSurface::BeginDraw (DirectComposition) y ISurfaceImageSourceNative::BeginDraw (Windows Runtime) devuelven este recurso. Para estas API, proporciona una región de interés (ROI) en una superficie que se va a actualizar. Esta superficie no es compatible con varios destinos de representación (MRT).

Un recurso protegido restringe automáticamente todas las escrituras a la región que está relacionada con una de las API anteriores. Además, el recurso aplica el acceso a la ROI con estas restricciones:


Direct3D 11: Este valor no se admite hasta Direct3D 11.1.
D3D11_RESOURCE_MISC_TILE_POOL
Valor: 0x20000L
Establezca esta marca para indicar que el recurso es un grupo de iconos.

Direct3D 11: Este valor no se admite hasta Direct3D 11.2.
D3D11_RESOURCE_MISC_TILED
Valor: 0x40000L
Establezca esta marca para indicar que el recurso es un recurso en mosaico.

Direct3D 11: Este valor no se admite hasta Direct3D 11.2.
D3D11_RESOURCE_MISC_HW_PROTECTED
Valor: 0x80000L
Establezca esta marca para indicar que se debe crear el recurso de forma que esté protegido por el hardware. Se producirá un error en la creación de recursos si no se admite la protección de contenido de hardware.

Esta marca tiene las siguientes restricciones:


  • Esta marca no se puede usar con los siguientes valores de D3D11_USAGE :

    • D3D11_USAGE_DYNAMIC

    • D3D11_USAGE_STAGING



  • Esta marca no se puede usar con los siguientes valores de D3D11_BIND_FLAG .

    • D3D11_BIND_VERTEX_BUFFER

    • D3D11_BIND_INDEX_BUFFER



  • No se puede especificar ninguna marca de acceso de CPU.


Nota  

La creación de una textura con esta marca no garantiza automáticamente que la protección de hardware esté habilitada para la asignación subyacente. Algunas implementaciones requieren que los componentes drm se inicialicen primero antes de cualquier garantía de protección.


 

Nota Este valor de enumeración se admite a partir de Windows 10.
D3D11_RESOURCE_MISC_SHARED_DISPLAYABLE
Permite que el recurso funcione con la característica de superficies que se pueden mostrar . Debe usar D3D11_RESOURCE_MISC_SHARED_DISPLAYABLE en combinación con D3D11_RESOURCE_MISC_SHARED y D3D11_RESOURCE_MISC_SHARED_NTHANDLE.
D3D11_RESOURCE_MISC_SHARED_EXCLUSIVE_WRITER
TBD

Comentarios

Esta enumeración se usa en D3D11_BUFFER_DESC, D3D11_TEXTURE1D_DESC, D3D11_TEXTURE2D_DESC, D3D11_TEXTURE3D_DESC.

Estas marcas se pueden combinar mediante OR bit a bit.

No se puede usar el D3D11_RESOURCE_MISC_FLAG al crear recursos con marcas de D3D11_CPU_ACCESS .

Requisitos

Requisito Valor
Header d3d11.h

Consulte también

Enumeraciones de recursos