mirror of
https://github.com/libretro/ppsspp.git
synced 2024-12-13 11:38:34 +00:00
Merge pull request #3904 from unknownbrackets/ge-minor
Actually apply restored ge contexts
This commit is contained in:
commit
79853f3a5b
@ -653,6 +653,9 @@ void GPUCommon::ProcessDLQueueInternal() {
|
||||
cyclesExecuted = 0;
|
||||
UpdateTickEstimate(std::max(busyTicks, startingTicks + cyclesExecuted));
|
||||
|
||||
// Game might've written new texture data.
|
||||
gstate_c.textureChanged = true;
|
||||
|
||||
// Seems to be correct behaviour to process the list anyway?
|
||||
if (startingTicks < busyTicks) {
|
||||
DEBUG_LOG(G3D, "Can't execute a list yet, still busy for %lld ticks", busyTicks - startingTicks);
|
||||
@ -893,6 +896,7 @@ void GPUCommon::ExecuteOp(u32 op, u32 diff) {
|
||||
__GeTriggerSync(WAITTYPE_GELISTSYNC, currentList->id, currentList->waitTicks);
|
||||
if (currentList->started && currentList->context != NULL) {
|
||||
gstate.Restore(currentList->context);
|
||||
ReapplyGfxStateInternal();
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -952,6 +956,7 @@ void GPUCommon::InterruptEnd(int listid) {
|
||||
if (dl.state == PSP_GE_DL_STATE_COMPLETED || dl.state == PSP_GE_DL_STATE_NONE) {
|
||||
if (dl.started && dl.context != NULL) {
|
||||
gstate.Restore(dl.context);
|
||||
ReapplyGfxState();
|
||||
}
|
||||
dl.waitTicks = 0;
|
||||
__GeTriggerWait(WAITTYPE_GELISTSYNC, listid);
|
||||
|
Loading…
Reference in New Issue
Block a user