diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/NvHostChannelDeviceFile.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/NvHostChannelDeviceFile.cs index e11949be..3d999030 100644 --- a/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/NvHostChannelDeviceFile.cs +++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/NvHostChannelDeviceFile.cs @@ -143,13 +143,12 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel private NvInternalResult Submit(Span arguments) { - SubmitArguments submitHeader = GetSpanAndSkip(ref arguments, 1)[0]; - Span commandBuffers = GetSpanAndSkip(ref arguments, submitHeader.CmdBufsCount); - Span relocs = GetSpanAndSkip(ref arguments, submitHeader.RelocsCount); - Span relocShifts = GetSpanAndSkip(ref arguments, submitHeader.RelocsCount); - Span syncptIncrs = GetSpanAndSkip(ref arguments, submitHeader.SyncptIncrsCount); - Span waitChecks = GetSpanAndSkip(ref arguments, submitHeader.SyncptIncrsCount); // ? - Span fences = GetSpanAndSkip(ref arguments, submitHeader.FencesCount); + SubmitArguments submitHeader = GetSpanAndSkip(ref arguments, 1)[0]; + Span commandBuffers = GetSpanAndSkip(ref arguments, submitHeader.CmdBufsCount); + Span relocs = GetSpanAndSkip(ref arguments, submitHeader.RelocsCount); + Span relocShifts = GetSpanAndSkip(ref arguments, submitHeader.RelocsCount); + Span syncptIncrs = GetSpanAndSkip(ref arguments, submitHeader.SyncptIncrsCount); + Span fenceThresholds = GetSpanAndSkip(ref arguments, submitHeader.FencesCount); lock (_device) { @@ -159,8 +158,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel uint id = syncptIncr.Id; - fences[i].Id = id; - fences[i].Thresh = Context.Device.System.HostSyncpoint.IncrementSyncpointMax(id, syncptIncr.Incrs); + fenceThresholds[i] = Context.Device.System.HostSyncpoint.IncrementSyncpointMax(id, syncptIncr.Incrs); } foreach (CommandBuffer commandBuffer in commandBuffers) @@ -173,14 +171,6 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel } } - fences[0].Thresh = Context.Device.System.HostSyncpoint.IncrementSyncpointMax(fences[0].Id, 1); - - Span tmpCmdBuff = stackalloc int[1]; - - tmpCmdBuff[0] = (4 << 28) | (int)fences[0].Id; - - _host1xContext.Host1x.Submit(tmpCmdBuff, _contextId); - return NvInternalResult.Success; } diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/Types/SubmitArguments.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/Types/SubmitArguments.cs index 7ef7e39e..05c4280c 100644 --- a/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/Types/SubmitArguments.cs +++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostChannel/Types/SubmitArguments.cs @@ -24,13 +24,9 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostChannel.Types { public uint Id; public uint Incrs; - } - - [StructLayout(LayoutKind.Sequential)] - struct Fence - { - public uint Id; - public uint Thresh; + public uint Reserved1; + public uint Reserved2; + public uint Reserved3; } [StructLayout(LayoutKind.Sequential)]