D3D12EnableExperimentalFeatures 函式 (d3d12.h)
啟用實驗性功能的清單。
語法
HRESULT D3D12EnableExperimentalFeatures(
UINT NumFeatures,
[in] const IID *pIIDs,
[in] void *pConfigurationStructs,
[in] UINT *pConfigurationStructSizes
);
參數
NumFeatures
類型: UINT
要啟用的實驗性功能數目。
[in] pIIDs
類型: const IID*
SAL: __in_ecount(NumFeatures)
識別碼陣列的指標,指定要啟用的可用實驗性功能。
[in] pConfigurationStructs
類型: void*
SAL: __in_ecount(NumFeatures)
包含某些實驗性功能可能需要啟用之其他設定詳細資料的結構。
[in] pConfigurationStructSizes
類型: UINT*
SAL: __in_ecount(NumFeatures)
在 pConfigurationStructs 參數中傳遞的任何組態結構大小。
傳回值
類型: HRESULT
這個方法會傳回 HRESULT 成功或錯誤碼,如果指定了無法辨識的功能或未啟用開發人員模式,或如果功能設定正確、指定的實驗性功能不相容或其他錯誤,則E_INVALIDARG包含E_NOINTERFACE。
備註
在裝置建立之前呼叫此函式。
由於一組實驗性功能會隨著時間而變更,而且這些功能可能不穩定,因此僅供開發和實驗之用。 在啟用任何實驗性功能之前,必須先啟用開發人員模式,才能強制執行此動作。
目前支援的一組實驗性功能可以在 D3D12.h 標頭中找到,接近 D3D12EnableExperimentalFeatures 函式的定義;因為實驗性功能只會不常提供,所以通常找不到目前不支援任何實驗性功能。
某些實驗性功能可能會使用 IID 作為 GUID 來識別。 針對這些功能,您可以使用 D3D12GetDebugInterface 傳遞 IID 作為參數,以擷取操作該功能的介面。
如果再次呼叫此函式並顯示要啟用的不同功能清單,則所有目前的 D3D12 裝置都會設定為DEVICE_REMOVED狀態。
範例
此範例顯示實驗性功能定義的外觀。
// --------------------------------------------------------------------------------------------------------------------------------
// Experimental Feature: D3D12ExperimentalShaderModels
//
// Use with D3D12EnableExperimentalFeatures to enable experimental shader model support,
// meaning shader models that haven't been finalized for use in retail.
//
// Enabling D3D12ExperimentalShaderModels needs no configuration struct, pass NULL in the pConfigurationStructs array.
//
// --------------------------------------------------------------------------------------------------------------------------------
static const UUID D3D12ExperimentalShaderModels = { /* 76f5573e-f13a-40f5-b297-81ce9e18933f */
0x76f5573e,
0xf13a,
0x40f5,
{ 0xb2, 0x97, 0x81, 0xce, 0x9e, 0x18, 0x93, 0x3f }
};
需求
目標平台 | Windows |
標頭 | d3d12.h |
程式庫 | D3D12.lib |
Dll | D3D12.dll |