return "unknown";
}
}
+
+/**
+ * gst_vulkan_present_mode_to_string:
+ * @present_mode: a `VkPresentModeKHR`
+ *
+ * Returns: name of @present_mode
+ *
+ * Since: 1.20
+ */
+const gchar *
+gst_vulkan_present_mode_to_string (VkPresentModeKHR present_mode)
+{
+ switch (present_mode) {
+ case VK_PRESENT_MODE_FIFO_KHR:
+ return "FIFO";
+ case VK_PRESENT_MODE_IMMEDIATE_KHR:
+ return "immediate";
+ case VK_PRESENT_MODE_MAILBOX_KHR:
+ return "mailbox";
+ /* XXX: add other values as necessary */
+ default:
+ return "unknown";
+ }
+}
swapchain_dims.width = width;
swapchain_dims.height = height;
priv->any_current_extent = TRUE;
+ GST_DEBUG_OBJECT (swapper, "using requested swapchain dimensions %ux%u "
+ "from window", width, height);
} else {
/* If the surface size is defined, the swap chain size must match */
swapchain_dims = priv->surf_props.currentExtent;
priv->any_current_extent = FALSE;
+ GST_DEBUG_OBJECT (swapper, "using current swapchain dimensions %ux%u",
+ priv->surf_props.currentExtent.width,
+ priv->surf_props.currentExtent.height);
}
priv->surface_location.w = swapchain_dims.width;
priv->surface_location.h = swapchain_dims.height;
* always available. */
present_mode = VK_PRESENT_MODE_FIFO_KHR;
for (i = 0; i < priv->n_surf_present_modes; i++) {
+ GST_TRACE_OBJECT (swapper,
+ "surface %" GST_VULKAN_NON_DISPATCHABLE_HANDLE_FORMAT
+ " has present mode \'%s\' (0x%x)", priv->surface,
+ gst_vulkan_present_mode_to_string (priv->surf_present_modes[i]),
+ priv->surf_present_modes[i]);
+
if (priv->surf_present_modes[i] == VK_PRESENT_MODE_MAILBOX_KHR) {
present_mode = VK_PRESENT_MODE_MAILBOX_KHR;
break;
present_mode = VK_PRESENT_MODE_IMMEDIATE_KHR;
}
}
+ GST_DEBUG_OBJECT (swapper, "using present mode \'%s\'",
+ gst_vulkan_present_mode_to_string (present_mode));
/* Determine the number of VkImage's to use in the swap chain (we desire to
* own only 1 image at a time, besides the images being displayed and