Animated text remains blurry after animation is completed until being invalidated (transform transition)
Categories
(Core :: Graphics: WebRender, defect)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox-esr115 | --- | unaffected |
| firefox-esr140 | --- | unaffected |
| firefox-esr153 | --- | unaffected |
| firefox153 | --- | unaffected |
| firefox154 | --- | fixed |
| firefox155 | --- | fixed |
People
(Reporter: ke5trel, Assigned: gw)
References
(Regression)
Details
(Keywords: regression)
Attachments
(4 files)
STR:
- Launch latest Nightly 154.0a1 on Ubuntu 26.04 (100% display scaling).
- Open test case with animated text (transform transition).
- Hover mouse cursor over text so that it animates, then move cursor away.
- Repeat several times.
Expected:
Text is always crisp after being animated.
Actual:
Parts of text remain blurry after animation has completed until tile is invalidated.
Happens with both SW-WR and HW-WR.
Regression window:
https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=f1de2266f7beb35067a6341a3cda326dca9822b6&tochange=a41a5b4f1d2ceef77a40efd5ca1557c0d1271580
Regressed by Bug 2053638.
Comment 2•18 days ago
|
||
:gw, since you are the author of the regressor, bug 2053638, could you take a look? Also, could you set the severity field?
For more information, please visit BugBot documentation.
| Assignee | ||
Comment 3•18 days ago
|
||
Text under an animated transform is rasterized in local space (bug 2053638).
When the animation ends the raster space returns to the device path, but the
transform value, prim_uid and raster-space corners are unchanged from the last
animating frame, so nothing invalidated the tile and it kept the stale (blurry)
local-raster text. Add an AnimatedRasterSpace tile dependency for text runs,
emitted while the spatial node is animating, so the tile invalidates when the
animation ends.
Also extend the wrench yaml reader to emit a property-bound reference-frame
transform (transform-binding), and add an invalidation test.
Updated•18 days ago
|
| Assignee | ||
Updated•18 days ago
|
Updated•18 days ago
|
Comment 5•17 days ago
|
||
| bugherder | ||
Comment 6•16 days ago
|
||
The patch landed in nightly and beta is affected.
:gw, is this bug important enough to require an uplift?
- If yes, please nominate the patch for beta approval.
- See https://wiki.mozilla.org/Release_Management/Requesting_an_Uplift for documentation on how to request an uplift.
- If no, please set
status-firefox154towontfix.
For more information, please visit BugBot documentation.
Comment 7•16 days ago
|
||
Set release status flags based on info from the regressing bug 2053638
| Assignee | ||
Comment 9•16 days ago
|
||
Text under an animated transform is rasterized in local space (bug 2053638).
A reference frame was treated as animating whenever its transform was bound to
a property, even if the value never moved, so bound-but-static text (a held or
settled animation) was rasterized locally and looked blurry at a fractional
device offset (bug 2051166). And when the animation ended the raster space
returned to the device path, but nothing invalidated the tile, so it kept the
stale local-raster text.
Redefine "animating" as "the bound transform has been observed to move", using
a monotonic per-binding latch in SceneProperties: bound-but-static text stays on
the crisp device path, while a genuinely moving transform still rasterizes in
local space to avoid per-frame snap jitter.
Add an AnimatedRasterSpace picture-cache dependency for text runs, present only
while animating, so the tile invalidates when the animation ends (the binding is
removed) and the raster-space flip alone would otherwise change neither prim_uid
nor the vertex corners.
Also extend the wrench yaml reader with property-bound reference-frame
transforms (transform-binding) and dynamic transform-property values, and add an
invalidation test.
Original Revision: https://phabricator.services.mozilla.com/D313123
Updated•16 days ago
|
Comment 10•16 days ago
|
||
firefox-beta Uplift Approval Request
- User impact if declined/Reason for urgency: Possible blurry rendering on some pages.
- Code covered by automated testing?: yes
- Fix verified in Nightly?: yes
- Needs manual QE testing?: yes
- Steps to reproduce for manual QE testing: As per bug report.
- Risk associated with taking this patch: medium
- Explanation of risk level: There are a lot of recent changes around fractional scrolling and snapping - I think this should be safe to uplift by itself.
- String changes made/needed?: No
- Is Android affected?: yes
Updated•15 days ago
|
Comment 11•15 days ago
|
||
| uplift | ||
Updated•15 days ago
|
Updated•15 days ago
|
Comment 12•10 days ago
|
||
Hello! Is this issue only related to Ubuntu 26 or some specific hardware? I have tried to reproduce this on Ubuntu 24.04 with an Nvidia GPU but I have no blurry text animation with the html from comment 1.
| Reporter | ||
Comment 13•8 days ago
|
||
I can reproduce it on Ubuntu 24.04 with Nightly build 2026-07-20. It is fixed on latest Nightly 155.0a1 and Beta 154.0b4. Be sure to test with 100% display scaling.
Description
•