Bug 336615 - Characters drawing become white rectangles for some font characters
Summary: Characters drawing become white rectangles for some font characters
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: aurorae (show other bugs)
Version: git master
Platform: unspecified Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-06-23 13:45 UTC by Luiz Angelo De Luca
Modified: 2014-10-15 11:25 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
window decoration (gtk app) (9.79 KB, image/png)
2014-06-23 13:47 UTC, Luiz Angelo De Luca
Details
window decoration (kf5 app) (6.36 KB, image/png)
2014-06-23 13:47 UTC, Luiz Angelo De Luca
Details
Same white rectangles, but now on plasma nm (94.80 KB, image/png)
2014-06-27 17:29 UTC, Luiz Angelo De Luca
Details
icon swapped by konsole thumbnail (33.99 KB, image/png)
2014-06-27 17:46 UTC, Luiz Angelo De Luca
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Luiz Angelo De Luca 2014-06-23 13:45:58 UTC
Hello,

I don't know which module is this bug related. My guess is kwin. Maybe it is qt5 bug.

Sometimes, fonts drawing gets lost and draws, instead of the character itself, white rectangles.
This happens for some characters but not for everyone. It looks like some app destroyed some characters memory representation.

I'll attach screenshots from window decoration. However, I saw the same problem with plasma texts (panels, launcher).

Reproducible: Sometimes
Comment 1 Luiz Angelo De Luca 2014-06-23 13:47:24 UTC
Created attachment 87337 [details]
window decoration (gtk app)
Comment 2 Luiz Angelo De Luca 2014-06-23 13:47:50 UTC
Created attachment 87338 [details]
window decoration (kf5 app)
Comment 3 Luiz Angelo De Luca 2014-06-23 13:49:37 UTC
I'm using Nvidia prop driver, v 331.79 on OpenSuSE 13.1 with OBS kf5/qt53 packages
Comment 4 Martin Flöser 2014-06-23 13:51:54 UTC
@MartinK: how did your testing with running threaded renderer + the patch to breeze I gave you on Friday work out?
Comment 5 Martin Klapetek 2014-06-24 18:09:35 UTC
I didn't see the artifacts at all anymore on Friday (and I've been off since then).

Note that I was running nvidia 337.25.
Comment 6 Luiz Angelo De Luca 2014-06-27 17:29:16 UTC
Created attachment 87432 [details]
Same white rectangles, but now on plasma nm
Comment 7 Luiz Angelo De Luca 2014-06-27 17:45:35 UTC
I got some more unstable results:

Konsole thumbnail (as it appears in plasma task manager) was shown as plasma notification background image (same dialog of Attachment 87432 [details]). It occurred rarely and, sometimes, it used a black background. As konsole was running a process that generates output, this background even updated itself (as it will do in a taskmanager thumbnail).

In my kf5, sometimes icons also gets swapped for a short period of time. I'll attach a screenshot showing taskmanager using konsole thumbnail as chrome icon (I tested with different konsole contents to make sure that it was a konsole thumbnail resized to a icon size).

Icons swaps back to the correct one with little interaction as moving cursor over it.
Comment 8 Luiz Angelo De Luca 2014-06-27 17:46:31 UTC
Created attachment 87433 [details]
icon swapped by konsole thumbnail
Comment 9 Martin Flöser 2014-06-30 12:33:11 UTC
as of 6e195331f678778cd23a084484580108adabbe78 threaded renderer is no longer disabled
Comment 10 Martin Flöser 2014-07-10 13:21:29 UTC
assuming fixed.
Comment 11 Martin Klapetek 2014-10-07 17:50:24 UTC
Since yesterday I see this again unfortunately, no update to Qt (5.3.1 here); Marco also confirmed.
Comment 12 Martin Flöser 2014-10-08 08:00:18 UTC
(In reply to Martin Klapetek from comment #11)
> Since yesterday I see this again unfortunately, no update to Qt (5.3.1
> here); Marco also confirmed.

so what changed? There are no commits in kwin or kwindowsystem. That would point to plasma-framework. Would it be possible to bisect which commit introduced it?
Comment 13 Thomas Lübking 2014-10-08 09:10:53 UTC
I assume MESA resp. nvidia.

I've seen such "glyphs" in GL clients (XBMC) on insufficient graphics memory.
Only/all QML seems affected, btw.?

We somehow lack system information here ;-)
-> everyone affected, please attach the output of

   qdbus org.kde.KWin /KWin supportInformation

or

   glxinfo
Comment 14 Martin Klapetek 2014-10-08 09:59:34 UTC
Only QML text seems affected *and* only some, definitely not all.

---

$ qdbus org.kde.KWin /KWin supportInformation
KWin Support Information:
The following information should be used when requesting support on e.g. http://forum.kde.org.
It provides information about the currently running instance, which options are used,
what OpenGL driver and which effects are running.
Please post the information provided underneath this introductory text to a paste bin service
like http://paste.kde.org instead of pasting into support threads.

==========================

Version
=======
KWin version: 5.0.95
Qt Version: 5.3.1

Operation Mode: X11 only

Options
=======
focusPolicy: 0
nextFocusPrefersMouse: false
clickRaise: true
autoRaise: false
autoRaiseInterval: 0
delayFocusInterval: 0
shadeHover: false
shadeHoverInterval: 250
separateScreenFocus: false
placement: 4
focusPolicyIsReasonable: true
borderSnapZone: 10
windowSnapZone: 10
centerSnapZone: 0
snapOnlyWhenOverlapping: false
showDesktopIsMinimizeAll: false                                                                                                                                                                                                                                                
rollOverDesktops: true                                                                                                                                                                                                                                                         
focusStealingPreventionLevel: 1                                                                                                                                                                                                                                                
legacyFullscreenSupport: false                                                                                                                                                                                                                                                 
operationTitlebarDblClick:                                                                                                                                                                                                                                                     
commandActiveTitlebar1: 0
commandActiveTitlebar2: 30
commandActiveTitlebar3: 2
commandInactiveTitlebar1: 4
commandInactiveTitlebar2: 30
commandInactiveTitlebar3: 2
commandWindow1: 7
commandWindow2: 8
commandWindow3: 8
commandWindowWheel: 31
commandAll1: 10
commandAll2: 3
commandAll3: 14
keyCmdAllModKey: 16777251
showGeometryTip: false
condensedTitle: false
electricBorderMaximize: true
electricBorderTiling: true
electricBorderCornerRatio: 0.25
borderlessMaximizedWindows: false
killPingTimeout: 5000
hideUtilityWindowsForInactive: true
inactiveTabsSkipTaskbar: false
autogroupSimilarWindows: false
autogroupInForeground: true
compositingMode: 1
useCompositing: true
compositingInitialized: true
hiddenPreviews: 1
unredirectFullscreen: false
glSmoothScale: 2
colorCorrected: false
xrenderSmoothScale: false
maxFpsInterval: 16666666
refreshRate: 0
vBlankTime: 6000000
glStrictBinding: false
glStrictBindingFollowsDriver: true
glCoreProfile: false
glPreferBufferSwap: 99
glPlatformInterface: 

Screen Edges
============
desktopSwitching: false
desktopSwitchingMovingClients: false
cursorPushBackDistance: 
timeThreshold: 150
reActivateThreshold: 350
actionTopLeft: 0
actionTop: 0
actionTopRight: 0
actionRight: 0
actionBottomRight: 0
actionBottom: 0
actionBottomLeft: 0
actionLeft: 0

Screens
=======
Multi-Head: no
Active screen follows mouse:  no
Number of Screens: 2
Screen 0 Geometry: 1440,0,1920x1200
Screen 1 Geometry: 0,300,1440x900

Decoration
==========
Current Plugin: Oxygen
Shadows: yes
Alpha: yes
Announces Alpha: yes
Tabbing: yes
Frame Overlap: no
Blur Behind: no

