enumeración D3D12_RESOURCE_FLAGS (d3d12.h)

Define constantes que especifican opciones para trabajar con recursos.

Syntax

typedef enum D3D12_RESOURCE_FLAGS {
  D3D12_RESOURCE_FLAG_NONE = 0,
  D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1,
  D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2,
  D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4,
  D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8,
  D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10,
  D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20,
  D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40,
  D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 0x80,
  D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 0x100
} ;

Constantes

 
D3D12_RESOURCE_FLAG_NONE
Valor: 0
No se especifican opciones.
D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET
Valor: 0x1
Permite crear una vista de destino de representación para el recurso; y también permite que el recurso pase al estado de D3D12_RESOURCE_STATE_RENDER_TARGET. Algunas arquitecturas de adaptador asignan memoria adicional para texturas con esta marca para reducir el ancho de banda efectivo durante la representación común. Esta característica puede no ser beneficiosa para las texturas que nunca se representan en, ni está disponible para texturas comprimidas con formatos BC. La aplicación debe evitar establecer esta marca cuando la representación nunca se produzca.

Se aplican las siguientes restricciones e interacciones:
D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL
Valor: 0x2
Permite crear una vista de galería de símbolos de profundidad para el recurso, así como permite que el recurso pase al estado de D3D12_RESOURCE_STATE_DEPTH_WRITE o D3D12_RESOURCE_STATE_DEPTH_READ. La mayoría de las arquitecturas de adaptador asignan memoria adicional para texturas con esta marca para reducir el ancho de banda efectivo y maximizar las optimizaciones para la prueba de profundidad temprana. La aplicación debe evitar establecer esta marca cuando nunca se produzcan operaciones de profundidad.

Se aplican las siguientes restricciones e interacciones:

  • El formato de textura debe admitir funcionalidades de galería de símbolos de profundidad en el nivel de característica actual. O bien, cuando el formato es un formato sin tipo, un formato dentro del mismo grupo sin tipos debe admitir funcionalidades de galería de símbolos de profundidad en el nivel de característica actual.

  • No se puede usar con D3D12_RESOURCE_DIMENSION_BUFFER, Alineación de 4 KB, D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET, D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS, D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS, D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, ni se usan con montones que tienen D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES o D3D12_HEAP_FLAG_ALLOW_DISPLAY.

  • Impide el uso de WriteToSubresource y ReadFromSubresource.

  • Impide la copia de GPU de una subregión. CopyTextureRegion debe copiar un subrecurso completo hacia o desde recursos con esta marca.

D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS
Valor: 0x4
Permite crear una vista de acceso desordenada para el recurso, así como permite que el recurso pase al estado de D3D12_RESOURCE_STATE_UNORDERED_ACCESS. Algunas arquitecturas de adaptador deben recurrir a diseños de textura menos eficaces para proporcionar esta funcionalidad. Si rara vez se usa una textura para el acceso desordenado, puede que valga la pena tener dos texturas alrededor y copiar entre ellas. Una textura tendría esta marca, mientras que la otra no. La aplicación debe evitar establecer esta marca cuando nunca se produzcan operaciones de acceso desordenadas.

Se aplican las siguientes restricciones e interacciones:
D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE
Valor: 0x8
No permite crear una vista de recursos del sombreador para el recurso, así como deshabilitar la transición del recurso al estado de D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE o D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE. Algunas arquitecturas de adaptador experimentan un mayor ancho de banda para texturas de galería de símbolos de profundidad cuando se excluyen las vistas de recursos del sombreador. Si rara vez se usa una textura para los recursos del sombreador, puede que valga la pena tener dos texturas alrededor y copiar entre ellos. Una textura tendría esta marca, mientras que la otra no. La aplicación debe establecer esta marca cuando las texturas de galería de símbolos de profundidad nunca se usarán en las vistas de recursos del sombreador.

Se aplican las siguientes restricciones e interacciones:

  • Debe usarse con D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL.

D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER
Valor: 0x10
Permite usar el recurso para los datos entre adaptadores, así como las características habilitadas por D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS. Los recursos entre adaptadores suelen impedir técnicas que reducen el ancho de banda de textura eficaz durante el uso y algunas arquitecturas de adaptador pueden requerir un comportamiento de almacenamiento en caché diferente. La aplicación debe evitar establecer esta marca cuando los datos del recurso nunca se usarán con otro adaptador.

Se aplican las siguientes restricciones e interacciones:
D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS
Valor: 0x20
Permite que varios procesos, dispositivos o colas diferentes accedan simultáneamente a un recurso (por ejemplo, permite usar un recurso con transiciones de ResourceBarrier realizadas en más de una lista de comandos que se ejecuta al mismo tiempo).

El acceso simultáneo permite varios lectores y un escritor, siempre y cuando el escritor no modifique simultáneamente los elementos de textura a los que acceden otros lectores. Algunas arquitecturas de adaptadores no pueden aprovechar técnicas para reducir el ancho de banda de textura eficaz durante el uso.

Sin embargo, la aplicación debe evitar establecer esta marca cuando no se requieren varios lectores durante escrituras frecuentes y no superpuestas en texturas. El uso de esta marca puede poner en peligro las barreras de recursos para realizar esperas y evitar que se use cualquier compresión con un recurso.

Se aplican las siguientes restricciones e interacciones:

  • No se puede usar con D3D12_RESOURCE_DIMENSION_BUFFER; pero los búferes siempre tienen las propiedades representadas por esta marca.

  • No se puede usar con texturas MSAA.

  • No se puede usar con D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL.

D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY
Valor: 0x40
Especifica que este recurso solo se puede usar como marco de referencia de descodificación. La operación de descodificación de vídeo puede escribirla o leerla únicamente.

D3D12_VIDEO_DECODE_TIER_1 y D3D12_VIDEO_DECODE_TIER_2 pueden notificar D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED en la marca de configuración de estructura de D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT . Si esto sucede, la aplicación debe asignar marcos de referencia con la marca de recursos D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY .

D3D12_VIDEO_DECODE_TIER_3 no debe establecer el [D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED]
(.. Marca de configuración /d3d12video/ne-d3d12video-d3d12_video_decode_configuration_flags) y no debe requerir el uso de esta marca de recurso.
D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY
Valor: 0x80
Especifica que este recurso solo se puede usar como marco de referencia de codificación. Puede escribirse en la operación de codificación de vídeo o de solo lectura.
D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE
Valor: 0x100
Reservado para uso futuro. No lo use.

Requiere el SDK de agilidad de DirectX 12 1.7 o posterior. Indica que se va a usar un búfer como estructura de aceleración de raytracing.

Comentarios

El miembro Flags del D3D12_RESOURCE_DESC usa esta enumeración.

Requisitos

   
Encabezado d3d12.h

Consulte también