/ appendices / VK_KHR_create_renderpass2.txt
VK_KHR_create_renderpass2.txt
 1  // Copyright (c) 2016-2019 Khronos Group. This work is licensed under a
 2  // Creative Commons Attribution 4.0 International License; see
 3  // http://creativecommons.org/licenses/by/4.0/
 4  
 5  include::meta/VK_KHR_create_renderpass2.txt[]
 6  
 7  Last Modified Date::
 8      2018-02-07
 9  Contributors::
10    - Tobias Hector
11    - Jeff Bolz
12  
13  This extension provides a new entry point to create render passes in a way
14  that can be easily extended by other extensions through the substructures of
15  render pass creation.
16  The Vulkan 1.0 render pass creation sub-structures do not include
17  ptext:sType/ptext:pNext members.
18  Additionally, the renderpass begin/next/end commands have been augmented
19  with new extensible structures for passing additional subpass information.
20  
21  The slink:VkRenderPassMultiviewCreateInfo and
22  slink:VkInputAttachmentAspectReference structures that extended the original
23  slink:VkRenderPassCreateInfo are not accepted into the new creation
24  functions, and instead their parameters are folded into this extension as
25  follows:
26  
27    * Elements of slink:VkRenderPassMultiviewCreateInfo::pname:pViewMasks are
28      now specified in slink:VkSubpassDescription2KHR::pname:viewMask.
29    * Elements of slink:VkRenderPassMultiviewCreateInfo::pname:pViewOffsets
30      are now specified in slink:VkSubpassDependency2KHR::pname:viewOffset.
31    * slink:VkRenderPassMultiviewCreateInfo::pname:correlationMaskCount and
32      slink:VkRenderPassMultiviewCreateInfo::pname:pCorrelationMasks are
33      directly specified in slink:VkRenderPassCreateInfo2KHR.
34    * slink:VkInputAttachmentAspectReference::pname:aspectMask is now
35      specified in the relevant input attachment description in
36      slink:VkAttachmentDescription2KHR::pname:aspectMask
37  
38  The details of these mappings are explained fully in the new structures.
39  
40  === New Enum Constants
41  
42    * Extending elink:VkStructureType:
43    ** ename:VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR
44    ** ename:VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR
45    ** ename:VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR
46    ** ename:VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR
47    ** ename:VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR
48    ** ename:VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR
49    ** ename:VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR
50  
51  === New Structures
52  
53    * slink:VkAttachmentDescription2KHR
54    * slink:VkAttachmentReference2KHR
55    * slink:VkSubpassDescription2KHR
56    * slink:VkSubpassDependency2KHR
57    * slink:VkRenderPassCreateInfo2KHR
58    * slink:VkSubpassBeginInfoKHR
59    * slink:VkSubpassEndInfoKHR
60  
61  === New Functions
62  
63    * flink:vkCreateRenderPass2KHR
64    * flink:vkCmdBeginRenderPass2KHR
65    * flink:vkCmdNextSubpass2KHR
66    * flink:vkCmdEndRenderPass2KHR
67  
68  === Version History
69  
70   * Revision 1, 2018-02-07 (Tobias Hector)
71     - Internal revisions