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
25 stars 15 forks source link

[New Feature]: FPS Limiter #137

Open RubyMaelstrom opened 21 hours ago

RubyMaelstrom commented 21 hours 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.

Zanibar commented 12 hours 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 10 hours ago

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