fix: reduce shader usage and fix greeter

This commit is contained in:
2026-10-24 00:35:24 +02:00
parent cbd4e6caa7
commit e35c87b3f2
56 changed files with 819 additions and 638 deletions
+14 -1
View File
@@ -662,6 +662,17 @@ void WallpaperService::drawSurface(WallpaperSurface* surface) {
return;
}
// Release the context when this scope ends (see FrameService::drawSurface).
// Holding it across the draw loop's sleep serializes the two raw-EGL clients on
// NVIDIA, which makes eglSwapBuffers fail and starves other processes' contexts.
struct ContextRelease {
EGLDisplay display;
~ContextRelease() {
eglMakeCurrent(
display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
}
} contextRelease{m_eglDisplay};
QVariantMap crops;
QSize size;
bool upload = false;
@@ -701,7 +712,9 @@ void WallpaperService::drawSurface(WallpaperSurface* surface) {
glDrawArrays(GL_TRIANGLES, 0, 3);
if (!eglSwapBuffers(m_eglDisplay, target))
qWarning() << "WallpaperService: eglSwapBuffers failed";
qWarning()
<< "WallpaperService: eglSwapBuffers failed, eglGetError = 0x"
<< QString::number(unsigned(eglGetError()), 16);
}
void WallpaperService::addSurface(const QString& screen) {