Bug 486085 - since last update 2 weeks ago, kubrick is rendered transparently and is unplayable
Summary: since last update 2 weeks ago, kubrick is rendered transparently and is unpla...
Status: RESOLVED FIXED
Alias: None
Product: kubrick
Classification: Applications
Component: general (show other bugs)
Version: 1.1.24022
Platform: Arch Linux Linux
: NOR normal
Target Milestone: ---
Assignee: Ian Wadham
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-04-24 17:36 UTC by stefan_kain
Modified: 2024-04-28 09:20 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 1.1.24050


Attachments
screenshot showing the transparent rendering (226.57 KB, image/png)
2024-04-24 17:36 UTC, stefan_kain
Details

Note You need to log in before you can comment on or make changes to this bug.
Description stefan_kain 2024-04-24 17:36:43 UTC
Created attachment 168878 [details]
screenshot showing the transparent rendering

SUMMARY
The faces are transparent. Rotating the cube as a whole or moving a layer are nearly impossible.
Occasionally a face can be grabbed but the rotation is quirky and unpredictable.

The version displayed in "About Kubrick" is 1.1.24022 which cannot be found above in the version selection box.


STEPS TO REPRODUCE
1. up-to-date archlinux with kubrick-24.02.2-1-x86_64.pkg.tar.zst
 start kubrick.

I tried downgrading to an earlier version from march. but the problem is the same, which leads me to believe,
it must be some weird interaction between kubrick and upgraded kde-ecosystem. 

OBSERVED RESULT
transparent rendering, cube cannot be grabbed anymore with mouse and rotated

EXPECTED RESULT
the old behavior of solid rendering and manipulating the cube with the mouse.

SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 
KDE Frameworks Version: 
Qt Version: 
I add the output of ldd kubrick:
ldd kubrick 
        linux-vdso.so.1 (0x00007ffd4d572000)
        libKDEGames6.so.6 => /usr/lib/libKDEGames6.so.6 (0x00007e2e86d88000)
        libKF6Crash.so.6 => /usr/lib/libKF6Crash.so.6 (0x00007e2e86d7b000)
        libKF6XmlGui.so.6 => /usr/lib/libKF6XmlGui.so.6 (0x00007e2e86c9c000)
        libQt6Svg.so.6 => /usr/lib/libQt6Svg.so.6 (0x00007e2e86c23000)
        libQt6OpenGLWidgets.so.6 => /usr/lib/libQt6OpenGLWidgets.so.6 (0x00007e2e86c15000)
        libGLU.so.1 => /usr/lib/libGLU.so.1 (0x00007e2e86bbc000)
        libKF6ConfigWidgets.so.6 => /usr/lib/libKF6ConfigWidgets.so.6 (0x00007e2e86b64000)
        libKF6I18n.so.6 => /usr/lib/libKF6I18n.so.6 (0x00007e2e86aeb000)
        libKF6WidgetsAddons.so.6 => /usr/lib/libKF6WidgetsAddons.so.6 (0x00007e2e86800000)
        libKF6ConfigCore.so.6 => /usr/lib/libKF6ConfigCore.so.6 (0x00007e2e86a77000)
        libKF6CoreAddons.so.6 => /usr/lib/libKF6CoreAddons.so.6 (0x00007e2e86740000)
        libQt6Widgets.so.6 => /usr/lib/libQt6Widgets.so.6 (0x00007e2e86000000)
        libQt6OpenGL.so.6 => /usr/lib/libQt6OpenGL.so.6 (0x00007e2e85f5d000)
        libQt6Gui.so.6 => /usr/lib/libQt6Gui.so.6 (0x00007e2e85600000)
        libQt6Core.so.6 => /usr/lib/libQt6Core.so.6 (0x00007e2e85000000)
        libOpenGL.so.0 => /usr/lib/libOpenGL.so.0 (0x00007e2e86715000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007e2e84c00000)
        libm.so.6 => /usr/lib/libm.so.6 (0x00007e2e85e71000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007e2e84a1e000)
        libopenal.so.1 => /usr/lib/libopenal.so.1 (0x00007e2e84889000)
        libsndfile.so.1 => /usr/lib/libsndfile.so.1 (0x00007e2e84f79000)
        libKF6NewStuffWidgets.so.6 => /usr/lib/libKF6NewStuffWidgets.so.6 (0x00007e2e86a64000)
        libKF6Completion.so.6 => /usr/lib/libKF6Completion.so.6 (0x00007e2e85e35000)
        libQt6Quick.so.6 => /usr/lib/libQt6Quick.so.6 (0x00007e2e84000000)
        libQt6Qml.so.6 => /usr/lib/libQt6Qml.so.6 (0x00007e2e83a00000)
        libKF6ColorScheme.so.6 => /usr/lib/libKF6ColorScheme.so.6 (0x00007e2e86701000)
        libKF6GuiAddons.so.6 => /usr/lib/libKF6GuiAddons.so.6 (0x00007e2e84f31000)
        libKF6ConfigGui.so.6 => /usr/lib/libKF6ConfigGui.so.6 (0x00007e2e84f00000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0x00007e2e8474b000)
        libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007e2e84edb000)
        libKF6GlobalAccel.so.6 => /usr/lib/libKF6GlobalAccel.so.6 (0x00007e2e84eaa000)
        libQt6Xml.so.6 => /usr/lib/libQt6Xml.so.6 (0x00007e2e84e86000)
        libQt6Network.so.6 => /usr/lib/libQt6Network.so.6 (0x00007e2e8383e000)
        libQt6PrintSupport.so.6 => /usr/lib/libQt6PrintSupport.so.6 (0x00007e2e846d5000)
        libKF6ItemViews.so.6 => /usr/lib/libKF6ItemViews.so.6 (0x00007e2e83fb7000)
        libKF6IconWidgets.so.6 => /usr/lib/libKF6IconWidgets.so.6 (0x00007e2e846bd000)
        libKF6IconThemes.so.6 => /usr/lib/libKF6IconThemes.so.6 (0x00007e2e83f81000)
        libQt6DBus.so.6 => /usr/lib/libQt6DBus.so.6 (0x00007e2e83787000)
        libz.so.1 => /usr/lib/libz.so.1 (0x00007e2e846a3000)
        libKF6Codecs.so.6 => /usr/lib/libKF6Codecs.so.6 (0x00007e2e83f4d000)
        libudev.so.1 => /usr/lib/libudev.so.1 (0x00007e2e83750000)
        libEGL.so.1 => /usr/lib/libEGL.so.1 (0x00007e2e83f3b000)
        libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00007e2e83700000)
        libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007e2e835b3000)
        libxkbcommon.so.0 => /usr/lib/libxkbcommon.so.0 (0x00007e2e8356b000)
        libGLX.so.0 => /usr/lib/libGLX.so.0 (0x00007e2e83539000)
        libpng16.so.16 => /usr/lib/libpng16.so.16 (0x00007e2e834ff000)
        libharfbuzz.so.0 => /usr/lib/libharfbuzz.so.0 (0x00007e2e833f0000)
        libmd4c.so.0 => /usr/lib/libmd4c.so.0 (0x00007e2e833da000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007e2e8330c000)
        libicui18n.so.74 => /usr/lib/libicui18n.so.74 (0x00007e2e82e00000)
        libicuuc.so.74 => /usr/lib/libicuuc.so.74 (0x00007e2e82c13000)
        libsystemd.so.0 => /usr/lib/libsystemd.so.0 (0x00007e2e8321f000)
        libdouble-conversion.so.3 => /usr/lib/libdouble-conversion.so.3 (0x00007e2e83209000)
        libb2.so.1 => /usr/lib/libb2.so.1 (0x00007e2e831eb000)
        libpcre2-16.so.0 => /usr/lib/libpcre2-16.so.0 (0x00007e2e83159000)
        libzstd.so.1 => /usr/lib/libzstd.so.1 (0x00007e2e82b40000)
        /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007e2e86e69000)
        libGLdispatch.so.0 => /usr/lib/libGLdispatch.so.0 (0x00007e2e82a88000)
        libogg.so.0 => /usr/lib/libogg.so.0 (0x00007e2e855f5000)
        libvorbisenc.so.2 => /usr/lib/libvorbisenc.so.2 (0x00007e2e829dd000)
        libFLAC.so.12 => /usr/lib/libFLAC.so.12 (0x00007e2e82997000)
        libopus.so.0 => /usr/lib/libopus.so.0 (0x00007e2e82400000)
        libmpg123.so.0 => /usr/lib/libmpg123.so.0 (0x00007e2e8293c000)
        libmp3lame.so.0 => /usr/lib/libmp3lame.so.0 (0x00007e2e82388000)
        libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0x00007e2e8312b000)
        libKF6NewStuffCore.so.6 => /usr/lib/libKF6NewStuffCore.so.6 (0x00007e2e822d8000)
        libQt6QuickWidgets.so.6 => /usr/lib/libQt6QuickWidgets.so.6 (0x00007e2e822bc000)
        libQt6QmlModels.so.6 => /usr/lib/libQt6QmlModels.so.6 (0x00007e2e821fc000)
        libQt6WaylandClient.so.6 => /usr/lib/libQt6WaylandClient.so.6 (0x00007e2e82111000)
        libwayland-client.so.0 => /usr/lib/libwayland-client.so.0 (0x00007e2e8292a000)
        libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007e2e820e6000)
        libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00007e2e82092000)
        libbrotlidec.so.1 => /usr/lib/libbrotlidec.so.1 (0x00007e2e83f2c000)
        libproxy.so.1 => /usr/lib/libproxy.so.1 (0x00007e2e855f0000)
        libcrypto.so.3 => /usr/lib/libcrypto.so.3 (0x00007e2e81a00000)
        libKF6Archive.so.6 => /usr/lib/libKF6Archive.so.6 (0x00007e2e82054000)
        libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0x00007e2e82003000)
        libcap.so.2 => /usr/lib/libcap.so.2 (0x00007e2e81ff7000)
        libexpat.so.1 => /usr/lib/libexpat.so.1 (0x00007e2e81fce000)
        libpcre2-8.so.0 => /usr/lib/libpcre2-8.so.0 (0x00007e2e81962000)
        libgraphite2.so.3 => /usr/lib/libgraphite2.so.3 (0x00007e2e81fab000)
        libbz2.so.1.0 => /usr/lib/libbz2.so.1.0 (0x00007e2e81f98000)
        libicudata.so.74 => /usr/lib/libicudata.so.74 (0x00007e2e7fc00000)
        libgcrypt.so.20 => /usr/lib/libgcrypt.so.20 (0x00007e2e7fab7000)
        liblz4.so.1 => /usr/lib/liblz4.so.1 (0x00007e2e81f73000)
        liblzma.so.5 => /usr/lib/liblzma.so.5 (0x00007e2e81f40000)
        libgomp.so.1 => /usr/lib/libgomp.so.1 (0x00007e2e7fa66000)
        libKF6Attica.so.6 => /usr/lib/libKF6Attica.so.6 (0x00007e2e7f9b6000)
        libKF6Syndication.so.6 => /usr/lib/libKF6Syndication.so.6 (0x00007e2e7f924000)
        libKF6Package.so.6 => /usr/lib/libKF6Package.so.6 (0x00007e2e7f8f9000)
        libwayland-cursor.so.0 => /usr/lib/libwayland-cursor.so.0 (0x00007e2e84699000)
        libffi.so.8 => /usr/lib/libffi.so.8 (0x00007e2e81f35000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0x00007e2e82925000)
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007e2e7f8f1000)
        libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00007e2e7f819000)
        libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00007e2e7f7eb000)
        libcom_err.so.2 => /usr/lib/libcom_err.so.2 (0x00007e2e7f7e5000)
        libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x00007e2e7f7d7000)
        libkeyutils.so.1 => /usr/lib/libkeyutils.so.1 (0x00007e2e7f7d0000)
        libresolv.so.2 => /usr/lib/libresolv.so.2 (0x00007e2e7f7bf000)
        libbrotlicommon.so.1 => /usr/lib/libbrotlicommon.so.1 (0x00007e2e7f79c000)
        libpxbackend-1.0.so => /usr/lib/libproxy/libpxbackend-1.0.so (0x00007e2e7f78e000)
        libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x00007e2e7f72e000)
        libgpg-error.so.0 => /usr/lib/libgpg-error.so.0 (0x00007e2e7f708000)
        libcurl.so.4 => /usr/lib/libcurl.so.4 (0x00007e2e7f645000)
        libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0x00007e2e7f478000)
        libduktape.so.207 => /usr/lib/libduktape.so.207 (0x00007e2e7f42b000)
        libnghttp3.so.9 => /usr/lib/libnghttp3.so.9 (0x00007e2e7f408000)
        libnghttp2.so.14 => /usr/lib/libnghttp2.so.14 (0x00007e2e7f3de000)
        libidn2.so.0 => /usr/lib/libidn2.so.0 (0x00007e2e7f3bc000)
        libssh2.so.1 => /usr/lib/libssh2.so.1 (0x00007e2e7f373000)
        libpsl.so.5 => /usr/lib/libpsl.so.5 (0x00007e2e7f35f000)
        libssl.so.3 => /usr/lib/libssl.so.3 (0x00007e2e7f27f000)
        libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x00007e2e7f278000)
        libmount.so.1 => /usr/lib/libmount.so.1 (0x00007e2e7f228000)
        libunistring.so.5 => /usr/lib/libunistring.so.5 (0x00007e2e7f078000)
        libblkid.so.1 => /usr/lib/libblkid.so.1 (0x00007e2e7f03f000)

