Bug 371875

Summary: Plasma 5 Desktop shows Black bar on Second screen in ultra-wide UW-UXGA (2560x1080) resolution
Product: [Plasma] plasmashell Reporter: GHPS <kde-software>
Component: generic-multiscreenAssignee: Aleix Pol <aleixpol>
Status: RESOLVED FIXED    
Severity: minor CC: germano.massullo, kde, notmart, plasma-bugs-null, postix
Priority: NOR    
Version First Reported In: 5.9.0   
Target Milestone: 1.0   
Platform: Kubuntu   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:
Attachments: Screenshot 1 - Desktop with black bar.
Screenshot 2 - Desktop with widgets.
Kubuntu 17.10 Screenshot after Boot into Live system with black bar.
Kubuntu 18.04 Screenshot after Boot into Live system with black bar.
Kubuntu 19.10 Screenshot after Boot into Live system

Description GHPS 2016-10-30 20:38:25 UTC
Created attachment 101905 [details]
Screenshot 1 - Desktop with black bar.

Since I've switched from Kubuntu 14.04-32 to 16.04-64 I have a problem with the desktop on the second screen. The desktop there shows a wide band of black pixels or pixelated artifacts (see 1st screenshot). Therefore this area of desktop and every widgets placed here is unusable (see 2nd screenshot).

After some testing I can say that the problem is
1) not caused by a hardware defect in my Thinkpad T60 with ATI RV530.
2) not caused by the video driver infrastructure.
3) affecting the desktop (simple color, background pattern and background picture) and all desktop widgets.
4) affecting the login screen.
5) not affecting any applications. They can be placed anywhere on the screen without artifacts.
6) not present when the resolution of the second screen is lower than 2560x1080 (UW-UXGA).
7) was not present in Kubuntu 14.04.
8) is present in every version of Plasma 5 - in Kubuntu 16.04 with Plasma 5.5 and now 5.6.5 up to the latest Neon (neon-useredition-20161012-1222-amd64) with Plasma 5.8.1.
   
Somehow it looks like a corruption of the video buffer memory - is there a process writing to this piece of memory?

GHPS
Comment 1 GHPS 2016-10-30 20:39:38 UTC
Created attachment 101906 [details]
Screenshot 2 - Desktop with widgets.
Comment 2 Marco Martin 2016-10-31 12:40:56 UTC
hmm, almost seems a random texture corruption? maybe driver issue due to huge texture?
Comment 3 GHPS 2016-10-31 13:22:37 UTC
> maybe driver issue due to huge texture?

Is a texture present even if the desktop background is set to a single color?

I doubt that this problem is driver related since all applications
(even video playback) works fine on second screen.
Comment 4 GHPS 2016-11-16 19:54:05 UTC
Update: The bug is still present even in the latest Kubuntu Neon with KDE 5.8.3 (neon-useredition-20161114-0947-amd64).

But I spend some time on further testing. After tweaking various combinations of resolution, desktop background and visible widgets I came up with a temporal fix for the black bar problem - and an idea what causes the problem.

If on both screens the background is set to “Simple Color” and the resolution on the second screen is lowered to 1920 and re-set to 2560x1080 then the desktop background is flawless. Even the Hunyango desktop background works fine.

Unfortunately the black bar immediately reappears when a widget is dragged-and-dropped on this desktop.

At least in Neon this trick didn’t work when a desktop background pattern was enabled on the first screen.

My guess is that the desktop background and/or the widget subsystem corrupt parts of the buffer memory.
Comment 5 GHPS 2017-02-02 16:07:30 UTC
Just checked against Plasma 5.9.0 with Qt 5.7.1 (neon-devedition-gitstable-20170201-1047-amd64): Bug is still present.
Comment 6 GHPS 2017-04-20 14:23:04 UTC
Even the latest Kubuntu release version, Kubuntu 17.04, is affected by this problem.

To get rid of this annoying bug I've done some further testing on various platforms. As noted the problem didn't exist on KDE4. 

All current versions of KDE5 are affected (Kubuntu 16.04 ff, OpenSuse Krypton, Fedora 24 KDE), all non-KDE versions are fine (a.o. Fedora 24 Mate, Ubuntu 16.04, Xubuntu, Lubuntu, Ubuntu Mate)

