ruffle-rs / ruffle

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

Crash on sm63game.swf #12198

Open angelo-wf opened 1 year ago

angelo-wf commented 1 year ago

Describe what you were doing

Using the SWF from runouw.com, and the same save data as from my earlier issue #10582 ), attempting to load file 1 caused the crash after a few frames of the level showing.

Also note that performance using the desktop app (macOS, installed with Homebrew) seems to be quite a bit worse than the web demo, as the file select menu was dropping frames quite a bit with the desktop app, but is smooth(er) when using the web demo.

(Additionally, performance in general seems to have gotten worse with newer version with the web demo as well, as the final rooms before the last Bowser fight are laggy enough to be nearly unplayable, but used to be smooth when I played through them when I created that earlier issue.)

The web demo was running in Safari 16.5.2.

What does the crash message say?

panicked at 'Scope::set: No top-level movie clip scope', core/src/avm1/scope.rs:200:13

Ruffle Version

0.1.0-nightly (f1e96bb1f16e0e95a80e788a99b34d9ff07d75c4 2023-07-20)

Affected platform

Desktop app

Operating system

Mac OS 13.4.1 (c) [64-bit ARM]

Additional information

Filename: sm63game.swf

Render Info

Renderer: wgpu Adapter Backend: Metal Adapter Name: "Apple M1 Pro" Adapter Device Type: IntegratedGpu Adapter Driver Name: "" Adapter Driver Info: "" Enabled features: Features(TEXTURE_ADAPTER_SPECIFIC_FORMAT_FEATURES | PUSH_CONSTANTS) Available features: Features(DEPTH_CLIP_CONTROL | INDIRECT_FIRST_INSTANCE | SHADER_F16 | RG11B10UFLOAT_RENDERABLE | DEPTH32FLOAT_STENCIL8 | TEXTURE_COMPRESSION_BC | TEXTURE_COMPRESSION_ETC2 | TEXTURE_COMPRESSION_ASTC | TEXTURE_FORMAT_16BIT_NORM | TEXTURE_COMPRESSION_ASTC_HDR | MAPPABLE_PRIMARY_BUFFERS | TEXTURE_BINDING_ARRAY | STORAGE_RESOURCE_BINDING_ARRAY | SAMPLED_TEXTURE_AND_STORAGE_BUFFER_ARRAY_NON_UNIFORM_INDEXING | UNIFORM_BUFFER_AND_STORAGE_TEXTURE_ARRAY_NON_UNIFORM_INDEXING | MULTI_DRAW_INDIRECT | ADDRESS_MODE_CLAMP_TO_ZERO | ADDRESS_MODE_CLAMP_TO_BORDER | POLYGON_MODE_LINE | VERTEX_WRITABLE_STORAGE | CLEAR_TEXTURE | SHADER_PRIMITIVE_INDEX) Current limits: Limits { max_texture_dimension_1d: 16384, max_texture_dimension_2d: 16384, max_texture_dimension_3d: 2048, max_texture_array_layers: 256, max_bind_groups: 4, max_bindings_per_bind_group: 640, 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: 16384, 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: 256, min_storage_buffer_offset_alignment: 256, max_inter_stage_shader_components: 60, 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, max_push_constant_size: 96 } Surface quality: low Surface samples: 1 Surface size: Extent3d { width: 1600, height: 1200, depth_or_array_layers: 1 }

Lord-McSweeney commented 1 year ago

This is because you were running in a debug build. I'm not sure why the MacOS version is a debug build; debug builds are significantly slower and panic in areas that we haven't entirely figured out. However, thanks for reporting this! I don't think it was previously known that SM63 has this assert fail.