OSDN Git Service

vulkan: Offer frontbuffered present modes
authorChris Forbes <chrisforbes@google.com>
Wed, 18 Jan 2017 03:55:07 +0000 (16:55 +1300)
committerChris Forbes <chrisforbes@google.com>
Wed, 18 Jan 2017 04:00:06 +0000 (17:00 +1300)
Test: build
Change-Id: I8654961f0ceb01a7015321b61472f201005a527f

vulkan/libvulkan/swapchain.cpp

index 66e1b0f..f8cd979 100644 (file)
@@ -378,6 +378,9 @@ VkResult GetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice /*pdev*/,
                                                  VkPresentModeKHR* modes) {
     const VkPresentModeKHR kModes[] = {
         VK_PRESENT_MODE_MAILBOX_KHR, VK_PRESENT_MODE_FIFO_KHR,
+        // TODO(chrisforbes): should only expose this if the driver can.
+        VK_PRESENT_MODE_FRONT_BUFFERED_DEMAND_REFRESH_KHR,
+        VK_PRESENT_MODE_FRONT_BUFFERED_CONTINUOUS_REFRESH_KHR,
     };
     const uint32_t kNumModes = sizeof(kModes) / sizeof(kModes[0]);
 
@@ -425,7 +428,9 @@ VkResult CreateSwapchainKHR(VkDevice device,
              "swapchain preTransform=%#x not supported",
              create_info->preTransform);
     ALOGV_IF(!(create_info->presentMode == VK_PRESENT_MODE_FIFO_KHR ||
-               create_info->presentMode == VK_PRESENT_MODE_MAILBOX_KHR),
+               create_info->presentMode == VK_PRESENT_MODE_MAILBOX_KHR ||
+               create_info->presentMode == VK_PRESENT_MODE_FRONT_BUFFERED_DEMAND_REFRESH_KHR ||
+               create_info->presentMode == VK_PRESENT_MODE_FRONT_BUFFERED_CONTINUOUS_REFRESH_KHR),
              "swapchain presentMode=%u not supported",
              create_info->presentMode);