Closed Bug 1673983 Opened 4 years ago Closed 4 years ago

Implement D3D11 compositor for swgl

Categories

(Core :: Graphics: WebRender, enhancement)

enhancement

Tracking

()

RESOLVED FIXED
84 Branch
Tracking Status
firefox84 --- fixed

People

(Reporter: jrmuizel, Assigned: mattwoodrow)

References

(Blocks 2 open bugs)

Details

Attachments

(4 files)

This will be useful for users that have a GPU but can't run regular WebRender for whatever reason.

Blocks: sw-wr-perf
Assignee: nobody → matt.woodrow

We can implement this very easily by mapping the wr::Compositor API to our existing CompositorD3D11.

That'll mean very little new code, and we should be able to ship this to users who already run the same code with minimal hassle.

Depends on: 1674856, 1674878
Pushed by mwoodrow@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/99b2e5c55a25
Add D3D11 RenderCompositor for SWGL. r=lsalzman
https://hg.mozilla.org/integration/autoland/rev/72d4bf5b093e
Add RenderTextureHostSWGL support to D3D11 RenderTextureHosts. r=lsalzman
https://hg.mozilla.org/integration/autoland/rev/81601a02d9b7
Support using D3D11 textures as external compositor surfaces with D3D11 compositor. r=lsalzman
https://hg.mozilla.org/integration/autoland/rev/134e621d0902
Preload d3d11 attachments for CompositorD3D11 if we might use it with software WebRender. r=lsalzman

Backed out for causing build bustages in RenderCompositorD3D11SWGL.

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

Push with failures: https://treeherder.mozilla.org/jobs?repo=autoland&collapsedPushes=814797&resultStatus=testfailed%2Cbusted%2Cexception%2Crunnable&revision=134e621d09029db968cef1eb20c9e5ea6cdc21d0

Failure log: https://treeherder.mozilla.org/jobs?repo=autoland&collapsedPushes=814797&resultStatus=testfailed%2Cbusted%2Cexception%2Crunnable&revision=134e621d09029db968cef1eb20c9e5ea6cdc21d0

" make[4]: Leaving directory '/builds/worker/workspace/obj-build/gfx/gl'
[task 2020-11-05T09:34:34.914Z] 09:34:34 INFO - make[4]: Entering directory '/builds/worker/workspace/obj-build/gfx/webrender_bindings'
[task 2020-11-05T09:34:34.914Z] 09:34:34 INFO - /builds/worker/fetches/sccache/sccache /builds/worker/fetches/clang/bin/clang++ -std=gnu++17 -o Unified_cpp_webrender_bindings0.o -c -I/builds/worker/workspace/obj-build/dist/stl_wrappers -I/builds/worker/workspace/obj-build/dist/system_wrappers -include /builds/worker/checkouts/gecko/config/gcc_hidden.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -DNDEBUG=1 -DTRIMMED=1 -DOS_POSIX=1 -DOS_LINUX=1 -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -DSTATIC_EXPORTABLE_JS_API -I/builds/worker/checkouts/gecko/gfx/webrender_bindings -I/builds/worker/workspace/obj-build/gfx/webrender_bindings -I/builds/worker/workspace/obj-build/ipc/ipdl/_ipdlheaders -I/builds/worker/checkouts/gecko/ipc/chromium/src -I/builds/worker/checkouts/gecko/ipc/glue -I/builds/worker/workspace/obj-build/dist/include -I/builds/worker/workspace/obj-build/dist/include/nspr -I/builds/worker/workspace/obj-build/dist/include/nss -fPIC -DMOZILLA_CLIENT -include /builds/worker/workspace/obj-build/mozilla-config.h -Qunused-arguments -Qunused-arguments -Wall -Wbitfield-enum-conversion -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtype-limits -Wunreachable-code -Wunreachable-code-return -Wwrite-strings -Wno-invalid-offsetof -Wclass-varargs -Wempty-init-stmt -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wc++2a-compat -Wcomma -Wimplicit-fallthrough -Wunused-function -Wunused-variable -Wstring-conversion -Wtautological-overlap-compare -Wtautological-unsigned-enum-zero-compare -Wtautological-unsigned-zero-compare -Wno-error=tautological-type-limit-compare -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=backend-plugin -Wno-error=return-std-move -Wno-error=atomic-alignment -Wno-error=deprecated-copy -Wformat -Wformat-security -Wno-gnu-zero-variadic-macro-arguments -Wno-psabi -Wno-unknown-warning-option -D_GLIBCXX_USE_CXX11_ABI=0 -fno-sized-deallocation -fno-aligned-new -fsanitize=thread -fcrash-diagnostics-dir=/builds/worker/artifacts -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -Xclang -load -Xclang /builds/worker/workspace/obj-build/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -O2 -gline-tables-only -fomit-frame-pointer -funwind-tables -I/builds/worker/workspace/obj-build/dist/include/cairo -I/usr/include/freetype2 -I/usr/include/freetype2 -I/builds/worker/checkouts/gecko/widget/gtk/compat-gtk3 -pthread -I/usr/include/gtk-3.0/unix-print -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng12 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/builds/worker/workspace/obj-build/dist/include/cairo -fexperimental-new-pass-manager -MD -MP -MF .deps/Unified_cpp_webrender_bindings0.o.pp Unified_cpp_webrender_bindings0.cpp
[task 2020-11-05T09:34:34.914Z] 09:34:34 INFO - In file included from Unified_cpp_webrender_bindings0.cpp:38:
[task 2020-11-05T09:34:34.914Z] 09:34:34 INFO - In file included from /builds/worker/checkouts/gecko/gfx/webrender_bindings/RenderCompositorD3D11SWGL.cpp:9:
[task 2020-11-05T09:34:34.914Z] 09:34:34 INFO - /builds/worker/checkouts/gecko/gfx/webrender_bindings/RenderCompositorD3D11SWGL.h:11:10: fatal error: 'mozilla/layers/TextureD3D11.h' file not found
[task 2020-11-05T09:34:34.914Z] 09:34:34 INFO - #include "mozilla/layers/TextureD3D11.h"
[task 2020-11-05T09:34:34.914Z] 09:34:34 INFO - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[task 2020-11-05T09:34:34.914Z] 09:34:34 INFO - 1 error generated.
[task 2020-11-05T09:34:34.916Z] 09:34:34 INFO - /builds/worker/checkouts/gecko/config/rules.mk:674: recipe for target 'Unified_cpp_webrender_bindings0.o' failed
[task 2020-11-05T09:34:34.916Z] 09:34:34 ERROR - make[4]: *** [Unified_cpp_webrender_bindings0.o] Error 1
[task 2020-11-05T09:34:34.916Z] 09:34:34 INFO - make[4]: Leaving directory '/builds/worker/workspace/obj-build/gfx/webrender_bindings'
[task 2020-11-05T09:34:34.917Z] 09:34:34 INFO - make[4]: *** Waiting for unfinished jobs....
[task 2020-11-05T09:34:34.918Z] 09:34:34 INFO - make[4]: Entering directory '/builds/worker/workspace/obj-build/gfx/gl'
[task 2020-11-05T09:34:34.918Z] 09:34:34 INFO - gfx/gl/Unified_cpp_gfx_gl1.o"

Flags: needinfo?(matt.woodrow)
Pushed by mwoodrow@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/91cb8ee8ddd8
Add D3D11 RenderCompositor for SWGL. r=lsalzman
https://hg.mozilla.org/integration/autoland/rev/91d8f0f829fd
Add RenderTextureHostSWGL support to D3D11 RenderTextureHosts. r=lsalzman
https://hg.mozilla.org/integration/autoland/rev/49ae9de85ab9
Support using D3D11 textures as external compositor surfaces with D3D11 compositor. r=lsalzman
https://hg.mozilla.org/integration/autoland/rev/f408fc890ba1
Preload d3d11 attachments for CompositorD3D11 if we might use it with software WebRender. r=lsalzman
Flags: needinfo?(matt.woodrow)
Pushed by mwoodrow@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/ea88b243717a
Add D3D11 RenderCompositor for SWGL. r=lsalzman
https://hg.mozilla.org/integration/autoland/rev/9d637c05af7f
Add RenderTextureHostSWGL support to D3D11 RenderTextureHosts. r=lsalzman
https://hg.mozilla.org/integration/autoland/rev/de8d00f1d270
Support using D3D11 textures as external compositor surfaces with D3D11 compositor. r=lsalzman
https://hg.mozilla.org/integration/autoland/rev/72786fd8a18b
Preload d3d11 attachments for CompositorD3D11 if we might use it with software WebRender. r=lsalzman
Flags: needinfo?(matt.woodrow)
Regressions: 1675665
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: