Closed Bug 1718118 Opened 3 years ago Closed 3 years ago

google sheet turn black since firefox 88.0

Categories

(Core :: Graphics, defect, P1)

Firefox 88
defect

Tracking

()

RESOLVED FIXED
92 Branch
Tracking Status
firefox-esr78 --- disabled
firefox90 --- wontfix
firefox91 --- fixed
firefox92 --- fixed

People

(Reporter: AnatdBigfoot, Assigned: bobowen)

Details

Attachments

(6 files, 2 obsolete files)

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0

Steps to reproduce:

open firefox ver 88.0 or later (now 89.02)
new empty clear profile
enter into any google sheet

Actual results:

the spread sheet area is loading,
you can see the data,
and then the the area turn black. all the cells.
it stay black.

Expected results:

the spread sheet cells should show the data,
text on white, and not turn black.
I checked ver 86.0 and 87.0 with new clear profile.

The Bugbug bot thinks this bug should belong to the 'Core::Graphics' component, and is moving the bug to that component. Please revert this change in case you think the bot is wrong.

Component: Untriaged → Graphics
Product: Firefox → Core

:Anat, thanks for reporting. Can you attach about:support to this bug after the problem happned?

Flags: needinfo?(AnatdBigfoot)
Flags: needinfo?(AnatdBigfoot)

I put the first one as XML, by mistake.
now it is Text, and hopefully can be enter.

Attached file about-support.json

found out the text is limited and did not paste all.
also, found out it is json format. good to learn.
I attached the json file with raw data button from about:support,
after open a google sheet in version 88 clear profile.

(In reply to Anat from comment #5)

Created attachment 9228952 [details]
about-support.json

Following error log existed.

GP+[GFX1-]: DoesD3D11TextureSharingWork_ColorMismatch

https://searchfox.org/mozilla-central/rev/b261452e22d94a9d49a876bec32c23ae72fd684f/gfx/thebes/D3D11Checks.cpp#351

(In reply to Sotaro Ikeda [:sotaro] from comment #6)

(In reply to Anat from comment #5)

Created attachment 9228952 [details]
about-support.json

Following error log existed.

GP+[GFX1-]: DoesD3D11TextureSharingWork_ColorMismatch

https://searchfox.org/mozilla-central/rev/b261452e22d94a9d49a876bec32c23ae72fd684f/gfx/thebes/D3D11Checks.cpp#351

If I understand, it is related to the switchable graphic I have on the laptop.
So I checked the desktop and it is ok there.
What does it mean "broken" ?:
// Shared surfaces seem to be broken on dual AMD & Intel HW when using the AMD GPU
they both trying to draw ? no one draw ?
On the screen, actually, it is draw correctly and just after, it draw as black.

Why it was working in 87.0 and before ?
I assume something is changed in related to swichable graphic in 88.0.

I don't see this problem in anything else then the "google sheet".
what so special in it ?
is there other place to see easily such results (accured by the switchable graphic, inside firefox) exept the google sheet ?

just trying to help, as tester....(I was programmer on other platforms for many years)

(In reply to Sotaro Ikeda [:sotaro] from comment #6)

(In reply to Anat from comment #5)

Created attachment 9228952 [details]
about-support.json

Following error log existed.

GP+[GFX1-]: DoesD3D11TextureSharingWork_ColorMismatch

https://searchfox.org/mozilla-central/rev/b261452e22d94a9d49a876bec32c23ae72fd684f/gfx/thebes/D3D11Checks.cpp#351

can you please compare version 87.0 and 88.0 to see what change that cause the bug ?
in 87.0 and before, all work well.

Flags: needinfo?(sotaro.ikeda.g)
Blocks: gfx-triage
Severity: -- → S2
Priority: -- → P2

Jeff, any ideas here?

Flags: needinfo?(jmuizelaar)

(In reply to Anat from comment #8)

can you please compare version 87.0 and 88.0 to see what change that cause the bug ?
in 87.0 and before, all work well.

Can you use https://mozilla.github.io/mozregression/ to find out which changeset introduced the problem? It is helpful to find out a cause of the problem.

Flags: needinfo?(sotaro.ikeda.g)
Flags: needinfo?(AnatdBigfoot)

I just saw your responses now.
I need to learn this tool (mozregression).
I don't even know/understand what it does....
I try to watch the explanation video but I hardly recognize the text. it is very very small and blair :-(
I am sure until ver 87 include is good and 88 and after are bad. for this bug.
I will try to learn the tool.
I will appriciate more explanation or "to do list" inside the tool. can send directly to me.

Flags: needinfo?(sotaro.ikeda.g)
Flags: needinfo?(jmathies)

(In reply to Sotaro Ikeda [:sotaro away July/12-July/16] from comment #10)

(In reply to Anat from comment #8)

can you please compare version 87.0 and 88.0 to see what change that cause the bug ?
in 87.0 and before, all work well.

Can you use https://mozilla.github.io/mozregression/ to find out which changeset introduced the problem? It is helpful to find out a cause of the problem.

Great tool !!!

app_name: firefox
build_date: 2021-02-25 17:14:46.732000
build_file: C:\Users\Anat.mozilla\mozregression\persist\37d78cccb070-shippable--autoland--target.zip
build_type: integration
build_url: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/QfXYsjPgQe2SWAXsmM1NKA/runs/0/artifacts/public%2Fbuild%2Ftarget.zip
changeset: 37d78cccb07028c108a303ab821bb66708a9b41c
pushlog_url: https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=2afdd8e27ee86b468c5e28823ba28c27a4e37853&tochange=37d78cccb07028c108a303ab821bb66708a9b41c
repo_name: autoland
repo_url: https://hg.mozilla.org/integration/autoland
task_id: QfXYsjPgQe2SWAXsmM1NKA

Flags: needinfo?(sotaro.ikeda.g)
Flags: needinfo?(jmathies)
Flags: needinfo?(AnatdBigfoot)
Attached file mozregression log

output from mozregression:
attached is the log.
above the build info.

don't know which one you need.
please tell me, to know for the next time I will use it.

Attachment #9228947 - Attachment is obsolete: true
Attachment #9228949 - Attachment is obsolete: true

(In reply to Anat from comment #12)

changeset: 37d78cccb07028c108a303ab821bb66708a9b41c
pushlog_url: https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=2afdd8e27ee86b468c5e28823ba28c27a4e37853&tochange=37d78cccb07028c108a303ab821bb66708a9b41c

Bug 1692894 seems like a culprit.

:bobowen, can you comment to it? Thank you.

Flags: needinfo?(bobowencode)

It seems slightly odd that bug 1692894 would have caused this problem and not when remote canvas was turned on.
An initial guess is that we are somehow using acceleration and therefore remote canvas despite some things failing that meant it didn't actually get used in the content process.

Anat - as a start, please would you trying going to about:config and setting gfx.canvas.remote to false and restart the browser to see if that fixes the problem.

Flags: needinfo?(bobowencode) → needinfo?(AnatdBigfoot)

(In reply to Bob Owen (:bobowen) from comment #15)

It seems slightly odd that bug 1692894 would have caused this problem and not when remote canvas was turned on.
An initial guess is that we are somehow using acceleration and therefore remote canvas despite some things failing that meant it didn't actually get used in the content process.

Anat - as a start, please would you trying going to about:config and setting gfx.canvas.remote to false and restart the browser to see if that fixes the problem.

yes. false is fixing the problem.
also, I assume it is a great temporary bypass, will allowed me to work at last.
Thank you !!

but what does this switch do ?
and what is the relation to my switchable graphic ?
I have an intel graphic inside the i5 and also an external amd 6630 card inside . lenovo E520.
I know long time and checked again. I can not change the firefox to work on the external card anyway.
I attached screen shot of the catalyst.
Power saving mean intel, high preformance mean external amd. you can see the lock there.
I would like the firefox to work on the external card, but if I can not enable it anyway for the firefox, so.....

so why there is an option in firefox to use accelarator by hardware ?
what does the gfx.canvas.remote do, generally ??

Flags: needinfo?(AnatdBigfoot)
Attached image Catalyst.jpg

(In reply to Anat from comment #16)

(In reply to Bob Owen (:bobowen) from comment #15)
...
but what does this switch do ?

This moves the processing of accelerated Canvas 2D on Windows from the content processes to the GPU process.

and what is the relation to my switchable graphic ?

That's what we need to find out. :-)

I have an intel graphic inside the i5 and also an external amd 6630 card inside . lenovo E520.

I don't think I have any similar hardware to reproduce this.
Would you post your about:support again with this working configuration, please.

I know long time and checked again. I can not change the firefox to work on the external card anyway.
I attached screen shot of the catalyst.
Power saving mean intel, high preformance mean external amd. you can see the lock there.
I would like the firefox to work on the external card, but if I can not enable it anyway for the firefox, so.....

I don't know why that option is not available.
One of the graphics people might have a better idea.

so why there is an option in firefox to use accelarator by hardware ?

Using the GPU built into the intel processor is still accelerated, I think this option is to turn off using acceleration altogether and use software processing on the CPU.

Would you post your about:support again with this working configuration, please.

The previous about:support was from test install of ver 88.0 and clean profile.
but if I launch it and change the gfx.canvas.remote and enter again. it return to false...

So I ran the default instalation, uptodate, with clean profile.
Thus, dont know why, it allow me to change the gfx.canvas.remote and remember it after exit and enter.
It also remember my gmail...

So that is why there are maybe more differences between the file.

I think I will revert it to true and upload another file, so you can compare better.

This file is with gfx.canvas.remote = true.

like the false. test on last version with clear profile.
but now with the background of the sheet turn black after loading.

Hope it help that I made 2 files, with all the same, exept the gfx.canvas.remote

Flags: needinfo?(bobowencode)

Thanks, so it looks like with remote canvas turned off D3D11Checks::DoesTextureSharingWork fails in the content process and it is actually falling back to software for canvas.
This is also failing in the GPU process for the compositor device, but we don't check for it when creating the canvas device and we need it to work for remote canvas to work.

So, hopefully all I need to do is add that check into the code that creates the canvas device.
When no canvas device is created we should send a message back to the content process to fallback to software.

Assignee: nobody → bobowencode
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Flags: needinfo?(jmuizelaar)
Flags: needinfo?(bobowencode)
Priority: P2 → P1

Anat - hi, would you be able to try this test build from the try push in the previous comment:
https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/dWE5hLwvR9ieuUKINrXvaw/runs/0/artifacts/public/build/install/sea/target.installer.exe

You might need to accept some warnings (select more info) to run the installer.
If you choose a custom install you can choose where it is installed (in case you have a Nightly install already) and not to have desktop icon etc.
Thanks.

Flags: needinfo?(AnatdBigfoot)

(In reply to Bob Owen (:bobowen) from comment #23)

Anat - hi, would you be able to try this test build from the try push in the previous comment:
https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/dWE5hLwvR9ieuUKINrXvaw/runs/0/artifacts/public/build/install/sea/target.installer.exe

You might need to accept some warnings (select more info) to run the installer.
If you choose a custom install you can choose where it is installed (in case you have a Nightly install already) and not to have desktop icon etc.
Thanks.

Installed nightly.
Show ver 92.0a1
gfx.canvas.remote=true
google sheet load and not become black in background anymore.
I conclude your additional check fix the bug.
Thank you !

I found out that after loading, it add a gray area, on the right side, near the scroll bar.
I checked it with a new english google sheet, with gfx.canvs.remote true and false and also in chrome.
Also, the horizontal scroll bar disapear after loading in RTL, just in firefox.
I assume this grey area on the right and missing scroll bar are google bugs and not connected to the bug you fixed.

Flags: needinfo?(AnatdBigfoot)
No longer blocks: gfx-triage

(In reply to Anat from comment #24)

(In reply to Bob Owen (:bobowen) from comment #23)
...
I conclude your additional check fix the bug.
Thank you !

Excellent.

I found out that after loading, it add a gray area, on the right side, near the scroll bar.
I checked it with a new english google sheet, with gfx.canvs.remote true and false and also in chrome.
Also, the horizontal scroll bar disapear after loading in RTL, just in firefox.
I assume this grey area on the right and missing scroll bar are google bugs and not connected to the bug you fixed.

I doubt they're related to this fix specifically, but if you think there is an issue here, could you file a new bug please.

Pushed by bobowencode@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/eba4bc99186c
Check that texture sharing works for the canvas device. r=jrmuizel
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 92 Branch

(In reply to Bob Owen (:bobowen) from comment #15)

It seems slightly odd that bug 1692894 would have caused this problem and not when remote canvas was turned on.

Just for historical purposes, the reason that bug 1692894 caused this is that when we were still creating these devices in the child, the texture sharing was checked and this caused the accelerated canvas backend not to be used.

The patch landed in nightly and beta is affected.
:bobowen, 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?(bobowencode)

Comment on attachment 9232793 [details]
Bug 1718118: Check that texture sharing works for the canvas device. r=jrmuizel!

Beta/Release Uplift Approval Request

  • User impact if declined: Users with similar graphics configurations where accelerated canvas used to be disabled due to texture sharing issues, will continue to get unreliable/failing canvas 2D issues.
  • Is this code covered by automated tests?: No
  • Has the fix been verified in Nightly?: No
  • Needs manual test from QE?: Yes
  • If yes, steps to reproduce: It would be great if this could be tested by QE, but we might not have a setup that will reproduce it. STR are in the description if we do.
    If not we could ask the reporter to test if uplifted, they have been very helpful.
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): Low because of the simple nature of the patch.
  • String changes made/needed: None
Flags: needinfo?(bobowencode)
Attachment #9232793 - Flags: approval-mozilla-beta?
Flags: qe-verify+

Comment on attachment 9232793 [details]
Bug 1718118: Check that texture sharing works for the canvas device. r=jrmuizel!

P1/S2 and low risk patch, approved for beta 8 because it impacts a top site, thanks.

Attachment #9232793 - Flags: approval-mozilla-beta? → approval-mozilla-beta+

We tried reproducing the issue on three different systems but had no luck in doing so:

  1. Intel HD Graphics 630 with 91.0a1 (2021-06-24)
  2. Intel HD 4000 + NVS 5400M with 91.0a1 (2021-06-24) and 89.0.2
  3. Nvidia GTX 760 with 91.0b7

Anat, could you please verify that this has been fixed on the latest Beta and Nightly?:
Nightly 92.0a1 - https://archive.mozilla.org/pub/firefox/nightly/2021/07/2021-07-27-09-45-43-mozilla-central/firefox-92.0a1.en-US.win64.zip
Beta 91.0b8 - https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/PzEuvzgXRt6hU7Mnpyn2Bw/runs/0/artifacts/public/build/target.zip

Thank you!

Flags: needinfo?(AnatdBigfoot)
QA Whiteboard: [qa-triaged]

(In reply to Catalin Sasca, QA [:csasca] from comment #34)

We tried reproducing the issue on three different systems but had no luck in doing so:

  1. Intel HD Graphics 630 with 91.0a1 (2021-06-24)
  2. Intel HD 4000 + NVS 5400M with 91.0a1 (2021-06-24) and 89.0.2
  3. Nvidia GTX 760 with 91.0b7

I have lenovo E520 1143NG with intel HD graphics 3000 (on the i5-2410M processor 2.3-2.9Ghz) + AMD Radeon HD 6630M. switchable grapgics.
but firefox can use only the intel by default and I can not change this.

I saw none of your configuration was with AMD graphic card. just NVIDIA.
AMD tool is control the switching and they stopped updating the drive and the tool, so I am on the last ones available for my machine graphics adaptors.

Although, maybe the problem is with intel HD300. cause the firefox does not allow to switch anyway.

Anat, could you please verify that this has been fixed on the latest Beta and Nightly?:
Nightly 92.0a1 - https://archive.mozilla.org/pub/firefox/nightly/2021/07/2021-07-27-09-45-43-mozilla-central/firefox-92.0a1.en-US.win64.zip
Beta 91.0b8 - https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/PzEuvzgXRt6hU7Mnpyn2Bw/runs/0/artifacts/public/build/target.zip

Thank you!

I checked and doublechecked to be sure before I write the results.
gfx.canvas.remote = true (for false, all is working clear)

In Nightly 92.0a1 - work very good. google sheet load with no black background at all.

In my default 90.0.2 - start loading. you can see the data. then, during the loading, become black in the sheet workspace area. stay black.
you see only black all over the workspace grid.
refresh behave exactly the same.

In Beta 91.0b8 - start loading. you can see the data. then, during the loading, become black in the sheet workspace area. then turn off the black in the background and all looks fine. you can see the data and work.
if you do refresh, load ok as the nightly.
strange. maybe first draw and refresh work differently.
but in Nightly 92.0a1 it doesn't happen. all clear there. I checked again both situation.

BOb:
do you have any idea if there a difference between the 2 versions: Nightly 92.0a1 and Beta 91.0b8 ?
and the difference between first drawing and refresh ?

Catalin: please notify me if other test is needed.

Flags: needinfo?(catalin.sasca)
Flags: needinfo?(bobowencode)
Flags: needinfo?(AnatdBigfoot)

(In reply to Anat from comment #35)

(In reply to Catalin Sasca, QA [:csasca] from comment #34)
...
BOb:
do you have any idea if there a difference between the 2 versions: Nightly 92.0a1 and Beta 91.0b8 ?
and the difference between first drawing and refresh ?

Sounds like the fallback to software is happening slightly differently on Beta.
It might be difficult to find out why without being able to reproduce locally.
Maybe on failure to create the canvas device we should message the parent to disable acceleration for canvas 2D.

Flags: needinfo?(bobowencode)
Flags: needinfo?(catalin.sasca)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: