Intense flickering under wayland/KWin6

Minecraft 1.20.4 Using lithium / sodium / iris Plus Terralith, visuality, cloth config and no telemetry but the same flickering is present without these mods. No flickering or very rare flickering when using sodium or vanilla. Activating shaders (iris) causes the flickering to start. I can provide minecraft logs if necessary (I believe there are no errors in them).
4 Replies
IMS
IMS4mo ago
I have a similar bug with NVIDIA + wayland to fix it, I use the minecraft-wayland glfw patch from the AUR, and enable "use System GLFW" in prism
ciaens
ciaens4mo ago
hmm I'm on openSUSE Tumbleweed. I'll search if the patch exist or if I should build it Thanks for pointing me in the right direction ! Sadly no premade package for Tumbleweed so I had to patch it myself. For anyone having the same issue, follow this comment: https://github.com/Admicos/minecraft-wayland/issues/54#issuecomment-1722715553 with this patch
diff --git a/src/platform.c b/src/platform.c
index c5966ae7..3e7442f9 100644
--- a/src/platform.c
+++ b/src/platform.c
@@ -49,12 +49,12 @@ static const struct
#if defined(_GLFW_COCOA)
{ GLFW_PLATFORM_COCOA, _glfwConnectCocoa },
#endif
-#if defined(_GLFW_X11)
- { GLFW_PLATFORM_X11, _glfwConnectX11 },
-#endif
#if defined(_GLFW_WAYLAND)
{ GLFW_PLATFORM_WAYLAND, _glfwConnectWayland },
#endif
+#if defined(_GLFW_X11)
+ { GLFW_PLATFORM_X11, _glfwConnectX11 },
+#endif
};

GLFWbool _glfwSelectPlatform(int desiredID, _GLFWplatform* platform)
diff --git a/src/wl_window.c b/src/wl_window.c
index 7b9e3d0d..dd1c89ed 100644
--- a/src/wl_window.c
+++ b/src/wl_window.c
@@ -2109,8 +2109,7 @@ void _glfwSetWindowTitleWayland(_GLFWwindow* window, const char* title)
void _glfwSetWindowIconWayland(_GLFWwindow* window,
int count, const GLFWimage* images)
{
- _glfwInputError(GLFW_FEATURE_UNAVAILABLE,
- "Wayland: The platform does not support setting the window icon");
+ fprintf(stderr, "!!! Ignoring Error: Wayland: The platform does not support setting the window icon\n");
}

void _glfwGetWindowPosWayland(_GLFWwindow* window, int* xpos, int* ypos)
diff --git a/src/platform.c b/src/platform.c
index c5966ae7..3e7442f9 100644
--- a/src/platform.c
+++ b/src/platform.c
@@ -49,12 +49,12 @@ static const struct
#if defined(_GLFW_COCOA)
{ GLFW_PLATFORM_COCOA, _glfwConnectCocoa },
#endif
-#if defined(_GLFW_X11)
- { GLFW_PLATFORM_X11, _glfwConnectX11 },
-#endif
#if defined(_GLFW_WAYLAND)
{ GLFW_PLATFORM_WAYLAND, _glfwConnectWayland },
#endif
+#if defined(_GLFW_X11)
+ { GLFW_PLATFORM_X11, _glfwConnectX11 },
+#endif
};

GLFWbool _glfwSelectPlatform(int desiredID, _GLFWplatform* platform)
diff --git a/src/wl_window.c b/src/wl_window.c
index 7b9e3d0d..dd1c89ed 100644
--- a/src/wl_window.c
+++ b/src/wl_window.c
@@ -2109,8 +2109,7 @@ void _glfwSetWindowTitleWayland(_GLFWwindow* window, const char* title)
void _glfwSetWindowIconWayland(_GLFWwindow* window,
int count, const GLFWimage* images)
{
- _glfwInputError(GLFW_FEATURE_UNAVAILABLE,
- "Wayland: The platform does not support setting the window icon");
+ fprintf(stderr, "!!! Ignoring Error: Wayland: The platform does not support setting the window icon\n");
}

void _glfwGetWindowPosWayland(_GLFWwindow* window, int* xpos, int* ypos)
(removed last diff from original because I believe no longer relevant with glfw 3.5, and you have to apply manually) Note: I get this when entering the world but I think I can ignore (just cursor out of window context). [23:18:46] [Render thread/ERROR]: ########## GL ERROR ########## [23:18:46] [Render thread/ERROR]: @ Pre render [23:18:46] [Render thread/ERROR]: 65548: Wayland: The platform does not support setting the cursor position
IMS
IMS4mo ago
yep btw: that error will cause a crash if you try running Forge 1.19+, the latest NeoForge fixes this
ciaens
ciaens4mo ago
oh nice to know that it is fixed 👍