ruffle-rs / ruffle

A Flash Player emulator written in Rust
https://ruffle.rs
Other
15.48k stars 802 forks source link

Unable to create VAO #1905

Open richdenton opened 3 years ago

richdenton commented 3 years ago

Error Info

Error name: Error Error message: panicked at 'called Result::unwrap() on an Err value: "Unable to create VAO"', render/webgl/src/lib.rs:465:50 Error stack:

D@http://XXXXXXXXXX/admin/js/ruffle/core.ruffle.563f1d11a2766abcb2a4.js:1:20381
__wbg_new_df6e6ab7a65c4c4d@http://XXXXXXXXXX/admin/js/ruffle/ruffle.js:1:34989
wasm-stub@[wasm code]
<?>.wasm-function[1056]@[wasm code]
<?>.wasm-function[1379]@[wasm code]
<?>.wasm-function[3696]@[wasm code]
<?>.wasm-function[2923]@[wasm code]
<?>.wasm-function[3993]@[wasm code]
<?>.wasm-function[4023]@[wasm code]
<?>.wasm-function[3898]@[wasm code]
<?>.wasm-function[4024]@[wasm code]
<?>.wasm-function[3427]@[wasm code]
<?>.wasm-function[398]@[wasm code]
<?>.wasm-function[1752]@[wasm code]
<?>.wasm-function[1033]@[wasm code]
<?>.wasm-function[1228]@[wasm code]
<?>.wasm-function[328]@[wasm code]
<?>.wasm-function[550]@[wasm code]
<?>.wasm-function[1560]@[wasm code]
<?>.wasm-function[2737]@[wasm code]
<?>.wasm-function[2476]@[wasm code]
<?>.wasm-function[4191]@[wasm code]
wasm-stub@[wasm code]
_dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__ha67c67d9b57d32de@[native code]
E@http://XXXXXXXXXX/admin/js/ruffle/core.ruffle.563f1d11a2766abcb2a4.js:1:18826
f@http://XXXXXXXXXX/admin/js/ruffle/core.ruffle.563f1d11a2766abcb2a4.js:1:17506
promiseReactionJob@[native code]

Player Info

Allows script access: false

Page Info

Page URL: http://XXXXXXXXXX/admin/exec_dash/

Browser Info

Useragent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.1 Safari/605.1.15 OS: MacIntel

Ruffle Info

Version: 0.1.0 Name: nightly 2020-12-08 Channel: nightly Built: 2020-12-08T00:33:37.383Z Commit: 457d707ec24433ce6ca814da99bc89a5e2770305

richdenton commented 3 years ago

I've blanked out the URL since this is an internal dashboard running Open Flash Charts. Possibly related to #1744, but this is a newer build.

richdenton commented 3 years ago

Issue occurs under Safari, Chrome, and Edge. Not an issue for Firefox.

Herschel commented 3 years ago

Thanks for the report! Could you paste the full log from the developer console on Chrome? (F12)

richdenton commented 3 years ago

Sure thing. Here's Chrome running the latest Ruffle nightly:

