Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

anti-aliasing Xft.rgba set to "rgb" crashes on "big fonts" #55

Closed
sunweaver opened this Issue Jun 23, 2015 · 0 comments

Comments

Projects
None yet
1 participant
@sunweaver
Copy link
Member

sunweaver commented Jun 23, 2015

Story: a customer of mine presented me an email that crashes nxagent on his setup. On my setup the crash of the nxagent Xserver could not be reproduced, but instead the email client (icedove) crashes reproducibly.

Digging deeper:

  1. tests in a remote (NX) MATE session
    • icedove crashes when viewing the customers mail
  2. local tests
    • icedove can view that specific mail
    • the mail (html format) had some big big characters (font size 999.9)
  3. re-test in NX
    • icedove in MATE crashes
    • libreoffice -> create a character -> enlarge to font size 1000 -> crash
  4. re-test in NX without a desktop shell (no MATE)
    • icedove can view that mail with the big characters
  5. NX with mate-settings-daemon (not the full MATE desktop)
    • icedove crashes when opening the mail

So what does mate-settings-do... It sets various properties on the Xsession's root window.

Xft.antialias:  1
Xft.dpi:    75
Xft.hinting:    1
Xft.hintstyle:  hintmedium
Xft.rgba:   rgb

I then played with mate-control-center's appearance applet and disabled RGB subpixel anti-aliasing:

Xft.antialias:  1
Xft.dpi:    75
Xft.hinting:    1
Xft.hintstyle:  hintmedium
Xft.rgba:   none

And: icedove survives the big fonts.

Setting Xft.rgba to "rgb" again let's icedove crash.

Looking into this deeper...

sunweaver added a commit to sunweaver/nx-libs that referenced this issue Jun 23, 2015

Fix alpha premultiplication in XRenderParseColor.
 Due to C arithmetic conversion rules we must use an unsigned constant (or a
 cast) to perform the multiplication using unsigned arithmetic.

 Fixes ArcticaProject#55.

 Author: Emanuele Giaquinta <emanuele.giaquinta@gmail.com>
 Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
 Rebased against NX: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>

sunweaver added a commit to sunweaver/nx-libs that referenced this issue Jun 23, 2015

Fix alpha premultiplication in XRenderParseColor.
 Due to C arithmetic conversion rules we must use an unsigned constant (or a
 cast) to perform the multiplication using unsigned arithmetic.

 Fixes ArcticaProject#55.

 Author: Emanuele Giaquinta <emanuele.giaquinta@gmail.com>
 Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
 Rebased against NX: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>

Ionic added a commit that referenced this issue Jun 24, 2015

nx-X11: Fix alpha premultiplication in XRenderParseColor. Fixes: #893.
Due to C arithmetic conversion rules we must use an unsigned constant
(or a cast) to perform the multiplication using unsigned arithmetic.

Fixes #55.

Author: Emanuele Giaquinta <emanuele.giaquinta@gmail.com>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>

v2: backport to nx-libs 3.6.x (Mike Gabriel)
v3: backport to nx-libs 3.5.0.x (Mihai Moldovan)

Adds:
  - 0040_nx-X11_Fix-alpha-premultiplication-in-XRenderPa.full.patch

sunweaver added a commit that referenced this issue Sep 28, 2015

Fix alpha premultiplication in XRenderParseColor.
 Due to C arithmetic conversion rules we must use an unsigned constant (or a
 cast) to perform the multiplication using unsigned arithmetic.

 Fixes #55.

 Author: Emanuele Giaquinta <emanuele.giaquinta@gmail.com>
 Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
 Rebased against NX: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.