diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/vulkan/anv_wsi_wayland.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/vulkan/anv_wsi_wayland.c b/src/vulkan/anv_wsi_wayland.c index 11f2dae9759..a601ad1851f 100644 --- a/src/vulkan/anv_wsi_wayland.c +++ b/src/vulkan/anv_wsi_wayland.c @@ -516,14 +516,17 @@ wsi_wl_queue_present(struct anv_swap_chain *anv_chain, assert(image_index < chain->image_count); wl_surface_attach(chain->surface, chain->images[image_index].buffer, 0, 0); wl_surface_damage(chain->surface, 0, 0, INT32_MAX, INT32_MAX); - wl_surface_commit(chain->surface); if (chain->present_mode == VK_PRESENT_MODE_FIFO_WSI) { struct wl_callback *frame = wl_surface_frame(chain->surface); wl_proxy_set_queue((struct wl_proxy *)frame, chain->queue); wl_callback_add_listener(frame, &frame_listener, chain); + chain->fifo_ready = false; } + wl_surface_commit(chain->surface); + wl_display_flush(chain->display->display); + return VK_SUCCESS; } |