Milestone 22: Scene lifecycle and memory optimization, Part #4 #853
ikostan
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Scene lifecycle and memory optimization
Summary
PR #852 – Scene lifecycle and memory optimization
Optimizes the browser-based Playwright E2E test suite for the Godot HTML5 export by improving scene lifecycle management, reducing resource usage, and increasing observability of Godot engine loading and gameplay flows.
Key Changes
Test infrastructure & lifecycle
shared_pagefixture so most tests reuse a single initialized Playwright page/context instead of reloading the Godot WASM engine per test.init_page_and_wait_readyhelper (usesdomcontentloaded+window.godotInitializedchecks; short-circuits when already initialized).alert/confirmdialogs to prevent CDP hangs.Local test server & CI hardening
/dev/shm) to reduce GPU usage and OOM risk in containers.Test refactoring
open_options_menu,open_audio_menu,set_log_level, etc.).CI / Security
github/codeql-action/upload-sarifSHA in the Snyk and Trivy workflows for improved security and stability (scan behavior and upload logic otherwise unchanged).Related
Impact
Reduces redundant Godot WASM boots, lowers memory/GPU pressure in CI and local runs, improves test reliability and observability, and hardens cleanup so orphaned processes and WebGL resources no longer leak across the suite.
Reviewer's Guide
Refactors Playwright E2E tests to reuse a shared browser page and centralized Godot initialization, adds per-test memory and process lifecycle tracking, hardens browser/server teardown for GPU and JS heap leaks, and updates CI browser flags and SARIF upload actions for stability and security.
File-Level Changes
tests/conftest.pytests/test_utils.pytests/reset_audio_flow_test.pytests/volume_sliders_mutes_test.pytests/difficulty_flow_test.pytests/audio_flow_test.pytests/navigation_to_audio_test.pytests/back_flow_test.pytests/fuel_depletion_test.pytests/difficulty_integration_test.pytests/weapon_firing_test.pytests/conftest.pytests/load_main_menu_test.pytests/validate_clean_load_test.pytests/no_error_logs_test.pytests/audio_flow_test.pytests/log_level_test.pytests/reset_audio_flow_test.pytests/volume_sliders_mutes_test.pytests/difficulty_flow_test.pytests/audio_flow_test.pytests/navigation_to_audio_test.pytests/back_flow_test.pytests/fuel_depletion_test.pytests/difficulty_integration_test.pytests/weapon_firing_test.pytests/test_utils.pytests/conftest.pytests/ci/conftest.pyworkspace/run_browser_tests.sh.github/workflows/snyk.yml.github/workflows/trivy.ymlAssessment against linked issues
Possibly linked issues
🤖 Bot & AI Contributions
This pull request includes substantial automated and AI-assisted contributions focused on dependency updates, code style enforcement, static analysis, and AI-powered code reviews/summaries.
Summary of Activity
upload-sarifaction SHA in Snyk and Trivy workflows for security and stability.Contributors
github/codeql-action/upload-sarif.👤 Human Contribution
This discussion was created from the release Milestone 22: Scene lifecycle and memory optimization, Part #4.
All reactions