ADDITIONAL INFORMATION
Comment 1 Bug Janitor Service 2024-04-26 21:34:55 UTC
A possibly relevant merge request was started @ https://invent.kde.org/games/kubrick/-/merge_requests/17
Comment 2 Albert Astals Cid 2024-04-28 09:15:47 UTC
Git commit e38e5a0516088026b071eb2c2a1b6e56ed00136e by Albert Astals Cid, on behalf of Friedrich W. H. Kossebau.
Committed on 28/04/2024 at 09:14.
Pushed by aacid into branch 'master'.

Fix transparent rendering of the cube

QOpenGLWidget::paintGL() docs hints that only certain things are reset,
which does not include the blending.

So any blending functions set are just by chance, and some recent changes
in Qt code might now leave other state behind.
E.g. the last thing Kubrick's code does is painting the labels, and
QPainter font rendering sets the blending src/dest pair to
GL_CONSTANT_COLOR, GL_ONE_MINUS_SRC_COLOR. Which then on the next
invocation of paintGL() is still set at least with Qt 6.7.0.
Resulting in undesired transparent display of the cube (and background).
FIXED-IN: 1.1.24050

M  +4    -0    src/gameglview.cpp

https://invent.kde.org/games/kubrick/-/commit/e38e5a0516088026b071eb2c2a1b6e56ed00136e
Comment 3 Albert Astals Cid 2024-04-28 09:20:49 UTC
Git commit f2b826caf66760021772e071b40072b618d30e7d by Albert Astals Cid, on behalf of Friedrich W. H. Kossebau.
Committed on 28/04/2024 at 09:20.
Pushed by aacid into branch 'release/24.05'.

Fix transparent rendering of the cube

QOpenGLWidget::paintGL() docs hints that only certain things are reset,
which does not include the blending.

So any blending functions set are just by chance, and some recent changes
in Qt code might now leave other state behind.
E.g. the last thing Kubrick's code does is painting the labels, and
QPainter font rendering sets the blending src/dest pair to
GL_CONSTANT_COLOR, GL_ONE_MINUS_SRC_COLOR. Which then on the next
invocation of paintGL() is still set at least with Qt 6.7.0.
Resulting in undesired transparent display of the cube (and background).
FIXED-IN: 1.1.24050
(cherry picked from commit e38e5a0516088026b071eb2c2a1b6e56ed00136e)

M  +4    -0    src/gameglview.cpp

https://invent.kde.org/games/kubrick/-/commit/f2b826caf66760021772e071b40072b618d30e7d