Font corruption with hardware acceleration enabled

UNCONFIRMED
Unassigned

Status

()

Core
Graphics
UNCONFIRMED
6 years ago
6 years ago

People

(Reporter: ebirnie, Unassigned)

Tracking

13 Branch
x86_64
Windows 7
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Reporter)

Description

6 years ago
Created attachment 633142 [details]
compare.png chrome vs firefox on the same page.

User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0
Build ID: 20120601045813

Steps to reproduce:

fresh install and config of firefox 13. 

i have an ivy bridge cpu which has a gpu as well. it is not used as a display, but is enabled so i can use quick sync.

Adapter Description AMD Radeon HD 6900 Series
Driver Version 8.961.0.0
Adapter Description (GPU #2) Intel(R) HD Graphics 4000
Driver Version (GPU #2) 8.15.10.2696


Actual results:

certain font and size of font is corrupted when hardware acceleration is enabled.


Expected results:

displayed correctly.
(Reporter)

Comment 1

6 years ago
the page in the screenshot is http://www.android.gs/samsung-reportedly-working-on-a-next-gen-s-pen/

it also shows up in places like in gmail. when you open a mail, its the font in the subject title.

setting gfx.direct2d.disabled to true in the config is all that is required to fix the problem for me.
Component: Untriaged → Graphics
Product: Firefox → Core
QA Contact: untriaged → thebes
This looks to me more like an issue at the level of blitting glyphs to a destination surface, rather than a problem of text shaping (wrong glyphs/positions) or a corrupted font. Note that the glyphs that are shown are all the correct glyphs in the correct places, and that any given glyph is consistent in its behavior - either it's always present, or always missing.

Most interesting is the lowercase "e", which at first glance looks like it's rendering as a "^", but in fact I think is rendering the correct "e" glyph, but clipped so that only the top of the curve shows. It's as though the glyph bitmaps are not always being painted with the correct bounding box; many of them are clipped to invisibility, but the "e" happens to be partially clipped so that we can just see it's still there.

So possibly a bounds error of some kind, either when generating or caching the glyph bitmaps, or when compositing them to their destination? Bas, any ideas?
You need to log in before you can comment on or make changes to this bug.