back to limit vps instead of fps as this fix fps limit and now it works correctly as now the sync between the plug in and the core is almost correct.
fixed fps display in the top bar, now it shows the real fps of the game. some code clean up and some corrections to make everything work right in the reference renderer. multiples xfb now is broken even in single core as is was not an error caused by dual core, i really dono where the error is,everything looks correct but if you test a game with multiples xfb or the ipl you will see the error. ector if you can take a look at he code and throw me some ideas i'll thank you. please test. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5272 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
1 parent
962fef0626
commit
a4736f7f6b
11 files changed
+39
-86
No files matched your search
@@ -595,14 +595,14 @@ void ScreenShot()
|
||||
// This should only be called from VI
|
||||
void VideoThrottle()
|
||||
{
|
||||
u32 TargetFPS = (SConfig::GetInstance().m_Framelimit > 1) ?
|
||||
u32 TargetVPS = (SConfig::GetInstance().m_Framelimit > 1) ?
|
||||
SConfig::GetInstance().m_Framelimit * 10 : VideoInterface::TargetRefreshRate;
|
||||
|
||||
// When frame limit is NOT off
|
||||
if (SConfig::GetInstance().m_Framelimit)
|
||||
{
|
||||
// Make the limiter a bit loose
|
||||
u32 frametime = DrawnFrame * 1000 / ++TargetFPS;
|
||||
u32 frametime = DrawnVideo * 1000 / ++TargetVPS;
|
||||
while ((u32)Timer.GetTimeDifference() < frametime)
|
||||
Common::YieldCPU();
|
||||
//Common::SleepCurrentThread(1);
|
||||
@@ -616,7 +616,7 @@ void VideoThrottle()
|
||||
|
||||
u32 FPS = Common::AtomicLoad(DrawnFrame) * 1000 / ElapseTime;
|
||||
u32 VPS = --DrawnVideo * 1000 / ElapseTime;
|
||||
u32 Speed = FPS * 100 / VideoInterface::TargetRefreshRate;
|
||||
u32 Speed = VPS * 100 / VideoInterface::TargetRefreshRate;
|
||||
|
||||
// Settings are shown the same for both extended and summary info
|
||||
std::string SSettings = StringFromFormat("%s %s",
|
||||
@@ -699,7 +699,8 @@ void Callback_VideoLog(const TCHAR *_szMessage, int _bDoBreak)
|
||||
// Should be called from GPU thread when a frame is drawn
|
||||
void Callback_VideoCopiedToXFB(bool video_update)
|
||||
{
|
||||
Common::AtomicIncrement(DrawnFrame);
|
||||
if(video_update)
|
||||
Common::AtomicIncrement(DrawnFrame);
|
||||
Frame::FrameUpdate();
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user