Ryujinx-git/Ryujinx.HLE/HOS/Services/SurfaceFlinger
riperiperi 10aa11ce13
Interrupt GPU command processing when a frame's fence is reached. (#1741)
* Interrupt GPU command processing when a frame's fence is reached.

* Accumulate times rather than %s

* Accurate timer for vsync

Spin wait for the last .667ms of a frame. Avoids issues caused by signalling 16ms vsync. (periodic stutters in smo)

* Use event wait for better timing.

* Fix lazy wait

Windows doesn't seem to want to do 1ms consistently, so force a spin if we're less than 2ms.

* A bit more efficiency on frame waits.

Should now wait the remainder 0.6667 instead of 1.6667 sometimes (odd waits above 1ms are reliable, unlike 1ms waits)

* Better swap interval 0 solution

737 fps without breaking a sweat. Downside: Vsync can no longer be disabled on games that use the event heavily (link's awakening - which is ok since it breaks anyways)

* Fix comment.

* Address Comments.
2020-12-17 19:39:52 +01:00
..
Types Interrupt GPU command processing when a frame's fence is reached. (#1741) 2020-12-17 19:39:52 +01:00
BufferItemConsumer.cs SurfaceFlinger v2 (#981) 2020-04-22 14:10:27 +10:00
BufferQueue.cs IPC refactor part 2: Use ReplyAndReceive on HLE services and remove special handling from kernel (#1458) 2020-12-02 00:23:43 +01:00
BufferQueueConsumer.cs Improved Logger (#1292) 2020-08-04 01:32:53 +02:00
BufferQueueCore.cs Interrupt GPU command processing when a frame's fence is reached. (#1741) 2020-12-17 19:39:52 +01:00
BufferQueueProducer.cs Interrupt GPU command processing when a frame's fence is reached. (#1741) 2020-12-17 19:39:52 +01:00
BufferSlot.cs SurfaceFlinger: fix some bugs (#1262) 2020-06-02 17:58:19 +02:00
BufferSlotArray.cs SurfaceFlinger v2 (#981) 2020-04-22 14:10:27 +10:00
ConsumerBase.cs SurfaceFlinger v2 (#981) 2020-04-22 14:10:27 +10:00
HOSBinderDriverServer.cs Improved Logger (#1292) 2020-08-04 01:32:53 +02:00
IBinder.cs Improved Logger (#1292) 2020-08-04 01:32:53 +02:00
IConsumerListener.cs SurfaceFlinger v2 (#981) 2020-04-22 14:10:27 +10:00
IFlattenable.cs SurfaceFlinger v2 (#981) 2020-04-22 14:10:27 +10:00
IGraphicBufferProducer.cs Improved Logger (#1292) 2020-08-04 01:32:53 +02:00
IHOSBinderDriver.cs IPC refactor part 2: Use ReplyAndReceive on HLE services and remove special handling from kernel (#1458) 2020-12-02 00:23:43 +01:00
IProducerListener.cs SurfaceFlinger v2 (#981) 2020-04-22 14:10:27 +10:00
NativeWindowApi.cs SurfaceFlinger v2 (#981) 2020-04-22 14:10:27 +10:00
NativeWindowAttribute.cs SurfaceFlinger v2 (#981) 2020-04-22 14:10:27 +10:00
NativeWindowScalingMode.cs SurfaceFlinger v2 (#981) 2020-04-22 14:10:27 +10:00
NativeWindowTransform.cs SurfaceFlinger: fix some bugs (#1262) 2020-06-02 17:58:19 +02:00
Parcel.cs Surface Flinger: Implement GetBufferHistory (#1232) 2020-05-15 03:30:08 +02:00
ParcelHeader.cs SurfaceFlinger v2 (#981) 2020-04-22 14:10:27 +10:00
PixelFormat.cs SurfaceFlinger v2 (#981) 2020-04-22 14:10:27 +10:00
Status.cs SurfaceFlinger v2 (#981) 2020-04-22 14:10:27 +10:00
SurfaceFlinger.cs Interrupt GPU command processing when a frame's fence is reached. (#1741) 2020-12-17 19:39:52 +01:00