The bar temporarily disappears when the display resolution is lowered and set to UXGA again. Trying to drop a widget onto the desktop immediately causes the black bar to appear again.

Therefore the conclusion lies at hand that a component of the widget library causes a memory corruption and overwrites a part of the display memory/bitmap cache.

Is there a way to disable selective components of the widget subsystem to verify this idea? Or remove some parts completely?
Comment 7 GHPS 2017-10-27 16:54:29 UTC
Update: Kubuntu 17.10 has just been released based on Plasma 5.10.5 and Qt 5.9.1

The problem, however, remains unchanged (see screenshot).
Comment 8 GHPS 2017-10-27 16:56:05 UTC
Created attachment 108587 [details]
Kubuntu 17.10 Screenshot after Boot into Live system with black bar.

Kubuntu 17.10 Screenshot after Boot into Live system with black bar.
Comment 9 GHPS 2018-03-21 22:44:24 UTC
I've just tested the upcoming version of Kubuntu 18.04 with Plasma 5.12.3 and
Qt 5.94.

The daily build shows no changes concerning the black bar on the desktop. Chances are high that this annoying bug will find it's way into the next LTS version...
Comment 10 GHPS 2018-03-21 22:46:51 UTC
Created attachment 111544 [details]
Kubuntu 18.04 Screenshot after Boot into Live system with black bar.
Comment 11 David Edmundson 2018-03-21 23:23:58 UTC
please can you run 

kquitapp5 plasmashell
QSG_INFO=1 plasmashell and paste the output here
Comment 12 GHPS 2018-03-23 15:45:39 UTC
On the same Kubuntu 18.04 Live Boot system 
> kquitapp5 plasmashell
> QSG_INFO=1 plasmashell
returns

