https://bugs.kde.org/show_bug.cgi?id=456482

--- Comment #12 from Nick Korotysh <tevut...@mail.ru> ---
I got h/w decoding (vaapi in particular case) working on X11!
but mentioned change seems to be vital in any case, "display" variable must be
passed as one of mpv initialization parameters.

all I did - just set environment variable `QT_XCB_GL_INTEGRATION` to "xcb_egl":
```
export QT_XCB_GL_INTEGRATION="xcb_egl"
```
this was based on comment on GitHub you pointed (it says that EGL context is
required for mpv) and this particular piece of Qt code
https://github.com/qt/qtbase/blob/231d3670981a33ec42b91ad1cb33c1fc50551066/src/plugins/platforms/xcb/qxcbconnection.cpp#L1079-L1104

first of all I viewed which GL libraries are loaded by application. I was
surprised to see both 'libGLX.so' and 'libEGL.so'. but when looked closer (and
analyzed 'SMPlayer'+'mpv') found the difference - Qt applications also load
'libGLX_mesa.so' (very likely real OpenGL implementation) and mpv loads
'libEGL_mesa.so' instead. I already knew that Qt on X11 uses so-called 'xcb'
platform plugin and it has something called "GL integration", and 2 "backends"
are provided for that (exactly GLX and EGL), which very likely can be switched
on runtime somehow. I just went deep into Qt sources starting from
`QQuickFramebufferObject::Renderer::createFramebufferObject()` found in your
code.

P.S> please don't think that I know OpenGL specific on Linux, Qt Open GL
integration on something specific to mpv - I know neither of those! I just
familiar with Qt sources and its build process/dependencies on Linux and just
used information you provided.

so, I think issue can be marked as solved :) waiting new release in Debian
unstable repo :)

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to