mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-30 01:29:42 -06:00
Fix screen flickering with frameskip on D3D plugin, also fix occasional hang when turning frameskip off
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4194 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@ -231,7 +231,7 @@ void Stop() // - Hammertime!
|
||||
}
|
||||
|
||||
// Video_EnterLoop() should now exit so that EmuThread() will continue concurrently with the rest
|
||||
// of the commands in this function. We no longer rely on Postmessage. */
|
||||
// of the commands in this function. We no longer rely on Postmessage.
|
||||
|
||||
// Close the trace file
|
||||
Core::StopTrace();
|
||||
@ -698,7 +698,7 @@ void Callback_VideoCopiedToXFB(bool video_update)
|
||||
|
||||
int TargetVPS = (int)(VideoInterface::TargetRefreshRate + 0.5);
|
||||
|
||||
float Speed = (VPS / TargetVPS) * 100.0f;
|
||||
float Speed = ((VPS > 0 ? VPS : VideoInterface::ActualRefreshRate) / TargetVPS) * 100.0f;
|
||||
|
||||
// Settings are shown the same for both extended and summary info
|
||||
std::string SSettings = StringFromFormat(" | Core: %s %s",
|
||||
|
@ -77,6 +77,11 @@ void SetFrameSkipping(unsigned int framesToSkip) {
|
||||
g_framesToSkip = (int)framesToSkip;
|
||||
g_frameSkipCounter = 0;
|
||||
|
||||
// Don't forget to re-enable rendering in case it wasn't...
|
||||
// as this won't be changed anymore when frameskip is turned off
|
||||
if (framesToSkip == 0)
|
||||
CPluginManager::GetInstance().GetVideo()->Video_SetRendering(true);
|
||||
|
||||
cs_frameSkip.Leave();
|
||||
}
|
||||
|
||||
|
@ -45,7 +45,7 @@ void SetBlendMode(const BPCmd &bp);
|
||||
void SetDitherMode(const BPCmd &bp);
|
||||
void SetLogicOpMode(const BPCmd &bp);
|
||||
void SetColorMask(const BPCmd &bp);
|
||||
void CopyEFB(const BPCmd &bp, const EFBRectangle &rc, const u32 &address, const bool &fromZBuffer, const bool &isIntensityFmt, const u32 ©fmt, const bool &scaleByHalf);
|
||||
void CopyEFB(const BPCmd &bp, const EFBRectangle &rc, const u32 &address, const bool &fromZBuffer, const bool &isIntensityFmt, const u32 ©fmt, const int &scaleByHalf);
|
||||
void RenderToXFB(const BPCmd &bp, const EFBRectangle &rc, const float &yScale, const float &xfbLines, u32 xfbAddr, const u32 &dstWidth, const u32 &dstHeight);
|
||||
void ClearScreen(const BPCmd &bp, const EFBRectangle &rc);
|
||||
void RestoreRenderState(const BPCmd &bp);
|
||||
|
@ -204,7 +204,7 @@ void BPWritten(const BPCmd& bp)
|
||||
bpmem.zcontrol.pixel_format == PIXELFMT_Z24,
|
||||
PE_copy.intensity_fmt > 0,
|
||||
((PE_copy.target_pixel_format / 2) + ((PE_copy.target_pixel_format & 1) * 8)),
|
||||
PE_copy.half_scale > 0);
|
||||
PE_copy.half_scale);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Reference in New Issue
Block a user