Skip to content

Fix LOD promotion flicker in fullscreen mode - #930

Draft
OliverZhaohaibin wants to merge 4 commits into
codex/windows-fullscreen-flicker-hotfixfrom
codex/fix-fullscreen-wheel-zoom-lod-flicker
Draft

Fix LOD promotion flicker in fullscreen mode#930
OliverZhaohaibin wants to merge 4 commits into
codex/windows-fullscreen-flicker-hotfixfrom
codex/fix-fullscreen-wheel-zoom-lod-flicker

Conversation

@OliverZhaohaibin

Copy link
Copy Markdown
Owner

This pull request implements a robust, multi-phase LOD (Level of Detail) promotion pipeline for still image zoom in the player view. The changes ensure that LOD upgrades are staged as non-active residents before activation, with detailed event tracking and cancellation logic to handle rapid user interactions and failed promotions. The update also introduces a 200ms idle debounce for zoom, improved event emission for analytics, and better separation of staging, activation, and presentation phases.

Player View LOD Promotion Pipeline Improvements:

  • Added a 200ms idle debounce for LOD upgrades on zoom/resize, replacing the previous 80ms interval (_LOD_IDLE_DELAY_MS), and emit detailed still_zoom_changed and lod_upgrade_requested events for analytics and debugging. [1] [2] [3] [4]
  • Implemented a multi-phase LOD promotion process: staging a new LOD as a non-active resident, only activating and drawing it after a matching window submission, and tracking each phase with corresponding events (lod_upgrade_staging, lod_upgrade_resident, lod_upgrade_activated, lod_upgrade_presented). [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]
  • Added cancellation logic for pending LOD promotions when transitions occur (e.g., new image, video playback, or resource release) to prevent stale upgrades from affecting the active texture or render session. [1] [2] [3] [4] [5] [6] [7]

Documentation and Benchmarking Updates:

  • Updated documentation to describe the new LOD promotion phases, event emissions, and requirements for benchmarking, including how failed or stale promotions are handled and the need for DPI-diverse sample runs. [1] [2] [3]

Texture Management Enhancements:

  • Added stage_still_texture to allow foreground LOD uploads without replacing the active texture, supporting the new promotion pipeline.

These changes make the still image zoom experience more robust, responsive, and observable, while ensuring correctness even during rapid user actions or resource contention.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant