Fix broken transparency on Nvidia
The proprietary Nvidia driver apparently doesn't support querying the EGL_TEXTURE_FORMAT
using eglQueryWaylandBufferWL
.
KWin calls DrmClientBuffer::hasAlphaChannel()
which returns false
since the buffer's texture format is still set to the default value of zero.
This causes all QtQuick windows to be fully opaque since they seem to be using the EGLStreams buffer path (as opposed to applications like Konsole with working transparency).
This MR tries to work around the issue by defaulting to EGL_TEXTURE_RGBA
in case the eglQueryWaylandBufferWL
call fails.
Nvidia promised to fix this bug in an upcoming driver release more than two years ago so I think it's reasonable to add a workaround now.
See this comment: https://phabricator.kde.org/D18570?id=50397#434455
This fixes transparent Plasma themes and the black box behind Latte Dock:
(before/after)
BUG: 426464 BUG: 438275