estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS (d3d11.h)

Descreve as opções de recursos do Direct3D 11.1 no driver gráfico atual.

Observação

Essa estrutura é compatível com o runtime do Direct3D 11.1, que está disponível no Windows 8 e em sistemas operacionais posteriores.

Sintaxe

typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS {
  BOOL OutputMergerLogicOp;
  BOOL UAVOnlyRenderingForcedSampleCount;
  BOOL DiscardAPIsSeenByDriver;
  BOOL FlagsForUpdateAndCopySeenByDriver;
  BOOL ClearView;
  BOOL CopyWithOverlap;
  BOOL ConstantBufferPartialUpdate;
  BOOL ConstantBufferOffsetting;
  BOOL MapNoOverwriteOnDynamicConstantBuffer;
  BOOL MapNoOverwriteOnDynamicBufferSRV;
  BOOL MultisampleRTVWithForcedSampleCountOne;
  BOOL SAD4ShaderInstructions;
  BOOL ExtendedDoublesShaderInstructions;
  BOOL ExtendedResourceSharing;
} D3D11_FEATURE_DATA_D3D11_OPTIONS;

Membros

OutputMergerLogicOp

Especifica se as operações lógicas estão disponíveis no estado de combinação. O runtime define esse membro como TRUE se as operações lógicas estiverem disponíveis no estado de combinação e FALSE caso contrário. Esse membro é FALSE para o nível de recurso 9.1, 9.2 e 9.3. Esse membro é opcional para o nível de recurso 10, 10.1 e 11. Esse membro é TRUE para o nível de recurso 11.1.

UAVOnlyRenderingForcedSampleCount

Especifica se o driver pode renderizar sem rtvs (exibições de destino de renderização) ou DSVs (exibições de estêncil de profundidade) e apenas exibições de acesso não ordenadas (UAVs) associadas. O runtime define esse membro como TRUE se o driver puder renderizar sem RTVs ou DSVs e apenas UAVs associados e FALSE caso contrário. Se TRUE, você poderá definir o membro ForcedSampleCount de D3D11_RASTERIZER_DESC1 como 1, 4 ou 8 quando você renderizar sem RTVs ou DSV e apenas UAVs associados. Para o nível de recurso 11.1, esse membro é sempre TRUE e você também pode definir ForcedSampleCount como 16, além de 1, 4 ou 8. O valor padrão de ForcedSampleCount é 0, o que significa o mesmo que se o valor estiver definido como 1. Você sempre pode definir ForcedSampleCount como 0 ou 1 para renderização somente UAV independentemente de como esse membro é definido.

DiscardAPIsSeenByDriver

Especifica se o driver dá suporte aos métodos ID3D11DeviceContext1::D iscardView e ID3D11DeviceContext1::D iscardResource . O runtime define esse membro como TRUE se o driver der suporte a esses métodos e FALSE caso contrário. Como esse membro é definido não indica se o driver realmente usa esses métodos; ou seja, o driver poderá ignorar esses métodos se eles não forem úteis para o hardware. Se FALSE, o runtime não exporá esses métodos ao driver porque o driver não dá suporte a eles. Você pode monitorar esse membro durante o desenvolvimento para descartar drivers herdados no hardware em que esses métodos poderiam ter sido benéficos de outra forma. Você não precisa escrever caminhos de código separados com base em se esse membro é VERDADEIRO ou FALSO; você pode chamar esses métodos sempre que aplicável.

FlagsForUpdateAndCopySeenByDriver

Especifica se o driver dá suporte a novas semânticas para cópia e atualização expostas pelos métodos ID3D11DeviceContext1::CopySubresourceRegion1 e ID3D11DeviceContext1::UpdateSubresource1 . O runtime define esse membro como TRUE se o driver der suporte à nova semântica para cópia e atualização. O runtime define esse membro como FALSE somente para drivers herdados. O runtime manipula esse membro de forma semelhante ao membro DiscardAPIsSeenByDriver .

ClearView

Especifica se o driver dá suporte ao método ID3D11DeviceContext1::ClearView . O runtime define esse membro como TRUE se o driver der suporte a esse método e false caso contrário. Se FALSE, o runtime não exporá esse método ao driver porque o driver não dá suporte a ele.

Nota Para o nível de recurso 9.1, 9.2 e 9.3, esse membro é sempre TRUE porque a opção é emulada pelo runtime.
 

CopyWithOverlap

Especifica se você pode chamar ID3D11DeviceContext1::CopySubresourceRegion1 com retângulos de origem e destino sobrepostos. O runtime define esse membro como TRUE se você puder chamar CopySubresourceRegion1 com retângulos de origem e destino sobrepostos e FALSE caso contrário. Se FALSE, o runtime não exporá esse método ao driver porque o driver não dá suporte a ele.

Nota Para o nível de recurso 9.1, 9.2 e 9.3, esse membro é sempre TRUE porque os drivers já dão suporte à opção para esses níveis de recursos.
 

ConstantBufferPartialUpdate

Especifica se o driver dá suporte a atualizações parciais de buffers constantes. O runtime define esse membro como TRUE se o driver der suporte a atualizações parciais de buffers constantes e, caso contrário, FALSE . Se FALSE, o runtime não expõe essa operação ao driver porque o driver não dá suporte a ele.

Nota Para o nível de recurso 9.1, 9.2 e 9.3, esse membro é sempre TRUE porque a opção é emulada pelo runtime.
 

ConstantBufferOffsetting

