Valkirie / HandheldCompanion

ControllerService
Other
1.11k stars 86 forks source link

Frame limit Hz inconsistent when using external monitor #840

Open Luk37astic opened 8 months ago

Luk37astic commented 8 months ago

The Problem: The Ally's refresh rate is 120 Hz, so the frame limit slider has increments that are whole factors of 120 (30, 40, 60, 120). But because those increments are coded as fractions, and not as fixed values, when connecting to a display that is not 120 Hz, the frame limit stays in the same place, but changes value. For example, if I set the slider to 40 fps on my Ally, my games would run at 20 fps when connected to a 60 Hz monitor.

Proposed Solution(s): I have some proposed solutions for this: 1) Make the slider used fixed values with only the maximum value adjusting to the primary screen's refresh rate. If I set 40 fps on my Ally, it should stay 40 fps on my monitor. 2) Make the frame limit fully adjustable rather than using pre-determined, hardcoded values. For this one, you could add every increment of 1 to the slider, much like the Auto TDP framerate target slider, or just make it an integer input box that you type a number into, like in AMD Adrenalin.

Alternatives: I have been using AMD Adrenalin to cap the frame rate at values HC doesn't support, but I'd like to keep all my adjustments in one place, in HC.

CasperH2O commented 8 months ago

@Luk37astic thanks for bringing this up. I've turned this ticket into a bug report for the secondary screen Hz issue. For the ROG Ally and other devices with different refresh rate options we have ticket #737

CasperH2O commented 6 months ago

Worth retesting with 0.20.2.7 or newer as there is improved detection and refresh rate options implemented.

69jkm69 commented 5 months ago

I have the same issue but without an external monitor. What I observe is that if you change the screen refresh rate after starting HC, the framelimit values do not update and remain those of the original refresh rate. Restarting HC solves the problem.