PowerToys icon indicating copy to clipboard operation
PowerToys copied to clipboard

Powertoys UI not rendering at screen refresh rate

Open pritster5 opened this issue 2 years ago • 3 comments

Microsoft PowerToys version

0.64.1

Installation method

GitHub

Running as admin

Yes

Area(s) with issue?

Settings (chances are all WinUI3)

Steps to reproduce

Simply launch power toys on a monitor that runs above 60hz (mine is 144hz) and notice that Powertoys doesn't seem to render at 144hz but instead at 60 hz.

A similar issue was mentioned in #

✔️ Expected Behavior

For powertoys UI to render at my screens refresh rate just like any other windows app

❌ Actual Behavior

It's locked to 60 fps apparently. A similar issue was mentioned in #5241

Other Software

No response

pritster5 avatar Nov 12 '22 01:11 pritster5

@pritster5 which application? We have like multiple UX frameworks. /needinfo

crutkas avatar Nov 12 '22 05:11 crutkas

@pritster5 which application? We have like multiple UX frameworks. /needinfo

The main settings application for PowerToys.

pritster5 avatar Nov 12 '22 07:11 pritster5

Asking. Settings is a basic WinAppSDK app so chances are this has something with them.

crutkas avatar Nov 14 '22 18:11 crutkas

FWIW this seems to be due to a longer standing issue with how either Windows or the GPU driver are managing interactions with High Refresh displays and/or frame synchronization tech like GSync / Freesync.

This also affects the rewrite of the command prompt ( Terminal : https://github.com/microsoft/terminal/issues/649 ), and basically any application that gets upgraded to its own plane due to Windows' added support for multiplane rendering in 2021H2 and newer. AFAICT if the application doesn't specifically do something ( like updating the entire frame regardless of changes ) to avoid being placed in a frame-sync render mode, it will be put into vrr by the driver, and apps that don't update every frame generally cause vrr implementations to stall until their timeout while waiting for the new frame, with the stall time resulting in a 60hz ( or less ? ) update for the application's pane - which is exactly what we're seeing.

My typical solution to this is to manually add the application to the nvidia control panel, and enforce the display type as "fixed refresh" - see https://twitter.com/fire/status/1497074121095663652 So far I've personally seen it affect 1Password, Luminar AI / Luminar Neo, Powertoys, and the handful of UWP apps I've tried using.

In this specific case I'm using additional settings, but I honestly don't know if they have any real impact beyond the Monitor Technology setting:

Ideally this is something Microsoft would either resolve first party or take up with gpu driver implementers to resolve wholesale, but at least we have a general purpose workaround

Fire- avatar Feb 19 '23 22:02 Fire-

This was added in v0.70!

crutkas avatar Jun 01 '23 23:06 crutkas

Thanks so much!

pritster5 avatar Jun 02 '23 00:06 pritster5

This still seems to be an issue for me in PowerToys settings in v0.75.

When navigating around the app with scroll, and in-app animations, it feels slow and stutter-y. Scroll feels particularly slow. Not sure if it is 60hz, but it feels like 30 Frames Per Second or less.

I am using a G-Sync Monitor than can get up to 175Hz, and an RTX 4080.

I only noticed this issue once PowerToys was moved to WinUI 3.

https://github.com/microsoft/PowerToys/assets/6026537/e3be116d-3d1e-4b7e-8184-18e136b279a0

WilliamABradley avatar Nov 01 '23 02:11 WilliamABradley

Not sure if it was on your end, a driver update, a Windows App SDK update or a Windows Insider update, but scrolling is smooth now 🙂

WilliamABradley avatar Dec 16 '23 06:12 WilliamABradley