Closed Bug 1519571 Opened 7 years ago Closed 6 years ago

WebGL blitFramebuffer doesn't work in some very particular state

Categories

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

66 Branch
defect

Tracking

()

RESOLVED DUPLICATE of bug 1523030

People

(Reporter: kainino, Unassigned)

Details

(Keywords: regression, Whiteboard: [gfx-noted])

User Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36

Steps to reproduce:

(triager: Please label this as WebGL and cc jgilbert, who I've already talked with about this issue)

Firefox Nightly 66.0a1 (2019-01-11) (64-bit)

  • Set about:config configs:
    javascript.options.shared_memory = true
    webgl.max-warnings-per-context = -1 (optional)

  • Download demo (attached or via
    https://drive.google.com/file/d/14R4H2MPBrFjVR_ZjW8jkChNVY_982ifP/view?usp=sharing )

  • Extract and start an HTTP server.

  • Load in Firefox.
    (This demo spins up a ton of threads (~30) so you may need a lot of free memory to get it to load. It takes a while to load (maybe 10 seconds on a fast machine). It won't be obvious when it finishes loading, because the screen is blank, but if it stops creating new threads it should be almost done.)

This project was built with my Emscripten patch:
https://github.com/kripken/emscripten/pull/7588
There are 3 code paths - one for WebGL 2, one for OES_vertex_array_object, and one for plain WebGL 1.
In the WebGL 2 case, it uses blitFramebuffer in blitOffscreenFramebuffer (which is basically a swapbuffers for an emulated backbuffer).
In the attached demo, you can modify which path is being used in UE4Game.js.
The blitFramebuffer call is on UE4Game.js:12976. You can edit the // <----- marked conditionals to change which path is used.

Actual results:

Renders a blank screen (only on the WebGL 2 path - the VAO and WebGL 1 paths work fine)
If you click the Fullscreen button, it will start rendering as expected.

Expected results:

Should render the Epic Zen Garden (Expected result can be seen by changing the conditionals mentioned above, or by clicking Fullscreen)

Never mind about the attachment, it's too large to attached on bugzilla (75 MB). Please use the link instead.

Component: Untriaged → Canvas: WebGL
Product: Firefox → Core

:jgilbert, can you take a look?

Flags: needinfo?(jgilbert)
Priority: -- → P3
Whiteboard: [gfx-noted]

I don't have bandwidth for this.

Flags: needinfo?(jgilbert)
Status: UNCONFIRMED → RESOLVED
Closed: 6 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.