Closed Bug 1594950 Opened 3 months ago Closed 3 months ago

Preparations for partial update support

Categories

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

All
macOS
task

Tracking

()

RESOLVED FIXED
mozilla72
Tracking Status
firefox72 --- fixed

People

(Reporter: mstange, Assigned: mstange)

References

Details

Attachments

(4 files)

I'll use this bug to land patches from bug 1592150 that are ready.

These settings are now supplied during layer creation and never change.
Consumers must now create new NativeLayer objects if they want to change size or toggle opaqueness.
This aligns the NativeLayer API with DirectComposition's capabilities. It also simplifies swap chain
management.

This allows us to move the call to InvalidateRegionThroughoutSwapchain to just before the call to
NextSurface, which makes it easier to merge the two calls.

Pushed by mstange@themasta.com:
https://hg.mozilla.org/integration/autoland/rev/15baea8520de
Bake the layer size and its opaqueness into the layer, don't allow mutating it. r=jrmuizel
https://hg.mozilla.org/integration/autoland/rev/aea7108204e9
Track the nsChildView invalid region inside nsChildView, rather than on the layer. r=jrmuizel
https://hg.mozilla.org/integration/autoland/rev/adea6912c3a3
Change NextSurface APIs to accept a dirty region, and remove the public method InvalidateRegionThroughoutSwapchain. r=jrmuizel
https://hg.mozilla.org/integration/autoland/rev/684a87e91d94
Remove unused SurfaceRegistry API. r=jrmuizel

Backed out for turning Bug 1405083 into permafail.

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&group_state=expanded&searchStr=os%2Cx%2C10.14%2Cshippable%2Copt%2Cmochitests%2Ctest-macosx1014-64-shippable%2Fopt-mochitest-media-e10s-1%2Cm%28mda1%29&tochange=59dcb38e46932d516d5a704795900e13d0a9b41d&fromchange=b03fcaeaca87d42ba3373b2a6fe4bc5aa10ec7b7&selectedJob=275945904

Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=275945904&repo=autoland

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

