Remove artificial call count limit for EndGl (#357)

This commit is contained in:
gdkchan 2018-08-16 20:45:00 -03:00 committed by GitHub
parent 6e1a6c5b2b
commit 182d716867
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 0 additions and 39 deletions

View file

@ -1,4 +1,3 @@
using Ryujinx.HLE.Gpu.Exceptions;
using Ryujinx.HLE.Gpu.Memory; using Ryujinx.HLE.Gpu.Memory;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -7,10 +6,6 @@ namespace Ryujinx.HLE.Gpu.Engines
{ {
class MacroInterpreter class MacroInterpreter
{ {
private const int MaxCallCountPerRun = 500;
private int CallCount;
private enum AssignmentOperation private enum AssignmentOperation
{ {
IgnoreAndFetch = 0, IgnoreAndFetch = 0,
@ -102,8 +97,6 @@ namespace Ryujinx.HLE.Gpu.Engines
MethIncr = 0; MethIncr = 0;
Carry = false; Carry = false;
CallCount = 0;
} }
private bool Step(NvGpuVmm Vmm, int[] Mme) private bool Step(NvGpuVmm Vmm, int[] Mme)
@ -415,15 +408,6 @@ namespace Ryujinx.HLE.Gpu.Engines
private void Send(NvGpuVmm Vmm, int Value) private void Send(NvGpuVmm Vmm, int Value)
{ {
//This is an artificial limit that prevents excessive calls
//to VertexEndGl since that triggers rendering, and in the
//case that something is bugged and causes an absurd amount of
//draw calls, this prevents the system from freezing (and throws instead).
if (MethAddr == 0x585 && ++CallCount > MaxCallCountPerRun)
{
GpuExceptionHelper.ThrowCallCoundExceeded();
}
NvGpuPBEntry PBEntry = new NvGpuPBEntry(MethAddr, 0, Value); NvGpuPBEntry PBEntry = new NvGpuPBEntry(MethAddr, 0, Value);
Engine.CallMethod(Vmm, PBEntry); Engine.CallMethod(Vmm, PBEntry);

View file

@ -1,11 +0,0 @@
using System;
namespace Ryujinx.HLE.Gpu.Exceptions
{
class GpuException : Exception
{
public GpuException() : base() { }
public GpuException(string ExMsg) : base(ExMsg) { }
}
}

View file

@ -1,12 +0,0 @@
namespace Ryujinx.HLE.Gpu.Exceptions
{
static class GpuExceptionHelper
{
private const string CallCountExceeded = "Method call count exceeded the limit allowed per run!";
public static void ThrowCallCoundExceeded()
{
throw new GpuException(CallCountExceeded);
}
}
}