diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2018-04-08 16:17:35 -0300 |
|---|---|---|
| committer | gdkchan <gab.dark.100@gmail.com> | 2018-04-08 16:41:38 -0300 |
| commit | b9aa3966c00b4bb3ff0292dc28ed53ad26cf284b (patch) | |
| tree | cd2ab3d65c61ac6c6ceb312116e5d138868a3e18 /Ryujinx.Core/OsHle | |
| parent | 7acd0e01226d64d05b2675f6ae07507039a31835 (diff) | |
Merge shader branch, adding support for GLSL decompilation, a macro
interpreter, and a rewrite of the GPU code.
Diffstat (limited to 'Ryujinx.Core/OsHle')
| -rw-r--r-- | Ryujinx.Core/OsHle/Services/Nv/INvDrvServices.cs | 8 | ||||
| -rw-r--r-- | Ryujinx.Core/OsHle/Services/Vi/NvFlinger.cs | 12 |
2 files changed, 12 insertions, 8 deletions
diff --git a/Ryujinx.Core/OsHle/Services/Nv/INvDrvServices.cs b/Ryujinx.Core/OsHle/Services/Nv/INvDrvServices.cs index 8568e8f2..e41f03a4 100644 --- a/Ryujinx.Core/OsHle/Services/Nv/INvDrvServices.cs +++ b/Ryujinx.Core/OsHle/Services/Nv/INvDrvServices.cs @@ -538,9 +538,9 @@ namespace Ryujinx.Core.OsHle.Services.Nv { byte[] Data = AMemoryHelper.ReadBytes(Context.Memory, CpuAddr, Size); - NsGpuPBEntry[] PushBuffer = NsGpuPBEntry.DecodePushBuffer(Data); + NsGpuPBEntry[] PushBuffer = NvGpuPushBuffer.Decode(Data); - Context.Ns.Gpu.ProcessPushBuffer(PushBuffer, Context.Memory); + Context.Ns.Gpu.Fifo.PushBuffer(Context.Memory, PushBuffer); } } @@ -680,8 +680,8 @@ namespace Ryujinx.Core.OsHle.Services.Nv } Map.CpuAddress = Addr; - Map.Align = Align; - Map.Kind = Kind; + Map.Align = Align; + Map.Kind = Kind; return 0; } diff --git a/Ryujinx.Core/OsHle/Services/Vi/NvFlinger.cs b/Ryujinx.Core/OsHle/Services/Vi/NvFlinger.cs index 4301c0e6..45b99ead 100644 --- a/Ryujinx.Core/OsHle/Services/Vi/NvFlinger.cs +++ b/Ryujinx.Core/OsHle/Services/Vi/NvFlinger.cs @@ -244,12 +244,16 @@ namespace Ryujinx.Core.OsHle.Services.Android { int Slot = ParcelReader.ReadInt32(); - int BufferCount = ParcelReader.ReadInt32(); - long BufferSize = ParcelReader.ReadInt64(); + int BufferCount = ParcelReader.ReadInt32(); - BufferQueue[Slot].State = BufferState.Free; + if (BufferCount > 0) + { + long BufferSize = ParcelReader.ReadInt64(); - BufferQueue[Slot].Data = new GbpBuffer(ParcelReader); + BufferQueue[Slot].State = BufferState.Free; + + BufferQueue[Slot].Data = new GbpBuffer(ParcelReader); + } return MakeReplyParcel(Context, 0); } |
