Valkirie / HandheldCompanion

ControllerService
Other
1.2k stars 92 forks source link

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

Open eugenov opened 1 year ago

eugenov commented 1 year ago

GPD Winmax 2 2022

0.18.0.1b

HC rewrites RTSS options such as:

Before HC start image 10 sec after HC start image

CasperH2O commented 1 year ago

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

CasperH2O commented 1 year ago

@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.

micdah commented 1 year ago

@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 commented 1 year ago

@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"

eugenov commented 1 year ago

@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?

micdah commented 1 year ago

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

CasperH2O commented 1 year ago

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

eugenov commented 1 year ago

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.

CasperH2O commented 1 year ago

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.

eugenov commented 1 year ago

Release 0.18.0.2 fixes the OSD setting.

Confirmed. Waiting patiently RTSS cap fix.

anzenchitai commented 1 year ago

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

CasperH2O commented 11 months ago

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 commented 11 months ago

Fixed in upcoming build. Code in EA repo.

CasperH2O commented 10 months ago

Issue is back due to recent code changes.

CasperH2O commented 10 months ago

Fixed again for next EA release.

eugenov commented 10 months ago

0.20.3.0 need to reopen, framerate limit in Profiles does nothing

MSeys commented 10 months ago

@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.

eugenov commented 10 months ago

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

CasperH2O commented 10 months ago

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.