Ryujinx/src
riperiperi 1be668e68a
HLE: Add OS-specific precise sleep methods to reduce spinwaiting (#5948)
* feat: add nanosleep for linux and macos

* Add Windows 0.5ms sleep

- Imprecise waits for longer waits with clock alignment
- 1/4 the spin time on vsync timer

* Remove old experiment

* Fix event leak

* Tweaking for MacOS

* Linux tweaks, nanosleep vsync improvement

* Fix overbias

* Cleanup

* Fix realignment

* Add some docs and some cleanup

NanosleepPool needs more, Nanosleep has some benchmark code that needs removed.

* Rename "Microsleep" to "PreciseSleep"

Might have been confused with "microseconds", which no measurement is performed in.

* Remove nanosleep measurement

* Remove unused debug logging

* Nanosleep Pool Documentation

* More cleanup

* Whitespace

* Formatting

* Address Feedback

* Allow SleepUntilTimePoint to take EventWaitHandle

* Remove `_chrono` stopwatch in SurfaceFlinger

* Move spinwaiting logic to PreciseSleepHelper

Technically, these achieve different things, but having them here makes them easier to reuse or tune.
2023-11-30 15:39:42 -03:00
..
ARMeilleure Fix JitCache.Unmap called with the same address freeing memory in use (#5937) 2023-11-16 17:52:21 -03:00
Ryujinx misc: Default to Vulkan if available or running on macOS (#5913) 2023-11-18 17:42:45 -03:00
Ryujinx.Audio Migrate to .NET 8 (#5887) 2023-11-15 17:41:31 +01:00
Ryujinx.Audio.Backends.OpenAL chore: Update OpenTK to 4.8.1 (#5912) 2023-11-15 19:08:46 +01:00
Ryujinx.Audio.Backends.SDL2 Migrate to .NET 8 (#5887) 2023-11-15 17:41:31 +01:00
Ryujinx.Audio.Backends.SoundIo Migrate to .NET 8 (#5887) 2023-11-15 17:41:31 +01:00
Ryujinx.Ava Migrate to .NET 8 (#5887) 2023-11-15 17:41:31 +01:00
Ryujinx.Common HLE: Add OS-specific precise sleep methods to reduce spinwaiting (#5948) 2023-11-30 15:39:42 -03:00
Ryujinx.Cpu Migrate to .NET 8 (#5887) 2023-11-15 17:41:31 +01:00
Ryujinx.Graphics.Device Migrate to .NET 8 (#5887) 2023-11-15 17:41:31 +01:00
Ryujinx.Graphics.GAL Migrate to .NET 8 (#5887) 2023-11-15 17:41:31 +01:00
Ryujinx.Graphics.Gpu Extend bindless elimination to see through shuffle (#5958) 2023-11-23 00:51:51 +01:00
Ryujinx.Graphics.Host1x Migrate to .NET 8 (#5887) 2023-11-15 17:41:31 +01:00
Ryujinx.Graphics.Nvdec Migrate to .NET 8 (#5887) 2023-11-15 17:41:31 +01:00
Ryujinx.Graphics.Nvdec.FFmpeg Migrate to .NET 8 (#5887) 2023-11-15 17:41:31 +01:00
Ryujinx.Graphics.Nvdec.Vp9 Migrate to .NET 8 (#5887) 2023-11-15 17:41:31 +01:00
Ryujinx.Graphics.OpenGL Migrate to .NET 8 (#5887) 2023-11-15 17:41:31 +01:00
Ryujinx.Graphics.Shader Extend bindless elimination to see through shuffle (#5958) 2023-11-23 00:51:51 +01:00
Ryujinx.Graphics.Texture Migrate to .NET 8 (#5887) 2023-11-15 17:41:31 +01:00
Ryujinx.Graphics.Vic Migrate to .NET 8 (#5887) 2023-11-15 17:41:31 +01:00
Ryujinx.Graphics.Video Migrate to .NET 8 (#5887) 2023-11-15 17:41:31 +01:00
Ryujinx.Graphics.Vulkan Migrate to .NET 8 (#5887) 2023-11-15 17:41:31 +01:00
Ryujinx.Headless.SDL2 Migrate to .NET 8 (#5887) 2023-11-15 17:41:31 +01:00
Ryujinx.HLE HLE: Add OS-specific precise sleep methods to reduce spinwaiting (#5948) 2023-11-30 15:39:42 -03:00
Ryujinx.Horizon Migrate to .NET 8 (#5887) 2023-11-15 17:41:31 +01:00
Ryujinx.Horizon.Common Migrate to .NET 8 (#5887) 2023-11-15 17:41:31 +01:00
Ryujinx.Horizon.Generators Horizon: Migrate usb and psc services (#5800) 2023-10-13 23:13:15 -03:00
Ryujinx.Horizon.Kernel.Generators Add workflow to automatically check code style issues for PRs (#4670) 2023-07-24 18:35:04 +02:00
Ryujinx.Input Migrate to .NET 8 (#5887) 2023-11-15 17:41:31 +01:00
Ryujinx.Input.SDL2 Migrate to .NET 8 (#5887) 2023-11-15 17:41:31 +01:00
Ryujinx.Memory Migrate to .NET 8 (#5887) 2023-11-15 17:41:31 +01:00
Ryujinx.SDL2.Common Migrate to .NET 8 (#5887) 2023-11-15 17:41:31 +01:00
Ryujinx.ShaderTools Migrate to .NET 8 (#5887) 2023-11-15 17:41:31 +01:00
Ryujinx.Tests Migrate to .NET 8 (#5887) 2023-11-15 17:41:31 +01:00
Ryujinx.Tests.Memory Migrate to .NET 8 (#5887) 2023-11-15 17:41:31 +01:00
Ryujinx.Tests.Unicorn Migrate to .NET 8 (#5887) 2023-11-15 17:41:31 +01:00
Ryujinx.Ui.Common misc: Default to Vulkan if available or running on macOS (#5913) 2023-11-18 17:42:45 -03:00
Ryujinx.Ui.LocaleGenerator Strings should not be concatenated using '+' in a loop (#5664) 2023-10-05 12:41:00 +02:00
Spv.Generator Migrate to .NET 8 (#5887) 2023-11-15 17:41:31 +01:00