Closed Bug 1764495 Opened 3 years ago Closed 3 years ago

Perspective transformed HTML with preserve-3d has scaling/distortion

Categories

(Core :: Graphics: WebRender, defect)

Firefox 99
defect

Tracking

()

RESOLVED DUPLICATE of bug 1764875
Tracking Status
firefox-esr91 --- unaffected
firefox99 --- wontfix
firefox100 --- fixed
firefox101 --- fixed

People

(Reporter: tim, Assigned: gw)

References

(Regression)

Details

(Keywords: regression)

Attachments

(1 file)

Attached file ff-projection.html

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:99.0) Gecko/20100101 Firefox/99.0

Steps to reproduce:

Applied transformations to HTML via perspective/transform and transform style using preserve-3d.

Rendered output is heavily pixelated compared to Chrome v100, Edge v100, Safari 15.3 desktop, iOS 15.4.1. Safari.

Actual results:

Transformed div is unreadable/unusable.

Expected results:

Div should just appear in the specified location without any major visible distortion.

I've included a minimal test case which is 100% reproducible on v99, beta 100, as well as the nightly as of submission date.

Open the html file in FF, and any other browser to see the difference.

The Bugbug bot thinks this bug should belong to the 'Core::Web Painting' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.

Component: Untriaged → Web Painting
Product: Firefox → Core

2022-04-13T16:14:07.265000: DEBUG : Found commit message:
Bug 1749380 - Part 2 - Performance and quality fixes for part 1. r=gfx-reviewers,nical

  • Add support for local scale factors to a surface, allowing it to
    be rasterized in root coordinate space. This allows snapping to
    work across surfaces where the surface transform is a fractional
    offset.

  • Calculate scaling factors per rasterized surface and propagate
    them. Ensures correct scale factor calculations when dealing with
    nested preserve-3d contexts with 90-degree axis rotations.

  • Support determining exact surface device rect for 2d surfaces
    with fractional surface transforms.

  • Fix line decoration cache key size calculations based on world
    scaling factor.

  • Remove get_clipped_device_rect usage for calculating clip-mask
    surface allocations, use surface.get_surface_rect instead. The
    prior method doesn't correctly account for expanded local regions
    from the current dirty rect, resulting in invalidation issues in
    some animated edge cases. Also unifies the way clip-mask surface
    allocations work with the way general render target surface
    allocations work.

Differential Revision: https://phabricator.services.mozilla.com/D138982

2022-04-13T16:14:07.265000: DEBUG : Did not find a branch, checking all integration branches
2022-04-13T16:14:07.280000: INFO : The bisection is done.
2022-04-13T16:14:07.280000: INFO : Stopped

Has Regression Range: --- → yes
Has STR: --- → yes
Component: Web Painting → Graphics: WebRender
Regressed by: 1749380
Flags: needinfo?(gwatson)
Status: UNCONFIRMED → NEW
Ever confirmed: true

Set release status flags based on info from the regressing bug 1749380

Assignee: nobody → gwatson
Flags: needinfo?(gwatson)

I confirmed that this is fixed by the patch in bug 1764875.

Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: