Closed Bug 1892398 Opened 1 year ago Closed 11 months ago

Quad shaders use a mix of device and layout coordinate spaces

Categories

(Core :: Graphics: WebRender, defect, P2)

defect

Tracking

()

RESOLVED FIXED
128 Branch
Tracking Status
firefox128 --- fixed

People

(Reporter: nical, Assigned: nical)

References

(Blocks 1 open bug)

Details

Attachments

(8 files, 1 obsolete file)

48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review

If a quad primitive uses the direct rendering strategy, the shader receives layout-space coordinates and a transform. If the primitive is segmented, however (via tiling or a nine-patch), then for pattern and composite segments the shader receives coordinates in device space and no transform. quad render tasks look like they work with layout space as well.

This causes issues because the pattern is built before the quad rendering strategy and always in layout space. We have to either consistently use layout space coordinates or make it possible to transform patterns and pass a mix of transformed and non-transformed patterns depending on the segment.

Blocks: 1891898
Blocks: 1889712

This patch mainly extracts the direct/indirect quad segment separation in the scratch buffers from D207657

Assignee: nobody → nical.bugzilla
Status: NEW → ASSIGNED
Keywords: leave-open
Pushed by nsilva@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/70246310c93b Handle quad nine-patches in a single loop. r=gw
Pushed by nsilva@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/5106d4f90040 Remove unused prim_spatial_node_index in PrimTask. r=gw

Not immediately necessary but when cached quads or patterns that read a texture are implemented, There will be opaque segments taking render tasks as input. Currently the code is a bit error prone because some parts of the code advertize a certain behavior that is later overruled. This patch makes things more explicit and flexible.

Pushed by nsilva@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/bedb22762bf0 Rename a couple of render task variables for clarity. r=gw https://hg.mozilla.org/integration/autoland/rev/986045c4cb94 Don't hard-code that quad segments with a source render task are alpha blended. r=gw
Pushed by nsilva@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/31d3644cddd1 Rename unclipped_surface_rect and add comments about incorrect/missing pieces. r=gw
Attachment #9400490 - Attachment description: WIP: Bug 1892398 - Supply local space coords to compositing quads when drawing patterns v2 → Bug 1892398 - Supply local space coords to compositing quads when drawing patterns. r=gw
Attachment #9400376 - Attachment is obsolete: true
Pushed by nsilva@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/4b3b1066a855 Supply local space coords to compositing quads when drawing patterns. r=gw
Regressions: 1896979
Status: ASSIGNED → RESOLVED
Closed: 11 months ago
Keywords: leave-open
Resolution: --- → FIXED
Target Milestone: --- → 128 Branch
Regressions: 1897584
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: