Skip to content

Animation overhaul, multi-monitor scoping and rendering optimization

Latest

Choose a tag to compare

@AhmedSaadi0 AhmedSaadi0 released this 23 Oct 12:33
· 17 commits to quickshell since this release

🚀 Release Notes / ملاحظات الإصدار (v1.10.0)


🇺🇸 English Version

✨ Key Improvements

  • ⚡ Full Animation Pipeline & Scene Graph Overhaul

    • Static Pre-blur Crossfade: Replaced per-frame fullscreen MultiEffect.blur re-evaluations with a static blurred layer crossfade, cutting GPU fill-rate load drastically during menu toggles.
    • FBO & Layer Churn Cleanup: Eliminated redundant and bogus off-screen layers (layer.enabled) across window containers and suppressed fullscreen 4x MSAA passes on iGPU environments.
    • Transition Caching: Implemented dedicated flat-texture caching (isAnimating) for sliding menus so complex component trees render once rather than repainting every single frame.
    • Dock & Navigation Optimizations: Converted dock layout-thrashing animations from anchors.horizontalCenterOffset to matrix-only transform: Translate, and eliminated redundant scale transforms across menu page transitions.
  • 🖥️ Smart Multi-Monitor Scoping & IPC Decoupling

    • Focused Monitor Isolation: Menu open events and desktop background effects (blur, translation, dimming) are now strictly scoped to the active monitor (isFocusedMonitor), keeping secondary displays completely static and eliminating PCIe bandwidth saturation.
    • Compositor IPC Sequencing: Delayed hyprctl gaps_out modifications by 340ms on menu open to prevent window-relayout storms from colliding with the QML slide-in animation.
    • Redundant Call Guarding: Added in-session debouncing and sentinels to drop duplicate IPC invocations to Hyprland.
  • 🔔 OSD Notifications Optimization

    • Decoupled MultiEffect shadows into a dedicated shadowSilhouette (z: -1, visible: true), stopping continuous 4-second progress bar updates from invalidating the shadow layer on each frame.
    • Tuned and bounded notification stack physics (SpringAnimation) to eliminate lingering sub-pixel jitter.

🇾🇪 النسخة العربية

✨ أبرز التحسينات

  • ⚡ إعادة هيكلة شاملة لمحرك الرسوميات والأنيميشن

    • تلاشي البلور الثابت (Static Pre-blur Crossfade): إيقاف حساب بلور الشاشة الكاملة إطاراً بإطار واستبداله بطبقة بلور ثابتة مسبقة المعالجة تتلاشى بسلاسة، مما خفف العبء الرسومي على كرت الشاشة (GPU Fill-rate) بشكل جذري أثناء فتح القوائم.
    • تنظيف طبقات التصيير الوهمية (FBO Cleanup): التخلص من الـ layer.enabled الزائدة في الحاويات وحذف عينات التنعيم المفرطة (MSAA 4x) لتسريع المعالجة على الكروت المدمجة (iGPU).
    • تفعيل الكاش أثناء الحركة (Transition Caching): تحويل القوائم المتحركة إلى نسيج مسطح (Flat Texture) يُرسم مرة واحدة أثناء الانزلاق بدلاً من إعادة رسم العناصر الحية في كل إطار.
    • تسريع شريط المهام والتنقل: تحويل حركة إزاحة الـ Dock من حسابات الـ Anchors المرهقة للمعالج إلى نقل مباشر بالمصفوفات (Translate)، مع إزالة الـ scale المزدوج من صفحات القوائم.
  • 🖥️ حصر التأثيرات على الشاشة النشطة وعزل استدعاءات الكومبوزيتر

    • عزل الشاشات المتعددة (Multi-Monitor Scoping): حصر تأثيرات فتح القائمة (البلور، الإزاحة، والتعتيم) على الشاشة التي يتواجد فيها الماوس فقط (isFocusedMonitor)، مما أبقى الشاشات الثانوية ساكنة تماماً وقضى على اختناق ممر الـ PCIe وتعارض الترددات (120Hz مقابل 72Hz).
    • تأخير تغيير فجوات النوافذ (IPC Sequencing): جدولة تغيير فجوات Hyprland (gaps_out) بعد انتهاء انزلاق القائمة بـ 340ms لتفادي تصادم تحريك نوافذ النظام مع فريمات القائمة في اللحظة ذاتها.
    • حارس الأوامر المكررة: إضافة حواجز فحص (Sentinels & Debounce) لمنع إرسال أوامر hyprctl متكررة بدون تغيير حقيقي في الحالة.
  • 🔔 تحسين كفاءة إشعارات الشاشة (OSD)

    • فصل طبقة الظل في عنصر مخصص (shadowSilhouette) بـ z: -1 و visible: true، مما منع شريط التقدم (4 ثوانٍ) من إعادة تصيير الظل في كل إطار.
    • ضبط فيزياء ارتداد قائمة الإشعارات (SpringAnimation) لتهدأ حركة الكروت بسرعة وتتوقف عن استهلاك المعالجة الدقيقة.