Closed Bug 1600793 Opened 4 months ago Closed 25 days ago

Make the scrolling input latency telemetry work for Webrender

Categories

(Core :: Panning and Zooming, enhancement, P3)

enhancement

Tracking

()

RESOLVED FIXED
mozilla76
Tracking Status
firefox76 --- fixed

People

(Reporter: sefeng, Assigned: sefeng)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

In bug 1500465, we added the scroll latency telemetry, however it didn't work with WebRender. This bug is for making it work with WebRender.

Assignee: nobody → sefeng
Priority: -- → P3
Blocks: 1604930
Pushed by sefeng@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/85ffb2302070
Make the scrolling input telemetry work for WebRender r=botond,jrmuizel
Pushed by sefeng@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/80c254f460f5
Make the scrolling input telemetry work for WebRender r=botond,jrmuizel

Backed out changeset 80c254f460f5 (Bug 1600793) for bustages complaining about webrender_ffi.h

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&fromchange=4a95f898cab860303e46df90d25f48e3f909bf5a&searchStr=build&tochange=40ca68bfea62e27f6934d4327f1ff88df9c17828&selectedJob=288950956

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

Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=288950956&repo=autoland&lineNumber=15044

[task 2020-02-14T15:48:04.216Z] 15:48:04     INFO -  make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/security/sandbox/linux/glue'
[task 2020-02-14T15:48:04.217Z] 15:48:04     INFO -  /builds/worker/fetches/sccache/sccache /builds/worker/fetches/clang/bin/clang++ -std=gnu++17 -o Unified_cpp_sandbox_linux_glue0.o -c  -I/builds/worker/workspace/build/src/obj-firefox/dist/stl_wrappers -I/builds/worker/workspace/build/src/obj-firefox/dist/system_wrappers -include /builds/worker/workspace/build/src/config/gcc_hidden.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -DNDEBUG=1 -DTRIMMED=1 -DOS_POSIX=1 -DOS_LINUX=1 -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/builds/worker/workspace/build/src/security/sandbox/linux/glue -I/builds/worker/workspace/build/src/obj-firefox/security/sandbox/linux/glue -I/builds/worker/workspace/build/src/obj-firefox/ipc/ipdl/_ipdlheaders -I/builds/worker/workspace/build/src/ipc/chromium/src -I/builds/worker/workspace/build/src/ipc/glue -I/builds/worker/workspace/build/src/security/sandbox/chromium -I/builds/worker/workspace/build/src/security/sandbox/linux -I/builds/worker/workspace/build/src/obj-firefox/dist/include -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nspr -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nss -fPIC -DMOZILLA_CLIENT -include /builds/worker/workspace/build/src/obj-firefox/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 -Werror=non-literal-null-conversion -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 -Wformat -Wformat-security -Wno-gnu-zero-variadic-macro-arguments -Wno-unknown-warning-option -D_GLIBCXX_USE_CXX11_ABI=0 -fno-sized-deallocation -fno-aligned-new -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/build/src/obj-firefox/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -O2 -fno-omit-frame-pointer -funwind-tables -Werror -Wno-error=shadow  -MD -MP -MF .deps/Unified_cpp_sandbox_linux_glue0.o.pp   Unified_cpp_sandbox_linux_glue0.cpp
[task 2020-02-14T15:48:04.217Z] 15:48:04     INFO -  In file included from Unified_cpp_sandbox_linux_glue0.cpp:20:
[task 2020-02-14T15:48:04.217Z] 15:48:04     INFO -  In file included from /builds/worker/workspace/build/src/security/sandbox/linux/glue/SandboxPrefBridge.cpp:11:
[task 2020-02-14T15:48:04.217Z] 15:48:04     INFO -  In file included from /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/dom/ContentChild.h:13:
[task 2020-02-14T15:48:04.217Z] 15:48:04     INFO -  In file included from /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/dom/BrowserBridgeChild.h:10:
[task 2020-02-14T15:48:04.217Z] 15:48:04     INFO -  In file included from /builds/worker/workspace/build/src/obj-firefox/ipc/ipdl/_ipdlheaders/mozilla/dom/PBrowserBridgeChild.h:18:
[task 2020-02-14T15:48:04.217Z] 15:48:04     INFO -  In file included from /builds/worker/workspace/build/src/obj-firefox/dist/include/ipc/nsGUIEventIPC.h:17:
[task 2020-02-14T15:48:04.217Z] 15:48:04     INFO -  In file included from /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/WheelHandlingHelper.h:13:
[task 2020-02-14T15:48:04.218Z] 15:48:04     INFO -  In file included from /builds/worker/workspace/build/src/obj-firefox/dist/include/nsIFrame.h:59:
[task 2020-02-14T15:48:04.218Z] 15:48:04     INFO -  In file included from /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/PresShell.h:34:
[task 2020-02-14T15:48:04.218Z] 15:48:04     INFO -  In file included from /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/layers/FocusTarget.h:14:
[task 2020-02-14T15:48:04.218Z] 15:48:04     INFO -  In file included from /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/webrender/WebRenderTypes.h:11:
[task 2020-02-14T15:48:04.218Z] 15:48:04    ERROR -  /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/webrender/webrender_ffi.h:101:60: error: Type 'mozilla::wr::WrPipelineIdEpochs' (aka 'FfiVec<mozilla::wr::WrPipelineIdAndEpoch>') must not be used as parameter to extern "C" function
[task 2020-02-14T15:48:04.218Z] 15:48:04     INFO -                             mozilla::wr::WrPipelineIdEpochs aPipelineEpochs);
[task 2020-02-14T15:48:04.218Z] 15:48:04     INFO -                                                             ^
[task 2020-02-14T15:48:04.221Z] 15:48:04     INFO -  /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/webrender/webrender_ffi.h:101:60: note: Please consider using a pointer or reference, or explicitly instantiating the template instead
[task 2020-02-14T15:48:04.222Z] 15:48:04     INFO -  In file included from Unified_cpp_sandbox_linux_glue0.cpp:20:
[task 2020-02-14T15:48:04.222Z] 15:48:04     INFO -  In file included from /builds/worker/workspace/build/src/security/sandbox/linux/glue/SandboxPrefBridge.cpp:11:
[task 2020-02-14T15:48:04.222Z] 15:48:04     INFO -  In file included from /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/dom/ContentChild.h:13:
[task 2020-02-14T15:48:04.222Z] 15:48:04     INFO -  In file included from /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/dom/BrowserBridgeChild.h:10:
[task 2020-02-14T15:48:04.222Z] 15:48:04     INFO -  In file included from /builds/worker/workspace/build/src/obj-firefox/ipc/ipdl/_ipdlheaders/mozilla/dom/PBrowserBridgeChild.h:18:
[task 2020-02-14T15:48:04.222Z] 15:48:04     INFO -  In file included from /builds/worker/workspace/build/src/obj-firefox/dist/include/ipc/nsGUIEventIPC.h:17:
[task 2020-02-14T15:48:04.222Z] 15:48:04     INFO -  In file included from /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/WheelHandlingHelper.h:13:
[task 2020-02-14T15:48:04.223Z] 15:48:04     INFO -  In file included from /builds/worker/workspace/build/src/obj-firefox/dist/include/nsIFrame.h:59:
[task 2020-02-14T15:48:04.223Z] 15:48:04     INFO -  In file included from /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/PresShell.h:34:
[task 2020-02-14T15:48:04.223Z] 15:48:04     INFO -  In file included from /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/layers/FocusTarget.h:14:
[task 2020-02-14T15:48:04.224Z] 15:48:04     INFO -  In file included from /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/webrender/WebRenderTypes.h:11:
[task 2020-02-14T15:48:04.224Z] 15:48:04     INFO -  In file included from /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/webrender/webrender_ffi.h:109:
[task 2020-02-14T15:48:04.224Z] 15:48:04    ERROR -  /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/webrender/webrender_ffi_generated.h:2378:54: error: Type 'mozilla::wr::WrPipelineIdEpochs' (aka 'FfiVec<mozilla::wr::WrPipelineIdAndEpoch>') must not be used as parameter to extern "C" function
[task 2020-02-14T15:48:04.224Z] 15:48:04     INFO -                                    WrPipelineIdEpochs aEpochsBeingRendered);
[task 2020-02-14T15:48:04.225Z] 15:48:04     INFO -                                                       ^
[task 2020-02-14T15:48:04.225Z] 15:48:04     INFO -  /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/webrender/webrender_ffi_generated.h:2378:54: note: Please consider using a pointer or reference, or explicitly instantiating the template instead
[task 2020-02-14T15:48:04.225Z] 15:48:04    ERROR -  /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/webrender/webrender_ffi_generated.h:2888:56: error: Type 'mozilla::wr::WrPipelineIdEpochs' (aka 'FfiVec<mozilla::wr::WrPipelineIdAndEpoch>') must not be used as parameter to extern "C" function
[task 2020-02-14T15:48:04.226Z] 15:48:04     INFO -  void wr_pipelineid_and_epoch_delete(WrPipelineIdEpochs aResult);
[task 2020-02-14T15:48:04.226Z] 15:48:04     INFO -                                                         ^
[task 2020-02-14T15:48:04.226Z] 15:48:04     INFO -  /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/webrender/webrender_ffi_generated.h:2888:56: note: Please consider using a pointer or reference, or explicitly instantiating the template instead
[task 2020-02-14T15:48:04.226Z] 15:48:04     INFO -  3 errors generated.
[task 2020-02-14T15:48:04.227Z] 15:48:04     INFO -  /builds/worker/workspace/build/src/config/rules.mk:731: recipe for target 'Unified_cpp_sandbox_linux_glue0.o' failed
[task 2020-02-14T15:48:04.227Z] 15:48:04    ERROR -  make[4]: *** [Unified_cpp_sandbox_linux_glue0.o] Error 1
[task 2020-02-14T15:48:04.227Z] 15:48:04     INFO -  make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/security/sandbox/linux/glue'
[task 2020-02-14T15:48:04.228Z] 15:48:04     INFO -  /builds/worker/workspace/build/src/config/recurse.mk:74: recipe for target 'security/sandbox/linux/glue/target-objects' failed
[task 2020-02-14T15:48:04.229Z] 15:48:04    ERROR -  make[3]: *** [security/sandbox/linux/glue/target-objects] Error 2
[task 2020-02-14T15:48:04.229Z] 15:48:04     INFO -  make[3]: *** Waiting for unfinished jobs....
[task 2020-02-14T15:48:04.229Z] 15:48:04     INFO -  make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/xpcom/threads'
[task 2020-02-14T15:48:04.230Z] 15:48:04     INFO -  xpcom/threads/Unified_cpp_xpcom_threads1.o
[task 2020-02-14T15:48:04.230Z] 15:48:04     INFO -  make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/xpcom/threads'
Pushed by sefeng@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/8665af6e62a6
Make the scrolling input telemetry work for WebRender r=botond,jrmuizel
Status: NEW → RESOLVED
Closed: 2 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla75
Regressions: 1617432

I've asked sheriffs to back this out due to the crash regressions.

Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Target Milestone: mozilla75 → ---

My first thought here would be to double-check that we're using the nsClassHashtable API correctly.

(One of the reasons I prefer to use std::unordered_map is that I find the ns*Hashtable API a lot harder to understand.)

(If anyone's interested, I can reliably reproduce this in today's Fenix build (which doesn't yet have a GV with the backout).)

(In reply to Botond Ballo [:botond] from comment #13)

My first thought here would be to double-check that we're using the nsClassHashtable API correctly.

(I did look through the API usage again, and couldn't spot any problems, so there's probably something else going on.)

Dropping stale needinfo. There was some discussion on this and :sefeng is updating the patches.

Flags: needinfo?(sefeng)
Pushed by sefeng@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/b781fe3bde1a
Make the scrolling input telemetry work for WebRender r=botond,jrmuizel
Status: REOPENED → RESOLVED
Closed: 2 months ago25 days ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla76
You need to log in before you can comment on or make changes to this bug.