mirror of
https://github.com/status-im/Vulkan-Docs.git
synced 2025-03-03 07:20:27 +00:00
* Bump API patch number and header version number to 50 for this update. Github Issues: * Fix numerous minor issues with the VK_EXT_debug_report extension (public issues 478, 483, 486, 489, 490). Internal Issues: * Update flink:vkAllocateDescriptorSets to specify conditions under which to return ename:VK_ERROR_FRAGMENTED_POOL or ename:VK_ERROR_OUT_OF_POOL_MEMORY instead of out-of-host/out-of-device-memory, and improve the <<fundamentals-errorcodes, description of those errors (internal issue 654). * Add a NOTE documenting that flink:vkAcquireNextImageKHR can only signal a single semaphore, and how to deal with that when multiple physical devices in a logical device need to wait on it (internal issue 730). * Improve description of pname:pNext chains of slink:VkPhysicalDeviceImageFormatInfo2KHR and slink:VkImageFormatProperties2KHR (internal issue 814). * Clean up math markup issues in the <<textures, Image Operations>> chapter (internal issue 818). * Update validusage target to use more robust code for preprocessing, by making direct use of Asciidoctor's preprocessor. Added uniqueItems check to JSON vu schema and add clean_validusage target (internal issue 826). * Update style guide to prohibit writing non-self-contained (on a single bullet point) Valid Usage statements, and modify offending Valid Usage statements in the Specification to match, to assist with automatic extraction for the validation layers (internal issue 828). * Add ename:VK_VALIDATION_CHECK_SHADERS_EXT to elink:VkValidationCheckEXT of the `VK_EXT_validation_flags` extension, to selectively disable shader validation. * Remove duplicate valid usage statement for slink:VkImageMemoryBarrier. * Modify reflow.py script to place VUID tag anchors standalone on a line following their corresponding bullet point, and reflow the spec text accordingly (this had been pending since the initial tag deployment). New Extensions: * `VK_AMD_texture_gather_bias_lod`
95 lines
4.0 KiB
Plaintext
95 lines
4.0 KiB
Plaintext
// Copyright (c) 2014-2017 The Khronos Group Inc.
|
|
// Copyright notice at https://www.khronos.org/registry/speccopyright.html
|
|
|
|
// refBegin VkPresentRegionsKHR - Structure hint of rectangular regions changed by vkQueuePresentKHR
|
|
|
|
When the +VK_KHR_incremental_present+ extension is enabled, additional
|
|
fields can: be specified that allow an application to specify that only
|
|
certain rectangular regions of the presentable images of a swapchain are
|
|
changed.
|
|
This is an optimization hint that a presentation engine may: use to only
|
|
update the region of a surface that is actually changing.
|
|
The application still must: ensure that all pixels of a presented image
|
|
contain the desired values, in case the presentation engine ignores this
|
|
hint.
|
|
An application can: provide this hint by including the
|
|
sname:VkPresentRegionsKHR structure in the pname:pNext chain of the
|
|
sname:VkPresentInfoKHR structure.
|
|
|
|
The sname:VkPresentRegionsKHR structure is defined as:
|
|
|
|
include::../../api/structs/VkPresentRegionsKHR.txt[]
|
|
|
|
* pname:sType is the type of this structure.
|
|
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
|
* pname:swapchainCount is the number of swapchains being presented to by
|
|
this command.
|
|
* pname:pRegions is `NULL` or a pointer to an array of
|
|
sname:VkPresentRegionKHR elements with pname:swapchainCount entries.
|
|
If not `NULL`, each element of pname:pRegions contains the region that
|
|
has changed since the last present to the swapchain in the corresponding
|
|
entry in the sname:VkPresentInfoKHR::pname:pSwapchains array.
|
|
|
|
.Valid Usage
|
|
****
|
|
* [[VUID-VkPresentRegionsKHR-swapchainCount-01260]]
|
|
pname:swapchainCount must: be the same value as
|
|
sname:VkPresentInfoKHR::pname:swapchainCount, where
|
|
sname:VkPresentInfoKHR is in the pNext-chain of this
|
|
sname:VkPresentRegionsKHR structure.
|
|
****
|
|
|
|
include::../../validity/structs/VkPresentRegionsKHR.txt[]
|
|
|
|
// refBegin VkPresentRegionKHR - Structure containing rectangular region changed by vkQueuePresentKHR for a given VkImage
|
|
|
|
For a given image and swapchain, the region to present is specified by the
|
|
sname:VkPresentRegionKHR structure, which is defined as:
|
|
|
|
include::../../api/structs/VkPresentRegionKHR.txt[]
|
|
|
|
* pname:rectangleCount is the number of rectangles in pname:pRectangles,
|
|
or zero if the entire image has changed and should be presented.
|
|
* pname:pRectangles is either `NULL` or a pointer to an array of
|
|
sname:VkRectLayerKHR structures.
|
|
The sname:VkRectLayerKHR structure is the framebuffer coordinates, plus
|
|
layer, of a portion of a presentable image that has changed and must: be
|
|
presented.
|
|
If non-`NULL`, each entry in pname:pRectangles is a rectangle of the
|
|
given image that has changed since the last image was presented to the
|
|
given swapchain.
|
|
|
|
include::../../validity/structs/VkPresentRegionKHR.txt[]
|
|
|
|
// refBegin VkRectLayerKHR - Structure containing a rectangle, including layer, changed by vkQueuePresentKHR for a given VkImage
|
|
|
|
The sname:VkRectLayerKHR structure is defined as:
|
|
|
|
include::../../api/structs/VkRectLayerKHR.txt[]
|
|
|
|
* pname:offset is the origin of the rectangle, in pixels.
|
|
* pname:extent is the size of the rectangle, in pixels.
|
|
* pname:layer is the layer of the image.
|
|
For images with only one layer, the value of pname:layer must: be 0.
|
|
|
|
.Valid Usage
|
|
****
|
|
* [[VUID-VkRectLayerKHR-offset-01261]]
|
|
The sum of pname:offset and pname:extent must: be no greater than the
|
|
pname:imageExtent member of the sname:VkSwapchainCreateInfoKHR structure
|
|
given to flink:vkCreateSwapchainKHR.
|
|
* [[VUID-VkRectLayerKHR-layer-01262]]
|
|
pname:layer must: be less than pname:imageArrayLayers member of the
|
|
sname:VkSwapchainCreateInfoKHR structure given to
|
|
flink:vkCreateSwapchainKHR.
|
|
****
|
|
|
|
include::../../validity/structs/VkRectLayerKHR.txt[]
|
|
|
|
Some platforms allow the size of a surface to change, and then scale the
|
|
pixels of the image to fit the surface.
|
|
VkRectLayerKHR specifies pixels of the swapchain's image(s), which will be
|
|
constant for the life of the swapchain.
|
|
|
|
// refEnd VkRectLayerKHR
|