[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-04-17 Thread Brandon Wright
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #49 from Brandon Wright  ---
(In reply to Brandon Wright from comment #48)
> Created attachment 180356 [details]
> Patch using public API and setting interval to lowest refresh rate on hotplug
> 
> Here's a better patch that might be of appropriate enough quality. This goes
> in quickeffect and sets the minimum interval when displays are added to the
> QuickSceneEffect.

Actually, ignore this one. It's not as smooth for some reason. I can't seem to
get the same smoothness as the simple private API patch. I think it's necessary
to have access to the private members of QAnimationDriver and/or QUnifiedTimer
to fix correctly.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-04-17 Thread Brandon Wright
https://bugs.kde.org/show_bug.cgi?id=485927

Brandon Wright  changed:

   What|Removed |Added

 Attachment #180293|0   |1
is obsolete||

--- Comment #48 from Brandon Wright  ---
Created attachment 180356
  --> https://bugs.kde.org/attachment.cgi?id=180356&action=edit
Patch using public API and setting interval to lowest refresh rate on hotplug

Here's a better patch that might be of appropriate enough quality. This goes in
quickeffect and sets the minimum interval when displays are added to the
QuickSceneEffect.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-04-15 Thread Brandon Wright
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #42 from Brandon Wright  ---
Created attachment 180257
  --> https://bugs.kde.org/attachment.cgi?id=180257&action=edit
Patch using private API to update scene graph timers when window refreshed

I've attached a patch for kwin that uses the private API to update the timers
before rendering. This is pretty simple and seems to fix the problem for me.
Let's see if it works for anyone else.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-04-15 Thread Brandon Wright
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #47 from Brandon Wright  ---
Created attachment 180293
  --> https://bugs.kde.org/attachment.cgi?id=180293&action=edit
Patch using public API and setting interval to 4ms

Here's a patch using the public QAnimationDriver API and using it to set the
interval to 16ms by default, then 4ms in workspace.cpp as an example, which
makes things smoother. I tried using Workspace::init like you did to set the
interval lower than the fastest refresh rate, which would be (100 /
fastestRefreshRate), but it just doesn't detect any displays at that point. It
probably needs to be done wherever kwin does display hotplugging and/or video
mode changes. 

I also tried doing a singleton instance and running advance on the window
update, but this doesn't work right because it accelerates the animation.
QDefaultAnimationDriver has access to QUnifiedTimer's private API and can hook
the timer update properly, but with what we're given it's not possible to do
something like my simpler patch. You could have the animation driver not do
timed updates at all and then update on refresh, but I worry that it would
break something else--especially if kwin adds other things using QtQuick.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-04-15 Thread Brandon Wright
https://bugs.kde.org/show_bug.cgi?id=485927

Brandon Wright  changed:

   What|Removed |Added

 Attachment #180257|0   |1
is obsolete||

--- Comment #46 from Brandon Wright  ---
Created attachment 180290
  --> https://bugs.kde.org/attachment.cgi?id=180290&action=edit
Patch using private API to update scene graph timers when window refreshed 2

Update patch for possible null pointer dereference.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-04-15 Thread David Edmundson
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #45 from David Edmundson  ---
>I'm also wondering whether other components using QtQuick would need changes.

Most others are fine. If you're using threaded rendering (which is the default)
you get a custom animation driver provided by QSGGuiThreadedRenderLoop. It
makes use of the quick animation driver being backed by thread-local storage to
end up having a custom animation driver per window that gets driven.

That remains an option for kwin, but introducing threads always has some risk!

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-04-14 Thread Brandon Wright
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #44 from Brandon Wright  ---
(In reply to David Edmundson from comment #43)
> >The presumably sanctioned alternative is to inherit QAnimationDriver and use 
> >the install() method, which replaces the global animation driver.
> 
> Yeah, that's what I had in #24, though it seemed that got lost in the next
> comment. 
> 
> I rebased it and putting a direct myself this time :)
> https://invent.kde.org/plasma/kwin/-/commits/work/d_ed/animation_driver
> 
> ---
> 
> I'll test your patch too and see if that is more noticeable for me.
Yeah, I only saw the duration patch before. I tried the animation driver one
and it causes the animation to not update at all. Because it's installed
globally, I'd guess a subclassed animation driver would need a lot of
duplicated boilerplate so it reacts similarly enough to QDefaultAnimationTimer
to not break things. QUnifiedTimer::updateAnimationTimers is essentially
exactly what we needed. It doesn't have any side-effects because it just
triggers an early update and then lets the timer get on with its business. It's
unfortunate that it's a private API.

I'm also wondering whether other components using QtQuick would need changes.
Are they using the full render loop or doing a partially custom thing like
kwin?.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-04-14 Thread David Edmundson
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #43 from David Edmundson  ---
>The presumably sanctioned alternative is to inherit QAnimationDriver and use 
>the install() method, which replaces the global animation driver.

Yeah, that's what I had in #24, though it seemed that got lost in the next
comment. 

I rebased it and putting a direct myself this time :)
https://invent.kde.org/plasma/kwin/-/commits/work/d_ed/animation_driver

---

I'll test your patch too and see if that is more noticeable for me.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-04-13 Thread Brandon Wright
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #41 from Brandon Wright  ---
Sticking
QUnifiedTimer::instance(false)->updateAnimationTimers(); at the beginning of
OffscreenQuickView::update()
is probably the wanted behavior.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-04-13 Thread Brandon Wright
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #39 from Brandon Wright  ---
Ok, here's a hacky example of how to fix it:

> diff --git a/src/effect/offscreenquickview.cpp 
> b/src/effect/offscreenquickview.cpp
> index 3dc83f9b2e..44ed0e8eae 100644
> --- a/src/effect/offscreenquickview.cpp
> +++ b/src/effect/offscreenquickview.cpp
> @@ -31,10 +31,13 @@
>  #include 
>  #include 
>  #include  // for QMutableEventPoint
> +#include 
>  
>  namespace KWin
>  {
>  
> +static bool instantiatedTimer = false;
> +
>  class Q_DECL_HIDDEN OffscreenQuickView::Private
>  {
>  public:
> @@ -146,6 +149,13 @@ OffscreenQuickView::OffscreenQuickView(ExportMode 
> exportMode, bool alpha)
>  d->m_repaintTimer->setSingleShot(true);
>  d->m_repaintTimer->setInterval(10);
>  
> +if (!instantiatedTimer)
> +{
> +auto timerInstance = QUnifiedTimer::instance();
> +timerInstance->setTimingInterval(1);
> +instantiatedTimer = true;
> +}
> +
>  connect(d->m_repaintTimer.get(), &QTimer::timeout, this, 
> &OffscreenQuickView::update);
>  connect(d->m_renderControl.get(), &QQuickRenderControl::renderRequested, 
> this, &OffscreenQuickView::handleRenderRequested);
>  connect(d->m_renderControl.get(), &QQuickRenderControl::sceneChanged, 
> this, &OffscreenQuickView::handleSceneChanged);

This isn't the best. It's just to show an example that works. It uses private
APIs. The timing interval would need to be set appropriate to the appropriate
time of the fastest refresh rate and the use of a static global would need to
be changed to something else and moved to the actual kwin initialization.

The presumably sanctioned alternative is to inherit QAnimationDriver and use
the install() method, which replaces the global animation driver. This would
need to add its own logic and run the advanceAnimation() method to update the
scene graph. If you wanted it to be driven by the window being refreshed like
Zamundaaa says is supposed to happen, you could hook the refresh signal up and
just call advanceAnimation instead of doing any timers. That might cause
problems if the scene graph stuff is being used elsewhere.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-04-13 Thread Brandon Wright
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #40 from Brandon Wright  ---
I didn't notice the overload on instance() which lets you keep the current, so
here's a better version using the private API:
> diff --git a/src/effect/offscreenquickview.cpp 
> b/src/effect/offscreenquickview.cpp
> index 3dc83f9b2e..f556e3e14f 100644
> --- a/src/effect/offscreenquickview.cpp
> +++ b/src/effect/offscreenquickview.cpp
> @@ -31,6 +31,7 @@
>  #include 
>  #include 
>  #include  // for QMutableEventPoint
> +#include 
>  
>  namespace KWin
>  {
> @@ -145,6 +146,7 @@ OffscreenQuickView::OffscreenQuickView(ExportMode 
> exportMode, bool alpha)
>  d->m_repaintTimer = std::make_unique();
>  d->m_repaintTimer->setSingleShot(true);
>  d->m_repaintTimer->setInterval(10);
> +QUnifiedTimer::instance(false)->setTimingInterval(1);
>  
>  connect(d->m_repaintTimer.get(), &QTimer::timeout, this, 
> &OffscreenQuickView::update);
>  connect(d->m_renderControl.get(), &QQuickRenderControl::renderRequested, 
> this, &OffscreenQuickView::handleRenderRequested);

Change the 1 in setTimingInterval to be lower than smallest refresh rate
interval of all available displays.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-04-10 Thread Zamundaaa
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #38 from Zamundaaa  ---
hmm right, QQuickRenderControl that we do use doesn't seem to have equivalent
logic.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-04-10 Thread David Edmundson
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #37 from David Edmundson  ---
>QSGRenderThread::syncAndRender advances the animation driver every time right 
>before rendering, afaict that is not throttled below the display refresh rate.

KWin won't use that.

Kwin *currently at least* only uses the main thread render loop

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-04-09 Thread Brandon Wright
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #36 from Brandon Wright  ---
I looked into it further, and most of what Zamundaaa says is correct, except
this: 
> this happens when KWin tells Qt to render the window.
The only time that syncAndRender is called is directly from the render loop.
The individual sync and render functions called from kwin are not the same
thing. The render loop constantly calls syncAndRender, so theoretically it
would be constantly updating, but it's not. Eventually, it all just narrows
back to that QUnifiedTimer's trigger rate, which continues to be ever
unchanging at 16ms. 

Another thing that confused me: there's two different advance functions, one in
QQuickAnimationController which does almost nothing, the other in
QAnimationDriver used by syncAndRender still throttles on the timer.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-04-08 Thread bugzilla_noreply
https://bugs.kde.org/show_bug.cgi?id=485927

madness...@proton.me changed:

   What|Removed |Added

 CC||madness...@proton.me

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-04-08 Thread Brandon Wright
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #35 from Brandon Wright  ---
(In reply to Zamundaaa from comment #34)
> There's nothing to be public, this happens when KWin tells Qt to render the
> window.
It definitely says it's supposed to, but that doesn't seem to be true. I traced
the advance function through and it doesn't ever update the actual scene graph.
It finally eventually reaches AnimatorController, which at the lowest level
just calls commit on a job, which in its base class is completely empty, and
doesn't do much in the one derived class:

> void QQuickTransformAnimatorJob::Helper::commit()
> {
> if (!wasChanged || !node)
> return;
> 
> QMatrix4x4 m;
> m.translate(dx, dy);
> m.translate(ox, oy);
> m.scale(scale);
> m.rotate(rotation, 0, 0, 1);
> m.translate(-ox, -oy);
> node->setMatrix(m);
> 
> wasChanged = false;
> }
> 
> void QQuickTransformAnimatorJob::commit()
> {
> if (m_helper)
> m_helper->commit();
> 
> }

Then it calls update() to refresh the window. That's it. From the name, advance
is clearly supposed to actually advance something, but it doesn't. So this is
definitely a Qt bug.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-04-07 Thread Zamundaaa
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #34 from Zamundaaa  ---
There's nothing to be public, this happens when KWin tells Qt to render the
window.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-04-05 Thread Nate Graham
https://bugs.kde.org/show_bug.cgi?id=485927

Nate Graham  changed:

   What|Removed |Added

 CC||zupnikszyd...@gmail.com

--- Comment #23 from Nate Graham  ---
*** Bug 502178 has been marked as a duplicate of this bug. ***

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-04-05 Thread Blazer Silving
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #25 from Blazer Silving  ---
(In reply to David Edmundson from comment #24)
> Blazer, can you try cherry-picking the commit from:
> work/d_ed/animation_driver in kwin.
> 
> I wrote it ages ago, when looking into the same issue, but it all looked the
> same to me. You might have a better eye for this sort of thing

Thanks for the pointer, I believe it's this commit:
https://invent.kde.org/plasma/kwin/-/commit/7fdcfb89cfbb4b54a4715c34449e0d0896278f5a.
However it only seems to be a cross-check regarding the kwin animationDuration
value when kwinrc changes were made back then, this issue is more related to
the timer/tick counter. It didn't seem to make a difference when using
unpatched qt6-base. 

The findings in Brandon Wright's post are spot-on, a legacy kwin tick/timer
must be acting up. Inspecting and unifying the timer(s) seems like the best
approach so far, but it may be more difficult to test in a debugging session
due to the high framerate required to replicate the issue.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-04-04 Thread Zamundaaa
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #32 from Zamundaaa  ---
(In reply to Brandon Wright from comment #22)
> I've been trying to investigate this a bit, and here are some findings:
> 
> In qabstractanimation.cpp:
> 
> 1. QUnifiedTimer isn't actually used directly in this case. It's only user,
> QDefaultAnimationTimer just pulls in the value for timingInterval whenever
> it is instantiated. The timingInterval value of 16 is *never* changed.
> 
> 2. Because the value is never changed, animations using that timer in Qt
> will always be 60fps. This is a Qt bug.
QSGRenderThread::syncAndRender advances the animation driver every time right
before rendering, afaict that is not throttled below the display refresh rate.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-04-04 Thread Brandon Wright
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #33 from Brandon Wright  ---
(In reply to Zamundaaa from comment #32)
> (In reply to Brandon Wright from comment #22)
> > I've been trying to investigate this a bit, and here are some findings:
> > 
> > In qabstractanimation.cpp:
> > 
> > 1. QUnifiedTimer isn't actually used directly in this case. It's only user,
> > QDefaultAnimationTimer just pulls in the value for timingInterval whenever
> > it is instantiated. The timingInterval value of 16 is *never* changed.
> > 
> > 2. Because the value is never changed, animations using that timer in Qt
> > will always be 60fps. This is a Qt bug.
> QSGRenderThread::syncAndRender advances the animation driver every time
> right before rendering, afaict that is not throttled below the display
> refresh rate.
I don't think that's public. If it was, you could use your own timer, but for
all I can see, it's all encapsulated.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-04-04 Thread Brandon Wright
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #31 from Brandon Wright  ---
(In reply to Brandon Wright from comment #30)
> (In reply to Blazer Silving from comment #29)
> > It's still worth reporting upstream to QT, considering the
> > mission-criticality of the value. If I understand, they only need to provide
> > a separate public, dynamic timer for QtQuick to utilize, then kwin would
> > need to integrate it.
> According to https://doc.qt.io/qt-6/qtquick-visualcanvas-scenegraph.html
> there's some way to replace the default animation driver with a custom one
> that doesn't run at 60Hz. I'm looking into this.
Nope, no go. That just describes what *they* did under the hood. It's all
private and hidden. What we need is a simple setTimerInterval for the
QQuickWindow class that drills down through three or four private layers of the
scene graph and sets that value. Qt seems to desperately not want anyone to
change it.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-04-04 Thread Brandon Wright
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #30 from Brandon Wright  ---
(In reply to Blazer Silving from comment #29)
> It's still worth reporting upstream to QT, considering the
> mission-criticality of the value. If I understand, they only need to provide
> a separate public, dynamic timer for QtQuick to utilize, then kwin would
> need to integrate it.
According to https://doc.qt.io/qt-6/qtquick-visualcanvas-scenegraph.html
there's some way to replace the default animation driver with a custom one that
doesn't run at 60Hz. I'm looking into this.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-04-04 Thread Blazer Silving
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #29 from Blazer Silving  ---
> If Qt adds a public API to access the timer then kwin could change the timer 
> step before initiating a window switch effect. 
> If Qt can't change, this would need a reversion of the use of QtQuick scenes 
> in kwin, but I don't think they're going to go for that.

I can't speak for kwin developers but yes, very highly doubt they'll walk back
these Windowheap effects or port to another system. I'm sure this condition can
be counted for without a full revert. 

It's still worth reporting upstream to QT, considering the mission-criticality
of the value. If I understand, they only need to provide a separate public,
dynamic timer for QtQuick to utilize, then kwin would need to integrate it.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-04-04 Thread Zamundaaa
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #28 from Zamundaaa  ---
(In reply to Merkurio from comment #27)
> At 120Hz, I don't have major issues, but as soon as I switch to 240Hz, the
> whole system feels like it's running at 60Hz (I even confirmed this with
> Blur Busters).
That's definitely not related to this, please open a separate bug report.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-04-03 Thread Merkurio
https://bugs.kde.org/show_bug.cgi?id=485927

Merkurio  changed:

   What|Removed |Added

 CC||merkurio...@hotmail.com

--- Comment #27 from Merkurio  ---
Is there a way to apply that patch, but explained for complete beginners?  

I'm using NixOS (which is inherently different due to its declarative nature),
but I'm also experiencing this issue with Plasma 6.3 in both X11 and Wayland
sessions while using a 4K 240Hz monitor, and I'd like to fix it.  

At 120Hz, I don't have major issues, but as soon as I switch to 240Hz, the
whole system feels like it's running at 60Hz (I even confirmed this with Blur
Busters). Interestingly, a clean initial installation worked correctly, but
now, after installing everything I need for my system, it's behaving
erratically, and I can't take full advantage of my monitor's maximum refresh
rate.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-04-03 Thread Brandon Wright
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #26 from Brandon Wright  ---
Unfortunately, I don't think this will be fixed. The problem started when kwin
switched over to a QtQuick scene for the window switching effects. QtQuick
scene animations have only ever operated at 60hz:

* Qt is hardcoded with that define to wait 16ms before considering an animation
step
* That timer is non-public.
* The hardcoded value can't change because QtQuick is heavily depended upon in
embedded commercial applications, and that timer was deliberately chosen to get
low battery and low latency.

If Qt adds a public API to access the timer then kwin could change the timer
step before initiating a window switch effect. This isn't likely because over
QtQuick hasn't ever been tested with higher frame rates due to that hardcoded
value. If Qt can't change, this would need a reversion of the use of QtQuick
scenes in kwin, but I don't think they're going to go for that.

What's happening when X11 becomes smooth after some time is a Qt bug. The timer
is accidentally overwritten because they're all pooled and reused, and the
timer ends up triggering instantly.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-04-02 Thread David Edmundson
https://bugs.kde.org/show_bug.cgi?id=485927

David Edmundson  changed:

   What|Removed |Added

 CC||k...@davidedmundson.co.uk

--- Comment #24 from David Edmundson  ---
Blazer, can you try cherry-picking the commit from: work/d_ed/animation_driver
in kwin.

I wrote it ages ago, when looking into the same issue, but it all looked the
same to me. You might have a better eye for this sort of thing

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-02-28 Thread John
https://bugs.kde.org/show_bug.cgi?id=485927

John  changed:

   What|Removed |Added

 CC||ilikef...@waterisgone.com

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-02-25 Thread Brandon Wright
https://bugs.kde.org/show_bug.cgi?id=485927

Brandon Wright  changed:

   What|Removed |Added

 CC||bear...@gmail.com

--- Comment #22 from Brandon Wright  ---
I've been trying to investigate this a bit, and here are some findings:

In qabstractanimation.cpp:

1. QUnifiedTimer isn't actually used directly in this case. It's only user,
QDefaultAnimationTimer just pulls in the value for timingInterval whenever it
is instantiated. The timingInterval value of 16 is *never* changed.

2. Because the value is never changed, animations using that timer in Qt will
always be 60fps. This is a Qt bug.

3. With kwin on X11, some actions like the ALT-TAB switcher seem to trigger a
change such that kwin doesn't use that unified timer any more. It doesn't alter
the timings, it just uses an entirely different timer. On Wayland, this change
never occurs, so it's always stuttery.

I'm speculating that some component of legacy kwin on X11 is accidentally
creating a new animation timer over the top of the original default one. The
solution in kwin would then be to change out that original default timer with
whatever kwin/X11 is accidentally overwriting it with. That way both X11 and
Wayland are smooth.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2025-01-06 Thread Blazer Silving
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #21 from Blazer Silving  ---
Kindly, can we get acknowledgement from someone KDE-side here? A knowledgable
dev could know Kwin's role in this timing value, or insight on how this could
be handled upstream in QT

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2024-12-07 Thread Orlando Rodriguez
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #20 from Orlando Rodriguez  ---
(In reply to Blazer Silving from comment #19)
> The quickest way to test a one-line fix like this is to build a patched
> package for your distro, and install it over the system version. 
> Most offer tools and helpers for this (PKGBUILD for Arch, fedpkg for Fedora,
> etc). Generally the package manager will overwrite the patched version on
> the next repo update. Even cooler is setting up an isolated container to do
> the build, so you don't have to install all the build dependencies on your
> main system :)

Thank you so much!! I was able to apply the path by using fedpkg (I did not
know about it). And for me it works really really well. Now KDE looks just
AWESOME!!! Big difference in my desktop machine with 144hz monitors.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2024-12-07 Thread Blazer Silving
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #19 from Blazer Silving  ---
(In reply to n.parkanyi from comment #17)
> (In reply to Blazer Silving from comment #16)
> > > It looks like these animations are all being driven by QUnifiedTimer
> > 
> > I'm curious how you found this! 
> 
> This was bothering me, so I was grepping around in the qt code for potential
> culprits. QUnifiedTimer does seem to be a private API to qt. It could be
> that the animations that never have this issue are driven by something else.
> But at least in the case of system settings, it does _something_ that ends
> up fixing this (maybe in kirigami?).

It bothered me too, especially how intermittent the behavior seemed to be. This
does cover the behavior described in BUG 455585 that we'd been tracking for
some time. 
Great find, for real. This may indeed be an upstream QT bug that needs to be
filed and looked at officially, they may have pointers on how to better handle
it on the KDE side as well. 

(In reply to Orlando Rodriguez from comment #18)
> It's great having a possible solution for this issue!!! Thanks!!!. Just a
> quick question, is there any guide about how to patch qtbase and reinstall
> it, so I can also test this? I have been googling a little bit and I found
> the repo and the file for qt, but I still don't know how to replace qtbase
> so this fix could work. Any information would be really appreciate it.  (I
> am using Fedora KDE 41 right now)

The quickest way to test a one-line fix like this is to build a patched package
for your distro, and install it over the system version. 
Most offer tools and helpers for this (PKGBUILD for Arch, fedpkg for Fedora,
etc). Generally the package manager will overwrite the patched version on the
next repo update. Even cooler is setting up an isolated container to do the
build, so you don't have to install all the build dependencies on your main
system :)

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2024-12-07 Thread Orlando Rodriguez
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #18 from Orlando Rodriguez  ---
It's great having a possible solution for this issue!!! Thanks!!!. Just a quick
question, is there any guide about how to patch qtbase and reinstall it, so I
can also test this? I have been googling a little bit and I found the repo and
the file for qt, but I still don't know how to replace qtbase so this fix could
work. Any information would be really appreciate it.  (I am using Fedora KDE 41
right now)

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2024-12-07 Thread bugzilla_noreply
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #17 from n.parka...@gmail.com ---
(In reply to Blazer Silving from comment #16)
> > It looks like these animations are all being driven by QUnifiedTimer
> 
> I'm curious how you found this! 

This was bothering me, so I was grepping around in the qt code for potential
culprits. QUnifiedTimer does seem to be a private API to qt. It could be that
the animations that never have this issue are driven by something else. But at
least in the case of system settings, it does _something_ that ends up fixing
this (maybe in kirigami?).

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2024-12-04 Thread Blazer Silving
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #16 from Blazer Silving  ---
> I assume this is upstream with qt. Does anyone know who I have to contact in 
> order to upstream this?

A case can be opened at https://bugreports.qt.io/projects/QTBUG/issues,
but..

This is still technically an issue with Kwin or whichever component is
responsible for setting the timing interval properly. Changing the default lib
value works (and it works beautifully), but it's still just a hack to prove
this works. The value likely will need to be calculated dynamically based on
monitor hz. 

> It looks like these animations are all being driven by QUnifiedTimer

I'm curious how you found this! 

I've been scouring the plasma codebase and can't find anywhere that
QUnifiedTimer::setTimingInterval() is referenced, or even portions of it. I
checked user-installed plasmoids and other locations as well. 

If it can be properly set and retained globally as Kwin starts, it would have
the same effect as changing the default upstream.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2024-12-04 Thread Paul
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #15 from Paul  ---
Tried the patch on my system, X11 and Wayland both butter smooth now. (I used 4
ms to have a high enough refresh rate for a 240 Hz monitor).

Arch Linux
KDE Plasma: 6.2.4
KDE Frameworks: 6.8.0
Qt: 6.8.1
Kernel: 6.12.1-arch1-1
AMD Radeon RX 6950 XT

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2024-12-03 Thread bugzilla_noreply
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #14 from dominickator122...@gmail.com ---
WOW! This completely solves everything!!! I'm still kind of new to the whole
Linux bug submitting experience, and I assume this is upstream with qt. Does
anyone know who I have to contact in order to upstream this?

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2024-12-03 Thread fililip
https://bugs.kde.org/show_bug.cgi?id=485927

fililip  changed:

   What|Removed |Added

 CC||t...@nitrosubs.live

--- Comment #13 from fililip  ---
This has been bothering me for a while, thanks for the find! With the patch
it's much, much better now.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2024-12-01 Thread Blazer Silving
https://bugs.kde.org/show_bug.cgi?id=485927

Blazer Silving  changed:

   What|Removed |Added

 CC||kdebugs@paul.network

--- Comment #12 from Blazer Silving  ---
*** Bug 493208 has been marked as a duplicate of this bug. ***

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2024-12-01 Thread Blazer Silving
https://bugs.kde.org/show_bug.cgi?id=485927

Blazer Silving  changed:

   What|Removed |Added

 CC||breakingsp...@gmail.com

--- Comment #11 from Blazer Silving  ---
At first glance, this works. Boy howdy! 

May also resolve BUG 455585, BUG 493208

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2024-11-30 Thread bugzilla_noreply
https://bugs.kde.org/show_bug.cgi?id=485927

n.parka...@gmail.com changed:

   What|Removed |Added

 CC||n.parka...@gmail.com

--- Comment #9 from n.parka...@gmail.com ---
It looks like these animations are all being driven by QUnifiedTimer, which
uses a shared global tick, and the tick interval just defaults to 16ms. And if
some component ends up calling QUnifiedTimer::setTimingInterval(), it would
affect other animations since it's shared. It might explain why it fixes itself
sometimes.

If I apply the attached patch to qt6-base to change to default tick interval to
6ms, all the animations look smooth on my 144hz display (overview effect,
system settings scrolling, the smooth scrolling in okular).

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2024-11-30 Thread bugzilla_noreply
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #10 from n.parka...@gmail.com ---
Created attachment 176255
  --> https://bugs.kde.org/attachment.cgi?id=176255&action=edit
hack to increase qt6 animation tick

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2024-11-24 Thread bugzilla_noreply
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #8 from copil...@gmail.com ---
(In reply to copilexp from comment #7)
> I get strange behavior on X11, It is "low refresh rate" when I log in, but
> it somehow fixes itself after like two minutes, and then it is silky smooth.
> However, the same cannot be said for Wayland.

Nope, seems to be triggered by something.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2024-11-24 Thread bugzilla_noreply
https://bugs.kde.org/show_bug.cgi?id=485927

copil...@gmail.com changed:

   What|Removed |Added

 CC||copil...@gmail.com

--- Comment #7 from copil...@gmail.com ---
I get strange behavior on X11, It is "low refresh rate" when I log in, but it
somehow fixes itself after like two minutes, and then it is silky smooth.
However, the same cannot be said for Wayland.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2024-11-24 Thread Thomas Duckworth
https://bugs.kde.org/show_bug.cgi?id=485927

Thomas Duckworth  changed:

   What|Removed |Added

 CC||tduck973...@gmail.com

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2024-11-03 Thread justas
https://bugs.kde.org/show_bug.cgi?id=485927

justas  changed:

   What|Removed |Added

 CC||jjom...@gmail.com

--- Comment #6 from justas  ---
Still hasn't been fixed as of KDE Plasma 6.2.2.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2024-10-23 Thread bugzilla_noreply
https://bugs.kde.org/show_bug.cgi?id=485927

nethshanpe...@gmail.com changed:

   What|Removed |Added

 CC||nethshanpe...@gmail.com

--- Comment #5 from nethshanpe...@gmail.com ---
Can confirm that the issue persists in Plasma 6.2. As a laptop user this feels
more noticeable especially when the using touchpad gestures to scroll through
the desktops in overview mode. 

Operating System: Aurora 40
KDE Plasma Version: 6.2.1
KDE Frameworks Version: 6.7.0
Qt Version: 6.7.2
Kernel Version: 6.11.3-200.fc40.x86_64 (64-bit)
Graphics Platform: Wayland
Processors: 22 × Intel® Core™ Ultra 7 155H
Memory: 15.0 GiB of RAM
Graphics Processor: Mesa Intel® Arc
Manufacturer: HP
Product Name: HP Spectre x360 2-in-1 Laptop 14-eu0xxx

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2024-10-16 Thread username
https://bugs.kde.org/show_bug.cgi?id=485927

username  changed:

   What|Removed |Added

 CC||linx.system@gmail.com

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2024-09-27 Thread Vlad Zahorodnii
https://bugs.kde.org/show_bug.cgi?id=485927

Vlad Zahorodnii  changed:

   What|Removed |Added

  Component|wayland-generic |performance

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2024-09-16 Thread goingtosleep
https://bugs.kde.org/show_bug.cgi?id=485927

--- Comment #4 from goingtosleep  ---
I encountered the same issue on wayland, with 165hz monitor, AMD RX 6600 XT,
Plasma 6.1.5 on kernel 6.10.10.
On X11 the animation is smooth, but every startup, I have to unsnap and snap a
window to make it smooth, otherwise it's stutter.
Basically like others mentioned.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2024-09-16 Thread goingtosleep
https://bugs.kde.org/show_bug.cgi?id=485927

goingtosleep  changed:

   What|Removed |Added

 CC||goingtosleep...@gmail.com

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2024-09-12 Thread reports_go_brrr
https://bugs.kde.org/show_bug.cgi?id=485927

reports_go_brrr  changed:

   What|Removed |Added

 CC||gooda...@starmail.net
 Ever confirmed|0   |1
 Status|REPORTED|CONFIRMED

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2024-09-09 Thread Orlando Rodriguez
https://bugs.kde.org/show_bug.cgi?id=485927

Orlando Rodriguez  changed:

   What|Removed |Added

 CC||sort...@gmail.com

--- Comment #3 from Orlando Rodriguez  ---
(In reply to DT from comment #1)
> I've encountered the same behavior on my 240hz display. The overview and
> window snapping animations are the most noticeable, and appear (mostly)
> correct on the X11 session. Peculiarly, the overview animation on the X11
> session renders at a lower framerate *until* a window is snapped to an edge,
> following which it will begin rendering at the correct framerate. I found a
> user on Reddit:
> https://old.reddit.com/r/kde/comments/1c1lkiw/
> strange_lag_symptoms_with_the_overview_effect/ who reported similar issues
> (along with the quirk in the X11 session I described).
> 
> > Additionally, when scrolling in system settings the scrolling on the 
> > sidebar suddenly becomes a higher refresh rate when the "Colors and Themes" 
> > option is clicked. 
> I was able to reproduce this as well.

Same here. I've had this problem with the overview effects and desktop grid
since 5.XX. For X11 I created a post-login script to Alt-tab automatically as
fast as possible (this brings the same effect than a windows snapped) and the
animations were amazing again, however, that workaround has never worked on
Wayland. It would be great if some day this issue could be solved, it looks
difficult and probably the priority is low due to the effects are pretty
functional as they are, but for me I have been searching for a solution, even I
was thinking on thinkering the effects by myself, but in KDE6 they are not in
the effects folders anymore.

-- 
You are receiving this mail because:
You are watching all bug changes.

[kwin] [Bug 485927] Animations in KDE Plasma 6 seem to be capped at 60hz

2024-07-30 Thread Nate Graham
https://bugs.kde.org/show_bug.cgi?id=485927

Nate Graham  changed:

   What|Removed |Added

  Component|"Manage Desktop and Panels" |wayland-generic
   |window  |
Product|plasmashell |kwin
   Assignee|plasma-b...@kde.org |kwin-bugs-n...@kde.org
   Target Milestone|1.0 |---
 CC||n...@kde.org,
   ||xaver.h...@gmail.com
Summary|Animations in KDE Plasma|Animations in KDE Plasma 6
   |6.0.4 seem to be capped at  |seem to be capped at 60hz
   |60hz|

-- 
You are receiving this mail because:
You are watching all bug changes.