D3D11_FEATURE_DATA_D3D11_OPTIONS 結構 (d3d11.h)

說明目前圖形驅動程式中的 Direct3D 11.1 功能選項。

注意

Direct3D 11.1 執行時間支援此結構,可在 Windows 8 和更新版本的作業系統上使用。

語法

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;

成員

OutputMergerLogicOp

指定邏輯作業是否可在混合狀態中使用。 如果邏輯作業可在混合狀態中使用,則執行時間會將此成員設定為 TRUE ,否則為 FALSE 。 此功能層級9.1、9.2 和 9.3 的成員為FALSE。 此功能層級 10、10.1 和 11 是選擇性的成員。 此功能層級 11.1 的這個成員為 TRUE

UAVOnlyRenderingForcedSampleCount

指定驅動程式是否可以轉譯, (RTV) 或深度樣板檢視 (DSV) ,以及只有未排序的存取檢視 () 系結。 如果驅動程式可以轉譯沒有 RTV 或 DSV,且只有系結的 UAV,則執行時間會將此成員設定為 TRUE ,否則為 FALSE 。 如果為 TRUE,您可以在轉譯時將 D3D11_RASTERIZER_DESC1ForcedSampleCount成員設定為 1、4 或 8,而沒有 RTV 或 DSV 且只有系結的 UAV。 對於 功能層級 11.1,此成員一律為 TRUE ,您也可以將 ForcedSampleCount 設定為 16,以及 1、4 或 8。 ForcedSampleCount的預設值為 0,這表示與值設定為 1 相同。 您一律可以將 ForcedSampleCount 設定為 0 或 1,讓僅限 UAV 轉譯與設定此成員的方式無關。

DiscardAPIsSeenByDriver

指定驅動程式是否支援 ID3D11DeviceCoNtext1::D iscardViewID3D11DeviceCoNtext1::D iscardResource 方法。 如果驅動程式支援這些方法,執行時間會將這個成員設定為 TRUE ,否則為 FALSE 。 設定此成員的方式不會指出驅動程式是否實際使用這些方法;也就是說,如果這些方法對硬體而言不實用,驅動程式可能會忽略這些方法。 如果為 FALSE,執行時間不會將這些方法公開給驅動程式,因為驅動程式不支援它們。 您可以在開發期間監視此成員,以排除這些方法可能有所説明的硬體上的舊版驅動程式。 您不需要根據這個成員為 TRUEFALSE來撰寫個別的程式碼路徑;您可以視需要呼叫這些方法。

FlagsForUpdateAndCopySeenByDriver

指定驅動程式是否支援 由 ID3D11DeviceCoNtext1::CopySubresourceRegion1 和ID3D11DeviceCoNtext1::UpdateSubresource1 方法公開的複製和更新的新語意。 如果驅動程式支援新的語意進行複製和更新,執行時間會將這個成員設定為 TRUE 。 執行時間只會針對舊版驅動程式將此成員設定為 FALSE 。 執行時間會處理此成員,類似于 DiscardAPIsSeenByDriver 成員。

ClearView

指定驅動程式是否支援 ID3D11DeviceCoNtext1::ClearView 方法。 如果驅動程式支援這個方法,執行時間會將這個成員設定為 TRUE ,否則為 FALSE 。 如果為 FALSE,執行時間不會向驅動程式公開這個方法,因為驅動程式不支援它。

注意 針對 功能層級 9.1、9.2 和 9.3,此成員一律為 TRUE ,因為執行時間會模擬選項。
 

CopyWithOverlap

指定您是否可以使用重迭的來源和目的地矩形呼叫 ID3D11DeviceCoNtext1::CopySubresourceRegion1 。 如果您可以使用重迭的來源和目的地矩形呼叫CopySubresourceRegion1,則執行時間會將這個成員設定為TRUE,否則為FALSE。 如果為 FALSE,執行時間不會向驅動程式公開這個方法,因為驅動程式不支援它。

注意 對於 功能層級 9.1、9.2 和 9.3,此成員一律為 TRUE ,因為驅動程式已經支援這些功能層級的選項。
 

ConstantBufferPartialUpdate

指定驅動程式是否支援常數緩衝區的部分更新。 如果驅動程式支援常數緩衝區的部分更新,執行時間會將這個成員設定為 TRUE ,否則為 FALSE 。 如果為 FALSE,則執行時間不會將此作業公開給驅動程式,因為驅動程式不支援它。

注意 針對 功能層級 9.1、9.2 和 9.3,此成員一律為 TRUE ,因為執行時間會模擬選項。
 

ConstantBufferOffsetting

指定驅動程式是否支援在著色器之常數緩衝區中設定位移的新語意。 如果驅動程式支援當您呼叫ID3D11DeviceCoNtext1::VSSetConstantBuffers1方法和 FALSE 之類的新方法時,執行時間會將這個成員設定為TRUE。否則為FALSE。 如果為 FALSE,則執行時間不會將此作業公開給驅動程式,因為驅動程式不支援它。

