HandheldCompanion icon indicating copy to clipboard operation
HandheldCompanion copied to clipboard

HC rewrites RTSS 0 FPS frame limit option even though feature is set to disabled in HC settings

Open eugenov opened this issue 1 year ago • 19 comments

GPD Winmax 2 2022

0.18.0.1b

HC rewrites RTSS options such as:

  • FPS cap -> 0
  • OSD support -> Off

Before HC start image 10 sec after HC start image

eugenov avatar Aug 31 '23 05:08 eugenov

Yes, can confirm. I found this also to be the reason the OSD is not shown.

CasperH2O avatar Aug 31 '23 06:08 CasperH2O

@micdah would you have time to look into this one? It seems after merging your PR, now, after an install of HC, the default value for the On-Screen Display Support on the RTSS side defaults to false. When people now select minimal extended or full in HC, nothing is shown due to this.

CasperH2O avatar Aug 31 '23 11:08 CasperH2O

@CasperH2O sorry for my late reply, quite busy weekend 😄

Will try to have a look later today and see if I can replicate the issue, alternatively we could remove the code which toggles OSD in RTS when switching overlay mode in HC, which should revert that behaviour if there is some bug within this codepath.

Changing framerate limit is the same behaviour as before the change, I believe that to be "as intended" right, as HC uses RTS for it's framerate limiter, so when it's disabled in HC, it changes it to 0 i RTSS.

I remember this as the behaviour also from before my PR.

micdah avatar Sep 04 '23 09:09 micdah

@eugenov out of curiosity, what are your Handheld Companion settings when this occurs?

I'm specifically interested in what are the settings for "Framerate Limit" and "Overlay display level"?

From a quick glance at the code, it could look like "Framerate limit" might be set to disabled in HC and "Overlay display level" might be set to "Disabled"

micdah avatar Sep 04 '23 09:09 micdah

@micdah it was clean installation of HC, everything was disabled I believe.

I believe that to be "as intended" right, as HC uses RTS for it's framerate limiter, so when it's disabled in HC, it changes it to 0 i RTSS.

Could this be corrected as this is the only way to set FPS cap to custom not supported by HC limits?

eugenov avatar Sep 04 '23 14:09 eugenov

I see, but if HC overlay is set to None then it will not kill HWInfo but let RTSS run, but disable OSD (in current form).

But if you switch to External this will leave both RTSS and HWInfo running, with OSD set to enabled in RTSS - this was the exact motivtion for me to add this mode, so that I could setup my own custom overlay in RTSS and not have HC interfere by killing HWInfo specifically.

I guess the issue with framerate limit is kind of the same, but different, in that HC needs to have framerate modes "enabled" (set to whatever HC is set to), "disabled" (set to 0 to disable) and "custom" which is leave it alone in RTSS and let the user pick a value.

In the current from HC has strong dependencies to RTSS/HWInfo and it's not widely supported that the user makes custom configurations in them (correct me if I'm wrong @CasperH2O). Like you shouldn't disable any sensors in HWInfo either as HC relies on some of them for it's internal logic

micdah avatar Sep 04 '23 15:09 micdah

@micdah thanks for investigating. @Valkirie found the time and made a fix for the OSD not being enabled, will release shortly.

CasperH2O avatar Sep 04 '23 18:09 CasperH2O

I guess the issue with framerate limit is kind of the same, but different, in that HC needs to have framerate modes "enabled" (set to whatever HC is set to), "disabled" (set to 0 to disable) and "custom" which is leave it alone in RTSS and let the user pick a value.

This bug/feature is not less important than @CasperH2O mentioned last post. @micdah described it very precisely.

eugenov avatar Sep 04 '23 18:09 eugenov

Release 0.18.0.2 fixes the OSD setting. As for the FPS limiter being set to 0, this is currently as expected but could use an improvement like how it was done for the TDP reverting to max and HC leaving it alone.

CasperH2O avatar Sep 06 '23 08:09 CasperH2O

Release 0.18.0.2 fixes the OSD setting.

Confirmed. Waiting patiently RTSS cap fix.

eugenov avatar Sep 22 '23 10:09 eugenov

Also, updating HC will cause it to stop auto launching RTSS and HWInfo.

anzenchitai avatar Nov 05 '23 00:11 anzenchitai

Code here requires a look at.

Use cases:

  1. User defines profile with FPS cap. Works as expected.
  2. User defines profile with FPS cap not used.
  3. User has set own limit in RTSS and on the HC side never enables the FPS limit toggle.

For a solution, instead of else-ing to set it to 0 I'm considering remembering the previous set FPS, if it was a non 0 value, then we reset it, to handle case 1. In all other cases, HC does not set adjust it.

https://github.com/Valkirie/HandheldCompanion/blob/main/HandheldCompanion/Platforms/RTSS.cs#L146

CasperH2O avatar Nov 29 '23 10:11 CasperH2O

Fixed in upcoming build. Code in EA repo.

CasperH2O avatar Dec 01 '23 08:12 CasperH2O

Issue is back due to recent code changes.

CasperH2O avatar Dec 29 '23 12:12 CasperH2O

Fixed again for next EA release.

CasperH2O avatar Jan 01 '24 09:01 CasperH2O

0.20.3.0 need to reopen, framerate limit in Profiles does nothing

eugenov avatar Jan 13 '24 13:01 eugenov

@eugenov in what case does it not work?

If it's with Steam, it's an issue with RTSS as the FPS limit is seemingly applied to RTSS (so our part in HC is done correctly), but RTSS doesn't apply it correctly to the game if it initially came from Steam.

MSeys avatar Jan 13 '24 14:01 MSeys

sry i was wrong - it was not setting in Profiles that break FPS limit, it is AutoTDP feature. steps to reproduce:

  • install HC (in fact it takes 2 installs for me to make HC work: first time installer do not install dotnet x64)
  • set framerate cap in RTSS
  • set framerate target in AutoTDP
  • see 0 framerate cap in RTSS. Ok, re-set limit, it stays.
  • reboot. see 0 framerate cap in RTSS

eugenov avatar Jan 15 '24 04:01 eugenov

Thanks @eugenov I'll double check this. To my knowledge AutoTDP does not set the FPS in RTSS, as that's what the actual framerate slider is for, but perhaps something else is going on.

CasperH2O avatar Jan 15 '24 07:01 CasperH2O