QT mf.dll error presumably OpenGl error



  • I get the following runtime errors when I run an QWebengineView program.I am on Windows 10 64bit.
    I read abit aout the issue(though i am not sure if is the same exact problem) here BUG REPORT.But it says merged code review1 and code review 2.I presume this means , it has been integrated into QT 5.9 framework.

    [9964:3004:0702/204303.476:INFO:dxva_video_decode_accelerator_win.cc(1120)] mf.dll is required for hardware video decoding
    [9964:3004:0702/204303.476:INFO:dxva_video_decode_accelerator_win.cc(1120)] mf.dll is required for hardware video decoding
    [9964:3004:0702/204303.774:ERROR:gl_context_wgl.cc(78)] Could not share GL contexts.
    [9964:3004:0702/204303.774:ERROR:gl_context_wgl.cc(78)] Could not share GL contexts.
    [9964:3004:0702/204303.775:ERROR:gpu_command_buffer_stub.cc(623)] Failed to create context.
    [9964:3004:0702/204303.787:ERROR:gl_context_wgl.cc(78)] Could not share GL contexts.
    [9964:3004:0702/204303.789:ERROR:gpu_command_buffer_stub.cc(623)] Failed to create context.
    [9964:3004:0702/204303.775:ERROR:gpu_command_buffer_stub.cc(623)] Failed to create context.
    [9964:3004:0702/204303.787:ERROR:gl_context_wgl.cc(78)] Could not share GL contexts.
    [9964:3004:0702/204303.789:ERROR:gpu_command_buffer_stub.cc(623)] Failed to create context.
    [9964:3004:0702/204303.909:ERROR:gl_context_wgl.cc(78)] Could not share GL contexts.
    [9964:3004:0702/204303.909:ERROR:gl_context_wgl.cc(78)] Could not share GL contexts.
    [9964:3004:0702/204303.911:ERROR:gpu_command_buffer_stub.cc(623)] Failed to create context.
    [9964:3004:0702/204303.921:ERROR:gl_context_wgl.cc(78)] Could not share GL contexts.
    [9964:3004:0702/204303.922:ERROR:gpu_command_buffer_stub.cc(623)] Failed to create context.
    [9964:3004:0702/204303.911:ERROR:gpu_command_buffer_stub.cc(623)] Failed to create context.
    [9964:3004:0702/204303.921:ERROR:gl_context_wgl.cc(78)] Could not share GL contexts.
    [9964:3004:0702/204303.922:ERROR:gpu_command_buffer_stub.cc(623)] Failed to create context.
    qt.network.ssl: QSslSocket: cannot resolve SSL_set_alpn_protos
    qt.network.ssl: QSslSocket: cannot resolve SSL_CTX_set_alpn_select_cb
    qt.network.ssl: QSslSocket: cannot resolve SSL_get0_alpn_selected
    

    The mf.dll error specifically is what has me worried.
    alt text



  • I too noticed these two things:

    1. Windows 10 reported as Windows NT 6.2 - specifically by QtWebEngine

    e.g.: QtWebEngine (demobrowser.exe) vs Chromium - UA

    Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) QtWebEngine/5.9.1 Chrome/56.0.2924.122 Safari/537.36

    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36

    but I thought it was erroneously hard-coded at build time vs run-time detection

    1. aforementioned mf.dll
      there is actually mf.dll in Windows 10 (not sure that's what QtWebEngine is looking for) - C:\Windows\System32\mf.dll
      I tried to copy it in my projects folders - both debug and release without success.. perhaps we should copy it into some web engine deployment folder like .../resources or even within a *.pak

    I'm still looking for a solution (and a proper documentation too - still not sure it is searching for the same mf.dll in system32 folder)

    Keep us posted if you find an answer..



  • Finally found the offending code
    https://fossies.org/linux/qt-everywhere-opensource-src/qtwebengine/src/3rdparty/chromium/media/gpu/dxva_video_decode_accelerator_win.cc

    constexpr const wchar_t* const kMediaFoundationVideoDecoderDLLs[] = {
         L"mf.dll", L"mfplat.dll", L"msmpeg2vdec.dll",
     };
    //...
    VideoDecodeAccelerator::SupportedProfiles
      DXVAVideoDecodeAccelerator::GetSupportedProfiles(
          const gpu::GpuPreferences& preferences) {
    //...
        for (const wchar_t* mfdll : kMediaFoundationVideoDecoderDLLs) {
          if (!::GetModuleHandle(mfdll)) {
            // Windows N is missing the media foundation DLLs unless the media
            // feature pack is installed.
            DVLOG(ERROR) << mfdll << " is required for hardware video decoding";
            return profiles;
          }
        }
    }
    

    which implies I have so called Windows N (or KN - these come without Media Player/Framework at all) and I should install "Media Feature Pack for N editions of Windows 10 Version 1607"
    https://support.microsoft.com/en-us/help/3133719/media-feature-pack-for-n-editions-of-windows-10-version-1607

    ...but I'm on Windows 10 Enterprise (no N, KN whatsoever) and mf.dll is already present

    so far my best guess is - since GetModuleHandle parameter must point to "The name of the loaded module" for some reason that module (mf.dll) was not added as a dependency and/or not loaded at run-time (before the aforemetnoined call to GetModuleHandle) therefore not found and that's a totally different bug...


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.