Allow usage of KHR_blend_equation_advanced on hardware WR
Categories
(Core :: Graphics: WebRender, task, P3)
Tracking
()
People
(Reporter: lsalzman, Unassigned)
References
(Blocks 1 open bug)
Details
In the process of developing KHR_blend_equation_advanced support for SWGL, I noticed the allow_advanced_blend_equation renderer option always defaulted to false. We should investigate whether it is safe to turn this on for hardware, and which if any hardware would need to be blocklisted to deal with bugs.
It is worth noting that ANGLE doesn't provide this extension at all anyway, so the main considerations are Android, macOS, and Linux in terms of who can support this and how well.
Reporter | ||
Updated•3 years ago
|
Reporter | ||
Comment 1•3 years ago
•
|
||
Bug 1691859 allows us to use dual-source blending to implement the multiply mix-blend-mode which should take care of the ANGLE case for us. It might potentially impact how we badly need advanced blend equation and also insulate us from some amount of driver bugs if it happens that multiply is the most commonly used mix-blend-mode. It would be worth knowing what are the most used mix-blend-modes to see if we ever fall off that fast path.
Reporter | ||
Comment 2•3 years ago
•
|
||
It is further worth noting that there is a separate related extension named (similarly) KHR_blend_equation_advanced_coherent. Not all implementations of KHR_blend_equation_advanced support the coherent version of this extension. The function of the coherent version is to guarantee that if you render two overlapping primitives without an intervening call to glBlendBarrierKHR(), the result will be sane and that they will compose properly.
Currently we work around the potential lack of this extension in WR by putting every usage of the advanced blend equation without coherent support in its own batch, so that this may have potentially bad implications for batching performance when enabled. However, if this is still better than falling back to brush_mix_blend, then it should be okay.
Description
•