DMLCreateDevice1 函数 (directml.h)

为给定的 Direct3D 12 设备创建 DirectML 设备。

语法

HRESULT DMLCreateDevice1(
  ID3D12Device            *d3d12Device,
  DML_CREATE_DEVICE_FLAGS flags,
  DML_FEATURE_LEVEL       minimumFeatureLevel,
  REFIID                  riid,
  void                    **ppv
);

参数

d3d12Device

类型: ID3D12Device*

指向 ID3D12Device 的指针,表示要创建 DirectML 设备的 Direct3D 12 设备。 DirectML 支持任何 D3D 功能级别,以及在任何适配器(包括 WARP)上创建的 Direct3D 12 设备。 但是,DirectML 中并非所有功能都可用,具体取决于 Direct3D 12 设备的功能。 有关详细信息,请参阅 IDMLDevice::CheckFeatureSupport

如果对 DMLCreateDevice1 的调用成功,则 DirectML 设备会保留对提供的 Direct3D 12 设备的强引用。

flags

类型: DML_CREATE_DEVICE_FLAGS

指定其他设备创建选项 的DML_CREATE_DEVICE_FLAGS 值。

minimumFeatureLevel

类型: DML_FEATURE_LEVEL

一个DML_FEATURE_LEVEL值,该值指定所需的最低功能级别支持。

此参数对于需要特定 DirectML 版本的调用方非常有用,但可能会发现自己调用旧版 DirectML。 例如,当用户在较旧版本的 Windows 10 上运行应用程序时,可能会发生这种情况。

显式依赖于特定功能级别中引入的功能的应用程序可以将其指定为 minimumFeatureLevel。 这将保证 DMLCreateDevice1 不会成功,除非基础实现 至少 与请求的最低功能级别一样强大。

请注意,由于此参数指定 最低 功能级别,因此基础 DirectML 设备实际上可能支持比请求的最低功能级别更高的功能级别。 设备创建成功后,可以使用 IDMLDevice::CheckFeatureSupport 查询此设备支持的所有功能级别。

riid

类型: REFIID

对全局唯一标识符的引用, (要在 设备中返回的接口的 GUID) 。 这应为 IDMLDevice 的 GUID

ppv

类型:_COM_Outptr_opt_ void**

指向接收指向设备的指针的内存块的指针。 这是指向 IDMLDevice 的指针的地址,表示创建的 DirectML 设备。

返回值

类型: HRESULT

如果函数成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

如果此版本的 DirectML 不支持请求的 minimumFeatureLevel ,则此函数将返回 DXGI_ERROR_UNSUPPORTED

注解

DirectML 版本 1.1.0 中引入了此函数的较新版本 DMLCreateDevice1DMLCreateDevice1 等效于调用 DMLCreateDevice1 并提供DML_FEATURE_LEVEL_1_0的 minimumFeatureLevel

可用性

此 API 是在 DirectML 版本 中引入的 1.1.0

要求

要求
最低受支持的客户端 Windows 10内部版本 20348
最低受支持的服务器 Windows 10内部版本 20348
目标平台 Windows
标头 directml.h
Library DirectML.lib
DLL DirectML.dll

另请参阅