diff --git a/doc/specs/vulkan/chapters/VK_KHR_surface/wsi.txt b/doc/specs/vulkan/chapters/VK_KHR_surface/wsi.txt index cd879d8d..97730ec0 100644 --- a/doc/specs/vulkan/chapters/VK_KHR_surface/wsi.txt +++ b/doc/specs/vulkan/chapters/VK_KHR_surface/wsi.txt @@ -277,7 +277,7 @@ pname:pSurfaceFormatCount. Otherwise, pname:pSurfaceFormatCount must: point to a variable set by the user to the number of elements in the pname:pSurfaceFormats array, and on return the variable is overwritten with the number of structures actually written to pname:pSurfaceFormats. If the -value of pname:pSurfaceFormatCount is less than the number of queue families +value of pname:pSurfaceFormatCount is less than the number of format pairs supported, at most pname:pSurfaceFormatCount structures will be written. If pname:pSurfaceFormatCount is smaller than the number of format pairs supported for the given pname:surface, ename:VK_INCOMPLETE will be returned @@ -290,7 +290,7 @@ The sname:VkSurfaceFormatKHR structure is defined as: include::../../structs/VkSurfaceFormatKHR.txt[] - * pname:format is a sname:VkFormat that is compatible with the specified + * pname:format is a ename:VkFormat that is compatible with the specified surface. * pname:colorSpace is a presentation ename:VkColorSpaceKHR that is compatible with the surface. @@ -310,9 +310,18 @@ The ename:VkColorSpaceKHR is defined as follows: include::../../enums/VkColorSpaceKHR.txt[] - * ename:VK_COLORSPACE_SRGB_NONLINEAR_KHR: The presentation engine supports + * ename:VK_COLOR_SPACE_SRGB_NONLINEAR_KHR: The presentation engine supports the sRGB colorspace. +[NOTE] +.Note +==== +If pname:pSurfaceFormats includes just one entry, whose value for +pname:format is ename:VK_FORMAT_UNDEFINED, pname:surface has no +preferred format. In this case, the application can use any valid +ename:VkFormat value. +==== + To query the supported presentation modes for a surface, call: include::../../protos/vkGetPhysicalDeviceSurfacePresentModesKHR.txt[] @@ -322,7 +331,7 @@ include::../../protos/vkGetPhysicalDeviceSurfacePresentModesKHR.txt[] flink:vkCreateSwapchainKHR. * pname:surface is the surface that will be associated with the swapchain. * pname:pPresentModeCount is a pointer to an integer related to the - number of format pairs available or queried, as described below. + number of presentation modes available or queried, as described below. * pname:pPresentModes is either `NULL` or a pointer to an array of sname:VkPresentModeKHR structures. @@ -368,12 +377,17 @@ include::../../enums/VkPresentModeKHR.txt[] removed from the beginning of the queue and processed during each vertical blanking period in which the queue is non-empty. This is the only value of pname:presentMode that is required: to be supported. - * ename:VK_PRESENT_MODE_FIFO_RELAXED_KHR: The presentation engine waits + * ename:VK_PRESENT_MODE_FIFO_RELAXED_KHR: The presentation engine + generally waits for the next vertical blanking period to update the current image. If a vertical blanking period has already passed since the last update of the current image then the presentation engine does not wait for another vertical blanking period for the update, meaning this mode may: result - in visible tearing in this case. An internal queue containing + in visible tearing in this case. This mode is useful for reducing visual + stutter with an application that will mostly present a new image before + the next vertical blanking period, but may occassionally be late, and + present a new image just after the the next vertical blanking period. + An internal queue containing latexmath:[$\mathit{numSwapchainImages} - 1$] entries, where pname:numSwapchainImages is the number of presentable images in the swapchain, is used to hold pending presentation requests. New requests @@ -387,8 +401,8 @@ include::../../enums/VkPresentModeKHR.txt[] For reference, the mode indicated by ename:VK_PRESENT_MODE_FIFO_KHR is equivalent to the behavior of {wgl|glX|egl}SwapBuffers with a swap interval of 1, while the mode indicated by ename:VK_PRESENT_MODE_FIFO_RELAXED_KHR is -equivalent to the behavior of {wgl|glX|egl}SwapBuffers with a swap internal -of -1. +equivalent to the behavior of {wgl|glX}SwapBuffers with a swap interval +of -1 (from the {WGL|GLX}_EXT_swap_control_tear extensions). ==== include::../VK_KHR_swapchain/wsi.txt[]