Closed Bug 1649861 Opened 4 years ago Closed 4 years ago

WebRender uses GL_ALWAYS depth comparison function, but SWGL doesn't support that

Categories

(Core :: Graphics: WebRender, defect)

defect

Tracking

()

RESOLVED FIXED
mozilla80
Tracking Status
firefox80 --- fixed

People

(Reporter: jimb, Assigned: jimb)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

With bug 1638672, WebRender uses the GL_ALWAYS depth comparison function (for clearing picture caches with quads instead of clear operations), but SWGL doesn't support GL_ALWAYS.

Rather than adding GL_ALWAYS support to SWGL, it would probably be best to just not have RendererOptions::clear_caches_with_quads set to true when using SWGL, since SWGL handles scissored clears just fine cough cough.

The clear_caches_with_quads flags is meant to work around a bug in some
drivers' scissored clears, but its implementation uses the GL_ALWAYS depth
comparison function, which SWGL doesn't support.

SWGL does scissored clears very well, so simply turning this workaround off on
SWGL avoids the problem and gets good results.

Of course we could just make SWGL support GL_ALWAYS, but that would be kind of
annoying, since it basically disables depth checks altogether, and we want to
use entirely different paths when depth checks aren't needed.

Pushed by jblandy@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/6661db82a5db
Turn of RendererOptions::clear_caches_with_quads under SWGL. r=lsalzman
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla80
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: