D3D11_RESOURCE_MISC_FLAG enumeração (d3d11.h)
Identifica as opções de 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 a geração de mapa MIP usando ID3D11DeviceContext::GenerateMips em um recurso de textura. O recurso deve ser criado com os sinalizadores de associação que especificam que o recurso é um destino de renderização e um recurso de sombreador. |
D3D11_RESOURCE_MISC_SHARED Valor: 0x2L Habilita o compartilhamento de dados de recursos entre dois ou mais dispositivos Direct3D. Os únicos recursos que podem ser compartilhados são texturas 2D não mipmapped. D3D11_RESOURCE_MISC_SHARED e D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX são mutuamente exclusivos. Dispositivos WARP e REF não dão suporte a recursos compartilhados. Se você tentar criar um recurso com esse sinalizador em um dispositivo WARP ou REF , o método create retornará um código de erro E_OUTOFMEMORY .
Nota Começando com Windows 8, os dispositivos WARP dão suporte total a recursos compartilhados.
Nota Começando com Windows 8, recomendamos que você habilite o compartilhamento de dados de recursos entre dois ou mais dispositivos Direct3D usando uma combinação dos sinalizadores D3D11_RESOURCE_MISC_SHARED_NTHANDLE e D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX. |
D3D11_RESOURCE_MISC_TEXTURECUBE Valor: 0x4L Define um recurso como uma textura de cubo criada a partir de um Texture2DArray que contém seis texturas. |
D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS Valor: 0x10L Habilita a instanciação de conteúdo gerado por GPU. |
D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS Valor: 0x20L Habilita um recurso como um buffer de endereço de byte. |
D3D11_RESOURCE_MISC_BUFFER_STRUCTURED Valor: 0x40L Habilita um recurso como um buffer estruturado. |
D3D11_RESOURCE_MISC_RESOURCE_CLAMP Valor: 0x80L Habilita um recurso com a fixação de mapa MIP para uso com ID3D11DeviceContext::SetResourceMinLOD. |
D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX Valor: 0x100L Permite que o recurso seja sincronizado usando o IDXGIKeyedMutex::AcquireSync e IDXGIKeyedMutex::ReleaseSync Apis. As seguintes APIs de criação de recursos do Direct3D 11, que utilizam parâmetros D3D11_RESOURCE_MISC_FLAG , foram estendidas para dar suporte ao novo sinalizador.
Se você chamar qualquer um desses métodos com o sinalizador D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX definido, a interface retornada dará suporte à interface IDXGIKeyedMutex . Você pode recuperar um ponteiro para a interface IDXGIKeyedMutex do recurso usando IUnknown::QueryInterface. A interface IDXGIKeyedMutex implementa as APIs IDXGIKeyedMutex::AcquireSync e IDXGIKeyedMutex::ReleaseSync para sincronizar o acesso à superfície. O dispositivo que cria a superfície e qualquer outro dispositivo que abra a superfície usando OpenSharedResource, deve chamar IDXGIKeyedMutex::AcquireSync antes de emitir comandos de renderização para a superfície. Quando esses dispositivos terminarem de renderizar, eles deverão chamar IDXGIKeyedMutex::ReleaseSync. D3D11_RESOURCE_MISC_SHARED e D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX são mutuamente exclusivos. Dispositivos WARP e REF não dão suporte a recursos compartilhados. Se você tentar criar um recurso com esse sinalizador em um dispositivo WARP ou REF , o método create retornará um código de erro E_OUTOFMEMORY .
Nota Começando com Windows 8, os dispositivos WARP dão suporte total a recursos compartilhados. |
D3D11_RESOURCE_MISC_GDI_COMPATIBLE Valor: 0x200L Habilita um recurso compatível com GDI. Você deve definir o sinalizador D3D11_RESOURCE_MISC_GDI_COMPATIBLE em superfícies que você usa com GDI. Definir o sinalizador D3D11_RESOURCE_MISC_GDI_COMPATIBLE permite a renderização de GDI na superfície por meio de IDXGISurface1::GetDC. Considere as seguintes dicas de programação para usar D3D11_RESOURCE_MISC_GDI_COMPATIBLE ao criar uma textura ou usar essa textura em uma cadeia de troca:
|
D3D11_RESOURCE_MISC_SHARED_NTHANDLE Valor: 0x800L Defina esse sinalizador para habilitar o uso de valores NT HANDLE ao criar um recurso compartilhado. Ao habilitar esse sinalizador, você preteri o uso de valores HANDLE existentes. O valor especifica um novo tipo de recurso compartilhado que direciona o runtime para usar valores NT HANDLE para o recurso compartilhado. Em seguida, o runtime deve confirmar se o recurso compartilhado funciona em todo o hardware no nível de recurso especificado. Sem esse conjunto de sinalizadores, o runtime não valida estritamente os parâmetros de recursos compartilhados (ou seja, formatos, sinalizadores, uso e assim por diante). Quando o runtime não valida parâmetros de recursos compartilhados, o comportamento de grande parte da API do Direct3D pode ser indefinido e pode variar de driver para driver. Direct3D 11 e anterior: Esse valor não tem suporte até Direct3D 11.1. |
D3D11_RESOURCE_MISC_RESTRICTED_CONTENT Valor: 0x1000L Defina esse sinalizador para indicar que o recurso pode conter conteúdo protegido; portanto, o sistema operacional deve usar o recurso somente quando o driver e o hardware dão suporte à proteção de conteúdo. Se o driver e o hardware não derem suporte à proteção de conteúdo e você tentar criar um recurso com esse sinalizador, a criação do recurso falhará. Direct3D 11: Esse valor não tem suporte até Direct3D 11.1. |
D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE Valor: 0x2000L Defina esse sinalizador para indicar que o sistema operacional restringe o acesso à superfície compartilhada. Você pode usar esse sinalizador junto com o sinalizador D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER e somente quando criar uma superfície compartilhada. O processo que cria o recurso compartilhado sempre pode abrir o recurso compartilhado. Direct3D 11: Esse valor não tem suporte até Direct3D 11.1. |
D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER Valor: 0x4000L Defina esse sinalizador para indicar que o driver restringe o acesso à superfície compartilhada. Você pode usar esse sinalizador em conjunto com o sinalizador D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE e somente ao criar uma superfície compartilhada. O processo que cria o recurso compartilhado sempre pode abrir o recurso compartilhado. Direct3D 11: Esse valor não tem suporte até Direct3D 11.1. |
D3D11_RESOURCE_MISC_GUARDED Valor: 0x8000L Defina esse sinalizador para indicar que o recurso está protegido. Esse recurso é retornado pelas APIs IDCompositionSurface::BeginDraw (DirectComposition) e ISurfaceImageSourceNative::BeginDraw (Windows Runtime). Para essas APIs, você fornece uma ROI (região de interesse) em uma superfície para atualizar. Essa superfície não é compatível com vários destinos de renderização (MRT). Um recurso protegido restringe automaticamente todas as gravações na região relacionadas a uma das APIs anteriores. Além disso, o recurso impõe o acesso ao ROI com estas restrições:
Direct3D 11: Esse valor não tem suporte até Direct3D 11.1. |
D3D11_RESOURCE_MISC_TILE_POOL Valor: 0x20000L Defina esse sinalizador para indicar que o recurso é um pool de blocos. Direct3D 11: Esse valor não tem suporte até Direct3D 11.2. |
D3D11_RESOURCE_MISC_TILED Valor: 0x40000L Defina esse sinalizador para indicar que o recurso é um recurso em bloco. Direct3D 11: Esse valor não tem suporte até Direct3D 11.2. |
D3D11_RESOURCE_MISC_HW_PROTECTED Valor: 0x80000L Defina esse sinalizador para indicar que o recurso deve ser criado de modo que ele seja protegido pelo hardware. A criação de recursos falhará se não houver suporte para a proteção de conteúdo de hardware. Esse sinalizador tem as seguintes restrições:
Observação A criação de uma textura usando esse sinalizador não garante automaticamente que a proteção de hardware será habilitada para a alocação subjacente. Algumas implementações exigem que os componentes drm sejam inicializados pela primeira vez antes de quaisquer garantias de proteção. Nota Esse valor de enumeração tem suporte começando com Windows 10. |
D3D11_RESOURCE_MISC_SHARED_DISPLAYABLE Permite que o recurso funcione com o recurso de superfícies exibicionáveis . Você deve usar D3D11_RESOURCE_MISC_SHARED_DISPLAYABLE em combinação com D3D11_RESOURCE_MISC_SHARED e D3D11_RESOURCE_MISC_SHARED_NTHANDLE. |
D3D11_RESOURCE_MISC_SHARED_EXCLUSIVE_WRITER TBD |
Comentários
Essa enumeração é usada em D3D11_BUFFER_DESC, D3D11_TEXTURE1D_DESC, D3D11_TEXTURE2D_DESCD3D11_TEXTURE3D_DESC.
Esses sinalizadores podem ser combinados por OR bit a bit.
O D3D11_RESOURCE_MISC_FLAG não pode ser usado ao criar recursos com sinalizadores de D3D11_CPU_ACCESS .
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | d3d11.h |