y4my4my4m / kde-shader-wallpaper

KDE / Plasma - Shader Wallpaper plugin
GNU General Public License v3.0
247 stars 13 forks source link

Blank screen when trying out shaders. #56

Closed GamePlayer-8 closed 4 months ago

GamePlayer-8 commented 6 months ago

Good morning,

I've got a problem with the plugin for Plasma 6 screen lock.

When I'm trying to use whatever shader, I'm either getting blank screen or one color slowly changing screen.

SDDM wayland log prints:

qt.qpa.wayland: eglSwapBuffers failed with 0x300d, surface: 0x0
kf.svg: The theme "Shades-of-purple" uses the legacy metadata.desktop. Consider contacting the author and asking them update it to use the newer JSON format.
kf.svg: The theme "Shades-of-purple" uses the legacy metadata.desktop. Consider contacting the author and asking them update it to use the newer JSON format.
kf.plasma.core: The theme "Shades-of-purple" uses the legacy metadata.desktop. Consider contacting the author and asking them update it to use the newer JSON format.
kf.plasma.core: The theme "Shades-of-purple" uses the legacy metadata.desktop. Consider contacting the author and asking them update it to use the newer JSON format.
file:///home/gameplayer/.local/share/plasma/wallpapers/online.knowmad.shaderwallpaper/contents/ui/WindowModel.qml:41:5: QML Connections: Detected function "onValueChanged" in Connections element. This is probably intended to be a signal handler but no signal of the target matches the name.
file:///home/gameplayer/.local/share/plasma/wallpapers/online.knowmad.shaderwallpaper/contents/ui/main.qml:216: TypeError: Cannot read property 'parent' of null
file:///home/gameplayer/.local/share/plasma/wallpapers/online.knowmad.shaderwallpaper/contents/ui/main.qml:131: ReferenceError: wallpaper is not defined
file:///home/gameplayer/.local/share/plasma/wallpapers/online.knowmad.shaderwallpaper/contents/ui/WindowModel.qml:28: ReferenceError: wallpaper is not defined
file:///home/gameplayer/.local/share/plasma/wallpapers/online.knowmad.shaderwallpaper/contents/ui/WindowModel.qml:42: ReferenceError: wallpaper is not defined
file:///home/gameplayer/.local/share/plasma/wallpapers/online.knowmad.shaderwallpaper/contents/ui/WindowModel.qml:39: ReferenceError: wallpaper is not defined
file:///home/gameplayer/.local/share/plasma/wallpapers/online.knowmad.shaderwallpaper/contents/ui/WindowModel.qml:85:9: Unable to assign [undefined] to QRect
file:///home/gameplayer/.local/share/plasma/wallpapers/online.knowmad.shaderwallpaper/contents/ui/main.qml:50: TypeError: Cannot read property 'screenGeometry' of null
file:///home/gameplayer/.local/share/plasma/wallpapers/online.knowmad.shaderwallpaper/contents/ui/main.qml:95: ReferenceError: wallpaper is not defined
file:///home/gameplayer/.local/share/plasma/wallpapers/online.knowmad.shaderwallpaper/contents/ui/main.qml:67: ReferenceError: wallpaper is not defined
file:///home/gameplayer/.local/share/plasma/wallpapers/online.knowmad.shaderwallpaper/contents/ui/main.qml:66: ReferenceError: wallpaper is not defined
file:///home/gameplayer/.local/share/plasma/wallpapers/online.knowmad.shaderwallpaper/contents/ui/main.qml:65: ReferenceError: wallpaper is not defined
file:///home/gameplayer/.local/share/plasma/wallpapers/online.knowmad.shaderwallpaper/contents/ui/main.qml:64: ReferenceError: wallpaper is not defined
file:///home/gameplayer/.local/share/plasma/wallpapers/online.knowmad.shaderwallpaper/contents/ui/main.qml:57: ReferenceError: wallpaper is not defined
file:///home/gameplayer/.local/share/plasma/wallpapers/online.knowmad.shaderwallpaper/contents/ui/main.qml:101: ReferenceError: wallpaper is not defined
file:///home/gameplayer/.local/share/plasma/wallpapers/online.knowmad.shaderwallpaper/contents/ui/main.qml:107: ReferenceError: wallpaper is not defined
file:///home/gameplayer/.local/share/plasma/wallpapers/online.knowmad.shaderwallpaper/contents/ui/main.qml:113: ReferenceError: wallpaper is not defined
file:///home/gameplayer/.local/share/plasma/wallpapers/online.knowmad.shaderwallpaper/contents/ui/main.qml:119: ReferenceError: wallpaper is not defined
file:///home/gameplayer/.local/share/plasma/wallpapers/online.knowmad.shaderwallpaper/contents/ui/main.qml:222: ReferenceError: wallpaper is not defined
file:///home/gameplayer/.local/share/plasma/wallpapers/online.knowmad.shaderwallpaper/contents/ui/WindowModel.qml:85:9: Unable to assign [undefined] to QRect
file:///home/gameplayer/.local/share/plasma/wallpapers/online.knowmad.shaderwallpaper/contents/ui/main.qml:50: TypeError: Cannot read property 'screenGeometry' of null
Could not find any constructor for value type QQuickVector3DValueType to call with value QVariant(int, 0)
file:///home/gameplayer/.local/share/plasma/wallpapers/online.knowmad.shaderwallpaper/contents/ui/main.qml:57:9: Unable to assign int to QVector3D
file:///home/gameplayer/.local/share/plasma/wallpapers/online.knowmad.shaderwallpaper/contents/ui/WindowModel.qml:85:9: Unable to assign [undefined] to QRect
ShaderEffect: 'iTimeDelta' does not have a matching property
ShaderEffect: 'iFrameRate' does not have a matching property
ShaderEffect: 'iSampleRate' does not have a matching property
ShaderEffect: 'iChannelTime' does not have a matching property
kf.svg: The theme "Shades-of-purple" uses the legacy metadata.desktop. Consider contacting the author and asking them update it to use the newer JSON format.
file:///home/gameplayer/.local/share/plasma/wallpapers/online.knowmad.shaderwallpaper/contents/ui/main.qml:50: TypeError: Value is null and could not be converted to an object
qt.qpa.wayland: Could not create EGL surface (EGL error 0x3000)