Compositing
===========
Compositing is active
Compositing Type: OpenGL
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 660 Ti/PCIe/SSE2
OpenGL version string: 4.4.0 NVIDIA 340.17
OpenGL platform interface: GLX
OpenGL shading language version string: 4.40 NVIDIA via Cg compiler
Driver: NVIDIA
Driver version: 340.17
GPU class: Unknown
OpenGL version: 4.4
GLSL version: 4.40
X server version: 1.15.1
Linux kernel version: 3.13
Direct rendering: Requires strict binding: no
GLSL shaders:  yes
Texture NPOT support:  yes
Virtual Machine:  no
OpenGL 2 Shaders are used
Painting blocks for vertical retrace:  no

Loaded Effects:
---------------
zoom
slidingpopups
kwin4_effect_login
slide
screenshot
minimizeanimation
kwin4_effect_translucency
desktopgrid
kwin4_effect_fade
kwin4_effect_maximize
presentwindows
kwin4_effect_dialogparent
highlightwindow
blur
contrast
logout
dashboard
startupfeedback
screenedge
kscreen

Currently Active Effects:
-------------------------
blur
contrast

Effect Settings:
----------------
zoom:
zoomFactor: 1.2
mousePointer: 0
mouseTracking: 0
enableFocusTracking: false
followFocus: true
focusDelay: 350
moveFactor: 20
targetZoom: 1

slidingpopups:
fadeInTime: 150
fadeOutTime: 250

kwin4_effect_login:

slide:

screenshot:

minimizeanimation:

kwin4_effect_translucency:

desktopgrid:
zoomDuration: 300
border: 10
desktopNameAlignment: 0
layoutMode: 0
customLayoutRows: 2
usePresentWindows: true

kwin4_effect_fade:

kwin4_effect_maximize:

presentwindows:
layoutMode: 0
showCaptions: true
showIcons: true
doNotCloseWindows: false
ignoreMinimized: false
accuracy: 20
fillGaps: true
fadeDuration: 150
showPanel: false
leftButtonWindow: 1
rightButtonWindow: 2
middleButtonWindow: 0
leftButtonDesktop: 2
middleButtonDesktop: 0
rightButtonDesktop: 0

kwin4_effect_dialogparent:

highlightwindow:

blur:
blurRadius: 12
cacheTexture: true

contrast:

logout:
useBlur: true

dashboard:
brightness: 0.5
saturation: 0.5
blur: false

startupfeedback:

screenedge:

kscreen:
Comment 15 Martin Klapetek 2014-10-08 13:49:22 UTC
<pursuivant> http://commits.kde.org/plasma-framework/68eadae6c81aba72ad03681396354decd9669549
<notmart> mck182: ^^ this should solve the broken fonts on nvidia
<notmart> at least does for me
<notmart> don't like it, but oh, well

And indeed it seems to. So I'll close this again for now.
Comment 16 Martin Flöser 2014-10-08 13:52:14 UTC
> And indeed it seems to. So I'll close this again for now.

splendid, I knew it was in plasma-framework ;-)
Comment 17 Martin Klapetek 2014-10-15 10:59:03 UTC
I was just pointed out that "QML_USE_GLYPHCACHE_WORKAROUND=1" should fix all these issues; I was also pointed out that this is enabled by default in Qt 5.3.2 (while I have 5.3.1).

So putting it here for record purposes.
Comment 18 Martin Flöser 2014-10-15 11:13:06 UTC
interesting, do you know what it is doing?
Comment 19 Kai Uwe Broulik 2014-10-15 11:24:01 UTC
QML_USE_GLYPHCACHE_WORKAROUND is used in QSGDefaultDistanceFieldGlyphCache and makes it not resize the glyph cache (but create a new one and copy, *I think*) because resizing it causes corruption on some drivers. On Android this is a major PITA which made them enable this for all devices starting in 5.3.2 but apparently Desktop platforms suffer from that too.

Please do see that source code of that class for reference or search Qt Jira vor glyphcache to find more reference and discussion about that.
Comment 20 Kai Uwe Broulik 2014-10-15 11:25:40 UTC
s/all devices/all Android devices/

It is not enabled by default on other platforms because that is probably not the most elegant or future-proof way to deal with this issue.