[Development] QSGText: Why round glyph position like this?

Kai Uwe Broulik kde at privat.broulik.de
Tue Sep 5 08:51:45 CEST 2023


Hi,

thanks for your insights, Eskil!

I am running a self-compiled Qt dev, so it’s all up-to-date. I did some 
further investigation and found that the glyph cache is actually 
rendered alright, so nothing to do with FreeType etc.

It seems that the textmask.vert [1] shader is still not entirely 
perfect, even after the fixes you mentioned: If I remove the 
flooring/dpr stuff from it, text is rendered correctly here but could 
probably regress elsewhere?

For example, the word “Erscheinungsbild” has two “i”, both use the same
glyph in my case, but the second one is rendered incorrectly by the shader:

Glyph #7 (i):
In cache at 66,1 @ 5x17, gets rendered to 40.5714,4 @ 2.85714x9.71429
Scale the coordinate back up x1.75 gives us 70.99995,7 @ 4.999995x17.0000075

Glyph #14 (i):
In cache at 66,1 @ 5x17, gets rendered to 90.2857,4 @ 2.85714x9.71429
Scale the coordinate back up x1.75 gives us 157.999975,7 @ 
4.999995x17.0000075

I haven’t managed to get Renderdoc up and running, though, to see what 
values the shader actually processes and why one gets misplaced by it. 
Any idea?

The issue can be reproduced under Wayland *and X*, with NativeRendering.

Cheers
Kai Uwe

[1] 
https://code.qt.io/cgit/qt/qtdeclarative.git/tree/src/quick/scenegraph/shaders_ng/textmask.vert#n22

Am 29.08.23 um 13:07 schrieb Eskil Abrahamsen Blomfeldt:
> [...] I did fix some bugs related to this, 
> e.g. https://codereview.qt-project.org/c/qt/qtdeclarative/+/417675 
> <https://codereview.qt-project.org/c/qt/qtdeclarative/+/417675> and 
> https://codereview.qt-project.org/c/qt/qtdeclarative/+/376361 
> <https://codereview.qt-project.org/c/qt/qtdeclarative/+/376361>
> 
> Most of my testing was on Windows, though, so it sounds like there could 
> still be issues on Wayland
> [...]



More information about the Development mailing list