Bug 518770 - org.kde.kwin.ColorPicker.pick returns different random-looking values every time
Summary: org.kde.kwin.ColorPicker.pick returns different random-looking values every time
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: colour-management (other bugs)
Version First Reported In: 6.6.80
Platform: KDE Linux Linux
: NOR major
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: regression
Depends on:
Blocks:
 
Reported: 2026-04-10 09:47 UTC by Nate Graham
Modified: 2026-04-11 14:17 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In: 6.6.5
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nate Graham 2026-04-10 09:47:50 UTC
STEPS TO REPRODUCE
1. qdbus6 --literal org.kde.KWin /ColorPicker org.kde.kwin.ColorPicker.pick
2. click on something
2. qdbus6 --literal org.kde.KWin /ColorPicker org.kde.kwin.ColorPicker.pick
3. click on *the exact same thing*

OBSERVED RESULT
[Argument: (u) 4278356168]
[Argument: (u) 4282259568]

EXPECTED RESULT
[Argument: (u) 4278356168]
[Argument: (u) 4278356168]

SOFTWARE/OS VERSIONS
Operating System: KDE Linux 2026-04-09
KDE Plasma Version: 6.6.80
KDE Frameworks Version: 6.26.0
Qt Version: 6.11.0
Kernel Version: 6.19.11-zen1-1-zen (64-bit)
Graphics Platform: Wayland
Processors: 16 × Intel® Core™ Ultra 7 255H
Memory: 34 GB of RAM (33.2 GB usable)
Graphics Processor: Intel® Graphics
Comment 1 Nate Graham 2026-04-10 09:53:28 UTC
With Xaver's guidance, I confirmed that this diff fixes it:

diff --git src/plugins/colorpicker/colorpicker.cpp src/plugins/colorpicker/colorpicker.cpp
index 9d783764c5..f0c4963a64 100644
--- src/plugins/colorpicker/colorpicker.cpp
+++ src/plugins/colorpicker/colorpicker.cpp
@@ -138,8 +138,8 @@ QColor ColorPickerEffect::pick()
             }
 
             GLFramebuffer::pushFramebuffer(target.get());
-            QImage snapshot = QImage(offscreenTexture->size(), QImage::Format_RGB888);
-            context->glReadnPixels(0, 0, snapshot.width(), snapshot.height(), GL_RGB, GL_UNSIGNED_BYTE, snapshot.sizeInBytes(), static_cast<GLvoid *>(snapshot.bits()));
+            QImage snapshot = QImage(offscreenTexture->size(), QImage::Format_RGBA8888);
+            context->glReadnPixels(0, 0, snapshot.width(), snapshot.height(), GL_RGBA, GL_UNSIGNED_BYTE, snapshot.sizeInBytes(), static_cast<GLvoid *>(snapshot.bits()));
             GLFramebuffer::popFramebuffer();
 
             QDBusConnection::sessionBus().send(m_replyMessage.createReply(snapshot.pixelColor(0, 0)));
Comment 2 David Edmundson 2026-04-10 12:44:11 UTC
Fixed with https://invent.kde.org/plasma/kwin/-/merge_requests/9070
Comment 3 Zamundaaa 2026-04-10 12:57:30 UTC
Git commit 64ccacae99b2a67e2f58b05cbd45eb6f9223a6f2 by Xaver Hugl.
Committed on 10/04/2026 at 12:05.
Pushed by zamundaaa into branch 'master'.

plugins/colorpicker: use GL_RGBA instead of GL_RGB, to support OpenGL ES

OpenGL ES only supports GL_RGBA.

M  +2    -2    src/plugins/colorpicker/colorpicker.cpp

https://invent.kde.org/plasma/kwin/-/commit/64ccacae99b2a67e2f58b05cbd45eb6f9223a6f2
Comment 4 Zamundaaa 2026-04-10 16:00:00 UTC
Git commit c50b3fd25d369b8bd147092198360a458b2e86ea by Xaver Hugl.
Committed on 10/04/2026 at 15:05.
Pushed by zamundaaa into branch 'Plasma/6.6'.

plugins/colorpicker: use GL_RGBA instead of GL_RGB, to support OpenGL ES

OpenGL ES only supports GL_RGBA.
(cherry picked from commit 64ccacae99b2a67e2f58b05cbd45eb6f9223a6f2)

M  +2    -2    src/plugins/colorpicker/colorpicker.cpp

https://invent.kde.org/plasma/kwin/-/commit/c50b3fd25d369b8bd147092198360a458b2e86ea