Ryujinx/Ryujinx.HLE/HOS/Services/SurfaceFlinger
riperiperi a2c6cd5132
Enqueue frame before signalling the frame is ready. (#2722)
It seems that certain games (Link's Awakening, Xenoblade DE) had their fences reached already when posting framebuffers, so the signal that a frame was ready would go out _before_ the frame was enqueued, and the render loop would fail to dequeue anything and "skip" a frame.

This was resulting in their performance lowering dramatically after some loading transitions, as a frame signal would be consumed and presentation would be one frame behind.

It's possible this might have eventually caused deadlocks in these games or others, if it happened twice.
2021-10-12 23:29:50 +02:00
..
Types android-fence: call callback when fence is invalid (#1881) 2021-01-13 10:53:13 +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 HLE: Fix integer sign inconcistency accross the codebase (#2222) 2021-04-24 12:16:01 +02: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 Enqueue frame before signalling the frame is ready. (#2722) 2021-10-12 23:29:50 +02:00