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
BufferQueue.cs
BufferQueueConsumer.cs
BufferQueueCore.cs
BufferQueueProducer.cs
BufferSlot.cs
BufferSlotArray.cs
ConsumerBase.cs
HOSBinderDriverServer.cs
IBinder.cs
IConsumerListener.cs
IFlattenable.cs
IGraphicBufferProducer.cs
IHOSBinderDriver.cs HLE: Fix integer sign inconcistency accross the codebase (#2222) 2021-04-24 12:16:01 +02:00
IProducerListener.cs
NativeWindowApi.cs
NativeWindowAttribute.cs
NativeWindowScalingMode.cs
NativeWindowTransform.cs
Parcel.cs
ParcelHeader.cs
PixelFormat.cs
Status.cs
SurfaceFlinger.cs Enqueue frame before signalling the frame is ready. (#2722) 2021-10-12 23:29:50 +02:00