【发布时间】:2019-06-12 18:01:25
【问题描述】:
我需要在正确的 GPU(即实现编码器的 GPU)上创建 D3D 设备和上下文。
MFT_ENUM_ADAPTER_LUID 的文档说它需要 Windows 10,实际上 NVENC MFT 即使在 Win10 上也不会公开该属性。
MFT_ENUM_HARDWARE_URL_Attribute 的文档说该值是设备驱动程序的符号链接,实际上 NVENC MFT 不返回任何 GUID 链接,该值与 MFT_FRIENDLY_NAME_Attribute 中的值相同,特别是 L"NVIDIA H.264 Encoder MFT"
MFT_ENUM_HARDWARE_VENDOR_ID_Attribute 似乎工作正常,返回L"VEN_10DE",所以我可以将其解析为一个数字并匹配DXGI_ADAPTER_DESC 结构的VendorId 字段。但是该属性的文档说支持是可选的。
我不喜欢可选的,我想要可靠的。如何将硬件编码器 MFT 与 GPU 匹配? AMD 即将推出配备两个 GPU 的 PC,例如 Asus FX505DY,供应商 ID 技巧在此类系统上不起作用。
【问题讨论】:
标签: c++ windows direct3d ms-media-foundation