Prototype display-p3 display support for webgl on mac+ca
Categories
(Core :: Graphics: CanvasWebGL, enhancement, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox102 | --- | fixed |
People
(Reporter: jgilbert, Assigned: jgilbert)
References
(Blocks 1 open bug, )
Details
(Keywords: perf-alert)
Attachments
(2 files)
We should prototype it to ensure we're speccing the right thing.
Comment 1•3 years ago
|
||
Do you have an idea of what work all needs to happen for this?
Assignee | ||
Comment 2•3 years ago
|
||
Roughly:
- Add p3 to our colorspace enums
- Implement the API surface proposed here: https://github.com/KhronosGroup/WebGL/pull/3292
- Support separate OS layer webgl canvases marked as p3
- Tone map(?) p3 canvases into an otherwise-srgb page/wr-rendertarget
For prototyping, I think we can skip 4 for now, though we should be thinking about what we want to do here. I'm not sure what the HTML spec says (will say?) about this.
Comment 3•3 years ago
|
||
So having a P3 canvas only effects how it is interpreted by the outside world? What happens if you do texSubImage(ImageElement)? What colorspace should the image be decoded to?
Assignee | ||
Comment 4•3 years ago
|
||
Defined in https://github.com/KhronosGroup/WebGL/pull/3292, generally we would do conversion between spaces. (We basically do this already for YUV content, so this is sort of part of #1)
Assignee | ||
Comment 5•3 years ago
|
||
Enable (direct) external surface compositing for MacIOSurfaces.
Works on Mac.
Updated•3 years ago
|
Comment 7•3 years ago
|
||
Backed out changeset 071aa43a0419 (bug 1703654) for causing build bustages in SharedSurfaceDMABUF.
Backout link: https://hg.mozilla.org/integration/autoland/rev/a4c8cdae300f6ed787c8961ae3d4780772f1d161
Assignee | ||
Comment 8•3 years ago
|
||
Oh, hah, of course, platform-specific-compiled code
Comment 10•3 years ago
|
||
Backed out for causing bustages on IPCMessageUtils.h
- backout: https://hg.mozilla.org/integration/autoland/rev/e68f370836a2890d23e7962078671574c6b1dea7
- push: https://treeherder.mozilla.org/jobs?repo=autoland&group_state=expanded&selectedTaskRun=TZ0VnLK4R52oBIii-csYKg.0&revision=718ead395698d5aeef7c91210e8408d9570c5582
- failure log: https://treeherder.mozilla.org/logviewer?job_id=376194144&repo=autoland&lineNumber=8912
[task 2022-04-28T21:19:41.524Z] 21:19:41 INFO - /builds/worker/workspace/obj-build/dist/include/mozilla/dom/WebGLIpdl.h:237:14: required from here
[task 2022-04-28T21:19:41.525Z] 21:19:41 ERROR - /builds/worker/workspace/obj-build/dist/include/ipc/IPCMessageUtils.h:66:3: error: static assertion failed: PlainOldDataSerializer can only be used with trivially copyable types!
[task 2022-04-28T21:19:41.525Z] 21:19:41 INFO - static_assert(
[task 2022-04-28T21:19:41.525Z] 21:19:41 INFO - ^~~~~~~~~~~~~
[task 2022-04-28T21:19:41.525Z] 21:19:41 INFO - /builds/worker/workspace/obj-build/dist/include/ipc/IPCMessageUtils.h: In instantiation of 'struct IPC::PlainOldDataSerializer<mozilla::WebGLContextOptions>':
[task 2022-04-28T21:19:41.526Z] 21:19:41 INFO - /builds/worker/workspace/obj-build/dist/include/mozilla/dom/WebGLIpdl.h:219:8: required from 'struct IPC::ValidatedPlainOldDataSerializer<mozilla::WebGLContextOptions>'
[task 2022-04-28T21:19:41.526Z] 21:19:41 INFO - /builds/worker/workspace/obj-build/dist/include/mozilla/dom/WebGLIpdl.h:247:14: required from here
[task 2022-04-28T21:19:41.526Z] 21:19:41 ERROR - /builds/worker/workspace/obj-build/dist/include/ipc/IPCMessageUtils.h:66:3: error: static assertion failed: PlainOldDataSerializer can only be used with trivially copyable types!
[task 2022-04-28T21:19:41.527Z] 21:19:41 ERROR - gmake[4]: *** [/builds/worker/checkouts/gecko/config/rules.mk:659: OffscreenCanvasDisplayHelper.o] Error 1
[task 2022-04-28T21:19:41.527Z] 21:19:41 INFO - gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/dom/canvas'
[task 2022-04-28T21:19:41.527Z] 21:19:41 ERROR - gmake[3]: *** [/builds/worker/checkouts/gecko/config/recurse.mk:72: dom/canvas/target-objects] Error 2
[task 2022-04-28T21:19:41.527Z] 21:19:41 INFO - gmake[3]: *** Waiting for unfinished jobs....
Updated•3 years ago
|
Assignee | ||
Comment 11•3 years ago
|
||
Oookay, Maybe<enum class> isn't trivially copyable on old gcc?
Assignee | ||
Comment 12•3 years ago
|
||
Start moving away from manual (risky!) IsTriviallySerializable<>.
Updated•3 years ago
|
Comment 13•3 years ago
|
||
Comment 14•3 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/bd0bcbae38bd
https://hg.mozilla.org/mozilla-central/rev/f2d46bb91c9d
Comment 15•3 years ago
|
||
== Change summary for alert #34063 (as of Fri, 06 May 2022 18:45:56 GMT) ==
Improvements:
Ratio | Test | Platform | Options | Absolute values (old vs new) |
---|---|---|---|---|
61% | glterrain | macosx1015-64-shippable-qr | e10s fission stylo webrender-sw | 3.42 -> 1.34 |
61% | glterrain | macosx1015-64-shippable-qr | e10s fission stylo webrender-sw | 3.43 -> 1.34 |
20% | glterrain | macosx1015-64-shippable-qr | e10s fission stylo webgl-ipc webrender | 1.84 -> 1.47 |
18% | glterrain | macosx1015-64-shippable-qr | e10s fission stylo webrender | 1.81 -> 1.48 |
For up to date results, see: https://treeherder.mozilla.org/perfherder/alerts?id=34063
Updated•3 years ago
|
Assignee | ||
Updated•3 years ago
|
Description
•