Open Bug 1750348 Opened 2 years ago Updated 2 years ago

Crash (with compositor enabled)while scrolling/zooming a mozilla SVG, though no crash is generated in about:crashes

Categories

(Core :: Graphics: WebRender, defect, P3)

x86_64
Windows 11
defect

Tracking

()

Tracking Status
firefox98 --- wontfix
firefox99 --- wontfix
firefox100 --- wontfix

People

(Reporter: mayankleoboy1, Unassigned)

References

(Blocks 1 open bug, )

Details

(Keywords: crash, regression, regressionwindow-wanted)

Attachments

(4 files, 2 obsolete files)

open https://static.mozilla.com/moco/en-US/images/mozilla_eoy_2013_EN.svg
pinch to zoom till the maximum limit
Scroll the SVG vertically downward and upward using the touchpad

AR: Nightly flashes, and then falls back to sw-wr. Though no crash is generated in about:crashes.

Failure Log
(#0) Error Fallback WR to SW-WR + D3D11
(#1) GP+[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057
(#2) GP+[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057
(#3) GP+[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057
(#4) GP+[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057

Attached file aboutsupport

Please try to find a regression range.

Blocks: wr-stability
Type: enhancement → defect
OS: Unspecified → Windows 11
Hardware: Unspecified → x86_64

I cant get a reliable regression range, but i am happy to run a build with extra logging, or which will generate a crash report.

I wasn't able to reproduce on mac or windows.

Attached video bandicam 2022-01-18 08-37-31-576.mp4 (obsolete) —

Comment on attachment 9259460 [details]
bandicam 2022-01-18 08-37-31-576.mp4

Deleted

Attachment #9259460 - Attachment is obsolete: true
Attached video bandicam 2022-01-18 08-43-57-642.avi (obsolete) —
Attachment #9259461 - Attachment is obsolete: true

There is no crash if I set gfx.webrender.compositor to False.
(Edit: you might also need 150% DPI scaling)

Summary: Crash while scrolling/zooming a mozilla SVG, though no crash is generated in about:crashes → Crash (with compositor enabled)while scrolling/zooming a mozilla SVG, though no crash is generated in about:crashes

Verified that I had those settings and still couldn't reproduce. Based on that I suspect it could be something to do with your specific gpu?

Maybe. I am more surprised why a crash report is not generated. Maybe if there was a crash report, we could diagnose this better, and tell if this bug affects larger number of users.

Bug 1620147 is similar bug.

See Also: → 1620147
Depends on: 1750891

GFX error log from nightly with bug 1750891 applied :

Failure Log
(#0): GP+[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=526336, y=534016, w=0, h=0)
(#1) Error: Fallback WR to SW-WR + D3D11
(#2): GP+[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=525312, y=534016, w=0, h=0)
(#3): GP+[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=524288, y=534016, w=0, h=0)=0, h=0)

Another instance:

Failure Log
(#0) GP+[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=527360, y=544256, w=0, h=0)
(#1) Error Fallback WR to SW-WR + D3D11
(#2) GP+[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=526336, y=544256, w=0, h=0)
(#3) GP+[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=525312, y=544256, w=0, h=0)

It seems that tile size was wrong.

:gw, do you have any ideas why update rect size became 0?

Flags: needinfo?(gwatson)

What has happened is that WR has told DC it needs to update (render) to part of a tile, but the region it's provided is a 0x0 rect. In theory, this should never happen, but it clearly is - so there must be a logic bug somewhere in WR to cause this.

We could handle this in the compositor interface and skip passing 0x0 update rectangles to DC to avoid the assert, but this is just covering over a bug without finding the root cause.

Ideally, we want to find out what the root cause is in WR, since it may cause other performance / correctness issues.

Unfortunately, I wasn't able to reproduce this on my Windows machines either. Due to the size of the viewport (> 512k) it's around about the point where the virtual surface size logic occurs, and also where potential float accuracy / rounding issues might be causing problems. It's probably related to one of those things.

To reproduce it, it may depend on a combination of factors related to the display resolution, DPI etc. I tried various DPI scaling and resolution settings, but wasn't able to reproduce. The about:support from the original report has a resolution of 2240x1400@60Hz which is not something that either of my displays seem to be able to select, which might explain why I can't reproduce it.

Mayank, would you be able to try under some different resolutions and/or DPI scales on your local machine, and report back if that affects whether you can reproduce it?

Flags: needinfo?(gwatson) → needinfo?(mayankleoboy1)

I have been trying to find if the STR repros on other DPI or resolutions, but havent been able to repro it apart from the very specific DPI/resolution of my current setup.
This is worse because the testcase repros only about 60% of the time.. thats why i couldnt get a reliable regression too.

Flags: needinfo?(mayankleoboy1) → needinfo?(gwatson)

Thanks for checking. I guess that will help explain why we've been unable to reproduce locally, at least.

Jeff, Sotaro, do either of you have a setup that can output 2240x1400@60Hz and see if you can repro locally?

Flags: needinfo?(sotaro.ikeda.g)
Flags: needinfo?(jmuizelaar)
Flags: needinfo?(gwatson)

I am happy to run a build with extra logging or if you can guide me, take a stab at using debugger on windows

(In reply to Mayank Bansal from comment #19)

I am happy to run a build with extra logging or if you can guide me, take a stab at using debugger on windows

Thanks. I'll try to put up a build with some more logging tomorrow and link it here.

It's going to be tricky to do this remotely, as it's probably a subtle issue. But, to start, I added a build in this try run with a bit of extra logging:

https://treeherder.mozilla.org/jobs?repo=try&revision=725084b363a928576002a7641036fac5ea37f366

The build can be found under Artifacts for the B task (direct link is https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/Bov1RqpST8WcYSec93-zOA/runs/0/artifacts/public/build/target.zip).

The first step will be to get this running and see if you get log output when the bug occurs. On Windows, it can be tricky due to sandboxing, stderr redirecting etc. Let's try running it from a mozilla-build command shell. You'll need to install from https://wiki.mozilla.org/MozillaBuild. Then, from that command prompt, try:

firefox.exe | tee

And let's see if you get any logs about dirty / valid rects when the bug occurs?

I couldnt get moz-build to work.
But i tried to use the Mozreggression-gui tool, and it seemed to work. Here is the output I got from your try build:


2022-01-26T10:01:19.608000: INFO : platform_changeset: 725084b363a928576002a7641036fac5ea37f366
2022-01-26T10:01:19.608000: INFO : platform_repository: https://hg.mozilla.org/try
2022-01-26T10:01:19.608000: INFO : platform_version: 98.0a1
2022-01-26T10:02:32.701000: INFO : b'[Parent 15664, IPC I/O Parent] WARNING: file /builds/worker/checkouts/gecko/ipc/chromium/src/base/process_util_win.cc:167'
2022-01-26T10:02:32.703000: INFO : b'[Parent 15664, IPC I/O Parent] WARNING: file /builds/worker/checkouts/gecko/ipc/chromium/src/base/process_util_win.cc:167'
2022-01-26T10:02:32.705000: INFO : b'[Parent 15664, IPC I/O Parent] WARNING: file /builds/worker/checkouts/gecko/ipc/chromium/src/base/process_util_win.cc:167'
2022-01-26T10:03:44.622000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-26T10:03:44.622000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-26T10:03:44.622000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-26T10:03:44.622000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=525312, y=544256, w=0, h=0)'
2022-01-26T10:03:44.622000: INFO : b'[GFX1-]: Fallback WR to SW-WR + D3D11'
2022-01-26T10:03:44.638000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=524288, y=544256, w=0, h=0)'
2022-01-26T10:03:44.638000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=526336, y=544256, w=0, h=0)'


Is this output what you were expecting?

Flags: needinfo?(gwatson)

and another:

2022-01-26T10:11:57.309000: INFO : platform_changeset: 725084b363a928576002a7641036fac5ea37f366
2022-01-26T10:11:57.309000: INFO : platform_repository: https://hg.mozilla.org/try
2022-01-26T10:11:57.309000: INFO : platform_version: 98.0a1
2022-01-26T10:13:04.848000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-26T10:13:04.848000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-26T10:13:04.848000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-26T10:13:04.863000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=526336, y=546816, w=0, h=0)'
2022-01-26T10:13:04.863000: INFO : b'[GFX1-]: Fallback WR to SW-WR + D3D11'
2022-01-26T10:13:04.863000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=524288, y=546816, w=0, h=0)'
2022-01-26T10:13:04.863000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=525312, y=546816, w=0, h=0)'


2022-01-26T16:30:15.581000: INFO : application_buildid: 20220124205317
2022-01-26T16:30:15.581000: INFO : application_changeset: 725084b363a928576002a7641036fac5ea37f366
2022-01-26T16:30:15.581000: INFO : application_display_name: Firefox Nightly
2022-01-26T16:30:15.581000: INFO : application_id: {ec8030f7-c20a-464f-9b0e-13a3a9e97384}
2022-01-26T16:30:15.581000: INFO : application_name: Firefox
2022-01-26T16:30:15.581000: INFO : application_remotingname: firefox
2022-01-26T16:30:15.581000: INFO : application_repository: https://hg.mozilla.org/try
2022-01-26T16:30:15.581000: INFO : application_vendor: Mozilla
2022-01-26T16:30:15.581000: INFO : application_version: 98.0a1
2022-01-26T16:30:15.581000: INFO : platform_buildid: 20220124205317
2022-01-26T16:30:15.581000: INFO : platform_changeset: 725084b363a928576002a7641036fac5ea37f366
2022-01-26T16:30:15.581000: INFO : platform_repository: https://hg.mozilla.org/try
2022-01-26T16:30:15.581000: INFO : platform_version: 98.0a1
2022-01-26T16:31:05.813000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-26T16:31:05.813000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-26T16:31:05.813000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-26T16:31:05.813000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=526336, y=534016, w=0, h=0)'
2022-01-26T16:31:05.813000: INFO : b'[GFX1-]: Fallback WR to SW-WR + D3D11'
2022-01-26T16:31:05.828000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=525312, y=534016, w=0, h=0)'
2022-01-26T16:31:05.828000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=524288, y=534016, w=0, h=0)'
2022-01-26T16:31:24.811000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-26T16:31:24.811000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-26T16:31:24.811000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-26T16:31:28.542000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-26T16:31:28.542000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-26T16:31:28.542000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-26T16:31:40.723000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-26T16:31:40.723000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-26T16:31:40.723000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-26T16:31:41.852000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-26T16:31:41.852000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-26T16:31:41.852000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-26T16:32:19.485000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-26T16:32:19.485000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-26T16:32:19.485000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'

I also found the same output at 125% DPI adn 1080P resolution. However the browser didnt crash.

2022-01-26T16:34:32.917000: INFO : platform_buildid: 20220124205317
2022-01-26T16:34:32.917000: INFO : platform_changeset: 725084b363a928576002a7641036fac5ea37f366
2022-01-26T16:34:32.917000: INFO : platform_repository: https://hg.mozilla.org/try
2022-01-26T16:34:32.917000: INFO : platform_version: 98.0a1
2022-01-26T16:36:13.616000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-26T16:36:13.616000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'

Attached image reduced.svg

somewhat reduced testcase

Yes, that's the logging we want to see, great!

It's not too surprising that it doesn't crash in some cases - that logging is quite early in the frame. There is WR code that detects empty tiles and skips them before passing them to the compositor, normally.

The trick now will be to find out how those empty tiles still get added to the compositor surface in some cases.

I'll try to put up another build later today with some more logging.

Flags: needinfo?(gwatson)

New try run added https://treeherder.mozilla.org/jobs?repo=try&revision=2d180cf9b858de74f8060428fb96adb2e1d210c9 - has a little bit of extra logging (I only just kicked off the try, will take an hour or so before the build artifact is available).

Flags: needinfo?(mayankleoboy1)

2022-01-31T12:21:24.340000: INFO : Running try build built on 2022-01-31 05:41:36.134000, revision 2d180cf9
2022-01-31T12:21:25.312000: INFO : Launching C:\Users\mayan\AppData\Local\Temp\tmp8sz9c0qz\firefox\firefox.exe
2022-01-31T12:21:25.312000: INFO : Application command: C:\Users\mayan\AppData\Local\Temp\tmp8sz9c0qz\firefox\firefox.exe --wait-for-browser -profile C:\Users\mayan\AppData\Local\Temp\tmp_12t3jsn.mozrunner
2022-01-31T12:21:25.611000: INFO : application_buildid: 20220131035129
2022-01-31T12:21:25.611000: INFO : application_changeset: 2d180cf9b858de74f8060428fb96adb2e1d210c9
2022-01-31T12:21:25.611000: INFO : application_display_name: Firefox Nightly
2022-01-31T12:21:25.611000: INFO : application_id: {ec8030f7-c20a-464f-9b0e-13a3a9e97384}
2022-01-31T12:21:25.611000: INFO : application_name: Firefox
2022-01-31T12:21:25.611000: INFO : application_remotingname: firefox
2022-01-31T12:21:25.611000: INFO : application_repository: https://hg.mozilla.org/try
2022-01-31T12:21:25.611000: INFO : application_vendor: Mozilla
2022-01-31T12:21:25.611000: INFO : application_version: 98.0a1
2022-01-31T12:21:25.611000: INFO : platform_buildid: 20220131035129
2022-01-31T12:21:25.611000: INFO : platform_changeset: 2d180cf9b858de74f8060428fb96adb2e1d210c9
2022-01-31T12:21:25.611000: INFO : platform_repository: https://hg.mozilla.org/try
2022-01-31T12:21:25.611000: INFO : platform_version: 98.0a1
2022-01-31T12:21:28.140000: INFO : b'[Parent 10392, IPC I/O Parent] WARNING: file /builds/worker/checkouts/gecko/ipc/chromium/src/base/process_util_win.cc:167'
2022-01-31T12:24:26.373000: INFO : b'log2: Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-31T12:24:26.373000: INFO : b'log2: Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-31T12:24:26.389000: INFO : b'log2: Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-31T12:24:26.389000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-31T12:24:26.389000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-31T12:24:26.391000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-31T12:24:26.391000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=524288, y=536576, w=0, h=0)'
2022-01-31T12:24:26.391000: INFO : b'[GFX1-]: Fallback WR to SW-WR + D3D11'
2022-01-31T12:24:26.405000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=525312, y=536576, w=0, h=0)'
2022-01-31T12:24:26.405000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=526336, y=536576, w=0, h=0)'

Flags: needinfo?(mayankleoboy1) → needinfo?(gwatson)

2022-01-31T12:29:30.257000: INFO : Running try build built on 2022-01-31 05:41:36.134000, revision 2d180cf9
2022-01-31T12:29:31.230000: INFO : Launching C:\Users\mayan\AppData\Local\Temp\tmpwdy_e71f\firefox\firefox.exe
2022-01-31T12:29:31.230000: INFO : Application command: C:\Users\mayan\AppData\Local\Temp\tmpwdy_e71f\firefox\firefox.exe --wait-for-browser -profile C:\Users\mayan\AppData\Local\Temp\tmp7z2z4zto.mozrunner
2022-01-31T12:29:31.309000: INFO : application_buildid: 20220131035129
2022-01-31T12:29:31.309000: INFO : application_changeset: 2d180cf9b858de74f8060428fb96adb2e1d210c9
2022-01-31T12:29:31.309000: INFO : application_display_name: Firefox Nightly
2022-01-31T12:29:31.309000: INFO : application_id: {ec8030f7-c20a-464f-9b0e-13a3a9e97384}
2022-01-31T12:29:31.309000: INFO : application_name: Firefox
2022-01-31T12:29:31.309000: INFO : application_remotingname: firefox
2022-01-31T12:29:31.309000: INFO : application_repository: https://hg.mozilla.org/try
2022-01-31T12:29:31.309000: INFO : application_vendor: Mozilla
2022-01-31T12:29:31.309000: INFO : application_version: 98.0a1
2022-01-31T12:29:31.309000: INFO : platform_buildid: 20220131035129
2022-01-31T12:29:31.309000: INFO : platform_changeset: 2d180cf9b858de74f8060428fb96adb2e1d210c9
2022-01-31T12:29:31.309000: INFO : platform_repository: https://hg.mozilla.org/try
2022-01-31T12:29:31.309000: INFO : platform_version: 98.0a1
2022-01-31T12:29:33.161000: INFO : b'[Parent 14236, IPC I/O Parent] WARNING: file /builds/worker/checkouts/gecko/ipc/chromium/src/base/process_util_win.cc:167'
2022-01-31T12:30:21.545000: INFO : b'log2: Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-31T12:30:21.545000: INFO : b'log2: Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-31T12:30:21.545000: INFO : b'log2: Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-31T12:30:21.545000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-31T12:30:21.545000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-31T12:30:21.545000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-01-31T12:30:21.545000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=526336, y=531456, w=0, h=0)'
2022-01-31T12:30:21.545000: INFO : b'[GFX1-]: Fallback WR to SW-WR + D3D11'
2022-01-31T12:30:21.561000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=525312, y=531456, w=0, h=0)'
2022-01-31T12:30:21.561000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=524288, y=531456, w=0, h=0)'

A new build with a little more information. This should tell me if the prim count is empty, or if the local rects -> device rect conversion is causing the problem.

https://treeherder.mozilla.org/jobs?repo=try&revision=e53a2e5926307bbb34df4d15a6a79f06e6a2edd4

Flags: needinfo?(gwatson)

2022-02-01T07:45:39.025000: INFO : platform_buildid: 20220131233714
2022-02-01T07:45:39.025000: INFO : platform_changeset: e53a2e5926307bbb34df4d15a6a79f06e6a2edd4
2022-02-01T07:45:39.025000: INFO : platform_repository: https://hg.mozilla.org/try
2022-02-01T07:46:24.055000: INFO : b'log2: Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0)) ld=Rect(153.6x0.00024414063 at (307.2, 1535.9999)) lt=Rect(153.6x76.80005 at (307.2, 1459.2001)) p=1'
2022-02-01T07:46:24.055000: INFO : b'log2: Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0)) ld=Rect(153.6x0.00024414063 at (153.6, 1535.9999)) lt=Rect(153.6x76.80005 at (153.6, 1459.2001)) p=1'
2022-02-01T07:46:24.055000: INFO : b'log2: Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0)) ld=Rect(153.6x0.00024414063 at (0.0, 1535.9999)) lt=Rect(153.6x76.80005 at (0.0, 1459.2001)) p=1'
2022-02-01T07:46:24.055000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-02-01T07:46:24.055000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-02-01T07:46:24.055000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-02-01T07:46:24.055000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=526336, y=534016, w=0, h=0)'
2022-02-01T07:46:24.070000: INFO : b'[GFX1-]: Fallback WR to SW-WR + D3D11'
2022-02-01T07:46:24.070000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=525312, y=534016, w=0, h=0)'
2022-02-01T07:46:24.070000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=524288, y=534016, w=0, h=0)'


2022-02-01T07:49:50.201000: INFO : platform_buildid: 20220131233714
2022-02-01T07:49:50.201000: INFO : platform_changeset: e53a2e5926307bbb34df4d15a6a79f06e6a2edd4
2022-02-01T07:50:46.593000: INFO : b'log2: Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0)) ld=Rect(153.6x0.00048828125 at (153.6, 2687.9998)) lt=Rect(153.6x76.80005 at (153.6, 2611.2002)) p=1'
2022-02-01T07:50:46.593000: INFO : b'log2: Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0)) ld=Rect(153.6x0.00048828125 at (0.0, 2687.9998)) lt=Rect(153.6x76.80005 at (0.0, 2611.2002)) p=1'
2022-02-01T07:50:46.593000: INFO : b'log2: Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0)) ld=Rect(153.6x0.00048828125 at (307.2, 2687.9998)) lt=Rect(153.6x76.80005 at (307.2, 2611.2002)) p=1'
2022-02-01T07:50:46.593000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-02-01T07:50:46.609000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-02-01T07:50:46.609000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-02-01T07:50:46.609000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=525312, y=541696, w=0, h=0)'
2022-02-01T07:50:46.609000: INFO : b'[GFX1-]: Fallback WR to SW-WR + D3D11'
2022-02-01T07:50:46.625000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=524288, y=541696, w=0, h=0)'
2022-02-01T07:50:46.625000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=526336, y=541696, w=0, h=0)'

Flags: needinfo?(gwatson)

Ah, this piece is interesting:

2022-02-01T07:50:46.593000: INFO : b'log2: Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0)) ld=Rect(153.6x0.00048828125 at (153.6, 2687.9998)) lt=Rect(153.6x76.80005 at (153.6, 2611.2002)) p=1'

Specifically, there is a dirty rect with a height of 0.00048828125 that contains a single primitive - so there is a tile with a tiny fraction of a pixel that is affected by the primitive. This is probably getting rounded incorrectly somewhere to be 0 height, even though it should really be rounded out to 1 pixel.

I'll try add another build with more detail this afternoon or tomorrow morning.

Flags: needinfo?(gwatson)

Next build is https://treeherder.mozilla.org/jobs?repo=try&revision=3f4d9474fe9a57b40ac73bd265e0342b6b2005e8 - this should log out all the inputs to get_surface_rect which should allow us to see how it's ending up with a zero-sized tile.

Flags: needinfo?(mayankleoboy1)

2022-02-02T09:29:55.326000: INFO : application_version: 98.0a1
2022-02-02T09:29:55.326000: INFO : platform_buildid: 20220202022308
2022-02-02T09:29:55.326000: INFO : platform_changeset: 3f4d9474fe9a57b40ac73bd265e0342b6b2005e8
2022-02-02T09:29:55.326000: INFO : platform_repository: https://hg.mozilla.org/try
2022-02-02T09:29:55.326000: INFO : platform_version: 98.0a1
2022-02-02T09:29:58.966000: INFO : b'[Parent 24556, IPC I/O Parent] WARNING: file /builds/worker/checkouts/gecko/ipc/chromium/src/base/process_util_win.cc:167'
2022-02-02T09:30:33.168000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-02T09:30:33.168000: INFO : b'\tlb = Box2D((307.2, 1075.2001), (460.80002, 1152.0001))'
2022-02-02T09:30:33.183000: INFO : b'\tls = Box2D((307.2, 1152.0), (460.80002, 1152.0001))'
2022-02-02T09:30:33.183000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, 41315.664) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (0.0, -7291.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, -7291.0) } }'
2022-02-02T09:30:33.183000: INFO : b'\tsb = Box2D((2048.0, 48483.664), (3072.0, 48995.664))'
2022-02-02T09:30:33.188000: INFO : b'\tsr = Box2D((2048.0, 48995.664), (3072.0, 48995.664))'
2022-02-02T09:30:33.188000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-02T09:30:33.188000: INFO : b'\tlb = Box2D((307.2, 1075.2001), (460.80002, 1152.0001))'
2022-02-02T09:30:33.188000: INFO : b'\tls = Box2D((307.2, 1152.0), (460.80002, 1152.0001))'
2022-02-02T09:30:33.188000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, 41315.664) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (0.0, -7291.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, -7291.0) } }'
2022-02-02T09:30:33.188000: INFO : b'\tsb = Box2D((2048.0, 48483.664), (3072.0, 48995.664))'
2022-02-02T09:30:33.188000: INFO : b'\tsr = Box2D((2048.0, 48995.664), (3072.0, 48995.664))'
2022-02-02T09:30:33.188000: INFO : b'log2: Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0)) ld=Rect(153.6x0.00012207031 at (307.2, 1152.0)) lt=Rect(153.6x76.80005 at (307.2, 1075.2001)) p=1'
2022-02-02T09:30:33.188000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-02T09:30:33.188000: INFO : b'\tlb = Box2D((153.6, 1075.2001), (307.2, 1152.0001))'
2022-02-02T09:30:33.188000: INFO : b'\tls = Box2D((153.6, 1152.0), (307.2, 1152.0001))'
2022-02-02T09:30:33.188000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, 41315.664) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (0.0, -7291.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, -7291.0) } }'
2022-02-02T09:30:33.188000: INFO : b'\tsb = Box2D((1024.0, 48483.664), (2048.0, 48995.664))'
2022-02-02T09:30:33.188000: INFO : b'\tsr = Box2D((1024.0, 48995.664), (2048.0, 48995.664))'
2022-02-02T09:30:33.199000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-02T09:30:33.199000: INFO : b'\tlb = Box2D((153.6, 1075.2001), (307.2, 1152.0001))'
2022-02-02T09:30:33.199000: INFO : b'\tls = Box2D((153.6, 1152.0), (307.2, 1152.0001))'
2022-02-02T09:30:33.199000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, 41315.664) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (0.0, -7291.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, -7291.0) } }'
2022-02-02T09:30:33.199000: INFO : b'\tsb = Box2D((1024.0, 48483.664), (2048.0, 48995.664))'
2022-02-02T09:30:33.199000: INFO : b'\tsr = Box2D((1024.0, 48995.664), (2048.0, 48995.664))'
2022-02-02T09:30:33.199000: INFO : b'log2: Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0)) ld=Rect(153.6x0.00012207031 at (153.6, 1152.0)) lt=Rect(153.6x76.80005 at (153.6, 1075.2001)) p=1'
2022-02-02T09:30:33.199000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-02T09:30:33.199000: INFO : b'\tlb = Box2D((0.0, 1075.2001), (153.6, 1152.0001))'
2022-02-02T09:30:33.199000: INFO : b'\tls = Box2D((0.0, 1152.0), (153.6, 1152.0001))'
2022-02-02T09:30:33.199000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, 41315.664) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (0.0, -7291.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, -7291.0) } }'
2022-02-02T09:30:33.199000: INFO : b'\tsb = Box2D((0.0, 48483.664), (1024.0, 48995.664))'
2022-02-02T09:30:33.199000: INFO : b'\tsr = Box2D((0.0, 48995.664), (1024.0, 48995.664))'
2022-02-02T09:30:33.199000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-02T09:30:33.199000: INFO : b'\tlb = Box2D((0.0, 1075.2001), (153.6, 1152.0001))'
2022-02-02T09:30:33.199000: INFO : b'\tls = Box2D((0.0, 1152.0), (153.6, 1152.0001))'
2022-02-02T09:30:33.215000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, 41315.664) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (0.0, -7291.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, -7291.0) } }'
2022-02-02T09:30:33.215000: INFO : b'\tsb = Box2D((0.0, 48483.664), (1024.0, 48995.664))'
2022-02-02T09:30:33.215000: INFO : b'\tsr = Box2D((0.0, 48995.664), (1024.0, 48995.664))'
2022-02-02T09:30:33.215000: INFO : b'log2: Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0)) ld=Rect(153.6x0.00012207031 at (0.0, 1152.0)) lt=Rect(153.6x76.80005 at (0.0, 1075.2001)) p=1'
2022-02-02T09:30:33.215000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-02-02T09:30:33.215000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-02-02T09:30:33.215000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-02-02T09:30:33.215000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-02T09:30:33.215000: INFO : b'\tlb = Box2D((307.2, 1075.2001), (460.80002, 1152.0001))'
2022-02-02T09:30:33.215000: INFO : b'\tls = Box2D((307.2, 1152.0), (460.80002, 1152.0001))'
2022-02-02T09:30:33.215000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, 41315.664) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (0.0, -7291.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, -7291.0) } }'
2022-02-02T09:30:33.215000: INFO : b'\tsb = Box2D((2048.0, 48483.664), (3072.0, 48995.664))'
2022-02-02T09:30:33.215000: INFO : b'\tsr = Box2D((2048.0, 48995.664), (3072.0, 48995.664))'
2022-02-02T09:30:33.215000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-02T09:30:33.215000: INFO : b'\tlb = Box2D((153.6, 1075.2001), (307.2, 1152.0001))'
2022-02-02T09:30:33.215000: INFO : b'\tls = Box2D((153.6, 1152.0), (307.2, 1152.0001))'
2022-02-02T09:30:33.215000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, 41315.664) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (0.0, -7291.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, -7291.0) } }'
2022-02-02T09:30:33.231000: INFO : b'\tsb = Box2D((1024.0, 48483.664), (2048.0, 48995.664))'
2022-02-02T09:30:33.231000: INFO : b'\tsr = Box2D((1024.0, 48995.664), (2048.0, 48995.664))'
2022-02-02T09:30:33.231000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-02T09:30:33.231000: INFO : b'\tlb = Box2D((0.0, 1075.2001), (153.6, 1152.0001))'
2022-02-02T09:30:33.231000: INFO : b'\tls = Box2D((0.0, 1152.0), (153.6, 1152.0001))'
2022-02-02T09:30:33.231000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, 41315.664) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (0.0, -7291.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, -7291.0) } }'
2022-02-02T09:30:33.231000: INFO : b'\tsb = Box2D((0.0, 48483.664), (1024.0, 48995.664))'
2022-02-02T09:30:33.231000: INFO : b'\tsr = Box2D((0.0, 48995.664), (1024.0, 48995.664))'
2022-02-02T09:30:33.231000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=526336, y=531456, w=0, h=0)'
2022-02-02T09:30:33.231000: INFO : b'[GFX1-]: Fallback WR to SW-WR + D3D11'
2022-02-02T09:30:33.231000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=525312, y=531456, w=0, h=0)'
2022-02-02T09:30:33.231000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=524288, y=531456, w=0, h=0)'