org.kde.plasmaquick: Applet preload policy set to 1                                                                                                  
qt.scenegraph.general: QSG: basic render loop                                                                                                                 
qt.scenegraph.general: Using sg animation driver                                                                                                                    
Warning: all files used by qml by the plasmoid should be in ui/. The file in the path "file:///usr/share/plasma/plasmoids/org.kde.desktopcontainment/contents/code/LayoutManager.js" was expected at QUrl("file:///usr/share/plasma/plasmoids/org.kde.desktopcontainment/contents/ui/LayoutManager.js")
Warning: all files used by qml by the plasmoid should be in ui/. The file in the path "file:///usr/share/plasma/plasmoids/org.kde.desktopcontainment/contents/code/FolderTools.js" was expected at QUrl("file:///usr/share/plasma/plasmoids/org.kde.desktopcontainment/contents/ui/FolderTools.js")
trying to show an empty dialog
trying to show an empty dialog
qt.scenegraph.general: texture atlas dimensions: 2048x2048
qt.scenegraph.general: R/G/B/A Buffers:    8 8 8 8
qt.scenegraph.general: Depth Buffer:       24
qt.scenegraph.general: Stencil Buffer:     8
qt.scenegraph.general: Samples:            -1
qt.scenegraph.general: GL_VENDOR:          X.Org R300 Project
qt.scenegraph.general: GL_RENDERER:        ATI RV530
qt.scenegraph.general: GL_VERSION:         2.1 Mesa 18.0.0-rc4
qt.scenegraph.general: GL_EXTENSIONS:      GL_APPLE_packed_pixels GL_EXT_copy_texture GL_NV_packed_depth_stencil GL_EXT_subtexture GL_ARB_shadow GL_ARB_separate_shader_objects GL_EXT_bgra GL_ATI_texture_float GL_EXT_texture_rectangle GL_EXT_texture_env_combine GL_IBM_texture_mirrored_repeat GL_SUN_multi_draw_arrays GL_ARB_shader_texture_lod GL_EXT_polygon_offset GL_EXT_separate_specular_color GL_EXT_stencil_wrap GL_EXT_vertex_array_bgra GL_ARB_explicit_uniform_location GL_ATI_texture_env_combine3 GL_ATI_texture_mirror_once GL_ANGLE_texture_compression_dxt3 GL_ARB_texture_barrier GL_ANGLE_texture_compression_dxt5 GL_ARB_buffer_storage GL_EXT_secondary_color GL_ARB_explicit_attrib_location GL_IBM_rasterpos_clip GL_NV_fog_distance GL_EXT_texture_swizzle GL_ARB_vertex_array_object GL_IBM_multimode_draw_arrays GL_ARB_vertex_attrib_binding GL_EXT_texture_sRGB_decode GL_ARB_multisample GL_ARB_half_float_vertex GL_ARB_texture_storage GL_NV_light_max_exponent GL_NV_conditional_render GL_ARB_robustness GL_ARB_fragment_program GL_EXT_abgr GL_ATI_fragment_shader GL_EXT_rescale_normal GL_ARB_texture_compression GL_ARB_texture_swizzle GL_EXT_stencil_two_side GL_EXT_texture_object GL_ARB_texture_compression_rgtc GL_NV_texture_barrier GL_EXT_texture_sRGB GL_ARB_vertex_buffer_object GL_ARB_texture_float GL_ARB_texture_cube_map GL_EXT_texture_compression_rgtc GL_ARB_shading_language_100 GL_EXT_fog_coord GL_ARB_clip_control GL_SGIS_texture_lod GL_ARB_transpose_matrix GL_NV_blend_square GL_EXT_texture_compression_latc GL_ARB_provoking_vertex GL_ATI_draw_buffers GL_KHR_debug GL_ARB_debug_output GL_ARB_multi_bind GL_EXT_texture3D GL_EXT_draw_range_elements GL_ARB_internalformat_query2 GL_ARB_texture_non_power_of_two GL_EXT_blend_func_separate  GL_ARB_texture_env_dot3 GL_ARB_vertex_shader GL_MESA_window_pos GL_EXT_texture_cube_map GL_ARB_instanced_arrays GL_AMD_shader_trinary_minmax GL_EXT_texture_edge_clamp GL_INGR_blend_func_separate GL_EXT_texture_snorm GL_EXT_provoking_vertex GL_ARB_point_parameters GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_blend_equation_separate GL_EXT_framebuffer_object GL_ARB_ES2_compatibility GL_ARB_depth_texture GL_ARB_program_interface_query GL_NV_texture_rectangle GL_ARB_draw_elements_base_vertex GL_ARB_point_sprite GL_ARB_vertex_program GL_ARB_get_texture_sub_image GL_SGIS_generate_mipmap GL_ARB_fragment_coord_conventions GL_EXT_packed_pixels GL_MESA_ycbcr_texture GL_SGIS_texture_border_clamp GL_EXT_texture_env_dot3 GL_ARB_occlusion_query2 GL_ARB_pixel_buffer_object GL_KHR_no_error GL_ARB_invalidate_subdata GL_NV_texture_env_combine4 GL_ARB_map_buffer_alignment GL_EXT_texture_lod_bias GL_ARB_half_float_pixel GL_EXT_shadow_funcs GL_EXT_texture_env_add GL_ARB_sampler_objects GL_EXT_blend_color GL_EXT_texture GL_MESA_pack_invert GL_ARB_get_program_binary GL_EXT_point_parameters GL_S3_s3tc GL_ARB_fragment_shader GL_ARB_internalformat_query GL_EXT_vertex_array GL_ARB_occlusion_query GL_MESA_texture_signed_rgba GL_ARB_texture_mirror_clamp_to_edge GL_ARB_framebuffer_object GL_ATI_blend_equation_separate GL_ARB_texture_env_add GL_EXT_texture_compression_s3tc GL_EXT_framebuffer_multisample GL_ATI_separate_stencil GL_EXT_blend_minmax GL_OES_read_format GL_EXT_framebuffer_blit GL_ARB_clear_buffer_object GL_EXT_texture_filter_anisotropic GL_ARB_texture_filter_anisotropic GL_ARB_texture_rg GL_OES_EGL_image GL_ARB_copy_buffer GL_EXT_texture_compression_dxt1 GL_SGIS_texture_edge_clamp GL_ARB_texture_env_combine GL_EXT_packed_depth_stencil GL_EXT_compiled_vertex_array GL_ARB_texture_border_clamp GL_ARB_texture_env_crossbar GL_EXT_pixel_buffer_object GL_ARB_compressed_texture_pixel_storage GL_KHR_context_flush_control GL_ARB_multitexture GL_NV_texgen_reflection GL_ARB_map_buffer_range GL_EXT_gpu_program_parameters GL_ARB_texture_mirrored_repeat GL_ARB_texture_rectangle GL_ARB_draw_buffers GL_ARB_vertex_array_bgra GL_EXT_texture_mirror_clamp GL_ARB_window_pos GL_EXT_blend_subtract GL_ARB_color_buffer_float GL_ATI_texture_compression_3dc GL_EXT_multi_draw_arrays GL_ARB_fragment_program_shadow GL_ARB_shader_objects GL_ARB_
sync
qt.scenegraph.general: Max Texture Size:  4096
qt.scenegraph.general: Debug context:     false
Trying to use rootObject before initialization is completed, whilst using setInitializationDelayed. Forcing completion
org.kde.plasmaquick: New Applet  "Application Launcher" with a weight of 92
Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString)
Trying to use rootObject before initialization is completed, whilst using setInitializationDelayed. Forcing completion
Both point size and pixel size set. Using pixel size.
Both point size and pixel size set. Using pixel size.
Both point size and pixel size set. Using pixel size.
trying to show an empty dialog
org.kde.plasmaquick: New Applet  "Digital Clock" with a weight of 42
Warning: all files used by qml by the plasmoid should be in ui/. The file in the path "file:///usr/share/plasma/plasmoids/org.kde.panel/contents/code/LayoutManager.js" was expected at QUrl("file:///usr/share/plasma/plasmoids/org.kde.panel/contents/ui/LayoutManager.js")
trying to show an empty dialog
org.kde.plasmaquick: Delayed preload of  "Application Launcher" after 0.229 seconds
KAStatsFavoritesModel::setFavorites is ignored
KActivities: Database connection:  "kactivities_db_resources_140652431243264_readonly" 
    query_only:          QVariant(qlonglong, 1) 
    journal_mode:        QVariant(QString, "wal") 
    wal_autocheckpoint:  QVariant(qlonglong, 100) 
    synchronous:         QVariant(qlonglong, 0)
