ruffle-rs / ruffle

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

Error on https://pokehidden.archive.hexstream.net/banned_from_equestria_daily/game.swf.html #18561

Open VampBr2024 opened 3 days ago

VampBr2024 commented 3 days ago

Error Info

Error name: Error Error message: panicked at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wgpu-0.20.1/src/backend/wgpu_core.rs:2996:5: wgpu error: Validation Error

Caused by: In Device::create_buffer Not enough memory left.

Error stack:

Error: panicked at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wgpu-0.20.1/src/backend/wgpu_core.rs:2996:5:
wgpu error: Validation Error

Caused by:
    In Device::create_buffer
    Not enough memory left.

    at push.69.n.wbg.__wbg_new_28c511d9baebfa89 (https://global.hexstream.dev/scripts/ruffle/core.ruffle.8413c1e69e2f0e8b03a2.js:1:79048)
    at ruffle_web.wasm.js_sys::Error::new::h4d90f277f68d570d (wasm://wasm/ruffle_web.wasm-033421f6:wasm-function[12880]:0x9e0531)
    at ruffle_web.wasm.core::ops::function::FnOnce::call_once{{vtable.shim}}::h55ede6a173052926 (wasm://wasm/ruffle_web.wasm-033421f6:wasm-function[9897]:0x975e00)
    at ruffle_web.wasm.std::panicking::rust_panic_with_hook::h6731baa78621a747 (wasm://wasm/ruffle_web.wasm-033421f6:wasm-function[6556]:0x86904b)
    at ruffle_web.wasm.core::panicking::panic_fmt::h5c7ce52813e94bcd (wasm://wasm/ruffle_web.wasm-033421f6:wasm-function[10329]:0x9a05b6)
    at ruffle_web.wasm.core::ops::function::Fn::call::hb4c12c7f4d33d40c (wasm://wasm/ruffle_web.wasm-033421f6:wasm-function[7391]:0x8ab0b7)
    at ruffle_web.wasm.<T as wgpu::context::DynContext>::device_create_buffer::h410d2d1959326227 (wasm://wasm/ruffle_web.wasm-033421f6:wasm-function[7680]:0x8c490f)
    at ruffle_web.wasm.<wgpu::Device as wgpu::util::device::DeviceExt>::create_buffer_init::h2f0a5846ee9df2b7 (wasm://wasm/ruffle_web.wasm-033421f6:wasm-function[1903]:0x503ea2)
    at ruffle_web.wasm.ruffle_render_wgpu::buffer_builder::BufferBuilder::finish::h69aa5f6b57507fd8 (wasm://wasm/ruffle_web.wasm-033421f6:wasm-function[7823]:0x8cb91e)
    at ruffle_web.wasm.ruffle_render_wgpu::backend::WgpuRenderBackend<T>::register_shape_internal::h5810432e400d9657 (wasm://wasm/ruffle_web.wasm-033421f6:wasm-function[1066]:0x30bbb1)

Player Info

Allows script access: true Renderer: wgpu Adapter Backend: Gl Adapter Name: "Mali-G52 MC2" Adapter Device Type: IntegratedGpu Adapter Driver Name: "WebGL 2.0 (OpenGL ES" Adapter Driver Info: "3.0 Chromium)" Enabled features: Features(TEXTURE_ADAPTER_SPECIFIC_FORMAT_FEATURES | SHADER_UNUSED_VERTEX_OUTPUT) Available features: Features(DEPTH32FLOAT_STENCIL8 | TEXTURE_COMPRESSION_ETC2 | TEXTURE_COMPRESSION_ASTC | TEXTURE_COMPRESSION_ASTC_HDR | PUSH_CONSTANTS | CLEAR_TEXTURE) Current limits: Limits { max_texture_dimension_1d: 4096, max_texture_dimension_2d: 4096, max_texture_dimension_3d: 4096, max_texture_array_layers: 256, max_bind_groups: 4, max_bindings_per_bind_group: 1000, max_dynamic_uniform_buffers_per_pipeline_layout: 8, max_dynamic_storage_buffers_per_pipeline_layout: 0, max_sampled_textures_per_shader_stage: 16, max_samplers_per_shader_stage: 16, max_storage_buffers_per_shader_stage: 0, max_storage_textures_per_shader_stage: 0, max_uniform_buffers_per_shader_stage: 11, max_uniform_buffer_binding_size: 65536, max_storage_buffer_binding_size: 0, max_vertex_buffers: 8, max_buffer_size: 268435456, max_vertex_attributes: 16, max_vertex_buffer_array_stride: 255, min_uniform_buffer_offset_alignment: 32, min_storage_buffer_offset_alignment: 256, max_inter_stage_shader_components: 124, max_color_attachments: 8, max_color_attachment_bytes_per_sample: 32, max_compute_workgroup_storage_size: 0, max_compute_invocations_per_workgroup: 0, max_compute_workgroup_size_x: 0, max_compute_workgroup_size_y: 0, max_compute_workgroup_size_z: 0, max_compute_workgroups_per_dimension: 0, min_subgroup_size: 0, max_subgroup_size: 0, max_push_constant_size: 0, max_non_sampler_bindings: 1000000 } Surface quality: high Surface samples: 4 Surface size: (550, 400, 1) Player type: Object SWF URL: game.swf Param movie: game.swf Param quality: high Param allowFullScreen: true Attribute 0: undefined Attribute 1: undefined Attribute 2: undefined Attribute 3: undefined Attribute 4: undefined

Page Info

Page URL: https://pokehidden.archive.hexstream.net/banned_from_equestria_daily/game.swf.html# SWF URL: https://pokehidden.archive.hexstream.net/banned_from_equestria_daily/game.swf

Browser Info

User Agent: Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36 Platform: Linux armv81 Has touch support: true

Ruffle Info

Version: 0.1.0 Name: nightly 2024-06-25 Channel: nightly Built: 2024-06-25T00:05:32.860Z Commit: e83e39ad27aacde29583d51ed0ad234de4f370ef Is extension: false

Metadata

width: 496 height: 368 frameRate: 30 numFrames: 1748 swfVersion: 15 backgroundColor: #000000 isActionScript3: false uncompressedLength: 40590425

Hexstream commented 2 days ago

Thank you for the report, I think you are running out of RAM or GPU memory while trying to load the game. Do you know how much RAM and GPU memory your device has?

Currently, as far as I understand, all assets in the game need to be completely loaded before the game can begin.

It would be really nice if just-in-time loading were implemented one day (although this might potentially require a huge internal redesign?), which would mean the game would effectively load instantly and take much less resources, thus could load on much more devices.

An even more advanced idea would be to compile the entire runtime against specific flash files and tree-shake the result, so that only the parts of the runtime needed by a specific flash file would need to be loaded at all. This would be an especially big win for smaller content.