2022-02-02T09:33:21.585000: INFO : platform_buildid: 20220202022308
2022-02-02T09:33:21.585000: INFO : platform_changeset: 3f4d9474fe9a57b40ac73bd265e0342b6b2005e8
2022-02-02T09:33:21.585000: INFO : platform_repository: https://hg.mozilla.org/try
2022-02-02T09:33:21.585000: INFO : platform_version: 98.0a1
2022-02-02T09:33:58.139000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-02T09:33:58.139000: INFO : b'\tlb = Box2D((307.2, 3379.2002), (460.80002, 3456.0002))'
2022-02-02T09:33:58.155000: INFO : b'\tls = Box2D((307.2, 3455.9998), (460.80002, 3456.0002))'
2022-02-02T09:33:58.155000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (510.0, 129608.0) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (-90.0, -22872.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (-90.0, -22872.0) } }'
2022-02-02T09:33:58.155000: INFO : b'\tsb = Box2D((2558.0, 152136.0), (3582.0, 152648.0))'
2022-02-02T09:33:58.155000: INFO : b'\tsr = Box2D((2558.0, 152648.0), (3582.0, 152648.0))'
2022-02-02T09:33:58.155000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-02T09:33:58.155000: INFO : b'\tlb = Box2D((307.2, 3379.2002), (460.80002, 3456.0002))'
2022-02-02T09:33:58.155000: INFO : b'\tls = Box2D((307.2, 3455.9998), (460.80002, 3456.0002))'
2022-02-02T09:33:58.155000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (510.0, 129608.0) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (-90.0, -22872.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (-90.0, -22872.0) } }'
2022-02-02T09:33:58.155000: INFO : b'\tsb = Box2D((2558.0, 152136.0), (3582.0, 152648.0))'
2022-02-02T09:33:58.155000: INFO : b'\tsr = Box2D((2558.0, 152648.0), (3582.0, 152648.0))'
2022-02-02T09:33:58.155000: INFO : b'log2: Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0)) ld=Rect(153.6x0.00048828125 at (307.2, 3455.9998)) lt=Rect(153.6x76.80005 at (307.2, 3379.2002)) p=1'
2022-02-02T09:33:58.155000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-02T09:33:58.155000: INFO : b'\tlb = Box2D((0.0, 3379.2002), (153.6, 3456.0002))'
2022-02-02T09:33:58.155000: INFO : b'\tls = Box2D((0.0, 3455.9998), (153.6, 3456.0002))'
2022-02-02T09:33:58.155000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (510.0, 129608.0) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (-90.0, -22872.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (-90.0, -22872.0) } }'
2022-02-02T09:33:58.155000: INFO : b'\tsb = Box2D((510.0, 152136.0), (1534.0, 152648.0))'
2022-02-02T09:33:58.155000: INFO : b'\tsr = Box2D((510.0, 152648.0), (1534.0, 152648.0))'
2022-02-02T09:33:58.155000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-02T09:33:58.155000: INFO : b'\tlb = Box2D((0.0, 3379.2002), (153.6, 3456.0002))'
2022-02-02T09:33:58.155000: INFO : b'\tls = Box2D((0.0, 3455.9998), (153.6, 3456.0002))'
2022-02-02T09:33:58.155000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (510.0, 129608.0) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (-90.0, -22872.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (-90.0, -22872.0) } }'
2022-02-02T09:33:58.155000: INFO : b'\tsb = Box2D((510.0, 152136.0), (1534.0, 152648.0))'
2022-02-02T09:33:58.155000: INFO : b'\tsr = Box2D((510.0, 152648.0), (1534.0, 152648.0))'
2022-02-02T09:33:58.155000: INFO : b'log2: Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0)) ld=Rect(153.6x0.00048828125 at (0.0, 3455.9998)) lt=Rect(153.6x76.80005 at (0.0, 3379.2002)) p=1'
2022-02-02T09:33:58.155000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-02T09:33:58.155000: INFO : b'\tlb = Box2D((153.6, 3379.2002), (307.2, 3456.0002))'
2022-02-02T09:33:58.170000: INFO : b'\tls = Box2D((153.6, 3455.9998), (307.2, 3456.0002))'
2022-02-02T09:33:58.170000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (510.0, 129608.0) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (-90.0, -22872.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (-90.0, -22872.0) } }'
2022-02-02T09:33:58.170000: INFO : b'\tsb = Box2D((1534.0, 152136.0), (2558.0, 152648.0))'
2022-02-02T09:33:58.170000: INFO : b'\tsr = Box2D((1534.0, 152648.0), (2558.0, 152648.0))'
2022-02-02T09:33:58.170000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-02T09:33:58.170000: INFO : b'\tlb = Box2D((153.6, 3379.2002), (307.2, 3456.0002))'
2022-02-02T09:33:58.170000: INFO : b'\tls = Box2D((153.6, 3455.9998), (307.2, 3456.0002))'
2022-02-02T09:33:58.170000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (510.0, 129608.0) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (-90.0, -22872.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (-90.0, -22872.0) } }'
2022-02-02T09:33:58.170000: INFO : b'\tsb = Box2D((1534.0, 152136.0), (2558.0, 152648.0))'
2022-02-02T09:33:58.170000: INFO : b'\tsr = Box2D((1534.0, 152648.0), (2558.0, 152648.0))'
2022-02-02T09:33:58.170000: INFO : b'log2: Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0)) ld=Rect(153.6x0.00048828125 at (153.6, 3455.9998)) lt=Rect(153.6x76.80005 at (153.6, 3379.2002)) p=1'
2022-02-02T09:33:58.170000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-02-02T09:33:58.170000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-02-02T09:33:58.170000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-02-02T09:33:58.170000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-02T09:33:58.170000: INFO : b'\tlb = Box2D((307.2, 3379.2002), (460.80002, 3456.0002))'
2022-02-02T09:33:58.170000: INFO : b'\tls = Box2D((307.2, 3455.9998), (460.80002, 3456.0002))'
2022-02-02T09:33:58.170000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (510.0, 129608.0) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (-90.0, -22872.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (-90.0, -22872.0) } }'
2022-02-02T09:33:58.170000: INFO : b'\tsb = Box2D((2558.0, 152136.0), (3582.0, 152648.0))'
2022-02-02T09:33:58.170000: INFO : b'\tsr = Box2D((2558.0, 152648.0), (3582.0, 152648.0))'
2022-02-02T09:33:58.170000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-02T09:33:58.170000: INFO : b'\tlb = Box2D((0.0, 3379.2002), (153.6, 3456.0002))'
2022-02-02T09:33:58.170000: INFO : b'\tls = Box2D((0.0, 3455.9998), (153.6, 3456.0002))'
2022-02-02T09:33:58.170000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (510.0, 129608.0) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (-90.0, -22872.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (-90.0, -22872.0) } }'
2022-02-02T09:33:58.170000: INFO : b'\tsb = Box2D((510.0, 152136.0), (1534.0, 152648.0))'
2022-02-02T09:33:58.170000: INFO : b'\tsr = Box2D((510.0, 152648.0), (1534.0, 152648.0))'
2022-02-02T09:33:58.170000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-02T09:33:58.186000: INFO : b'\tlb = Box2D((153.6, 3379.2002), (307.2, 3456.0002))'
2022-02-02T09:33:58.186000: INFO : b'\tls = Box2D((153.6, 3455.9998), (307.2, 3456.0002))'
2022-02-02T09:33:58.186000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (510.0, 129608.0) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (-90.0, -22872.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (-90.0, -22872.0) } }'
2022-02-02T09:33:58.186000: INFO : b'\tsb = Box2D((1534.0, 152136.0), (2558.0, 152648.0))'
2022-02-02T09:33:58.186000: INFO : b'\tsr = Box2D((1534.0, 152648.0), (2558.0, 152648.0))'
2022-02-02T09:33:58.186000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=526336, y=546816, w=0, h=0)'
2022-02-02T09:33:58.186000: INFO : b'[GFX1-]: Fallback WR to SW-WR + D3D11'
2022-02-02T09:33:58.186000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=524288, y=546816, w=0, h=0)'
2022-02-02T09:33:58.186000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=525312, y=546816, w=0, h=0)'


