ruffle-rs / ruffle

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

Noticeably reduced performance when running flashVMS (vms.bigfurs.com) #3181

Open digitalf0x opened 3 years ago

digitalf0x commented 3 years ago

Describe the bug

When using the flashVMS interactive height visualizer at vms.bigfurs.com, mousing over the character detail cards at the top, dragging characters around, etc performs noticeably worse than in the official Adobe Flash Player.

There's additionally some issues with hitbox/boundary detection that shows in the recording.

Steps

  1. Load the flashVMS SWF in Ruffle, and if available, the legacy Flash Player Projector
    • Note: at this time, the standalone Ruffle player on Linux (2021-2-6 and 2021-2-9) appears to have additional momentary freezing issues compared to Firefox with WebRender. For Ruffle, I tested using the VMS website with the deployed self-hosted Ruffle plugin (2021-2-6).
  2. Wait for the UI to load. A row of character nicknames/heights should appear at the top.
    • If loading fails, the Normal button will switch to offline mode with a single default character
  3. Move the mouse across the row of character names at the top to trigger expanding/collapsing
  4. Observe the smoothness of the info-box animations
  5. Click and hold on a character outline, then drag it left and right
  6. Observe the smoothness of moving the character outline

Expected behavior

Animation of character detail boxes smoothly grow/shrink, characters can be dragged around easily, and flashVMS does not stutter or hang quite as much.

Recording of Adobe Flash Player Projector: Focus on the right half of the video

https://user-images.githubusercontent.com/32341702/107476773-877d0e00-6b44-11eb-9559-a359314dcd8f.mp4

Actual behavior

Animation of character detail boxes stutter (distinct from the hitbox detection issues), characters are slower to drag around, and flashVMS becomes less usable.

Recording of Ruffle in Firefox with WebRender: Focus on the left half of the video - Ruffle 2021-2-6

https://user-images.githubusercontent.com/32341702/107476781-8cda5880-6b44-11eb-81ee-e9bc86309253.mp4

Additional information

To try to minimize potential unexpected performance impacts, the two video clips were recorded after each other with as little changed as possible.

These specific performance issues might be filed elsewhere, it is hard to tell. If this is a duplicate issue, apologies, and feel free to close it.

This is not reporting the lack of filter effects (glow/outline around selected characters). The bug report template mentions this is a known issue.

Is the problem with the Ruffle desktop app, extension, or self-hosted version? Self-hosted version, though it appears to happen with desktop app as well.

What platform are you using?

Herschel commented 3 years ago

Thanks for the detailed report!

digitalf0x commented 3 years ago

This seems to have improved with updating to the 2021-4-8 Ruffle nightly (for the drop-down menu fix from https://github.com/ruffle-rs/ruffle/issues/2006 - huzzah!).

I wouldn't close this issue yet, the performance still doesn't quite feel on par, but I did want to offer the update and say thank you to all the Ruffle developers :slightly_smiling_face: