Open Bug 1771374 Opened 2 years ago Updated 5 months ago

webgl display-p3 display for windows+dcomp

Categories

(Core :: Graphics: CanvasWebGL, enhancement, P1)

enhancement

Tracking

()

REOPENED

People

(Reporter: jgilbert, Assigned: jgilbert)

References

(Blocks 1 open bug)

Details

Crash Data

Attachments

(11 files, 2 obsolete files)

48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
No description provided.
Pushed by jgilbert@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/be888d0fd0bf Support display-p3 output via DirectComposition on Windows. r=sotaro,lsalzman https://hg.mozilla.org/integration/autoland/rev/6a42df6834fe Disable color management based on pref in DCLayerTree. r=jrmuizel https://hg.mozilla.org/integration/autoland/rev/71d40a0a3c9c Fix lint warnings. r=gfx-reviewers,aosmond

Backed out for causing build bustages on GLBlitHelper.cpp

Backout link
Push with failureshttps://treeherder.mozilla.org/jobs?repo=autoland&resultStatus=usercancel%2Cretry%2Ctestfailed%2Cbusted%2Cexception%2Crunnable&revision=71d40a0a3c9cd9386ad322ff90c17157a89a344a&selectedTaskRun=Qc1EzKOFTMqhKx8BlU5Gag.0
Link to failure log
Failure line :
/builds/worker/checkouts/gecko/gfx/gl/GLBlitHelper.cpp:948:28: error: suggest braces around initialization of subobject [-Werror,-Wmissing-braces]

Flags: needinfo?(jgilbert)
Pushed by jgilbert@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/b4fdb70808b6 Support display-p3 output via DirectComposition on Windows. r=sotaro,lsalzman https://hg.mozilla.org/integration/autoland/rev/6f97bc39643f Disable color management based on pref in DCLayerTree. r=jrmuizel https://hg.mozilla.org/integration/autoland/rev/498c27656dc3 Fix lint warnings. r=gfx-reviewers,aosmond

Backed out for causing bustages on Colorspaces.h

Backout link
Push with failures
Link to failure log
Failure line :
builds/worker/checkouts/gecko/gfx/gl/Colorspaces.h:559:21: error: implicit instantiation of undefined template 'std::vector<mozilla::color::avec<float, 3>>

Pushed by jgilbert@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/f4f12470f8b7 Support display-p3 output via DirectComposition on Windows. r=sotaro,lsalzman https://hg.mozilla.org/integration/autoland/rev/fc62679f0a6c Disable color management based on pref in DCLayerTree. r=jrmuizel https://hg.mozilla.org/integration/autoland/rev/4d01f260c43a Fix lint warnings. r=gfx-reviewers,aosmond

Backed out 3 changesets (bug 1771374) for causing build bustage in gfx/gl/gtest/TestColorspaces.cpp

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

Push with failures

Failure log #1

Failure log #2

[drive-by comment after noticing Kelsey's mention the backout in #developers]

(In reply to Sandor Molnar from comment #9)

Failure log #2

Note that "Failure log #2" is a different error from "Failure log #1"; i.e. #2 is not about TestColorspaces.cpp. It's for OffscreenCanvasDisplayHelper.cpp failing a static assertion about "PlainOldDataSerializer can only be used with trivially copyable types!"

And there's also FailureLog #3 for another distinct issue in that push, on Linux "Bp-hybrid":

gfx/gl/GLBlitHelper.cpp:133:19: error: unused variable 'kFragSample_OnePlane_YUV_via_GBR' [-Werror,-Wunused-const-variable]

(It looks like that's only used in platform-specific ifdeff'ed code, so the declaration/definition probably needs an ifdef to match.)

Attachment #9283464 - Attachment description: Bug 1771374 - Fix lint warnings. → Bug 1771374 - Fix build and lint warnings.

Use IsTriviallyCopyable_IgnoreMoveable for deciding to auto-serialize-via-memcpy.

Maybe isn't is_trivially_copyable, and std::optional isn't either on
the old libstdc++ we use from gcc7 still.

I'm working on more robust approach to serialization but that's beyond
the scope of this bug.

Attachment #9284404 - Attachment is obsolete: true
Flags: needinfo?(jgilbert)
Pushed by jgilbert@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/ef52a6c462b6 Support display-p3 output via DirectComposition on Windows. r=sotaro,lsalzman https://hg.mozilla.org/integration/autoland/rev/8b39f60971e4 Disable color management based on pref in DCLayerTree. r=jrmuizel https://hg.mozilla.org/integration/autoland/rev/9f5cf953fcc8 Fix build and lint warnings. r=gfx-reviewers,aosmond https://hg.mozilla.org/integration/autoland/rev/9c65411d1843 Use {bool, T} instead of Maybe<T> for now. r=gfx-reviewers,lsalzman
Regressions: 1779344
Regressions: 1779437
Regressions: 1779464
Status: RESOLVED → REOPENED
Flags: needinfo?(jgilbert)
Resolution: FIXED → ---
Target Milestone: 104 Branch → ---

This also caused crashes with the signature [@ mozilla::wr::DCSurfaceSwapChain::CallVideoProcessorBlt], e.g. bp-4f8c1a28-04ec-4ae0-a317-db2340220714

Crash Signature: [@ mozilla::wr::DCSurfaceSwapChain::CallVideoProcessorBlt]
Crash Signature: [@ mozilla::wr::DCSurfaceSwapChain::CallVideoProcessorBlt] → [@ mozilla::wr::DCSurfaceSwapChain::CallVideoProcessorBlt] [@ mozilla::wr::DCSurfaceSwapChain::EnsurePresented]
See Also: → 1779866
Attachment #9285717 - Attachment is obsolete: true

This should reduce the fuzzy()ness we need to annotate.

We need to pad e.g. nv12 4:2:0 formats in order to have integer-sized
chroma planes.
But also to avoid needing laser-focused testing for this case, just
unconditionally pad odd-sizes to even numbers.

  • Test handling of odd-number-sized surfaces.
Pushed by jgilbert@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/ac3411d21928 Support display-p3 output via DirectComposition on Windows. r=sotaro,lsalzman https://hg.mozilla.org/integration/autoland/rev/615df05e016f Disable color management based on pref in DCLayerTree. r=jrmuizel https://hg.mozilla.org/integration/autoland/rev/7c7de0fb66e1 Fix build and lint warnings. r=gfx-reviewers,aosmond https://hg.mozilla.org/integration/autoland/rev/70035903ea37 Use {bool, T} instead of Maybe<T> for now. r=gfx-reviewers,lsalzman https://hg.mozilla.org/integration/autoland/rev/75db498cd0e7 Create swapchain with premult-alpha if hasAlpha. r=gfx-reviewers,lsalzman https://hg.mozilla.org/integration/autoland/rev/33282b4ffaae Snap color_quads.html to device pixels. r=gfx-reviewers,bradwerth https://hg.mozilla.org/integration/autoland/rev/7767340872c5 Pad odd-sized surface swapchains to even numbers. r=gfx-reviewers,nical https://hg.mozilla.org/integration/autoland/rev/adeb8b7d48f9 Respect wr::ImageRendering in DCSurfaceSwapChain. r=gfx-reviewers,nical https://hg.mozilla.org/integration/autoland/rev/ded977dd1896 Mark test expectations. r=gfx-reviewers,nical

Backed out for causing mochitest-webgl failures.

Push with failures

Failure log for gl1c jobs
Failure log for gl2c jobs

Backout link

[task 2022-08-02T00:33:55.059Z] 00:33:55     INFO - TEST-START | dom/canvas/test/webgl-conf/generated/test_conformance__textures__misc__copy-tex-image-2d-formats.html
[task 2022-08-02T00:33:55.140Z] 00:33:55     INFO - GECKO(1359) | [Parent 1359, Main Thread] WARNING: NS_ENSURE_TRUE(she && she->mInfo->mSharedState.Get()) failed: file /builds/worker/checkouts/gecko/docshell/shistory/SessionHistoryEntry.cpp:1127
[task 2022-08-02T00:33:55.211Z] 00:33:55     INFO - GECKO(1359) | JavaScript warning: http://mochi.test:8888/tests/dom/canvas/test/webgl-conf/checkout/conformance/textures/misc/copy-tex-image-2d-formats.html, line 140: WebGL warning: copyTexImage: Copying to a LUMINANCE, ALPHA, or LUMINANCE_ALPHA is deprecated, and has severely reduced performance on some platforms.
[task 2022-08-02T00:33:55.228Z] 00:33:55     INFO - TEST-INFO | started process screencapture
[task 2022-08-02T00:33:55.357Z] 00:33:55     INFO - TEST-INFO | screencapture: exit 0
[task 2022-08-02T00:33:55.357Z] 00:33:55     INFO - Buffered messages logged at 00:33:55
[task 2022-08-02T00:33:55.358Z] 00:33:55     INFO - TEST-PASS | dom/canvas/test/webgl-conf/generated/test_conformance__textures__misc__copy-tex-image-2d-formats.html | A valid string reason is expected 
[task 2022-08-02T00:33:55.358Z] 00:33:55     INFO - TEST-PASS | dom/canvas/test/webgl-conf/generated/test_conformance__textures__misc__copy-tex-image-2d-formats.html | Reason cannot be empty 
[task 2022-08-02T00:33:55.359Z] 00:33:55     INFO - TEST-PASS | dom/canvas/test/webgl-conf/generated/test_conformance__textures__misc__copy-tex-image-2d-formats.html | getError was expected value: NO_ERROR : During Initialization 
[task 2022-08-02T00:33:55.359Z] 00:33:55     INFO - TEST-PASS | dom/canvas/test/webgl-conf/generated/test_conformance__textures__misc__copy-tex-image-2d-formats.html | getError was expected value: NO_ERROR : should be able to copyTexImage2D ALPHA from RGBA 
[task 2022-08-02T00:33:55.359Z] 00:33:55     INFO - Buffered messages finished
[task 2022-08-02T00:33:55.361Z] 00:33:55     INFO - TEST-UNEXPECTED-FAIL | dom/canvas/test/webgl-conf/generated/test_conformance__textures__misc__copy-tex-image-2d-formats.html | should be 0,0,0,127
[task 2022-08-02T00:33:55.361Z] 00:33:55     INFO - at (0, 0) expected: 0,0,0,127 was 0,0,0,0 
[task 2022-08-02T00:33:55.361Z] 00:33:55     INFO -     SimpleTest.ok@SimpleTest/SimpleTest.js:414:16
[task 2022-08-02T00:33:55.361Z] 00:33:55     INFO -     reportResults@dom/canvas/test/webgl-conf/mochi-single.html?checkout/conformance/textures/misc/copy-tex-image-2d-formats.html:22:14
[task 2022-08-02T00:33:55.361Z] 00:33:55     INFO -     reportTestResultsToHarness@dom/canvas/test/webgl-conf/checkout/js/js-test-pre.js:104:36
[task 2022-08-02T00:33:55.361Z] 00:33:55     INFO -     testFailed@dom/canvas/test/webgl-conf/checkout/js/js-test-pre.js:239:31
[task 2022-08-02T00:33:55.361Z] 00:33:55     INFO -     checkCanvasRect/<@dom/canvas/test/webgl-conf/checkout/js/webgl-test-utils.js:1332:19
[task 2022-08-02T00:33:55.361Z] 00:33:55     INFO -     checkCanvasRectColor@dom/canvas/test/webgl-conf/checkout/js/webgl-test-utils.js:1285:20
[task 2022-08-02T00:33:55.362Z] 00:33:55     INFO -     checkCanvasRect@dom/canvas/test/webgl-conf/checkout/js/webgl-test-utils.js:1320:23
[task 2022-08-02T00:33:55.362Z] 00:33:55     INFO -     checkCanvas@dom/canvas/test/webgl-conf/checkout/js/webgl-test-utils.js:1351:18
[task 2022-08-02T00:33:55.362Z] 00:33:55     INFO -     testCopyTexImage2D@dom/canvas/test/webgl-conf/checkout/conformance/textures/misc/copy-tex-image-2d-formats.html:165:7
[task 2022-08-02T00:33:55.362Z] 00:33:55     INFO -     testFormats@dom/canvas/test/webgl-conf/checkout/conformance/textures/misc/copy-tex-image-2d-formats.html:110:23
[task 2022-08-02T00:33:55.362Z] 00:33:55     INFO -     @dom/canvas/test/webgl-conf/checkout/conformance/textures/misc/copy-tex-image-2d-formats.html:68:12
[task 2022-08-02T00:33:55.362Z] 00:33:55     INFO - TEST-PASS | dom/canvas/test/webgl-conf/generated/test_conformance__textures__misc__copy-tex-image-2d-formats.html | getError was expected value: NO_ERROR : should be no errors 
[task 2022-08-02T00:33:55.363Z] 00:33:55     INFO - GECKO(1359) | JavaScript warning: http://mochi.test:8888/tests/dom/canvas/test/webgl-conf/checkout/conformance/textures/misc/copy-tex-image-2d-formats.html, line 140: WebGL warning: copyTexImage: Copying to a LUMINANCE, ALPHA, or LUMINANCE_ALPHA is deprecated, and has severely reduced performance on some platforms.
[task 2022-08-02T00:33:55.364Z] 00:33:55     INFO - TEST-PASS | dom/canvas/test/webgl-conf/generated/test_conformance__textures__misc__copy-tex-image-2d-formats.html | getError was expected value: NO_ERROR : should be able to copyTexImage2D LUMINANCE from RGBA 
[task 2022-08-02T00:33:55.364Z] 00:33:55     INFO - Not taking screenshot here: see the one that was previously logged
[task 2022-08-02T00:33:55.366Z] 00:33:55     INFO - TEST-UNEXPECTED-FAIL | dom/canvas/test/webgl-conf/generated/test_conformance__textures__misc__copy-tex-image-2d-formats.html | should be 64,64,64,255
[task 2022-08-02T00:33:55.366Z] 00:33:55     INFO - at (0, 0) expected: 64,64,64,255 was 0,0,0,255 
[task 2022-08-02T00:33:55.366Z] 00:33:55     INFO -     SimpleTest.ok@SimpleTest/SimpleTest.js:414:16
[task 2022-08-02T00:33:55.366Z] 00:33:55     INFO -     reportResults@dom/canvas/test/webgl-conf/mochi-single.html?checkout/conformance/textures/misc/copy-tex-image-2d-formats.html:22:14
[task 2022-08-02T00:33:55.366Z] 00:33:55     INFO -     reportTestResultsToHarness@dom/canvas/test/webgl-conf/checkout/js/js-test-pre.js:104:36
[task 2022-08-02T00:33:55.366Z] 00:33:55     INFO -     testFailed@dom/canvas/test/webgl-conf/checkout/js/js-test-pre.js:239:31
[task 2022-08-02T00:33:55.366Z] 00:33:55     INFO -     checkCanvasRect/<@dom/canvas/test/webgl-conf/checkout/js/webgl-test-utils.js:1332:19
[task 2022-08-02T00:33:55.366Z] 00:33:55     INFO -     checkCanvasRectColor@dom/canvas/test/webgl-conf/checkout/js/webgl-test-utils.js:1285:20
[task 2022-08-02T00:33:55.367Z] 00:33:55     INFO -     checkCanvasRect@dom/canvas/test/webgl-conf/checkout/js/webgl-test-utils.js:1320:23
[task 2022-08-02T00:33:55.367Z] 00:33:55     INFO -     checkCanvas@dom/canvas/test/webgl-conf/checkout/js/webgl-test-utils.js:1351:18
[task 2022-08-02T00:33:55.367Z] 00:33:55     INFO -     testCopyTexImage2D@dom/canvas/test/webgl-conf/checkout/conformance/textures/misc/copy-tex-image-2d-formats.html:165:7
[task 2022-08-02T00:33:55.367Z] 00:33:55     INFO -     testFormats@dom/canvas/test/webgl-conf/checkout/conformance/textures/misc/copy-tex-image-2d-formats.html:110:23
[task 2022-08-02T00:33:55.367Z] 00:33:55     INFO -     @dom/canvas/test/webgl-conf/checkout/conformance/textures/misc/copy-tex-image-2d-formats.html:68:12
[task 2022-08-02T00:33:55.368Z] 00:33:55     INFO - TEST-PASS | dom/canvas/test/webgl-conf/generated/test_conformance__textures__misc__copy-tex-image-2d-formats.html | getError was expected value: NO_ERROR : should be no errors 
<...>
Flags: needinfo?(jgilbert)
Flags: needinfo?(jgilbert)
  • Don't unconditionally clamp-to-alpha, since some callers use blit as a raw copy.
  • Remove unused premultAlpha branch+uniform, replace with available but unused mixin.
Flags: needinfo?(jgilbert)
Depends on: 1785925
Blocks: 1753373

There are some r+ patches which didn't land and no activity in this bug for 2 weeks.
:jgilbert, could you have a look please?
If you still have some work to do, you can add an action "Plan Changes" in Phabricator.
For more information, please visit auto_nag documentation.

Flags: needinfo?(sotaro.ikeda.g)
Flags: needinfo?(jgilbert)
Flags: needinfo?(sotaro.ikeda.g)
Flags: needinfo?(jgilbert)
Depends on: 1799258
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: