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)
Core
Graphics: WebRender
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.
Updated•6 years ago
|
Priority: -- → P3
Assignee | ||
Updated•6 years ago
|
Assignee: nobody → matt.woodrow
Assignee | ||
Updated•6 years ago
|
See Also: → https://github.com/servo/webrender/pull/3414
Reporter | ||
Comment 1•6 years ago
|
||
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.
Assignee | ||
Updated•6 years ago
|
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.
Description
•