Flags: needinfo?(mayankleoboy1) → needinfo?(gwatson)

OK, so this looks like it is a floating point accuracy problem.

We start with a local_sub_rect that is Box2D((153.6, 3455.9998), (307.2, 3456.0002)) where the y0 and y1 are very similar but not the same.

Then, once it is mapped in to device space by the local_to_surface, we end up with Box2D((1534.0, 152648.0), (2558.0, 152648.0)) making the y0 and y1 be exactly the same in device space, resulting in a zero sized device rect.

This is a due to the offset being 129608 and a scale of 6.6665.

I will have a ponder tomorrow about the best way to fix this. Thanks for your help so far!

Flags: needinfo?(gwatson)

Could you test the build from https://treeherder.mozilla.org/jobs?repo=try&revision=8ae5e67a61ae8384f739455e1edc4bb4fc1dbeb3 when it completes and see if you're still able to reproduce the problem?

Flags: needinfo?(sotaro.ikeda.g)
Flags: needinfo?(mayankleoboy1)
Flags: needinfo?(jmuizelaar)

I could get it to crash :

2022-02-03T08:15:18.169000: INFO : platform_buildid: 20220202214558
2022-02-03T08:15:18.169000: INFO : platform_changeset: 8ae5e67a61ae8384f739455e1edc4bb4fc1dbeb3
2022-02-03T08:15:18.169000: INFO : platform_repository: https://hg.mozilla.org/try
2022-02-03T08:15:18.169000: INFO : platform_version: 98.0a1
2022-02-03T08:15:20.466000: INFO : b'[Parent 15648, IPC I/O Parent] WARNING: file /builds/worker/checkouts/gecko/ipc/chromium/src/base/process_util_win.cc:167'
2022-02-03T08:16:17.998000: INFO : b'[Parent 15648, IPC I/O Parent] WARNING: file /builds/worker/checkouts/gecko/ipc/chromium/src/base/process_util_win.cc:167'
2022-02-03T08:16:17.998000: INFO : b'[Parent 15648, IPC I/O Parent] WARNING: file /builds/worker/checkouts/gecko/ipc/chromium/src/base/process_util_win.cc:167'
2022-02-03T08:16:17.998000: INFO : b'[Parent 15648, IPC I/O Parent] WARNING: file /builds/worker/checkouts/gecko/ipc/chromium/src/base/process_util_win.cc:167'
2022-02-03T08:16:44.853000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-03T08:16:44.853000: INFO : b'\tlb = Box2D((307.2, 3379.2002), (460.80002, 3456.0002))'
2022-02-03T08:16:44.853000: INFO : b'\tls = Box2D((307.2, 3455.9998), (460.80002, 3456.0002))'
2022-02-03T08:16:44.853000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (51.0, 127199.66) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (-9.0, -22447.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (-9.0, -22447.0) } }'
2022-02-03T08:16:44.853000: INFO : b'\tsb = Box2D((2099.0, 149727.65625), (3123.0, 150239.65625))'
2022-02-03T08:16:44.868000: INFO : b'\tsr = Box2D((2099.0, 150239.65625), (3123.0, 150239.65625))'
2022-02-03T08:16:44.868000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-03T08:16:44.868000: INFO : b'\tlb = Box2D((307.2, 3379.2002), (460.80002, 3456.0002))'
2022-02-03T08:16:44.868000: INFO : b'\tls = Box2D((307.2, 3455.9998), (460.80002, 3456.0002))'
2022-02-03T08:16:44.868000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (51.0, 127199.66) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (-9.0, -22447.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (-9.0, -22447.0) } }'
2022-02-03T08:16:44.868000: INFO : b'\tsb = Box2D((2099.0, 149727.65625), (3123.0, 150239.65625))'
2022-02-03T08:16:44.868000: INFO : b'\tsr = Box2D((2099.0, 150239.65625), (3123.0, 150239.65625))'
2022-02-03T08:16:44.868000: INFO : b'log2: Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0)) ld=Rect(153.6x0.00048828125 at (307.2, 3455.9998)) lt=Rect(153.6x76.80005 at (307.2, 3379.2002)) p=1'
2022-02-03T08:16:44.868000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-03T08:16:44.868000: INFO : b'\tlb = Box2D((0.0, 3379.2002), (153.6, 3456.0002))'
2022-02-03T08:16:44.868000: INFO : b'\tls = Box2D((0.0, 3455.9998), (153.6, 3456.0002))'
2022-02-03T08:16:44.868000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (51.0, 127199.66) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (-9.0, -22447.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (-9.0, -22447.0) } }'
2022-02-03T08:16:44.868000: INFO : b'\tsb = Box2D((51.0, 149727.65625), (1075.0, 150239.65625))'
2022-02-03T08:16:44.868000: INFO : b'\tsr = Box2D((51.0, 150239.65625), (1075.0, 150239.65625))'
2022-02-03T08:16:44.868000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-03T08:16:44.868000: INFO : b'\tlb = Box2D((0.0, 3379.2002), (153.6, 3456.0002))'
2022-02-03T08:16:44.868000: INFO : b'\tls = Box2D((0.0, 3455.9998), (153.6, 3456.0002))'
2022-02-03T08:16:44.868000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (51.0, 127199.66) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (-9.0, -22447.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (-9.0, -22447.0) } }'
2022-02-03T08:16:44.868000: INFO : b'\tsb = Box2D((51.0, 149727.65625), (1075.0, 150239.65625))'
2022-02-03T08:16:44.868000: INFO : b'\tsr = Box2D((51.0, 150239.65625), (1075.0, 150239.65625))'
2022-02-03T08:16:44.868000: INFO : b'log2: Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0)) ld=Rect(153.6x0.00048828125 at (0.0, 3455.9998)) lt=Rect(153.6x76.80005 at (0.0, 3379.2002)) p=1'
2022-02-03T08:16:44.868000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-03T08:16:44.868000: INFO : b'\tlb = Box2D((153.6, 3379.2002), (307.2, 3456.0002))'
2022-02-03T08:16:44.868000: INFO : b'\tls = Box2D((153.6, 3455.9998), (307.2, 3456.0002))'
2022-02-03T08:16:44.868000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (51.0, 127199.66) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (-9.0, -22447.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (-9.0, -22447.0) } }'
2022-02-03T08:16:44.868000: INFO : b'\tsb = Box2D((1075.0, 149727.65625), (2099.0, 150239.65625))'
2022-02-03T08:16:44.868000: INFO : b'\tsr = Box2D((1075.0, 150239.65625), (2099.0, 150239.65625))'
2022-02-03T08:16:44.868000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-03T08:16:44.868000: INFO : b'\tlb = Box2D((153.6, 3379.2002), (307.2, 3456.0002))'
2022-02-03T08:16:44.868000: INFO : b'\tls = Box2D((153.6, 3455.9998), (307.2, 3456.0002))'
2022-02-03T08:16:44.884000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (51.0, 127199.66) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (-9.0, -22447.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (-9.0, -22447.0) } }'
2022-02-03T08:16:44.884000: INFO : b'\tsb = Box2D((1075.0, 149727.65625), (2099.0, 150239.65625))'
2022-02-03T08:16:44.884000: INFO : b'\tsr = Box2D((1075.0, 150239.65625), (2099.0, 150239.65625))'
2022-02-03T08:16:44.884000: INFO : b'log2: Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0)) ld=Rect(153.6x0.00048828125 at (153.6, 3455.9998)) lt=Rect(153.6x76.80005 at (153.6, 3379.2002)) p=1'
2022-02-03T08:16:44.884000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-02-03T08:16:44.884000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-02-03T08:16:44.884000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-02-03T08:16:44.884000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-03T08:16:44.884000: INFO : b'\tlb = Box2D((307.2, 3379.2002), (460.80002, 3456.0002))'
2022-02-03T08:16:44.884000: INFO : b'\tls = Box2D((307.2, 3455.9998), (460.80002, 3456.0002))'
2022-02-03T08:16:44.884000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (51.0, 127199.66) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (-9.0, -22447.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (-9.0, -22447.0) } }'
2022-02-03T08:16:44.884000: INFO : b'\tsb = Box2D((2099.0, 149727.65625), (3123.0, 150239.65625))'
2022-02-03T08:16:44.884000: INFO : b'\tsr = Box2D((2099.0, 150239.65625), (3123.0, 150239.65625))'
2022-02-03T08:16:44.884000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-03T08:16:44.884000: INFO : b'\tlb = Box2D((0.0, 3379.2002), (153.6, 3456.0002))'
2022-02-03T08:16:44.884000: INFO : b'\tls = Box2D((0.0, 3455.9998), (153.6, 3456.0002))'
2022-02-03T08:16:44.884000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (51.0, 127199.66) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (-9.0, -22447.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (-9.0, -22447.0) } }'
2022-02-03T08:16:44.884000: INFO : b'\tsb = Box2D((51.0, 149727.65625), (1075.0, 150239.65625))'
2022-02-03T08:16:44.884000: INFO : b'\tsr = Box2D((51.0, 150239.65625), (1075.0, 150239.65625))'
2022-02-03T08:16:44.884000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-03T08:16:44.884000: INFO : b'\tlb = Box2D((153.6, 3379.2002), (307.2, 3456.0002))'
2022-02-03T08:16:44.884000: INFO : b'\tls = Box2D((153.6, 3455.9998), (307.2, 3456.0002))'
2022-02-03T08:16:44.884000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (51.0, 127199.66) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (-9.0, -22447.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (-9.0, -22447.0) } }'
2022-02-03T08:16:44.884000: INFO : b'\tsb = Box2D((1075.0, 149727.65625), (2099.0, 150239.65625))'
2022-02-03T08:16:44.884000: INFO : b'\tsr = Box2D((1075.0, 150239.65625), (2099.0, 150239.65625))'
2022-02-03T08:16:44.884000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=526336, y=546816, w=0, h=0)'
2022-02-03T08:16:44.884000: INFO : b'[GFX1-]: Fallback WR to SW-WR + D3D11'
2022-02-03T08:16:44.884000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=524288, y=546816, w=0, h=0)'
2022-02-03T08:16:44.884000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=525312, y=546816, w=0, h=0)'

Flags: needinfo?(mayankleoboy1) → needinfo?(gwatson)

Thanks for checking - was it reproducing the crash in the same way or did you need to do something different this time? I'll need to investigate those logs and see why that didn't fix the issue / come up with another way to work around it.

Flags: needinfo?(gwatson)

(In reply to Glenn Watson [:gw] from comment #38)

Thanks for checking - was it reproducing the crash in the same way or did you need to do something different this time? I'll need to investigate those logs and see why that didn't fix the issue / come up with another way to work around it.

I did pretty much the same thing that I always do :

  1. Open SVG
  2. Pinch-zoom to the max possible
  3. Scroll the svg down
  4. Scroll the svg upwards

It is not 100% reproducible, but usually within 1-2 attempts, I can get a crash.

Not sure if its important, but the crash generally occurs when the Fox+mobile image is being scrolled/about to be scrolled. I tried to reduce the testcase, but the reduced testcase still ends up being 500KB in size.

Another log:

2022-02-04T14:18:09.285000: INFO : platform_buildid: 20220202214558
2022-02-04T14:18:09.285000: INFO : platform_changeset: 8ae5e67a61ae8384f739455e1edc4bb4fc1dbeb3
2022-02-04T14:18:09.285000: INFO : platform_repository: https://hg.mozilla.org/try
2022-02-04T14:18:09.285000: INFO : platform_version: 98.0a1
2022-02-04T14:19:15.434000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-04T14:19:15.434000: INFO : b'\tlb = Box2D((307.2, 1459.2001), (460.80002, 1536.0001))'
2022-02-04T14:19:15.434000: INFO : b'\tls = Box2D((307.2, 1535.9999), (460.80002, 1536.0001))'
2022-02-04T14:19:15.434000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, 52836.0) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (0.0, -9324.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, -9324.0) } }'
2022-02-04T14:19:15.434000: INFO : b'\tsb = Box2D((2048.0, 62564.0), (3072.0, 63076.0))'
2022-02-04T14:19:15.434000: INFO : b'\tsr = Box2D((2048.0, 63076.0), (3072.0, 63076.0))'
2022-02-04T14:19:15.434000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-04T14:19:15.434000: INFO : b'\tlb = Box2D((307.2, 1459.2001), (460.80002, 1536.0001))'
2022-02-04T14:19:15.434000: INFO : b'\tls = Box2D((307.2, 1535.9999), (460.80002, 1536.0001))'
2022-02-04T14:19:15.434000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, 52836.0) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (0.0, -9324.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, -9324.0) } }'
2022-02-04T14:19:15.434000: INFO : b'\tsb = Box2D((2048.0, 62564.0), (3072.0, 63076.0))'
2022-02-04T14:19:15.434000: INFO : b'\tsr = Box2D((2048.0, 63076.0), (3072.0, 63076.0))'
2022-02-04T14:19:15.434000: INFO : b'log2: Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0)) ld=Rect(153.6x0.00024414063 at (307.2, 1535.9999)) lt=Rect(153.6x76.80005 at (307.2, 1459.2001)) p=1'
2022-02-04T14:19:15.434000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-04T14:19:15.444000: INFO : b'\tlb = Box2D((153.6, 1459.2001), (307.2, 1536.0001))'
2022-02-04T14:19:15.444000: INFO : b'\tls = Box2D((153.6, 1535.9999), (307.2, 1536.0001))'
2022-02-04T14:19:15.444000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, 52836.0) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (0.0, -9324.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, -9324.0) } }'
2022-02-04T14:19:15.444000: INFO : b'\tsb = Box2D((1024.0, 62564.0), (2048.0, 63076.0))'
2022-02-04T14:19:15.444000: INFO : b'\tsr = Box2D((1024.0, 63076.0), (2048.0, 63076.0))'
2022-02-04T14:19:15.444000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-04T14:19:15.444000: INFO : b'\tlb = Box2D((153.6, 1459.2001), (307.2, 1536.0001))'
2022-02-04T14:19:15.444000: INFO : b'\tls = Box2D((153.6, 1535.9999), (307.2, 1536.0001))'
2022-02-04T14:19:15.444000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, 52836.0) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (0.0, -9324.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, -9324.0) } }'
2022-02-04T14:19:15.444000: INFO : b'\tsb = Box2D((1024.0, 62564.0), (2048.0, 63076.0))'
2022-02-04T14:19:15.444000: INFO : b'\tsr = Box2D((1024.0, 63076.0), (2048.0, 63076.0))'
2022-02-04T14:19:15.444000: INFO : b'log2: Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0)) ld=Rect(153.6x0.00024414063 at (153.6, 1535.9999)) lt=Rect(153.6x76.80005 at (153.6, 1459.2001)) p=1'
2022-02-04T14:19:15.444000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-04T14:19:15.444000: INFO : b'\tlb = Box2D((0.0, 1459.2001), (153.6, 1536.0001))'
2022-02-04T14:19:15.444000: INFO : b'\tls = Box2D((0.0, 1535.9999), (153.6, 1536.0001))'
2022-02-04T14:19:15.454000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, 52836.0) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (0.0, -9324.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, -9324.0) } }'
2022-02-04T14:19:15.454000: INFO : b'\tsb = Box2D((0.0, 62564.0), (1024.0, 63076.0))'
2022-02-04T14:19:15.454000: INFO : b'\tsr = Box2D((0.0, 63076.0), (1024.0, 63076.0))'
2022-02-04T14:19:15.454000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-04T14:19:15.454000: INFO : b'\tlb = Box2D((0.0, 1459.2001), (153.6, 1536.0001))'
2022-02-04T14:19:15.454000: INFO : b'\tls = Box2D((0.0, 1535.9999), (153.6, 1536.0001))'
2022-02-04T14:19:15.454000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, 52836.0) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (0.0, -9324.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, -9324.0) } }'
2022-02-04T14:19:15.454000: INFO : b'\tsb = Box2D((0.0, 62564.0), (1024.0, 63076.0))'
2022-02-04T14:19:15.454000: INFO : b'\tsr = Box2D((0.0, 63076.0), (1024.0, 63076.0))'
2022-02-04T14:19:15.454000: INFO : b'log2: Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0)) ld=Rect(153.6x0.00024414063 at (0.0, 1535.9999)) lt=Rect(153.6x76.80005 at (0.0, 1459.2001)) p=1'
2022-02-04T14:19:15.454000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-02-04T14:19:15.454000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-02-04T14:19:15.454000: INFO : b'Found empty tile: d=Rect(0x0 at (0, 0)) v=Rect(0x0 at (0, 0))'
2022-02-04T14:19:15.454000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-04T14:19:15.454000: INFO : b'\tlb = Box2D((307.2, 1459.2001), (460.80002, 1536.0001))'
2022-02-04T14:19:15.464000: INFO : b'\tls = Box2D((307.2, 1535.9999), (460.80002, 1536.0001))'
2022-02-04T14:19:15.464000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, 52836.0) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (0.0, -9324.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, -9324.0) } }'
2022-02-04T14:19:15.464000: INFO : b'\tsb = Box2D((2048.0, 62564.0), (3072.0, 63076.0))'
2022-02-04T14:19:15.464000: INFO : b'\tsr = Box2D((2048.0, 63076.0), (3072.0, 63076.0))'
2022-02-04T14:19:15.464000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-04T14:19:15.464000: INFO : b'\tlb = Box2D((153.6, 1459.2001), (307.2, 1536.0001))'
2022-02-04T14:19:15.464000: INFO : b'\tls = Box2D((153.6, 1535.9999), (307.2, 1536.0001))'
2022-02-04T14:19:15.464000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, 52836.0) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (0.0, -9324.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, -9324.0) } }'
2022-02-04T14:19:15.464000: INFO : b'\tsb = Box2D((1024.0, 62564.0), (2048.0, 63076.0))'
2022-02-04T14:19:15.464000: INFO : b'\tsr = Box2D((1024.0, 63076.0), (2048.0, 63076.0))'
2022-02-04T14:19:15.464000: INFO : b'get_surface_rect found Box2D((0.0, 0.0), (0.0, 0.0))'
2022-02-04T14:19:15.464000: INFO : b'\tlb = Box2D((0.0, 1459.2001), (153.6, 1536.0001))'
2022-02-04T14:19:15.464000: INFO : b'\tls = Box2D((0.0, 1535.9999), (153.6, 1536.0001))'
2022-02-04T14:19:15.474000: INFO : b'\txf = CompositorTransform { local_to_surface: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, 52836.0) }, surface_to_device: ScaleOffset { scale: (1.0, 1.0), offset: (0.0, -9324.0) }, local_to_device: ScaleOffset { scale: (6.6666665, 6.6666665), offset: (0.0, -9324.0) } }'
2022-02-04T14:19:15.474000: INFO : b'\tsb = Box2D((0.0, 62564.0), (1024.0, 63076.0))'
2022-02-04T14:19:15.474000: INFO : b'\tsr = Box2D((0.0, 63076.0), (1024.0, 63076.0))'
2022-02-04T14:19:15.474000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=526336, y=534016, w=0, h=0)'
2022-02-04T14:19:15.474000: INFO : b'[GFX1-]: Fallback WR to SW-WR + D3D11'
2022-02-04T14:19:15.474000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=525312, y=534016, w=0, h=0)'
2022-02-04T14:19:15.474000: INFO : b'[GFX1-]: DCompositionSurface::BeginDraw failed: 0x80070057 Rect(x=524288, y=534016, w=0, h=0)'

The severity field is not set for this bug.
:bhood, could you have a look please?

For more information, please visit auto_nag documentation.

Flags: needinfo?(bhood)
Severity: -- → S3
Flags: needinfo?(bhood)
Priority: -- → P2

A new try run (still building) up - https://treeherder.mozilla.org/jobs?repo=try&revision=e1de8116aa2de1086993effba86760b2b0761e27

This one implements another possible hack / fix for this - please let me know if it crashes and/or has any other noticeable issues.

(In reply to Glenn Watson [:gw] from comment #42)
> A new try run (still building) up - https://treeherder.mozilla.org/jobs?repo=try&revision=e1de8116aa2de1086993effba86760b2b0761e27
> 
> This one implements another possible hack / fix for this - please let me know if it crashes and/or has any other noticeable issues.

This build didnt crash. However, scrolling was very janky on all pages (the test SVG, about:support). Edit: The scrolling was bad only when running the try build via moz-regression tool. When I ran the try build directly, the scrolling was smooth.
FWIW, the first 10 or so logging pieces were generated while the browser was starting with the default homepage
-----------------------------------------------------------------------------------------------------------------
Flags: needinfo?(gwatson)

OK, great. Thanks for testing! I'll put up a build tomorrow with the fix properly implemented, and the logging removed, and we'll see if that looks like a good fix we can land.

Flags: needinfo?(gwatson)
Assignee: nobody → gwatson

Added a all-platforms try build that has what I hope is a fix we can land for this - https://treeherder.mozilla.org/jobs?repo=try&revision=21ef9564320948b04d5eabfb1f02ba0d0f977802

Let me know how it goes and if it seems OK I'll get it reviewed and landed.

(In reply to Glenn Watson [:gw] from comment #45)

Added a all-platforms try build that has what I hope is a fix we can land for this - https://treeherder.mozilla.org/jobs?repo=try&revision=21ef9564320948b04d5eabfb1f02ba0d0f977802

Let me know how it goes and if it seems OK I'll get it reviewed and landed.

I tried a shippable build from here, and the build crashed the first time i loaded the SVG. The next time I tried, I got a similar crash as previously. But if I try the build from comment 42, I dont get any crash.

Yea, looking at the try run there are a lot of weird failures - not sure what's going on there, I'll investigate - the build seemed to work OK for me locally when I tried it, but there's obviously something wrong in this version of the patch!

Spoke with Glenn. He spent quite some time looking at this, and he thinks it is likely a rare case. He has higher priorities, but he might have a patch available for it next week.

Priority: P2 → P3

Agree that this testcase/STR are rare, and higher priority stuff exists.

Glenn: any more progress on this one, or are we still happy it's an edge case we don't need to worry about for Firefox 99?

Flags: needinfo?(gwatson)

No progress currently - it's on my list to get to, but it's enough of an edge case we can leave it for 99.

Flags: needinfo?(gwatson)

bug 1782216 might be a more reproducible version of this bug.

Blocks: 1782834

Unassigning for now, as I'm not actively working on this right now.

Assignee: gwatson → nobody
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: