AlchemyViewer / Alchemy

Alchemy is a Second Life compatible viewer striving to be at the forefront of stability, performance, and technological advancement in the open-source metaverse viewer field.
https://www.alchemyviewer.org
GNU Lesser General Public License v2.1
26 stars 14 forks source link

[New Feature]: FPS Limiter #137

Open RubyMaelstrom opened 1 month ago

RubyMaelstrom commented 1 month ago

Environment

Alchemy Viewer

Description

Alchemy is currently lacking an FPS limit option outside of enabling vsync. Currently, the only direct method to limit FPS is by utilizing the YieldTime debug flag, but this limits all FPS by a percentage not by a set framerate, causing single-digit FPS in many situations rather than the targeted FPS.

This is a feature which exists in other viewers but not Alchemy, and it has utility for a lot of systems. From high-end systems who who be maxing out their GPUs needlessly on high refresh-rate monitors to older systems which may run into cooling or power issues while keeping up with vsync.

This was an open request on the old requests system, but did not migrate when switching to Github issue tracking.

taylnos commented 1 month ago

Most approaches require monitoring the latest frametime to determine the appropriate yield duration. However, given Second Life's unpredictability, this often results in less stable framerates than anticipated. Additionally, there have been instances where viewer-based frame limiters significantly missed the target framerate, creating an impression of subpar performance when, in fact, it was the frame limiter adversely affecting performance.

While I'm not dismissing the idea, I would recommend considering some alternatives for now until we come to a decision:

nopjmp commented 1 month ago

I'd also highly recommend using Special K for advanced frame rate limiting capabilities on Windows.