Share via


D3D11_FEATURE_DATA_D3D11_OPTIONS struttura (d3d11.h)

Descrive le opzioni di funzionalità Direct3D 11.1 nel driver grafico corrente.

Nota

Questa struttura è supportata dal runtime Direct3D 11.1, disponibile nei sistemi operativi Windows 8 e versioni successive.

Sintassi

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;

Members

OutputMergerLogicOp

Specifica se le operazioni per la logica sono disponibili nello stato di blend. Il runtime imposta questo membro su TRUE se le operazioni per la logica sono disponibili nello stato di blend e FALSE in caso contrario. Questo membro è FALSE per il livello di funzionalità 9.1, 9.2 e 9.3. Questo membro è facoltativo per il livello di funzionalità 10, 10.1 e 11. Questo membro è TRUE per il livello di funzionalità 11.1.

UAVOnlyRenderingForcedSampleCount

Specifica se il driver può eseguire il rendering senza visualizzazioni di destinazione di rendering (RTV) o viste stencil di profondità (DSV) e solo viste di accesso non ordinate (UAV) associate. Il runtime imposta questo membro su TRUE se il driver può eseguire il rendering senza VV o DSV e solo UAV associato e FALSE in caso contrario. Se TRUE, è possibile impostare il membro ForcedSampleCount di D3D11_RASTERIZER_DESC1 su 1, 4 o 8 quando si esegue il rendering con nessunAV o DSV e solo UAV associato. Per il livello di funzionalità 11.1, questo membro è sempre TRUE ed è anche possibile impostare ForcedSampleCount su 16 oltre a 1, 4 o 8. Il valore predefinito di ForcedSampleCount è 0, ovvero uguale a se il valore è impostato su 1. È sempre possibile impostare ForcedSampleCount su 0 o 1 per il rendering solo UAV indipendentemente dal modo in cui questo membro è impostato.

DiscardAPIsSeenByDriver

Specifica se il driver supporta i metodi ID3D11DeviceContext1::D iscardView e ID3D11DeviceContext1::D iscardResource . Il runtime imposta questo membro su TRUE se il driver supporta questi metodi e FALSE in caso contrario. Il modo in cui questo membro è impostato non indica se il driver usa effettivamente questi metodi; ovvero, il driver potrebbe ignorare questi metodi se non sono utili per l'hardware. Se FALSE, il runtime non espone questi metodi al driver perché il driver non li supporta. È possibile monitorare questo membro durante lo sviluppo per escludere i driver legacy nell'hardware in cui questi metodi potrebbero essere stati utili. Non è necessario scrivere percorsi di codice separati in base al fatto che questo membro sia TRUE o FALSE; è possibile chiamare questi metodi ogni volta che è applicabile.

FlagsForUpdateAndCopySeenByDriver

Specifica se il driver supporta la nuova semantica per la copia e l'aggiornamento esposti dai metodi ID3D11DeviceContext1::CopySubresourceRegion1 e ID3D11DeviceContext1::UpdateSubresource1 . Il runtime imposta questo membro su TRUE se il driver supporta la nuova semantica per la copia e l'aggiornamento. Il runtime imposta questo membro su FALSE solo per i driver legacy. Il runtime gestisce questo membro in modo analogo al membro DiscardAPIsSeenByDriver .

ClearView

Specifica se il driver supporta il metodo ID3D11DeviceContext1::ClearView . Il runtime imposta questo membro su TRUE se il driver supporta questo metodo e FALSE in caso contrario. Se FALSE, il runtime non espone questo metodo al driver perché il driver non lo supporta.

Nota Per il livello di funzionalità 9.1, 9.2 e 9.3, questo membro è sempre TRUE perché l'opzione viene emulata dal runtime.
 

CopyWithOverlap

Specifica se è possibile chiamare ID3D11DeviceContext1::CopySubresourceRegion1 con rettangoli di origine e di destinazione sovrapposti. Il runtime imposta questo membro su TRUE se è possibile chiamare CopySubresourceRegion1 con rettangoli di origine e destinazione sovrapposti e FALSE in caso contrario. Se FALSE, il runtime non espone questo metodo al driver perché il driver non lo supporta.

Nota Per il livello di funzionalità 9.1, 9.2 e 9.3, questo membro è sempre TRUE perché i driver supportano già l'opzione per questi livelli di funzionalità.
 

ConstantBufferPartialUpdate

Specifica se il driver supporta gli aggiornamenti parziali dei buffer costanti. Il runtime imposta questo membro su TRUE se il driver supporta gli aggiornamenti parziali dei buffer costanti e FALSE in caso contrario. Se FALSE, il runtime non espone questa operazione al driver perché il driver non lo supporta.

Nota Per il livello di funzionalità 9.1, 9.2 e 9.3, questo membro è sempre TRUE perché l'opzione viene emulata dal runtime.
 

ConstantBufferOffsetting

Specifica se il driver supporta la nuova semantica per l'impostazione degli offset nei buffer costanti per un shader. Il runtime imposta questo membro su TRUE se il driver supporta l'impostazione degli offset quando si chiamano nuovi metodi come ID3D11DeviceContext1::VSSetConstantBuffers1 e FALSE in caso contrario. Se FALSE, il runtime non espone questa operazione al driver perché il driver non lo supporta.

