Loop GLScreen with custom method (#244)

* Loop GLScreen with custom method

* Fix deadlocks

* Fix screen resizing

* Change event to bool

* Try to fix quitting error

* Set title from main thread

* Queue max 1 vsync, fix high FPS after a slowdown
This commit is contained in:
ReinUsesLisp 2018-07-12 14:03:52 -03:00 committed by gdkchan
parent 37071285bc
commit cd18ab29df
4 changed files with 113 additions and 11 deletions

View file

@ -1,5 +1,6 @@
using Ryujinx.HLE.Gpu.Memory;
using System.Collections.Concurrent;
using System.Threading;
namespace Ryujinx.HLE.Gpu.Engines
{
@ -18,6 +19,8 @@ namespace Ryujinx.HLE.Gpu.Engines
private NvGpuEngine[] SubChannels;
public AutoResetEvent Event { get; private set; }
private struct CachedMacro
{
public int Position { get; private set; }
@ -60,6 +63,8 @@ namespace Ryujinx.HLE.Gpu.Engines
Macros = new CachedMacro[MacrosCount];
Mme = new int[MmeWords];
Event = new AutoResetEvent(false);
}
public void PushBuffer(NvGpuVmm Vmm, NvGpuPBEntry[] Buffer)
@ -68,6 +73,8 @@ namespace Ryujinx.HLE.Gpu.Engines
{
BufferQueue.Enqueue((Vmm, PBEntry));
}
Event.Set();
}
public void DispatchCalls()