Failed to write to the pipe: Bad file descriptor.

I've also tried porting the Plasma waves shader but gives the same result. (modified source code).

Is there any way to resolve this?

y4my4my4m commented 6 months ago

@GamePlayer-8 Hello, the black lockscreen is actually due to an error from Plasma6 itself. This needs to be merged to be resolved: https://invent.kde.org/plasma/kscreenlocker/-/merge_requests/218

Some of them work though, like PS3Menu.

As for your port of plasmawaves, follow the dev guide (tbh I recommend the manual process since the automated one isn't smart at all)

GamePlayer-8 commented 6 months ago

so I'll wait for the screen locker pr to be merged.

I've patched the shader for Qt, although I had an issue with finding a solution for

    uniform vec2 u_resolution; 
    uniform vec2 u_mouse;
    uniform float u_time;

since Vulkan refuses non-opaque uniforms outside a block although those variables are needed for other GLSL apps.

y4my4my4m commented 6 months ago

@GamePlayer-8

vec3 iResolution = ubuf.iResolution; 
vec4 iMouse = ubuf.iMouse

You mean this doesn't work? (After defining the ubuf block above that like in the dev guide)

GamePlayer-8 commented 6 months ago

ubuf declaration in the tutorial works only for Qt, but not in the standard GLSL.

At least all variables in ubuf are undeclared when using GLSLViewer, GLSLEditor.

GamePlayer-8 commented 6 months ago

after updating the Qt version to the latest one, the issue with uniform variables is gone.

y4my4my4m commented 5 months ago

@GamePlayer-8 which version is that? Do you mean from Qt5 to Qt6?

GamePlayer-8 commented 5 months ago

I'm using Qt 6 since the beginning. Current version on which the issue went away is 6.7.1

toboil-features commented 4 months ago

Sorry for interrupting, it looks like the Dev merged it. https://invent.kde.org/plasma/kscreenlocker/-/merge_requests/218

y4my4my4m commented 4 months ago

@toboil-features thank you for notifying me! I had not noticed. Will install plasma 6.1 and see how it behaves now. Might still need some patches from my side.

y4my4my4m commented 4 months ago

@toboil-features so i had to switch to unstable branch to try it, but so far all the shaders i've tried worked just fine. I believe this is fixed.

Make sure to use plasma 6.1!