[Violation] Forced reflow while executing JavaScript took 34ms
ruffle_web_bg.js:1259 Creating WebGL renderer...
ruffle_web_bg.js:1259 Creating WebGL2 context.
ruffle_web_bg.js:1259 WebGL graphics driver: NVIDIA GeForce GT 650M OpenGL Engine
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. <URL>
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. <URL>
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. <URL>
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. <URL>
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. <URL>
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. <URL>
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. <URL>
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. <URL>
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. <URL>
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. <URL>
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. <URL>
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. <URL>
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. <URL>
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. <URL>
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. <URL>
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. <URL>
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. <URL>
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. <URL>
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. <URL>
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. <URL>
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. <URL>
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. <URL>
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. <URL>
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. <URL>
ruffle_web_bg.js:1259 Minimum audio buffer sample rate: 5512
ruffle-player.js:202 New Ruffle instance created.
ruffle_web_bg.js:1259 Creating WebGL renderer...
ruffle_web_bg.js:1259 Creating WebGL2 context.
ruffle_web_bg.js:1259 WebGL graphics driver: NVIDIA GeForce GT 650M OpenGL Engine
ruffle_web_bg.js:1259 Minimum audio buffer sample rate: 5512
ruffle-player.js:202 New Ruffle instance created.
ruffle_web_bg.js:1259 Creating WebGL renderer...
ruffle_web_bg.js:1259 Creating WebGL2 context.
ruffle_web_bg.js:1259 WebGL graphics driver: NVIDIA GeForce GT 650M OpenGL Engine
ruffle_web_bg.js:1259 Minimum audio buffer sample rate: 5512
ruffle-player.js:202 New Ruffle instance created.
ruffle_web_bg.js:1259 Creating WebGL renderer...
ruffle_web_bg.js:1259 Creating WebGL2 context.
ruffle_web_bg.js:1259 WebGL graphics driver: NVIDIA GeForce GT 650M OpenGL Engine
ruffle_web_bg.js:1259 Minimum audio buffer sample rate: 5512
ruffle-player.js:202 New Ruffle instance created.
ruffle_web_bg.js:1259 Creating WebGL renderer...
ruffle_web_bg.js:1259 Creating WebGL2 context.
ruffle_web_bg.js:1259 WebGL graphics driver: NVIDIA GeForce GT 650M OpenGL Engine
ruffle_web_bg.js:1259 Minimum audio buffer sample rate: 5512
ruffle-player.js:202 New Ruffle instance created.
ruffle_web_bg.js:1259 Creating WebGL renderer...
ruffle_web_bg.js:1259 Creating WebGL2 context.
ruffle_web_bg.js:1259 WebGL graphics driver: NVIDIA GeForce GT 650M OpenGL Engine
ruffle_web_bg.js:1259 Minimum audio buffer sample rate: 5512
ruffle-player.js:202 New Ruffle instance created.
ruffle_web_bg.js:1259 Creating WebGL renderer...
ruffle_web_bg.js:1259 Creating WebGL2 context.
ruffle_web_bg.js:1259 WebGL graphics driver: NVIDIA GeForce GT 650M OpenGL Engine
ruffle_web_bg.js:1259 Minimum audio buffer sample rate: 5512
ruffle-player.js:202 New Ruffle instance created.
ruffle_web_bg.js:1259 Creating WebGL renderer...
ruffle_web_bg.js:1259 Creating WebGL2 context.
ruffle_web_bg.js:1259 WebGL graphics driver: NVIDIA GeForce GT 650M OpenGL Engine
ruffle_web_bg.js:1259 Minimum audio buffer sample rate: 5512
ruffle-player.js:202 New Ruffle instance created.
ruffle_web_bg.js:1259 Creating WebGL renderer...
ruffle_web_bg.js:1259 Creating WebGL2 context.
ruffle_web_bg.js:1259 WebGL graphics driver: NVIDIA GeForce GT 650M OpenGL Engine
ruffle_web_bg.js:1259 Minimum audio buffer sample rate: 5512
ruffle-player.js:202 New Ruffle instance created.
ruffle_web_bg.js:1259 Creating WebGL renderer...
ruffle_web_bg.js:1259 Creating WebGL2 context.
ruffle_web_bg.js:1259 WebGL graphics driver: NVIDIA GeForce GT 650M OpenGL Engine
ruffle_web_bg.js:1259 Minimum audio buffer sample rate: 5512
ruffle-player.js:202 New Ruffle instance created.
ruffle_web_bg.js:1259 Creating WebGL renderer...
ruffle_web_bg.js:1259 Creating WebGL2 context.
ruffle_web_bg.js:1259 WebGL graphics driver: NVIDIA GeForce GT 650M OpenGL Engine
ruffle_web_bg.js:1259 Minimum audio buffer sample rate: 5512
ruffle-player.js:202 New Ruffle instance created.
ruffle_web_bg.js:1259 Creating WebGL renderer...
ruffle_web_bg.js:1259 Creating WebGL2 context.
ruffle_web_bg.js:1259 WebGL graphics driver: NVIDIA GeForce GT 650M OpenGL Engine
ruffle_web_bg.js:1259 Minimum audio buffer sample rate: 5512
ruffle-player.js:202 New Ruffle instance created.
ruffle_web_bg.js:1259 Creating WebGL renderer...
ruffle_web_bg.js:1259 Creating WebGL2 context.
ruffle_web_bg.js:1259 WebGL graphics driver: NVIDIA GeForce GT 650M OpenGL Engine
ruffle_web_bg.js:1259 Minimum audio buffer sample rate: 5512
ruffle-player.js:202 New Ruffle instance created.
ruffle_web_bg.js:1259 Creating WebGL renderer...
ruffle_web_bg.js:1259 Creating WebGL2 context.
ruffle_web_bg.js:1259 WebGL graphics driver: NVIDIA GeForce GT 650M OpenGL Engine
ruffle_web_bg.js:1259 Minimum audio buffer sample rate: 5512
ruffle-player.js:202 New Ruffle instance created.
ruffle_web_bg.js:1259 Creating WebGL renderer...
ruffle_web_bg.js:1259 Creating WebGL2 context.
ruffle_web_bg.js:1259 WebGL graphics driver: NVIDIA GeForce GT 650M OpenGL Engine
ruffle_web_bg.js:1259 Minimum audio buffer sample rate: 5512
ruffle-player.js:202 New Ruffle instance created.
ruffle_web_bg.js:1259 Creating WebGL renderer...
ruffle_web_bg.js:1259 Creating WebGL2 context.
ruffle_web_bg.js:1259 WebGL graphics driver: NVIDIA GeForce GT 650M OpenGL Engine
ruffle_web_bg.js:1259 Minimum audio buffer sample rate: 5512
ruffle-player.js:202 New Ruffle instance created.
ruffle_web_bg.js:1259 Creating WebGL renderer...
WARNING: Too many active WebGL contexts. Oldest context will be lost.
WARNING: Too many active WebGL contexts. Oldest context will be lost.
WARNING: Too many active WebGL contexts. Oldest context will be lost.
WARNING: Too many active WebGL contexts. Oldest context will be lost.
WARNING: Too many active WebGL contexts. Oldest context will be lost.
WARNING: Too many active WebGL contexts. Oldest context will be lost.
WARNING: Too many active WebGL contexts. Oldest context will be lost.
WARNING: Too many active WebGL contexts. Oldest context will be lost.
ruffle_web_bg.js:1259 Creating WebGL2 context.
ruffle_web_bg.js:1259 WebGL graphics driver: NVIDIA GeForce GT 650M OpenGL Engine
ruffle_web_bg.js:1259 Minimum audio buffer sample rate: 5512
ruffle-player.js:202 New Ruffle instance created.
ruffle_web_bg.js:1259 Creating WebGL renderer...
ruffle_web_bg.js:1259 Creating WebGL2 context.
ruffle_web_bg.js:1259 WebGL graphics driver: NVIDIA GeForce GT 650M OpenGL Engine
ruffle_web_bg.js:1259 Minimum audio buffer sample rate: 5512
ruffle-player.js:202 New Ruffle instance created.
ruffle_web_bg.js:1259 Creating WebGL renderer...
ruffle_web_bg.js:1259 Creating WebGL2 context.
ruffle_web_bg.js:1259 WebGL graphics driver: NVIDIA GeForce GT 650M OpenGL Engine
ruffle_web_bg.js:1259 Minimum audio buffer sample rate: 5512
ruffle-player.js:202 New Ruffle instance created.
ruffle_web_bg.js:1259 Creating WebGL renderer...
ruffle_web_bg.js:1259 Creating WebGL2 context.
ruffle_web_bg.js:1259 WebGL graphics driver: NVIDIA GeForce GT 650M OpenGL Engine
ruffle_web_bg.js:1259 Minimum audio buffer sample rate: 5512
ruffle-player.js:202 New Ruffle instance created.
ruffle_web_bg.js:1259 Creating WebGL renderer...
ruffle_web_bg.js:1259 Creating WebGL2 context.
ruffle_web_bg.js:1259 WebGL graphics driver: NVIDIA GeForce GT 650M OpenGL Engine
ruffle_web_bg.js:1259 Minimum audio buffer sample rate: 5512
ruffle-player.js:202 New Ruffle instance created.
ruffle_web_bg.js:1259 Creating WebGL renderer...
ruffle_web_bg.js:1259 Creating WebGL2 context.
ruffle_web_bg.js:1259 WebGL graphics driver: NVIDIA GeForce GT 650M OpenGL Engine
ruffle_web_bg.js:1259 Minimum audio buffer sample rate: 5512
ruffle-player.js:202 New Ruffle instance created.
ruffle_web_bg.js:1259 Creating WebGL renderer...
ruffle_web_bg.js:1259 Creating WebGL2 context.
ruffle_web_bg.js:1259 WebGL graphics driver: NVIDIA GeForce GT 650M OpenGL Engine
ruffle_web_bg.js:1259 Minimum audio buffer sample rate: 5512
ruffle-player.js:202 New Ruffle instance created.
ruffle_web_bg.js:1259 Creating WebGL renderer...
ruffle_web_bg.js:1259 Creating WebGL2 context.
ruffle_web_bg.js:1259 WebGL graphics driver: NVIDIA GeForce GT 650M OpenGL Engine
ruffle_web_bg.js:1259 Minimum audio buffer sample rate: 5512
ruffle-player.js:202 New Ruffle instance created.
ruffle-player.js:277 Loading SWF file ../open-flash-chart.swf
ruffle-player.js:277 Loading SWF file ../open-flash-chart.swf
ruffle-player.js:277 Loading SWF file ../open-flash-chart.swf
ruffle-player.js:277 Loading SWF file ../open-flash-chart.swf
ruffle-player.js:277 Loading SWF file ../open-flash-chart.swf
ruffle-player.js:277 Loading SWF file ../open-flash-chart.swf
ruffle-player.js:277 Loading SWF file ../open-flash-chart.swf
ruffle-player.js:277 Loading SWF file ../open-flash-chart.swf
ruffle-player.js:277 Loading SWF file ../open-flash-chart.swf
ruffle-player.js:277 Loading SWF file ../open-flash-chart.swf
ruffle-player.js:277 Loading SWF file ../open-flash-chart.swf
ruffle-player.js:277 Loading SWF file ../open-flash-chart.swf
ruffle-player.js:277 Loading SWF file ../open-flash-chart.swf
ruffle-player.js:277 Loading SWF file ../open-flash-chart.swf
ruffle-player.js:277 Loading SWF file ../open-flash-chart.swf
ruffle-player.js:277 Loading SWF file ../open-flash-chart.swf
ruffle-player.js:277 Loading SWF file ../open-flash-chart.swf
ruffle-player.js:277 Loading SWF file ../open-flash-chart.swf
ruffle-player.js:277 Loading SWF file ../open-flash-chart.swf
ruffle-player.js:277 Loading SWF file ../open-flash-chart.swf
ruffle-player.js:277 Loading SWF file ../open-flash-chart.swf
ruffle-player.js:277 Loading SWF file ../open-flash-chart.swf
ruffle_web_bg.js:1259 Loaded SWF version 8, with a resolution of 400x300
ruffle_web_bg.js:473 panicked at 'called `Result::unwrap()` on an `Err` value: "Unable to create VAO"', render/webgl/src/lib.rs:465:50

Stack:

Error
    at Object.N (http://XXXXXXXXXX/admin/js/ruffle/core.ruffle.563f1d11a2766abcb2a4.js:1:20683)
    at __wbg_new_59cb74e423758ede (http://XXXXXXXXXX/admin/js/ruffle/ruffle.js:1:35665)
    at http://XXXXXXXXXX/admin/js/ruffle/70e93054b26514a6c9e6.module.wasm:wasm-function[1760]:0x287843
    at http://XXXXXXXXXX/admin/js/ruffle/70e93054b26514a6c9e6.module.wasm:wasm-function[1073]:0x2157a8
    at http://XXXXXXXXXX/admin/js/ruffle/70e93054b26514a6c9e6.module.wasm:wasm-function[1396]:0x254491
    at http://XXXXXXXXXX/admin/js/ruffle/70e93054b26514a6c9e6.module.wasm:wasm-function[3730]:0x309308
    at http://XXXXXXXXXX/admin/js/ruffle/70e93054b26514a6c9e6.module.wasm:wasm-function[2935]:0x2eaf98
    at http://XXXXXXXXXX/admin/js/ruffle/70e93054b26514a6c9e6.module.wasm:wasm-function[4025]:0x30df36
    at http://XXXXXXXXXX/admin/js/ruffle/70e93054b26514a6c9e6.module.wasm:wasm-function[4055]:0x30e499
    at http://XXXXXXXXXX/admin/js/ruffle/70e93054b26514a6c9e6.module.wasm:wasm-function[3930]:0x30cb06

Z @ ruffle_web_bg.js:473
__wbg_error_4bb6c2a97407129a @ wasm chunk loading:335
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2878f4
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2157a8
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x254491
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x309308
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2eaf98
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x30df36
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x30e499
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x30cb06
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x30e4cf
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x302a30
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x10f7fe
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2894a5
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x20fe20
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x23a2bd
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0xc061c
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x16bef5
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x26fffe
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2e1368
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2cfacf
_dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__ha67c67d9b57d32de @ 70e93054b26514a6c9e6.module.wasm:0x31014a
E @ ruffle_web_bg.js:248
f @ ruffle_web_bg.js:205
Promise.then (async)
lr @ ruffle_web_bg.js:1542
__wbg_then_4a7a614abbbe6d81 @ wasm chunk loading:1259
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2e7ad0
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2df90b
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2cbf87
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x3093f4
_dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__ha67c67d9b57d32de @ 70e93054b26514a6c9e6.module.wasm:0x31014a
E @ ruffle_web_bg.js:248
f @ ruffle_web_bg.js:205
Promise.then (async)
sr @ ruffle_web_bg.js:1547
__wbg_then_3b7ac098cfda2fa5 @ wasm chunk loading:1263
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x264c4f
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x19633a
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x16bbbd
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x26fffe
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2e1368
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2cfacf
_dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__ha67c67d9b57d32de @ 70e93054b26514a6c9e6.module.wasm:0x31014a
E @ ruffle_web_bg.js:248
f @ ruffle_web_bg.js:205
Promise.then (async)
lr @ ruffle_web_bg.js:1542
__wbg_then_4a7a614abbbe6d81 @ wasm chunk loading:1259
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2e7ad0
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2df90b
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2cbf87
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x3093f4
_dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__ha67c67d9b57d32de @ 70e93054b26514a6c9e6.module.wasm:0x31014a
E @ ruffle_web_bg.js:248
f @ ruffle_web_bg.js:205
Promise.then (async)
sr @ ruffle_web_bg.js:1547
__wbg_then_3b7ac098cfda2fa5 @ wasm chunk loading:1263
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x264c4f
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x1962a1
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x16bbbd
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x26fffe
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2e1368
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2cfacf
_dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__ha67c67d9b57d32de @ 70e93054b26514a6c9e6.module.wasm:0x31014a
E @ ruffle_web_bg.js:248
f @ ruffle_web_bg.js:205
Promise.then (async)
lr @ ruffle_web_bg.js:1542
__wbg_then_4a7a614abbbe6d81 @ wasm chunk loading:1259
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2e7ad0
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2ca551
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x306a55
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2318a1
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x275eb4
ruffle_stream_from @ 70e93054b26514a6c9e6.module.wasm:0x2f8e69
stream_from @ ruffle_web_bg.js:343
(anonymous) @ ruffle-player.js:279
c @ ruffle-player.js:4
Promise.then (async)
a @ ruffle-player.js:6
(anonymous) @ ruffle-player.js:7
h @ ruffle-player.js:3
load @ ruffle-player.js:264
connectedCallback @ ruffle-embed.js:34
L @ polyfills.js:47
U @ polyfills.js:60
polyfill @ source-api.js:37
init @ public-api.js:128
70e93054b26514a6c9e6.module.wasm:0x2eafb5 Uncaught (in promise) RuntimeError: unreachable
    at http://XXXXXXXXXX/admin/js/ruffle/70e93054b26514a6c9e6.module.wasm:wasm-function[2935]:0x2eafb5
    at http://XXXXXXXXXX/admin/js/ruffle/70e93054b26514a6c9e6.module.wasm:wasm-function[4122]:0x30effb
    at http://XXXXXXXXXX/admin/js/ruffle/70e93054b26514a6c9e6.module.wasm:wasm-function[4054]:0x30e46b
    at http://XXXXXXXXXX/admin/js/ruffle/70e93054b26514a6c9e6.module.wasm:wasm-function[4120]:0x30ef9a
    at http://XXXXXXXXXX/admin/js/ruffle/70e93054b26514a6c9e6.module.wasm:wasm-function[1759]:0x28772d
    at http://XXXXXXXXXX/admin/js/ruffle/70e93054b26514a6c9e6.module.wasm:wasm-function[1396]:0x25441e
    at http://XXXXXXXXXX/admin/js/ruffle/70e93054b26514a6c9e6.module.wasm:wasm-function[3730]:0x309308
    at http://XXXXXXXXXX/admin/js/ruffle/70e93054b26514a6c9e6.module.wasm:wasm-function[2935]:0x2eaf98
    at http://XXXXXXXXXX/admin/js/ruffle/70e93054b26514a6c9e6.module.wasm:wasm-function[4074]:0x30e7e0
    at http://XXXXXXXXXX/admin/js/ruffle/70e93054b26514a6c9e6.module.wasm:wasm-function[4027]:0x30df90
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2eafb5
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x30effb
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x30e46b
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x30ef9a
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x28772d
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x25441e
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x309308
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2eaf98
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x30e7e0
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x30df90
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x30e809
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x187f39
ruffle_destroy @ 70e93054b26514a6c9e6.module.wasm:0x30d10b
destroy @ ruffle_web_bg.js:375
panic @ ruffle-player.js:590
X @ ruffle_web_bg.js:432
__wbg_panic_bbc809dd04a12c60 @ wasm chunk loading:303
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x215ac5
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x254491
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x309308
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2eaf98
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x30df36
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x30e499
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x30cb06
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x30e4cf
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x302a30
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x10f7fe
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2894a5
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x20fe20
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x23a2bd
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0xc061c
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x16bef5
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x26fffe
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2e1368
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2cfacf
_dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__ha67c67d9b57d32de @ 70e93054b26514a6c9e6.module.wasm:0x31014a
E @ ruffle_web_bg.js:248
f @ ruffle_web_bg.js:205
Promise.then (async)
lr @ ruffle_web_bg.js:1542
__wbg_then_4a7a614abbbe6d81 @ wasm chunk loading:1259
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2e7ad0
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2df90b
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2cbf87
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x3093f4
_dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__ha67c67d9b57d32de @ 70e93054b26514a6c9e6.module.wasm:0x31014a
E @ ruffle_web_bg.js:248
f @ ruffle_web_bg.js:205
Promise.then (async)
sr @ ruffle_web_bg.js:1547
__wbg_then_3b7ac098cfda2fa5 @ wasm chunk loading:1263
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x264c4f
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x19633a
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x16bbbd
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x26fffe
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2e1368
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2cfacf
_dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__ha67c67d9b57d32de @ 70e93054b26514a6c9e6.module.wasm:0x31014a
E @ ruffle_web_bg.js:248
f @ ruffle_web_bg.js:205
Promise.then (async)
lr @ ruffle_web_bg.js:1542
__wbg_then_4a7a614abbbe6d81 @ wasm chunk loading:1259
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2e7ad0
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2df90b
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2cbf87
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x3093f4
_dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__ha67c67d9b57d32de @ 70e93054b26514a6c9e6.module.wasm:0x31014a
E @ ruffle_web_bg.js:248
f @ ruffle_web_bg.js:205
Promise.then (async)
sr @ ruffle_web_bg.js:1547
__wbg_then_3b7ac098cfda2fa5 @ wasm chunk loading:1263
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x264c4f
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x1962a1
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x16bbbd
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x26fffe
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2e1368
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2cfacf
_dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__ha67c67d9b57d32de @ 70e93054b26514a6c9e6.module.wasm:0x31014a
E @ ruffle_web_bg.js:248
f @ ruffle_web_bg.js:205
Promise.then (async)
lr @ ruffle_web_bg.js:1542
__wbg_then_4a7a614abbbe6d81 @ wasm chunk loading:1259
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2e7ad0
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2ca551
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x306a55
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x2318a1
(anonymous) @ 70e93054b26514a6c9e6.module.wasm:0x275eb4
ruffle_stream_from @ 70e93054b26514a6c9e6.module.wasm:0x2f8e69
stream_from @ ruffle_web_bg.js:343
(anonymous) @ ruffle-player.js:279
c @ ruffle-player.js:4
Promise.then (async)
a @ ruffle-player.js:6
(anonymous) @ ruffle-player.js:7
h @ ruffle-player.js:3
load @ ruffle-player.js:264
connectedCallback @ ruffle-embed.js:34
L @ polyfills.js:47
U @ polyfills.js:60
polyfill @ source-api.js:37
init @ public-api.js:128
Show 8 more frames
ruffle-player.js:277 Loading SWF file ../open-flash-chart.swf
ruffle-player.js:277 Loading SWF file ../open-flash-chart.swf
sombraguerrero commented 3 years ago

A new example of this came in today. It was initially tested with the Chrome store build, but it also still happens on the nightlies. Last replicated with Chrome extension build 9/12/21. It seems that there are simply too many SWFs loading on this page at once and core just sort of overloads and goes into a panic. When I load individual files, it's fine. http://www.bcae1.com/switchingpowersupplydesign/switchingpowersupplytut01.htm

Herschel commented 2 years ago

Closed a bunch of duplicate issues with this. Let's keep this as the primary issue.

We should figure out a) what situations this tends to happen on, and b) how to fail more gracefully.

