Reset cache on command buffer execution instead of sync calls (#341)

Also resets const buffer cache on CbData calls.
Non-const buffer data might also change while a command buffer is
executing but that's very unlikely.
This commit is contained in:
ReinUsesLisp 2018-08-14 22:27:05 -03:00 committed by gdkchan
parent 9ac5583513
commit 0673dc183a
2 changed files with 28 additions and 15 deletions

View file

@ -80,6 +80,14 @@ namespace Ryujinx.HLE.Gpu.Engines
}
}
public void ResetCache()
{
foreach (List<long> Uploaded in UploadedKeys)
{
Uploaded.Clear();
}
}
private void VertexEndGl(NvGpuVmm Vmm, NvGpuPBEntry PBEntry)
{
LockCaches();
@ -623,11 +631,6 @@ namespace Ryujinx.HLE.Gpu.Engines
if (Mode == 0)
{
foreach (List<long> Uploaded in UploadedKeys)
{
Uploaded.Clear();
}
//Write mode.
Vmm.WriteInt32(Position, Seq);
}
@ -649,6 +652,8 @@ namespace Ryujinx.HLE.Gpu.Engines
}
WriteRegister(NvGpuEngine3dReg.ConstBufferOffset, Offset);
UploadedKeys[(int)NvGpuBufferType.ConstBuffer].Clear();
}
private void CbBind(NvGpuVmm Vmm, NvGpuPBEntry PBEntry)