Nota Per il livello di funzionalità 9.1, 9.2 e 9.3, questo membro è sempre TRUE perché l'opzione viene emulata dal runtime.
 

MapNoOverwriteOnDynamicConstantBuffer

Specifica se è possibile chiamare ID3D11DeviceContext::Map con D3D11_MAP_WRITE_NO_OVERWRITE in un buffer costante dinamico, ovvero se il driver supporta questa operazione. Il runtime imposta questo membro su TRUE se il driver supporta questa operazione e FALSE in caso contrario. Se FALSE, il runtime ha esito negativo perché il driver non supporta l'operazione.

Nota Per il livello di funzionalità 9.1, 9.2 e 9.3, questo membro è sempre TRUE perché l'opzione viene emulata dal runtime.
 

MapNoOverwriteOnDynamicBufferSRV

Specifica se è possibile chiamare ID3D11DeviceContext::Map con D3D11_MAP_WRITE_NO_OVERWRITE in un buffer SRV dinamico, ovvero se il driver supporta questa operazione. Il runtime imposta questo membro su TRUE se il driver supporta questa operazione e FALSE in caso contrario. Se FALSE, il runtime ha esito negativo perché il driver non supporta l'operazione.

MultisampleRTVWithForcedSampleCountOne

Specifica se il driver supporta il rendering multisample quando si esegue il rendering con le VV associate. Se TRUE, è possibile impostare il membro ForcedSampleCount di D3D11_RASTERIZER_DESC1 su 1 con un limite RTV multisample. Il driver può supportare questa opzione a livello di funzionalità 10 e superiore. Se FALSE, la creazione dello stato rasterizer avrà esito negativo perché il driver è legacy o il livello di funzionalità è troppo basso.

SAD4ShaderInstructions

Specifica se l'hardware e il driver supportano la funzione intrinseca msad4 negli shader. Il runtime imposta questo membro su TRUE se l'hardware e il driver supportano chiamate a funzioni intrinseche msad4 in shader. Se FALSE, il driver è legacy o l'hardware non supporta l'opzione; il runtime avrà esito negativo per la creazione di shader che usano msad4.

ExtendedDoublesShaderInstructions

Specifica se l'hardware e il driver supportano la funzione intrinseca fma e altre istruzioni doppie estese (DDIV e DRCP) negli shader. La funzione intrinseca fma genera un'istruzione DFMA estesa doppia. Il runtime imposta questo membro su TRUE se l'hardware e il driver supportano le istruzioni estese doppie negli shader (modello 5 e versioni successive). Il supporto di questa opzione implica anche il supporto delle istruzioni dello shader con precisione doppia di base. È possibile usare il valore D3D11_FEATURE_DOUBLES per eseguire query per il supporto di shader con precisione doppia. Se FALSE, l'hardware e il driver non supportano l'opzione; il runtime avrà esito negativo per la creazione di shader che usano istruzioni doppie estese.

ExtendedResourceSharing

Specifica se l'hardware e il driver hanno esteso il supporto per i tipi e i formati di risorse Texture2D condivisi. Il runtime imposta questo membro su TRUE se l'hardware e il driver supportano la condivisione di risorse Texture2D estesa.

Commenti

Se un dispositivo Microsoft Direct3D supporta il livello di funzionalità 11.1 (D3D_FEATURE_LEVEL_11_1), quando si chiama ID3D11Device::CheckFeatureSupport con D3D11_FEATURE_D3D11_OPTIONS, CheckFeatureSupport restituisce un puntatore a D3D11_FEATURE_DATA_D3D11_OPTIONS con tutti i membri impostati su TRUE , ad eccezione di SAD4ShaderInstructions e ExtendedDoublesShaderInstructions membri, che sono facoltativamente supportati dall'hardware e dal driver e quindi possono essere TRUE o FALSE.

Il livello di funzionalità 11.1 offre le funzionalità aggiuntive seguenti:

  • UAV in ogni fase dello shader con 64 slot di associazione UAV anziché 8.
  • Rasterizzazione indipendente dalla destinazione, che consente di impostare il membro ForcedSampleCount di D3D11_RASTERIZER_DESC1 su 1, 4, 8 o 16 e per eseguire il rendering in RTV con un singolo esempio.
  • Rendering solo UAV con il membro ForcedSampleCount di D3D11_RASTERIZER_DESC1 impostato su 16 (solo fino a 8 per il livello di funzionalità 11).
Il runtime imposta sempre i raggruppamenti seguenti di membri in modo identico. Ovvero, tutti i valori di un raggruppamento sono TRUE o FALSE insieme:
  • RimuoviAPIsSeenByDriver e FlagsForUpdateAndCopySeenByDriver
  • ClearView, CopyWithOverlap, ConstantBufferPartialUpdate, ConstantBufferOffsetting e MapNoOverwriteOnDynamicConstantBuffer
  • MapNoOverwriteOnDynamicBufferSRV e MultisampleRTVWithForcedSampleCountOne

Requisiti

   
Client minimo supportato Windows 8 e Platform Update per Windows 7 [app desktop | App UWP]
Server minimo supportato Windows Server 2012 e Aggiornamento della piattaforma per Windows Server 2008 R2 [app desktop | App UWP]
Intestazione d3d11.h

Vedi anche

Strutture principali

D3D11_FEATURE