First crack at ensuring the render thread doesn't touch GPU state while it's being serialized

This commit is contained in:
Jesse Talavera-Greenberg
2023-10-24 14:51:45 -04:00
parent 3ab752b8ca
commit e5efc4b348
3 changed files with 23 additions and 2 deletions

View File

@ -393,6 +393,12 @@ void DoSavestate(Savestate* file)
{
file->Section("GP3D");
SoftRenderer* softRenderer = dynamic_cast<SoftRenderer*>(CurrentRenderer.get());
if (softRenderer && softRenderer->IsThreaded())
{
softRenderer->SetupRenderThread();
}
CmdFIFO.DoSavestate(file);
CmdPIPE.DoSavestate(file);
@ -630,6 +636,10 @@ void DoSavestate(Savestate* file)
file->VarArray(ShininessTable, 128*sizeof(u8));
file->Bool32(&AbortFrame);
if (softRenderer && softRenderer->IsThreaded())
{
softRenderer->EnableRenderThread();
}
}