summaryrefslogtreecommitdiffstats
path: root/video/out/vulkan/context_xlib.c
diff options
context:
space:
mode:
Diffstat (limited to 'video/out/vulkan/context_xlib.c')
-rw-r--r--video/out/vulkan/context_xlib.c15
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;