Closed Bug 1883336 Opened 9 months ago Closed 8 months ago

Extend the quad shader infrastructure to support more patterns

Categories

(Core :: Graphics: WebRender, task, P3)

task

Tracking

()

RESOLVED FIXED
126 Branch
Tracking Status
firefox126 --- fixed

People

(Reporter: nical, Assigned: nical)

References

Details

Attachments

(11 files)

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
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
No description provided.
Pushed by nsilva@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/f61047c33e3e Extract the quad pattern logic into specific entry points. r=gw

Backed out for causing webrender bustages

Flags: needinfo?(nical.bugzilla)
Attachment #9389986 - Attachment description: WIP: Bug 1883336 - (WIP) Move the quad segmentation code into its own function → Bug 1883336 - Move the quad segmentation code into its own function. r=gw

A minor cosmetic thing. It does not do much so that's one less indrection when following the code.

This way rust-analyzer stops constantly trying to put it all in a single line.

Moving vLocalPos from ps_quad_textured to ps_quad pushed the number of varying slots in ps_quad_mask over the limit (16). vLocalPos is going to be used by some patterns in addition to the texture code so ifdef'ing it out is inconvenient. It is simpler to win back a varying slot by packing the clip planes.

Flags: needinfo?(nical.bugzilla)

It's convenient for shaders that need to fetch data from two different places and we have a spare slot in the quad header. It's not strictly necessary if we want the spare slot for something else, since we could use the integer gpu buffer as an indirection for when we need more than one address (although that's a tad convoluted and inefficient).

Blocks: 1885571
Pushed by nsilva@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/c3d3d9ee4329 Extract the quad pattern logic into specific entry points. r=gw https://hg.mozilla.org/integration/autoland/rev/702ac9db5591 Pack the clip planes into 3 varying slots. r=gw https://hg.mozilla.org/integration/autoland/rev/364452a457a8 Move the quad segmentation code into its own function. r=gw https://hg.mozilla.org/integration/autoland/rev/4a2e9567e4ad Pass pattern intputs as a 32 bits payload to the quad shaders. r=gw https://hg.mozilla.org/integration/autoland/rev/79e625ff25cf Some cleanup in quad.rs. r=gw" https://hg.mozilla.org/integration/autoland/rev/0e99a257162d Move add_quad_to_batch to quad.rs. r=gw https://hg.mozilla.org/integration/autoland/rev/909b283eb553 Simplify quad::add_to_batch. r=gw https://hg.mozilla.org/integration/autoland/rev/2144dd0e8da3 Inline BatchBuilder::add_quad_to_batch. r=gw https://hg.mozilla.org/integration/autoland/rev/20f68c1570eb Reformat the imports in quad.rs. r=gfx-reviewers,jrmuizel https://hg.mozilla.org/integration/autoland/rev/43d89580ba9c Pass two ints instead of one as shader input. r=gw
Pushed by nsilva@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/1c66fd43449d Make patterns work for composited quads. r=gw
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: