Merge pull request #549 from djdeath/master
Make FPS counter more accurate
This commit is contained in:
commit
783199b1c8
2 changed files with 12 additions and 12 deletions
|
|
@ -250,7 +250,7 @@ void VulkanExampleBase::renderFrame()
|
|||
timer -= 1.0f;
|
||||
}
|
||||
}
|
||||
fpsTimer += (float)tDiff;
|
||||
float fpsTimer = std::chrono::duration<double, std::milli>(tEnd - lastTimestamp).count();
|
||||
if (fpsTimer > 1000.0f)
|
||||
{
|
||||
lastFPS = static_cast<uint32_t>((float)frameCounter * (1000.0f / fpsTimer));
|
||||
|
|
@ -260,8 +260,8 @@ void VulkanExampleBase::renderFrame()
|
|||
SetWindowText(window, windowTitle.c_str());
|
||||
}
|
||||
#endif
|
||||
fpsTimer = 0.0f;
|
||||
frameCounter = 0;
|
||||
lastTimestamp = tEnd;
|
||||
}
|
||||
// TODO: Cap UI overlay update rates
|
||||
updateOverlay();
|
||||
|
|
@ -280,6 +280,7 @@ void VulkanExampleBase::renderLoop()
|
|||
|
||||
destWidth = width;
|
||||
destHeight = height;
|
||||
lastTimestamp = std::chrono::high_resolution_clock::now();
|
||||
#if defined(_WIN32)
|
||||
MSG msg;
|
||||
bool quitMessageReceived = false;
|
||||
|
|
@ -347,12 +348,12 @@ void VulkanExampleBase::renderLoop()
|
|||
timer -= 1.0f;
|
||||
}
|
||||
}
|
||||
fpsTimer += (float)tDiff;
|
||||
float fpsTimer = std::chrono::duration<double, std::milli>(tEnd - lastTimestamp).count();
|
||||
if (fpsTimer > 1000.0f)
|
||||
{
|
||||
lastFPS = (float)frameCounter * (1000.0f / fpsTimer);
|
||||
fpsTimer = 0.0f;
|
||||
frameCounter = 0;
|
||||
lastTimestamp = tEnd;
|
||||
}
|
||||
|
||||
// TODO: Cap UI overlay update rates/only issue when update requested
|
||||
|
|
@ -437,12 +438,12 @@ void VulkanExampleBase::renderLoop()
|
|||
timer -= 1.0f;
|
||||
}
|
||||
}
|
||||
fpsTimer += (float)tDiff;
|
||||
float fpsTimer = std::chrono::duration<double, std::milli>(tEnd - lastTimestamp).count();
|
||||
if (fpsTimer > 1000.0f)
|
||||
{
|
||||
lastFPS = (float)frameCounter * (1000.0f / fpsTimer);
|
||||
fpsTimer = 0.0f;
|
||||
frameCounter = 0;
|
||||
lastTimestamp = tEnd;
|
||||
}
|
||||
updateOverlay();
|
||||
}
|
||||
|
|
@ -483,7 +484,7 @@ void VulkanExampleBase::renderLoop()
|
|||
timer -= 1.0f;
|
||||
}
|
||||
}
|
||||
fpsTimer += (float)tDiff;
|
||||
float fpsTimer = std::chrono::duration<double, std::milli>(tEnd - lastTimestamp).count();
|
||||
if (fpsTimer > 1000.0f)
|
||||
{
|
||||
if (!settings.overlay)
|
||||
|
|
@ -492,8 +493,8 @@ void VulkanExampleBase::renderLoop()
|
|||
xdg_toplevel_set_title(xdg_toplevel, windowTitle.c_str());
|
||||
}
|
||||
lastFPS = (float)frameCounter * (1000.0f / fpsTimer);
|
||||
fpsTimer = 0.0f;
|
||||
frameCounter = 0;
|
||||
lastTimestamp = tEnd;
|
||||
}
|
||||
updateOverlay();
|
||||
}
|
||||
|
|
@ -532,7 +533,7 @@ void VulkanExampleBase::renderLoop()
|
|||
timer -= 1.0f;
|
||||
}
|
||||
}
|
||||
fpsTimer += (float)tDiff;
|
||||
float fpsTimer = std::chrono::duration<double, std::milli>(tEnd - lastTimestamp).count();
|
||||
if (fpsTimer > 1000.0f)
|
||||
{
|
||||
if (!settings.overlay)
|
||||
|
|
@ -543,8 +544,8 @@ void VulkanExampleBase::renderLoop()
|
|||
windowTitle.size(), windowTitle.c_str());
|
||||
}
|
||||
lastFPS = (float)frameCounter * (1000.0f / fpsTimer);
|
||||
fpsTimer = 0.0f;
|
||||
frameCounter = 0;
|
||||
lastTimestamp = tEnd;
|
||||
}
|
||||
updateOverlay();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -57,8 +57,6 @@
|
|||
class VulkanExampleBase
|
||||
{
|
||||
private:
|
||||
// fps timer (one second interval)
|
||||
float fpsTimer = 0.0f;
|
||||
// Get window title with example name, device, et.
|
||||
std::string getWindowTitle();
|
||||
/** brief Indicates that the view (position, rotation) has changed and buffers containing camera matrices need to be updated */
|
||||
|
|
@ -74,6 +72,7 @@ protected:
|
|||
// Frame counter to display fps
|
||||
uint32_t frameCounter = 0;
|
||||
uint32_t lastFPS = 0;
|
||||
std::chrono::time_point<std::chrono::high_resolution_clock> lastTimestamp;
|
||||
// Vulkan instance, stores all per-application states
|
||||
VkInstance instance;
|
||||
// Physical device (GPU) that Vulkan will ise
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue