diff options
Diffstat (limited to 'video/out/vulkan/context_xlib.c')
-rw-r--r-- | video/out/vulkan/context_xlib.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/video/out/vulkan/context_xlib.c b/video/out/vulkan/context_xlib.c index 2d498723df..3392145e1a 100644 --- a/video/out/vulkan/context_xlib.c +++ b/video/out/vulkan/context_xlib.c @@ -16,6 +16,7 @@ */ #include "video/out/gpu/context.h" +#include "video/out/present_sync.h" #include "video/out/x11_common.h" #include "common.h" @@ -31,6 +32,18 @@ static bool xlib_check_visible(struct ra_ctx *ctx) return vo_x11_check_visible(ctx->vo); } +static void xlib_vk_swap_buffers(struct ra_ctx *ctx) +{ + vo_x11_present(ctx->vo); + present_sync_swap(ctx->vo->x11->present); +} + +static void xlib_vk_get_vsync(struct ra_ctx *ctx, struct vo_vsync_info *info) +{ + struct vo_x11_state *x11 = ctx->vo->x11; + present_sync_get_info(x11->present, info); +} + static void xlib_uninit(struct ra_ctx *ctx) { struct priv *p = ctx->priv; @@ -63,6 +76,8 @@ static bool xlib_init(struct ra_ctx *ctx) struct ra_vk_ctx_params params = { .check_visible = xlib_check_visible, + .swap_buffers = xlib_vk_swap_buffers, + .get_vsync = xlib_vk_get_vsync, }; VkInstance inst = vk->vkinst->instance; |