Skip to content

Commit

Permalink
Revert "Limit the flip delay in the other direction to try to work ar…
Browse files Browse the repository at this point in the history
…ound #10763."
  • Loading branch information
hrydgard authored May 2, 2018
1 parent bed6d19 commit b6472b5
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 5 deletions.
1 change: 0 additions & 1 deletion Core/CoreTiming.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -585,7 +585,6 @@ void Advance()
int cyclesExecuted = slicelength - currentMIPS->downcount;
globalTimer += cyclesExecuted;
currentMIPS->downcount = slicelength;
VERBOSE_LOG(SCEDISPLAY, "CoreTiming: Event type '%s'", event_types[first->type].name);

if (Common::AtomicLoadAcquire(hasTsEvents))
MoveEvents();
Expand Down
5 changes: 1 addition & 4 deletions Core/HLE/sceDisplay.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -588,7 +588,6 @@ static void DoFrameTiming(bool &throttle, bool &skipFrame, float timestep) {

static void DoFrameIdleTiming() {
PROFILE_THIS_SCOPE("timing");

if (!FrameTimingThrottled() || !g_Config.bEnableSound || wasPaused) {
return;
}
Expand Down Expand Up @@ -911,8 +910,6 @@ u32 sceDisplaySetFramebuf(u32 topaddr, int linesize, int pixelformat, int sync)
// sceDisplaySetFramebuf() isn't supposed to delay threads at all. This is a hack.
// So let's only delay when it's more than 1ms.
const s64 FLIP_DELAY_CYCLES_MIN = usToCycles(1000);
// Though if we are super early, we also don't want to delay because the game is being silly like in #10763
const s64 FLIP_DELAY_CYCLES_MAX = usToCycles(16000); // This is slightly less than a full frame at 60hz, 16666
// Some games (like Final Fantasy 4) only call this too much in spurts.
// The goal is to fix games where this would result in a consistent overhead.
const int FLIP_DELAY_MIN_FLIPS = 30;
Expand All @@ -922,7 +919,7 @@ u32 sceDisplaySetFramebuf(u32 topaddr, int linesize, int pixelformat, int sync)

u64 now = CoreTiming::GetTicks();
s64 cyclesAhead = nextFlipCycles - now;
if (cyclesAhead > FLIP_DELAY_CYCLES_MIN && (cyclesAhead < FLIP_DELAY_CYCLES_MAX || PSP_CoreParameter().unthrottle)) {
if (cyclesAhead > FLIP_DELAY_CYCLES_MIN) {
if (lastFlipsTooFrequent >= FLIP_DELAY_MIN_FLIPS && gpuStats.numClears > 0) {
delayCycles = cyclesAhead;
} else {
Expand Down

0 comments on commit b6472b5

Please sign in to comment.