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)

指向 ID 数组的指针,该数组指定要启用的可用实验功能。

[in] pConfigurationStructs

类型: void*

SAL__in_ecount(NumFeatures)

包含某些实验性功能可能需要启用的其他配置详细信息的结构。

[in] pConfigurationStructSizes

类型: UINT*

SAL__in_ecount(NumFeatures)

在 pConfigurationStructs 参数中传递的任何配置结构的大小。

返回值

类型: HRESULT

如果指定了无法识别的功能或未启用开发人员模式,此方法将返回一个 HRESULT 成功代码或错误代码,或E_INVALIDARG如果功能配置正确、指定的实验性功能不兼容或其他错误,则E_NOINTERFACE。

备注

在创建设备之前调用此函数。

由于实验性功能集会随时间推移而变化,并且这些功能可能不稳定,因此它们仅用于开发和试验。 这是通过要求开发人员模式在启用任何实验功能之前处于活动状态来实现的。

可以在 D3D12EnableExperimentalFeatures 函数的定义附近的 D3D12.h 标头中找到当前支持的实验性功能集;由于实验性功能很少提供,因此通常发现当前不支持实验性功能。

某些实验性特征可以通过使用 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
Library D3D12.lib
DLL D3D12.dll

另请参阅

核心函数