Closing SQL connection:  "kactivities_db_resources_140652431243264_readonly"
trying to show an empty dialog
org.kde.plasmaquick: Applet "Application Launcher" loaded after 190 msec
org.kde.plasmaquick: New Applet  "Audio Volume" with a weight of 42
org.kde.plasmaquick: New Applet  "Clipboard" with a weight of 42
org.kde.plasmaquick: New Applet  "Device Notifier" with a weight of 42
Trying to use rootObject before initialization is completed, whilst using setInitializationDelayed. Forcing completion
org.kde.plasmaquick: New Applet  "KDE Connect" with a weight of 42
Warning: all files used by qml by the plasmoid should be in ui/. The file in the path "file:///usr/share/plasma/plasmoids/org.kde.plasma.notifications/contents/code/uiproperties.js" was expected at QUrl("file:///usr/share/plasma/plasmoids/org.kde.plasma.notifications/contents/ui/uiproperties.js")
org.kde.plasmaquick: New Applet  "Notifications" with a weight of 42
libkcups: Create-Printer-Subscriptions last error: 0 successful-ok
libkcups: Get-Jobs last error: 0 successful-ok
libkcups: Get-Jobs last error: 0 successful-ok
org.kde.plasmaquick: New Applet  "Printers" with a weight of 42
org.kde.plasmaquick: New Applet  "Updates" with a weight of 42
org.kde.plasmaquick: New Applet  "Vaults" with a weight of 42
Plasma Shell startup completed
libkcups: 0
libkcups: 0
networkmanager-qt: void NetworkManager::NetworkManagerPrivate::propertiesChanged(const QVariantMap&) Unhandled property "AllDevices"
networkmanager-qt: void NetworkManager::NetworkManagerPrivate::propertiesChanged(const QVariantMap&) Unhandled property "Capabilities"
networkmanager-qt: void NetworkManager::NetworkManagerPrivate::propertiesChanged(const QVariantMap&) Unhandled property "ConnectivityCheckAvailable"
networkmanager-qt: void NetworkManager::NetworkManagerPrivate::propertiesChanged(const QVariantMap&) Unhandled property "ConnectivityCheckEnabled"
networkmanager-qt: void NetworkManager::NetworkManagerPrivate::propertiesChanged(const QVariantMap&) Unhandled property "Devices"
networkmanager-qt: void NetworkManager::NetworkManagerPrivate::propertiesChanged(const QVariantMap&) Unhandled property "GlobalDnsConfiguration"
networkmanager-qt: virtual void NetworkManager::ActiveConnectionPrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "StateFlags"
networkmanager-qt: virtual void NetworkManager::DevicePrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "LldpNeighbors"
networkmanager-qt: virtual void NetworkManager::DevicePrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "Real"
networkmanager-qt: virtual void NetworkManager::DevicePrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "LldpNeighbors"
networkmanager-qt: virtual void NetworkManager::DevicePrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "Real"
networkmanager-qt: virtual void NetworkManager::DevicePrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "LldpNeighbors"
networkmanager-qt: virtual void NetworkManager::DevicePrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "Real"
networkmanager-qt: virtual void NetworkManager::DevicePrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "LldpNeighbors"
networkmanager-qt: virtual void NetworkManager::DevicePrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "Real"
networkmanager-qt: virtual void NetworkManager::DevicePrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "LldpNeighbors"
networkmanager-qt: virtual void NetworkManager::DevicePrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "Real"
networkmanager-qt: virtual void NetworkManager::DevicePrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "LldpNeighbors"
networkmanager-qt: virtual void NetworkManager::DevicePrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "Real"
networkmanager-qt: virtual void NetworkManager::DevicePrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "LldpNeighbors"
networkmanager-qt: virtual void NetworkManager::DevicePrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "Real"
networkmanager-qt: virtual void NetworkManager::DevicePrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "LldpNeighbors"
networkmanager-qt: virtual void NetworkManager::DevicePrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "Real"
networkmanager-qt: virtual void NetworkManager::DevicePrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "LldpNeighbors"
networkmanager-qt: virtual void NetworkManager::DevicePrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "Real"
networkmanager-qt: virtual void NetworkManager::DevicePrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "LldpNeighbors"
networkmanager-qt: virtual void NetworkManager::DevicePrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "Real"
org.kde.plasmaquick: New Applet  "Networks" with a weight of 42
Warning: all files used by qml by the plasmoid should be in ui/. The file in the path "file:///usr/share/plasma/plasmoids/org.kde.plasma.bluetooth/contents/code/logic.js" was expected at QUrl("file:///usr/share/plasma/plasmoids/org.kde.plasma.bluetooth/contents/ui/logic.js")
org.kde.plasmaquick: New Applet  "Bluetooth" with a weight of 42
trying to show an empty dialog
using... PackageKit::Transaction(0x5582a24c6000) "/3_ebddaacd"
Comment 13 Germano Massullo (Thetra) 2019-10-04 20:32:53 UTC
Is this bug still happening on newer Plasma versions?
Comment 14 GHPS 2019-10-10 15:55:50 UTC
> Is this bug still happening on newer Plasma versions?
All versions of Plasma I tested were affected by this bug.
Comment 15 Christoph Feck 2019-10-22 00:42:14 UTC
Thanks for the update; changing status. Please also state which version you were testing.
Comment 16 GHPS 2019-11-16 18:34:34 UTC
Created attachment 123955 [details]
Kubuntu 19.10 Screenshot after Boot into Live system
Comment 17 GHPS 2019-11-16 18:43:50 UTC
> Please also state which version you were testing.
The system that I use every day is Kubuntu 18.04 LTS.
Here the bug is present even with the latest patches
installed.

Booting into the fresh Kubuntu 19.10, however, was
a pleasant surprise - all aspects of the problem are
fixed: No artifacts on the login screen, no black
bar on the desktop background, no artifacts while
dropping widgets on the desktop.

Great - the bug is finally fixed!

I'm hoping that the version of Plasma used in Kubuntu
19.10 will be backported to Kubuntu 18.04.
Comment 18 postix 2020-07-01 09:35:08 UTC
(In reply to GHPS from comment #17)
> 
> Great - the bug is finally fixed!

:-)