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:
Rodolfo Osvaldo Bogado committed 2010-04-03 22:22:55 +00:00
1 parent 962fef0626
commit a4736f7f6b
11 files changed
+39 -86

No files matched your search

+5 -4
View File
@@ -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();
}