Black or incorrect textures in KDE

Exactly, XRender basically offers just alpha blending. Any other effects or drawing will have to be done by the CPU. That is opposed to OpenGL where you have shaders at your disposal.

BTW, ForceCompositionPipeline is broken:

https://devtalk.nvidia.com/default/topic/1029159/linux/forcecompositionpipeline-causes-hard-lockups/

So tearing will be a problem. It’s a non-starter for me.

As I understand it, switching to VT wipes GPU memory, so every application has to support Nvidia extension to receive notification when that happens and redraw everything. Kwin supports that in its latest releases, but I doubt any games do.

Anyway, this is NOT what this thread discusses. This discussion is about black/incorrect textures when you don’t switch to VT or suspend.

On the topic of buffer_age, I found that in KDE I often see flickering textures when I’m coding in QtCreator. It often displays tooltips, which morph and resize as you type the code. Sometimes you can see remnants of those animations flicker on the editor view.

Hi,

Just in case it can help others. I solved almost all the pixel corruption problems on KDE with a simple configuration change. My environment is KDE5 + Plasma + NVidia.

At your home, find the file .config/plasmashellrc and add the following lines:

[QtQuickRendererSettings]
GraphicsResetNotifications=true

Also at your home, find the file .config/kwinrc and add the following lines:

[QtQuickRendererSettings]
GraphicsResetNotifications=true

With that configuration, all the KDE problems related with pixel corruption were solved. The only problem that persists in my system, is a Chromium specific problem, which has a pixel corruption after resume from suspend. But it’s not a big problem, since the pixel corruption is fixed after minimize the Chromium window. I don’t even need to close the application.

If I’m not wrong, the flag GraphicsResetNotifications=true makes Plasma and KWin to handle the NV_robustness_video_memory_purge event in order to rebuild the volatile memory (such as framebuffer objects) when it’s needed.

Hope it helps,
Regards.

Note that the GraphicsResetNotifications workaround is only available since Qt 5.12, preferably even later. Reference KDE bug: https://bugs.kde.org/show_bug.cgi?id=364766

Thak you very much, this solved my problem too.

I have to revive this topic because now people (including myself) are seeing black textures in Firefox, which are possibly caused by EGL_EXT_buffer_age (a EGL equivalent of GLX_EXT_buffer_age). There is this Firefox bug:

The bug contains a video with the problem demonstration, and a workaround, which is to essentially disable buffer age tracking (and, presumably, the use of EGL_EXT_buffer_age).

Although the bug above focuses on compositing disabled, the problem happens with compositing enabled as well (1735784 - Firefox window contents occasionally black or inconsistent).

Nvidia, please fix EXT_buffer_age or at least don’t expose it from the driver.