estructura D3D11_RESOURCE_FLAGS (d3d11on12.h)
Se usa con ID3D11On12Device::CreateWrappedResource para invalidar las marcas inferidas por las propiedades de recurso o las propiedades del montón, incluidas las marcas de enlace, las marcas incorrectas y las marcas de acceso de CPU.
Sintaxis
typedef struct D3D11_RESOURCE_FLAGS {
UINT BindFlags;
UINT MiscFlags;
UINT CPUAccessFlags;
UINT StructureByteStride;
} D3D11_RESOURCE_FLAGS;
Miembros
BindFlags
Las marcas de enlace deben ser inferidas completamente o completamente especificadas para permitir que el controlador de gráficos de ámbito de un recurso D3D12 general sea algo que D3D11 pueda entender.
Si se especifica una marca de enlace que no es compatible con el recurso proporcionado, se devolverá un error.
No se presuponen las marcas de enlace siguientes (D3D11_BIND_FLAG constantes de enumeración) y se deben especificar para que se use un recurso de tal manera:
- 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, siempre que D3D12_RESOURCE_MISC_DENY_SHADER_RESOURCE no esté presente
- D3D11_BIND_RENDER_TARGET, si D3D12_RESOURCE_MISC_ALLOW_RENDER_TARGET está presente
- D3D11_BIND_DEPTH_STENCIL, si D3D12_RESOURCE_MISC_ALLOW_DEPTH_STENCIL está presente
- D3D11_BIND_UNORDERED_ACCESS, si D3D12_RESOURCE_MISC_ALLOW_UNORDERED_ACCESS está presente
MiscFlags
Si las marcas incorrectas no son cero, las marcas especificadas serán OR en el último desc del recurso con marcas inferidas. Las marcas incorrectas se pueden especificar parcialmente para agregar funcionalidad, pero las marcas incorrectas que están implícitas no se pueden enmascarar.
No se presuponen las siguientes marcas incorrectas (D3D11_RESOURCE_MISC_FLAG constantes de enumeración):
- D3D11_RESOURCE_MISC_GENERATE_MIPS (entra en conflicto con CLAMP).
- D3D11_RESOURCE_MISC_TEXTURECUBE (modifica el comportamiento predeterminado de la vista).
- D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS (exclusivo con algunas marcas de enlace).
- D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS (exclusivo con otros tipos de UAV).
- D3D11_RESOURCE_MISC_BUFFER_STRUCTURED (exclusivo con otros tipos de UAV).
- D3D11_RESOURCE_MISC_RESOURCE_CLAMP (prohíbe las QIs D3D10, entra en conflicto con GENERATE_MIPS).
- D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX. Es posible crear un recurso de exclusión mutua con clave D3D11, crear un identificador compartido para él y abrirlo a través de 11on12 o D3D11.
- D3D11_RESOURCE_MISC_SHARED, D3D11_RESOURCE_MISC_SHARED_NTHANDLE, D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE, si hay marcas incorrectas de montón adecuadas.
- D3D11_RESOURCE_MISC_GDI_COMPATIBLE, si el recurso D3D12 es compatible con GDI.
- D3D11_RESOURCE_MISC_TILED, si se creó el recurso D3D12 mediante CreateReservedResource.
- D3D11_RESOURCE_MISC_TILE_POOL, si se pasó un montón D3D12.
- D3D11_RESOURCE_MISC_RESTRICTED_CONTENT, ya que D3D12 solo admite la protección de hardware.
- D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER no existe en 12 y no se puede agregar después de la creación de recursos.
- D3D11_RESOURCE_MISC_GUARDED solo está pensado para establecerse mediante un mecanismo de creación interno.
CPUAccessFlags
CpuAccessFlags no se deduce del recurso D3D12. Esto se debe a que todos los recursos se tratan como D3D11_USAGE_DEFAULT, por lo que CPUAccessFlags fuerza la validación, que supone la asignación de búferes predeterminados o texturas. Los recursos ajustados no admiten Map(DISCARD). Los recursos encapsulados no admiten Map(NO_OVERWRITE), pero se pueden implementar mediante la asignación del recurso D3D12 subyacente en su lugar. La emisión de una llamada de asignación en un recurso ajustado se sincronizará con todo el trabajo D3D11 enviado en ese recurso, a menos que se use la marca DO_NOT_WAIT.
StructureByteStride
Tamaño de cada elemento de la estructura del búfer (en bytes) cuando el búfer representa un búfer estructurado.
Comentarios
Use esta estructura con CreateWrappedResource.
Requisitos
Requisito | Valor |
---|---|
Header | d3d11on12.h |