Bug 397645

Summary: No subpixel rendering when background is transparent
Product: [Applications] konsole Reporter: Lucas <luwx>
Component: generalAssignee: Konsole Developer <konsole-devel>
Status: REOPENED ---    
Severity: normal CC: alex19930329, mglb, nate, ryanrms
Priority: NOR    
Version: 18.04.3   
Target Milestone: ---   
Platform: Manjaro   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: 1% transparency
0% transparency
tilix
tilix: 50% black on white behind window

Description Lucas 2018-08-20 01:43:28 UTC
Created attachment 114509 [details]
1% transparency

Subpixel font rendering is not present when the background has even 1% transparency and the background color is the same as 0%, resulting in a blurrier font.
Comment 1 Lucas 2018-08-20 01:44:47 UTC
Created attachment 114510 [details]
0% transparency
Comment 2 Nate Graham 2018-08-21 21:23:28 UTC
Alex, any ideas?
Comment 3 Christoph Feck 2018-08-22 00:53:08 UTC
If Konsole renders to a separate QPixmap in the transparent case, then this is https://bugreports.qt.io/browse/QTBUG-22334.
Comment 4 Alex Nemeth 2018-08-22 18:35:20 UTC
(In reply to Nate Graham from comment #2)
> Alex, any ideas?

sorry, I don't know why this could be happening
but I bet it's a Qt bug like Christoph said
Comment 5 Christoph Feck 2019-08-20 19:27:30 UTC
*** Bug 410748 has been marked as a duplicate of this bug. ***
Comment 6 Mariusz Glebocki 2019-08-26 01:26:00 UTC
This is not a bug. Subpixel rendering relies on information about background pixels and consequently does not support transparency. Konsole (and freetype, Qt text renderer on Linux/BSD) does not have access to pixels under window.

More info: https://devblogs.microsoft.com/oldnewthing/20150129-00/?p=44803
Comment 7 Lucas 2019-08-26 02:35:24 UTC
Created attachment 122359 [details]
tilix

Other terminals don't have this problem.
Comment 8 Mariusz Glebocki 2019-09-11 12:49:02 UTC
Created attachment 122597 [details]
tilix: 50% black on white behind window

Thanks for the example! It is still not perfect, but better than I thought/already saw before. Some kind of hybrid solution (using smooth transition from subpixel to normal when making background more transparent) might work.
With Qt it is not possible AFAIK, but rendering engine might change.