Skip to content
Permalink
Browse files

Change log for March 25, 2016 Vulkan 1.0.7 spec update:

  * Bump API patch number and header version number to 7 for this
    update.

Github Issues:

  * Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
    aliasing issues (public issue 14).

  * Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
    validity language (public issue 33).

  * Add stub reference pages so xrefs to not-yet-written pages don't
    generate 404 errors. However, the actual content of these pages
    still needs to be filled in as time allows (public issue 44, but
    does not close that issue out).

  * Remove incorrect validity statement for
    flink:vkGetImageSparseMemoryRequirements (public issue 85).

  * Reword the
    <<features-limits-bufferImageGranularity,bufferImageGranularity>>
    feature in terms of "aliasing", and clarify that it applies to
    bindings in the same memory object (public issue 90).

  * Clarify the relationship of the slink:VkPhysicalDeviceLimits
    pname:maxViewportDimensions and pname:viewportBoundsRange limits
    (public issue 92).

  * Specify sparse unbound texture replacement in the
    <<textures-texel-replacement,Texel Replacement>> section
    independently of robust buffer access language (public issue 100).

  * Add the <<fundamentals-architecture-model,Architecture Model>>
    section to explain architecture constraints Vulkan has chosen to
    accept in order to enable portable and performant code (public issue
    122).

  * State that an object must not be destroyed until *all* (not *any*)
    uses of that object have completed (public issue 123).

  * Minor editorial cleanup (public issues 129, 134, 146, 148).

  * Add validity language for layer and extension names to
    slink:VkDeviceCreateInfo matching that used for
    slink:VkInstanceCreateInfo (public issue 130).

  * Clean up terminology for the case when the bits set in one bitmask
    are a subset of the bits set in another bitmask (public issue 138).

  * Document that input attachments are UniformConstant not Input, in
    the <<interfaces-inputattachment,Fragment Input Attachment
    Interface>> section (public glslang bug 169).