注意 針對 功能層級 9.1、9.2 和 9.3,此成員一律為 TRUE ,因為執行時間會模擬選項。
 

MapNoOverwriteOnDynamicConstantBuffer

指定您是否可以在動態常數緩衝區 (上呼叫 ID3D11DeviceCoNtext::MapD3D11_MAP_WRITE_NO_OVERWRITE ,也就是驅動程式是否支援此作業) 。 如果驅動程式支援此作業,執行時間會將此成員設定為 TRUE ,否則為 FALSE 。 如果為 FALSE,則執行時間會因為驅動程式不支援作業而失敗。

注意 針對 功能層級 9.1、9.2 和 9.3,此成員一律為 TRUE ,因為執行時間會模擬選項。
 

MapNoOverwriteOnDynamicBufferSRV

指定您是否可以在動態緩衝區 SRV (上呼叫 ID3D11DeviceCoNtext::MapD3D11_MAP_WRITE_NO_OVERWRITE ,也就是驅動程式是否支援此作業) 。 如果驅動程式支援此作業,執行時間會將此成員設定為 TRUE ,否則為 FALSE 。 如果為 FALSE,則執行時間會因為驅動程式不支援作業而失敗。

MultisampleRTVWithForcedSampleCountOne

指定當您使用 RTV 系結轉譯時,驅動程式是否支援多重取樣轉譯。 如果為 TRUE,您可以使用多重取樣 RTV 系結,將D3D11_RASTERIZER_DESC1ForcedSampleCount成員設定為 1。 驅動程式可以在 功能層級 10 和更新版本上支援此選項。 如果 為 FALSE,轉譯器狀態建立將會失敗,因為驅動程式是舊版或功能層級太低。

SAD4ShaderInstructions

指定硬體和驅動程式是否支援著色器中的 msad4 內建函式。 如果硬體和驅動程式支援呼叫著色器中的msad4內建函式,執行時間會將此成員設定為TRUE。 如果為 FALSE,則驅動程式為舊版或硬體不支援 選項;執行時間會針對使用 msad4的著色器建立失敗。

ExtendedDoublesShaderInstructions

指定硬體和驅動程式是否支援著色器中的 fma 內建函式和其他擴充雙精度浮點數指令 (DDIVDR) CPfma內建函式會發出擴充雙精度浮點數 DFMA指令。 如果硬體和驅動程式支援著色器 (著色器模型 5和更新版本的擴充雙精度浮點數指令,執行時間會將這個成員設定為TRUE) 。 此選項的支援也表示支援基本雙精確度著色器指令。 您可以使用 D3D11_FEATURE_DOUBLES 值來查詢支援雙精確度著色器。 如果為 FALSE,則硬體和驅動程式不支援 選項;執行時間會針對使用擴充雙精度浮點數指令的著色器建立失敗。

ExtendedResourceSharing

指定硬體和驅動程式是否支援 共用 Texture2D 資源類型和格式。 如果硬體和驅動程式支援擴充 Texture2D 資源分享,執行時間會將此成員設定為 TRUE

備註

如果 Microsoft Direct3D 裝置支援功能層級11.1 (D3D_FEATURE_LEVEL_11_1) ,當您呼叫ID3D11Device::CheckFeatureSupportD3D11_FEATURE_D3D11_OPTIONS時,CheckFeatureSupport會傳回指標給所有成員設為TRUED3D11_FEATURE_DATA_D3D11_OPTIONS指標,但SAD4ShaderInstructionsExtendedDoublesShaderInstructions除外成員,硬體和驅動程式選擇性支援,因此可以是TRUEFALSE

功能層級 11.1 提供下列其他功能:

  • 每個著色器階段的 UAV 都有 64 個 UAV 系結插槽,而不是 8 個。
  • 與目標無關的點陣化,可讓您將D3D11_RASTERIZER_DESC1ForcedSampleCount成員設定為 1、4、8 或 16,並使用單一樣本轉譯為 RTV。
  • 僅限 UAV 轉譯,且D3D11_RASTERIZER_DESC1的 ForcedSampleCount成員設定為最多 16 (最多 8 個功能層級11) 。
執行時間一律會以相同的方式設定下列成員群組。 也就是說,群組中的所有值都是 TRUEFALSE
  • DiscardAPIsSeenByDriverFlagsForUpdateAndCopySeenByDriver
  • ClearViewCopyWithOverlapConstantBufferPartialUpdateConstantBufferOffsettingMapNoOverwriteOnDynamicConstantBuffer
  • MapNoOverwriteOnDynamicBufferSRVMultisampleRTVWithForcedSampleCountOne

規格需求

   
最低支援的用戶端 適用于 Windows 7 的 Windows 8 和平臺更新 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 適用于 Windows Server 2008 R2 的 Windows Server 2012 和平臺更新 [傳統型應用程式 |UWP 應用程式]
標頭 d3d11.h

另請參閱

核心結構

D3D11_FEATURE