Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to create VAO #1905

Open
richdenton opened this issue Dec 10, 2020 · 8 comments
Open

Unable to create VAO #1905

richdenton opened this issue Dec 10, 2020 · 8 comments
Labels
render-webgl Issues relating to the WebGL renderer

Comments

@richdenton
Copy link

richdenton commented Dec 10, 2020

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: 457d707

@richdenton
Copy link
Author

richdenton commented Dec 10, 2020

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
Copy link
Author

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

@richdenton richdenton changed the title Crash with Open Flash Charts Unable to create VAO Dec 10, 2020
@Herschel
Copy link
Member

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

@Herschel Herschel added the render-webgl Issues relating to the WebGL renderer label Dec 10, 2020
@richdenton
Copy link
Author

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
Copy link
Contributor

sombraguerrero commented Sep 17, 2021

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
Copy link
Member

Herschel commented Oct 18, 2021

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
Copy link
Member

Toad06 commented Feb 4, 2022

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 #6131 (comment) 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
Copy link
Member

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:

  • Check if explicitly destroying WebGL resources helps the issue -- I think these get GCd but we should probably do this anyway. For example, the drawing API makes lots of shapes so could potentially chew up a lot of video resources even before a GC.
  • "Recover" in the worst case by completely restarting the Ruffle instance with the canvas renderer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
render-webgl Issues relating to the WebGL renderer
Projects
None yet
Development

No branches or pull requests

4 participants