winex11: Add simple fps counter for Vulkan.
The fps counter is implemented in winex11 because winevulkan thunks can be bypassed. Signed-off-by: Józef Kucia <jkucia@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
4b90a46e36
commit
ed80907152
|
@ -41,6 +41,7 @@
|
||||||
#include "wine/vulkan_driver.h"
|
#include "wine/vulkan_driver.h"
|
||||||
|
|
||||||
WINE_DEFAULT_DEBUG_CHANNEL(vulkan);
|
WINE_DEFAULT_DEBUG_CHANNEL(vulkan);
|
||||||
|
WINE_DECLARE_DEBUG_CHANNEL(fps);
|
||||||
|
|
||||||
#ifdef SONAME_LIBVULKAN
|
#ifdef SONAME_LIBVULKAN
|
||||||
|
|
||||||
|
@ -513,8 +514,34 @@ static VkResult X11DRV_vkGetSwapchainImagesKHR(VkDevice device,
|
||||||
|
|
||||||
static VkResult X11DRV_vkQueuePresentKHR(VkQueue queue, const VkPresentInfoKHR *present_info)
|
static VkResult X11DRV_vkQueuePresentKHR(VkQueue queue, const VkPresentInfoKHR *present_info)
|
||||||
{
|
{
|
||||||
|
VkResult res;
|
||||||
|
|
||||||
TRACE("%p, %p\n", queue, present_info);
|
TRACE("%p, %p\n", queue, present_info);
|
||||||
return pvkQueuePresentKHR(queue, present_info);
|
|
||||||
|
res = pvkQueuePresentKHR(queue, present_info);
|
||||||
|
|
||||||
|
if (TRACE_ON(fps))
|
||||||
|
{
|
||||||
|
static unsigned long frames, frames_total;
|
||||||
|
static long prev_time, start_time;
|
||||||
|
DWORD time;
|
||||||
|
|
||||||
|
time = GetTickCount();
|
||||||
|
frames++;
|
||||||
|
frames_total++;
|
||||||
|
if (time - prev_time > 1500)
|
||||||
|
{
|
||||||
|
TRACE_(fps)("%p @ approx %.2ffps, total %.2ffps\n",
|
||||||
|
queue, 1000.0 * frames / (time - prev_time),
|
||||||
|
1000.0 * frames_total / (time - start_time));
|
||||||
|
prev_time = time;
|
||||||
|
frames = 0;
|
||||||
|
if (!start_time)
|
||||||
|
start_time = time;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct vulkan_funcs vulkan_funcs =
|
static const struct vulkan_funcs vulkan_funcs =
|
||||||
|
|
Loading…
Reference in New Issue