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 中引入了此函数的较新版本 DMLCreateDevice1。 DMLCreateDevice1 等效于调用 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 |