| Summary: | KDE Wayland line under window decorations at 120% fractional scale | ||
|---|---|---|---|
| Product: | [Plasma] kwin | Reporter: | Aariz <aarizmustafa45> |
| Component: | decorations | Assignee: | Nick <mobile.harvey> |
| Status: | RESOLVED FIXED | ||
| Severity: | minor | CC: | kaloyan.ignatov, kwin-bugs-null, me, mobile.harvey, nate, postix, raymund.riegl, uhhadd, vasua.ukraine, waynejwoww, webcapcha, xaver.hugl |
| Priority: | NOR | ||
| Version First Reported In: | 6.2.3 | ||
| Target Milestone: | --- | ||
| Platform: | Arch Linux | ||
| OS: | Linux | ||
| Latest Commit: | https://invent.kde.org/plasma/kwin/-/commit/8fa7eedf74259280ad8ebdd0159066728c604fcb | Version Fixed/Implemented In: | |
| Sentry Crash Report: | |||
| Attachments: |
You can see a purple line right under the titlebar window decoration that is bleeding from the background.
Confirmed Glitch between window title and content |
||
Created attachment 167457 [details]
Confirmed
Hi - I can duplicate this using the OP's description. Here you can see in the top left of the Dolphin window, under the title bar, some of Neon's default wallpaper bleeding through in a thin horizontal line. Dolphin must be full-screen to duplicate this. Display scaling set to 120%.
I'm on the latest Neon, Wayland, and intel graphics.
Marking as a confirmed bug for further investigation.
More fractional pixel rounding issues, I expect. Xaver, should we mark this as a duplicate of something existing, or track it separately? *** Bug 485472 has been marked as a duplicate of this bug. *** I can confirm it too. Scaling is set to 150% in my case. Fedora 40, Kernel 6.8.9.300.fc40.x86_64, wayland KDE Plasma Version: 6.0.4 KDE Frameworks Version: 6.1.0 Qt Version: 6.7.0 GRAPHICS INFO Hardware: AMD Ryzen 6600HS APU Compositing =========== Compositing is active Compositing Type: OpenGL OpenGL vendor string: AMD OpenGL renderer string: AMD Radeon Graphics (radeonsi, rembrandt, LLVM 18.1.1, DRM 3.57, 6.8.9-300.fc40.x86_64) OpenGL version string: 4.6 (Core Profile) Mesa 24.0.6 OpenGL platform interface: EGL OpenGL shading language version string: 4.60 Driver: Unknown GPU class: Unknown OpenGL version: 4.6 GLSL version: 4.60 Mesa version: 24.0.6 X server version: 1.23.2 Linux kernel version: 6.8.9 Direct rendering: Requires strict binding: no Virtual Machine: no OpenGL 2 Shaders are used Created attachment 169392 [details]
Glitch between window title and content
I can confirm it too.
Scaling is set to 150% in my case.
Fedora 40, Kernel 6.8.9.300.fc40.x86_64, wayland
KDE Plasma Version: 6.0.4
KDE Frameworks Version: 6.1.0
Qt Version: 6.7.0
GRAPHICS INFO
Hardware: AMD Ryzen 6600HS APU
Compositing
===========
Compositing is active
Compositing Type: OpenGL
OpenGL vendor string: AMD
OpenGL renderer string: AMD Radeon Graphics (radeonsi, rembrandt, LLVM 18.1.1, DRM 3.57, 6.8.9-300.fc40.x86_64)
OpenGL version string: 4.6 (Core Profile) Mesa 24.0.6
OpenGL platform interface: EGL
OpenGL shading language version string: 4.60
Driver: Unknown
GPU class: Unknown
OpenGL version: 4.6
GLSL version: 4.60
Mesa version: 24.0.6
X server version: 1.23.2
Linux kernel version: 6.8.9
Direct rendering: Requires strict binding: no
Virtual Machine: no
OpenGL 2 Shaders are used
Additional info: in my case it only occurs when the window is maximized. (I'm sorry for my double post above, i'm new here and didn't understand the add attachment function on this website) Bug still exists after update to plasma 6.0.5 KDE Frameworks Version: 6.2.0 Qt Version: 6.7.0 Bug still exists on Plasma Version 6.1. Operating System: Fedora Linux 40 KDE Plasma Version: 6.1.0 KDE Frameworks Version: 6.3.0 Qt Version: 6.7.1 Kernel Version: 6.9.4-200.fc40.x86_64 (64-bit) Graphics Platform: Wayland Graphics Processor: AMD Radeon Graphics OpenGL (EGL) info: Wayland platform: EGL API version: 1.5 EGL vendor string: Mesa Project EGL version string: 1.5 EGL client APIs: OpenGL OpenGL_ES EGL driver name: radeonsi (...) OpenGL core profile vendor: AMD OpenGL core profile renderer: AMD Radeon Graphics (radeonsi, rembrandt, LLVM 18.1.6, DRM 3.57, 6.9.4-200.fc40.x86_64) OpenGL core profile version: 4.6 (Core Profile) Mesa 24.1.1 OpenGL core profile shading language version: 4.60 KWin info: Version ======= KWin version: 6.1.0 Qt Version: 6.7.1 Qt compile version: 6.7.1 XCB compile version: 1.17.0 Operation Mode: Xwayland Build Options ============= KWIN_BUILD_DECORATIONS: yes KWIN_BUILD_TABBOX: yes KWIN_BUILD_ACTIVITIES: yes HAVE_X11_XCB: yes HAVE_GLX: yes A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/5950 *** Bug 486469 has been marked as a duplicate of this bug. *** *** Bug 489905 has been marked as a duplicate of this bug. *** *** Bug 488357 has been marked as a duplicate of this bug. *** problem still exists in plasma 6.1.4 Operating System: Fedora Linux 40 KDE Plasma Version: 6.1.4 KDE Frameworks Version: 6.5.0 Qt Version: 6.7.2 Kernel Version: 6.10.6-200.fc40.x86_64 (64-bit) Graphics Platform: Wayland *** Bug 493458 has been marked as a duplicate of this bug. *** problem still exists in Plasma 6.2.2: Operating System: Fedora Linux 41 KDE Plasma Version: 6.2.2 KDE Frameworks Version: 6.7.0 Qt Version: 6.8.0 Kernel Version: 6.11.5-300.fc41.x86_64 (64-bit) Graphics Platform: Wayland Git commit 8fa7eedf74259280ad8ebdd0159066728c604fcb by Xaver Hugl.
Committed on 13/12/2024 at 15:13.
Pushed by zamundaaa into branch 'master'.
window: snap sizes to the pixel grid and double buffer decoration state
This ensures that the decoration (as well as other KWin code) gets a logical size that fits
perfectly on the pixel grid. In other words, multiplying it with the scale factor results in
an integer, so there are no gaps or overlaps when using the floating point value in geometry
calculations or painting code.
For example, before, if you had a screen with 200% scale, and a window on it that's 49u wide
with 1px wide decoration borders, the border size in integer logical units would be
round(1px / 200%) = 1u
and the resulting size
1u + 49u + 1u = 51u => 51 * 200% = 102px
but the actual pixel size is
1px + 49u * 200% + 1px = 100px
with this change, the floating point numbers are taken into account, the decoration border is
1px / 200% = 0.5u
wide and thus the logical window size is
0.5u + 49u + 0.5u = 50u => 100px
which matches the actual pixel size perfectly.
Similar issues were observable with the window size at non-integer scale factors, which also
get fixed by this commit.
Co-authored-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
Related: bug 452438, bug 492052
M +23 -0 src/core/pixelgrid.h
M +14 -1 src/decorations/decoratedwindow.cpp
M +2 -0 src/decorations/decoratedwindow.h
M +1 -0 src/decorations/decorationbridge.cpp
M +16 -5 src/inputpanelv1window.cpp
M +2 -1 src/inputpanelv1window.h
M +11 -1 src/internalwindow.cpp
M +2 -0 src/kcms/decoration/declarative-plugin/previewbutton.cpp
M +10 -0 src/kcms/decoration/declarative-plugin/previewclient.cpp
M +2 -0 src/kcms/decoration/declarative-plugin/previewclient.h
M +2 -0 src/kcms/decoration/declarative-plugin/previewitem.cpp
M +17 -3 src/layershellv1window.cpp
M +3 -1 src/layershellv1window.h
M +1 -1 src/plugins/kdecorations/aurorae/src/aurorae.cpp
M +6 -21 src/scene/decorationitem.cpp
M +1 -2 src/scene/decorationitem.h
M +2 -1 src/waylandwindow.cpp
M +26 -12 src/window.cpp
M +10 -5 src/window.h
M +16 -5 src/x11window.cpp
M +1 -0 src/x11window.h
M +51 -22 src/xdgshellwindow.cpp
M +11 -2 src/xdgshellwindow.h
https://invent.kde.org/plasma/kwin/-/commit/8fa7eedf74259280ad8ebdd0159066728c604fcb
|
Created attachment 167028 [details] You can see a purple line right under the titlebar window decoration that is bleeding from the background. There is an obvious line when a qt6 program is maximized on Wayland session with fractional scaling set at 120% STEPS TO REPRODUCE 1. Use KDE Wayland Session 2. Use fractkonal scaling at 120% 3. Maximize a qt6 app window OBSERVED RESULT Line from background window decoration bleeding through EXPECTED RESULT No line under window decoration from background bleeding SOFTWARE/OS VERSIONS Windows: macOS: Linux/KDE Plasma: (available in About System) KDE Plasma Version: KDE Frameworks Version: Qt Version: ADDITIONAL INFORMATION