Internal Issues:

  * Add max enum values to "flag bits" enums (internal issue #136).

  * Clarify language around the various uses of the term "block" in the
    <<appendix-compressedtex-bc,Block Compressed Image Formats>> section
    (internal issue #202).

  * Removed "expand" dependency from <enums> groups in vk.xml and added
    auto-generation code in the scripts to infer it instead, to ensure
    consistency. This caused renaming of sname:VkColorSpaceKHR and
    sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
    tokens are metadata, not part of the API, and the Vulkan WG is OK
    with this change. This change adds ranges to two additional enums
    that were missing them due to not defining the "expand" attribute
    (internal issue 217).

  * Tweak makefile to generate ref page nroff (.3) files in the right
    output directory, working around an a2x limitation (internal issue
    223).

Other Commits:

  * Add validity requirements for flink:vkCmdCopyQueryPoolResults
    pname:dstBuffer parameter.

  * Fix ref page build to generate .3 targets in the right output
    directory.
  • Loading branch information...
oddhack committed Mar 25, 2016
1 parent 13f85fa commit 8c3c9b4c85f2539b67148c2de9e2573154c92786
Showing with 7,672 additions and 638 deletions.
  1. +86 −0 ChangeLog.txt
  2. +2 −2 doc/specs/vulkan/Makefile
  3. +2 −2 doc/specs/vulkan/appendices/compressedtex.txt
  4. +4 −4 doc/specs/vulkan/appendices/extensions.txt
  5. +22 −2 doc/specs/vulkan/appendices/glossary.txt
  6. +63 −54 doc/specs/vulkan/chapters/copies.txt
  7. +6 −4 doc/specs/vulkan/chapters/devsandqueues.txt
  8. +208 −195 doc/specs/vulkan/chapters/features.txt
  9. +50 −9 doc/specs/vulkan/chapters/fundamentals.txt
  10. +1 −1 doc/specs/vulkan/chapters/fxvertex.txt
  11. +26 −24 doc/specs/vulkan/chapters/interfaces.txt
  12. +17 −13 doc/specs/vulkan/chapters/pipelines.txt
  13. +40 −28 doc/specs/vulkan/chapters/resources.txt
  14. +152 −128 doc/specs/vulkan/chapters/sparsemem.txt
  15. +1 −1 doc/specs/vulkan/chapters/synchronization.txt
  16. +6 −6 doc/specs/vulkan/chapters/textures.txt
  17. +20 −0 doc/specs/vulkan/funcpointers/PFN_vkDebugReportCallbackEXT.txt
  18. +26 −0 doc/specs/vulkan/man/VkAccessFlagBits.txt
  19. +26 −0 doc/specs/vulkan/man/VkAccessFlags.txt
  20. +26 −0 doc/specs/vulkan/man/VkAndroidSurfaceCreateFlagsKHR.txt
  21. +27 −0 doc/specs/vulkan/man/VkAndroidSurfaceCreateInfoKHR.txt
  22. +27 −0 doc/specs/vulkan/man/VkApplicationInfo.txt
  23. +27 −0 doc/specs/vulkan/man/VkAttachmentDescription.txt
  24. +26 −0 doc/specs/vulkan/man/VkAttachmentDescriptionFlagBits.txt
  25. +26 −0 doc/specs/vulkan/man/VkAttachmentDescriptionFlags.txt
  26. +26 −0 doc/specs/vulkan/man/VkAttachmentLoadOp.txt
  27. +27 −0 doc/specs/vulkan/man/VkAttachmentReference.txt
  28. +26 −0 doc/specs/vulkan/man/VkAttachmentStoreOp.txt
  29. +27 −0 doc/specs/vulkan/man/VkBindSparseInfo.txt
  30. +26 −0 doc/specs/vulkan/man/VkBlendFactor.txt
  31. +26 −0 doc/specs/vulkan/man/VkBlendOp.txt
  32. +26 −0 doc/specs/vulkan/man/VkBorderColor.txt
  33. +27 −0 doc/specs/vulkan/man/VkBufferCopy.txt
  34. +26 −0 doc/specs/vulkan/man/VkBufferCreateFlagBits.txt
  35. +27 −0 doc/specs/vulkan/man/VkBufferImageCopy.txt
  36. +26 −0 doc/specs/vulkan/man/VkBufferUsageFlagBits.txt
  37. +26 −0 doc/specs/vulkan/man/VkBufferViewCreateFlags.txt
  38. +27 −0 doc/specs/vulkan/man/VkBufferViewCreateInfo.txt
  39. +27 −0 doc/specs/vulkan/man/VkClearAttachment.txt
  40. +27 −0 doc/specs/vulkan/man/VkClearColorValue.txt
  41. +27 −0 doc/specs/vulkan/man/VkClearDepthStencilValue.txt
  42. +27 −0 doc/specs/vulkan/man/VkClearRect.txt
  43. +27 −0 doc/specs/vulkan/man/VkClearValue.txt
  44. +26 −0 doc/specs/vulkan/man/VkColorComponentFlagBits.txt
  45. +26 −0 doc/specs/vulkan/man/VkColorComponentFlags.txt
  46. +26 −0 doc/specs/vulkan/man/VkColorSpaceKHR.txt
  47. +27 −0 doc/specs/vulkan/man/VkCommandBufferBeginInfo.txt
  48. +27 −0 doc/specs/vulkan/man/VkCommandBufferInheritanceInfo.txt
  49. +26 −0 doc/specs/vulkan/man/VkCommandBufferLevel.txt
  50. +26 −0 doc/specs/vulkan/man/VkCommandBufferResetFlagBits.txt
  51. +26 −0 doc/specs/vulkan/man/VkCommandBufferResetFlags.txt
  52. +26 −0 doc/specs/vulkan/man/VkCommandBufferUsageFlagBits.txt
  53. +26 −0 doc/specs/vulkan/man/VkCommandBufferUsageFlags.txt
  54. +26 −0 doc/specs/vulkan/man/VkCommandPoolCreateFlagBits.txt
  55. +26 −0 doc/specs/vulkan/man/VkCommandPoolCreateFlags.txt
  56. +27 −0 doc/specs/vulkan/man/VkCommandPoolCreateInfo.txt
  57. +26 −0 doc/specs/vulkan/man/VkCommandPoolResetFlagBits.txt
  58. +26 −0 doc/specs/vulkan/man/VkCommandPoolResetFlags.txt
  59. +26 −0 doc/specs/vulkan/man/VkCompareOp.txt
  60. +27 −0 doc/specs/vulkan/man/VkComponentMapping.txt
  61. +26 −0 doc/specs/vulkan/man/VkComponentSwizzle.txt
  62. +26 −0 doc/specs/vulkan/man/VkCompositeAlphaFlagBitsKHR.txt
  63. +26 −0 doc/specs/vulkan/man/VkCompositeAlphaFlagsKHR.txt
  64. +27 −0 doc/specs/vulkan/man/VkComputePipelineCreateInfo.txt
  65. +27 −0 doc/specs/vulkan/man/VkCopyDescriptorSet.txt
  66. +26 −0 doc/specs/vulkan/man/VkCullModeFlagBits.txt
  67. +26 −0 doc/specs/vulkan/man/VkCullModeFlags.txt
  68. +27 −0 doc/specs/vulkan/man/VkDebugReportCallbackCreateInfoEXT.txt
  69. +26 −0 doc/specs/vulkan/man/VkDebugReportErrorEXT.txt
  70. +26 −0 doc/specs/vulkan/man/VkDebugReportFlagBitsEXT.txt
  71. +26 −0 doc/specs/vulkan/man/VkDebugReportFlagsEXT.txt
  72. +26 −0 doc/specs/vulkan/man/VkDebugReportObjectTypeEXT.txt
  73. +26 −0 doc/specs/vulkan/man/VkDependencyFlagBits.txt
  74. +26 −0 doc/specs/vulkan/man/VkDependencyFlags.txt
  75. +27 −0 doc/specs/vulkan/man/VkDescriptorBufferInfo.txt
  76. +27 −0 doc/specs/vulkan/man/VkDescriptorImageInfo.txt
  77. +26 −0 doc/specs/vulkan/man/VkDescriptorPoolCreateFlagBits.txt
  78. +26 −0 doc/specs/vulkan/man/VkDescriptorPoolCreateFlags.txt
  79. +27 −0 doc/specs/vulkan/man/VkDescriptorPoolCreateInfo.txt
  80. +26 −0 doc/specs/vulkan/man/VkDescriptorPoolResetFlags.txt
  81. +27 −0 doc/specs/vulkan/man/VkDescriptorPoolSize.txt
  82. +27 −0 doc/specs/vulkan/man/VkDescriptorSetLayoutBinding.txt
  83. +26 −0 doc/specs/vulkan/man/VkDescriptorSetLayoutCreateFlags.txt
  84. +27 −0 doc/specs/vulkan/man/VkDescriptorSetLayoutCreateInfo.txt
  85. +26 −0 doc/specs/vulkan/man/VkDeviceCreateFlags.txt
  86. +27 −0 doc/specs/vulkan/man/VkDeviceCreateInfo.txt
  87. +26 −0 doc/specs/vulkan/man/VkDeviceQueueCreateFlags.txt
  88. +27 −0 doc/specs/vulkan/man/VkDeviceQueueCreateInfo.txt
  89. +27 −0 doc/specs/vulkan/man/VkDispatchIndirectCommand.txt
  90. +26 −0 doc/specs/vulkan/man/VkDisplayModeCreateFlagsKHR.txt
  91. +27 −0 doc/specs/vulkan/man/VkDisplayModeCreateInfoKHR.txt
  92. +27 −0 doc/specs/vulkan/man/VkDisplayModeParametersKHR.txt
  93. +27 −0 doc/specs/vulkan/man/VkDisplayModePropertiesKHR.txt
  94. +26 −0 doc/specs/vulkan/man/VkDisplayPlaneAlphaFlagBitsKHR.txt
  95. +26 −0 doc/specs/vulkan/man/VkDisplayPlaneAlphaFlagsKHR.txt
  96. +27 −0 doc/specs/vulkan/man/VkDisplayPlaneCapabilitiesKHR.txt
  97. +27 −0 doc/specs/vulkan/man/VkDisplayPlanePropertiesKHR.txt
  98. +27 −0 doc/specs/vulkan/man/VkDisplayPresentInfoKHR.txt
  99. +27 −0 doc/specs/vulkan/man/VkDisplayPropertiesKHR.txt
  100. +26 −0 doc/specs/vulkan/man/VkDisplaySurfaceCreateFlagsKHR.txt
  101. +27 −0 doc/specs/vulkan/man/VkDisplaySurfaceCreateInfoKHR.txt
  102. +27 −0 doc/specs/vulkan/man/VkDrawIndexedIndirectCommand.txt
  103. +27 −0 doc/specs/vulkan/man/VkDrawIndirectCommand.txt
  104. +26 −0 doc/specs/vulkan/man/VkDynamicState.txt
  105. +26 −0 doc/specs/vulkan/man/VkEventCreateFlags.txt
  106. +27 −0 doc/specs/vulkan/man/VkEventCreateInfo.txt
  107. +27 −0 doc/specs/vulkan/man/VkExtensionProperties.txt
  108. +27 −0 doc/specs/vulkan/man/VkExtent2D.txt
  109. +27 −0 doc/specs/vulkan/man/VkExtent3D.txt
  110. +26 −0 doc/specs/vulkan/man/VkFenceCreateFlagBits.txt
  111. +26 −0 doc/specs/vulkan/man/VkFenceCreateFlags.txt
  112. +27 −0 doc/specs/vulkan/man/VkFenceCreateInfo.txt
  113. +26 −0 doc/specs/vulkan/man/VkFilter.txt
  114. +26 −0 doc/specs/vulkan/man/VkFormat.txt
  115. +26 −0 doc/specs/vulkan/man/VkFormatFeatureFlagBits.txt
  116. +27 −0 doc/specs/vulkan/man/VkFormatProperties.txt
  117. +26 −0 doc/specs/vulkan/man/VkFramebufferCreateFlags.txt
  118. +27 −0 doc/specs/vulkan/man/VkFramebufferCreateInfo.txt
  119. +26 −0 doc/specs/vulkan/man/VkFrontFace.txt
  120. +27 −0 doc/specs/vulkan/man/VkGraphicsPipelineCreateInfo.txt
  121. +26 −0 doc/specs/vulkan/man/VkImageAspectFlagBits.txt
  122. +26 −0 doc/specs/vulkan/man/VkImageAspectFlags.txt
  123. +27 −0 doc/specs/vulkan/man/VkImageBlit.txt
  124. +27 −0 doc/specs/vulkan/man/VkImageCopy.txt
  125. +26 −0 doc/specs/vulkan/man/VkImageCreateFlagBits.txt
  126. +27 −0 doc/specs/vulkan/man/VkImageFormatProperties.txt
  127. +27 −0 doc/specs/vulkan/man/VkImageResolve.txt
  128. +27 −0 doc/specs/vulkan/man/VkImageSubresource.txt
  129. +27 −0 doc/specs/vulkan/man/VkImageSubresourceLayers.txt
  130. +27 −0 doc/specs/vulkan/man/VkImageSubresourceRange.txt
  131. +26 −0 doc/specs/vulkan/man/VkImageTiling.txt
  132. +26 −0 doc/specs/vulkan/man/VkImageUsageFlagBits.txt
  133. +26 −0 doc/specs/vulkan/man/VkImageViewCreateFlags.txt
  134. +27 −0 doc/specs/vulkan/man/VkImageViewCreateInfo.txt
  135. +26 −0 doc/specs/vulkan/man/VkIndexType.txt
  136. +26 −0 doc/specs/vulkan/man/VkInstanceCreateFlags.txt
  137. +27 −0 doc/specs/vulkan/man/VkInstanceCreateInfo.txt
  138. +26 −0 doc/specs/vulkan/man/VkInternalAllocationType.txt
  139. +27 −0 doc/specs/vulkan/man/VkLayerProperties.txt
  140. +26 −0 doc/specs/vulkan/man/VkLogicOp.txt
  141. +27 −0 doc/specs/vulkan/man/VkMappedMemoryRange.txt
  142. +0 −8 doc/specs/vulkan/man/VkMemoryAllocateInfo.txt
  143. +27 −0 doc/specs/vulkan/man/VkMemoryBarrier.txt
  144. +27 −0 doc/specs/vulkan/man/VkMemoryHeap.txt
  145. +26 −0 doc/specs/vulkan/man/VkMemoryHeapFlagBits.txt
  146. +26 −0 doc/specs/vulkan/man/VkMemoryHeapFlags.txt
  147. +26 −0 doc/specs/vulkan/man/VkMemoryMapFlags.txt
  148. +26 −0 doc/specs/vulkan/man/VkMemoryPropertyFlagBits.txt
  149. +27 −0 doc/specs/vulkan/man/VkMemoryRequirements.txt
  150. +27 −0 doc/specs/vulkan/man/VkMemoryType.txt
  151. +26 −0 doc/specs/vulkan/man/VkMirSurfaceCreateFlagsKHR.txt
  152. +27 −0 doc/specs/vulkan/man/VkMirSurfaceCreateInfoKHR.txt
  153. +27 −0 doc/specs/vulkan/man/VkOffset2D.txt
  154. +27 −0 doc/specs/vulkan/man/VkOffset3D.txt
  155. +2 −1 doc/specs/vulkan/man/VkPhysicalDeviceLimits.txt
  156. +27 −0 doc/specs/vulkan/man/VkPhysicalDeviceMemoryProperties.txt
  157. +27 −0 doc/specs/vulkan/man/VkPhysicalDeviceProperties.txt
  158. +27 −0 doc/specs/vulkan/man/VkPhysicalDeviceSparseProperties.txt
  159. +26 −0 doc/specs/vulkan/man/VkPhysicalDeviceType.txt
  160. +26 −0 doc/specs/vulkan/man/VkPipelineBindPoint.txt
  161. +26 −0 doc/specs/vulkan/man/VkPipelineCacheCreateFlags.txt
  162. +27 −0 doc/specs/vulkan/man/VkPipelineCacheCreateInfo.txt
  163. +26 −0 doc/specs/vulkan/man/VkPipelineCacheHeaderVersion.txt
  164. +27 −0 doc/specs/vulkan/man/VkPipelineColorBlendAttachmentState.txt
  165. +26 −0 doc/specs/vulkan/man/VkPipelineColorBlendStateCreateFlags.txt
  166. +27 −0 doc/specs/vulkan/man/VkPipelineColorBlendStateCreateInfo.txt
  167. +26 −0 doc/specs/vulkan/man/VkPipelineCreateFlagBits.txt
  168. +26 −0 doc/specs/vulkan/man/VkPipelineCreateFlags.txt
  169. +26 −0 doc/specs/vulkan/man/VkPipelineDepthStencilStateCreateFlags.txt
  170. +27 −0 doc/specs/vulkan/man/VkPipelineDepthStencilStateCreateInfo.txt
  171. +26 −0 doc/specs/vulkan/man/VkPipelineDynamicStateCreateFlags.txt
  172. +27 −0 doc/specs/vulkan/man/VkPipelineDynamicStateCreateInfo.txt
  173. +26 −0 doc/specs/vulkan/man/VkPipelineInputAssemblyStateCreateFlags.txt
  174. +27 −0 doc/specs/vulkan/man/VkPipelineInputAssemblyStateCreateInfo.txt
  175. +26 −0 doc/specs/vulkan/man/VkPipelineLayoutCreateFlags.txt
  176. +26 −0 doc/specs/vulkan/man/VkPipelineMultisampleStateCreateFlags.txt
  177. +27 −0 doc/specs/vulkan/man/VkPipelineMultisampleStateCreateInfo.txt
  178. +26 −0 doc/specs/vulkan/man/VkPipelineRasterizationStateCreateFlags.txt
  179. +27 −0 doc/specs/vulkan/man/VkPipelineRasterizationStateCreateInfo.txt
  180. +26 −0 doc/specs/vulkan/man/VkPipelineShaderStageCreateFlags.txt
  181. +27 −0 doc/specs/vulkan/man/VkPipelineShaderStageCreateInfo.txt
  182. +26 −0 doc/specs/vulkan/man/VkPipelineStageFlagBits.txt
  183. +26 −0 doc/specs/vulkan/man/VkPipelineTessellationStateCreateFlags.txt
  184. +27 −0 doc/specs/vulkan/man/VkPipelineTessellationStateCreateInfo.txt
  185. +26 −0 doc/specs/vulkan/man/VkPipelineVertexInputStateCreateFlags.txt
  186. +27 −0 doc/specs/vulkan/man/VkPipelineVertexInputStateCreateInfo.txt
  187. +26 −0 doc/specs/vulkan/man/VkPipelineViewportStateCreateFlags.txt
  188. +27 −0 doc/specs/vulkan/man/VkPipelineViewportStateCreateInfo.txt
  189. +26 −0 doc/specs/vulkan/man/VkPolygonMode.txt
  190. +27 −0 doc/specs/vulkan/man/VkPresentInfoKHR.txt
  191. +26 −0 doc/specs/vulkan/man/VkPresentModeKHR.txt
  192. +26 −0 doc/specs/vulkan/man/VkPrimitiveTopology.txt
  193. +27 −0 doc/specs/vulkan/man/VkPushConstantRange.txt
  194. +26 −0 doc/specs/vulkan/man/VkQueryControlFlagBits.txt
  195. +26 −0 doc/specs/vulkan/man/VkQueryPipelineStatisticFlagBits.txt
  196. +26 −0 doc/specs/vulkan/man/VkQueryPipelineStatisticFlags.txt
  197. +26 −0 doc/specs/vulkan/man/VkQueryPoolCreateFlags.txt
  198. +27 −0 doc/specs/vulkan/man/VkQueryPoolCreateInfo.txt
  199. +26 −0 doc/specs/vulkan/man/VkQueryResultFlagBits.txt
  200. +26 −0 doc/specs/vulkan/man/VkQueryType.txt
  201. +26 −0 doc/specs/vulkan/man/VkQueueFlagBits.txt
  202. +27 −0 doc/specs/vulkan/man/VkRect2D.txt
  203. +27 −0 doc/specs/vulkan/man/VkRenderPassBeginInfo.txt
  204. +26 −0 doc/specs/vulkan/man/VkRenderPassCreateFlags.txt
  205. +27 −0 doc/specs/vulkan/man/VkRenderPassCreateInfo.txt
  206. +26 −0 doc/specs/vulkan/man/VkResult.txt
  207. +26 −0 doc/specs/vulkan/man/VkSampleCountFlagBits.txt
  208. +26 −0 doc/specs/vulkan/man/VkSampleCountFlags.txt
  209. +26 −0 doc/specs/vulkan/man/VkSamplerAddressMode.txt
  210. +26 −0 doc/specs/vulkan/man/VkSamplerCreateFlags.txt
  211. +27 −0 doc/specs/vulkan/man/VkSamplerCreateInfo.txt
  212. +26 −0 doc/specs/vulkan/man/VkSamplerMipmapMode.txt
  213. +26 −0 doc/specs/vulkan/man/VkSemaphoreCreateFlags.txt
  214. +27 −0 doc/specs/vulkan/man/VkSemaphoreCreateInfo.txt
  215. +26 −0 doc/specs/vulkan/man/VkShaderModuleCreateFlags.txt
  216. +27 −0 doc/specs/vulkan/man/VkShaderModuleCreateInfo.txt
  217. +26 −0 doc/specs/vulkan/man/VkShaderStageFlagBits.txt
  218. +26 −0 doc/specs/vulkan/man/VkShaderStageFlags.txt
  219. +27 −0 doc/specs/vulkan/man/VkSparseBufferMemoryBindInfo.txt
  220. +26 −0 doc/specs/vulkan/man/VkSparseImageFormatFlagBits.txt
  221. +26 −0 doc/specs/vulkan/man/VkSparseImageFormatFlags.txt
  222. +27 −0 doc/specs/vulkan/man/VkSparseImageFormatProperties.txt
  223. +27 −0 doc/specs/vulkan/man/VkSparseImageMemoryBind.txt
  224. +27 −0 doc/specs/vulkan/man/VkSparseImageMemoryBindInfo.txt
  225. +27 −0 doc/specs/vulkan/man/VkSparseImageMemoryRequirements.txt
  226. +27 −0 doc/specs/vulkan/man/VkSparseImageOpaqueMemoryBindInfo.txt
  227. +27 −0 doc/specs/vulkan/man/VkSparseMemoryBind.txt
  228. +26 −0 doc/specs/vulkan/man/VkSparseMemoryBindFlagBits.txt
  229. +26 −0 doc/specs/vulkan/man/VkSparseMemoryBindFlags.txt
  230. +27 −0 doc/specs/vulkan/man/VkSpecializationInfo.txt
  231. +27 −0 doc/specs/vulkan/man/VkSpecializationMapEntry.txt
  232. +26 −0 doc/specs/vulkan/man/VkStencilFaceFlagBits.txt
  233. +26 −0 doc/specs/vulkan/man/VkStencilFaceFlags.txt
  234. +26 −0 doc/specs/vulkan/man/VkStencilOp.txt
  235. +27 −0 doc/specs/vulkan/man/VkStencilOpState.txt
  236. +26 −0 doc/specs/vulkan/man/VkStructureType.txt
  237. +27 −0 doc/specs/vulkan/man/VkSubmitInfo.txt
  238. +26 −0 doc/specs/vulkan/man/VkSubpassContents.txt
  239. +27 −0 doc/specs/vulkan/man/VkSubpassDependency.txt
  240. +27 −0 doc/specs/vulkan/man/VkSubpassDescription.txt
  241. +26 −0 doc/specs/vulkan/man/VkSubpassDescriptionFlags.txt
  242. +27 −0 doc/specs/vulkan/man/VkSubresourceLayout.txt
  243. +27 −0 doc/specs/vulkan/man/VkSurfaceCapabilitiesKHR.txt
  244. +27 −0 doc/specs/vulkan/man/VkSurfaceFormatKHR.txt
  245. +26 −0 doc/specs/vulkan/man/VkSurfaceTransformFlagBitsKHR.txt
  246. +26 −0 doc/specs/vulkan/man/VkSurfaceTransformFlagsKHR.txt
  247. +26 −0 doc/specs/vulkan/man/VkSwapchainCreateFlagsKHR.txt
  248. +27 −0 doc/specs/vulkan/man/VkSwapchainCreateInfoKHR.txt
  249. +26 −0 doc/specs/vulkan/man/VkSystemAllocationScope.txt
  250. +27 −0 doc/specs/vulkan/man/VkVertexInputAttributeDescription.txt
  251. +27 −0 doc/specs/vulkan/man/VkVertexInputBindingDescription.txt
  252. +26 −0 doc/specs/vulkan/man/VkVertexInputRate.txt
  253. +27 −0 doc/specs/vulkan/man/VkViewport.txt
  254. +26 −0 doc/specs/vulkan/man/VkWaylandSurfaceCreateFlagsKHR.txt
  255. +27 −0 doc/specs/vulkan/man/VkWaylandSurfaceCreateInfoKHR.txt
  256. +26 −0 doc/specs/vulkan/man/VkWin32SurfaceCreateFlagsKHR.txt
  257. +27 −0 doc/specs/vulkan/man/VkWin32SurfaceCreateInfoKHR.txt
  258. +26 −0 doc/specs/vulkan/man/VkXcbSurfaceCreateFlagsKHR.txt
  259. +27 −0 doc/specs/vulkan/man/VkXcbSurfaceCreateInfoKHR.txt
  260. +26 −0 doc/specs/vulkan/man/VkXlibSurfaceCreateFlagsKHR.txt
  261. +27 −0 doc/specs/vulkan/man/VkXlibSurfaceCreateInfoKHR.txt
  262. +266 −9 doc/specs/vulkan/man/manpages.mak
  263. +27 −0 doc/specs/vulkan/man/vkCreateDebugReportCallbackEXT.txt
  264. +27 −0 doc/specs/vulkan/man/vkDebugReportMessageEXT.txt
  265. +27 −0 doc/specs/vulkan/man/vkDestroyDebugReportCallbackEXT.txt
  266. +1 −1 doc/specs/vulkan/man/vkEnumerateInstanceExtensionProperties.txt
  267. +1 −1 doc/specs/vulkan/man/vkEnumerateInstanceLayerProperties.txt
  268. +4 −4 doc/specs/vulkan/man/vkGetImageSparseMemoryRequirements.txt
  269. +3 −5 doc/specs/vulkan/man/vkGetPhysicalDeviceMirPresentationSupportKHR.txt
  270. +0 −5 doc/specs/vulkan/man/vkQueueBindSparse.txt
  271. +5 −0 doc/specs/vulkan/style/styleguide.txt
  272. +1 −1 doc/specs/vulkan/validity/protos/vkCmdBindDescriptorSets.txt
  273. +1 −0 doc/specs/vulkan/validity/protos/vkCmdCopyQueryPoolResults.txt
  274. +0 −1 doc/specs/vulkan/validity/protos/vkGetImageSparseMemoryRequirements.txt
  275. +7 −5 doc/specs/vulkan/validity/structs/VkBufferImageCopy.txt
  276. +2 −2 doc/specs/vulkan/validity/structs/VkDeviceCreateInfo.txt
  277. +8 −8 doc/specs/vulkan/validity/structs/VkImageCopy.txt
  278. +6 −6 doc/specs/vulkan/validity/structs/VkSparseImageMemoryBind.txt
  279. +47 −20 src/spec/generator.py
  280. BIN src/spec/readme.pdf
  281. +1 −1 src/spec/readme.tex
  282. +0 −4 src/spec/registry.rnc
  283. +74 −74 src/spec/vk.xml
  284. +51 −9 src/vulkan/vulkan.h
@@ -273,3 +273,89 @@ Other Commits:

* Update GL_KHR_vulkan_glsl so push_constants do not have descriptor
sets.

-----------------------------------------------------

Change log for March 25, 2016 Vulkan 1.0.7 spec update:

* Bump API patch number and header version number to 7 for this
update.

Github Issues:

* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).

* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).

* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).

* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).

* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).

* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).

* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).

* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).

* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).

* Minor editorial cleanup (public issues 129, 134, 146, 148).

* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).

* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).

* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).

Internal Issues:

* Add max enum values to "flag bits" enums (internal issue #136).

* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).

* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).

* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).

Other Commits:

* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.

* Fix ref page build to generate .3 targets in the right output
directory.
@@ -44,7 +44,7 @@ ECHO:=echo
# XHTMLDIR - 'xhtml' target
# PDFDIR - 'pdf' target
# CHECKDIR - 'allchecks' target
OUTDIR :=../../../out/core
OUTDIR :=../../../out/1.0
HTMLDIR := $(OUTDIR)/html
XHTMLDIR := $(OUTDIR)/xhtml
PDFDIR := $(OUTDIR)/pdf
@@ -126,7 +126,7 @@ INCLUDES := $(wildcard protos/*.txt structs/*.txt flags/*.txt enums/*.txt funcpo
COMMONDOCS := $(CHAPTERS) $(INCLUDES)
# A generated included file with the spec version, date, and git commit
SPECVERSION = specversion.txt
SPECREVISION = 1.0.6
SPECREVISION = 1.0.7
SPECREMARK =

# Spec targets
@@ -24,7 +24,7 @@ Format Specification.
<<<

[[appendix-compressedtex-bc]]
== Block Compressed Image Formats
== Block-Compressed Image Formats

.Mapping of {apiname} BC formats to descriptions
[width="90%",options="header",cols="5,4"]
@@ -86,7 +86,7 @@ chapter of the Khronos Data Format Specification.
.Mapping of {apiname} ASTC formats to descriptions
[width="75%",options="header",cols="63%,15%,22%"]
|==============================
| VkFormat ^| Block size ^| sRGB-encoded
| VkFormat ^| Compressed texel block dimensions ^| sRGB-encoded
| ename:VK_FORMAT_ASTC_4x4_UNORM_BLOCK ^|latexmath:[$4\times 4$] ^|No
| ename:VK_FORMAT_ASTC_4x4_SRGB_BLOCK ^|latexmath:[$4\times 4$] ^|Yes
| ename:VK_FORMAT_ASTC_5x4_UNORM_BLOCK ^|latexmath:[$5\times 4$] ^|No
@@ -415,14 +415,14 @@ The information needed to add new values to the XML are as follows:
positive, if not specified.

Implicit is the registered number of an extension, which is used to create a
block of unused values offset against a global extension base value.
Individual enumerant values are calculated as offsets in that block. Values
range of unused values offset against a global extension base value.
Individual enumerant values are calculated as offsets in that range. Values
are calculated as follows:

* base_value = 1000000000
* block_size = 1000
* range_size = 1000
* enum_offset(extension_number,offset) = base_value +
(extension_number - 1) × block_size + offset
(extension_number - 1) × range_size + offset
* Positive values: enum_offset(extension_number,offset)
* Negative values: -enum_offset(extension_number,offset)

@@ -139,6 +139,14 @@ Compatible Queues::
Queues within a queue family. Compatible queues have identical
properties.

Compressed Texel Block::
An element of an image having a block-compressed format, comprising a
rectangular block of texel values that are encoded as a single value in
memory. Compressed texel blocks of a particular block-compressed format
have a corresponding width, height, and depth that define the dimensions
of these elements in units of texels, and a size in bytes of the encoding
in memory.

Cull Distance::
A built-in output from vertex processing stages that defines a cull
half-space where the primitive is rejected if all vertices have a
@@ -435,8 +443,8 @@ Memory Type::

Mip Tail Region::
The set of mipmap levels of a sparse residency texture that are too
small to fill a block, and that must all be bound to memory collectively
and opaquely.
small to fill a sparse block, and that must all be bound to memory
collectively and opaquely.

Non-Dispatchable Handle::
A handle of an integer handle type. Handle values may: not be unique,
@@ -607,6 +615,18 @@ Shader Stage::
Side Effect::
A store to memory or atomic operation on memory from a shader invocation.

Sparse Block::
An element of a sparse resource that can be independently bound to memory.
Sparse blocks of a particular sparse resource have a corresponding size
in bytes that they use in the bound memory.

Sparse Image Block::
A sparse block in a sparse partially-resident image. In addition to the
sparse block size in bytes, sparse image blocks have a corresponding
width, height, and depth that define the dimensions of these elements
in units of texels or compressed texel blocks, the latter being used in
case of sparse images having a block-compressed format.

Sparse Unbound Texel::
A texel read from a region of a sparse texture that does not have
memory bound to it.
@@ -28,7 +28,8 @@ Some rules for valid operation are common to all copy commands:
* Copy regions must: be non-empty.
* Regions must: not extend outside the bounds of the buffer or image
level, except that regions of compressed images can: extend as far as
the dimension of the image level rounded up to a complete block.
the dimension of the image level rounded up to a complete compressed
texel block.
* Source image subresources must: be in either the
ename:VK_IMAGE_LAYOUT_GENERAL or
ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL layout. Destination image
@@ -154,51 +155,57 @@ destination. pname:layerCount layers are copied to the destination image.
The formats of pname:srcImage and pname:dstImage must: be compatible.
Formats are considered compatible if their texel size in bytes is the same
between both formats. For example, ename:VK_FORMAT_R8G8B8A8_UNORM is
compatible with ename:VK_FORMAT_R32_UINT because because both texels are 4
compatible with ename:VK_FORMAT_R32_UINT because both texels are 4
bytes in size. Depth/stencil formats must: match exactly.

fname:vkCmdCopyImage allows copying between size-compatible compressed
and uncompressed internal formats. Formats are size-compatible if the texel
size of the uncompressed format is equal to the block size in bytes of the
compressed format. Such a copy does not perform on-the-fly compression or
decompression. When copying from an uncompressed format to a compressed
format, each texel of uncompressed data becomes a single block of compressed
data. When copying from a compressed format to an uncompressed format, a
block of compressed data becomes a single texel of uncompressed data. Thus,
for example, it is legal to copy between a 128-bit uncompressed format and a
compressed format which uses 8-bit/texel 4x4 blocks, or between a 64-bit
uncompressed format and a compressed format which uses 4-bit/texel 4x4
blocks.
size of the uncompressed format is equal to the compressed texel block size in
bytes of the compressed format. Such a copy does not perform on-the-fly
compression or decompression. When copying from an uncompressed format to a
compressed format, each texel of uncompressed data of the source image is
copied as a raw value to the corresponding compressed texel block of the
destination image. When copying from a compressed format to an uncompressed
format, each compressed texel block of the source image is copied as a raw
value to the corresponding texel of uncompressed data in the destination
image. Thus, for example, it is legal to copy between a 128-bit uncompressed
format and a compressed format which has a 128-bit sized compressed texel
block representing 4x4 texels (using 8 bits per texel), or between a 64-bit
uncompressed format and a compressed format which has a 64-bit sized
compressed texel block representing 4x4 texels (using 4 bits per texel).

When copying between compressed and uncompressed formats the pname:extent
members represent the texel dimensions of the source image and not the
destination. When copying from a compressed image to an uncompressed image
the image texel dimensions written to the uncompressed image will be source
extent divided by the block size. When copying from an uncompressed image to
a compressed image the image texel dimensions written to the compressed
image will be the source extent multiplied by the block size. In both cases
the number of bytes read and the number of bytes written will be identical.
extent divided by the compressed texel block dimensions. When copying from an
uncompressed image to a compressed image the image texel dimensions written
to the compressed image will be the source extent multiplied by the
compressed texel block dimensions. In both cases the number of bytes read and
the number of bytes written will be identical.

Copying to or from block-compressed images is typically done in multiples of
the block. For this reason the pname:extent must: be a multiple of the
block dimension. There is one exception to this rule which is required: to
handle compressed images created with dimensions that are not a multiple
of the block dimensions. If the pname:srcImage is compressed and if
pname:extent.width is not a multiple of the block width then
(pname:extent.width + pname:srcOffset.x) must: equal the subresource width,
if pname:extent.height is not a multiple of the block height then
(pname:extent.height + pname:srcOffset.y) must: equal
the subresource height and if pname:extent.depth is not a multiple of the
block depth then (pname:extent.depth + pname:srcOffset.z) must: equal
the subresource depth. Similarily if the pname:dstImage is compressed and
if pname:extent.width is not a multiple of the block width then
(pname:extent.width + pname:dstOffset.x) must: equal the subresource width,
if pname:extent.height is not a multiple of the block height then
(pname:extent.height + pname:dstOffset.y) must: equal
the subresource height and if pname:extent.depth is not a multiple of the
block depth then (pname:extent.depth + pname:dstOffset.z) must: equal
the subresource depth. This allows the last block of the image in each
non-multiple dimension to be included as a source or target of the copy.
the compressed texel block. For this reason the pname:extent must: be a
multiple of the compressed texel block dimension. There is one exception to
this rule which is required: to handle compressed images created with
dimensions that are not a multiple of the compressed texel block dimensions.
If the pname:srcImage is compressed and if pname:extent.width is not a
multiple of the compressed texel block width then (pname:extent.width +
pname:srcOffset.x) must: equal the subresource width, if pname:extent.height
is not a multiple of the compressed texel block height then
(pname:extent.height + pname:srcOffset.y) must: equal the subresource height
and if pname:extent.depth is not a multiple of the compressed texel block
depth then (pname:extent.depth + pname:srcOffset.z) must: equal the
subresource depth. Similarily if the pname:dstImage is compressed and if
pname:extent.width is not a multiple of the compressed texel block width then
(pname:extent.width + pname:dstOffset.x) must: equal the subresource width, if
pname:extent.height is not a multiple of the compressed texel block height
then (pname:extent.height + pname:dstOffset.y) must: equal the subresource
height and if pname:extent.depth is not a multiple of the compressed texel
block depth then (pname:extent.depth + pname:dstOffset.z) must: equal the
subresource depth. This allows the last compressed texel block of the image
in each non-multiple dimension to be included as a source or destination of
the copy.

fname:vkCmdCopyImage can: be used to copy image data between multisample
images, but both images must: have the same number of samples.
@@ -330,8 +337,8 @@ buffer memory. Instead, pname:bufferOffset can: be used to
select the starting address in buffer memory.

For block-compression formats, all parameters are still specified in texels
rather than blocks, but the addressing math operates on whole blocks.
Pseudocode for compressed copy addressing is:
rather than compressed texel blocks, but the addressing math operates on
whole compressed texel blocks. Pseudocode for compressed copy addressing is:

[source,c]
---------------------------------------------------
@@ -343,28 +350,30 @@ imageHeight = region->bufferImageHeight;
if (imageHeight == 0)
imageHeight = region->imageExtent.height;

blockSizeInBytes = <block size taken from the src/dstImage>;
rowLength /= blockWidth;
imageHeight /= blockHeight;
compressedTexelBlockSizeInBytes = <compressed texel block size taken from the src/dstImage>;
rowLength /= compressedTexelBlockWidth;
imageHeight /= compressedTexelBlockHeight;

address of (x,y,z) = region->bufferOffset + (((z * imageHeight) + y) * rowLength + x) * blockSizeInBytes;
address of (x,y,z) = region->bufferOffset + (((z * imageHeight) + y) * rowLength + x) * compressedTexelBlockSizeInBytes;

where x,y,z range from (0,0,0) to region->imageExtent.{width/blockWidth,height/blockHeight,depth/blockDepth}.
where x,y,z range from (0,0,0) to region->imageExtent.{width/compressedTexelBlockWidth,height/compressedTexelBlockHeight,depth/compressedTexelBlockDepth}.
---------------------------------------------------

Copying to or from block-compressed images is typically done in multiples of
the block. For this reason the pname:imageExtent must: be a multiple of the
block dimension. There is one exception to this rule which is required: to
handle compressed images created with dimensions that are not a multiple of
the block dimensions. If pname:imageExtent.width is not a multiple of the
block width then (pname:imageExtent.width + pname:imageOffset.x) must: equal
the subresource width, if pname:imageExtent.height is not a multiple of the
block height then (pname:imageExtent.height + pname:imageOffset.y) must:
equal the subresource height and if pname:imageExtent.depth is not a
multiple of the block depth then (pname:imageExtent.depth +
pname:imageOffset.z) must: equal the subresource depth. This allows the last
block of the image in each non-multiple dimension to be included as a source
or target of the copy.
the compressed texel block. For this reason the pname:imageExtent must: be a
multiple of the compressed texel block dimension. There is one exception to
this rule which is required: to handle compressed images created with
dimensions that are not a multiple of the compressed texel block dimensions.
If pname:imageExtent.width is not a multiple of the compressed texel block
width then (pname:imageExtent.width + pname:imageOffset.x) must: equal the
subresource width, if pname:imageExtent.height is not a multiple of the
compressed texel block height then (pname:imageExtent.height +
pname:imageOffset.y) must: equal the subresource height and if
pname:imageExtent.depth is not a multiple of the compressed texel block depth
then (pname:imageExtent.depth + pname:imageOffset.z) must: equal the
subresource depth. This allows the last compressed texel block of the image
in each non-multiple dimension to be included as a source or destination of
the copy.


[[copies-imagescaling]]
@@ -220,8 +220,9 @@ include::../validity/structs/VkQueueFamilyProperties.txt[]

For further details see <<devsandqueues-queues,Queues>>.

The value returned in pname:minImageTransferGranularity has a unit of blocks
for images having a block compressed format, and a unit of texels otherwise.
The value returned in pname:minImageTransferGranularity has a unit of
compressed texel blocks for images having a block-compressed format, and a
unit of texels otherwise.

Possible values of pname:minImageTransferGranularity are:

@@ -257,8 +258,9 @@ Possible values of pname:minImageTransferGranularity are:
equal the depth of the image subresource corresponding to the
parameter.
** If the format of the image corresponding to the parameters is one of
the block compressed formats then for the purposes of the above
calculations the granularity must: be scaled up by the block size.
the block-compressed formats then for the purposes of the above
calculations the granularity must: be scaled up by the compressed
texel block dimensions.

Queues supporting graphics and/or compute operations must: report
latexmath:[$(1,1,1)$] in pname:minImageTransferGranularity, meaning that

0 comments on commit 8c3c9b4

Please sign in to comment.
You can’t perform that action at this time.