Closed Bug 1510493 Opened 6 years ago Closed 6 years ago

Rewrite brush_yuv_image to be a single unified shader

Categories

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

enhancement

Tracking

()

RESOLVED FIXED

People

(Reporter: bholley, Assigned: mattwoodrow)

References

Details

We end up compiling an enormous number of brush_yuv_image shaders. We have 4 image buffer kinds, 3 formats, and 2 color spaces, which makes 24. And then We compile each of those for opaque, alpha, and debug_overdraw, netting 72. The work in bug 1510491 and bug 1510490 should mitigate the impact of this somewhat, but it's still not great for memory or startup. > <gw> bholley: mattwoodrow: for instance, right now we compile a separate shader for each color conversion matrix, but there's no reason not to provide that as a uniform / generate it in the vertex shader > <gw> bholley: mattwoodrow: even just having a single uber shader for the yuv variations is probably fine - all the branching will be coherent > <gw> bholley: mattwoodrow: and then, we'd end up with a single YUV shader This is a pretty easy thing we could do to ~halve the total number of shaders.
Priority: -- → P3
Assignee: nobody → matt.woodrow
Bug 1514738 comment 5 shows this having a big impact on startup (ts_paint), bringing us to parity with non-WR. These shaders aren't used at startup, so this is presumably the result of not needing to walk each of those shaders to generate the hash. That suggests bug 1510491 may be worth doing, and since it's trivial I'll just do it now.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.