OSDN Git Service

vulkan/wsi/x11: add support for IMMEDIATE present mode
authorDave Airlie <airlied@redhat.com>
Wed, 26 Oct 2016 03:05:51 +0000 (13:05 +1000)
committerEmil Velikov <emil.l.velikov@gmail.com>
Mon, 28 Nov 2016 12:17:51 +0000 (12:17 +0000)
We shouldn't be using ASYNC here, that would be used
for immediate mode, so let's implement that.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Signed-off-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit ca035006c86a5055c8e640f49c858f04770681eb)

src/vulkan/wsi/wsi_common_x11.c

index 9ce3842..75eab6c 100644 (file)
@@ -143,6 +143,7 @@ static const VkSurfaceFormatKHR formats[] = {
 };
 
 static const VkPresentModeKHR present_modes[] = {
+   VK_PRESENT_MODE_IMMEDIATE_KHR,
    VK_PRESENT_MODE_MAILBOX_KHR,
 };
 
@@ -654,7 +655,8 @@ x11_queue_present(struct wsi_swapchain *anv_chain,
    int64_t divisor = 0;
    int64_t remainder = 0;
 
-   options |= XCB_PRESENT_OPTION_ASYNC;
+   if (chain->base.present_mode == VK_PRESENT_MODE_IMMEDIATE_KHR)
+      options |= XCB_PRESENT_OPTION_ASYNC;
 
    xshmfence_reset(image->shm_fence);