[task 2019-11-13T04:37:06.808Z] 04:37:06 INFO - TEST-UNEXPECTED-FAIL | dom/media/tests/mochitest/test_getUserMedia_basicScreenshare.html | Test timed out.
[task 2019-11-13T04:37:06.808Z] 04:37:06 INFO - SimpleTest.ok@https://example.com/tests/SimpleTest/SimpleTest.js:277:18
[task 2019-11-13T04:37:06.808Z] 04:37:06 INFO - reportError@https://example.com/tests/SimpleTest/TestRunner.js:121:22
[task 2019-11-13T04:37:06.808Z] 04:37:06 INFO - TestRunner._checkForHangs@https://example.com/tests/SimpleTest/TestRunner.js:142:18
[task 2019-11-13T04:37:06.808Z] 04:37:06 INFO - setTimeout handlerTestRunner._checkForHangs@https://example.com/tests/SimpleTest/TestRunner.js:170:15
[task 2019-11-13T04:37:06.808Z] 04:37:06 INFO - setTimeout handler
TestRunner._checkForHangs@https://example.com/tests/SimpleTest/TestRunner.js:170:15
[task 2019-11-13T04:37:06.808Z] 04:37:06 INFO - setTimeout handlerTestRunner._checkForHangs@https://example.com/tests/SimpleTest/TestRunner.js:170:15
[task 2019-11-13T04:37:06.808Z] 04:37:06 INFO - setTimeout handler
TestRunner._checkForHangs@https://example.com/tests/SimpleTest/TestRunner.js:170:15
[task 2019-11-13T04:37:06.808Z] 04:37:06 INFO - setTimeout handlerTestRunner._checkForHangs@https://example.com/tests/SimpleTest/TestRunner.js:170:15
[task 2019-11-13T04:37:06.808Z] 04:37:06 INFO - setTimeout handler
TestRunner._checkForHangs@https://example.com/tests/SimpleTest/TestRunner.js:170:15
[task 2019-11-13T04:37:06.808Z] 04:37:06 INFO - setTimeout handlerTestRunner._checkForHangs@https://example.com/tests/SimpleTest/TestRunner.js:170:15
[task 2019-11-13T04:37:06.808Z] 04:37:06 INFO - setTimeout handler
TestRunner._checkForHangs@https://example.com/tests/SimpleTest/TestRunner.js:170:15
[task 2019-11-13T04:37:06.808Z] 04:37:06 INFO - setTimeout handlerTestRunner._checkForHangs@https://example.com/tests/SimpleTest/TestRunner.js:170:15
[task 2019-11-13T04:37:06.808Z] 04:37:06 INFO - setTimeout handler
TestRunner._checkForHangs@https://example.com/tests/SimpleTest/TestRunner.js:170:15
[task 2019-11-13T04:37:06.808Z] 04:37:06 INFO - setTimeout handlerTestRunner._checkForHangs@https://example.com/tests/SimpleTest/TestRunner.js:170:15
[task 2019-11-13T04:37:06.808Z] 04:37:06 INFO - TestRunner.runTests/<@https://example.com/tests/SimpleTest/TestRunner.js:388:20
[task 2019-11-13T04:37:06.808Z] 04:37:06 INFO - promise callback
TestRunner.runTests@https://example.com/tests/SimpleTest/TestRunner.js:375:50
[task 2019-11-13T04:37:06.808Z] 04:37:06 INFO - RunSet.runtests@https://example.com/tests/SimpleTest/setup.js:201:14
[task 2019-11-13T04:37:06.809Z] 04:37:06 INFO - RunSet.runall@https://example.com/tests/SimpleTest/setup.js:180:12
[task 2019-11-13T04:37:06.809Z] 04:37:06 INFO - hookupTests@https://example.com/tests/SimpleTest/setup.js:273:12
[task 2019-11-13T04:37:06.809Z] 04:37:06 INFO - parseTestManifest@https://example.com/manifestLibrary.js:48:13
[task 2019-11-13T04:37:06.809Z] 04:37:06 INFO - getTestManifest/req.onload@https://example.com/manifestLibrary.js:61:28
[task 2019-11-13T04:37:06.809Z] 04:37:06 INFO - EventHandlerNonNullgetTestManifest@https://example.com/manifestLibrary.js:57:3
[task 2019-11-13T04:37:06.809Z] 04:37:06 INFO - hookup@https://example.com/tests/SimpleTest/setup.js:253:20
[task 2019-11-13T04:37:06.809Z] 04:37:06 INFO - EventHandlerNonNull
@https://example.com/tests?autorun=1&closeWhenDone=1&consoleLevel=INFO&hideResultsTable=1&manifestFile=tests.json&dumpOutputDirectory=%2Fvar%2Ffolders%2F1j%2Fln6_t31932b1b_36f87kcp_c000017%2FT&cleanupCrashes=true:11:1
[task 2019-11-13T04:37:06.809Z] 04:37:06 INFO - Checking pixel against red. Got [237,237,237,255] (NO)
[task 2019-11-13T04:37:07.115Z] 04:37:07 INFO - Checking pixel against red. Got [237,237,237,255] (NO)
[task 2019-11-13T04:37:07.379Z] 04:37:07 INFO - Checking pixel against red. Got [237,237,237,255] (NO)
[task 2019-11-13T04:37:07.652Z] 04:37:07 INFO - Checking pixel against red. Got [237,237,237,255] (NO)
[task 2019-11-13T04:37:07.746Z] 04:37:07 INFO - GECKO(1775) | MEMORY STAT | vsize 7458MB | residentFast 195MB | heapAllocated 35MB
[task 2019-11-13T04:37:07.746Z] 04:37:07 INFO - TEST-OK | dom/media/tests/mochitest/test_getUserMedia_basicScreenshare.html | took 308671ms

Flags: needinfo?(mstange)

Huh!

Here's what the failure looks like: https://firefoxci.taskcluster-artifacts.net/W_BjTMGeQMORG1tLWENLuQ/0/public/test_info/mozilla-test-fail-screenshot_nFg0NO.png

It looks like the contents of the window are shifted downwards by 1024px, revealing the gray window background.

Flags: needinfo?(mstange)

I was missing the initialization for some CALayer properties in the first patch. I didn't see this when testing on HiDPI, because NativeLayerCA::SetBackingScale invalidates a bunch of state so that the fields get set.

Pushed by mstange@themasta.com:
https://hg.mozilla.org/integration/autoland/rev/aa9475c27a6d
Bake the layer size and its opaqueness into the layer, don't allow mutating it. r=jrmuizel
https://hg.mozilla.org/integration/autoland/rev/2a2c01a5ce9a
Track the nsChildView invalid region inside nsChildView, rather than on the layer. r=jrmuizel
https://hg.mozilla.org/integration/autoland/rev/4391cb16bb0b
Change NextSurface APIs to accept a dirty region, and remove the public method InvalidateRegionThroughoutSwapchain. r=jrmuizel
https://hg.mozilla.org/integration/autoland/rev/25c597f8703f
Remove unused SurfaceRegistry API. r=jrmuizel
You need to log in before you can comment on or make changes to this bug.