Closed Bug 1689245 Opened 5 years ago Closed 5 years ago

Clean up RenderCompositorSWGL transparent clearing

Categories

(Core :: Graphics: WebRender, enhancement)

enhancement

Tracking

()

RESOLVED FIXED
87 Branch
Tracking Status
firefox87 --- fixed

People

(Reporter: lsalzman, Assigned: lsalzman)

References

(Blocks 2 open bugs)

Details

Attachments

(2 files)

This bug encompasses some follow-up work necessary to combine bug 1687124 and bug 1679215.

GL_ARB_clear_texture implements some useful GL entry-points for clears
that can clear arbitrary sub-rects of the screen without having to latch
or disturb GL state. This refactors the glClear implementation to be in
terms of the provided glClearTexSubImage extension which is far more
flexible.

This further allows us to reuse clearing primitives in RenderCompositorSWGL
without having to use more expensive DrawTarget versions.

ClearBeforePaint put the responsibility of clearing the current frame's DrawTarget
onto the widget. This doesn't compose well with WR RenderCompositor that may do
their own internal clearing. Instead, replace this with a GetTransparentRegion API
that can be used by RenderCompositors to limit where they clear so that they are
now fully responsible for clearing.

Depends on D103252

Blocks: sw-wr-perf
Pushed by lsalzman@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/778ecad5812e implement GL_ARB_clear_texture extension for SWGL. r=mattwoodrow https://hg.mozilla.org/integration/autoland/rev/60ad4f4b141d replace CompositorWidget::ClearBeforePaint with GetTransparentRegion. r=mattwoodrow

Backed out for causing talos failures in CompositorWidget

Backout link: https://hg.mozilla.org/integration/autoland/rev/5f7c4ffdac29012b8d9787e129dfbce748418a01

Push with failures: https://treeherder.mozilla.org/jobs?repo=autoland&resultStatus=success%2Ctestfailed%2Cbusted%2Cexception%2Crunning%2Cpending%2Crunnable&searchStr=windows%2C10%2Cx64%2Cwebrender%2Copt%2Ctalos%2Cperformance%2Ctests%2Ctest-windows10-64-qr%2Fopt-talos-bcv-e10s%2Cbcv&revision=55969df553913ef4258c086a7196b4dfd013aff3&selectedTaskRun=HMne36eXSsGb3W9S59L3RQ.0

Failure log: https://treeherder.mozilla.org/logviewer?job_id=328059837&repo=autoland&lineNumber=1644

"TEST-INFO | 7816: exit 0
[task 2021-01-28T08:17:12.105Z] 08:17:12 INFO - mozcrash checking c:\users\task_1611812514\appdata\local\temp\tmpgvhda9\profile\minidumps for minidumps...
[task 2021-01-28T08:17:12.105Z] 08:17:12 INFO - mozcrash Downloading symbols from: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/IoHbIEEzRk-xin4yRbx2Uw/artifacts/public/build/target.crashreporter-symbols.zip
[task 2021-01-28T08:17:14.283Z] 08:17:14 INFO - mozcrash Copy/paste: C:/Users/task_1611812514/fetches\minidump_stackwalk\minidump_stackwalk.exe c:\users\task_1611812514\appdata\local\temp\tmpgvhda9\profile\minidumps\b518df5d-9f5e-4d61-97e2-734fa5405c5a.dmp c:\users\task_1611812514\appdata\local\temp\tmpdr6_tm
[task 2021-01-28T08:17:17.776Z] 08:17:17 INFO - mozcrash Saved minidump as C:\Users\task_1611812514\build\blobber_upload_dir\b518df5d-9f5e-4d61-97e2-734fa5405c5a.dmp
[task 2021-01-28T08:17:17.776Z] 08:17:17 INFO - mozcrash Saved app info as C:\Users\task_1611812514\build\blobber_upload_dir\b518df5d-9f5e-4d61-97e2-734fa5405c5a.extra
[task 2021-01-28T08:17:17.777Z] 08:17:17 INFO - PROCESS-CRASH | basic_compositor_video | application crashed [@ mozilla::widget::CompositorWidget::GetTransparentRegion()]
[task 2021-01-28T08:17:17.777Z] 08:17:17 INFO - Crash dump filename: c:\users\task_1611812514\appdata\local\temp\tmpgvhda9\profile\minidumps\b518df5d-9f5e-4d61-97e2-734fa5405c5a.dmp
[task 2021-01-28T08:17:17.777Z] 08:17:17 INFO - Operating system: Windows NT
[task 2021-01-28T08:17:17.777Z] 08:17:17 INFO - 10.0.17134"

Flags: needinfo?(lsalzman)
Flags: needinfo?(lsalzman)
Pushed by lsalzman@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/b1303a0086cd implement GL_ARB_clear_texture extension for SWGL. r=mattwoodrow https://hg.mozilla.org/integration/autoland/rev/56cb5f428fb5 replace CompositorWidget::ClearBeforePaint with GetTransparentRegion. r=mattwoodrow
Backout by smolnar@mozilla.com: https://hg.mozilla.org/mozilla-central/rev/37557864a684 Backed out 2 changesets for causing failures in CompositorWidget. CLOSED TREE
Pushed by smolnar@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/889e927ed134 implement GL_ARB_clear_texture extension for SWGL. r=mattwoodrow https://hg.mozilla.org/integration/autoland/rev/deacc02df569 replace CompositorWidget::ClearBeforePaint with GetTransparentRegion. r=mattwoodrow CLOSED TREE
Backout by smolnar@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/d1a20c4e6b8c Backed out 2 changesets for causing merge conflicts.
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → 87 Branch
Regressions: 1737184
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: