Closed Bug 1669275 Opened 4 years ago Closed 4 years ago

[WR/EGL/X11] Keep using GLX_SGI_video_sync on EGL Mesa until we switch to EGL_CHROMIUM_sync_control to avoid a regression for 85Hz users

Categories

(Core :: Graphics: WebRender, defect)

x86_64
Linux
defect

Tracking

()

RESOLVED FIXED
85 Branch
Tracking Status
firefox-esr78 --- unaffected
firefox81 --- unaffected
firefox82 --- disabled
firefox83 --- disabled
firefox84 --- disabled
firefox85 --- fixed

People

(Reporter: rmader, Assigned: rmader)

References

(Blocks 1 open bug, Regression)

Details

(Keywords: regression)

Attachments

(1 file)

After bug 1650583 and bug 1663003 we have a quite unfortunate situation on EGL/X11: on mesa, we lost vsync (see also bug 1640779), making the situation worse for users on non-60Hz displays, and nvidia most likely still doesn't work.

As an intermediate solution, lets just use the GLX features when on mesa while using pure EGL or software fallback otherwise, giving us the best experience possible in each scenario.

Proprietary Nvidia driver:
MOZ_X11_EGL=1 and EGL_KHR_swap_buffers_with_damage do work. And no borders are black.
Just don't mix GLX vsync with Nvidia EGL, use it only with Mesa EGL (=comment 0).
bug 1663152: "WebGL 2 requires support for the following features: get_integer64_indexed" is the one known problem so far.

This allows mesa to continue using the existing vsync implementation
and nvidia to use the new EGL xvisual logic.

It is an intermediate solution until the issues are fixed. However,
assuming it will take a while to do so, it's probably worth it.

Assignee: nobody → robert.mader
Status: NEW → ASSIGNED

MOZ_X11_EGL=1 and EGL_KHR_swap_buffers_with_damage do work. And no borders are black.

Ah, that's good to hear. I added xvisual selection to the patch anyway since we need testing :)

(walmartguy from bug 1640779 comment #24)

@Robert Mader, when you pursue the Nvidia EGL issue, would it be possible add an option that keeps the current vsync behavior for the time being, instead of the timer-based workaround? While there are things far from optimal under the hood, it works reasonably well for my single display AMD configuration, as it allows VAAPI playback and smooth 85Hz scrolling at the same time and the window content refresh issue doesn't seem to be a complete dealbreaker for this usage scenario. It'd feel really bad if this was sacrificed because of the Nvidia driver, even if it was just temporary. :(

I try to summarize:
It seems, on proprietary Nvidia GLX_SGI_video_sync can't be used together with EGL.
Before the fix in bug 1650583 comment 30, GLX_SGI_video_sync was used on GLX and EGL.
After bug 1650583 comment 30,

  • GLX_SGI_video_sync is only used on GLX. It regressed EGL Mesa for 85 Hz users due to switching to hardcoded 60 Hz (this bug). The regression would ship in 2 weeks and affect MOZ_X11_EGL users. comment 2 would allow to continue using GLX_SGI_video_sync on EGL Mesa until Firefox switches to (existing) EGL_CHROMIUM_sync_control on EGL Mesa.
  • using EGL for XVisual caused bug 1663003 on Mesa and proprietary Nvidia. @rmader: Could you make a try build of comment 2, just to be sure that it doesn't reintroduce bug 1663003 on proprietary Nvidia, otherwise keep current behavior on proprietary Nvidia?
Type: enhancement → defect
Keywords: regression
OS: Unspecified → Linux
Regressed by: 1650583
Hardware: Unspecified → x86_64
Summary: [WR/EGL/X11] Use GLX features on mesa → [WR/EGL/X11] Keep using GLX_SGI_video_sync on EGL Mesa until we switch to EGL_CHROMIUM_sync_control to avoid a regression for 85Hz users
Has Regression Range: --- → yes

(Please correct me if I made a wrong conclusion, I'm not a programmer.)

I don't want to be that guy, but maybe this could be an excuse to improve on a GLX fallback for older cards?

(I'm just a contributing user.) Regarding this bug it's rather offtopic. IIRC Proprietary Nvidia is not yet on the radar for hardware rendering, apart from tracking driver-related bugs. I assume Nvidia users with older proprietary drivers would anyway keep using software rendering by default. Nvidia users could manually choose between using Mesa (with vsync and partial present), GLX with the proprietary driver (benefits: vsync) or EGL with the proprietary driver (benefits: partial present). We should make Nvidia aware about the GLX pain points and EGL pain points. The fallback should be software rendering.

(In reply to mirh from comment #6)

I don't want to be that guy, but maybe this could be an excuse to improve on a GLX fallback for older cards?

We will certainly add a fallback before we switch the EGL backend on by default. Actually I think we'll need to be very conservative with that move, most likely starting with very recent mesa only. But at the moment I don't see any reason for doing so - activating the EGL backend requires actively setting an env var ATM.

Sure, cool. It was just seeming like you didn't want to care about them at all, going forward.

(In reply to Darkspirit, Servo QA from comment #7)

I assume Nvidia users with older proprietary drivers would anyway keep using software rendering by default.

If you are an user stuck with an older driver, you are also likely to be an user with an old pc that would benefit greatly from using that gpu.
(also, I'm not sure I can stress enough how really unusable mesa is on nvidia cards that aren't kepler)

Pushed by ncsoregi@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/d42dc1f995bb [WR/EGL/X11] Use GLX features on mesa. r=stransky

Backed out for gfx crashes

backout: https://hg.mozilla.org/integration/autoland/rev/6f829b8b14dcad96685a63dbb3ee6fb4aef2727c

push: https://treeherder.mozilla.org/#/jobs?repo=autoland&selectedTaskRun=a7sOwB9TTRyphpRrPgiexQ.0&group_state=expanded&searchStr=linux%2C18.04%2Cx64%2Cwebrender%2Cdebug%2Cxpcshell%2Ctests%2Ctest-linux1804-64-qr%2Fdebug-xpcshell-e10s%2Cx1&revision=d42dc1f995bb6bb9af4c991662ba4d5796e34691

failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=317976235&repo=autoland&lineNumber=2935

[task 2020-10-08T00:38:32.385Z] 00:38:32 WARNING - PROCESS-CRASH | toolkit/mozapps/extensions/test/xpcshell/rs-blocklist/test_gfxBlacklist_Device.js | application crashed [@ mozilla::StaticAutoPtr<mozilla::gfx::gfxVars>::operator->() const]
[task 2020-10-08T00:38:32.386Z] 00:38:32 INFO - Mozilla crash reason: MOZ_ASSERT(mRawPtr)
[task 2020-10-08T00:38:32.387Z] 00:38:32 INFO - Crash dump filename: /tmp/xpc-other-KwVvSM/2210cd0c-cd0e-c881-01e4-0e0e79497628.dmp
[task 2020-10-08T00:38:32.388Z] 00:38:32 INFO - Operating system: Linux
[task 2020-10-08T00:38:32.388Z] 00:38:32 INFO - 0.0.0 Linux 4.4.0-1014-aws #14taskcluster1-Ubuntu SMP Tue Apr 3 10:27:00 UTC 2018 x86_64
[task 2020-10-08T00:38:32.389Z] 00:38:32 INFO - CPU: amd64
[task 2020-10-08T00:38:32.389Z] 00:38:32 INFO - family 6 model 85 stepping 4
[task 2020-10-08T00:38:32.390Z] 00:38:32 INFO - 2 CPUs
[task 2020-10-08T00:38:32.391Z] 00:38:32 INFO - GPU: UNKNOWN
[task 2020-10-08T00:38:32.392Z] 00:38:32 INFO - Crash reason: SIGSEGV /SEGV_MAPERR
[task 2020-10-08T00:38:32.392Z] 00:38:32 INFO - Crash address: 0x0
[task 2020-10-08T00:38:32.393Z] 00:38:32 INFO - Process uptime: not available
[task 2020-10-08T00:38:32.394Z] 00:38:32 INFO - Thread 0 (crashed)
[task 2020-10-08T00:38:32.395Z] 00:38:32 INFO - 0 libxul.so!mozilla::StaticAutoPtr<mozilla::gfx::gfxVars>::operator->() const [StaticPtr.h:d42dc1f995bb6bb9af4c991662ba4d5796e34691 : 68 + 0x16]
[task 2020-10-08T00:38:32.395Z] 00:38:32 INFO - rax = 0x00007f98bb6d4584 rdx = 0x0000000000000000
[task 2020-10-08T00:38:32.396Z] 00:38:32 INFO - rcx = 0x0000564e55fa7a70 rbx = 0x00007ffcd2dbd3a0
[task 2020-10-08T00:38:32.397Z] 00:38:32 INFO - rsi = 0x00007f98b728a8b0 rdi = 0x00007f98b7289680
[task 2020-10-08T00:38:32.397Z] 00:38:32 INFO - rbp = 0x00007ffcd2dbd240 rsp = 0x00007ffcd2dbd240
[task 2020-10-08T00:38:32.398Z] 00:38:32 INFO - r8 = 0x00007f98b728a8b0 r9 = 0x00007f98c54219c0
[task 2020-10-08T00:38:32.399Z] 00:38:32 INFO - r10 = 0x0000000000000002 r11 = 0x0000000000000000
[task 2020-10-08T00:38:32.400Z] 00:38:32 INFO - r12 = 0x00007ffcd2dbd2a0 r13 = 0x00007f98bb7c6ef7
[task 2020-10-08T00:38:32.400Z] 00:38:32 INFO - r14 = 0x0000000000000000 r15 = 0x00007f98a9dfd430
[task 2020-10-08T00:38:32.401Z] 00:38:32 INFO - rip = 0x00007f98bef47638
[task 2020-10-08T00:38:32.402Z] 00:38:32 INFO - Found by: given as instruction pointer in context
[task 2020-10-08T00:38:32.402Z] 00:38:32 INFO - 1 libxul.so!mozilla::gfx::gfxVars::SetAllowGLXOnEGL(bool const&) [gfxVars.h:d42dc1f995bb6bb9af4c991662ba4d5796e34691 : 193 + 0x16]
[task 2020-10-08T00:38:32.403Z] 00:38:32 INFO - rbx = 0x00007ffcd2dbd3a0 rbp = 0x00007ffcd2dbd260
[task 2020-10-08T00:38:32.404Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbd250 r12 = 0x00007ffcd2dbd2a0
[task 2020-10-08T00:38:32.404Z] 00:38:32 INFO - r13 = 0x00007f98bb7c6ef7 r14 = 0x0000000000000000
[task 2020-10-08T00:38:32.405Z] 00:38:32 INFO - r15 = 0x00007f98a9dfd430 rip = 0x00007f98c1090e30
[task 2020-10-08T00:38:32.406Z] 00:38:32 INFO - Found by: call frame info
[task 2020-10-08T00:38:32.407Z] 00:38:32 INFO - 2 libxul.so!mozilla::widget::GfxInfo::GetData() [GfxInfoX11.cpp:d42dc1f995bb6bb9af4c991662ba4d5796e34691 : 255 + 0x8]
[task 2020-10-08T00:38:32.407Z] 00:38:32 INFO - rbx = 0x00007ffcd2dbd3a0 rbp = 0x00007ffcd2dbd980
[task 2020-10-08T00:38:32.408Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbd270 r12 = 0x00007ffcd2dbd2a0
[task 2020-10-08T00:38:32.409Z] 00:38:32 INFO - r13 = 0x00007f98bb7c6ef7 r14 = 0x0000000000000000
[task 2020-10-08T00:38:32.409Z] 00:38:32 INFO - r15 = 0x00007f98a9dfd430 rip = 0x00007f98c1090591
[task 2020-10-08T00:38:32.410Z] 00:38:32 INFO - Found by: call frame info
[task 2020-10-08T00:38:32.411Z] 00:38:32 INFO - 3 libxul.so!mozilla::widget::GfxInfo::SpoofVendorID(nsTSubstring<char16_t> const&) [GfxInfoX11.cpp:d42dc1f995bb6bb9af4c991662ba4d5796e34691 : 877 + 0x5]
[task 2020-10-08T00:38:32.412Z] 00:38:32 INFO - rbx = 0x00007ffcd2dbdab8 rbp = 0x00007ffcd2dbd9c0
[task 2020-10-08T00:38:32.412Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbd990 r12 = 0x00007f98a9dfd450
[task 2020-10-08T00:38:32.413Z] 00:38:32 INFO - r13 = 0x0000000000000003 r14 = 0x00007ffcd2dbda70
[task 2020-10-08T00:38:32.414Z] 00:38:32 INFO - r15 = 0x00007f98a9dfd430 rip = 0x00007f98c10922fb
[task 2020-10-08T00:38:32.414Z] 00:38:32 INFO - Found by: call frame info
[task 2020-10-08T00:38:32.415Z] 00:38:32 INFO - 4 libxul.so!{virtual override thunk({offset(-32)}, mozilla::widget::GfxInfo::SpoofVendorID(nsTSubstring<char16_t> const&))} + 0xd
[task 2020-10-08T00:38:32.416Z] 00:38:32 INFO - rbx = 0x0000000000000001 rbp = 0x00007ffcd2dbd9d0
[task 2020-10-08T00:38:32.416Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbd9d0 r12 = 0x00007f98a9dfd450
[task 2020-10-08T00:38:32.417Z] 00:38:32 INFO - r13 = 0x0000000000000003 r14 = 0x00007ffcd2dbda70
[task 2020-10-08T00:38:32.418Z] 00:38:32 INFO - r15 = 0x00007ffcd2dbda01 rip = 0x00007f98c1092369
[task 2020-10-08T00:38:32.419Z] 00:38:32 INFO - Found by: call frame info
[task 2020-10-08T00:38:32.419Z] 00:38:32 INFO - 5 libxul.so!NS_InvokeByIndex + 0x8e
[task 2020-10-08T00:38:32.420Z] 00:38:32 INFO - rbx = 0x0000000000000001 rbp = 0x00007ffcd2dbda00
[task 2020-10-08T00:38:32.421Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbd9e0 r12 = 0x00007f98a9dfd450
[task 2020-10-08T00:38:32.421Z] 00:38:32 INFO - r13 = 0x0000000000000003 r14 = 0x00007ffcd2dbda70
[task 2020-10-08T00:38:32.422Z] 00:38:32 INFO - r15 = 0x00007ffcd2dbda01 rip = 0x00007f98be30271e
[task 2020-10-08T00:38:32.423Z] 00:38:32 INFO - Found by: call frame info
[task 2020-10-08T00:38:32.423Z] 00:38:32 INFO - 6 libxul.so!CallMethodHelper::Call() [XPCWrappedNative.cpp:d42dc1f995bb6bb9af4c991662ba4d5796e34691 : 1176 + 0x18]
[task 2020-10-08T00:38:32.424Z] 00:38:32 INFO - rbx = 0x0000000000000001 rbp = 0x00007ffcd2dbda40
[task 2020-10-08T00:38:32.425Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbda10 r12 = 0x0000000000000000
[task 2020-10-08T00:38:32.426Z] 00:38:32 INFO - r13 = 0x0000000000000000 r14 = 0x00007ffcd2dbda70
[task 2020-10-08T00:38:32.426Z] 00:38:32 INFO - r15 = 0x00007ffcd2dbda01 rip = 0x00007f98bed2c5b4
[task 2020-10-08T00:38:32.427Z] 00:38:32 INFO - Found by: call frame info
[task 2020-10-08T00:38:32.428Z] 00:38:32 INFO - 7 libxul.so!XPCWrappedNative::CallMethod(XPCCallContext&, XPCWrappedNative::CallMode) [XPCWrappedNative.cpp:d42dc1f995bb6bb9af4c991662ba4d5796e34691 : 1142 + 0x8]
[task 2020-10-08T00:38:32.428Z] 00:38:32 INFO - rbx = 0x00007ffcd2dbdc38 rbp = 0x00007ffcd2dbdbb0
[task 2020-10-08T00:38:32.429Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbda50 r12 = 0x00007ffcd2dbdc10
[task 2020-10-08T00:38:32.430Z] 00:38:32 INFO - r13 = 0x00007f98c4badb78 r14 = 0x00007ffcd2dbda58
[task 2020-10-08T00:38:32.430Z] 00:38:32 INFO - r15 = 0x00007ffcd2dbda70 rip = 0x00007f98bed2c423
[task 2020-10-08T00:38:32.431Z] 00:38:32 INFO - Found by: call frame info
[task 2020-10-08T00:38:32.432Z] 00:38:32 INFO - 8 libxul.so!XPC_WN_CallMethod(JSContext*, unsigned int, JS::Value*) [XPCWrappedNativeJSOps.cpp:d42dc1f995bb6bb9af4c991662ba4d5796e34691 : 925 + 0x8]
[task 2020-10-08T00:38:32.432Z] 00:38:32 INFO - rbx = 0x00007ffcd2dbdc38 rbp = 0x00007ffcd2dbdd00
[task 2020-10-08T00:38:32.433Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbdbc0 r12 = 0x00007ffcd2dbdc10
[task 2020-10-08T00:38:32.433Z] 00:38:32 INFO - r13 = 0x00007f98c4badb78 r14 = 0x00007ffcd2dbdbd8
[task 2020-10-08T00:38:32.434Z] 00:38:32 INFO - r15 = 0x00007ffcd2dbdbf0 rip = 0x00007f98bed2d91d
[task 2020-10-08T00:38:32.434Z] 00:38:32 INFO - Found by: call frame info
[task 2020-10-08T00:38:32.434Z] 00:38:32 INFO - 9 libxul.so!CallJSNative(JSContext*, bool ()(JSContext, unsigned int, JS::Value*), js::CallReason, JS::CallArgs const&) [Interpreter.cpp:d42dc1f995bb6bb9af4c991662ba4d5796e34691 : 509 + 0x12]
[task 2020-10-08T00:38:32.435Z] 00:38:32 INFO - rbx = 0x00007f98a971d240 rbp = 0x00007ffcd2dbdd80
[task 2020-10-08T00:38:32.435Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbdd10 r12 = 0x00007f98a96efc00
[task 2020-10-08T00:38:32.436Z] 00:38:32 INFO - r13 = 0x00007ffcd2dbdfa0 r14 = 0x00007f98aa01c000
[task 2020-10-08T00:38:32.436Z] 00:38:32 INFO - r15 = 0x00007f98bed2d649 rip = 0x00007f98c237e332
[task 2020-10-08T00:38:32.436Z] 00:38:32 INFO - Found by: call frame info
[task 2020-10-08T00:38:32.437Z] 00:38:32 INFO - 10 libxul.so!js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) [Interpreter.cpp:d42dc1f995bb6bb9af4c991662ba4d5796e34691 : 601 + 0x12]
[task 2020-10-08T00:38:32.437Z] 00:38:32 INFO - rbx = 0xaaaaaaaaaaaaaaaa rbp = 0x00007ffcd2dbde30
[task 2020-10-08T00:38:32.438Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbdd90 r12 = 0x00007ffcd2dbdfa0
[task 2020-10-08T00:38:32.438Z] 00:38:32 INFO - r13 = 0x00007ffcd2dbddb0 r14 = 0x0000000000000000
[task 2020-10-08T00:38:32.439Z] 00:38:32 INFO - r15 = 0x00007f98bed2d649 rip = 0x00007f98c237da0c
[task 2020-10-08T00:38:32.439Z] 00:38:32 INFO - Found by: call frame info
[task 2020-10-08T00:38:32.439Z] 00:38:32 INFO - 11 libxul.so!InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) [Interpreter.cpp:d42dc1f995bb6bb9af4c991662ba4d5796e34691 : 666 + 0x10]
[task 2020-10-08T00:38:32.440Z] 00:38:32 INFO - rbx = 0x00007ffcd2dbdfa0 rbp = 0x00007ffcd2dbde80
[task 2020-10-08T00:38:32.440Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbde40 r12 = 0x00007f98a971d228
[task 2020-10-08T00:38:32.441Z] 00:38:32 INFO - r13 = 0xffff800000000000 r14 = 0x0000000000000000
[task 2020-10-08T00:38:32.441Z] 00:38:32 INFO - r15 = 0x00007f98aa01c000 rip = 0x00007f98c237f624
[task 2020-10-08T00:38:32.441Z] 00:38:32 INFO - Found by: call frame info
[task 2020-10-08T00:38:32.442Z] 00:38:32 INFO - 12 libxul.so!Interpret(JSContext*, js::RunState&) [Interpreter.cpp:d42dc1f995bb6bb9af4c991662ba4d5796e34691 : 3338 + 0x15]
[task 2020-10-08T00:38:32.442Z] 00:38:32 INFO - rbx = 0x00002f4460b91ab0 rbp = 0x00007ffcd2dbe3a0
[task 2020-10-08T00:38:32.442Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbde90 r12 = 0xfff9800000000000
[task 2020-10-08T00:38:32.443Z] 00:38:32 INFO - r13 = 0xffff800000000000 r14 = 0x00007ffcd2dbe260
[task 2020-10-08T00:38:32.443Z] 00:38:32 INFO - r15 = 0x00007f98c4ee3fb0 rip = 0x00007f98c2372d24
[task 2020-10-08T00:38:32.444Z] 00:38:32 INFO - Found by: call frame info
[task 2020-10-08T00:38:32.444Z] 00:38:32 INFO - 13 libxul.so!js::RunScript(JSContext*, js::RunState&) [Interpreter.cpp:d42dc1f995bb6bb9af4c991662ba4d5796e34691 : 470 + 0xb]
[task 2020-10-08T00:38:32.445Z] 00:38:32 INFO - rbx = 0x00007f98af154501 rbp = 0x00007ffcd2dbe3f0
[task 2020-10-08T00:38:32.445Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbe3b0 r12 = 0x00007f98aa01c000
[task 2020-10-08T00:38:32.446Z] 00:38:32 INFO - r13 = 0x00007f98a922f821 r14 = 0x00007ffcd2dbe440
[task 2020-10-08T00:38:32.446Z] 00:38:32 INFO - r15 = 0x0000000000000000 rip = 0x00007f98c236990e
[task 2020-10-08T00:38:32.447Z] 00:38:32 INFO - Found by: call frame info
[task 2020-10-08T00:38:32.447Z] 00:38:32 INFO - 14 libxul.so!js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) [Interpreter.cpp:d42dc1f995bb6bb9af4c991662ba4d5796e34691 : 638 + 0xd]
[task 2020-10-08T00:38:32.448Z] 00:38:32 INFO - rbx = 0xaaaaaaaaaaaaaaaa rbp = 0x00007ffcd2dbe4a0
[task 2020-10-08T00:38:32.448Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbe400 r12 = 0x00007ffcd2dbe5d8
[task 2020-10-08T00:38:32.449Z] 00:38:32 INFO - r13 = 0x00007ffcd2dbe420 r14 = 0x0000000000000000
[task 2020-10-08T00:38:32.449Z] 00:38:32 INFO - r15 = 0x0000000000000000 rip = 0x00007f98c237d9c6
[task 2020-10-08T00:38:32.450Z] 00:38:32 INFO - Found by: call frame info
[task 2020-10-08T00:38:32.450Z] 00:38:32 INFO - 15 libxul.so!InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) [Interpreter.cpp:d42dc1f995bb6bb9af4c991662ba4d5796e34691 : 666 + 0x10]
[task 2020-10-08T00:38:32.451Z] 00:38:32 INFO - rbx = 0x00007ffcd2dbe5d8 rbp = 0x00007ffcd2dbe4f0
[task 2020-10-08T00:38:32.451Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbe4b0 r12 = 0x00007ffcd2dbe920
[task 2020-10-08T00:38:32.451Z] 00:38:32 INFO - r13 = 0x0000000000000000 r14 = 0x0000000000000000
[task 2020-10-08T00:38:32.452Z] 00:38:32 INFO - r15 = 0x00007f98aa01c000 rip = 0x00007f98c237f624
[task 2020-10-08T00:38:32.453Z] 00:38:32 INFO - Found by: call frame info
[task 2020-10-08T00:38:32.453Z] 00:38:32 INFO - 16 libxul.so!js::jit::DoCallFallback(JSContext*, js::jit::BaselineFrame*, js::jit::ICCall_Fallback*, unsigned int, JS::Value*, JS::MutableHandle<JS::Value>) [BaselineIC.cpp:d42dc1f995bb6bb9af4c991662ba4d5796e34691 : 3030 + 0x13]
[task 2020-10-08T00:38:32.454Z] 00:38:32 INFO - rbx = 0x00007f98a93f7930 rbp = 0x00007ffcd2dbe8b0
[task 2020-10-08T00:38:32.454Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbe500 r12 = 0x00007ffcd2dbe5a0
[task 2020-10-08T00:38:32.454Z] 00:38:32 INFO - r13 = 0x0000000000000000 r14 = 0x00007ffcd2dbe900
[task 2020-10-08T00:38:32.455Z] 00:38:32 INFO - r15 = 0x0000000000000000 rip = 0x00007f98c2db7c78
[task 2020-10-08T00:38:32.455Z] 00:38:32 INFO - Found by: call frame info
[task 2020-10-08T00:38:32.456Z] 00:38:32 INFO - 17 0x99a2dd4e583
[task 2020-10-08T00:38:32.456Z] 00:38:32 INFO - rbx = 0x0000099a2dd7e670 rbp = 0x00007ffcd2dbe920
[task 2020-10-08T00:38:32.457Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbe8c0 r12 = 0x0000000000000008
[task 2020-10-08T00:38:32.457Z] 00:38:32 INFO - r13 = 0x00007f98a971d0a0 r14 = 0x00007f98a972224a
[task 2020-10-08T00:38:32.457Z] 00:38:32 INFO - r15 = 0x00007f98aa01c000 rip = 0x0000099a2dd4e583
[task 2020-10-08T00:38:32.458Z] 00:38:32 INFO - Found by: call frame info
[task 2020-10-08T00:38:32.458Z] 00:38:32 INFO - 18 0x7f98a93f4f78
[task 2020-10-08T00:38:32.461Z] 00:38:32 INFO - rbp = 0x00007ffcd2dbe9d8 rsp = 0x00007ffcd2dbe930
[task 2020-10-08T00:38:32.461Z] 00:38:32 INFO - rip = 0x00007f98a93f4f78
[task 2020-10-08T00:38:32.461Z] 00:38:32 INFO - Found by: previous frame's frame pointer
[task 2020-10-08T00:38:32.461Z] 00:38:32 INFO - 19 0x99a2dd43e54
[task 2020-10-08T00:38:32.462Z] 00:38:32 INFO - rbp = 0x00007ffcd2dbea40 rsp = 0x00007ffcd2dbe9e8
[task 2020-10-08T00:38:32.462Z] 00:38:32 INFO - rip = 0x0000099a2dd43e54
[task 2020-10-08T00:38:32.462Z] 00:38:32 INFO - Found by: previous frame's frame pointer
[task 2020-10-08T00:38:32.462Z] 00:38:32 INFO - 20 libxul.so!js::jit::EnterBaselineInterpreterAtBranch(JSContext*, js::InterpreterFrame*, unsigned char*) [BaselineJIT.cpp:d42dc1f995bb6bb9af4c991662ba4d5796e34691 : 218 + 0x314]
[task 2020-10-08T00:38:32.462Z] 00:38:32 INFO - rbp = 0x00007ffcd2dbedf0 rsp = 0x00007ffcd2dbea50
[task 2020-10-08T00:38:32.462Z] 00:38:32 INFO - rip = 0x00007f98c2f6d6bc
[task 2020-10-08T00:38:32.462Z] 00:38:32 INFO - Found by: previous frame's frame pointer
[task 2020-10-08T00:38:32.462Z] 00:38:32 INFO - 21 libxul.so!Interpret(JSContext*, js::RunState&) [Interpreter.cpp:d42dc1f995bb6bb9af4c991662ba4d5796e34691 : 2240 + 0x1a]
[task 2020-10-08T00:38:32.462Z] 00:38:32 INFO - rbx = 0xffffffffffffffbf rbp = 0x00007ffcd2dbf310
[task 2020-10-08T00:38:32.462Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbee00 r12 = 0xfff9800000000000
[task 2020-10-08T00:38:32.468Z] 00:38:32 INFO - r13 = 0xffff800000000000 r14 = 0x00007ffcd2dbf2c0
[task 2020-10-08T00:38:32.468Z] 00:38:32 INFO - r15 = 0x00007f98c4ee3f00 rip = 0x00007f98c236aa7c
[task 2020-10-08T00:38:32.468Z] 00:38:32 INFO - Found by: call frame info
[task 2020-10-08T00:38:32.469Z] 00:38:32 INFO - 22 libxul.so!js::RunScript(JSContext*, js::RunState&) [Interpreter.cpp:d42dc1f995bb6bb9af4c991662ba4d5796e34691 : 470 + 0xb]
[task 2020-10-08T00:38:32.469Z] 00:38:32 INFO - rbx = 0x00007f98af154500 rbp = 0x00007ffcd2dbf360
[task 2020-10-08T00:38:32.469Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbf320 r12 = 0x00007f98aa01c000
[task 2020-10-08T00:38:32.469Z] 00:38:32 INFO - r13 = 0x00007f98aa08db21 r14 = 0x00007ffcd2dbf380
[task 2020-10-08T00:38:32.469Z] 00:38:32 INFO - r15 = 0x0005b11e0cf8e8a4 rip = 0x00007f98c236990e
[task 2020-10-08T00:38:32.469Z] 00:38:32 INFO - Found by: call frame info
[task 2020-10-08T00:38:32.469Z] 00:38:32 INFO - 23 libxul.so!js::ExecuteKernel(JSContext*, JS::Handle<JSScript*>, JS::Handle<JSObject*>, JS::Handle<JS::Value>, js::AbstractFramePtr, JS::MutableHandle<JS::Value>) [Interpreter.cpp:d42dc1f995bb6bb9af4c991662ba4d5796e34691 : 858 + 0xb]
[task 2020-10-08T00:38:32.469Z] 00:38:32 INFO - rbx = 0x00007ffcd2dbf380 rbp = 0x00007ffcd2dbf420
[task 2020-10-08T00:38:32.470Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbf370 r12 = 0x00007f98bcb93278
[task 2020-10-08T00:38:32.470Z] 00:38:32 INFO - r13 = 0x00007ffcd2dbf3a0 r14 = 0x00007f98aa01c000
[task 2020-10-08T00:38:32.470Z] 00:38:32 INFO - r15 = 0x00007ffcd2dbf4a0 rip = 0x00007f98c2380bcc
[task 2020-10-08T00:38:32.470Z] 00:38:32 INFO - Found by: call frame info
[task 2020-10-08T00:38:32.470Z] 00:38:32 INFO - 24 libxul.so!js::Execute(JSContext*, JS::Handle<JSScript*>, JS::Handle<JSObject*>, JS::MutableHandle<JS::Value>) [Interpreter.cpp:d42dc1f995bb6bb9af4c991662ba4d5796e34691 : 890 + 0x1d]
[task 2020-10-08T00:38:32.470Z] 00:38:32 INFO - rbx = 0x00007f98aa01c000 rbp = 0x00007ffcd2dbf480
[task 2020-10-08T00:38:32.470Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbf430 r12 = 0x00007ffcd2dbf4a0
[task 2020-10-08T00:38:32.470Z] 00:38:32 INFO - r13 = 0x00007ffcd2dbf440 r14 = 0x0000000000000000
[task 2020-10-08T00:38:32.471Z] 00:38:32 INFO - r15 = 0x00007ffcd2dbf448 rip = 0x00007f98c238131d
[task 2020-10-08T00:38:32.471Z] 00:38:32 INFO - Found by: call frame info
[task 2020-10-08T00:38:32.471Z] 00:38:32 INFO - 25 libxul.so!JS::Evaluate(JSContext*, JS::ReadOnlyCompileOptions const&, JS::SourceText<mozilla::Utf8Unit>&, JS::MutableHandle<JS::Value>) [CompilationAndEvaluation.cpp:d42dc1f995bb6bb9af4c991662ba4d5796e34691 : 537 + 0x1e1]
[task 2020-10-08T00:38:32.471Z] 00:38:32 INFO - rbx = 0x00007f98aa01c000 rbp = 0x00007ffcd2dbf5d0
[task 2020-10-08T00:38:32.471Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbf490 r12 = 0x00007ffcd2dbf610
[task 2020-10-08T00:38:32.471Z] 00:38:32 INFO - r13 = 0x00007ffcd2dbf490 r14 = 0x00007ffcd2dbf6e0
[task 2020-10-08T00:38:32.471Z] 00:38:32 INFO - r15 = 0x00007ffcd2dbf4b0 rip = 0x00007f98c2551aa2
[task 2020-10-08T00:38:32.471Z] 00:38:32 INFO - Found by: call frame info
[task 2020-10-08T00:38:32.471Z] 00:38:32 INFO - 26 libxul.so!ProcessArgs(mozilla::dom::AutoJSAPI&, char**, int, XPCShellDirProvider*) [XPCShellImpl.cpp:d42dc1f995bb6bb9af4c991662ba4d5796e34691 : 960 + 0x17]
[task 2020-10-08T00:38:32.472Z] 00:38:32 INFO - rbx = 0x00007ffcd2dc0e54 rbp = 0x00007ffcd2dbf780
[task 2020-10-08T00:38:32.472Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbf5e0 r12 = 0x00007ffcd2dbf8f0
[task 2020-10-08T00:38:32.472Z] 00:38:32 INFO - r13 = 0x0000000000000000 r14 = 0x00007ffcd2dbf610
[task 2020-10-08T00:38:32.472Z] 00:38:32 INFO - r15 = 0x0000000000000016 rip = 0x00007f98bed1e70e
[task 2020-10-08T00:38:32.472Z] 00:38:32 INFO - Found by: call frame info
[task 2020-10-08T00:38:32.472Z] 00:38:32 INFO - 27 libxul.so!XRE_XPCShellMain(int, char**, char**, XREShellData const*) [XPCShellImpl.cpp:d42dc1f995bb6bb9af4c991662ba4d5796e34691 : 1346 + 0xe]
[task 2020-10-08T00:38:32.472Z] 00:38:32 INFO - rbx = 0x00007f98af14e4c0 rbp = 0x00007ffcd2dbfa70
[task 2020-10-08T00:38:32.472Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbf790 r12 = 0x00007ffcd2dbfbd0
[task 2020-10-08T00:38:32.472Z] 00:38:32 INFO - r13 = 0x0000000000000000 r14 = 0x0000000000000017
[task 2020-10-08T00:38:32.473Z] 00:38:32 INFO - r15 = 0x00007ffcd2dbf8f0 rip = 0x00007f98bed1d20e
[task 2020-10-08T00:38:32.473Z] 00:38:32 INFO - Found by: call frame info
[task 2020-10-08T00:38:32.473Z] 00:38:32 INFO - 28 xpcshell!main [xpcshell.cpp:d42dc1f995bb6bb9af4c991662ba4d5796e34691 : 66 + 0x14]
[task 2020-10-08T00:38:32.473Z] 00:38:32 INFO - rbx = 0x00007ffcd2dbfa88 rbp = 0x00007ffcd2dbfac0
[task 2020-10-08T00:38:32.473Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbfa80 r12 = 0x0000564e55f07fd0
[task 2020-10-08T00:38:32.473Z] 00:38:32 INFO - r13 = 0x00007ffcd2dbfba0 r14 = 0x00007f98af13ec00
[task 2020-10-08T00:38:32.473Z] 00:38:32 INFO - r15 = 0x0000000000000000 rip = 0x0000564e55f08153
[task 2020-10-08T00:38:32.473Z] 00:38:32 INFO - Found by: call frame info
[task 2020-10-08T00:38:32.474Z] 00:38:32 INFO - 29 libc.so.6 + 0x21b97
[task 2020-10-08T00:38:32.474Z] 00:38:32 INFO - rbx = 0x0000000000000000 rbp = 0x0000564e55fa2700
[task 2020-10-08T00:38:32.474Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbfad0 r12 = 0x0000564e55f07fd0
[task 2020-10-08T00:38:32.474Z] 00:38:32 INFO - r13 = 0x00007ffcd2dbfba0 r14 = 0x0000000000000000
[task 2020-10-08T00:38:32.474Z] 00:38:32 INFO - r15 = 0x0000000000000000 rip = 0x00007f98b6ebeb97
[task 2020-10-08T00:38:32.474Z] 00:38:32 INFO - Found by: call frame info
[task 2020-10-08T00:38:32.474Z] 00:38:32 INFO - 30 xpcshell!frame_dummy + 0xc
[task 2020-10-08T00:38:32.474Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbfaf0 rip = 0x0000564e55f080dc
[task 2020-10-08T00:38:32.474Z] 00:38:32 INFO - Found by: stack scanning
[task 2020-10-08T00:38:32.475Z] 00:38:32 INFO - 31 xpcshell + 0x42fd0
[task 2020-10-08T00:38:32.475Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbfb08 rip = 0x0000564e55f07fd0
[task 2020-10-08T00:38:32.475Z] 00:38:32 INFO - Found by: stack scanning
[task 2020-10-08T00:38:32.475Z] 00:38:32 INFO - 32 ld-linux-x86-64.so.2 + 0x10783
[task 2020-10-08T00:38:32.475Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbfb50 rip = 0x00007f98c53d4783
[task 2020-10-08T00:38:32.475Z] 00:38:32 INFO - Found by: stack scanning
[task 2020-10-08T00:38:32.475Z] 00:38:32 INFO - 33 libpthread.so.0 + 0x219bb0
[task 2020-10-08T00:38:32.475Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbfb60 rip = 0x00007f98c53bebb0
[task 2020-10-08T00:38:32.476Z] 00:38:32 INFO - Found by: stack scanning
[task 2020-10-08T00:38:32.476Z] 00:38:32 INFO - 34 xpcshell + 0x42fd0
[task 2020-10-08T00:38:32.476Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbfb80 rip = 0x0000564e55f07fd0
[task 2020-10-08T00:38:32.476Z] 00:38:32 INFO - Found by: stack scanning
[task 2020-10-08T00:38:32.476Z] 00:38:32 INFO - 35 xpcshell!_start + 0x29
[task 2020-10-08T00:38:32.476Z] 00:38:32 INFO - rsp = 0x00007ffcd2dbfb90 rip = 0x0000564e55f07ff9
[task 2020-10-08T00:38:32.476Z] 00:38:32 INFO - Found by: stack scanning

Flags: needinfo?(robert.mader)

I'm actually really confused about this one - don't see why this would happen. Push a try job the the patch rebased: https://treeherder.mozilla.org/#/jobs?repo=try&revision=936dc2705e656aeadce488dd78bda9e54e5a7015

Flags: needinfo?(robert.mader)

It's a crash at gfx::gfxVars::SetAllowGLXOnEGL(true) when the preference does not exists.

See https://searchfox.org/mozilla-central/source/gfx/config/gfxVars.h#192
sInstance is null so the gfxVars are not created on process where you try to set it.

See possible explanation at:
https://searchfox.org/mozilla-central/rev/919607a3610222099fbfb0113c98b77888ebcbfb/gfx/config/gfxVars.h#86

Ah thanks, that makes sense.

The try run above run the wrong build. The following should contain the right one: https://treeherder.mozilla.org/#/jobs?repo=try&revision=f28da8fe05adb1a57c47afe8ea9a98a43cc63851 (expected to fail)

I updated the patch to ensure the gfxVars are initialized. Try run: https://treeherder.mozilla.org/#/jobs?repo=try&revision=3ba5b2e24d0a53d717ec32f85a3bc49e6383e5fc (expected to pass)

Attachment #9179667 - Attachment description: Bug 1669275 - [WR/EGL/X11] Use GLX features on mesa. r?stransky → Bug 1669275 - [WR/EGL/X11] Use GLX features on mesa. r=stransky

so hmm, how's the current status with this?

Was busy with other stuff but now targeting 85 as discussed in bug 1675768

Attachment #9179667 - Attachment description: Bug 1669275 - [WR/EGL/X11] Use GLX features on mesa. r=stransky → Bug 1669275 - [WR/EGL/X11] Use GLX vsyncsource on mesa. r=stransky
Pushed by cbrindusan@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/20a6e3ad662f [WR/EGL/X11] Use GLX vsyncsource on mesa. r=stransky
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 85 Branch

The patch landed in nightly and beta is affected.
:rmader, is this bug important enough to require an uplift?
If not please set status_beta to wontfix.

For more information, please visit auto_nag documentation.

Flags: needinfo?(robert.mader)

Works as expected for me, thanks @Robert.

Flags: needinfo?(robert.mader)

EGL backend is not on by default. While I'd like to have it in beta for affected users, I'd assume it would get denied anyway, so no uplift request.

One thing I've noticed: With the EGL backend on Xorg, WebGL used to have smooth hardware vsync too. However, since its return in 85 beta, it seems to be synthetic 60fps timer instead and thus e.g. this site looks choppy when panning the camera with e.g. 75Hz (unlike scrolling on non-WebGL sites in general):
http://mirrorsedge.dice.se/

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: