google / filament

Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS, and WebGL2

Home Page:https://google.github.io/filament/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

WebGL issues with rendering on wide aspects (?)

hybridherbst opened this issue · comments

Describe the bug
Just looked at the sample page (https://google.github.io/filament/) and it looked like this for me:
https://user-images.githubusercontent.com/2693840/157490765-5e09a48d-fc03-4681-87cb-432c043d36f1.mp4

After some experimentation, it seemed to happen on wider aspects but not on narrower ones.

To Reproduce
Steps to reproduce the behavior:

  1. Visit https://google.github.io/filament/
  2. Adjust the page so aspect of the viewer element becomes relatively wide (but full-screen full HD is already enough to trigger it).
  3. Note the artifacts as seen in the video above

Screenshots
image

Logs
Only log is FEngine (32 bits) created at 0x82ec40 (threading is disabled)

Desktop (please complete the following information):

  • OS: [Windows 11, Chrome]
  • GPU: [NVIDIA RTX 2070]

I believe this is a dup of #4922, which we closed as not actionable since it is likely an NVIDIA issue.

I wonder if it happens only in filament. I thought the new datapoint that it's only on wide aspect ratios was interesting. We definitely do some "weird stuff" to keep various effect aspect-ratio independent (e.g. in the bloom pass). Maybe there is something there?

I'm working with other WebGL apps on a day-to-day basis (threejs, WebGL directly, WebXR, Unity WebGL, ...) and have never seen this behaviour in any of them, so from my end I can say that yes, I've only seen that happen in filament.

Were you able to get any NVidia eyes on it? It's both a pretty high-end and a very common card... (2070 Max-Q to be specific).
Might this be related to browser power state? Does filament request low power maybe? (I know that at least Unity requests high and three requests default)

Some more tests in case that helps:
When using chrome://flags/#use-angle, I get varying behaviour:

ANGLE Backend Result
Default ❌ Broken
OpenGL ❌ Broken
D3D11 ❌ Broken
D3D9 ❌❌ filament doesn't load, exception Cannot read properties of null (reading getSupportedExtensions), probably expected?
D3D11on12 ✅ Works

Maybe a Chrome/ANGLE bug instead of NVidia?

The full-screen Suzanne demo does this with narrow window sizes on my NVIDIA card. Bloom is disabled.

We haven't reported this to NVIDIA yet because it's possible it's an ANGLE bug, need to narrow it down a bit. It reproduces easily, so that's good at least.

Do we have the concept of DEBUG builds on webgl? Maybe that would turn up something?

commented

I think this is one of the known problems that has been around for a while.
#3151

Do we know if those failing cases have bloom enabled?

Bloom is not enabled in the Suzanne demo, which is one of the failing cases.

This is probably related to #3151 and is not very actionable (Chrome bug or driver bug), closing.