It seems like this is happening later on in execution, because a failure to create a VAO in Ruffle's startup should fallback to the canvas renderer. I guess the hardware is hitting a max VAO limit or similar(?). Maybe it'd be possible to completely restart Ruffle using the canvas renderer in this case.

Toad06 commented 2 years ago

I've found one case where the crash happens (that @sombraguerrero actually already mentioned): when at least 17 SWF files are loaded at the same time, as it's not possible to have more than 16 WebGL contexts in a same tab in Chrome (could this value change depending on the device?). Here's a demonstration:


  1. Using the browser's console ("Elements" tab), inject 16 times the following tag in a div ("Edit as HTML"), then apply the changes to the page. <embed src="AnyFile.swf" width="100" height="100" />

  2. Don't reload the page and inject a single time the same tag in another div, then apply the changes to the page. Notice the first WebGL context was lost ("WARNING: Too many active WebGL contexts. Oldest context will be lost." in the console) but no crash occurred.

  3. Now reload the page. Inject 17 times the same tag in a div, then apply the changes to the page. Notice all files show the panic template, as Ruffle crashed with the error "Unable to create VAO".


I think that fixing https://github.com/ruffle-rs/ruffle/issues/6131#issuecomment-1026769010 could indirectly help for some of these VAO issues we had as most pages probably don't intend to show so many SWFs at once. #4925 could also be game changer.

Herschel commented 2 years ago

Looking briefly through the latest batch of these, mostly failures in shape registration (either font glyphs or drawing API). Those ones are probably hitting some internal limit on VAOs (running out of video memory?) depending on a specific GPU -- I suspect a lot of these are old integrated GPUs. Still needs investigation: