Added vsync option

pull/28/head
FlightlessMango 4 years ago
parent cd131e0c39
commit 148d19422d

@ -26,6 +26,7 @@
#include <assert.h>
#include <thread>
#include <chrono>
#include <unordered_map>
#include <vulkan/vulkan.h>
#include <vulkan/vk_layer.h>
@ -2123,11 +2124,19 @@ static VkResult overlay_CreateSwapchainKHR(
VkSwapchainKHR* pSwapchain)
{
struct device_data *device_data = FIND(struct device_data, device);
std::array<VkPresentModeKHR, 4> modes = {VK_PRESENT_MODE_FIFO_RELAXED_KHR,
VK_PRESENT_MODE_IMMEDIATE_KHR,
VK_PRESENT_MODE_MAILBOX_KHR,
VK_PRESENT_MODE_FIFO_KHR};
if (device_data->instance->params.vsync < 4)
const_cast<VkSwapchainCreateInfoKHR*> (pCreateInfo)->presentMode = modes[device_data->instance->params.vsync];
VkResult result = device_data->vtable.CreateSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain);
if (result != VK_SUCCESS) return result;
struct swapchain_data *swapchain_data = new_swapchain_data(*pSwapchain, device_data);
setup_swapchain_data(swapchain_data, pCreateInfo);
return result;
}
@ -2552,6 +2561,7 @@ static VkResult overlay_CreateInstance(
{
VkLayerInstanceCreateInfo *chain_info =
get_instance_chain_info(pCreateInfo, VK_LAYER_LINK_INFO);
const char* pEngineName = pCreateInfo->pApplicationInfo->pEngineName;
if (pEngineName)

@ -85,6 +85,12 @@ parse_fps_limit(const char *str)
return strtol(str, NULL, 0);
}
static uint32_t
parse_vsync(const char *str)
{
return strtol(str, NULL, 0);
}
static bool
parse_no_display(const char *str)
{
@ -99,6 +105,7 @@ parse_unsigned(const char *str)
#define parse_width(s) parse_unsigned(s)
#define parse_height(s) parse_unsigned(s)
#define parse_vsync(s) parse_unsigned(s)
static bool
parse_help(const char *str)
@ -190,6 +197,7 @@ parse_overlay_env(struct overlay_params *params,
params->height = 140;
params->control = -1;
params->fps_limit = 0;
params->vsync = -1;
if (!env)
return;

@ -53,6 +53,7 @@ extern "C" {
OVERLAY_PARAM_CUSTOM(no_display) \
OVERLAY_PARAM_CUSTOM(control) \
OVERLAY_PARAM_CUSTOM(fps_limit) \
OVERLAY_PARAM_CUSTOM(vsync) \
OVERLAY_PARAM_CUSTOM(font_size) \
OVERLAY_PARAM_CUSTOM(help)
@ -83,6 +84,7 @@ struct overlay_params {
bool no_display;
unsigned width;
unsigned height;
unsigned vsync;
float font_size;
};

Loading…
Cancel
Save