WebGL is not getting RBAB on ANGLE

RESOLVED FIXED in Firefox 63

Status

()

defect
P1
normal
RESOLVED FIXED
9 months ago
7 months ago

People

(Reporter: jgilbert, Assigned: jgilbert)

Tracking

(Depends on 1 bug, {regression})

unspecified
mozilla63
Points:
---
Dependency tree / graph
Bug Flags:
in-testsuite +

Firefox Tracking Flags

(firefox-esr52 wontfix, firefox-esr60 wontfix, firefox61 wontfix, firefox62+ wontfix, firefox63 fixed)

Details

Attachments

(1 attachment, 1 obsolete attachment)

(Assignee)

Description

9 months ago
We should always be able to skip index validation on D3D11.
(Assignee)

Comment 1

9 months ago
Add test_has_rbab to guarantee we can skip index validation where available.
Comment on attachment 8998038 [details]
Try to get RBAB even with EXT_create_context_robustness.

Kyle Machulis [:qdot] [:kmachulis] (if a patch has no decent commit message, automatic r-) has approved the revision.

https://phabricator.services.mozilla.com/D2805
Attachment #8998038 - Flags: review+
Comment on attachment 8998038 [details]
Try to get RBAB even with EXT_create_context_robustness.

Dzmitry Malyshau [:kvark] has approved the revision.

https://phabricator.services.mozilla.com/D2805
Attachment #8998038 - Flags: review+
(Assignee)

Comment 4

9 months ago
Add test_has_rbab to guarantee we can skip index validation where available.
Attachment #8998323 - Attachment is obsolete: true

Comment 5

9 months ago
Pushed by jgilbert@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/d21be89ef3ec
Try to get RBAB even with EXT_create_context_robustness. - r=kvark
https://hg.mozilla.org/integration/mozilla-inbound/rev/cbff6038aca8
Add test_has_rbab to guarantee we can skip index validation where available. - r=kvark,qdot

Comment 6

9 months ago
bugherder
https://hg.mozilla.org/mozilla-central/rev/d21be89ef3ec
https://hg.mozilla.org/mozilla-central/rev/cbff6038aca8
Status: NEW → RESOLVED
Last Resolved: 9 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla63
(Assignee)

Comment 7

9 months ago
Comment on attachment 8998038 [details]
Try to get RBAB even with EXT_create_context_robustness.

[Approval Request Comment]
If this is not a sec:{high,crit} bug, please state case for ESR consideration: Simple fix for perf issue hit by CAD+WebGL on ESR.
User impact if declined: see below
Fix Landed on Version: nightly63
Risk to taking this patch (and alternatives if risky): see below
String or UUID changes made by this patch: none

See https://wiki.mozilla.org/Release_Management/ESR_Landing_Process for more info.

Approval Request Comment
[Feature/Bug causing the regression]: bug 1339256
[User impact if declined]: Slower CAD WebGL workloads on Windows
[Is this code covered by automated tests?]: Test included.
[Has the fix been verified in Nightly?]: no
[Needs manual test from QE? If yes, steps to reproduce]: no
[List of other uplifts needed for the feature/fix]: beta62, esr60
[Is the change risky?]: low but non-zero
[Why is the change risky/not risky?]: We change GL context creation, but what we do should be pretty safe, and still hit all the right fallbacks. We have pretty good tests.
[String changes made/needed]: none
Attachment #8998038 - Flags: approval-mozilla-esr60?
Attachment #8998038 - Flags: approval-mozilla-beta?
Comment on attachment 8998038 [details]
Try to get RBAB even with EXT_create_context_robustness.

Low-risk fix for a perf regression found in the wild with an automated test included. Approved for 62.0b17 and ESR 60.2.
Attachment #8998038 - Flags: approval-mozilla-esr60?
Attachment #8998038 - Flags: approval-mozilla-esr60+
Attachment #8998038 - Flags: approval-mozilla-beta?
Attachment #8998038 - Flags: approval-mozilla-beta+
Backed out for build bustage on WebGLExtensionMOZDebug.cpp

backout: https://hg.mozilla.org/releases/mozilla-beta/rev/823e87ee74753871c887babc22282a5b6760b1bd

push with failures: https://treeherder.mozilla.org/#/jobs?repo=mozilla-beta&revision=af8e3fb57cb74c9acb0d28123ef2268f42951751&selectedJob=193301371

failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=193301381&repo=mozilla-beta&lineNumber=34370

16:16:50     INFO -  mozmake.EXE[5]: Entering directory 'z:/build/build/src/obj-firefox/dom/canvas'
16:16:50     INFO -  z:/build/build/src/obj-firefox/_virtualenvs/init/Scripts/python.exe -m mozbuild.action.cl  z:/build/build/src/vs2017_15.6.6/VC/bin/Hostx64/x64/cl.exe -FoUnified_cpp_dom_canvas4.obj -c -Iz:/build/build/src/obj-firefox/dist/stl_wrappers -DNDEBUG=1 -DTRIMMED=1 -DWIN32_LEAN_AND_MEAN -D_WIN32 -DWIN32 -D_CRT_RAND_S -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DOS_WIN=1 -D_UNICODE -DCHROMIUM_BUILD -DU_STATIC_IMPLEMENTATION -DUNICODE -D_WINDOWS -D_SECURE_ATL -DCOMPILER_MSVC -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -Iz:/build/build/src/dom/canvas -Iz:/build/build/src/obj-firefox/dom/canvas -Iz:/build/build/src/js/xpconnect/wrappers -Iz:/build/build/src/obj-firefox/ipc/ipdl/_ipdlheaders -Iz:/build/build/src/ipc/chromium/src -Iz:/build/build/src/ipc/glue -Iz:/build/build/src/dom/base -Iz:/build/build/src/dom/html -Iz:/build/build/src/dom/svg -Iz:/build/build/src/dom/workers -Iz:/build/build/src/dom/xul -Iz:/build/build/src/gfx/angle/checkout/include -Iz:/build/build/src/gfx/gl -Iz:/build/build/src/image -Iz:/build/build/src/js/xpconnect/src -Iz:/build/build/src/layout/generic -Iz:/build/build/src/layout/style -Iz:/build/build/src/layout/xul -Iz:/build/build/src/media/libyuv/libyuv/include -Iz:/build/build/src/gfx/skia -Iz:/build/build/src/gfx/skia/skia/include/config -Iz:/build/build/src/gfx/skia/skia/include/core -Iz:/build/build/src/gfx/skia/skia/include/gpu -Iz:/build/build/src/gfx/skia/skia/include/utils -Iz:/build/build/src/obj-firefox/dist/include -Iz:/build/build/src/obj-firefox/dist/include/nspr -Iz:/build/build/src/obj-firefox/dist/include/nss -MD -FI z:/build/build/src/obj-firefox/mozilla-config.h -DMOZILLA_CLIENT -utf-8 -TP -nologo -w15038 -wd5026 -wd5027 -Zc:sizedDealloc- -wd4091 -wd4577 -D_HAS_EXCEPTIONS=0 -W3 -Gy -Zc:inline -Gw -wd4251 -wd4244 -wd4267 -wd4800 -wd4595 -wd4065 -we4553 -D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING -GR- -Zi -O1 -Oi -Oy -Iz:/build/build/src/obj-firefox/dist/include/cairo -GL   -Fdgenerated.pdb -FS  z:/build/build/src/obj-firefox/dom/canvas/Unified_cpp_dom_canvas4.cpp
16:16:50     INFO -  Unified_cpp_dom_canvas4.cpp
16:16:50     INFO -  z:/build/build/src/dom/canvas/WebGLExtensionMOZDebug.cpp(62): error C2039: 'MOZ_debug_Binding': is not a member of 'mozilla::dom'
16:16:50     INFO -  z:\build\build\src\dom\canvas\WebGLContext.h(89): note: see declaration of 'mozilla::dom'
16:16:50     INFO -  z:/build/build/src/dom/canvas/WebGLExtensionMOZDebug.cpp(62): error C3083: 'MOZ_debug_Binding': the symbol to the left of a '::' must be a type
16:16:50     INFO -  z:/build/build/src/dom/canvas/WebGLExtensionMOZDebug.cpp(62): error C2039: 'WSI_INFO': is not a member of 'mozilla::dom'
16:16:50     INFO -  z:\build\build\src\dom\canvas\WebGLContext.h(89): note: see declaration of 'mozilla::dom'
16:16:50     INFO -  z:/build/build/src/dom/canvas/WebGLExtensionMOZDebug.cpp(62): error C2065: 'WSI_INFO': undeclared identifier
16:16:50     INFO -  z:/build/build/src/dom/canvas/WebGLExtensionMOZDebug.cpp(62): error C2131: expression did not evaluate to a constant
16:16:50     INFO -  z:/build/build/src/dom/canvas/WebGLExtensionMOZDebug.cpp(62): note: failure was caused by non-constant arguments or reference to a non-constant symbol
16:16:50     INFO -  z:/build/build/src/dom/canvas/WebGLExtensionMOZDebug.cpp(62): note: see usage of 'WSI_INFO'
16:16:50     INFO -  z:/build/build/src/dom/canvas/WebGLExtensionMOZDebug.cpp(70): error C2039: 'MOZ_debug_Binding': is not a member of 'mozilla::dom'
16:16:50     INFO -  z:\build\build\src\dom\canvas\WebGLContext.h(89): note: see declaration of 'mozilla::dom'
16:16:50     INFO -  z:/build/build/src/dom/canvas/WebGLExtensionMOZDebug.cpp(70): error C3083: 'MOZ_debug_Binding': the symbol to the left of a '::' must be a type
16:16:50     INFO -  z:/build/build/src/dom/canvas/WebGLExtensionMOZDebug.cpp(70): error C2039: 'DOES_INDEX_VALIDATION': is not a member of 'mozilla::dom'
16:16:50     INFO -  z:\build\build\src\dom\canvas\WebGLContext.h(89): note: see declaration of 'mozilla::dom'
16:16:50     INFO -  z:/build/build/src/dom/canvas/WebGLExtensionMOZDebug.cpp(70): error C2065: 'DOES_INDEX_VALIDATION': undeclared identifier
16:16:50     INFO -  z:/build/build/src/dom/canvas/WebGLExtensionMOZDebug.cpp(70): error C2131: expression did not evaluate to a constant
16:16:50     INFO -  z:/build/build/src/dom/canvas/WebGLExtensionMOZDebug.cpp(70): note: failure was caused by non-constant arguments or reference to a non-constant symbol
16:16:50     INFO -  z:/build/build/src/dom/canvas/WebGLExtensionMOZDebug.cpp(70): note: see usage of 'DOES_INDEX_VALIDATION'
16:16:50     INFO -  z:/build/build/src/dom/canvas/WebGLExtensionMOZDebug.cpp(62): error C2051: case expression not constant
16:16:50     INFO -  z:/build/build/src/dom/canvas/WebGLExtensionMOZDebug.cpp(70): error C2051: case expression not constant
16:16:50     INFO -  z:/build/build/src/config/rules.mk:1031: recipe for target 'Unified_cpp_dom_canvas4.obj' failed
16:16:50     INFO -  mozmake.EXE[5]: *** [Unified_cpp_dom_canvas4.obj] Error 2
16:16:50     INFO -  mozmake.EXE[5]: Leaving directory 'z:/build/build/src/obj-firefox/dom/canvas'
16:16:50     INFO -  mozmake.EXE[5]: *** Waiting for unfinished jobs....
16:16:50     INFO -  mozmake.EXE[5]: Entering directory 'z:/build/build/src/obj-firefox/gfx/angle/targets/libANGLE'
16:16:50     INFO -  mozmake.EXE[5]: Leaving directory 'z:/build/build/src/obj-firefox/gfx/angle/targets/libANGLE'
16:16:50     INFO -  mozmake.EXE[5]: Entering directory 'z:/build/build/src/obj-firefox/gfx/angle/targets/libANGLE'
16:16:50     INFO -  mozmake.EXE[5]: Leaving directory 'z:/build/build/src/obj-firefox/gfx/angle/targets/libANGLE'
16:16:52     INFO -  mozmake.EXE[5]: Entering directory 'z:/build/build/src/obj-firefox/gfx/angle/targets/libANGLE'
16:16:52     INFO -  z:/build/build/src/obj-firefox/_virtualenvs/init/Scripts/python.exe -m mozbuild.action.cl  z:/build/build/src/vs2017_15.6.6/VC/bin/Hostx64/x64/cl.exe -FoConfig.obj -c -Iz:/build/build/src/obj-firefox/dist/stl_wrappers -DNDEBUG=1 -DTRIMMED=1 -D__NDK_FPABI__= -Dconstexpr14= -DANGLE_SKIP_DXGI_1_2_CHECK -DANGLE_ENABLE_KEYEDMUTEX -DANGLE_ENABLE_D3D11 -DANGLE_ENABLE_D3D9 -DANGLE_ENABLE_DEBUG_ANNOTATIONS -DANGLE_GENERATE_SHADER_DEBUG_INFO -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DEGL_EGLEXT_PROTOTYPES -DGL_GLEXT_PROTOTYPES -DLIBANGLE_IMPLEMENTATION -DNOMINMAX -DNTDDI_VERSION=0x0A000000 -DUNICODE -D_ATL_NO_OPENGL -D_CRT_RAND_S -D_CRT_SECURE_NO_DEPRECATE -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SECURE_ATL -D_UNICODE -Iz:/build/build/src/gfx/angle/targets/libANGLE -Iz:/build/build/src/obj-firefox/gfx/angle/targets/libANGLE -Iz:/build/build/src/gfx/angle/checkout -Iz:/build/build/src/gfx/angle/checkout/include -Iz:/build/build/src/gfx/angle/checkout/out/gen -Iz:/build/build/src/gfx/angle/checkout/out/gen/angle -Iz:/build/build/src/gfx/angle/checkout/src -Iz:/build/build/src/gfx/angle/checkout/src/common/third_party/base -Iz:/build/build/src/obj-firefox/dist/include -Iz:/build/build/src/obj-firefox/dist/include/nspr -Iz:/build/build/src/obj-firefox/dist/include/nss -MD -FI z:/build/build/src/obj-firefox/mozilla-config.h -DMOZILLA_CLIENT -utf-8 -TP -nologo -w15038 -wd5026 -wd5027 -Zc:sizedDealloc- -wd4091 -wd4577 -D_HAS_EXCEPTIONS=0 -W3 -Gy -Zc:inline -Gw -wd4251 -wd4244 -wd4267 -wd4800 -wd4595 -wd4065 -we4553 -D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING -GR- -Zi -O1 -Oi -Oy -GL   -Fdgenerated.pdb -FS  z:/build/build/src/gfx/angle/checkout/src/libANGLE/Config.cpp
16:16:52     INFO -  Config.cpp
Flags: needinfo?(jgilbert)
Emailing jgilbert a reminder.
(Assignee)

Comment 15

8 months ago
With bug 1482289 this isn't essential for esr60, though it's nice-to-have. Feel free to go-to-build without. (rectifying the behavior here with the conformance tests will take another day)
Flags: needinfo?(jgilbert)
See Also: → 1482289
(Assignee)

Comment 16

8 months ago
You know, I think with bug 1482289, this is mostly a memory issue, where apps like this will take up to an extra 8MB of memory, but good perf otherwise. I'm fine with this for esr60.
Attachment #8998038 - Flags: approval-mozilla-esr60+ → approval-mozilla-esr60-
Depends on: 1485441

Comment 17

8 months ago
backout
Backed out from 62 for causing various regressions (see deps).
https://hg.mozilla.org/releases/mozilla-release/rev/4e6207ecd553
Depends on: 1489761

Updated

7 months ago
Depends on: 1489436
You need to log in before you can comment on or make changes to this bug.