One aspect of the Linux app which has plagued PMP and HTPC is getting zero-copy hardware decoding working properly. The issue is that EGL is required to get zero-copy playback but enabling this requires that Qt be rendered using EGL. This is normally not a problem but in some configurations enabling this can cause the UI to be rendered as nothing more than a black screen.
PMP had a detection mechanism to try and detect this circumstance but due to licensing issues we cannot use this code going forward. Additionally we saw some complaining of when it failed to work. Obviously we canāt make this a preference because if you get a black screen then you have no UI from which to clear the pref.
So, we are asking all Linux users of HTPC to test out setting an environment variable and launching HTPC. Try this and report your experiences:
- Install HTPC if not already installed (see the first post Plex HTPC feedback for link and install instructions).
- Quit HTPC (if already running)
- Open a terminal window and execute
snap run plex-htpc
- Enable hardware decoding (if not already so) and play a video file which will hardware decode (H.264, H.265 are good examples)
- Bring up the debug overlay (ctrl-shft-d)
- The Hardware decoding (middle of the right column) should report
vaapi-copy
(this may reportno
on Nvidia GPUs) - Quit HTPC
- Execute
QT_XCB_GL_INTEGRATION=xcb_egl snap run plex-htpc
- Play the file again and bring up the debug overlay again
- Hardware decoding should report
vaapi (vaapi-egl)
I would like everyone on Linux to test this and report the following:
- What GPU are you using?
- Which drivers (particularly those with Nvidia GPUs and whether they are the proprietary or OSS drivers)?
- When you launched with the environment variable set, did the UI display and work?
- Did playback work (both cases)?
- Did you get the expected values for the hardware decoding?
Hopefully this can help us to add in a more robust detection mechanism.