Especifica se o driver dá suporte à nova semântica para definir deslocamentos em buffers constantes para um sombreador. O runtime define esse membro como TRUE se o driver der suporte para permitir que você especifique deslocamentos ao chamar novos métodos como o método ID3D11DeviceContext1::VSSetConstantBuffers1 e FALSE caso contrário. Se FALSE, o runtime não expõe essa operação ao driver porque o driver não dá suporte a ele.

Nota Para o nível de recurso 9.1, 9.2 e 9.3, esse membro é sempre TRUE porque a opção é emulada pelo runtime.
 

MapNoOverwriteOnDynamicConstantBuffer

Especifica se você pode chamar ID3D11DeviceContext::Map com D3D11_MAP_WRITE_NO_OVERWRITE em um buffer constante dinâmico (ou seja, se o driver dá suporte a essa operação). O runtime define esse membro como TRUE se o driver der suporte a essa operação e false caso contrário. Se FALSE, o runtime falhará nesse método porque o driver não dá suporte à operação.

Nota Para o nível de recurso 9.1, 9.2 e 9.3, esse membro é sempre TRUE porque a opção é emulada pelo runtime.
 

MapNoOverwriteOnDynamicBufferSRV

Especifica se você pode chamar ID3D11DeviceContext::Map com D3D11_MAP_WRITE_NO_OVERWRITE em um SRV de buffer dinâmico (ou seja, se o driver dá suporte a essa operação). O runtime define esse membro como TRUE se o driver der suporte a essa operação e false caso contrário. Se FALSE, o runtime falhará nesse método porque o driver não dá suporte à operação.

MultisampleRTVWithForcedSampleCountOne

Especifica se o driver dá suporte à renderização multisample quando você renderiza com RTVs associados. Se TRUE, você poderá definir o membro ForcedSampleCount de D3D11_RASTERIZER_DESC1 como 1 com um RTV multisample associado. O driver pode dar suporte a essa opção no nível de recurso 10 e superior. Se FALSE, a criação do estado do rasterizador falhará porque o driver é herdado ou o nível de recurso é muito baixo.

SAD4ShaderInstructions

Especifica se o hardware e o driver dão suporte à função intrínseca msad4 em sombreadores. O runtime define esse membro como TRUE se o hardware e o driver de suporte chamarem funções intrínsecas msad4 em sombreadores. Se FALSE, o driver será herdado ou o hardware não oferecerá suporte à opção ; o runtime falhará na criação do sombreador para sombreadores que usam msad4.

ExtendedDoublesShaderInstructions

Especifica se o hardware e o driver dão suporte à função intrínseca fma e outras instruções de duplas estendidas (DDIV e DRCP) em sombreadores. A função intrínseca fma emite uma instrução DFMA dupla estendida. O runtime define esse membro como TRUE se o hardware e o driver deem suporte a instruções duplas estendidas em sombreadores (modelo de sombreador 5 e superior). O suporte a essa opção também implica suporte a instruções básicas de sombreador de precisão dupla. Você pode usar o valor D3D11_FEATURE_DOUBLES para consultar o suporte de sombreadores de precisão dupla. Se FALSE, o hardware e o driver não dão suporte à opção ; o runtime falhará na criação do sombreador para sombreadores que usam instruções duplas estendidas.

ExtendedResourceSharing

Especifica se o hardware e o driver têm suporte estendido para formatos e tipos de recursos Texture2D compartilhados. O runtime define esse membro como TRUE se o hardware e o driver deem suporte ao compartilhamento estendido de recursos Texture2D.

Comentários

Se um dispositivo Microsoft Direct3D der suporte ao nível de recurso 11.1 (D3D_FEATURE_LEVEL_11_1), quando você chamar ID3D11Device::CheckFeatureSupport com D3D11_FEATURE_D3D11_OPTIONS, CheckFeatureSupport retornará um ponteiro para D3D11_FEATURE_DATA_D3D11_OPTIONS com todos os membros definidos como TRUE , exceto SAD4ShaderInstructions e ExtendedDoublesShaderInstructions membros, que têm suporte opcional pelo hardware e pelo driver e, portanto, podem ser TRUE ou FALSE.

O nível de recurso 11.1 fornece os seguintes recursos adicionais:

  • UAVs em cada estágio de sombreador com 64 slots de associação UAV em vez de 8.
  • Rasterização independente de destino, que permite definir o membro ForcedSampleCount de D3D11_RASTERIZER_DESC1 como 1, 4, 8 ou 16 e renderizar para RTVs com uma única amostra.
  • A renderização somente UAV com o membro ForcedSampleCount de D3D11_RASTERIZER_DESC1 definida como até 16 (somente até 8 para o nível de recurso 11).
O runtime sempre define os seguintes agrupamentos de membros de maneira idêntica. Ou seja, todos os valores em um agrupamento são VERDADEIRO ou FALSO juntos:
  • DiscardAPIsSeenByDriver e FlagsForUpdateAndCopySeenByDriver
  • ClearView, CopyWithOverlap, ConstantBufferPartialUpdate, ConstantBufferOffsetting e MapNoOverwriteOnDynamicConstantBuffer
  • MapNoOverwriteOnDynamicBufferSRV e MultisampleRTVWithForcedSampleCountOne

Requisitos

   
Cliente mínimo com suporte Windows 8 e Platform Update para Windows 7 [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2012 e Platform Update para Windows Server 2008 R2 [aplicativos da área de trabalho | Aplicativos UWP]
Cabeçalho d3d11.h

Confira também

Estruturas principais

D3D11_FEATURE