Fix Android slider visibility and Vulkan flickering - #142
Conversation
- Relaxed aggressive Android-specific throttling in SnakingSliderBody (0.005 -> 0.0001 delta) to prevent invisible sliders during early snaking phases. - Extended the Android-specific Update window in DrawableHitObject (-1000 -> -5000ms) to ensure initialization transforms like FadeIn are not skipped. - Moved Vulkan probe initialization to the OsuGameAndroid constructor to ensure results are available for SetHost, allowing environment overrides (present mode and disabled extensions) to correctly prevent flickering on Adreno GPUs. - Optimized DrawableSlider.CheckForResult by replacing LINQ-style loops with manual foreach iterations to reduce per-frame allocations and CPU overhead.
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
| { | ||
| double delta = Math.Max(Math.Abs(p0 - (SnakedStart ?? 0)), Math.Abs(p1 - (SnakedEnd ?? 0))); | ||
| if (delta < 0.005) return; | ||
| if (delta < 0.0001) return; |
This PR addresses issues with sliders being hidden on Android and Vulkan flickering on Adreno GPUs, while also providing minor performance optimizations in judgement logic.
Hidden Sliders (Android)
Updateloops and throttling slider "snaking" updates too much.SnakingSliderBody.csfrom0.005to0.0001.Updateloop visibility window inDrawableHitObject.csfrom1000msto5000msbeforeLifetimeStartto ensure initialization transforms (like FadeIn) are processed.Vulkan Flickering (Adreno GPUs)
VULKAN_DISABLE_EXTENSIONS) were not being applied early enough because theVulkanProbestarted too late.startVulkanProbe()to theOsuGameAndroidconstructor to ensure probe results are available when the framework callsSetHost.Performance Optimizations
DrawableSlider.CheckForResultby replacing manual indexing and LINQ-like logic withforeachloops on theNestedHitObjectscollection, reducing overhead during busy sections.PR created automatically by Jules for task 10618749125641978498 started by @winnerspiros