Skip to content

Invisible Object lists grows and should be clipped/culled #23315

@Reznnate

Description

@Reznnate

Describe the bug

Cost of rendering this SWF scales linearly until it died. RemoveChild() is likely never being called by the SWF. The SWF creates new Sprite particles every frame and moves them off-screen without removing them and probably sets visible = false, and they pile up.

Flash probably culled off-screen/invisible objects during both tick and render. Ruffle appears to process ALL display objects every frame — O(n) tick
and O(n) render regardless of visibility or position.

Also, the orphan manager retains removed MovieClips/Sprites (since AS3 Sprites are MovieClips internally in Ruffle), and enter_frame is called on
ALL orphans every frame. But this isn't the primary issue here since the objects aren't even being removed.

Expected behavior

Invisible Objects lists should be clipped/culled

Content Location

Rainbow_art4.zip

Affected platform

Desktop app

Operating system

Android, Windows

Browser

No response

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-coreArea: Core player, where no other category fitsT-perfType: Performance ImprovementsbugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions