Snapdragon 8 Elite (& Adreno 8xx) Fixes

See merge request kenji-nx/ryujinx!20
This commit is contained in:
BeZide
2026-01-22 03:33:26 -06:00
committed by KeatonTheBot
parent 6f5b351fa0
commit 6840ae0c5c
26 changed files with 511 additions and 201 deletions
@@ -398,6 +398,9 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostAsGpu
return NvInternalResult.Success;
}
public override void Close() { }
public override void Close()
{
_asContext.Close();
}
}
}
@@ -123,6 +123,17 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostAsGpu.Types
return _reservations.Remove(gpuVa);
}
public void Close()
{
foreach (var map in _maps.Values)
{
Gmm.Unmap(map.Start, map.End - map.Start);
}
_maps.Clear();
_reservations.Clear();
}
private Range BinarySearch(SortedList<ulong, Range> list, ulong address)
{
int left = 0;
@@ -32,7 +32,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostCtrl
/// Max failing count until waiting on CPU.
/// FIXME: This seems enough for most of the cases, reduce if needed.
/// </summary>
private const uint FailingCountMax = 2;
private const uint FailingCountMax = 10;
public NvHostEvent(NvHostSyncpt syncpointManager, uint eventId, Horizon system)
{
+10 -1
View File
@@ -368,7 +368,16 @@ namespace Ryujinx.HLE.HOS.Services
_requestDataReader,
_responseDataWriter);
GetSessionObj(serverSessionHandle).CallCmifMethod(context);
try
{
GetSessionObj(serverSessionHandle).CallCmifMethod(context);
}
catch (Ryujinx.HLE.Exceptions.GuestBrokeExecutionException)
{
Logger.Warning?.Print(LogClass.Kernel, "Guest broke execution in service call. Thread exiting.");
_selfThread.Exit();
return false;
}
response.RawData = _responseDataStream.ToArray();
}