Мне нужно создать устройство и контекст 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"
, поэтому я могу разобрать это в число и сравнить с полем VendorId
структуры DXGI_ADAPTER_DESC
. Однако в документации по этому атрибуту говорится, что поддержка не является обязательной.
Мне не нравится опционально, я хочу надежного. Как сопоставить аппаратные кодировщики MFT с графическими процессорами? Будущие ПК с двумя графическими процессорами от AMD, такие как Asus FX505DY, трюк с идентификатором вендора, не будут работать на таких системах.