1Copyright 2016-2021 The Khronos Group Inc.
2SPDX-License-Identifier: CC-BY-4.0
3
4Update Log for the Vulkan-Docs repository on Github. Updates are in reverse
5chronological order starting with the latest public release.
6
7This summarizes the periodic public updates, not individual commits. Updates
8on Github are done as single large patches at the release point, collecting
9together the resolution of many Khronos internal issues, along with any
10public pull requests that have been accepted.
11
12-----------------------------------------------------
13
14Change log for November 30, 2021 Vulkan 1.2.201 spec update:
15
16  * Update release number to 201 for this update.
17
18Github Issues:
19
20  * Fix typo in refpage description of ename:VK_REMAINING_MIP_LEVELS
21    (public pull request 1702).
22  * Add missing structextends attribute for
23    slink:VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM
24    (public issue 1703).
25  * Fixes and clarifications to valid usage statements for
26    slink:VkRenderPassCreateInfo,
27    slink:VkRenderPassFragmentDensityMapCreateInfoEXT, and
28    slink:VkSubpassDescriptionDepthStencilResolve (matching changes in
29    public Vulkan-ValidationLayers pull request 3571).
30
31Internal Issues:
32
33  * Changes to the provisional video extension encode rate control API,
34    including changing some existing structures and adding new structures
35    and flags (internal issue 1844).
36  * Update valid usage statements for apiext:VK_NV_mesh_shader (internal
37    issue 2880).
38  * Remove valid usage statement IDs 02854 / 02855 / 06081 / 06082, which
39    are duplicates of 06166 / 06167 (internal issue 2944).
40  * Add a valid usage statement banning code:OpImage*Dref* instructions on
41    non-depth views (internal merge request 3889).
42  * Add CI test for disallowed contractions (internal merge request 4934).
43  * Generate the <<formats-compatibility, Format Compatibility Class Table>>
44    from XML tags (internal merge request 4936).
45  * Clarify that dependent operations of quad-sensitive ops have helpers
46    (internal merge request 4947).
47  * Remove redundant valid usage statement for
48    apiext:VK_QCOM_render_pass_shader_resolve (internal merge request 4950).
49  * Support `api` attribute fully in XML and scripts (internal merge request
50    4951).
51  * Fix pname:planeIndex attribute in format XML for
52    ename:VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 (internal
53    merge request 4953).
54
55
56-----------------------------------------------------
57
58Change log for November 23, 2021 Vulkan 1.2.200 spec update:
59
60  * Update release number to 200 for this update.
61
62Github Issues:
63
64  * Refer to flink:vkCmdPipelineBarrier2KHR::pname:pDependencyInfo as a
65    pointer, not an array (public issue 1456).
66  * Fix spelling and add backwards-compatibility aliases for some
67    elink:VkPipelinCreateFlagBits values (public issue 1676).
68  * Fix typo in apiext:VK_INTEL_shader_integer_functions2 (public issue
69    1696).
70  * Replace usage of {depth, color} buffer with {depth, color} attachment
71    (public pull request 1701).
72  * Add restriction to the <<formats-mandatory-features-depth-stencil,
73    manadatory format support table>> for depth/stencil formats preventing
74    implementations from advertising those bits in
75    slink:VkFormatProperties::pname:bufferFeatures (public
76    Vulkan-ValidationLayers issue 3225).
77
78Internal Issues:
79
80  * Add an additional guarantee for buffer memory requirements in
81    slink:VkMemoryRequirements as a minor update to the
82    apiext:VK_KHR_maintenance4 extension (internal issue 2885).
83  * Add a <<fundamentals-api-name-aliases, section to the fundamentals
84    chapter>> describing typo aliases (internal issue 2897).
85  * Determine extensions dependencies directly from `vk.xml` in the build
86    scripts, rather than generating an auxiliary `extDependency.py` target
87    (internal issue 2923).
88  * Remove redundant SPIR-V `RuntimeSpirv` valid usage statements 04830,
89    06271, 06374, and 06375 (internal merge requests 4827, 4830).
90  * Suppress file-not-found `include::` errors for validusage target, using
91    an IncludeProcessor extension, due to the way in which the validusage
92    extension processes conditionals. Make all include paths absolute and
93    require this in the style guide (internal merge request 4925).
94  * Add missing `optional="true"` attribute to
95    slink:VkCommandBufferInheritanceRenderingInfoKHR::pname:colorAttachmentCount
96    (internal merge request 4935).
97  * Remove references to apiext:VK_KHR_synchronization2 enums when that
98    extension is not enabled in the specification being built (internal
99    merge request 4937).
100  * Minor wording changes for style guide compliance and consistency
101    (internal merge request 4938).
102  * Ignore etext:*_EXTENSION_NAME and etext:*_SPEC_VERSION aliases in
103    `makemanaliases.py` script since there are no corresponding refpages for
104    these meta-enums.
105
106New Extensions:
107
108  * apiext:VK_ARM_rasterization_order_attachment_access (internal merge
109    request 3856).
110  * apiext:VK_EXT_depth_clip_control (public issues 986 and 1054).
111
112-----------------------------------------------------
113
114Change log for November 16, 2021 Vulkan 1.2.199 spec update:
115
116  * Update release number to 199 for this update.
117
118Github Issues:
119
120  * Add upper bound for stext:AccelerationStructure geometry limits for
121    slink:VkPhysicalDeviceRayTracingPropertiesNV and
122    slink:VkPhysicalDeviceAccelerationStructurePropertiesKHR (public issue
123    1670).
124  * Trivial typos in proposal documents (public pull request 1682).
125  * Add missing stage mask common valid usage statements to
126    slink:VkSubmitInfo, slink:VkSubpassDependency, and
127    slink:VkSubpassDependency2; remove unused common VU 4098; and add new
128    stage mask VUs to flink:vkCmdBeginRenderPass,
129    flink:vkCmdBeginRenderPass2, flink:vkCmdSetEvent, flink:vkCmdResetEvent,
130    flink:vkCmdWaitEvents, and flink:vkCmdPipelineBarrier (public
131    Vulkan-ValidationLayers pull request 3331).
132
133Internal Issues:
134
135  * Fix formatting of <<versions-1.0, Vulkan 1.0>> appendix section headers
136    (internal issue 2921).
137  * Fix location of bad conditional `endif::` in SPIR-V environment appendix
138    VU 06271 (internal issue 2917).
139  * Use etext:VK_VERSION_m_n instead of etext:VK_API_VERSION_m_n in
140    `<spirvcapability>` and `<spirvextension>` XML tags for consistency with
141    other version / extension reqiurements. Note that there is a possibility
142    of this change affecting downstream consumers of the XML (internal issue
143    2896).
144  * Add refpage cross-reference from slink:VkSwapchainKHR to
145    flink:vkQueuePresent (internal issue 2823).
146  * Update apiext:VK_KHR_dynamic_rendering
147    proposal document to use etext:STORE_OP_DONT_CARE
148    (internal merge request 4924).
149  * Fix most remaining dead links in the published specifications and
150    refpages by adding missing API language for basetype:VkFlags64;
151    stub reference pages for apiext:VK_NVX_binary_import; and
152    tag refpage aliases for API constants which were promoted to core
153    (internal merge request 4921).
154  * Add description of elink:VkFormats in the new <formats>
155    tag for `vk.xml`, and corresponding schema and script updates.
156    (internal issues 1761, 2484, and 2811).
157
158New Extensions:
159
160  * apiext:VK_EXT_image_view_min_lod (internal merge request 4701).
161
162-----------------------------------------------------
163
164Change log for November 9, 2021 Vulkan 1.2.198 spec update:
165
166  * Update release number to 198 for this update.
167
168Github Issues:
169
170  * Sort dependencies of "`Provided by`" comments in generated API includes,
171    and remove duplicates (public issue 1483, internal issue 2620).
172  * Remove max-width attribute from document headers, causing CSS to limit
173    page width in wide windows (public pull request 1660).
174
175Internal Issues:
176
177  * Filter out `VK_VERSION_1_x` pages when generating refpage sources for a
178    build that does not include the corresponding core version (internal
179    issue 1971).
180  * Adjust section header level for extension appendix refpages to match
181    other refpages (internal issue 2151).
182  * Add and fix protected memory valid usage statements to require queues be
183    protected if any batch if a protected batch, and restrict indirect
184    operations when pname:protectedNoFault is supported (internal issues
185    2169, 2841)
186  * Generate refpages to SPIR-V builtins, which were marked up in the spec
187    source but not being extracted and built (internal issue 2395).
188  * Clarify VUID 04918 regarding use of code:Location decorations (internal
189    issue 2737).
190  * Remove redundant nested VK_VERSION_1_1 conditional markup from the
191    <<initialization>> chapter (internal issue 2851).
192  * Add code:IdrPicFlag to code:StdVideoDecodeH264PictureInfoFlags for
193    provisional video extensions (internal issue 2901).
194  * Fix incorrect example code in apiext:VK_HUAWEI_subpass_shading appendix
195    sample code (internal merge request 4889).
196  * Promote ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT and
197    ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT in a few
198    places where the etext:KHR suffixes had not been removed (internal merge
199    request 4902).
200  * Add missing format properties consistency checks for
201    slink:VkDrmFormatModifierPropertiesList2EXT and
202    slink:VkAndroidHardwareBufferFormatProperties2ANDROID.
203  * Minor editorial markup fixes.
204
205-----------------------------------------------------
206
207Change log for November 2, 2021 Vulkan 1.2.197 spec update:
208
209  * Update release number to 197 for this update.
210
211Github Issues:
212
213  * Align some of the provisional video standard headers enums and bitfields
214    to have predictable sizes (public issue 1571).
215  * Remove exporting of D3D memory handles from
216    slink:VkExportMemoryWin32HandleInfoKHR (public pull request 1612).
217  * Add language to slink:VkAccelerationStructureBuildGeometryInfoKHR
218    explicitly stating that source and target acceleration structures are
219    allowed to be the same or different during an update (public issue
220    1641).
221  * Fix typos (public pull request 1662).
222  * Register remaining newly introduced `vk_video` types in `vk.xml` (public
223    pull request 1663).
224
225Internal Issues:
226
227  * Clarify <<resources-external-sharing, ownership transfers on external
228    resources>> (internal issue 2692).
229  * Changes to (nearly) eliminate dead internal links and improve scripts:
230  ** Correctly generate API dependencies on extensions and core versions in
231     cases where "`spelling aliases`" were present
232  ** Clean up a few incorrectly marked up links, anchors, and refpage block
233     alias= attributes
234  ** Use an API alias map to substitute promoted API names for promoted-to
235     APIs when an older or restricted spec is being generated and the
236     promoted-to API is not included
237  * Tag sname:VkVideo{Encode,Decode}H26{4,5}ProfileEXT structures as
238    extending slink:VkQueryPoolCreateInfo in `vk.xml` (internal issue 2861).
239  * Grammar edits to slink:VkAccelerationStructureKHR (internal issue 2887).
240  * Change the cited title of the <<LoaderInterfaceArchitecture>> document
241    to "`Architecture of the Vulkan Loader Interfaces`" matching a recent
242    change in https://github.com/KhronosGroup/Vulkan-Loader/pull/685
243    (internal merge request 4823).
244  * Re-remove etext:VkVideoEncodeH265CapabilityFlagBitsEXT, which was
245    accidentally reintroduced but is still unused (internal merge request
246    4885).
247  * Update wording for
248    ename:VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR since it no
249    longer contains `"update`" (internal merge request 4886).
250  * Consistency edits to remove "`instance of`" when referring to a specific
251    structure, and use "`render pass`" instead of "`renderpass`" as a noun
252    (internal merge request 4896).
253  * Add -version option to 'makeSpec' frontend build script.
254
255New Extensions
256
257  * `<<VK_KHR_dynamic_rendering>>`
258
259-----------------------------------------------------
260
261Change log for October 13, 2021 Vulkan 1.2.196 spec update:
262
263  * Update release number to 196 for this update.
264
265Github Issues:
266
267  * Clarify normative language for
268    ename:VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT in
269    elink:VkImageUsageFlagBits, allowing two styles of implementation
270    (public issue 1616).
271  * Fix typo in flink:vkCmdSetScissor (public pull request 1659).
272  * Reorder attributes of elink:VkFormatFeatureFlags2KHR in `vk.xml` for
273    consistency (public pull request 1653).
274
275Internal Issues:
276
277  * More cleanup of internal broken links in various builds of the specs.
278    Fix typos on xrefs and anchors, add stub pages for missing Flags and
279    FlagBits types, update `spirvcapgenerator.py` to put anchors with the
280    same table row they belong to, validate `apiext:` macro targets at build
281    time, and don't generate API requirements for `<type>` tags with no
282    `category`, eliminating spurious warnings for external types (internal
283    issues 2864, 2866).
284  * Update `htmldiff` scripts for Python3.
285  * Add subsection titles and anchors in the <<fxvertex, Fixed-Function
286    Vertex Processing>> chapter to make thematic breaks more clear (internal
287    merge request 4867).
288
289New Extensions
290
291  * `<<VK_EXT_border_color_swizzle>>`
292  * `<<VK_EXT_video_encode_h265>>` *provisional* H.265 video encode codec extension
293
294-----------------------------------------------------
295
296Change log for October 5, 2021 Vulkan 1.2.195 spec update:
297
298  * Update release number to 195 for this update.
299
300Github Issues:
301
302  * Add a NOTE to flink:vkDestroyQueryPool clarifying when a query pool can
303    be destroyed (public issue 1647).
304
305Internal Issues:
306
307  * Begin cleanup of internal broken links in various builds of the specs,
308    including generating a Ruby API map to be used by the asciidoctor macros
309    to validate their API name arguments; using "nofollow" on github issue
310    opening links to avoid link-checkers being interpreted as DOS attacks;
311    improved checker scripts; minor markup fixes; and using the `apiext:`
312    macro to replace `<<VK_KHR_extension_name>>`-style extension links
313    everywhere (internal issue 2831).
314  * Minor editorial cleanups to descriptions of
315    `apiext:VK_FUCHSIA_buffer_collection` APIs (internal issue 2836).
316  * Match `Cull Mask` SPIR-V name to pname:mask parameter name in the
317    <<acceleration-structure, Acceleration Structures>> chapter (internal
318    merge request 4844).
319  * Add pname:minTexelOffset and pname:maxTexelOffset limit valid usage
320    statements for code:OpImageSample* and code:OpImageFetch* in the
321    <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>>
322    section (internal merge request 4845).
323  * Add pname:maxFragmentDualSrcAttachments and
324    pname:maxFragmentCombinedOutputResources limit valid usage statements
325    for output and color attachments in the
326    <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>>
327    section (internal merge request 4847).
328
329New Extensions
330
331  * `<<VK_KHR_format_feature_flags2>>`
332  * `<<VK_KHR_maintenance4>>`
333  * `<<VK_EXT_rgba10x6_formats>>`
334
335-----------------------------------------------------
336
337Change log for September 28, 2021 Vulkan 1.2.194 spec update:
338
339  * Update release number to 194 for this update.
340
341Github Issues:
342
343  * Add missing `len` attribute to
344    slink:VkCuModuleCreateInfoNVX::pname:pData (public merge request 1646).
345  * Refer to dynamic state consistently from ftext:vkCmdSet* commands, and
346    link to the definition of dynamic state (public issue 1428, but with
347    expanded scope beyond the actual ask in that issue).
348
349Internal Issues:
350
351  * Fix incorrect member name in slink:VkRenderPassCreateInfo valid usage
352    statement 02515 (internal issue 2824).
353  * Fix XML dependency for `<<VK_NV_device_generated_commands>>` (internal
354    issue 2818).
355  * Add packed formats from `<<VK_KHR_sampler_ycbcr_conversion>>`` to the
356    <<formats-packed, table of packed formats>> and improve description of
357    packed format naming conventions (internal merge request 4798).
358
359New Extensions
360
361  * `<<VK_FUCHSIA_buffer_collection>>`
362
363-----------------------------------------------------
364
365Change log for September 21, 2021 Vulkan 1.2.193 spec update:
366
367  * Update release number to 193 for this update.
368
369Github Issues:
370
371  * Use consistent `implicitexternsync` language in XML for
372    flink:vkDestroyDevice (public issue 1482).
373  * Clarify requirements of flink:vkGetInstanceProcAddr to match that of the
374    Android loader when attempting to retrieve a global function with a
375    non-NULL instance parameter (public issue 1605).
376  * Add new elink:VK_DRIVER_ID reservations for upcoming Mesa drivers
377    (public pull request 1642).
378
379Internal Issues:
380
381  * Fix flink:vkCmdEndDebugUtilsLabelEXT to clarify command buffer recording
382    interactions with debug labels (internal issue 2777).
383  * Improve NOTE for acceleration structure capture / replay in
384    slink:VkAccelerationStructureCreateInfoKHR (internal issue 2769).
385  * Add "`See Also`" crosslinks to extension refpages providing aliased APIs
386    in API refpages (internal issue 2819).
387  * Fix markup for core version (`VK_VERSION_1_0`, etc.) refpages -
388    asciidoctor doesn't allow section headers here and this affected the
389    specification appendix rendering (internal issue 2826).
390  * Use open range notation for slink:VkSamplerCreateInfo
391    ptext:addressMode[UVW] descriptions (internal issue 2829).
392  * Replace term "`channel`" with "`component`" when discussing formats, and
393    update glossary to help clarify formats such as
394    ename:VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 and
395    ename:VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 (internal merge
396    request 4799).
397  * Fix some primitive_topology_list_restart VUIDs to only apply if
398    pname:primitiveRestartEnable is ename:VK_TRUE (internal merge request
399    4818).
400  * Fix slink:VkPhysicalDeviceShaderCorePropertiesAMD `limittype` attributes
401    in XML (internal merge request 4819).
402  * Fix accidentally duplicated VUIDs 06256 due to missing {accessMaskName}
403    in VUID markup (internal merge request 4829).
404  * Miscellaneous minor formatting and style fixes (internal merge requests
405    4832, 4838).
406
407-----------------------------------------------------
408
409Change log for September 14, 2021 Vulkan 1.2.192 spec update:
410
411  * Update release number to 192 for this update.
412
413Github Issues:
414
415  * Correctly describe slink:VkDeviceQueueInfo2::pname:pNext (public issue
416    1622).
417  * Improve behavior of contact links from extension metadata generator
418    (public merge request 1635).
419  * Require slink:VkDeviceAddress in 1.0 spec conditional markup, matching
420    XML (public issue 1636).
421
422Internal Issues:
423
424  * Turn <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>>
425    section into formal Valid Usage statements with assigned valid usage IDs
426    (internal issue 1598).
427  * Use `pass:[~~~~]` delimiters for `[source]` blocks inside reference page
428    `[open]` blocks to bypass logic problem with VUID assignment script
429    (internal issue 2040).
430  * Update style guide to incorporate Khronos Inclusive Language document by
431    reference. Followon changes will apply the suggestions as needed
432    (internal issue 2293).
433  * Add clarifications about ray tracing transform matrices to
434    slink:VkAccelerationStructureGeometryTrianglesDataKHR,
435    slink:VkAccelerationStructureBuildOffsetInfoKHR, and the
436    <<ray-intersection-candidate-determination, Ray Intersection Candidate
437    Determination>> section (internal issue 2709).
438  * Clarify descriptor requirements for code:Buffer and code:Subpassdata in
439    the <<interfaces-resources-correspondence, Shader Resource and
440    Descriptor Type Correspondence>> table (internal issue 2751).
441  * Add aliases for versioned extensions which don't treat the trailing
442    version number as a separate word, such as
443    ename:VK_KHR_MAINTENANCE1_SPEC_VERSION ->
444    ename:VK_KHR_MAINTENANCE_1_SPEC_VERSION, and add a CI test in
445    `scripts/xml_consistency.py` to try and detect future occurrences
446    (internal issue 2810).
447  * Add missing pname:sType and pname:pNext boilerplate descriptions to spec
448    language for several elink:*Features structures that were missing it
449    (though they did have them in the XML definition of the structures)
450    (internal issue 2815).
451  * Add extension and version crosslinks to generated reference pages,
452    expressing the same information in the `Provided by` comments in
453    generated API includes (internal issue 2816).
454  * Move the old "`Fragment Shader Execution`" section from the <<shaders>>
455    chapter to the <<fragops-shader, Fragment Shading>> section of the
456    <<fragops>> chapter, change anchor names accordingly, and factor out
457    common related language from several parts of the spec into this section
458    (internal merge request 4765).
459  * Allow access to the code:PrimitiveId builtin from shaders declared with
460    the code:MeshShadingNV capability (internal merge request 4767).
461  * Make the <<features-primitiveTopologyListRestart,
462    pname:primitiveTopologyListRestart>> feature mandatory for
463    `<<VK_EXT_primitive_topology_list_restart>>` (internal merge request
464    4790).
465  * Edit <<limits-types, Required Limit Types>> table to add Vulkan 1.2
466    interactions for pname:filterMinmaxSingleComponentFormats and
467    pname:filterMinmaxImageComponentMapping limits (internal merge request
468    4802).
469  * Add ename:VK_FORMAT_R10X6_UNORM_PACK16 and
470    ename:VK_FORMAT_R12X4_UNORM_PACK16 to the list of 16-bit packed formats,
471    and fix formatting of "`wildcard`" enums containing a placeholder _i_
472    tag corresponding to supported integers (internal merge request 4803).
473  * Refactor CI scripts to use the Makefile `allchecks` target as part of CI
474    instead of multiple separate steps, allowing a quick local check
475    equivalent to that part of CI, and update that target accordingly
476    (internal merge request 4807).
477  * Make slink:VkImageCreateInfo valid usage statement 01572 apply to all
478    compressed formats (internal merge request 4812).
479
480
481-----------------------------------------------------
482
483Change log for September 7, 2021 Vulkan 1.2.191 spec update:
484
485  * Update release number to 191 for this update.
486
487Internal Issues:
488
489  * Update checker scripts to detect extension number conflicts in `vk.xml`,
490    and run the check in CI (internal issue 2612).
491  * Minor cleanup for the provisional video extensions, including
492    documenting a few undocumented enums and structure members and some
493    language cleanup (internal issue 2705).
494  * Add a NOTE to flink:vkAllocateMemory.txt about protected memory
495    allocation count limits (internal issue 2791).
496  * Use "`cube map`" rather than "`cubemap`" spelling, and add this case to
497    the style guide (internal merge request 4794).
498
499New Extensions:
500
501  * `<<VK_EXT_pageable_device_local_memory>>`
502
503-----------------------------------------------------
504
505Change log for August 29, 2021 Vulkan 1.2.190 spec update:
506
507  * Update release number to 190 for this update.
508  * Released a few days in advance of the usual Tuesday spec updates due to
509    holiday meeting schedule.
510
511Github Issues:
512
513  * Make treatment of empty etext:Vk*FlagBits types consistent in `vk.xml`
514    (public issue 1601 and merge request 1609)
515
516Internal Issues:
517
518  * Add more descriptive language for transforms in the
519    <<ray-intersection-candidate-determination, Ray Intersection Candidate
520    Determination>> section (internal issue 2709).
521  * Update `-validate` logic in registry scripts to validate the `limittype`
522    attribute presence and values where required (internal issue 2606).
523  * Update common validity statements for access masks to allow shader
524    pipeline bits to be use with ename:VK_ACCELERATION_STRUCTURE_READ_BIT
525    (internal issue 2782).
526  * Fix typo in the description of code:CullDistancePerViewNV (internal
527    merge request 4769).
528  * Various fixes and simplifications for
529    <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> valid
530    usage statements:
531  ** Flatten markup for VK_KHR_shader_subgroup_extended_types valid usage
532     statements (internal issue 1598)
533  ** Flatten markup for VK_EXT_shader_atomic_float valid usage statements
534     (internal issue 1598).
535  ** Remove asciidoctor conditional check for
536     `VK_KHR_storage_buffer_storage_class`, not needed because the SPIR-V
537     specification is unified and `spirv-val` will throw an error if trying
538     to use code:StorageBuffer without the proper extension / version being
539     set (internal merge request 4779).
540
541New Extensions:
542
543  * `<<VK_KHR_shader_integer_dot_product>>`
544  * `<<VK_EXT_primitive_topology_list_restart>>`
545
546-----------------------------------------------------
547
548Change log for August 17, 2021 Vulkan 1.2.189 spec update:
549
550  * Update release number to 189 for this update.
551
552Github Issues:
553
554  * Add parent check valid usage statements to flink:vkUpdateDescriptors
555    (public issue 1581).
556  * Document the feature requirement for separate depth/stencil layouts in
557    the <<resources-image-layouts, Image Layouts>> section (public issue
558    1583).
559  * Revert a valid usage statement constraining
560    slink:VkMemoryAllocateInfo::pname:allocationSize (public issue 1595).
561  * Remove misleading reference to `z` from the description of image
562    coordinates for slink:VkSamplerCreateInfo::pname:unnormalizedCoordinates
563    (public issue 1602).
564  * Fix typo in <<fxvertex-input-extraction>> section (public pull request
565    1604).
566  * Fix comment in example for `<<VK_EXT_debug_utils>>` appendix to
567    correctly reference pname:objectHandle, not ptext:object (public pull
568    request 1606).
569  * Revert `vk_platform.h` path change in `vk.xml` from public pull request
570    1538, which was causing build issues for some projects. We will revisit
571    this in the future but did not want to put a problematic change into the
572    next SDK update (public pull request 1610).
573
574Internal Issues:
575
576  * Use `hexapdf` for PDF optimization, rather than Ghostscript. This
577    improves overall PDF generation time about 15-20%, and final PDF size by
578    about 1/3 (internal issue 2422).
579  * Improve contrast for better accessibility of HTML outputs, based on
580    feedback from the ANDI tool. This includes updating the specification
581    CSS in `config/khronos.css`, switching to the rouge source code
582    highlighter instead of coderay, and overriding some of the rouge theme
583    CSS (internal issue 2784).
584  * Clarify that transforms are consumed only if transformData is non-null
585    for slink:VkAccelerationStructureBuildRangeInfoKHR.txt (internal issue
586    2787).
587  * Make spec language describing bitmasks consistent as 'Bits which can: be
588    set' (internal merge request 4762).
589  * Support `optional` attribute in the valid usage statement generator for
590    union types (internal merge request 4772).
591
592-----------------------------------------------------
593
594Change log for August 10, 2021 Vulkan 1.2.188 spec update:
595
596  * Update release number to 188 for this update.
597
598Github Issues:
599
600  * Add missing `optional="true"` attributes to pname:pNext members. Enable
601    `scripts/xml_consistency.py` in CI, and add check for this case (public
602    pull request 1597).
603  * Add missing markup (setting `refpage` attributes where they were needed
604    for commonvalidity statements) to fix some broken valid usage ID link
605    names (public issue 1598).
606  * Update valid usage statement 02650 to use "`potential format features`"
607    consistently with other recent changes (discussion on public
608    Vulkan-ValidationLayers pull request 3139).
609
610Internal Issues:
611
612  * Clarify the role of <<ray-traversal-culling-face, face winding>> in the
613    context of ray intersection candidate determination and alias
614    ename:VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR to
615    ename:VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR, corresponding
616    to the clarifications (internal issue 2780).
617  * Add valid usage statement for flink:vkCmdBeginTransformFeedbackEXT
618    requiring a valid graphics pipeline be bound (internal issue 2785).
619  * Use the term <<acceleration-structure-def, "`constructed`">> to refer to
620    an acceleration structure that was previously built or created by
621    copying or deserialization of a built acceleration structure (internal
622    merge request 4727).
623  * Add explicit valid usage statements to flink:vkWaitForPresentKHR and
624    slink:VkPresentInfoKHR requiring the corresponding features be enabled
625    (internal merge request 4754).
626  * Remove extraneous trailing periods from some valid usage statements
627    (internal merge request 4759).
628
629New Extensions:
630
631  * `<<VK_EXT_load_store_op_none>>`
632
633-----------------------------------------------------
634
635Change log for August 3, 2021 Vulkan 1.2.187 spec update:
636
637  * Update release number to 187 for this update.
638
639Github Issues:
640
641  * Add glossary terms for "`pipeline ray tracing instructions`" and "`ray
642    tracing commands`" (public issue 1578).
643  * Limit the code:OpTypeImage code:Unknown format restriction to storage
644    images in the <<spirvenv-module-validation-runtime, Runtime SPIR-V
645    Validation>> section (public issue 1588).
646  * Fix slink:VkRect2D::pname:extent in a few places where it was
647    misreferenced as pname:offset (public pull request 1590).
648
649Internal Issues:
650
651  * Clarify that depth values outside the range [0,1] become undefined
652    following the depthClamp stage of the pipeline, by rearranging the
653    <<fragops-depth, Depth Test>> section and adding a new "`Depth Clamping
654    and Range Adjustment`" subsection (internal issues 2445, 2753).
655  * Clarify valid usage statement 01843 for slink:VkDeviceQueueInfo2 to
656    match similar statement for flink:vkGetDeviceQueue, and split off part
657    of it into a new VU statement (internal issue 2645).
658  * Fix a few enumerant and member names in the provisional video extensions
659    to comply with the spec style guidelinse (internal issue 2710).
660  * Update the descriptions of flink:vkCmdDrawMultiEXT and
661    flink:vkCmdDrawMultiIndexedEXT to clarify how they are equivalent to
662    calling underlying drawing commands multiple times with different
663    parameters (internal issue 2757).
664  * Renumber VUIDs which duplicated the numeric portion of another
665    non-common VUID, and add a duplicate number detection test to CI to
666    prevent recurrences (internal issue 2764).
667  * Make code:SubgroupSize command scope uniform in compute dispatches
668    (internal issue 2773).
669  * Expand the list of valid image layouts for
670    <<attachment-type-imagelayout, input attachments>>,
671    <<descriptorsets-sampleimage, sampled images>>, and
672    <<descriptorsets-combinedimagesampler, combined image samplers>> to
673    include DEPTH_READ_ONLY_OPTIMAL and STENCIL_READ_ONLY_OPTIMAL (internal
674    issue 2774).
675  * Remove `flowRoot` SVG elements from a few recent image updates, as they
676    are not supported by the current PDF toolchain (internal issue 2778).
677  * Update to asciidoctor-chunker 1.0.4, adding support for `aria-label`
678    accessibility tags on the chunked specification forward/back section
679    navigation arrows (internal issue 2784).
680  * Clean up description of flink:vkCmdClearAttachments and remove redundant
681    information (internal merge request 4717).
682  * Add a description of each of the
683    flink:vkCmdWriteAccelerationStructuresPropertiesKHR::pname:queryPool
684    query types (internal merge request 4728).
685  * Add new valid usage statement to slink:VkMemoryAllocateInfo when
686    allocating a memory object larger than the reported limit (internal
687    merge request 4737).
688  * Add missing description of pname:layerCount member of
689    slink:VkFramebufferAttachmentImageInfo (internal merge request 4744).
690
691
692-----------------------------------------------------
693
694Change log for July 27, 2021 Vulkan 1.2.186 spec update:
695
696  * Update release number to 186 for this update.
697
698Github Issues:
699
700  * Reduce size and increase clarity of some SVG images for the provisional
701    video extensions (public issue 1537).
702  * Use a consistent description of pname:stride as "`byte stride`" rather
703    than "`distance in bytes`" in a few places (public issue 1575)
704  * Clarify the equivalence of flink:vkQueueWaitIdle to
705    fence submission (public issue 1579).
706  * Fix XML capabilities for new code:*Float*Atomic* SPIR-V capabilities to
707    require slink:VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT rather than
708    slink:VkPhysicalDeviceShaderAtomicFloatFeaturesEXT (public pull request
709    1587, although fixed internally first).
710
711Internal Issues:
712
713  * Refactor asciidoctor conditionals imbedded within valid usage statements
714    so they are extracted properly to `validusage.json`, and add a CI check
715    to prevent this happening in the future (internal issues 1529, 2439).
716  * Clarify that dynamic vertex buffer object stride of 0 is allowed in
717    valid usage statement for flink:vkCmdBindVertexBuffers2EXT
718    (internal issue 2742)
719  * Add valid usage statement to
720    ftext:vkGetPhysicalDeviceSurfaceCapabilities{KHR,2EXT,2KHR},
721    ftext:vkGetPhysicalDeviceSurfacePresentModes{KHR,2EXT}, and
722    ftext:vkGetDeviceGroupSurfacePresentModes{KHR,2EXT} requiring surface /
723    device compatibility (internal issue 2744).
724  * Clarify the requirements on code:OpTypeImage for input attachments in
725    the <<spirvenv-module-validation, Validation Rules within a Module>> and
726    <<interfaces-inputattachment, Fragment Input Attachment Interface>>
727    sections (internal issue 2752)
728  * Clarify that stipple parameters are ignored when line stipple is
729    disabled in slink:VkPipelineRasterizationLineStateCreateInfoEXT
730    (internal issue 2763)
731  * Improve wording for the shader interface code:Location limit in the
732    <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>>
733    section (internal merge request 4693)
734
735-----------------------------------------------------
736
737Change log for July 20, 2021 Vulkan 1.2.185 spec update:
738
739  * Update release number to 185 for this update.
740  * Going forward we will probably be moving the default day for spec
741    updates to Tuesday (Pacific time) rather than Monday.
742
743Github Issues:
744
745  * Clarify that only *device* extensions are required to be specified in
746    valid usage statement for flink:vkCreateDevice (public issue 1567).
747  * Fix extension dependencies for `<<VK_EXT_calibrated_timestamps>>` to
748    include `<<VK_KHR_get_physical_device_properties2>>` (public issue
749    1568).
750  * Conditionalize xref to VkPhysicalDeviceSubgroupProperties in
751    `<<VK_KHR_spirv_1_4>>` appendix so it does not show up in a 1.0 spec
752    build (public issue 1574).
753  * Relax portability usage of the identity swizzle in
754    slink:VkImageViewCreateInfo valid usage statement 04465 (public
755    KhronosGroup/Vulkan-Portability issue 27).
756
757Internal Issues:
758
759  * Document in the <<extendingvulkan-extensions-extensiondependencies,
760    Extension Dependencies>> section that instance extensions do not have
761    dependencies on device extensions, and add a similar requirement to the
762    description of the `requires` attribute of extension tags in the
763    registry schema document (internal issue 2387).
764  * Fix `optional` attribute in XML for
765    flink:vkCmdBindVertexBuffers2EXT::pname:pBuffers (internal issue 2574).
766  * Remove redundant valid usage statements from flink:vkCmdPipelineBarrier,
767    flink:vkCmdSetEvent, and flink:vkCmdResetEvent. Add missing VUs for
768    slink:VkSubpassDependency and slink:VkSubpassDependency2 (internal issue
769    2583).
770  * Clarify that
771    ename:VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR
772    must be supported in pname:bufferFeatures (internal issue 2686).
773  * Clarify that a valid function pointer pname:fp returned from
774    flink:vkGetInstanceProcAddr must not be `NULL` (internal issue 2720).
775  * Relax code:Flat, code:NoPerspective, code:Sample, and code:Centroid
776    storage class restriction in the
777    <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
778    section (internal issue 2721).
779  * Clarify forward progress behavior of flink:vkAcquireNextImageKHR and
780    flink:vkQueuePresentKHR (internal issue 2729).
781  * Remove duplicated language describing queue submission in the
782    <<fundamentals-execmodel, Execution Model>> and
783    <<fundamentals-queueoperation, Queue Operation>> sections (internal
784    issue 2736).
785  * Describe the new pipeline stage
786    ename:VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI in several sections
787    of the <<synchronization>> chapter where it was missing (internal issue
788    2745).
789  * Improve formatting in the <<limits>> chapter, add support for the
790    missing optionally: normative word macro, and replace most use of
791    (non-normative) "`optionally`" with normative "`can:`". Update style
792    guide to add more contractions and remove contractions from the spec.
793    add a better description of the pname:shaderDrawParameters feature
794    (internal merge requests 4699, 4708).
795  * Fix name of parameter
796    flink:vkGetMemoryRemoteAddressNV::pname:pMemoryGetRemoteAddressInfo to
797    follow Vulkan conventions (internal merge request 4704).
798  * Minor fixes for the <<resources-image-views-compatibility, image view
799    compatibility table>> and related minor spec language fixes elsewhere
800    (internal merge request 4709).
801
802New Extensions:
803
804  * `<<VK_EXT_shader_atomic_float2>>`
805  * `<<VK_HUAWEI_invocation_mask>>`
806  * `<<VK_KHR_present_id>>`
807  * `<<VK_KHR_present_wait>>`
808
809Miscellany:
810
811  * Happy Lunar Landing Day!
812
813-----------------------------------------------------
814
815Change log for July 5, 2021 Vulkan 1.2.184 spec update:
816
817  * Update release number to 184 for this update.
818
819Github Issues:
820
821  * Make description of
822    slink:VkSparseImageMemoryRequirements::pname:formatProperties.imageGranularity
823    consistent by replacing the nested structure descriptions with a simple
824    description of pname:formatProperties (public issue 1444).
825  * Update `<<VK_HUAWEI_subpass_shading>>` extension to rename
826    flink:vkGetSubpassShadingMaxWorkgroupSizeHUAWEI to
827    flink:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI and give it a
828    dispatchable slink:VkDevice parameter (public issue 1564).
829  * Fix labelling of "`Resource`" reference block in pipeline block
830    diagrams (public issue 1582).
831
832Internal Issues:
833
834  * Replace the old <<resources-image-views-compatibility>> table with a
835    simplified image type / image view type compatibility table, and move
836    the parameter compatibility portions of the table into explicit valid
837    usage statements (internal issue 2586).
838  * Define the slink:VkPipelinCacheHeaderVersionOne structure in `vk.xml`
839    instead of the previous "`Layout for pipeline cache header version one`"
840    table (internal merge request 4011).
841  * Make the `requires` attribute of the `spirvcapability` XML tag required
842    when specifying a structure, even if what's required is
843    `"VK_VERSION_1_0"`, to address a problem in the generated table from
844    these tags (internal merge request 4689).
845
846New Extensions:
847
848  * `<<VK_NV_extermal_memory_rdma>>`
849
850-----------------------------------------------------
851
852Change log for June 28, 2021 Vulkan 1.2.183 spec update:
853
854  * Update release number to 183 for this update.
855
856Github Issues:
857
858  * Rewrite and simplify the <<interfaces-iointerfaces-matching, Interface
859    Matching>> section. Clarify that results are undefined if the size of a
860    vector mismatches (public issue 666; internal issues 1269, 2059, 2323).
861  * Remove inappropriate `const` from `void *pNext` members of
862    `returnedonly` structures in `vk.xml` (public issue 1482, internal issue
863    2644).
864  * Add a NOTE to the <<interfaces, Shader Interfaces>> chapter that SPIR-V
865    execution model keywords with extension suffixes will always be present
866    in spec builds, even in a build not supporting any extensions, since
867    these keywords appear in the unified SPIR-V specification without such
868    qualifiers (public issue 1483, internal issue 2621).
869  * Modify `vk.xml` to include the Vulkan platform header via the path
870    `vulkan/vk_platform.h` rather than just `vk_platform.h`
871    (public pull request 1538).
872  * Add length annotations for slink:VkCuLaunchInfoNVX (public issue 1548).
873  * Describe slink:VkSubpassDescription::pname:pDepthStencilAttachment
874    correctly as a pointer to a structure, not a pointer to an array of
875    structures (public issue 1561).
876  * Fix `structextends` attribute of
877    slink:VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, declare its
878    pname:pNext member correctly, and fix some typos in the related
879    extension language (public issue 1565, internal issue 2724).
880
881Internal Issues:
882
883  * Add explicit valid usage statements for
884    flink:vkCmdClearColorImage::slink:VkClearColorValue and
885    slink:VkRenderPassBeginInfo::slink:VkClearValue (internal issue 2490).
886  * Change the term "`vertex processing {shader} stage`" to
887    "`pre-rasterization shader stage`" throughout the specification, link to
888    a single definition, and add "`pre-rasterization`" to the glossary
889    (internal issue 2634).
890  * Add an `<implicitexternsync>` constraint for
891    flink:vkResetCommandBuffers::pname:pool (internal issue 2646).
892  * Fix typo `vkCmdResetEvent` -> `vkResetEvent` in flink:vkResetEvent valid
893    usage statements (internal issue 2651).
894  * Fix wording of scope dependencies for slink:VkMemoryBarrier2KHR,
895    slink:VkBufferMemoryBarrier2KHR, and slink:VkImageMemoryBarrier2KHR
896    members pname:srcAccessMask and pname:dstAccessMask (internal issue
897    2654).
898  * Require support for pname:shaderInt64 in the <<features-requirements,
899    Feature Requirements>> section when pname:atomicInt64 features are
900    supported (internal issue 2660).
901  * Clarify ray tracing valid usage statements for cases where a parameter
902    refers to an acceleration structure that must have been built (internal
903    issue 2715).
904  * Add a NOTE clarifying shader record buffer uniformity in the
905    <<shader-binding-table, Shader Binding Table>> section (internal issue
906    2719).
907  * Minor clarifications and typo fixes to `<<VK_HUAWEI_subpass_shading>>`
908    (internal issue 2722).
909  * Add missing <spirvextension> entry in `vk.xml` to enable
910    `SPV_KHR_subgroup_uniform_control_flow`
911    (internal issue 2733).
912  * Move SPIR-V valid usage statement from the
913    <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>>
914    section to <<spirvenv-module-validation-standalone]] Standalone SPIR-V
915    Validation>> (internal merge request 4637).
916  * Add a new <<spirvenv-image-signedness, Signedness of SPIR-V Image
917    Accesses>> section to allow the use of unsigned Sampled Types with
918    code:SignExtend and signed code:Format decorations (internal merge
919    request 4638).
920  * Add missing slink:VkDeviceCreateInfo to `structextends` attribute of
921    slink:VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT (internal merge
922    request 4652).
923  * Remove nonexistent pname:minFragmentSize from the <<limits-minmax, Limit
924    Requirements>> table (internal merge request 4655).
925  * Fix markup typo for `<<VK_NV_fragment_shader_barycentric>>` ifdef
926    (internal merge request 4663).
927
928-----------------------------------------------------
929
930Change log for June 21, 2021 Vulkan 1.2.182 spec update:
931
932  * Update release number to 182 for this update.
933
934Github Issues:
935
936  * Add XML attributes & schema updates to link untyped Vulkan object handle
937    values to corresponding object types (public issue 1536).
938
939Internal Issues:
940
941  * Automatically generate links to extension proposal documents from
942    extension appendices (internal issue 2713).
943  * Clean up wording of flink:vkCmdWriteTimestamp and
944    flink:vkCmdWriteTimestamp2KHR (internal issue 2425).
945  * Fix hpp-compile CI stage after recent changes to Vulkan-Headers
946    repository which generate additional header files.
947
948New Extensions:
949
950  * `<<VK_EXT_acquire_drm_display>>` (public pull request 1529).
951  * `<<VK_EXT_multi_draw>>`
952  * `<<VK_EXT_physical_device_drm>>` (public pull request 1356).
953  * `<<VK_HUAWEI_subpass_shading>>`
954  * `<<VK_NV_ray_tracing_motion_blur>>`
955
956-----------------------------------------------------
957
958Change log for June 14, 2021 Vulkan 1.2.181 spec update:
959
960  * Update release number to 181 for this update.
961
962Github Issues:
963
964  * Add stub slink:VkPipelineLayoutCreateFlagBits <enum> type in `vk.xml` to
965    reduce spurious warnings from XML processing scripts that don't respect
966    the `supported="disabled"` attribute, and update the registry schema
967    documentation to make more clear that `extension` tags with this
968    attribute should not be processed (public issue 1549).
969
970Internal Issues:
971
972  * Clarify implicit conversions between the vertex input attribute
973    description format and the shader vertex attribute input type in the
974    <<fxvertex-attrib-location, Attribute Location and Component
975    Assignment>> and <<fxvertex-input-extraction>> sections (internal issue
976    902).
977  * Add text about the <<interfaces-alignment-requirements, base alignment
978    of empty structures>> (internal issue 2174).
979  * Clarify the use of rasterization order <<primsrast-order,
980    "`operations`">> (internal merge request 4582).
981  * Allow any pipeline barrier command for queue transfers in the
982    <<synchronization-queue-transfers, Queue Family Ownership Transfer>>
983    section (internal merge request 4596).
984  * Remove potentially confusing reference to
985    ename:VK_ERROR_INVALID_SHADER_NV in the description of
986    flink:vkCreateShaderModule (internal merge request 4602).
987  * Improve visibility of instance creation callbacks by migrating some
988    language from the `<<VK_EXT_debug_report>>` and `<<VK_EXT_debug_utils>>`
989    appendix examples to the description of slink:VkInstanceCreateInfo
990    (internal merge request 4614).
991  * Fix markup for sparse image atomic requirements in the
992    <<features-requirements, Feature Requirements>> section and for
993    slink:VkDeviceCreateInfo valid usage statements (internal merge request
994    4618).
995  * Correct the definition of
996    ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT
997    to constrain pname:chromaFilter, not pname:minFilter / pname:magFilter
998    (internal merge request 4623).
999  * Add level 3 headings in <<pipelines-cache, Pipeline Cache>> section
1000    (internal merge request 4627).
1001  * Clarify flink:vkCmdCopyAccelerationStructureKHR to add details on the
1002    copy command itself, as well as the etext:CLONE and etext:COMPACT copy
1003    modes (internal merge request 4631).
1004  * Remove `<mask>` tags from some SVG images in the provisional video
1005    extensions. These tags are not supported by components of the PDF
1006    toolchain. Removing them removes many warnings from the PDF build and is
1007    a workaround for editing the SVGs to use alternate constructs for the
1008    intended purpose, although it also make these images in the HTML output
1009    show the same artifacts as the PDF output.
1010
1011-----------------------------------------------------
1012
1013Change log for June 7, 2021 Vulkan 1.2.180 spec update:
1014
1015  * Update release number to 180 for this update.
1016
1017Github Issues:
1018
1019  * Add more details about zero shader group handles and draw linkage to
1020    etext:VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL* flags (public issue 1487).
1021  * Clarify that semaphore operations don't do work in a specific pipeline
1022    stage in slink:VkSemaphoreSubmitInfoKHR::pname:stageMask (public issue
1023    1501).
1024  * Fix markup in shared valid usage statements 03766 / 03767 (public issue
1025    1528).
1026
1027Internal Issues:
1028
1029  * Grammatical improvements for various ray tracing sections. Add statement
1030    that AABB intersections may be false-positives (internal issue 2597).
1031  * Disambiguate ASTC HDR block error handling in
1032    <<appendix-compressedtex-astc, ASTC Compressed Image Formats>> and the
1033    following "`ASTC decode mode`" section (internal issue 2603).
1034  * Fix some holes in `<<VK_EXT_vertex_input_dynamic_state>>`, including
1035    adding some missing common draw validity statements; an interaction
1036    with VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT; an interaction
1037    with code:nullDescriptor to flink:vkCmdBindVertexBuffers2EXT; and
1038    language to
1039    slink:VkGraphicsPipelineCreateInfo::pname:pVertexInputState (internal
1040    issue 2637, 2684).
1041  * Make elink:VkAccessFlagBits and elink:VkAccessFlagBits2KHR descriptions
1042    consistent and reorganize them in matching order (internal issue 2650).
1043  * Add slink:VkSpecializationInfo::pname:pMapEntries valid usage
1044    statement requiring the pname:constantID values be unique (internal
1045    issue 2668).
1046  * Clarify <<[[queries-wait-bit-not-set, the cases in which
1047    flink:vkGetQueryPoolResults returns VK_NOT_READY>> (internal issue
1048    2676).
1049  * Add spec language and refpages for API constants. With this change all
1050    APIs should be defined in the spec (internal issue 2698).
1051  * Move some restrictions in the <<interfaces, Shader Interfaces>> chapter
1052    into the <<spirvenv-module-validation-standalone, Standalone SPIR-V
1053    Validation>> section (internal merge request 4537).
1054  * Add missing member descriptions to slink:VkSurfaceCapabilities2EXT
1055    (internal merge request 4544).
1056  * Update glossary definition of "`Aspect`" to accomodate copy commands
1057    which can operate on multiple aspects (internal merge request 4586).
1058  * Add ename:VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHING_EXT
1059    enum to provide a standard way to disable caching of shader validation
1060    results (internal merge request 4589).
1061  * Remove the `pipeline` attribute from `vk.xml`, and the corresponding
1062    "`Pipeline Types`" column from the generated command properties tables.
1063    The `queues` attribute should be used instead (internal merge request
1064    4594).
1065  * Fix typos and improve consistency in the provisional video extension
1066    language (internal merge request 4598).
1067  * Use "`implementation-dependent`" spelling consistently, and update the
1068    style guide to match (internal merge request 4611).
1069  * Update <<ray-intersection-candidate-determination, ray tracing
1070    intersection equation>> for triangles to match other API. This cannot be
1071    distinguished in practice (internal vk-gl-cts issue 2846).
1072
1073New Extensions:
1074
1075  * `<<VK_KHR_shader_subgroup_uniform_control_flow>>`
1076  * `<<VK_EXT_global_priority_query>>`
1077
1078-----------------------------------------------------
1079
1080Change log for May 24, 2021 Vulkan 1.2.179 spec update:
1081
1082  * Update release number to 179 for this update.
1083
1084Github Issues:
1085
1086  * Require that the queried
1087    slink:VkPhysicalDeviceExternalMemoryHostPropertiesEXT::pname:minImportedHostPointerAlignment
1088    is a power of two (public issue 1442).
1089  * Fix direction of enum aliasing for fragment shading rate extensions,
1090    so NV tokens don't show up in a KHR-only specification build
1091    (public issue 1482).
1092  * Split the new <<fundamentals-validusage, Valid Usage>> section off from
1093    its previous location within the <<fundamentals-errors, Errors>> section
1094    (public pull request 1503).
1095  * Correct some typos in stage parameter names (public pull request 1507).
1096  * Fix minor markup issues (public pull request 1508).
1097  * Add missiong `optional` attribute to
1098    flink:vkGetPhysicalDeviceVideoFormatPropertiesKHR::pname:pVideoFormatPropertyCount
1099    in `vk.xml` (public pull request 1514).
1100  * Add additional header dependecies for external code:Std* types in the
1101    provisional video extensions (public pull request 1515).
1102  * Tagged slink:VkCuModuleCreateInfoNVX::pname:pName as
1103    `len="null-terminated"` in `vk.xml` (public issue 1526).
1104  * Fix `:anchor-prefix:` markup showing up in spec outputs due to
1105    overzealous whitespace removal (public issue 1530).
1106  * Protect use of `__cplusplus` macro in a preprocessor test in the headers
1107    (public Vulkan-Headers issue 4).
1108
1109Internal Issues:
1110
1111  * Rephrase the language describing lifetime of EDID query results for
1112    slink:VkDisplayPropertiesKHR to be more precise (internal issue 695).
1113  * Clarify descriptor pool size aggregation behavior for
1114    slink:VkDescriptorPoolCreateInfo.txt (internal issue 2577).
1115  * Make valid usage statements for slink:VkImportMemoryFdInfoKHR and
1116    slink:VkMemoryGetFdInfoKHR properly enforce the relationship between
1117    pname:fd and pname:handleType (internal issue 2607).
1118  * Add missing common, non-indirect shared valid usage statements for
1119    flink:vkCmdDispatchBase (internal issue 2625).
1120  * Call out precision of pname:subPixelPrecisionBits clearly in the
1121    <<vertexpostproc-viewport, Controlling the Viewport>> section (internal
1122    issue 2635)
1123  * Do not allow code:RayPayloadKHR on any-hit shaders in the
1124    <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
1125    section (internal issue 2640).
1126  * Simplify specification language for sname:VkMemoryDedicatedRequirements
1127    (internal issue 2661).
1128  * Remove `optional="true"` attributes from XML for
1129    slink:VkSurfaceCapabilities* members pname:supportedTransforms,
1130    pname:supportedCompositeAlpha, and pname:supportedUsageFlags, matching
1131    descriptions in the specification (internal issue 2666).
1132  * Add a concurrent deferred host operation example to the
1133    `<<VK_KHR_deferred_host_operations>>` appendix (internal issue 2677).
1134  * Add a NOTE to slink:VkAccelerationStructureCompatibilityKHR encouraging
1135    host-cachable memory for host acceleration structure builds (internal
1136    issue 2682).
1137  * Remove redundant language in basetype:VkSampleMask duplicating valid
1138    usage statements for slink:VkGraphicsPipelineCreateInfo (internal issue
1139    2624).
1140  * Allow `<<VK_EXT_shader_image_atomic_int64>>` to enable the
1141    code:shaderImageInt64Atomics SPIR-V feature in `vk.xml` (internal SPIR-V
1142    issue 644).
1143  * Add valid usage statement to fname:vkCmdWriteTimestamp* for the
1144    pname:query index in pname:queryPool (internal merge request 4528).
1145  * Add valid usage statements to flink:vkQueueSubmit2KHR for pname:fence
1146    (internal merge request 4530).
1147  * Add *GlCompute* to the disallowed *Output* storage classes in shared valid
1148    usage statement 04644 for ray tracing functionality (internal merge
1149    request 4532).
1150  * Remove redundant code:Patch decoration shared valid usage statement 04671
1151    (internal merge request 4530).
1152  * Make the code:sparseImage*Atomics features a superset of the corresponding
1153    code:shaderImage*Atomics features, in the slink:VkDeviceCreateInfo valid
1154    usage statements and the <<features-requirements, Feature Requirements>>
1155    section (internal merge request 4561).
1156  * Add `specialuse="glemulation,d3demulation"` attribute to XML for
1157    `<<VK_EXT_custom_border_color>>` (internal merge request 4564).
1158  * Make array count and pointer-to-array parameter / member descriptions
1159    more consistent (internal merge request 4566).
1160  * Add third-level section headings to the <<memory-device, Device Memory>>
1161    section for clarity (internal merge request 4567).
1162  * Use the terminology "`drawing/dispatching command`" consistently, add it
1163    to the style guide, and remove occasional use of "`record`" or "`perform`"
1164    in refpage summaries of ftext:vkCmd* (internal merge request 4569).
1165  * Use asciidoctor attributes to genericize more instances of header file
1166    names, to enable future variant APIs (internal merge request 4581).
1167  * Fix SVG for some images that render incorrectly in Chrome on MacOS
1168    (internal merge request 4583).
1169  * Move some valid usage statements for
1170    `<<VK_QCOM_render_pass_shader_resolve>>` into
1171    slink:VkGraphicsPipelineCreateInfo, slink:VkRenderPassCreateInfo2, and
1172    the <<spirvenv-module-validation-standalone, Standalone SPIR-V
1173    Validation>> section (internal merge request 4584).
1174
1175-----------------------------------------------------
1176
1177Change log for May 10, 2021 Vulkan 1.2.178 spec update:
1178
1179  * Update release number to 178 for this update.
1180
1181Github Issues:
1182
1183  * Add `optional` attribute to pname:pFragmentShadingRateAttachment member
1184    of slink:VkFragmentShadingRateAttachmentInfoKHR, to match specification
1185    text (public issue 1482).
1186  * Lots of minor markup and phrasing fixes (public issue 1482).
1187  * Additional fixes specific to ray tracing extensions, including a few
1188    duplicate valid usage statements, incorrect descriptions of structure
1189    members, and incorrect SPIR-V opcodes (public issue 1483).
1190  * Fix formatting around "`Special Use`" sections in generated refpages
1191    (public issue 1518).
1192
1193Internal Issues:
1194
1195  * Language cleanup including removing contractions, and some wording in
1196    more egregious violation of the style guide.
1197  * Make parameter handling text in the
1198    <<deferred-host-operations-requesting, Requesting Deferral>> section
1199    consistent with the <<fundamentals>> chapter (internal issue 2018).
1200  * Relax slink:VkCopyDescriptorSet valid usage statements to remove some
1201    constraints on copying descriptors from sets residing in host memory
1202    other kinds of sets (internal issue 2610).
1203  * Clarify the definition of "`intersection`" in the
1204    <<ray-intersection-candidate-determination, Ray Intersection Candidate
1205    Determination>> section (internal issue 2623).
1206  * Allow pname:stride to equal buffer size in
1207    slink:VkStridedDeviceAddressRegionKHR (internal issue 2631).
1208  * Fix the ray tracing shader interface table in the
1209    <<interfaces-raypipeline, Ray Tracing Pipeline Interface>> section
1210    (internal issue 2640).
1211  * Try to use consistently-phrased descriptions of etext:*FlagBits* members
1212    and parameters everywhere (internal issue 2656).
1213  * Replace "`optional pointer`" terminology with "`NULL or a pointer`" (and
1214    similar uses), and update the style guide accordingly (internal issue
1215    2662).
1216  * Modify wording of some pipeline creation valid usage statements to tidy
1217    up cases where certain state isn't required (internal merge request
1218    4496).
1219  * Clarify consistent <<descriptorsets-updates-consecutive, consecutive
1220    binding updates>> (internal merge request 4500).
1221  * Clarify that code:scalarBlockLayout is supported on the
1222    code:ShaderRecordBufferKHR storage class in the
1223    <<interfaces-resources-standard-layout, Standard Buffer Layout>> section
1224    (internal merge request 4525).
1225  * Hide boilerplate Features and Properties text where it incorrectly
1226    appeared outside the descriptions of feature and property structures,
1227    respectively (internal merge request 4541).
1228  * Add missing section headers to the
1229    `<<VK_KHR_zero_initialize_workgroup_memory>> appendix (internal merge
1230    request 4553).
1231  * Add missing `R64ui` and `R64i` entries to the SPIR-V
1232    <<spirvenv-format-type-matching tables, image format matching tables>>
1233    for `<<VK_EXT_shader_image_atomic_int64>>` (internal
1234    Tracker/vk-gl-cts#2885).
1235
1236New Extensions:
1237
1238  * `<<VK_NVX_binary_import>>` (only appendix and XML - no spec language
1239    yet).
1240
1241-----------------------------------------------------
1242
1243Change log for April 26, 2021 Vulkan 1.2.177 spec update:
1244
1245  * Update release number to 177 for this update.
1246
1247Github Issues:
1248
1249  * Add valid usage statement to flink:vkDestroyImage to prevent destruction
1250    of presentable images acquired from flink:vkGetSwapchainImagesKHR
1251    (public Vulkan-ValidationLayers issue 2718).
1252
1253Internal Issues:
1254
1255  * Add proposal template for new feature development (internal issue 2529).
1256  * Remove valid usage statement 03361 from flink:vkCmdBindVertexBuffers2EXT
1257    (internal issue 2600).
1258  * Finish fixing refpage formatting issues for the new video extensions
1259    (internal issue 2611).
1260  * Invert direction of ray space matrix to correct the
1261    <<ray-intersection-candidate-determination, ray/triangle sidedness
1262    test>> (internal merge request 4480).
1263  * Fix capitalization of etext:*_EXTENSION_NAME and etext:*_SPEC_VERSION
1264    tokens for `<<VK_QCOM_render_pass_store_ops>>` (internal merge request
1265    4490).
1266  * Don't generate etext:*_MAX_ENUM tokens for 64-bit flag types. Note that
1267    these tokens are *explicitly* not part of the Vulkan API and are not
1268    included in the Specification, only in generated headers. They are added
1269    to enumerated types to ensure padding to 32 bits, but are completely
1270    pointless for the 64-bit flag types, which are defined as integer
1271    constants rather than enumerants (internal merge request 4493).
1272  * Remove empty VK_ENABLE_BETA_EXTENSION guards from headers when disabling
1273    extensions (internal merge request 4498).
1274  * Reproduce valid usage statement constraining pname:query from
1275    flink:vkCmdBeginQuery to
1276    flink:vkCmdWriteAccelerationStructuresPropertiesKHR (internal merge
1277    request 4520).
1278
1279New Extensions:
1280
1281  * `<<VK_EXT_provoking_vertex>>`
1282
1283-----------------------------------------------------
1284
1285Change log for April 19, 2021 Vulkan 1.2.176 spec update:
1286
1287  * Update release number to 176 for this update.
1288
1289Github Issues:
1290
1291  * Fix many typos (based on public issues 1483 & 1484).
1292  * Fix an error in the definition of dname:VK_NULL_HANDLE which caused a
1293    compilation error with one version of MSVC (public issue 1502).
1294  * Remove duplicate requirement for elink:VkStructureType from
1295    dname:VK_VERSION_1_0 block of `vk.xml` (public merge request 1504).
1296
1297Internal Issues:
1298
1299  * Modify extension metadoc generator to include Contact information in
1300    extension reference pages (internal issue 2611).
1301  * Fix XML consistency checker script to add exceptions to naming patterns
1302    for new extensions (internal merge request 4491).
1303  * Clean up latest revision numbers in some video extension appendices to
1304    be integers, for compatibility with the consistency checker script
1305    (internal merge request 4492).
1306  * Mark slink:VkIndirectCommandsLayoutCreateInfoNV pname:flags member as
1307    `optional` in `vk.xml` (internal merge request 4501).
1308
1309New Extensions:
1310
1311  * `<<VK_EXT_extended_dynamic_state2>>`
1312
1313-----------------------------------------------------
1314
1315Change log for April 13, 2021 Vulkan 1.2.175 spec update:
1316
1317  * Update release number to 175 for this update.
1318
1319Github Issues:
1320
1321  * Specify that fragment shader invocations in the same quad scope are also
1322    in the same primitive scope (public issue 1465).
1323  * Fix an incorrect reference to ename:VK_SHARING_MODE_CONCURRENT to the
1324    correct ename:VK_SHARING_MODE_EXCLUSIVE in the queue transfer wording
1325    for slink:VkBufferMemoryBarrier2KHR (public issue 1479).
1326  * Fix description of <<vertexpostproc-clipping, Primitive Clipping>>
1327    (public issues 1480 and 1481).
1328
1329Internal Issues:
1330
1331  * Use consistent language in describing <<features, feature>> and
1332    <<limits, property (limit)>> queries. In particular, a few structures
1333    were described as being usable to query feature support, but not to set
1334    it. This was incorrect. All feature structures which can appear in the
1335    pname:pNext chain of slink:VkPhysicalDeviceFeatures2 can be used to both
1336    query and set (internal issue 2310).
1337  * Add `limittype` attributes to the XML schema and to `vk.xml` for
1338    structure members which are part of physical device property queries, to
1339    annotate how the resulting properties are interpreted and replace some
1340    manual interpretation of these properties (internal issue 2427).
1341  * Improve slink:VkAttachmentDescription2 wording around the use of
1342    slink:VkAttachmentDescriptionStencilLayout for specifying the stencil
1343    aspect layout (internal issue 2496).
1344  * Split the <<extendingvulkan-coreversions-versionnumbers, major version
1345    field>> of a packed pname:apiVersion value, introducing a new `variant`
1346    field. This field allows identification of APIs based on Vulkan, but not
1347    fully compatible with Vulkan applications. Vulkan is variant 0, making
1348    the change backwards compatible with the previous definition of
1349    pname:apiVersion. This change was introduced to enable variants of the
1350    Vulkan API that Khronos may release in the future, in particular the
1351    in-development Vulkan SC API. It is purely a future-proofing measure and
1352    no near-term further use is planned. To support this split, a set of new
1353    macros is introduced: dname:VK_API_VERSION_VARIANT,
1354    dname:VK_API_VERSION_MAJOR, dname:VK_API_VERSION_MINOR, and
1355    dname:VK_API_VERSION_PATCH (internal issue 2531).
1356  * Clarify that the slink:VkRectLayerKHR members of a
1357    slink:VkPresentRegionKHR structure must not be transformed to align with
1358    the swapchain's pname:pTransform. The presentation engine must do this
1359    transform (internal issue 2571).
1360  * Fix minor issues with exposed asciidoctor markup in spec outputs
1361    (internal issue 2576).
1362  * Tighten up wording around pool entries of mutable descriptor types. for
1363    slink:VkDescriptorPoolCreateInfo (internal issue 2578).
1364  * Expand on wording of code:FPRoundingMode valid usage statement in the
1365    <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
1366    section (internal merge request 4298).
1367  * Document interaction with `<<VK_KHR_fragment_shading_rate>>` for
1368    `<<VK_QCOM_render_pass_transform>>` (internal merge request 4221).
1369  * Require compile-time constants be explicitly tagged as unsigned or float
1370    in `vk.xml`. Modify the generator scripts and schema documentation to
1371    require `type` attributes for such constants. This allows generating
1372    headers compliant with MISRA section 10.4 requirements, where needed
1373    (internal merge request 4451).
1374  * Minor editorial fixes (internal merge request 4454).
1375  * Disallow code:*Offset* decorations on storage images
1376    in the <<spirvenv-module-validation-standalone, Standalone SPIR-V
1377    Validation>> section (internal merge request 4465).
1378  * Improve the code: macro used in spec markup to allow imbedded wildcards
1379    separating words and a trailing wildcard (internal merge request 4466).
1380  * Modify `vk.xml` `requires` attributes to reorder definitions of
1381    dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE and dname:VK_NULL_HANDLE. This
1382    prevents a corner case where the app overriding the first macro
1383    explicitly would prevent definition of dname:VK_NULL_HANDLE (internal
1384    merge request 4476).
1385
1386New Extensions:
1387
1388  * `<<VK_EXT_color_write_enable>>`
1389  * `<<VK_EXT_vertex_input_dynamic_state>>`
1390  * `<<VK_EXT_ycbcr_2plane_444_format>>`
1391  * `<<VK_NV_inherited_viewport_scissor>>`
1392  * Vulkan video core & codecs provisional extension package, including
1393  ** `<<VK_KHR_video_queue>>`
1394  ** `<<VK_KHR_video_decode_queue>>`
1395  ** `<<VK_KHR_video_encode_queue>>`
1396  ** `<<VK_EXT_video_decode_h264>>`
1397  ** `<<VK_EXT_video_decode_h265>>`
1398  ** `<<VK_EXT_video_encode_h264>>`
1399
1400-----------------------------------------------------
1401
1402Change log for March 29, 2021 Vulkan 1.2.174 spec update:
1403
1404  * Update release number to 174 for this update.
1405
1406Github Issues:
1407
1408  * Add a common header macro dname:VK_USE_64_BIT_PTR_DEFINES to specify at
1409    compile time whether non-dispatchable handles are declared using a
1410    64-bit pointer type, or a 64-bit unsigned interger type. NOTE: it is
1411    possible that the complex platform-dependent C preprocessor block will
1412    move from vk.xml into the static (non-generated) vk_platform.h header in
1413    the near future (partially addresses public issue 1431, in addition to
1414    internal needs).
1415  * Clarify code:PatchVertices documentation for tessellation shaders
1416    (public pull request 1475).
1417
1418Internal Issues:
1419
1420  * Add valid usage statements restricting bitfield operations to 32-bit
1421    types in the <<spirvenv-module-validation-standalone, Standalone SPIR-V
1422    Validation>> section (internal issue 2561).
1423  * Update registry documentation to require providing the `type` attribute
1424    of `enum` tags when they are specifying compile-time constants, and
1425    change the accepted values of the attribute to a small set of C scalar
1426    type names, instead of schema-specific names. The XML schema itself
1427    would ideally be updated to match, but we don't know how to do that yet
1428    (internal issue 2564). NOTE: it is possible this will affect downstream
1429    consumers of `vk.xml`, although we consider this unlikely.
1430  * Document in the style guide that bits reserved in corresponding 32- and
1431    64-bit bitmasks should be reserved in both types (internal merge issue
1432    2565).
1433  * Add output generator options to generate MISRA-friendly headers, and
1434    check generator scripts to avoid generating etext:RESERVED 64-bit
1435    bitflag names specified by `disabled` extensions in `vk.xml` (internal
1436    merge request 4239, internal issue 2572).
1437  * Clarify that compressed copies need to round up division in the
1438    computation `rowLength` and `imageHeight` in the sample code for the
1439    <<copies-buffers-images-addressing, Buffer and Image Addressing>>
1440    section (internal merge request 4439).
1441
1442-----------------------------------------------------
1443
1444Change log for March 21, 2021 Vulkan 1.2.173 spec update:
1445
1446  * Update release number to 173 for this update.
1447
1448Github Issues:
1449
1450  * Fix valid usage statement for flink:vkCmdBeginQueryIndexedEXT to allow
1451    multiple active queries of the same type, as long as their index values
1452    are different (public issue 1357).
1453  * Fix tagging for slink:VkPhysicalDeviceVulkan11Features in `vk.xml`
1454    (public issue 1437).
1455  * Update the <<WSI Swapchain>> chapter's use of "`release`" and
1456    "`present`" terminology (public pull request 1470).
1457  * Migrate from Azure Pipelines to Github Actions for CI, and use updated
1458    Khronos Docker image to build (public pull request 1473).
1459
1460Internal Issues:
1461
1462  * Document requirements for extension <<extensions-feature-structures,
1463    Feature Structures>> (internal issue 2503).
1464  * Add missing valid usage statements for slink:VkAttachmentReference2 and
1465    separate depth/stencil layouts (internal issue 2509).
1466  * Clarify interactions between `<<VK_EXT_buffer_device_address>>` and
1467    Vulkan 1.2 in slink:VkDeviceCreateInfo valid usage (internal issue
1468    2530).
1469  * Allow variation in number of acceleration structure handles following a
1470    top-level acceleration structures for
1471    flink:vkCmdCopyAccelerationStructureToMemoryKHR (internal issue 2538).
1472  * Specify implementation requirement for device timestamps in the
1473    description of elink:VkTimeDomainEXT (internal issue 2551).
1474  * Update valid usage ID assignment and extraction scripts to handle IDs
1475    containing function pointer names (internal issue 2557).
1476  * Move some runtime restrictions to
1477    <<spirvenv-module-validation-standalone Standalone SPIR-V>> valid usage
1478    statements (internal merge request 4286).
1479  * Use new version of the HTML asciidoctor-chunker, which runs much faster,
1480    and a new Docker image which omits the old implementation of the chunker
1481    (internal merge request 4391).
1482  * Fix <<devsandqueues-devices, logical device creation language>> for
1483    Vulkan 1.1 (internal merge request 4405).
1484  * Modify scripts to enable platform extensions to be filtered by the
1485    `"supported"` attribute in `vk.xml` (internal merge request 4411).
1486  * Add common valid usage statement for draw/dispatch commands on format
1487    support for mip filters (internal merge request 4413).
1488  * Fix valid usage statement extractor (vu-to-json) to add padding after
1489    inserted list items, so they don't absorb other markup that might come
1490    after in the document (internal merge request 4423).
1491  * Disallow shadow lookups on 3D images in the
1492    <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
1493    section. This is not supported on all hardware, and should not have been
1494    allowed (internal merge request 4424).
1495
1496New Extensions:
1497
1498  * `<<VK_FUCHSIA_external_memory>>`
1499  * `<<VK_FUCHSIA_external_semaphore>>`
1500
1501-----------------------------------------------------
1502
1503Change log for March 8, 2021 Vulkan 1.2.172 spec update:
1504
1505  * Update release number to 172 for this update.
1506
1507Internal Issues:
1508
1509  * Remove asciidoctor conditional markup for extensions from
1510    <<spirvenv-module-validation-standalone, Standalone SPIR-V valid usage
1511    statements>>, and add a note to this effect for future additions
1512    (internal issue 2512).
1513  * Update the descriptions (and related validation rules) of
1514    code:uniformAndStorageBuffer8BitAccess and
1515    code:uniformAndStorageBuffer16BitAccess to only refer to the
1516    code:Uniform storage class; and update the 16-bit storage feature
1517    validation rules to refer to 16-bit floating-point, similarly to the
1518    feature descriptions. These changes are in the
1519    <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>>
1520    <<features-requirements, Feature Requirements>> sections (internal issue
1521    2535).
1522  * Ban recursion in tlink:PFN_vkDebugUtilsMessengerCallbackEXT callbacks,
1523    for consistency of `<<VK_EXT_debug_utils_callbacks>>` with
1524    `<<VK_EXT_device_memory_report>>` and the rules for
1525    slink:VkAllocationCallbacks (internal issue 2537).
1526  * Remove dependency on `<<VK_KHR_create_renderpass2>>` from `vk.xml` for
1527    `<<VK_KHR_synchronization2>>` (internal issue 2539).
1528  * Add the transform feedback pipeline stage as valid for
1529    ename:VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT access (internal
1530    merge request 4355).
1531  * Fix typo in `<<VK_EXT_debug_utils>>` examples (internal merge request
1532    4395).
1533  * Fix typo to refer to "`buffer view`" rather than "`image view`" in the
1534    valid usage statements for code:OpImageWrite (internal merge request
1535    4398).
1536  * Fix typo in the mandatory features section related to
1537    `<<VK_KHR_ray_tracing_pipeline>>` (internal merge request 4406).
1538
1539-----------------------------------------------------
1540
1541Change log for March 1, 2021 Vulkan 1.2.171 spec update:
1542
1543  * Update release number to 171 for this update.
1544
1545Github Issues:
1546
1547  * Use `strictly increasing` rather than `monotonically increasing` in the
1548    definition of <<glossary, timeline semaphores>> (public issue 1424).
1549  * Add missing raytracing pipeline creation information from
1550    `<<VK_KHR_pipeline_executable_properties>>` to
1551    flink:vkGetPipelineExecutableStatisticsKHR and
1552    flink:vkGetPipelineExecutableInternalRepresentationsKHR valid usage
1553    statements (public issue 1433).
1554  * Add missing `SPV_EXT_shader_atomic_float` to `vk.xml` (public issue
1555    1447).
1556  * Fix ename:VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL to
1557    ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT in synchronization
1558    valid usage statement 03938 (public issue 1458).
1559  * Correct the <<interfaces-resources-setandbinding, DescriptorSet and
1560    Binding Assignment>> "`noteworthy example`" to refer to code:OpTypeImage
1561    code:Samplerd=1, not code:OpTypeSampler code:Sampled=1 (public pull
1562    request 1459).
1563  * Clarify that the value of slink:VkViewport::pname:minDepth is not
1564    restricted relative to pname:maxDepth (Vulkan-Headers public issue 180).
1565  * Add valid usage statement to <<spirvenv-module-validation-standalone,
1566    Standalone SPIR-V Validation>> specifying that push constant array
1567    members must only be accessed with dynamically uniform indices
1568    (SPIRV-Tools public issue 2909)
1569  * Add valid usage statement to <<spirvenv-module-validation-standalone,
1570    Standalone SPIR-V Validation>> specifying when the code:Flat decoration
1571    must be used (SPIRV-Tools public issue 3154)
1572
1573Internal Issues:
1574
1575  * Specifiy the maximum allowed pname:depthBias unit for
1576    flink:vkCmdSetDepthBias (internal issue 2455).
1577  * Add `"protect"` attribute to provisional extension enumerants, and emit
1578    them with that symbol for runtime conditional inclusion from
1579    `vulkan_core.h`. Update description of ename:VK_ENABLE_BETA_EXTENSIONS
1580    to match (internal issue 2481).
1581  * Add valid usage statement to slink:VkImageViewCreateInfo to ban 3D image
1582    views when the ename:VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT is
1583    set (internal issue 2501).
1584  * Add explicit language for the zero hit group intersection shader to the
1585    <<ray-intersection-confirmation, Ray Intersection Confirmation>> section
1586    (internal issue 2505).
1587  * Add a new <<raytraversal-ray-intersection-candidate-diagram, basic ray
1588    diagram>> (internal issue 2518).
1589  * Clarify that acceptable fragment shading rates are less than *or equal*
1590    to, not just less than, in the description of the
1591    <<primsrast-fragment-shading-rate-combining final combined shading
1592    rate>> (internal issue 2524)
1593  * Refer to correct barycentric coordinates for
1594    <<ray-intersection-candidate-determination, triangle intersection
1595    coordinates>> (internal issue 2525).
1596  * Add valid usage statements to drawing commands to match
1597    pname:rasterizationSamples in the pipeline state and the current
1598    attachments (internal merge request 4332).
1599  * Make use of ename:VK_WHOLE_SIZE consistent with sized flush in valid
1600    usage statement for slink:VkMappedMemoryRange (internal merge request
1601    4373).
1602  * Fix asciidoctor ifdef markup around
1603    ename:VK_MEMORY_HEAP_MULTI_INSTANCE_BIT (internal merge request 4383).
1604  * Move improperly placed valid usage statements from
1605    slink:VkImageViewCreateInfo to slink:VkImageCreateInfo (internal merge
1606    request 4390).
1607  * Add valid usage statements to <<spirvenv-module-validation-standalone,
1608    Standalone SPIR-V Validation>> for pname:minTexelGatherOffset and
1609    pname:minTexelGatherOffset.
1610  * Make <<spirvenv-module-validation-standalone, Standalone SPIR-V
1611    Validation>> valid usage statement 04681 unconditional, rather than
1612    having two versions when a relevant Vulkan extension is or is not
1613    enabled, since this is *standalone* validation.
1614
1615New Extensions
1616
1617  * `<<VK_QNX_screen_surface>>` (public pull request 1449).
1618
1619-----------------------------------------------------
1620
1621Change log for February 15, 2021 Vulkan 1.2.170 spec update:
1622
1623  * Update release number to 170 for this update.
1624
1625Internal Issues:
1626
1627  * Add missing language for zero hit groups to the <<shader-binding-table,
1628    Shader Binding Table>> section and related valid usage statements
1629    (internal issue 2505).
1630
1631New Extensions:
1632
1633  * `<<VK_KHR_synchronization2>>`
1634
1635-----------------------------------------------------
1636
1637Change log for February 2, 2021 Vulkan 1.2.169 spec update:
1638
1639  * Update release number to 169 for this update.
1640
1641Github Issues:
1642
1643  * Fix typos in language in the <<vertexpostproc-renderpass-transform,
1644    Render Pass Transform>> section (public issue 1406).
1645  * Fix case of etext:EXTENSION_NAME and etext:SPEC_VERSION enums in
1646    `vk.xml` for the `<<VK_QCOM_rotated_copy>>` extension (public issue
1647    1427).
1648  * Fix equations in the <<ray-intersection-candidate-determination, Ray
1649    Intersection Candidate Determination>> section (public issue 1427).
1650  * Modify examples in the `<<VK_EXT_debug_utils>>` appendix to use
1651    flink:vkGetInstanceProcAddr (public issue 1432).
1652  * Various typo fixes (public pull request 1434).
1653
1654Internal Issues:
1655
1656  * Add missing query types to the the introduction of the <<queries>>
1657    chapter (internal issue 2488).
1658  * Tag use of union types in `vk.xml` as `noautovalidity`, since we don't
1659    generate meaningful valid usage statements or validation layer code at
1660    present. This removes a few nonsensical, and unimplemented valid usage
1661    statements of form 'ptext:param must: be a valid stext:VkUnionType union
1662    (internal issue 2490).
1663  * Flatten inline lists in valid usage statements in the
1664    <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
1665    section so the VU extraction script can process them properly (internal
1666    issue 2502).
1667  * Move some common copy buffer / copy image valid usage statements to
1668    `copy_bufferimage_to_imagebuffer_common.txt` so they can be shared
1669    (internal merge request 4344).
1670  * Update copyright dates to 2021 (internal merge request 4345),
1671  * Fix typos in asciidoctor conditional markup in the
1672    <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
1673    section (internal issue 4349).
1674  * Fix typos in SPIR-V capability names
1675    code:WorkgroupMemoryExplicitLayout8BitAccessKHR and
1676    code:WorkgroupMemoryExplicitLayout16BitAccessKHR (internal merge request
1677    4359).
1678  * Fix typo in description of
1679    slink:VkCoarseSampleLocationNV::pname:pSampleLocations (internal merge
1680    request 4365).
1681
1682
1683-----------------------------------------------------
1684
1685Change log for January 25, 2021 Vulkan 1.2.168 spec update:
1686
1687  * Update release number to 168 for this update.
1688
1689Internal Issues:
1690
1691  * Change slink:VkAccelerationStructureNV resource classification to
1692    non-linear, and slink:VkAccelerationStructureKHR is neither linear nor
1693    non-linear. This affects the memory classification for purposes of
1694    <<resources-bufferimagegranularity,bufferImageGranularity>> (internal
1695    issue 2289).
1696  * Specify which storage classes are affected by code:scalarBlockLayout in
1697    the <<interfaces-resources-standard-layout, Standard Buffer Layout>>
1698    section (internal merge request 4280).
1699  * Flatten valid usage statements in the
1700    <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>>
1701    section so they are correctly processed by the VU extractor script
1702    (internal merge request 4285).
1703
1704New Extensions:
1705
1706  * `<<VK_KHR_workgroup_memory_explicit_layout>>`
1707  * `<<VK_KHR_zero_initialize_workgroup_memory>>`
1708
1709-----------------------------------------------------
1710
1711Change log for January 19, 2021 Vulkan 1.2.167 spec update:
1712
1713  * Update release number to 167 for this update.
1714
1715Github Issues:
1716
1717  * Clarify valid usage statements for slink:VkGraphicsPipelineCreateInfo
1718    interaction with potential format features (public issue 1392).
1719  * Use default PDF theme with a local fallback font, to provide
1720    floor/ceiling symbols (public issue 1400).
1721  * Fix valid usage statements to clarify that
1722    flink:vkCmdWriteAccelerationStructuresPropertiesNV only accepts
1723    ename:VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV (public
1724    Vulkan-ValidationLayers issue 2448).
1725  * Add missing `SPV_KHR_multiview` SPIR-V extension to `vk.xml` (public
1726    Vulkan-ValidationLayers issue 2456).
1727
1728Internal Issues:
1729
1730  * Move Acceleration Structure chapter before Ray Traversal and Ray Tracing
1731    chapters and reorganize asciidoctor source markup, including inlining
1732    ray tracing sub-chapters (internal issue 2249).
1733  * Clarify the definition of the `optional='true'` XML attribute to allow
1734    its use with scalar types, and use it consistently in the specification
1735    and XML; this removes a few uses of the attribute and simplifies some
1736    valid usage statements (internal issue 2435).
1737  * Clarify that it is not valid to create an image view using a format that
1738    requires YCbCr conversion without passing a
1739    slink:VkSamplerYcbcrConversion in valid usage for
1740    slink:VkImageViewCreateInfo (internal issue 2458).
1741  * Clarify that pipeline flags do not cause the corresponding flags to
1742    appear in code:IncomingRayFlagsKHR variables (internal issue 2470).
1743  * Require that pname:supportedAlpha is never zero in text and valid usage
1744    statements for slink:VkDisplayPlaneCapabilitiesKHR and
1745    slink:VkDisplaySurfaceCreateInfoKHR (internal issue 2471).
1746  * Clarify that Dref values are supposed to be clamped for fixed-point
1747    accesses in the <<textures-depth-compare-operation, Depth Compare
1748    Operation>> section (internal issue 2474).
1749  * Fix typo for a destination stage in an issue in the
1750    `<<VK_EXT_transform_feedback>>` extension appendix (internal issue
1751    2477).
1752  * Restrict code:OpImageQueryLod, code:OpImageQuerySizeLod, and
1753    code:OpImageQueryLevels to require a sampler (not storage image) in the
1754    <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
1755    section (internal issue 2478).
1756  * Allow
1757    flink:vkGetAccelerationStructureBuildSizesKHR::pname:pMaxPrimitiveCounts
1758    to be zero by setting the `optional` attribute in the XML (internal
1759    issue 2480).
1760  * Update description of
1761    slink:VkDeviceMemoryReportCallbackDataEXT::pname:objectType for
1762    consistency with description of other parameters (internal issue 2485).
1763  * Add a valid usage statement to slink:VkRayTracingPipelineCreateInfoKHR
1764    requiring that all linked pipelines have the same set of flags specified
1765    from the etext:VK_PIPELINE_CREATE_RAY_TRACING_* bits (internal issue
1766    2489).
1767  * Add valid usage statements to flink:vkCmdBeginQuery /
1768    flink:vkCmdBeginQueryIndexedEXT to disallow use with pools created with
1769    ename:VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR /
1770    ename:VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR types
1771    (internal issue 2493).
1772  * Fix normative language for valid usage statements in the <<spirvenv,
1773    Vulkan Environment for SPIR-V>> appendix (internal merge request 4265).
1774  * Remove a few cases where `_KHR` suffixes were left on promoted
1775    extensions in valid usage statements (internal merge request 4293)
1776  * Update and futureproof a previously hardwired reference to Vulkan 1.1 in
1777    the <<introduction-conventions, Document Conventions>> section (internal
1778    merge request 4295).
1779  * Add code:PhysicalStorageBuffer as a valid atomic storage class in the
1780    <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
1781    section (internal merge request 4296).
1782  * Clean up phrasing of valid usage statements in the
1783    <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
1784    section (internal merge request 4297).
1785  * Add shared valid usage statement for buffer copy commands requiring
1786    pname:bufferRowLength to fit in a signed 32-bit integer (internal merge
1787    request 4302).
1788  * Add dname:VK_NO_STDDEF_H to allow apps to prevent including
1789    `<stddef.h>`, and document it in the <<boilerplate, API Boilerplate>>
1790    appendix (internal merge request 4312).
1791  * Fix typo `SkipTrianglesKHR` -> `SkipAABBsKHR` in the
1792    <<ray-traversal-culling-primitive, Ray Primitive Culling>> section
1793    (internal merge request 4315).
1794
1795-----------------------------------------------------
1796
1797Change log for January 4, 2021 Vulkan 1.2.166 spec update:
1798
1799  * Update release number to 166 for this update.
1800
1801Github Issues:
1802
1803  * Add an Issue to the appendix for `<<VK_EXT_debug_report>>` discussing
1804    how to compare handles returned by the debug report callback to
1805    application handles (public issue 368).
1806  * Specify the purpose of ename:VK_LOD_CLAMP_NONE in the description of
1807    slink:VkSamplerCreateInfo::pname:maxLod (public issue 663).
1808  * Clarify in the <<extendingvulkan-extensions-extensiondependencies,
1809    Extension Dependencies>> section that extensions may depend on both
1810    other extensions, and specific core API versions. Together with previous
1811    changes to this section, this should close out the original issue
1812    (public issue 865).
1813
1814Internal Issues:
1815
1816  * Add descriptions of image queries to the <<textures, Image Operations
1817    Overview>> and <<textures-queries, Image Query Instructions>> sections
1818    (internal issues 2416 and 2423).
1819  * Allow axis swapping to be carried through clamping in the
1820    <<primsrast-fragment-shading-rate-combining, Combining the Fragment
1821    Shading Rates>> section (internal issue 2420).
1822  * Move even-size requirements for planar formats to valid usage statements
1823    for slink:VkImageCreateInfo and slink:VkImageViewCreateInfo, and tweak
1824    descriptions of <<formats-definition, the corresponding formats>>
1825    accordingly (internal issue 2434).
1826  * Remove asciidoctor conditional macros from markup for
1827    slink:VkSamplerCreateInfo valid usage statement 01079 (internal issue
1828    2440).
1829  * Clarify behavior of the <<features-alphaToOne, pname:alphaToOne>>
1830    feature by linking the enable to the corresponding <<fragops-covg,
1831    Multisample Coverage>> fragment operation language, and specifying in
1832    the introduction to the <<fragops, Fragment Operations>> chapter that
1833    "`replacing`" a fragment shader output occurs whether or not the shader
1834    actually wrote that output (internal issue 2448).
1835  * Modify XML for
1836    slink:VkPipelineViewportShadingRateImageStateCreateInfoNV::pname:viewportCount
1837    to allow pname:viewportCount == 0 (internal issue 2449).
1838  * Remove "`built as`" requirement from valid usage statement 03579 for
1839    slink:VkWriteDescriptorSetAccelerationStructureKHR (internal issue
1840    2466).
1841  * Remove incorrect valid usage statement 03655 for
1842    slink:VkAccelerationStructureGeometryTrianglesDataKHR (internal issue
1843    2467).
1844  * Add location limits for mesh shaders to the
1845    <<interfaces-iointerfaces-limits, Shader Input and Output Locations>>
1846    table (internal merge request 3428).
1847
1848-----------------------------------------------------
1849
1850Change log for December 14, 2020 Vulkan 1.2.165 spec update:
1851
1852  * Update release number to 165 for this update.
1853
1854Github Issues:
1855
1856  * Fix interaction between imageless framebuffers and
1857    slink:VkImageViewUsageCreateInfo for slink:VkRenderPassBeginInfo,
1858    elink:VkImageUsageFlagBits, and in the
1859    <<resources-image-inherited-usage>> section (public issue 1391).
1860  * Fix `vk.xml` `optional` / `noautovalidity` attributes and corresponding
1861    explicit valid usage statements for
1862    slink:VkBuildAccelerationStructureModeKHR (public issue 1405).
1863  * Remove redundant / incomplete handle comments from `vk.xml` for
1864    elink:VkObjectType enumerants (public merge request 1412).
1865
1866Internal Issues:
1867
1868  * Create valid usage statements from constraints in the
1869    <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
1870    section (internal issue 2394).
1871  * Fix valid usage staement 01256 for slink:VkDisplaySurfaceCreateInfoKHR
1872    (internal issue 2404).
1873  * Expand and clarify the event race condition warning for
1874    flink:vkCmdWaitEvents to include two additional scenarios in which the
1875    effect and/or state of an event becomes undefined without additional
1876    synchronization operations (internal issue 2411).
1877  * Update valid usage statement for flink:vkSetLocalDimmingAMD (internal
1878    issue 2446).
1879  * Recast slink:VkStridedDeviceAddressRegionKHR valid usage statements in
1880    terms of size being non-zero, instead of pname:deviceAddress (internal
1881    issue 2450).
1882  * Add missing ename:VK_SHARING_MODE_CONCURRENT valid usage statement for
1883    flink:vkQueueSubmit (internal merge request 4244).
1884  * Add limits related to local size to the
1885    <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>>
1886    section (internal merge request 4255).
1887  * Fix typo in description of
1888    slink:VkDescriptorUpdateTemplateEntry::pname:dstArrayElement (internal
1889    merge request 4260).
1890  * Remove repeated "`all`" from slink:VkGraphicsPipelineCreateInfo valid
1891    usage statements (internal merge request 4266).
1892  * Fix internal xrefs to the SPIR-V capabilities tables, which broke as a
1893    side effect of generating the table instead of handcoding it (internal
1894    merge request 4270).
1895  * Fix normative language for code:WorkgroupSize (internal merge request
1896    4272).
1897  * Restore `len` attribute to `vk.xml` after its recent accidental removal
1898    from slink:VkDescriptorSetAllocateInfo::pname:pSetLayouts (internal
1899    merge request 4275).
1900  * Remove trailing periods from SPIR-V valid usage statements (internal
1901    merge request 4284).
1902  * Base PDF theme on builtin fallback theme, simplifying it and adding
1903    support for some math characters not found in the default theme
1904    (internal merge request 4287).
1905
1906-----------------------------------------------------
1907
1908Change log for December 7, 2020 Vulkan 1.2.164 spec update:
1909
1910  * Update release number to 164 for this update.
1911
1912Github Issues:
1913
1914  * Reserve vendor ID for PoCL (public pull request 1411).
1915
1916Internal Issues:
1917
1918  * Add valid usage statements to ray tracing commands requiring they be
1919    given a ray tracing pipeline, and removing support for
1920    ename:ACCELERATION_STRUCTURE_TYPE_GENERIC in
1921    flink:vkCmdBuildAccelerationStructureNV (internal issue 2271).
1922  * Add valid usage statements disallowing the use of protected command
1923    buffers with Ray Tracing Pipelines and Ray Query instructions (internal
1924    issue 2409).
1925  * Move the un-numbered glossary / abbreviations / prefixes pseudo-chapters
1926    into a single appendix, so the table of contents looks cleaner (internal
1927    issue 2437).
1928  * Remove redundant valid usage statement from
1929    slink:VkCommandBufferAllocateInfo (internal merge request 4229).
1930  * Add missing <<features-inlineUniformBlock>> valid usage statement to
1931    slink:VkDescriptorSetLayoutBinding (internal merge request 4246).
1932  * Tweak example of Docker image invocation in `BUILD.adoc` (internal merge
1933    request 4249).
1934  * Capitalize code:LaunchIdKHR the same as in SPIR-V. code:LaunchSizeKHR
1935    and code:LaunchIdKHR are accessible in the code:CallableKHR shader stage
1936    (internal merge request 4252).
1937  * Remove unreachable (redundant) valid usage statements from
1938    flink:vkCmdBeginRenderPass and flink:vkCmdBeginRenderPass2 (internal
1939    merge request 4254).
1940  * Add missing `objtypeenum` attribute to `vk.xml` for slink:VkInstance
1941    (internal merge request 4263).
1942  * Change the chunked HTML target to use a more robust method of inserting
1943    additional Javascript and HTML to support the searchbox.
1944
1945New Extensions:
1946
1947  * `<<VK_NV_acquire_winrt_display>>`
1948  * `<<VK_VALVE_mutable_descriptor_type>>`
1949
1950-----------------------------------------------------
1951
1952Change log for November 30, 2020 Vulkan 1.2.163 spec update:
1953
1954  * Update release number to 163 for this update.
1955
1956Github Issues:
1957
1958  * Add XML mapping between VK_OBJECT_TYPE_* names and object type names
1959    (public issue 1379).
1960  * Remove *_READ_BIT from .srcAccessMask in code samples (public issue
1961    1389).
1962  * Fix example code for slink:VkPushConstantRange to take
1963    elink:VkShaderStageFlags, not elink:VkPipelineStageFlags (public pull
1964    request 1393).
1965  * Add missing :refpage: attribute to slink:VkBlitImageInfo2KHR (public
1966    issue 1407).
1967  * Remove extraneous newline from texel block size table (public issue
1968    1409).
1969
1970Internal Issues:
1971
1972  * Update style guide to require `optional="true"` be set on pname:pNext
1973    structure members (internal issue 2428).
1974  * Sort conditionals in ifdef:: output of spirvcapgenerator for stability
1975    (internal issue 2430).
1976  * Fix slink:VkGraphicsPipelineShaderGroupsCreateInfoNV VU 02886
1977    (internal merge request 4225).
1978
1979
1980-----------------------------------------------------
1981
1982Change log for November 23, 2020 Vulkan 1.2.162 spec update:
1983
1984  * Update release number to 162 for this update.
1985
1986Github Issues:
1987
1988  * Mark pname:pNext pointers as `optional="true"` in `vk.xml` (public pull
1989    request 1396).
1990  * Make a formerly implicit slink:VkSubpassDescriptionDepthStencilResolve
1991    valid usage statement explicit (public Vulkan-ValidationLayers issue
1992    2311).
1993
1994Internal Issues:
1995
1996  * Clarify lifetime of push constants in the flink:vkCmdPushConstants
1997    description (internal issue 2168).
1998  * Clarify that flink:vkGetDeviceProcAddr is not intended to return
1999    physical device-level commands (internal issue 2344).
2000  * Tweak CI test for SPEC_VERSION to always succeed when the branch name
2001    exists, but the extension is disabled (internal merge request 4219).
2002
2003New Extensions:
2004
2005  * Add final (non-provisional) versions of the Vulkan Ray Tracing
2006    extensions (internal merge request 4143):
2007  ** `<<VK_KHR_acceleration_structure>>`
2008  ** `<<VK_KHR_ray_tracing_pipeline>>`
2009  ** `<<VK_KHR_ray_query>>`
2010  ** `<<VK_KHR_pipeline_library>>`
2011  ** `<<VK_KHR_deferred_host_operations>>`
2012
2013-----------------------------------------------------
2014
2015Change log for November 16, 2020 Vulkan 1.2.161 spec update:
2016
2017  * Update release number to 161 for this update.
2018
2019Github Issues:
2020
2021  * Add some missing types to the table of handle type <->
2022    etext:VK_OBJECT_TYPE_* enums in the debugging chapter (in response to a
2023    comment on public issue 1379).
2024
2025Internal Issues:
2026
2027  * Move copyright statement into its own "`Preamble`" chapter to simplify
2028    preprocessing for chunked HTML target and make PDF / single-page HTML
2029    consistent with the chunked output (internal issue 2384).
2030  * Clarify that slink:VkExternalMemoryBufferCreateInfo::pname:handleTypes
2031    and slink:VkExternalMemoryImageCreateInfo::pname:handleTypes can be
2032    zero, and fix missing `optional` attribute in `vk.xml` for the latter
2033    case (internal issue 2388).
2034  * Make `specialuse` attributes in source markup expand properly in
2035    extension refpages (internal issue 2412).
2036  * Remove as yet unused slink:VkSemaphoreCreateFlagBits type from `vk.xml`
2037    (internal issue 2413).
2038  * Remove unreachable valid usage statements for
2039    slink:VkRenderPassMultiviewCreateInfo::pname:pViewMask in the
2040    slink:VkRenderPassCreateInfo pname:pNext chain, and for
2041    slink:VkRenderPassCreateInfo2::pname:viewMask. These statements cannot
2042    ever be violated given that view masks cannot exceed index 31 and
2043    pname:maxFramebufferLayers exceeds this value (internal merge request
2044    4204).
2045  * Only allow forward pointers for physical storage buffers in the
2046    <<spirvenv-module-validation>> section (internal merge request 4206).
2047  * Fix a variety of minor valid usage statement issues with the
2048    `<<VK_KHR_fragment_shading_rate>>` extension (internal merge request
2049    4207).
2050
2051-----------------------------------------------------
2052
2053Change log for November 9, 2020 Vulkan 1.2.160 spec update:
2054
2055  * Update release number to 160 for this update.
2056
2057Github Issues:
2058
2059  * Remove redundant input attachment valid usage statements from
2060    slink:VkAttachmentReference2 (public issue 1378).
2061
2062Internal Issues:
2063
2064  * Restore "`Preamble`" section containing the copyright statement to the
2065    proper place in the chunked specification index (internal issue 2384).
2066  * Add missing valid usage statements for
2067    flink:vkCmdDrawIndirectByteCountEXT (internal issue 2400).
2068  * Move vertex input example from the <<fxvertex>> chapter to the Vulkan
2069    Guide (internal merge request 4162).
2070  * Clarify update-after-bind limits for dynamic buffers in the
2071    <<limits-maxDescriptorSetUpdateAfterBindUniformBuffersDynamic>> and
2072    <<limits-maxDescriptorSetUpdateAfterBindStorageBuffersDynamic>> sections
2073    (internal merge request 4186).
2074  * Clarify slink:VkFramebufferCreateInfo to allow read-only use of depth
2075    images as attachments and non-attachments (internal merge request 4191).
2076  * Remove redundant valid usage statement from slink:VkWriteDescriptorSet
2077    (internal merge request 4196).
2078  * Remove redundant valid usage statement from flink:vkFreeDescriptorSets
2079    (internal merge request 4198).
2080  * Fix typo in slink:VkDisplaySurfaceCreateInfoKHR valid usage statement
2081    (internal merge request 4199).
2082  * Remove redundant pname:firstViewport / pname:firstScissor limit checks
2083    in valid usage statements for flink:vkCmdSetViewportWScalingNV,
2084    flink:vkCmdSetScissor, flink:vkCmdSetExclusiveScissorNV,
2085    flink:vkCmdSetViewportShadingRatePaletteNV, and flink:vkCmdSetViewport
2086    (internal merge request 4200).
2087
2088New Extensions:
2089
2090  * `<<VK_NV_fragment_shading_rate_enums>>`
2091
2092-----------------------------------------------------
2093
2094Change log for November 1, 2020 Vulkan 1.2.159 spec update:
2095
2096  * Update release number to 159 for this update.
2097
2098Github Issues:
2099
2100  * Clarify handle uniqueness with private data in the
2101    <<fundamentals-objectmodel-overview, Object Model>> section (public
2102    issue 1349).
2103  * Make ename:VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR
2104    an alias of
2105    ename:VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR
2106    and ename:VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR
2107    an alias of
2108    ename:VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,
2109    for backwards compatibility while complying with naming conventions
2110    (public issue 1367).
2111  * Make ename:VK_SURFACE_COUNTER_VBLANK_EXT an alias of
2112    ename:VK_SURFACE_COUNTER_VBLANK_BIT_EXT for backwards compatibility
2113    while complying with naming conventions (public issue 1368).
2114  * Add a note to the <<memory-model-synchronizes-with, Synchronizes-With>>
2115    section that fragment shader interlock instructions don't perform
2116    implicit availability or visibility operations (public issue 1383).
2117
2118Internal Issues:
2119
2120  * Dynamically generate SPIR-V <<spirvenv-capabilities-table,
2121    Capabilities>> and <<spirvenv-extensions-table, Extensions>> tables from
2122    new tags in `vk.xml`, exposing this information for other projects
2123    downstream (internal issue 2156).
2124  * Clarify when a <<renderpass-feedbackloop, feedback loop>> creates a data
2125    race (internal issue 2296).
2126  * Remove un-needed `noautovalidity` attributes on pname:pNext structure
2127    members, including a few cases where they were actually suppressing
2128    appropriate autogenerated validity statements (internal issue 2335;
2129    similar purpose to closed public PR 1339).
2130  * Clarify treatment of most-negative signed normalized fixed-point values
2131    in the <<fundamentals-fixedfpconv, Conversion from Normalized
2132    Fixed-Point to Floating-Point>> section (internal issue 2367).
2133  * Clarify that enabling an extension cannot change existing implementation
2134    behavior in the introduction to the <<extendingvulkan-extensions,
2135    Extensions>> chapter (internal issue 2375).
2136  * Add missing valid usage statement to flink:vkCreatePrivateDataSlotEXT
2137    (internal issue 2379).
2138  * Fix a misplaced asciidoctor `endif::` for flink:vkCreateSwapchainKHR
2139    (internal merge request 4177).
2140  * Add missing pname:aspectMask valid usage statement to
2141    slink:VkSubpassDescription2, matching
2142    slink:VkInputAttachmentAspectReference (internal merge request 4177).
2143  * Clarify <<interfaces, SPIR-V rules on decorations>> (internal
2144    spirv/SPIR-V issue 444).
2145  * Add missing `<<VK_VERSION_1_2>>` to all
2146    `<<VK_EXT_separate_stencil_usage>>` conditional markup (internal
2147    vulkansc/vulkansc issue 58).
2148
2149New Extensions:
2150
2151  * `<<VK_QCOM_rotated_copy_commands>>` (internal merge request 4132).
2152
2153-----------------------------------------------------
2154
2155Change log for October 19, 2020 Vulkan 1.2.158 spec update:
2156
2157  * Update release number to 158 for this update.
2158
2159Internal Issues:
2160
2161  * Clarify that  linear filtering can be used with comparison sampling
2162    in valid usage statements for dispatched draw commands
2163    (internal issue 2365).
2164  * Add valid usage statement for flink:vkGetQueryPoolResults requiring
2165    pname:stride to be large enough for a single performance query result
2166    (internal issue 2380).
2167  * Move input attachment imageLayout to valid usage reference section,
2168    and refer to the <<attachment-type-imagelayout>> section
2169    to reduce complexity of valid usage statement
2170    (internal merge request 4117).
2171  * Update issues list for `<<VK_QCOM_render_pass_transform>>`
2172    (internal merge request 4175).
2173  * Add valid usage statement for
2174    slink:VkPipelineColorBlendStateCreateInfo::pname:attachmentCount (public
2175    Vulkan-ValidationLayers issue 2197).
2176
2177New Extensions:
2178
2179  * `<<VK_KHR_fragment_shading_rate>>`
2180  * `<<VK_KHR_shader_terminate_invocation>>`
2181
2182-----------------------------------------------------
2183
2184Change log for October 12, 2020 Vulkan 1.2.157 spec update:
2185
2186  * Update release number to 157 for this update.
2187
2188Github Issues:
2189
2190  * Fix `<<VK_KHR_shader_draw_parameters>>` missing as a feature alias
2191    (based on public pull request 1310).
2192  * Remove unnecessary sentence about device extensions implemented by
2193    layers in the flink:vkCreateDevice description (based on public pull
2194    request 1350).
2195  * Fix parenthesis in equation in the
2196    <<textures-texel-anisotropic-filtering, Texel Anisotropic Filtering>>
2197    section (public merge request 1365).
2198  * Add missing types to `vk.xml` for `<<VK_EXT_device_memory_report>>`
2199    (public issue 1374).
2200  * Add slink:VkBufferImageCopy valid usage statement for
2201    ename:VK_IMAGE_ASPECT_DEPTH_BIT and ename:VK_IMAGE_ASPECT_STENCIL_BIT
2202    pname:aspectMask values (public Vulkan-ValidationLayers issue 2113).
2203
2204Internal Issues:
2205
2206  * Remove unused etext:VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT
2207    token
2208    (internal issue 2275).
2209  * Clarify the specific stage requirement for synchronization
2210    between flink:vkCmdResetEvent and flink:vkCmdWaitEvents
2211    (internal merge request 4152).
2212
2213-----------------------------------------------------
2214
2215Change log for October 5, 2020 Vulkan 1.2.156 spec update:
2216
2217  * Update release number to 156 for this update.
2218
2219Github Issues:
2220
2221  * Define memory import/export using the glossary term _payload_, rather
2222    than "`the same underlying memory`", for slink:VkFence,
2223    <<synchronization-semaphores-payloads, the semaphore payload section>>,
2224    and many places in the <<memory, Memory Allocation>> chapter (public
2225    issue 1145).
2226
2227New Extensions:
2228
2229  * `<<VK_EXT_device_memory_report>>`
2230
2231-----------------------------------------------------
2232
2233Change log for September 28, 2020 Vulkan 1.2.155 spec update:
2234
2235  * Update release number to 155 for this update.
2236
2237New Extensions:
2238
2239  * `<<VK_EXT_shader_image_atomic_int64>>`
2240
2241-----------------------------------------------------
2242
2243Change log for September 7, 2020 Vulkan 1.2.153 spec update:
2244
2245  * Update release number to 153 for this update.
2246
2247Github Issues:
2248
2249  * Specification default branch for updates and PRs is now `main` instead
2250    of `master`. `master` branch still exists, but is frozen at the 1.2.152
2251    level. If you are pulling content from this repository, please switch
2252    from `master` to `main` branch (internal issue 1351).
2253  * Fix slink:VkSubpassDependency2 link from slink:VkRenderPassCreateInfo2
2254    (public issue 1358).
2255
2256Internal Issues:
2257
2258  * Add developer documentation to the appendices for
2259    `<<VK_EXT_memory_budget>>`, `<<VK_KHR_buffer_device_address>>`,
2260    `<<VK_KHR_depth_stencil_resolve>>`, `<<VK_KHR_draw_indirect_count>>`,
2261    `<<VK_KHR_multiview>>`, `<<VK_KHR_sampler_ycbcr_conversion>>` (internal
2262    issue 2109).
2263  * Implement VUID expander treeprocessor plugin to make VUID text visible
2264    and searchable in generated outputs (internal issue 2253, 2258).
2265  * Clarify when acceleration structures can be indexed dynamically in the
2266    <<interfaces-resources-descset, Descriptor Set Interface>> section
2267    (internal issue 2316).
2268  * Add missing valid usage statement for flink:vkImportFenceWin32HandleKHR
2269    (internal merge request 4087).
2270  * Replace badly formatted VUID for `<<VK_AMD_display_native_hdr>>`
2271    (internal merge request 4096).
2272  * Add ray tracing acceleration structures to the lists of objects where
2273    appropriate in the <<fundamentals-objectmodel-lifetime, Object
2274    Lifetime>> section (internal merge request 4100).
2275  * Move GLSL and SPIR-V extension references in the extension appendices
2276    into the "`Interactions and External Dependencies`" sections (internal
2277    merge request 3969).
2278
2279-----------------------------------------------------
2280
2281Change log for August 26, 2020 Vulkan 1.2.152 spec update:
2282
2283  * Update release number to 152 for this update.
2284
2285Github Issues:
2286
2287  * Add attachment image layout valid usage statements for
2288    slink:VkSubpassDescription and slink:VkSubpassDescription2 (public issue
2289    1316).
2290  * Clarify and generalize use of "`graphics commands`" in the
2291    <<descriptorsets>> and <<pipelines>> chapters (public issue 1322).
2292  * Fix description of handle returned in slink:VkDeviceQueueInfo2 (public
2293    pull request 1347).
2294
2295Internal Issues:
2296
2297  * Promote valid usage statements requiring multiple parameters of a copy
2298    command from the structure parameter descriptions to the command itself,
2299    significantly restructuring some of the common validity files (internal
2300    issue 2034).
2301  * Add details of clamping and quantization behavior for border colors that
2302    are outside the normal range for slink:VkSamplerCreateInfo and in the
2303    <<textures-operation-validation, Instruction/Sampler/Image View
2304    Validation>> and <<textures-texel-replacement, Texel Replacement>>
2305    sections (internal issue 2281).
2306  * Clarify in the <<spirvenv-module-validation-standalone, Standalone
2307    SPIR-V Validation>> section that the value of code:XfbBuffer cannot
2308    differ for members of the same block (internal issue 2307).
2309  * Add valid usage blocks to the <<interfaces>> chapter where discussing
2310    allowed uses of built-in SPIR-V variables (internal merge requests 3933,
2311    4090).
2312  * Refactor <<spirvenv-module-validation-standalone, Standalone SPIR-V
2313    Validation>> constraints to single statement phrases not using ifdef::ed
2314    asciidoctor markup, and move some of them down to the
2315    <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>>
2316    section (internal merge request 4054).
2317  * Fix XML attributes for some `<<VK_INTEL_performance_query>>` interfaces
2318    (internal merge request 4061).
2319  * Fix the "`Differences relative to `VK_KHR_shader_float16_int8``"
2320    paragraph in the <<versions-1.2, Version 1.2>> appendix (internal merge
2321    request 4062).
2322  * Fix several valid usage statements for
2323    flink:vkCmdBindTransformFeedbackBuffersEXT (public
2324    KhronosGroup/Vulkan-ValidationLayers issue 2105).
2325  * Clarify `shader_read_only` layout restrictions for
2326    slink:VkWriteDescriptorSet and elink:VkImageLayout (internal merge
2327    request 4060).
2328  * Clarify wording for required 4444 and {YCbCr} formats in the
2329    <<formats-mandatory-features-subbyte, Mandatory format support: sub-byte
2330    channels>> and <<formats-requiring-sampler-ycbcr-conversion, Formats
2331    requiring sampler {YCbCr} conversion for ename:VK_IMAGE_ASPECT_COLOR_BIT
2332    image views>> tables (internal merge request 4066).
2333  * Move a feature valid usage statement from flink:vkCmdDrawIndexedIndirect
2334    to its proper home in flink:vkCmdDrawIndexedIndirectCount, matching what
2335    the validation layer already does (internal merge request 4070).
2336  * Split valid usage statement for slink:VkWriteDescriptorSet into one
2337    statement for each descriptor type for image layout requirements
2338    (internal merge request 4071).
2339  * Add the a <<valid-imageview-imageusage>> definition to capture which
2340    elink:VkImageUsageFlagBits must be set when creating a
2341    sname:VkImageView, and use that definition to simplify
2342    slink:VkImageViewCreateInfo valid usage statements (internal merge
2343    request 4073).
2344  * Remove redundant valid usage statement 03269 for slink:VkPresentInfoKHR
2345    (internal merge request 4084).
2346  * Move valid usage statement from slink:VkProtectedSubmitInfo to
2347    slink:VkSubmitInfo (internal merge request 4085).
2348  * Update reference to pname:framebufferIntegerColorSampleCounts from the
2349    description of the <<limits-framebufferColorSampleCounts>> feature if
2350    Vulkan 1.2 is supported (internal merge request 4088).
2351
2352-----------------------------------------------------
2353
2354Change log for August 17, 2020 Vulkan 1.2.151 spec update:
2355
2356  * Update release number to 151 for this update.
2357
2358Github Issues:
2359
2360  * Clarify that the <<memory-protected-memory,Protected Memory>> is not
2361    cross-physical device (public issue 1335).
2362
2363Internal Issues:
2364
2365  * Improve the layout of the <<Standard sample locations>> table to avoid
2366    overflow in the HTML output (internal issue 1354).
2367  * Also build core-only HTML spec in internal CI, to try and catch
2368    extension ifdef errors (should probably also do this in Azure CI on
2369    github) (internal issue 1770).
2370  * Add internal CI test for un-tagged uses of "`undefined`", to help make
2371    sure we've carefully considered all such uses (internal issue 2270).
2372  * Add style guide section "`Commands which Return Error Codes`" to give
2373    guidance on assigning error codes and when to use
2374    ename:VK_ERROR_OUT_OF_HOST_MEMORY (internal issue 2290).
2375  * Use the term "`reference monitor`" instead of "`mastering display`" for
2376    the `<<VK_EXT_hdr_metadata>>` extension (internal issue 2291).
2377  * Explicitly state that SPIR-V modules must be valid after specialization
2378    in slink:VkPipelineShaderStageCreateInfo and the
2379    <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>>
2380    section (internal issue 2302).
2381  * Add slink:VkShaderModuleCreateInfo valid usage statements to match the
2382    SPIR-V capabilities (internal merge request 4047).
2383  * Add missing features to the <<[spirvenv-module-validation-runtime,
2384    Runtime SPIR-V Validation>> section (internal merge request 4048).
2385  * Update slink:VkPhysicalDeviceVulkan11Properties to follow the same
2386    renaming of "`subgroups`" to "`groups`" previously done for
2387    slink:VkPhysicalDeviceSubgroupProperties (internal merge request 4050).
2388
2389-----------------------------------------------------
2390
2391Change log for August 10, 2020 Vulkan 1.2.150 spec update:
2392
2393  * Update release number to 150 for this update.
2394
2395Github Issues:
2396
2397  * Remove ename:VK_ERROR_TOO_MANY_OBJECTS as a required error code for
2398    flink:vkAllocateMemory and and flink:vkCreateSampler, and note that
2399    while it may still occur as a historical artifact, exceeding
2400    implementation limits will result in undefined behavior (public issue
2401    1295).
2402  * Allow duplicate slink:VkDebugUtilsMessengerCreateInfoEXT structs in
2403    pname:pNext chain (public issue 1329)
2404  * Fix typo in slink:VkSubmitInfo valid usage statement 04120 (public merge
2405    request 1336).
2406  * Remove `KHR` suffix from some names promoted to core, in the
2407    <<renderpass, Render Pass>> chapter (public merge request 1341).
2408
2409Internal Issues:
2410
2411  * Add ename:VK_ERROR_OUT_OF_HOST_MEMORY to `vk.xml` as a possible error
2412    code for some additional commands returing elink:VkResult, and add a
2413    note to the description of elink:VkResult giving some guidance on which
2414    commands may and may not return that error code (internal issue 2063).
2415  * Make a handful of terminology changes which move this repository closer
2416    to the conventions of the AOSP
2417    https://source.android.com/setup/contribute/respectful-code[Coding with
2418    Respect] document (internal issue 2282).
2419  * Update `<<VK_MVK_ios_surface>>` and `<<VK_MVK_macos_surface>>`
2420    documentation and mark them as deprecated and replaced by
2421    `<<VK_EXT_metal_surface>>` (internal merge request 4024).
2422  * Add a section to the style guide on markup for the copyright and license
2423    block on files in the repository (internal merge request 4036).
2424  * Add ename:VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT to
2425    `<<VK_EXT_validation_features>>` to enable synchronization validation
2426    (internal merge request 4037).
2427
2428-----------------------------------------------------
2429
2430Change log for August 3, 2020 Vulkan 1.2.149 spec update:
2431
2432  * Update release number to 149 for this update.
2433
2434Github Issues:
2435
2436  * Fix valid usage statements to clarify interactions between
2437    `<<VK_EXT_extended_dynamic_state>>` and the old viewport related
2438    extensions `<<VK_NV_clip_space_w_scaling>>`,
2439    `<<VK_NV_shading_rate_image>>` (for the palettes),
2440    `<<VK_NV_viewport_swizzle>>`, and `<<VK_NV_scissor_exclusive>>` (public
2441    issue 1296).
2442
2443Internal Issues:
2444
2445  * Clarify wording around non-uniform and non-constant descriptor access in
2446    <<interfaces-resources-descset, Descriptor Set Interface>> (internal
2447    issue 2163).
2448  * Add a missing code:StorageBuffer reference in the <<interface-resources,
2449    Shader Resource Interface>> section (internal issue 2191).
2450  * Refactor common valid usage statements for flink:vkBindBufferMemory,
2451    slink:VkBindBufferMemoryInfo, flink:vkBindImageMemory, and
2452    slink:VkBindImageMemoryInfo (internal issue 2260).
2453  * Copy over import/export behavior for sync file descriptor value `-1`
2454    from slink:VkImportFenceFdInfoKHR to slink:VkImportSemaphoreFdInfoKHR
2455    (internal issue 2274).
2456  * State that a deriviative group is a quad scope instance in the
2457    <<shaders-derivative-operations, Derivative Operations>> section
2458    (internal merge request 4025)
2459
2460New Extensions:
2461
2462  * `<<VK_EXT_4444_formats>>`
2463
2464-----------------------------------------------------
2465
2466Change log for July 19, 2020 Vulkan 1.2.148 spec update:
2467
2468  * Update release number to 148 for this update.
2469
2470Github Issues:
2471
2472  * Move description of slink:VkPhysicalDevicePerformanceQueryFeaturesKHR to
2473    the <<features>> chapter (public merge request 1312).
2474  * Fix a few broken internal and external links, and add stub description
2475    of empty elink:VkPipelineCompilerControlFlagsAMD type (public merge
2476    request 1313).
2477
2478Internal Issues:
2479
2480  * Fix a few new places where "`undefined`" was used imprecisely, by
2481    clarifying the difference between undefined results and undefined
2482    behavior (internal issue 543).
2483  * Add valid usage statement to common indirect draw valid usage statements
2484    requiring that the pname:countBufferOffset to the count being used lie
2485    within the pname:countBuffer (internal issue 1309).
2486  * Add <<interfaces-raypipeline, Ray Tracing Pipeline Interface>> section
2487    (internal issues 2094, 2237).
2488  * Add valid usage statement to flink:vkCmdBeginTransformFeedbackEXT to
2489    require that the last vertex processing stage of the bound graphics
2490    pipeline be declared with the code:Xfb execution mode (internal issue
2491    2124).
2492  * Do not allow flink:vkWaitForFences or flink:kWaitSemaphores to return
2493    timeouts before the period has expired, even though this is valid in
2494    some other synchronisation APIs (internal issue 2146).
2495  * Add elink:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT as an alias
2496    of elink:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT for clarity
2497    when interacting with D3D11 fences (internal issue 2175).
2498  * Ignore slink:VkMemoryAllocateInfo::pname:allocationSize when importing
2499    D3D resources (internal issue 2176).
2500  * Clarify the definition of flink:vkCmdBindVertexBuffers2EXT::pname:pSizes
2501    (internal issue 2262).
2502  * Fix markup error in slink:VkDescriptorSetLayoutBindingFlagsCreateInfo
2503    (internal merge request 3998).
2504  * Remove un-needed dependency of `<<VK_EXT_filter_cubic>>` on
2505    `<<VK_IMG_filter_cubic>>` (internal merge request 4000).
2506  * Minor textual clarifications in ray tracing extensions (internal merge
2507    request 4017).
2508  * Modify the validity generator so that, when generating valid usage for
2509    array lengths with a chain of parameters (e.g. pname:pFoo->bar), don'
2510    non-zero values are not required if any parameter in the chain is
2511    optional, and consider the last parameter only when deciding the type of
2512    the parameter (internal merge request 4021).
2513  * Fix a typo in the `<<VK_EXT_fragment_density_map2>>` extension appendix
2514    markup that caused refpage build warnings, and modify CI and
2515    `BUILD.adoc` to use `makeSpec` instead of the old `makeAllExts` script
2516    (internal merge request 4023).
2517
2518New Extensions:
2519
2520  * `<<VK_EXT_image_robustness>>`
2521  * `<<VK_EXT_shader_atomic_float>>`
2522
2523-----------------------------------------------------
2524
2525Change log for July 13, 2020 Vulkan 1.2.147 spec update:
2526
2527  * Update release number to 147 for this update.
2528
2529Github Issues:
2530
2531  * Allow physical-device-level structures in pname:pNext chains (public
2532    merge request 1303).
2533  * Remove elink:VkRenderPassCreateFlags from dependencies of
2534    `<<VK_QCOM_render_pass_transform>>` (public merge request 1311)
2535
2536Internal Issues:
2537
2538  * Require that variables with code:HitAttributeKHR storage class must:
2539    <<spirvenv-module-validation-standalone, only be written in intersection
2540    shaders>> (internal issue 2103).
2541  * Specify that acceleration structure scratch buffer accesses from
2542    acceleration structure build should be synchronized with the
2543    ename:VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR pipeline
2544    stage and an access mask of
2545    ename:VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR or
2546    ename:VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR (internal issue
2547    2173).
2548  * Improve description of 3D blitting in flink:vkCmdBlitImage (internal
2549    issue 2212).
2550  * Split <<fragops-coverage-reduction, Coverage Reduction>> section into
2551    multiple steps when multi-pixel fragments are involved: first per-pixel
2552    coverage is separated out, then per-sample coverage is generated for
2553    each color sample from per-pixel coverage. dditionally, the definition
2554    of "`color sample mask`" and discussions of it have been removed in
2555    favour of the per-color-sample coverage. (internal merge request 3951).
2556  * Modify slink:VkSamplerYcbcrConversionCreateInfo valid usage statements,
2557    as well as the <<textures-chroma-reconstruction, Chroma Reconstruction>>
2558    section, to make it clear the values of pname:xChromaOffset and
2559    pname:yChromaOffset are only validated when chroma channels are
2560    downsampled (internal merge request 3959).
2561  * Allow flink:vkGetBufferMemoryRequrements and
2562    flink:vkGetBufferMemoryRequrements2 to be called for an Android Hardware
2563    Buffer backed slink:VkBuffer, before it is been bound to memory
2564    (internal merge request 3982).
2565  * Remove *Draft* status from `<<VK_EXT_private_data>>` (internal merge
2566    request 3982).
2567  * Move valid usage statement from slink:VkProtectedSubmitInfo to
2568    slink:VkSubmitInfo (internal merge request 3987).
2569  * Add valid usage statements for protected buffers to
2570    slink:VkBindBufferMemoryInfo and slink:VkBindImageMemoryInfo
2571    (internal merge request 3988).
2572  * Add valid usage statement to slink:VkImageCreateInfo requiring that
2573    images with linear tiling cannot have sparse residency (internal merge
2574    request 3988).
2575  * Clarify that the ptext:maxPerStageDesciptorUpdateAfterBind*
2576    <<limits-required, Required Limits>> must be at least the corresponding
2577    non- ptext:UpdateAfterBind limits (internal merge request 3992).
2578
2579-----------------------------------------------------
2580
2581Change log for July 3, 2020 Vulkan 1.2.146 spec update:
2582
2583  * Update release number to 146 for this update.
2584
2585Github Issues:
2586
2587  * Fix valid usage generation script for optional bitmasks in a
2588    non-optional array (public pull request 1228).
2589  * Add lunr to `package.json` and update the locally cached copy (public
2590    pull request 1238).
2591  * Require that newly released extensions have etext:*_SPEC_VERSION `1`
2592    (public issue 1263).
2593  * Add to the NOTE in slink:VkPhysicalDeviceIDProperties, advising
2594    implementations on returning unique pname:deviceUUID values and avoiding
2595    hardwired values, especially 0 (public issue 1273).
2596  * Add noscript fallback for HTML output (public pull request 1289).
2597  * Fix duplicated VUIDs in flink:vkCmdExecuteGeneratedCommandsNV (public
2598    pull request 1304).
2599  * Fix link markup in <<ray-traversal, Ray Traversal>> chapter, nested link
2600    markup, and linear equation markup in
2601    <<textures-unnormalized-to-integer>> (public pull requests 1305, 1306,
2602    1307).
2603
2604Internal Issues:
2605
2606  * Add comments to extending enums in the generated API interfaces showing
2607    which core version and/or extensions provide the enum, matching recent
2608    changes to show this information for commands and structures (internal
2609    issue 1431).
2610  * Only allow code:Invocation memory scope in the
2611    <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
2612    section when memory semantics is *None* (internal issue 1782).
2613  * Make reflow script handle literal block delimiters and lines containing
2614    only whitespace properly (internal issues 2039, 2042).
2615  * Clarify definition of <<limits-maxFragmentCombinedOutputResources,
2616    pname:maxFragmentCombinedOutputResources>> (internal issue 2236).
2617  * Add missing `errorcodes=` XML attributes for some
2618    `<<VK_EXT_display_control>>` commands.
2619  * Clarify <<features-extentperimagetype, allowed extent values based on
2620    image type>> and the related <<limits-maxImageDimension1D>>,
2621    <<limits-maxImageDimension2D>>, <<limits-maxImageDimension3D>>,
2622    <<limits-maxImageDimensionCube>> limits (internal merge request 3922).
2623  * Remove redundant valid usage statement
2624    VUID-VkFramebufferCreateInfo-flags-03188 (internal merge request 3934).
2625  * Update style guide to recommend new extension spec language be contained
2626    in existing asciidoctor files, unless it is of enough scope to create a
2627    new chapter (internal merge request 3955).
2628
2629New Extensions:
2630
2631  * `<<VK_EXT_directfb_surface>>` (public pull requests 1292, 1294).
2632  * `<<VK_EXT_fragment_density_map2>>` (internal merge request 3914).
2633
2634-----------------------------------------------------
2635
2636Change log for June 20, 2020 Vulkan 1.2.145 spec update:
2637
2638  * Update release number to 145 for this update.
2639
2640Github Issues:
2641
2642  * Fix `<<VK_EXT_conservative_rasterization>>` interactions with external
2643    SPIR-V and GLSL functionality in the extension appendix (public issue
2644    1288).
2645
2646Internal Issues:
2647
2648  * Break SPIR-V validation into two sections,
2649    <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
2650    and <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>>
2651    (internal issue 1598).
2652  * Add VkFormat enums for ASTC 3D formats to `vk.xml`. These values are
2653    slotted into the reserved, and still disabled extension 289. They will
2654    not appear in the published `vulkan_core.h` header and there is no
2655    published extension utilizing them, but this allows external projects
2656    such as KTX2 to use these values as part of their internal cross-API
2657    formats by generating a header including this disabled extension
2658    (internal merge requests 1662, 2216).
2659  * Synchronize that shader binding table accesses from ray tracing
2660    pipelines should be synchronized with the
2661    ename:VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR pipeline stage and an
2662    access mask of ename:VK_ACCESS_SHADER_READ_BIT (internal issue 1749).
2663  * Validate that 3D image views are not used as attachments in
2664    slink:VkFramebufferCreateInfo and slink:VkRenderPassAttachmentBeginInfo
2665    (internal issue 2142).
2666  * Increase the number of conditions recognized as build errors by the
2667    valid usage extraction plugin (internal issue 2215).
2668  * Relax slink:VkImportAndroidHardwareBufferInfoANDROID valid usage
2669    statement 01881 to support external formats (internal issue 2220).
2670  * Clearly define what "`optional capabilities`" means in the
2671    <<spirvenv-capabilities, Capabilities>> section, and specify that if
2672    *any* of the required core versions and/or extensions for a capability
2673    is enabled, then it is valid to use that capability (internal merge
2674    request 3827).
2675  * Add ename:VK_FORMAT_B5G5R5_UNORM_PACK16 and
2676    ename:VK_FORMAT_B5G5R5A1_UNORM_PACK16 to
2677    `<<VK_EXT_custom_border_color>>` as exceptions when
2678    <features-customBorderColorWithoutFormat>> is enabled (internal merge
2679    request 3833).
2680  * Add new <<spirvenv-format-type-matching, Image Format and Type
2681    Matching>> section and refer to it from elsewhere in the spec,
2682    clarifying rules regarding types for image operations (internal merge
2683    request 3916).
2684  * Fix typo sname:VkImageFormatProperties -> slink:VkFormatProperties
2685    (internal merge request 3921).
2686  * Move <<sparsememory-examples, sparse image examples>> to the Vulkan
2687    Guide (internal merge request 3930).
2688  * Fix typo in slink:VkAccelerationStructureBuildOffsetInfoKHR valid usage
2689    statement 03553 (internal merge request 3938).
2690  * Support <remove> tags for extending enumerants in XML (internal merge
2691    request 3942).
2692
2693New Extensions:
2694
2695  * `<<VK_EXT_extended_dynamic_state>>`
2696
2697-----------------------------------------------------
2698
2699Change log for June 8, 2020 Vulkan 1.2.144 spec update:
2700
2701  * Update release number to 144 for this update.
2702
2703Internal Issues:
2704
2705  * Require `volatile` semantics for loading <<builtin-volatile-semantics,
2706    certain variables used in ray pipeline stages>> in the
2707    <<spirvenv-module-validation, Validation Rules within a Module>> and
2708    also the <<ray-tracing-shader-call, Shader Call Instructions>> section
2709    (internal issue 1924).
2710  * Created new <<potential-format-features, Potential Format Features>>
2711    section and corresponding glossary term, use the new term where
2712    appropriate, and add some related valid usage statements to
2713    flink:vkCmdBeginRenderPass, flink:vkCmdBeginRenderPass2,
2714    slink:VkSubpassDescription, and slink:VkSubpassDescription2 (internal
2715    issue 2031).
2716  * Add interaction with `<<VK_KHR_ray_tracing>>` and corresponding `NV`
2717    extension to flink:vkUpdateDescriptorSetWithTemplate (internal issue
2718    2193).
2719  * Resolve collisions in common VUID names using `{stageMaskName}`
2720    qualifiers as part of the name and make fixes to
2721    `config/vu-to-json/extension.rb` to match (internal issue 2215).
2722  * Replace `shutil.move` operations with `copy` / `remove` in the base
2723    `generator.py` code, working around a problem with bind mounts while
2724    using the Khronos docker build image with `podman` instead of `docker`
2725    (internal merge request 3872).
2726  * Add a new <<spirvenv-extensions, SPIR-V Extensions>> subsection
2727    containing a table showing the corresponding Vulkan extension or core
2728    API required to support each of the SPIR-V extensions, replacing a
2729    harder-to-read list of extensions (internal merge request 3876).
2730  * Remove two redundant valid usage statements from flik:vkCmdResolveImage
2731    (internal merge request 3878).
2732  * Make repository REUSE-compliant, and run the `reuse` license checker as
2733    part of internal CI. While most files now have SPDX license identifier
2734    tags, some licenses are recorded in `.reuse/dep5` instead. Note that
2735    this does not change licenses in the repository (aside from adding some
2736    to files missing them), just insures that every file *has* an explicit
2737    license (internal merge request 3904).
2738  * Clarify that code:ImageMSArray is supported as part of the
2739    <<features-shaderStorageImageMultisample>> feature (internal merge
2740    request 3905).
2741  * Reorganize some valid usage statements for flink:vkCmdBlitImage,
2742    flink:vkCmdCopyBuffer, flink:vkCmdCopyBufferToImage,
2743    flink:vkCmdCopyImage, flink:vkCmdCopyImageToBuffer, and
2744    flink:vkCmdResolveImage as common valid usage statements, for
2745    future-proofing (internal merge requests 3906, 3907, 3908, 3909, 3910).
2746  * Add two valid usage statements to flink:vkAllocateMemory and
2747    flink:vkCreateSampler for allocation limits of slink:VkDeviceMemory and
2748    elink:VkSamplers, respectively (internal merge request 3923).
2749
2750-----------------------------------------------------
2751
2752Change log for June 8, 2020 Vulkan 1.2.143 spec update:
2753
2754  * Update release number to 143 for this update.
2755  * Reorganize some valid usage statements for slink:VkBufferMemoryBarrier,
2756    and for commands with elink:VkPipelineStageFlags parameters, as common
2757    valid usage statements, for future-proofing (internal merge requests
2758    3863, 3867).
2759
2760Github Issues:
2761
2762  * Move `translate_math.js` to the `scripts/` directory (public pull
2763    request 1286).
2764  * Minor cleanup of math markup (public pull request 1287).
2765
2766Internal Issues:
2767
2768  * Misc. licensing updates (internal issue 1017):
2769  ** Replace the "`Exceptions`" clause on `vk.xml` with a dual Apache-2.0 OR
2770     MIT license, with agreement of downstream developers known to be
2771     affected by it. This enables use of `vk.xml` in GPLed projects under a
2772     more widely used licensing scheme.
2773  ** Use `SPDX-License-Identifier` tags in place of longer license text.
2774     This does not change the license terms on files other than `vk.xml`,
2775     but makes license statements in most files more compact.
2776  ** Reorganize repository documentation (README.adoc, COPYING.adoc,
2777     LICENSE.adoc, CONTRIBUTING.adoc, CODE_OF_CONDUCT.adoc, and BUILD.adoc)
2778     with a more widely used split of information; make all of these files
2779     Asciidoctor instead of Markdown format for consistency with the rest of
2780     the repository; describe use of SPDX identifiers; and point to full
2781     license text of the various OSS licenses used in the repository.
2782  * Add new <<resources-image-views-identity-mappings, text describing the
2783    identity swizzle>> incorporating the existing "`Component Mappings
2784    Equivalent To ename:VK_COMPONENT_SWIZZLE_IDENTITY`" table, and refer to
2785    this text in place of explicit references to
2786    ename:VK_COMPONENT_SWIZZLE_IDENTITY in many places (internal merge
2787    request 3399).
2788  * Require code:storageBuffer16BitAccess capability if
2789    `<<VK_KHR_16bit_storage>>` is enabled (internal merge request 3709).
2790  * Added XML schema and generator script extensions to support 64-bit flags
2791    and corresponding bitmasks (internal merge request 3718).
2792  * Correct <<interfaces-resources-standard-layout, Standard Buffer Layout>>
2793    alignment rules (internal merge request 3750).
2794  * Relax non-strict line constraints in the <<primsrast-lines-basic>> and
2795    <<primsrast-lines-bresenham>> sections (internal merge request 3792).
2796  * Add missing `structextends` attribute to the
2797    slink:VkPhysicalDevicePrivateDataFeaturesEXT definition in `vk.xml`
2798    (internal merge request 3873).
2799  * Move slink:VkImageFormatListCreateInfo valid usage statements to
2800    flink:vkCreateImageView (internal merge request 3879).
2801  * Update valid usage statements for slink:VkImageViewASTCDecodeModeEXT to
2802    allow ASTC HDR formats (internal merge request 3881).
2803  * Add missing extension dependency to
2804    `<<VK_KHR_pipeline_executable_properties>>` definition in `vk.xml`
2805    (internal merge request 3882).
2806  * Require the <<features-customBorderColors>> feature be enabled when
2807    using etext:VK_BORDER_COLOR_* in slink:VkSamplerCreateInfo (internal
2808    merge request 3884).
2809
2810-----------------------------------------------------
2811
2812Change log for June 1, 2020 Vulkan 1.2.142 spec update:
2813
2814  * Update release number to 142 for this update.
2815
2816Github Issues:
2817
2818  * Add boilerplate descriptions of reserved bitmask types (public pull
2819    request 1265).
2820  * Move dynamic state valid usage statements from
2821    slink:VkPipelineViewportExclusiveScissorStateCreateInfoNV and
2822    VkPipelineViewportShadingRateImageStateCreateInfoNV to
2823    slink:VkGraphicsPipelineCreateInfo, where they are testable, and make
2824    corresponding tweaks in `vk.xml` (public pull request 1268).
2825  * Add missing flink:vkDestroyPrivateDataSlotEXT explicit valid usage
2826    statement (public pull request 1269).
2827  * Cast arguments of dlink:VK_MAKE_VERSION macro to code:uint32_t to avoid
2828    compiler warnings (public pull request 1279).
2829
2830Internal Issues:
2831
2832  * Update <<fundamentals-validusage-pNext, description of pname:pNext
2833    chains>> to allow structures in the chain to be defined by either core
2834    versions or extensions. Add the new term "`extending structure`" to the
2835    glossary to describe such structures, and use it in place of "`extension
2836    structure`". Update the style guide accordingly (internal issue 1083).
2837  * Add a comment to the beginning of generated API includes showing which
2838    combinations of API core versions and extensions provide that API, based
2839    on the explicit requirements in the API XML. This does not yet document
2840    enumerants introduced by extending a base enum type (internal issue
2841    1431).
2842  * Relax the restriction that slink:VkBufferImageCopy::pname:bufferOffset
2843    must be a multiple of 4 for flink:vkCmdCopyBufferToImage and
2844    flink:vkCmdCopyImageToBuffer when run on graphics or compute queues, but
2845    not on transfer queues (internal issue 1701).
2846  * Document the types of "`special use`" extensions in the new
2847    <<extendingvulkan-compatibility-specialuse, Special Use Extensions>>
2848    section, summarize special uses in the generated metadata for extension
2849    appendices, and link back to the new section from each special use
2850    extension (internal issue 1938).
2851  * Clarify behavior of flink:vkGetDeferredOperationMaxConcurrencyKHR,
2852    allowing it to return zero for competed operations (internal issue 2036).
2853  * Allow flink:vkGetInstanceProcAddr to resolve itself with a `NULL`
2854    pname:instance (internal issue 2057).
2855  * Modify the valid usage statement ID assignment script to track a range
2856    of unused IDs for each extension branch under development, instead of
2857    only allowing VUID assignment in `master` and `devel` branches (internal
2858    issue 2100).
2859  * Add `selector` and `selection` attributes for unions in XML, to enable
2860    automatic generation of validation code (internal issue 2140).
2861  * Fix validity generator for stext:Vk*Flags types that are aliases,
2862    correcting generation of implicit valid usage for
2863    slink:VkAccelerationStructureInfoNV::pname:flags. Remove
2864    `noautovalidity` attribute for this member, as well as the previously
2865    written explicit valid usage (internal issue 2140).
2866  * Fix description of slink:VkTextureLODGatherFormatPropertiesAMD (internal
2867    issue 2189).
2868  * Remove redundant text about variables being explicitly laid out in the
2869    <<interfaces-resources-layout, Offset and Stride Assignment>> section
2870    (internal merge request 3691).
2871  * Fix conflicting slink:VkSamplerYcbcrConversionCreateInfo valid usage
2872    statements (internal merge request 3716).
2873  * Fix use of code:AHARDWAREBUFFER_USAGE_GPU_COLOR_OUTPUT to
2874    code:AHARDWAREBUFFER_USAGE_GPU_FRAMEBUFFER in valid usage statement
2875    02386 for slink:VkMemoryAllocateInfo (internal merge request 3808).
2876  * Add missing `externsync` XML attributes for ftext:vkCmd* commands
2877    (internal merge request 3825).
2878  * Add missing `extends` attribute to
2879    slink:VkDevicePrivateDataCreateInfoEXT XML (internal merge request
2880    3834).
2881  * Add code:RayGeometryIndexKHR to the `<<VK_KHR_ray_tracing>>` list of
2882    built-in variables (internal merge request 3853).
2883  * Restrict slink:VkBufferViewCreateInfo with ename:VK_WHOLE_SIZE, and
2884    round down results of division in calculating the test in the
2885    corresponding valid usage statements (internal merge request 3858).
2886  * Miscellaneous cleanup and reorganization of synchronization language in
2887    multiple places, and add the
2888    <<synchronization-image-barrier-layout-transition-order>> section
2889    (internal merge request 3861).
2890  * Redefine ename:VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT and
2891    ename:VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT as pseudo-stages in multiple
2892    places (internal merge request 3862).
2893  * Reorganize some valid usage statements, especially but not limited to
2894    stage mask parameters for slink:VkImageMemoryBarrier,
2895    slink:VkPipelineStageFlags, flink:vkCmdPipelineBarrier,
2896    flink:vkCmdResetEvent, flink:vkCmdSetEvent, flink:vkCmdWaitEvents,
2897    flink:vkCmdWriteBufferMarkerAMD, and flink:vkCmdWriteTimestamp as common
2898    valid usage statements, for future-proofing (internal merge requests
2899    3864, 3865, 3866, 3867, 3868).
2900
2901-----------------------------------------------------
2902
2903Change log for May 15, 2020 Vulkan 1.2.141 spec update:
2904
2905  * Update release number to 141 for this update.
2906  * *Note*: Using the default build options, specification outputs will now
2907    be created in `gen/out/` instead of `out/`, and header files will be
2908    created in `gen/include/vulkan` instead of `include/vulkan`. This can be
2909    overridden using the `-genpath` option to the frontend scripts like
2910    `makeAllExts` and `makeSpec`, or by specifying `GENERATED=*path*` on the
2911    make command line when invoking it directly.
2912
2913Github Issues:
2914
2915  * Assign new elink:VkDriverId and elink:VkVendorId enums for Mesa (public
2916    issue 1256).
2917
2918Internal Issues:
2919
2920  * Fix a typo in the <<fragops-stencil, Stencil Test>> section, removing a
2921    sentence fragment accidentally left over from an earlier merge conflict
2922    resolution (internal issue 2158).
2923  * Typo fixes for flink:vkGetRayTracingShaderGroupHandlesKHR and
2924    flink:vkGetRayTracingCaptureReplayShaderGroupHandlesKHR valid usage
2925    statements (internal merge request 3831).
2926  * Add a `requiredBy` dictionary to the generated `vkapi.py` showing which
2927    core versions or extensions require each API (internal merge request
2928    3832).
2929  * Allow specifying multiple API names for and tags in registry processing
2930    scripts. Update the registry schema documentation accordingly, and
2931    remove the redundant `xml_supported_name_of_api` method from the
2932    VulkanConventions object (internal merge request 3836).
2933  * Consolidate generated intermediate files and output documents into
2934    $(GENERATED) directory, add -genpath option to scripts requiring them,
2935    and modify Makefile accordingly. Add a new `makeSpec` script which
2936    combines and extends the functionality of the `makeExt`, `makeKHR`, and
2937    `makeAllExts` scripts (internal merge requests 3837, 3838, 3840, 3841).
2938  * Add "`runtime`" to style guide and use that spelling consistently
2939    (internal merge request 3843).
2940
2941-----------------------------------------------------
2942
2943Change log for May 3, 2020 Vulkan 1.2.140 spec update:
2944
2945  * Update release number to 140 for this update.
2946
2947Github Issues:
2948
2949  * Add `vk.xml` `noautovalidity` attribute to
2950    flink:vkCmdBindTransformFeedbackBuffersEXT::pname:pSizes to cause change
2951    in the generation of implicit valid usage statement for
2952    pname:bindingCount (public issue 1227).
2953  * Remove the special tokens (not part of the Vulkan API) suffixed with
2954    etext:*_BEGIN_RANGE etext:*_END_RANGE, and etext:*_RANGE_SIZE from the
2955    generated C headers, after consultation with downstream components and
2956    ISVs and advanced warning to the developer community (public issue 1230,
2957    internal issue 872).
2958
2959    *Note* if you absolutely require these tokens for some reason, you can
2960    still build a version of the header which restores them. Edit
2961    `scripts/genvk.py` to add the parameter `genEnumBeginEndRange = True` to
2962    the `CGeneratorOptions` objects for the header file targets you want to
2963    restore. See the version of `genvk.py` in the 1.2.139 spec update for an
2964    example.
2965  * Add valid usage statement to slink:VkApplicationInfo requiring that
2966    pname:apiVersion be greater than or equal to dlink:VK_API_VERSION_1_0
2967    (public pull request 1252).
2968  * Add \<implicitexternsync> tags to `vk.xml` for flink:vkDestroyDevice
2969    slink:VkQueue objects received from pname:device (public pull request
2970    1255).
2971  * Fix typo in slink:VkBufferMemoryBarrier language (public pull request
2972    1257).
2973
2974Internal Issues:
2975
2976  * Automatically generate interface lists for extension appendices from
2977    `vk.xml` using a new interface generator script, and update the style
2978    guide's description of these appendices accordingly (internal issue
2979    977, internal merge request 3819).
2980  * Add transitive language to the <<formats-compatible-planes, Compatible
2981    formats of planes of multi-planar formats>> section to pull in format
2982    compatibility classes as well (internal issue 1615).
2983  * Add valid usage statements to ftext:vkCmdBuildAccelerationStructure*KHR,
2984    flink:vkCmdCopyAccelerationStructureToMemoryKHR, and
2985    flink:vkCmdCopyMemoryToAccelerationStructureKHR for structure builds
2986    bound to device memory (internal issue 2033).
2987  * Don't generate etext:*_MAX_ENUM values in documentation generators,
2988    since they're not part of the API, and only meaningful on compiled
2989    headers (internal issue 2056).
2990  * Remove special lifetime rules for pipelines in the
2991    <<fundamentals-objectmodel-lifetime-cmdbuffers>> section (internal issue
2992    2068).
2993  * Improve valid usage statements for ftext:vkCmdTraceRays*, share more
2994    common VUs between ftext:vkTraceRays*, and add ftext:vkCmdTracerays* VUs
2995    for bound buffers. Improve documentation for the
2996    pname:raygenShaderBindingOffset parameters and fork `NV` and `KHR` valid
2997    usage statements, since the shader binding table is described
2998    differently (internal issues 2075, 2136).
2999  * Clarify lifetime of acceleration structure build inputs for
3000    flink:vkCreateAccelerationStructureKHR (internal issue 2077).
3001  * Add a Note to the <<framebuffer-blending, Blending>> section to stop
3002    claiming that blending is ignored for all integer formats (internal
3003    issue 2098).
3004  * Mark handle parameters of some ftext:vkDestroy* commands as `optional`
3005    and `externsync="true"` in `vk.xml` (internal issue 2129).
3006  * Add missing `:refpage:` attributes for ray tracing common valid usage
3007    statements (internal issue 2141).
3008  * Redefine fragment to include the possibility of it covering multiple
3009    pixels. This affects many parts of the specification including the
3010    <<pipelines, Pipelines>>, <<primsrast, Rasterization>>, and <<fragops,
3011    Fragment Operations>> chapters, the `<<VK_EXT_post_depth_coverage>>`
3012    appendix, the `Coverage*` and `Sample Index` glossary entries, the
3013    code:SampleId and code:SampleMask definitions in the
3014    <<interfaces-builtin-variables, Built-In Variables>> section, and the
3015    <<shaders-fragment-execution, Fragment Shader Execution>>,
3016    <<shaders-fragment-earlytest, Early Fragment Tests>>, and
3017    <<textures-texel-coordinate-systems, Texel Coordinate Systems>> sections
3018    (internal merge request 3568).
3019  * Refactor `scripts/genvk.py` script to specify generator and generator
3020    options to the `Registry` object before loading XML. This allows
3021    generator options to influence behavior such as reparenting enum
3022    elements from feature/extension elmements to the enums they are being
3023    added to, which is desirable for generating complete feature lists for
3024    an extension or core version (internal merge request 3789).
3025  * Raise a fatal error (instead of a warning) in `scripts/generator.py`
3026    when two enumerants that are not aliased have the same value, so that CI
3027    will fail (internal merge request 3807).
3028  * Remove accidentally duplicated slink:VkSubpassDependency2 valid usage
3029    statement 03093 (internal merge request 3826).
3030
3031New Extensions:
3032
3033  * `<<VK_EXT_private_data>>`
3034  * `<<VK_EXT_custom_border_color>>`
3035
3036-----------------------------------------------------
3037
3038Change log for April 26, 2020 Vulkan 1.2.139 spec update:
3039
3040  * Update release number to 139 for this update.
3041
3042Github Issues:
3043
3044  * Configure Github CI with Azure pipelines and the Khronos Docker build
3045    image (public pull request 1141).
3046  * Move NOTE in flink:vkEnumerateInstanceVersion prior to valid usage
3047    statements (public pull request 1237).
3048  * Add `implicitexternsyncparams` to flink:vkDestroyInstance for
3049    slink:VkPhysicalDevice objects (public pull request 1244).
3050  * Note in the style guide that extension names are used as preprocessor
3051    symbols in all the generated Vulkan headers (public pull request 1245).
3052  * Move NOTE about app use of `switch` statements and Vulkan API enums from
3053    the style guide into the <<fundamentals-validusage-enums, Valid Usage
3054    for Enumerated Types>> section (public pull request 1246).
3055  * Modify generator script to use Unix newlines on all platforms (public
3056    pull request 1250).
3057
3058Internal Issues:
3059
3060  * Allow ename:VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT error to be
3061    generated by flink:vkQueuePresentKHR (internal issue 1932).
3062  * Update references to the SPIR-V Specification to version 1.5.3 (internal
3063    issue 1957).
3064  * Add a \<comment> explaining why the bitfields defined for
3065    slink:VkAccelerationStructureInstanceKHR in `vk.xml` are non-normative
3066    (internal issue 1975).
3067  * Add valid usage statement for flink:vkBindImageMemory2::pname:pBindInfos
3068    to prevent binding disjoint memory twice (internal merge request 3696).
3069  * Add valid usage statements to flink:vkGetBufferMemoryRequirements,
3070    flink:vkGetImageMemoryRequirements, and
3071    slink:VkBufferMemoryRequirementsInfo2 requiring that external Android
3072    hardware buffers be bound to memory (internal merge request 3717).
3073  * Fix implicit valid usage statement generation script for handle
3074    parameters with `optional="false,true"` XML attributes (internal merge
3075    request 3753).
3076
3077New Extensions:
3078
3079  * `<<VK_EXT_robustness2>>`
3080  * `<<VK_QCOM_render_pass_shader_resolve>>`
3081
3082-----------------------------------------------------
3083
3084Change log for April 16, 2020 Vulkan 1.2.138 spec update:
3085
3086  * Update release number to 138 for this update.
3087
3088Github Issues:
3089
3090  * Use correctly tagged normative term macros in various places (public
3091    pull request 1217).
3092  * Fix C arrow markup in parameter descriptions (public pull request 1222).
3093
3094Internal Issues:
3095
3096  * Add language to the <<features-requirements, Feature Requirements>>
3097    section, the <<versions, Core Revisions>> appendix, and the applicable
3098    extensions to require major feature bits if the corresponding extension
3099    is supported (internal issue 1961).
3100  * Allow slink:VkAccelerationStructureCreateInfoKHR::pname:maxGeometryCount
3101    = 0, and clarify that exactly one of pname:compactedSize and
3102    pname:maxGeometryCount must: be zero. (internal issue 2079).
3103  * Add `allowduplicate` attribute to XML `type` tags to enable future
3104    structures which can allow multiple copies of a structure in their
3105    pname:pNext chain (internal issue 2090).
3106  * Add the glossary term "`format features`", and make minor clarifications
3107    to uses of this term in several places in the <<resources, Resource
3108    Creation>> chapter and the
3109    <<resources-sampler-ycbcr-conversion-format-features, Sampler Ycbcr
3110    Conversion Format Features>> section (internal merge request 3727).
3111  * Add a constraint to the <<memory-external-android-hardware-buffer,
3112    Android Hardware Buffer>> section requiring that bound slink:VkImage or
3113    slink:VkBuffer objects be created with the
3114    ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID
3115    flag set, and corresponding valid usage statements to
3116    flink:vkBindBufferMemory, slink:VkBindBufferMemoryInfo,
3117    flink:vkBindImageMemory, and slink:VkBindImageMemoryInfo (internal merge
3118    request 3732).
3119  * Fix pname:memoryTypes ordering description for device coherent memory
3120    (ename:VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD) in the
3121    <<memory-device-bitmask-list>> section (internal merge request 3738).
3122  * Replace code:AHARDWAREBUFFER_USAGE_GPU_COLOR_OUTPUT with
3123    code:AHARDWAREBUFFER_USAGE_GPU_FRAMEBUFFER in the
3124    <<memory-external-android-hardware-buffer-usage, AHardwareBuffer Usage
3125    Equivalence>> table, and add
3126    ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT flag for this case
3127    (internal merge request 3741).
3128  * Add more references to `NV` and `KHR` ray tracing pipelines in
3129    discussions of creating pipelines, or generalize text so they need not
3130    all be mentioned by name (internal merge request 3743).
3131  * Allow *ShaderCallKHR* memory scope in ray tracing shaders, in the
3132    <<spirvenv-module-validation, Validation Rules within a Module>>
3133    appendix (internal merge request 3744).
3134  * Use Khronos Dockerhub image for spec builds in internal CI (internal
3135    merge request 3748).
3136  * Add the `<<VK_KHR_dedicated_allocation>>` extension as a dependency of
3137    `<<VK_ANDROID_external_memory_android_hardware_buffer>>` (internal merge
3138    request 3751).
3139
3140-----------------------------------------------------
3141
3142Change log for April 06, 2020 Vulkan 1.2.137 spec update:
3143
3144  * Update release number to 137 for this update.
3145
3146Github Issues:
3147
3148  * Incorporate several changes to the specification build process and HTML
3149    load-time scripts which pre-render KaTeX math, pre-fetch fonts, and
3150    perform several other optimizations which can significantly improve load
3151    time for the single-page HTML specification. In our internal evaluation
3152    these changes appear to primarily help when using Chrome or Chromium,
3153    with smaller improvements for Firefox and Safari. Speedups seem more
3154    significant on Linux, Windows, and Android platforms, while MacOS
3155    browsers may benefit less (public pull requests 702, 704, and 708).
3156  * Clarify that code:OpVariable is decorated with code:Location, not
3157    code:OpTypeStruct in the <<interfaces-iointerfaces-locations, Location
3158    Assignment>> section (public issue 1203).
3159  * Add a NOTE about the WSI origin location in the description of
3160    flink:vkQueuePresentKHR (public pull request 1208).
3161  * Add the `null-terminated` attribute to
3162    slink:VkPerformanceValueDataINTEL::pname:valueString in `vk.xml` (public
3163    pull request 1209).
3164  * Mark slink:VkPhysicalDeviceVulkan11Properties and
3165    slink:VkPhysicalDeviceVulkan12Properties structures as `returnedonly` in
3166    `vk.xml` (public pull request 1210).
3167  * Create explicit valid usage statements from text in the description of
3168    slink:VkValidationFeaturesEXT (public pull request 1212).
3169  * Update style guide to add "`user`" to the list of words *not* to use,
3170    instead recommending "`application`" (public pull request 1213).
3171  * Fix typos where `ext:` was used in the style guide instead of the new
3172    `apiext:` asciidoctor macro (public pull request 1214).
3173  * Miscellaneous minor markup and editing fixes (public pull request 1215).
3174  * Remove etext:KHR from promoted ename:VK_MAX_DRIVER_NAME_SIZE in the
3175    description of slink:VkPhysicalDeviceDriverProperties (public pull
3176    request 1218).
3177  * Correct use of `NULL` to dlink:VK_NULL_HANDLE in the
3178    <<acceleration-structure-inactive-prims, Inactive Primitives and
3179    Instances>> section (public pull request 1219).
3180  * Remove trailing periods on valid usage statement text, as required by
3181    the style guide, and add `scripts/deperiodize_vuids.py` to do this in
3182    the future if needed (public pull request 1220).
3183
3184Internal Issues:
3185
3186  * Provide a warning in the repository `README.adoc` of pending header
3187    changes to remove etext:VK_*_BEGIN_RANGE, etext:VK_*_END_RANGE, and
3188    etext:VK_*_RANGE_SIZE tokens (internal issue 872).
3189  * Describe the meaning of code:Device for the `<<VK_KHR_shader_clock>>`
3190    extension in the <<shaders-scope-device, Device>>,
3191    <<shaders-scope-queue-family, Queue Family>>, and
3192    <<shaders-scope-command, Command>> sections of the shader
3193    <<shaders-scope, Scope>> section (internal issue 1955).
3194  * Allow slink:VkDebugUtilsObjectNameInfoEXT::pname:pObjectName to be
3195    either NULL or an empty string to remove a previously set name (internal
3196    issue #2019).
3197  * Add missing VK_ERROR_OUT_OF_HOST_MEMORY error code in `vk.xml` for
3198    flink:vkEnumerateInstanceVersion (internal issue 2029).
3199  * Require code:R32i or code:R32ui image format for
3200    code:OpImageTexelPointer atomic operations in the
3201    <<spirvenv-module-validation, Validation Rules within a Module>> section
3202    (internal issue 2049).
3203  * Remove the `<pattern>` element from images used in the specification, to
3204    avoid complaints from prawn-svg during PDF spec builds (internal issue
3205    2053).
3206  * Clarify usable sample counts for empty subpasses in the
3207    <<features-variableMultisampleRate>> section and the related
3208    flink:vkCmdBindPipeline valid usage statement, as well as in the
3209    <<limits-framebufferNoAttachmentsSampleCounts>>
3210    <<renderpass-noattachments>> sections (internal issue 2066).
3211  * Clarify pname:aspectMask usage in render passes in
3212    slink:VkGraphicsPipelineCreateInfo valid usage statement 01565 and in
3213    slink:VkAttachmentReference2 (internal merge request 3664).
3214  * Remove unused etext:VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_KHR
3215    token from `vk.xml` and the `<<VK_KHR_ray_tracing>>` appendix
3216    (internal merge request 3680).
3217  * Require <<features-subgroup-extended-types,
3218    pname:shaderSubgroupExtendedTypes>> for Vulkan 1.2 (internal merge
3219    request 3680).
3220  * Generate symlinks from refpage aliases to the API they're aliasing
3221    (internal merge request 3694).
3222  * Add an alias from the old ename:VK_ANDROID_NATIVE_BUFFER_EXTENSION_NAME
3223    token (internal merge request 3697).
3224  * Add `scripts/compImages.sh` to compare all images in two git branches of
3225    the specification (internal merge request 3699).
3226  * Improve valid usage statements for `<<VK_NV_device_generated_commands>>`
3227    in flink:vkCmdExecuteGeneratedCommandsNV,
3228    slink:VkGeneratedCommandsInfoNV,
3229    flink:vkCmdPreprocessGeneratedCommandsNV,
3230    slink:VkIndirectCommandsStreamNV, slink:VkIndirectCommandsLayoutTokenNV
3231    and slink:VkGraphicsPipelineCreateInfo (internal merge request 3702).
3232  * Clarify differences between `<<VK_NV_ray_tracing>>` and
3233    `<<VK_KHR_ray_tracing>>` for
3234    slink:VkPipelineCreationFeedbackCreateInfoEXT pipeline creation,
3235    pname:shaderGroupHandleSize and pname:maxRecursionDepth limit
3236    requirement differences, and detangle `SPV_KHR/NV_ray_tracing` in the
3237    <<spirvenv-capabilities-table, List of SPIR-V Capabilities and enabling
3238    features or extensions>> (internal merge request 3710).
3239  * Add flink:vkGetImageViewAddressNVX and
3240    slink:VkImageViewAddressPropertiesNVX to `<<VK_NVX_image_view_handle>>`
3241    (internal merge request 3710).
3242  * Shorten 'make' output by reducing redundant logging output from refpage
3243    build targets (internal merge request 3729).
3244  * Replace sname: macro with slink: everywhere except language actually
3245    describing the structure in the macro argument (internal merge request
3246    3728).
3247  * Add flink:vkGetBufferMemoryRequirements2 and
3248    flink:vkGetImageMemoryRequirements2 to the commands for which the
3249    implementation makes guarantees about certain properties of the memory
3250    requirements in the <<resources-association, Resource Memory
3251    Association>> section, following the description of
3252    slink:VkMemoryRequirements (internal merge request 3730).
3253  * Add valid usage statements for
3254    `<<VK_ANDROID_external_memory_android_hardware_buffer>>` (internal merge
3255    request 3731).
3256  * Add requirements on the
3257    slink:VkAccelerationStructureMemoryRequirementsInfoKHR acceleration
3258    structure for which memory type bits must be exposed (internal
3259    advisorypanel issue 28).
3260
3261New Extensions:
3262
3263  * `<<VK_QCOM_render_pass_store_ops>>`
3264
3265-----------------------------------------------------
3266
3267Change log for March 24, 2020 Vulkan 1.2.136 spec update:
3268
3269  * Update release number to 136 for this update.
3270
3271Github Issues:
3272
3273  * Generate per-extension refpages from the extension appendices in the
3274    specification instead of the old, minimal generated refpages, and update
3275    the registry index to point to these refpages instead of the
3276    specification (public issue 1195, internal issue 1999).
3277  * Rename ename:VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL to
3278    ename:VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL
3279    to match the similar renaming of sname:VkQueryPoolCreateInfoINTEL to
3280    slink:VkQueryPoolPerformanceQueryCreateInfoINTEL (public issue 1207,
3281    internal issue 2048).
3282
3283Internal Issues:
3284
3285  * Add a new <<resources-sampler-ycbcr-conversion-format-features, Sampler
3286    Ycbcr Conversion Format Features>> section, and update
3287    elink:VkFormatFeatureFlagBits and valid usage statements for
3288    slink:VkSamplerCreateInfo and slink:VkSamplerYcbcrConversionCreateInfo
3289    to refer to it (internal issue 1963).
3290  * Comment out reserved but unused ename:VK_ACCESS_RESERVED_31_BIT_KHR to
3291    avoid generator script warnings (internal issue 2016).
3292  * Fix some `<<VK_KHR_ray_tracing>>` valid usage IDs that were broken in
3293    the 1.2.135 update (internal issue 2044).
3294  * Remove `const` qualifier from
3295    sname:VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::pname:pNext
3296    in `vk.xml` (internal issue 2047).
3297  * Remove `flowRoot` elements supported only by Inkscape from some of the
3298    images, and update a couple to 96 DPI from 90 DPI due to current
3299    Inkscape's insistence. This reduces warnings from prawn-svg during PDF
3300    builds (internal issue 2053).
3301  * Remove reference in the <<devsandqueues-lost-device, Lost Device>>
3302    section to a non-existent list of functions returning
3303    ename:VK_ERROR_DEVICE_LOST (internal merge request 3667).
3304  * Add valid usage statements to slink:VkImageViewCreateInfo for cube and
3305    cube array image view (internal merge request 3682).
3306  * Remove redundant valid usage statement 00228 from flink:vkCmdBlitImage
3307    (internal merge request 3684).
3308  * Document the Khronos-provided Docker image, whose use is recommended
3309    when building documents and generated files from this repository
3310    (internal merge request 3686).
3311  * Rename ename:VK_PIPELINE_COMPILE_REQUIRED_EXT from
3312    ename:VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT and add an alias from the
3313    old name, since it is not actually an error code. Add it to the
3314    `successcodes` attributes of appropriate commands in `vk.xml` (internal
3315    merge request 3687).
3316
3317-----------------------------------------------------
3318
3319Change log for March 17, 2020 Vulkan 1.2.135 spec update:
3320
3321  * Update release number to 135 for this update.
3322
3323Github Issues:
3324
3325  * Add missing dependencies of slink:VkExportMemoryWin32HandleInfoKHR on
3326    slink:VkExportMemoryAllocateInfo in the slink:VkMemoryAllocateInfo
3327    pname:pNext chain; slink:VkExportFenceWin32HandleInfoKHR on
3328    slink:VkExportFenceCreateInfo in the slink:VkFenceCreateInfo pname:pNext
3329    chain; and slink:VkExportSemaphoreWin32HandleInfoKHR on
3330    slink:VkExportSemaphoreCreateInfo in the slink:VkSemaphoreCreateInfo
3331    pname:pNext chain (public issue 1095).
3332  * Update the <<spirvenv-module-validation, Validation Rules within a
3333    Module>> section of the SPIR-V environment appendix to allow the
3334    code:PhysicalStorageBuffer64 addressing model (public issue 1199).
3335  * Fix markup in parameters section of
3336    flink:vkGetPhysicalDeviceXcbPresentationSupportKHR (public pull request
3337    1201).
3338  * Amend rules in the <<extensions-vendor-id, Registering a Vendor ID with
3339    Khronos>> section of the style guide to allow other Khronos APIs such as
3340    OpenCL to reserve vendor IDs here so they can be shared with those APIs
3341    (public KhronosGroup/OpenCL-Docs pull request 203).
3342
3343Internal Issues:
3344
3345  * Clarify layer loading order for slink:VkInstanceCreateInfo and in the
3346    <<extendingvulkan-layers, Layers>> chapter following the specification
3347    of slink:VkLayerProperties (internal issue 1986).
3348  * Simplify markup for SPIR-V versions required by different Vulkan
3349    versions in the <<spirvenv, Vulkan Environment for SPIR-V>> appendix
3350    (internal issue 2011).
3351  * Rename sname:VkQueryPoolCreateInfoINTEL to
3352    slink:VkQueryPoolPerformanceQueryCreateInfoINTEL in the
3353    `<<VK_INTEL_performance_query>>` extension (internal issue 2022).
3354  * Add ename:VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT to
3355    elink:VkValidationFeatureEnableEXT to specify that layers will process
3356    code:debugPrintfEXT operations (internal issue 2023).
3357  * Fix conflicting language in slink:VkSamplerYcbcrConversionCreateInfo
3358    valid usage statement 01653 (internal merge request 3629).
3359  * Add missing valid usage statement for slink:VkSparseImageMemoryBindInfo
3360    to require slink:VkImage objects created with the
3361    ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag set (internal merge
3362    request 3633).
3363  * Remove redundant valid usage statement 00122 from flink:vkCmdCopyImage
3364    (internal merge request 3643).
3365  * Fix several places where `VULKAN_1_1` was used in asciidoctor
3366    conditional markup instead of `VK_VULKAN_1_1` (internal merge request
3367    3654).
3368  * Fix conditional markup around slink:VkImageViewCreateInfo valid usage
3369    statement 01018 to ensure it doesn't overlap a similar valid usage
3370    statement written for another combination of enabled extensions and
3371    versions (internal merge request 3655).
3372  * Remove redundant valid usage statement from flink:vkCmdCopyImage that
3373    was already covered by statements for slink:VkImageCopy. Eventually this
3374    will be inverted so the statements are located with flink:vkCmdCopyImage
3375    but that requires more work and is deferred (internal merge request
3376    3656).
3377  * Clarify wording of slink:VkImageMemoryBarrier valid usage statement
3378    01671 and add a missing statement (internal merge request 3657).
3379  * Minor fixes to the style guide to bring it up to date with respect to
3380    the asciidoctor client, assignment of valid usage ID tags, and proper
3381    placement of valid usage statements (internal merge request 3662).
3382  * Add missing valid usage statements to slink:VkSubpassDescription2 based
3383    on comparable statements for slink:VkSubpassDescription (internal merge
3384    request 3663).
3385
3386New Extensions
3387
3388  * Ray Tracing package of extensions, including
3389  ** `<<VK_KHR_deferred_host_operations>>`
3390  ** `<<VK_KHR_pipeline_library>>`
3391  ** `<<VK_KHR_ray_tracing>>`
3392  * `<<VK_EXT_pipeline_creation_cache_control>>`
3393  * `<<VK_NV_device_diagnostics_config>>`
3394  * `<<VK_NV_device_generated_commands>>` (replacing
3395    `VK_NVX_device_generated_commands`, which was an experimental vendor
3396    extension and has been removed from the Specification and `vk.xml`).
3397
3398-----------------------------------------------------
3399
3400Change log for March 6, 2020 Vulkan 1.2.134 spec update:
3401
3402  * Update release number to 134 for this update.
3403
3404Github Issues:
3405
3406  * Fix flink:vkGetPhysicalDeviceToolPropertiesEXT implicit array valid
3407    usage statements, rewrite for consistency, and explicitly state lifetime
3408    of retrieved results (public pull request 1148).
3409  * Change use of "`happens before`" to glossary term "`happens-before`"
3410    (public pull request 1170).
3411  * Use glossary terms "`release operation`" / "`acquire operation`" instead
3412    of similar colloquial language (public pull request 1171).
3413  * Fix minor spelling errors and duplicated words (public pull request
3414    1174).
3415  * Remove duplicate "`to`" word (public pull request 1176).
3416  * Rephrase description of signaling / unsignaling for slink:VkEvent
3417    (public pull request 1179).
3418  * Update asciidoctor extension handling of C arrow operator to avoid need
3419    for escaping it in custom macros, and corresponding fixes to markup in
3420    the spec and to the style guide (public pull request 1186).
3421  * Move layout transition NOTE in the
3422    <<synchronization-image-layout-transitions, Image Layout Transitions>>
3423    section below the corresponding normative paragraph (public pull request
3424    1190).
3425  * Change the parent handle types of slink:VkDisplayKHR and
3426    slink:VkDisplayModeKHR in `vk.xml` (public pull request 1194).
3427  * Add missing `len` attribute for
3428    flink:vkQueueSignalReleaseImageANDROID::pname:pWaitSemaphores parameter
3429    in `vk.xml` (public pull request 1196).
3430
3431Internal Issues:
3432
3433  * Link to HTML preview of `SPV_KHR_non_semantic_info` link in the
3434    `<<VK_KHR_shader_non_semantic_info>>` appendix, instead of asciidoctor
3435    source document (internal merge request 3614).
3436  * Improve registry schema documentation description of allowed <enum> tags
3437    inside <remove> tags (internal merge request 3614).
3438
3439  * Clarify behavior when reading or writing image formats with padding
3440    ("`X`" components) in the "`Common Operation`" section of the <<copies>>
3441    chapter, and that padding components are unused in the elink:VkFormat
3442    description of such formats (internal issue 1122).
3443  * Clarify that flink:vkGetDeviceProcAddr can be used for device-level
3444    commands from instance extensions (internal issue 1960).
3445  * Add a note to the <<primsrast-lines-bresenham, Bresenham Line Segment
3446    Rasterization>> section clarifying that line rasterization does not
3447    depend on sample locations (internal issue 1855).
3448  * Add a new header macro dlink:VK_HEADER_VERSION_COMPLETE which provides
3449    the complete version (major, minor, and patch/release) of the Vulkan
3450    headers at compile time, and document the intended use cases for this
3451    macro (internal issue 1990).
3452  * Remove `optional` attribute from
3453    slink:VkDebugUtilsObjectNameInfoEXT::pname:pObjectName in `vk.xml`,
3454    making the string required (internal issue 2002).
3455  * Add a missing `structextends` attribute for
3456    slink:VkQueryPoolCreateInfoINTEL in `vk.xml` (internal merge request
3457    3599).
3458  * Clarify when implicit subpass dependencies are introduced in the
3459    definition of slink:VkSubpassDependency (internal merge request 3603).
3460  * Update several valid usage statements for flink:vkCmdResetQueryPool,
3461    flink:vkCmdBeginQuery, and flink:vkCmdBeginQueryIndexedEXT which
3462    interact with the presence of flink:vkCmdResetQueryPool commands in a
3463    command buffer, and restrict the VUs to performance queries (internal
3464    merge request 3604).
3465  * Simplify a hard-to-parse sentence in the <<textures-RGB-sexp, RGB to
3466    Shared Exponent Conversion>> section (internal merge request 3606).
3467  * Add a `pdfwidth` attribute to markup for images inside tables, to work
3468    around a crash occurring in recent versions of asciidoctor-pdf (internal
3469    merge request 3626).
3470
3471New Extensions
3472
3473  * `<<VK_QCOM_render_pass_transform>>`
3474
3475-----------------------------------------------------
3476
3477Change log for February 15, 2020 Vulkan 1.2.133 spec update:
3478
3479  * Update release number to 133 for this update.
3480
3481Github Issues:
3482
3483  * Clarify language describing the <<commandbuffers-lifecycle, command
3484    buffer lifecycle>> (public pull request 1152).
3485  * Add anchor handles to chapters and VUID statements in the HTML outputs
3486    (public pull request 1157).
3487  * Update declaration of flink:vkCmdDrawIndexedIndirectCountAMD to alias
3488    the core function rather than the KHR extension function (public pull
3489    request 1165).
3490  * Remove redundant NOTE discussing
3491    ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT after the description
3492    of slink:VkCommandBufferInheritanceInfo.txt (public pull request 1167).
3493  * Reserved vendor ID for Codeplay (public pull request #1167).
3494
3495Internal Issues:
3496
3497  * Restrict flag bits to bit positions 0..30. Add language to the
3498    <<fundamentals-validusage-flags, Valid Usage for Flags>> section
3499    expressing the restriction; to the registry documentation where the
3500    `bitpos` attribute is defined; and finally, add a test to the generator
3501    scripts that warns of bits 31 and higher being used (internal issue
3502    1945).
3503  * Clarify dynamic indexing of sampler objects in the
3504    <<interfaces-resources-descset, Descriptor Set Interface>> section, to
3505    be controlled by the same feature as sampled images (internal issue
3506    1951).
3507  * Make the effect of query reset commands requiring multiple passes to
3508    complete explicit, by disallowing resets of the same query from the same
3509    primary command buffer in the description of flink:vkCmdResetQueryPool
3510    and the valid usage statements for ftext:vkCmdBeginQuery* (internal
3511    issue 1965).
3512  * Update interaction between elink:VkFormatFeatureFlagBits affecting
3513    slink:VkSamplerYcbcrConversionCreateInfo::pname:forceExplicitReconstruction
3514    (internal merge request 3533).
3515  * Generate implicit pname:sType-unique valid usage statements from
3516    `validitygenerator.py` even for pname:pNext chains with only a single
3517    valid structure type, to enable validation layers work (internal merge
3518    request 3534).
3519  * Clean up wording of some flink:vkBindImageMemory valid usage statements
3520    (internal merge request 3547).
3521  * Mark the `VK_EXT_shader_subgroup_vote` and
3522    `VK_EXT_shader_subgroup_ballot` as deprecated in `vk.xml` (internal
3523    merge request 3558).
3524  * Tighten slink:VkSamplerYcbcrConversionCreateInfo::pname:chromaFilter
3525    valid usage restriction to be ename:VK_FILTER_NEAREST instead of
3526    ename:VK_FILTER_LINAER, now that other filters exist (internal merge
3527    request 3561).
3528  * Add valid usage statements to slink:VkCommandPoolCreateInfo and
3529    slink:VkDeviceQueueCreateInfo requiring that the corresponding
3530    ename:VK_COMMAND_POOL_CREATE_PROTECTED_BIT and
3531    ename:VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT not be set if the protected
3532    memory feature is not enabled. Previously this restriction was described
3533    for the elink:VkCommandPoolCreateFlagBits and
3534    elink:VkDeviceQueueCreateFlagBits types containing those flags, but not
3535    in valid usage statements (internal merge request 3563).
3536  * Fix conditional markup in the <<shaders-scope-device>> and
3537    <<shaders-scope-queue-family>> sections to apply to Vulkan 1.2, as well
3538    as `VK_KHR_vulkan_memory_model` (internal merge request 3570).
3539  * Add performance queries to the list in the introduction of the
3540    <<supported query types, queries>> chapter (internal merge request
3541    3577).
3542
3543New Extensions
3544
3545  * `<<VK_KHR_shader_non_semantic_info>>`
3546
3547-----------------------------------------------------
3548
3549Change log for January 20, 2020 Vulkan 1.2.132 spec update:
3550
3551  * Update release number to 132 for this update.
3552
3553Github Issues:
3554
3555  * Move and reword a NOTE in the <<extendingvulkan-extensions, Extensions>>
3556    section (public pull request 1131).
3557  * Change redundant description of application error when using
3558    flink:vkMapMemory into a non-normative NOTE (public pull request 1143).
3559  * Remove redundant valid usage statement for flink:vkCmdExecuteCommands
3560    (public pull request 1151).
3561  * Remove redundant command buffer
3562    ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT language in
3563    flink:vkCmdExecuteCommands valid usage statements (public pull request
3564    1153).
3565  * Add flink:vkBeginCommandBuffer valid usage statement to prevent using a
3566    primary command buffer with both the
3567    ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT and
3568    ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flags (public pull
3569    request 1154).
3570  * Add slink:VkRenderPassBeginInfo valid usage statements for
3571    pname:renderArea (public pull request 1159).
3572  * Add missing valid usage statements for flink:vkCmdBeginRenderPass when
3573    `VK_KHR_separate_depth_stencil_layouts` is enabled (public
3574    KhronosGroup/Vulkan-ValidationLayers issue 1470).
3575
3576Internal Issues:
3577
3578  * Clarify the definition of "`transfer commands`" for
3579    <<synchronization-pipeline-stages-transfer,
3580    ename:VK_PIPELINE_STAGE_TRANSFER_BIT>> (internal issue 816).
3581  * Clarify VK_ATTACHMENT_STORE_OP_DONT_CARE and reorder render pass chapter
3582    (internal issue 1098).
3583  * Clarify that <<pipelines-dynamic-state, Dynamic State>> can be set
3584    before pipeline bind, and update valid usage statements accordingly
3585    (internal issue 1624).
3586  * Clarify the behavior of floating-point divide by zero in the
3587    <<spirvenv-precision-operation, Precision and Operation of SPIR-V
3588    Instructions>> section (internal issue 1669).
3589  * Add a valid usage statement to flink:vkCmdResetQueryPool which allows
3590    not calling flink:vkCmdEndQuery if a prior flink:vmCmdResetQuery command
3591    was called (internal issue 1700).
3592  * Refactor specification of shader scopes into the new <<shaders-scope,
3593    Scope>> section, and modify other references to this language
3594    accordingly. Also describe quad invocation groups properly, with
3595    derivative and quad group operations referencing the description, and
3596    call out helper invocations as being able to become spontaneously
3597    inactive. Simplify parts of the texturing chapter accordingly (internal
3598    issues 1824, 1884, 1885, 1911).
3599  * Stop claiming that semaphore signals are ordered between different queue
3600    commands in the <<synchronization-signal-operation-order>> section
3601    (internal merge request 3542).
3602  * Move a valid usage statement from slink:VkBindImagePlaneMemoryInfo to
3603    flink:vkBindImageMemory2, where it can be determined (internal merge
3604    request 3548).
3605
3606-----------------------------------------------------
3607
3608Change log for January 15, 2020 Vulkan 1.2.131 spec update:
3609
3610  * Vulkan 1.2 initial release. Update release number to 131 for this
3611    update. The patch number will be used for all Vulkan 1.x spec updates,
3612    and continue to increment continuously from the previous Vulkan 1.1.130
3613    update.
3614
3615Github Issues:
3616
3617  * Use the attributes {prime}, {YCbCr}, and {RGBprime} for better markup of
3618    prime symbols, and ease of changing the markup for the commonly used
3619    color format names (public issue 636).
3620  * Expand the <<extendingvulkan-extensions-extensiondependencies, Extension
3621    Dependencies>> section to acknowledge that extension dependencies are
3622    usually, but not always satisfied by promoted versions of the
3623    dependencies, and point to the extension and version appendices for more
3624    information (public issue 1085).
3625  * Clarify the <<features-shaderStorageImageExtendedFormats,
3626    pname:shaderStorageImageExtendedFormats>> feature and add corresponding
3627    formats to the <<formats-mandatory-features-2byte>>,
3628    <<formats-mandatory-features-10bit>>,
3629    <<formats-mandatory-features-16bit>>, and
3630    <<formats-mandatory-features-64bit>> tables (public pull request 1098).
3631  * Fix issue 2 wording in the `<<VK_KHR_surface>>` appendix (public pull
3632    request 1100).
3633  * Fix valid usage statements for
3634    slink:VkSwapchainCreateInfoKhr::pname:minImageCount interactions with
3635    `<<VK_KHR_shared_presentable_image>>` (public pull request 1101).
3636  * Change the etext:VK_QUERY_SCOPE_* tokens in the
3637    slink:VkPerformanceCounterScopeKHR to aliases of new
3638    etext:VK_PERFORMANCE_COUNTER_SCOPE_* tokens, following the naming
3639    conventions for enumerants (public issue 1130).
3640  * Move `NV` extension pipe stages in elink:VkShaderStageFlagBits so they
3641    are not included in enmae:VK_SHADER_STAGE_ALL_GRAPHICS (public pull
3642    request 1133).
3643  * Clarify the introduction of the "`Surface Queries`" section of the
3644    <<wsi, Window System Integration>> chapter (public pull request 1135).
3645  * Fix macros that consume codelike text like pname:foo\->bar (public pull
3646    request 1149).
3647
3648Internal Issues:
3649
3650  * Add a new <<fundamentals-errorcodes, error code>>,
3651    ename:VK_ERROR_UNKNOWN, that can be returned by any function that has
3652    error returns (internal issue 1654).
3653  * Remove the `<<VK_EXT_filter_cubic>>` requirement to cubic filter the
3654    formats etext:*USCALED_PACKED32, etext:*SSCALED_PACKED32,
3655    etext:*UINT_PACK32, and etext:*SINT_PACK32 in the
3656    <<features-required-format-support, Required Format Support>> section
3657    (internal issue 1934).
3658  * Add a missing valid usage statement for
3659    `<<VK_KHR_buffer_device_address>>` to slink:VkBindBufferMemoryInfo,
3660    based on a similar statement for flink:vkBindBufferMemory (internal
3661    merge request 3512).
3662  * Fix some 'name:' macros to the correct 'pname:' (internal merge request
3663    3529).
3664  * Changes to script tools to stay relatively aligned with OpenXR scripts
3665    (internal merge request 3530).
3666
3667-----------------------------------------------------
3668
3669Change log for December 9, 2019 Vulkan 1.1.130 spec update:
3670
3671  * Update release number to 130
3672
3673Github Issues:
3674
3675  * Mark slink:VkPipelineExecutableInternalRepresentationKHR as
3676    `returnedonly` in `vk.xml` (public pull request 1092).
3677  * Use 'slink:' in autogenerated valid usage statements instead of 'sname:'
3678    (public pull request 1093).
3679  * Split flink:vkGetQueryPoolResults VU statement 00815, which had
3680    disallowed internal asciidoctor conditionals into two (public issue
3681    1094).
3682  * Minor markup and editing fixes (public pull request 1099).
3683  * Hide outdated valid usage statement when not building with timeline
3684    semaphore extension (public pull request 1121).
3685  * Add `<<VK_NV_glsl_shader>>` deprecation note (public pull request 1125).
3686  * Add SPV and GLSL links to `<<VK_KHR_multiview>>` (public pull request
3687    1128).
3688
3689Internal Issues:
3690
3691  * Clarify and consistently refer to the shader interface matching rules in
3692    the <<interfaces, Shader Interfaces>> chapter (internal issue 1067).
3693  * Clarify that inner array dimensions can't be sized with specialization
3694    constants in the <<spirvenv-module-validation, Validation Rules within a
3695    Module>> section (internal issue 1739).
3696  * Use consistent markup for nested access (members, array references,
3697    pointers) to structure members and function parameters (internal issues
3698    503, 1765).
3699  * Make slink:VkDeviceQueueInfo2::flags optional in `vk.xml` to remove an
3700    inappropriate valid usage statement (internal issue 1805).
3701  * Fix API name assignment for valid usage blocks in `scripts/reflow.py`
3702    (internal issue 1809).
3703  * Make spec language more internally consistent by fixing remaining cases
3704    where the term "`an instance of (structurename)`" was used, and
3705    expanding the style guide rules for describing pname:pNext chains along
3706    with corresponding edits it (internal issue 1814).
3707  * Disallow code:Workgroup memory and execution scope and code:Workgroup
3708    storage class in all but compute, mesh, and task shaders in the
3709    <<spirvenv-module-validation, Validation Rules within a Module>>
3710    section. There is an exception for code:Workgroup execution scope in
3711    tessellation control shaders because we do not have a more appropriate
3712    scope for patch barriers (internal issue 1905).
3713  * Restore 'Promoted to Vulkan 1.1 Core' comments in extension appendices,
3714    which were accidentally removed in spec revision 1.1.129 (internal issue
3715    1914).
3716  * Add some minor markup fixes as well as new valid usage statements for
3717    slink:VkAttachmentDescription, slink:VkAttachmentDescription2KHR, and
3718    slink:VkAttachmentReference2KHR (internal merge request 3493).
3719
3720New Extensions
3721
3722  * `<<VK_EXT_tooling_info>>`
3723
3724-----------------------------------------------------
3725
3726Change log for November 25, 2019 Vulkan 1.1.129 spec update:
3727
3728  * Update release number to 129
3729
3730Github Issues:
3731
3732  * Rename "`pixel shaders`" to "`fragment shaders`" (public issue 1082).
3733  * Fix some markup in external semaphore extension (public pull request
3734    1083).
3735  * Fix styleguide em-dash example (public pull request 1088).
3736  * Update `.gitignore` to include some additional static refpages (public
3737    pull request 1089).
3738  * Restructure query language in <<wsi, Window System Integration (WSI)>>
3739    chapter - split into sections, reordered orphaned paragraphs, simplify
3740    language (public pull request 1090).
3741
3742Internal Issues:
3743
3744  * Remove NVIDIA contributors from `<<VK_KHR_performance_query>>` (internal
3745    merge request 3481).
3746
3747New Extensions
3748
3749  * `<<VK_KHR_buffer_device_address>>`
3750
3751-----------------------------------------------------
3752
3753Change log for November 18, 2019 Vulkan 1.1.128 spec update:
3754
3755  * Update release number to 128
3756
3757Github Issues:
3758
3759  * Fix valid usage condition for
3760    flink:vkAllocationMemory::pname:pAllocateInfo (public issue 1032).
3761  * Change explicit valid usage statements for queue transfer operations in
3762    flink:vkCmdWaitEvents and flink:vkCmdPipelineBarrier, and corresponding
3763    language in the <<synchronization-queue-transfers-release>> section, to
3764    incorporate access masks and clarify when queue transfer ops occur
3765    (public pull request 1046).
3766  * Ignore disabled bits in valid usage statements (public pull request
3767    1062).
3768  * Fix some broken HTML links (public pull request 1063).
3769  * Change ename:VK_PIPELINE_CREATE_DISPATCH_BASE to an alias of new token
3770    ename:VK_PIPELINE_CREATE_DISPATCH_BASE_BIT, to follow the naming
3771    conventions for bitmasks (public issue 1075).
3772
3773Internal Issues:
3774
3775  * Add valid usage statement to flink:vkQueueSubmit for attempted use of a
3776    resource currently not available for use (internal issue 1751).
3777  * Make it invalid for an implementation to return anything but
3778    ename:VK_SUCCESS for the flink:vkFreeDescriptorSets and
3779    flink:vkResetDescriptorPool commands (internal issue 1781).
3780  * Add a note clarifying the relationship between
3781    code:SubgroupLocalInvocationId and code:LocalInvocationId or
3782    code:LocalInvocationIndex to the <<interfaces-builtin-variables-sgli,
3783    code:SubgroupLocalInvocationId>> description (internal issue 1810).
3784  * Add valid usage statements for scissor regions to
3785    slink:VkPipelineViewportStateCreateInfo based on similar statements for
3786    flink:vkCmdSetScissor, and generalize all these VUs to cover each
3787    element of the pname:pScissors array (internal issue 1861).
3788  * Fix the basis matrix for <<textures-texel-cubic-filtering, Texel Cubic
3789    Filtering>> (internal issue 1878).
3790  * Make the
3791    slink:VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT::pname:pNext
3792    member non-const, like other feature structures (internal issue 1880).
3793  * Document that aggregate load/store may access padding bytes in the
3794    <<memory-model-memory-location, Memory Location>> appendix (internal
3795    cross-api/memory-model issue 113).
3796  * Clarify in the description of elink:VkDescriptorBindingFlagBitsEXT that
3797    ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT descriptors allow
3798    for updating different descriptors in the same set at the same time on
3799    multiple threads (internal merge request 3419).
3800  * Clarify that resolve attachments don't need to be compatible in the
3801    <<renderpass-compatibility, Render Pass Compatibility>> section
3802    (internal merge request 3422).
3803  * Add Visual Studio folders to `.gitignore` (internal merge request 3450).
3804  * Add language to
3805    slink:sname:VkPipelineCoverageModulationStateCreateInfoNV documenting
3806    that coverage modulation has no effect when using the
3807    ename:VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV reduction mode, clarifying
3808    an interaction with `<<VK_NV_coverage_reduction_mode>>` (internal merge
3809    request 3456).
3810
3811New Extensions
3812
3813  * `<<VK_KHR_performance_query>>`
3814
3815-----------------------------------------------------
3816
3817Change log for November 4, 2019 Vulkan 1.1.127 spec update:
3818
3819  * Update release number to 127
3820
3821Github Issues:
3822
3823  * Consistently use the feature name pname:pipelineExecutableInfo as found
3824    in `vk.xml` and the generated header files, instead of
3825    pname:pipelineExecutableProperties as sometimes used in the
3826    specification text (public issue 1061).
3827  * Clarify the definition of the code:PrimitiveId returned by a
3828    `<<VK_NV_ray_tracing>>` shader (public issue 1068).
3829
3830Internal Issues:
3831
3832  * Remove unused `draw_renderpass_validation.txt` valid usage text
3833    (internal issue 1869).
3834  * Require <<features-features-timelineSemaphore, pname:timelineSemaphore>>
3835    if the `<<VK_KHR_timeline_semaphore>>` extension is supported (internal
3836    issue 1873).
3837  * Fix typos in slink:VkBindBufferMemoryInfo valid usage statement 02791
3838    and various slink:VkSparseMemoryBind VUs (internal merge request 3411).
3839  * Minor non-semantic markup and diagram fixes (internal merge request
3840    3417).
3841  * Clarify that <<interfaces-iointerfaces-locations, Location>> values are
3842    physical slots, not a virtual table that just imposes an overall maximum
3843    on the number of locations that can be used (internal merge request
3844    3426).
3845  * Add links to GLSL specs from the `<<VK_KHR_shader_clock>>` appendix, as
3846    well as expected mappings for GLSL builtins (internal merge request
3847    3429).
3848
3849New Extensions
3850
3851  * `<<VK_KHR_separate_depth_stencil_layouts>>`
3852
3853-----------------------------------------------------
3854
3855Change log for October 21, 2019 Vulkan 1.1.126 spec update:
3856
3857  * Update release number to 126
3858
3859Github Issues:
3860
3861  * Update the elink:VkAccessFlagBits etext:VK_ACCESS_MEMORY_* flags
3862    definition to make clear that ename:VK_ACCESS_MEMORY_READ_BIT and
3863    ename:VK_ACCESS_MEMORY_WRITE_BIT are meant to be equivalent to setting
3864    all applicable etext:READ and etext:WRITE access flags, and update the
3865    <<synchronization-access-types-supported, supported access types>> table
3866    accordingly (public pull request 1014).
3867  * Remove misleading NOTE in the <<synchronization-dependencies-chains>>
3868    section (public pull request 1048).
3869  * Clarify the memory mapping NOTE about invalidation described for
3870    flink:vkInvalidateMappedMemoryRanges (public pull request 1049).
3871  * Fix label for flink:vkCmdWaitEvents VUID 02803 (public pull request
3872    1056).
3873  * Styleguide fixes to several NOTES in the <<synchronization>> chapter
3874    (public pull request 1057).
3875  * Markup fix to <<features-features-timelineSemaphore>> section (public
3876    pull request 1058).
3877  * Convert some external links to `https` protocol (public pull request
3878    1064).
3879  * Remove unsupported nested links inside table captions (public pull
3880    request 1067 + followon tweak to make 'allchecks' target pass).
3881
3882Internal Issues:
3883
3884  * Restrict the SPIR-V code:Invariant decoration to only be used with
3885    code:Output variables in the <<spirvenv-module-validation, Validation
3886    Rules within a Module>> section (internal issue 1832).
3887  * Clarify that the <<features-independentResolve, independentResolve>>
3888    feature implies support for the <<features-independentResolveNone,
3889    independentResolveNone>> feature (internal issue 1848).
3890  * Clarify self-contradictory language for slink:VkSubpassDescription to
3891    say that resolves only happen within the render area (internal issue
3892    1850).
3893  * Add valid usage statements for slink:VkMemoryAllocateInfo and
3894    corresponding language to elink:VkExternalMemoryFeatureFlagBitsKHR to
3895    restrict implementations and applications from using both an external
3896    host memory allocation and dedicated allocation (internal merge request
3897    3375).
3898
3899-----------------------------------------------------
3900
3901Change log for October 13, 2019 Vulkan 1.1.125 spec update:
3902
3903  * Update release number to 125.
3904
3905Github Issues:
3906
3907  * Allow slink:VkRenderPassFragmentDensityMapCreateInfoEXT to extend
3908    slink:VkRenderPassCreateInfo2KHR in `vk.xml` (public issue 1027).
3909  * Fix markup in `<<VK_EXT_external_memory_dma_buf>>` appendix (public pull
3910    request 1051).
3911  * Update .gitignore (public pull request 1052).
3912
3913Internal Issues:
3914
3915  * Disallowed slink:VkEvent from participating in queue family ownership
3916    transfers in the <<devsandqueues-index, Queue Family Index>> section
3917    (internal issue 1691).
3918  * Relax language describing default NT handle access rights for
3919    slink:VkExportMemoryWin32HandleInfoKHR and
3920    slink:VkExportSemaphoreWin32HandleInfoKHR (internal issue 1838).
3921  * Fix markup for slink:VkDeviceCreateInfo valid usage statement 00372 to
3922    remove imbedded asciidoctor conditionals by splitting it into two VUs
3923    (internal issue 1846).
3924  * Clarify lifetime of samplers used as immutable samplers in
3925    slink:VkDescriptorSetLayoutBinding (internal issue 1849).
3926  * Add a valid usage statement prohibiting flink:vkCmdBeginQuery on
3927    timestamp queries (internal issue 1851).
3928  * Correct some <<Precision of GLSL.std.450 Instructions, SPIR-V
3929    instruction precisions>> (internal merge request 3391).
3930  * Fix a typo in flink:vkQueueBindSparse valid usage statement 03245
3931    (internal merge request 3394).
3932
3933New Extensions
3934
3935  * `<<VK_KHR_spirv_1_4>>`
3936
3937-----------------------------------------------------
3938
3939Change log for October 6, 2019 Vulkan 1.1.124 spec update:
3940
3941  * Update release number to 124.
3942
3943Github Issues:
3944
3945  * Fix Makefile SPECREMARK macro to work when not building in a git tree
3946    (public issue 992).
3947  * Ignore pname:aspectMask for unused attachments in
3948    slink:VkSubpassDescription2KHR valid usage statements (public pull
3949    request 1028).
3950  * Minor markup / spelling fixes (public pull requests 1035, 1045).
3951
3952Internal Issues:
3953
3954  * Fix markup in Valid Usage statement for slink:VkCreateFramebuffer
3955    (internal issue 1823).
3956  * Add a new <<synchronization-signal-operation-order, _signal operation
3957    order_>> section to the synchronization chapter which describes in
3958    detail the ordering guarantees provided by the API between fence and
3959    semaphore signal operations (internal merge request 3368).
3960  * Move generated `appendix/meta/` files into the Makefile GENERATED
3961    directory (internal merge request 3381).
3962
3963New Extensions
3964
3965  * `<<VK_KHR_shader_clock>>`
3966  * `<<VK_KHR_timeline_semaphore>>`
3967
3968-----------------------------------------------------
3969
3970Change log for September 15, 2019 Vulkan 1.1.123 spec update:
3971
3972  * Update release number to 123.
3973
3974Github Issues:
3975
3976  * Add missing aspect mask descriptions to elink:VkImageAspectFlagBits
3977    (public pull request 1029).
3978  * Modify validity generator script to not check validity of ignored values
3979    in same-parent valid usage statements (public pull request 1030).
3980  * Make slink:VkDescriptorUpdateTemplateCreateInfo::pname:descriptorSetLayout
3981    `noautovalidity` in `vk.xml` (public pull request 1031).
3982  * Fix footnote markup in the <<vkGetDeviceProcAddr behavior>> table
3983    (public pull request 1034).
3984
3985Internal Issues:
3986
3987  * Require that <<interfaces-builtin-variables-sgs, code:SubgroupSize>> be
3988    a power of two (internal issue 1499).
3989  * Clarify that shaderFloat64 and shaderInt64 enable all storage classes,
3990    while shaderFloat16, shaderInt8, and shaderInt16 only enable
3991    non-interface storage classes. in the <<features-shaderFloat64>>,
3992    <<features-shaderInt64>>, and <<features-shaderInt16>> descriptions and
3993    for slink:VkPhysicalDeviceShaderFloat16Int8FeaturesKHR (internal issue
3994    1582).
3995  * Fix broken asciidoctor conditional logic in the
3996    <<spirvenv-module-validation, Validation Rules within a Module>>
3997    section, and add style guide language to help avoid this problem in the
3998    future (internal issue 1808).
3999  * Modify VUID assignment script to use the first API include in a block as
4000    part of the VUID name rather than the last one, so the VUID is based on
4001    the promoted API name (internal issue 1809).
4002  * Cleanup string descriptions to consistently refer to "`null-terminated
4003    UTF-8`" strings (internal issue 1813).
4004  * Clarify the purpose of the
4005    slink:VkPhysicalDeviceLimits::ptext:maxDescriptorSet* limits (internal
4006    merge request 3357).
4007  * Fix the slink:VkPhysicalDeviceRayTracingPropertiesNV limits for
4008    pname:maxGeometryCount, pname:maxInstanceCount, and
4009    pname:maxTriangleCount in the <<limits-required, Required Limits>>
4010    section (internal issue 3372).
4011  * Update SPIR-V image op sign-matching rules in the
4012    <<spirvenv-module-validation, Validation Rules within a Module>>
4013    section, the <<formats-numericformat>> table, and the
4014    <<interfaces-resources-descset, Descriptor Set Interface>> section
4015    (internal spirv/SPIR-V issue 332).
4016
4017New Extensions
4018
4019  * `<<VK_KHR_shader_subgroup_extended_types>>`
4020  * `<<VK_GOOGLE_user_type>>`
4021
4022-----------------------------------------------------
4023
4024Change log for September 8, 2019 Vulkan 1.1.122 spec update:
4025
4026  * Update release number to 122.
4027
4028Internal Issues:
4029
4030  * Add style guide language on not using standalone `+` signs (internal
4031    issue 736); not using leading whitespace for markup (internal issue
4032    747); and on keeping descriptions of a single API in a contiguous block
4033    of markup (internal issue 949), and apply them to the specification.
4034  * Add a glossary definition of "`constant integral expression`", pointing
4035    to the SPIR-V "`constant instruction`" definition (internal issue 1225).
4036  * Many minor edits to improve writing style consistency and capture
4037    additional style guidelines (internal issue 1553).
4038  * Clarify that <<fragops-depth-write, depth writes are not performed>> if
4039    there is no depth framebuffer attachment (internal issue 1771).
4040  * Allow implementations to use rectangular line style of interpolation for
4041    <<primsrast-lines-bresenham, wide Bresenham lines>>, though replicating
4042    attributes is still preferred. Clarify that code:FragCoord is not
4043    replicated (internal issue 1772).
4044  * Resolve a contradiction in valid usage statements for
4045    slink:VkImageCreateInfo and slink:VkImageStencilUsageCreateInfoEXT
4046    (internal issue 1773).
4047  * Add style guide discussion of markup for indented equations, and use
4048    markup workaround for asciidoctor 2 compatibility (internal issue 1793).
4049  * Deprecate the `<<VK_EXT_validation_flags>>` extension in `vk.xml` and
4050    the extension appendix (internal issue 1801).
4051  * Add a new checker script `scripts/xml_consistency.py`. This is not
4052    currently run as part of internal CI (internal merge request 3285).
4053  * Correct "`an`" -> "`a`" prepositions where needed (internal merge
4054    request 3334).
4055  * Clarify that the <<features-uniformBufferStandardLayout,
4056    pname:uniformBufferStandardLayout>> feature is only required when the
4057    extension defining it is supported (internal merge request 3341).
4058  * Bring scripts into closer sync with OpenXR, mainly through conversion of
4059    comments to docstrings where appropriate, and add gen-scripts-docs.sh
4060    (internal merge request 3324).
4061  * Correct pname:maxDrawMeshTasksCount to 2^16^-1 in the <<limits-required,
4062    Required Limits>> table (internal merge requests 3361).
4063
4064New Extensions
4065
4066  * `<<VK_IMG_format_pvrtc>>` (public issue 512).
4067
4068-----------------------------------------------------
4069
4070Change log for August 25, 2019 Vulkan 1.1.121 spec update:
4071
4072  * Update release number to 121.
4073
4074Github Issues:
4075
4076  * Add missing `structextends` attribute in `vk.xml` for
4077    slink:VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR (public
4078    issue 1018).
4079  * Change attributes of flink:vkCmdCopyAccelerationStructureNV,
4080    flink:vkCmdWriteAccelerationStructuresPropertiesNV,
4081    flink:vkCmdBuildAccelerationStructureNV, and flink:vkCmdTraceRaysNV to
4082    require that these commands execute outside renderpasses (public issue
4083    1021).
4084  * Add an issue to the `<<VK_EXT_buffer_device_address>>` appendix
4085    discussing the introduction of new names and aliasing by equivalent old
4086    names (public pull request 1024).
4087
4088Internal Issues:
4089
4090  * Protect the `VK_KHR_sampler_mirror_clamp_to_edge` extension with
4091    asciidoctor conditionals, and remove it from the core-only specification
4092    builds, where it had previously been force-included in the Makefile. It
4093    is now treated like any other extension (internal issue 1776).
4094  * Edit some asciidoctor anchor names starting with `features-features-` to
4095    just start with `features-`, since the old chapters was split into 3
4096    pieces. There are still some mild naming inconsistencies with anchors
4097    which may be addressed in the future (internal issue 1792).
4098  * Add `KHR` alias for the non-suffixed extension token
4099    ename:VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE, for compatibility
4100    with naming rules for extensions (internal issue 1796).
4101  * Clarify requirements for external memory in NOTEs for
4102    sname:VkExternalMemoryBufferCreateInfo, and valid usage statements for
4103    flink:vkBindBufferMemory, slink:VkBindBufferMemoryInfo,
4104    flink:vkBindImageMemory, and slink:VkBindImageMemoryInfo (internal merge
4105    request 3301).
4106  * Make extension version numbers in `vk.xml` and extension appendices
4107    consistent. In a few cases, we could not recover history at this
4108    granularity, and left the summary of a version's change undefined
4109    (internal merge request 3323).
4110  * Fix invocation of `CodeInlineMacro` in the Ruby extension backing the
4111    `code:` macro, which was delegating to the wrong base class (internal
4112    merge request 3331).
4113  * Modify `reg.py` to do a better job of recognizing equivalent <enum>
4114    definitions.
4115  * Add a `sortorder` attribute to XML feature and extension tags.
4116
4117New Extensions
4118
4119  * `<<VK_AMD_device_coherent_memory>>`
4120
4121-----------------------------------------------------
4122
4123Change log for August 17, 2019 Vulkan 1.1.120 spec update:
4124
4125  * Update release number to 120.
4126
4127Github Issues:
4128
4129  * Add slink:VkAccelerationStructureTypeNV explicitly to extension XML for
4130    `<<VK_NV_ray_tracing>>` (public issue 848).
4131  * Add missing valid usage statements for feature flags in
4132    slink:VkCommandBufferInheritanceInfo (public pull request 1017).
4133
4134Internal Issues:
4135
4136  * Clarify behavior of non-premultiplied destination colors for
4137    `<<VK_EXT_blend_operation_advanced>>` prior to the definition of
4138    slink:VkBlendOverlapEXT (internal issue 1766).
4139  * Fix the confusing phrasing "`no other queue must: be (doing something)`"
4140    for flink:vkQueuePresentKHR, flink:vkQueueSubmit, and
4141    flink:vkQueueBindSparse (internal issue 1774).
4142  * Add `<<VK_EXT_validation_features>>` flag to enable best practices
4143    checks, which will soon be available in the validation layer (internal
4144    issue 1779).
4145  * Specify allowed characters for VUID tag name components in the style
4146    guide (internal issue 1788).
4147  * Update links to SPIR-V extension specifications, and parameterize their
4148    markup in case the URLs change in the future (internal issue 1797).
4149  * Fix an off-by-one error in the valid usage statement for
4150    slink:VkPipelineExecutableInfoKHR (internal merge request 3303).
4151  * Clean up markup indentation not matching the style guide (internal merge
4152    request 3314).
4153  * Minor script updates to allow refpage aliases, generate a dynamic TOC
4154    for refpages, generate Apache rewrite rules for aliases, open external
4155    links from refpages in a new window, and synchronize with the OpenCL
4156    scripts. This will shortly enable a paned navigation setup for refpages,
4157    similar to the OpenCL 2.2 refpages (internal merge request 3322).
4158  * Script updates to add tests to the checker, refactor and reformat code,
4159    generate better text for some valid usage statements, use more Pythonic
4160    idioms, and synchronize with the OpenXR scripts (internal merge request
4161    3239).
4162  * Script updates and minor fixes in spec language to not raise checker
4163    errors for refpage markup of pages not existing in the API, such as
4164    VKAPI_NO_STDINT_H. Remove corresponding suppression of some
4165    check_spec_links.py tests from .gitlab-ci.yml and 'allchecks' target
4166    (internal merge request 3315).
4167
4168-----------------------------------------------------
4169
4170Change log for August 11, 2019 Vulkan 1.1.119 spec update:
4171
4172  * Update release number to 119.
4173  * A new extension was accidentally left out of the 1.1.118 spec update.
4174    This update corrects that oversight.
4175
4176New Extensions:
4177
4178  * `<<VK_KHR_pipeline_executable_properties>>`
4179
4180-----------------------------------------------------
4181
4182Change log for August 11, 2019 Vulkan 1.1.118 spec update:
4183
4184  * Update release number to 118.
4185
4186Github Issues:
4187
4188  * Update `BUILD.adoc` to specifically require asciidoctor 1.5.8, and make
4189    that change to the gitlab CI script (public issue 968).
4190  * Remove redundant slink:VkSubpassDependency and
4191    slink:VkSubpassDependency2KHR valid usage statements
4192    (public pull request 995).
4193  * Clarify the <<vkGetInstanceProcAddr behavior>> and <<vkGetDeviceProcAddr
4194    behavior>> tables (public pull request 1004).
4195  * Fix use of nonexistent
4196    slink:VkSamplerYcbcrConversionImageFormatProperties::pname:maxCombinedImageSamplerDescriptorCount
4197    (public pull request 1010).
4198  * Use compatible pathlib for python2 (public pull request 1012).
4199
4200Internal Issues:
4201
4202  * Mark the <<VK_KHR_vulkan_memory_model>> extension as no longer
4203    provisional in `vk.xml` (internal issue 1369).
4204  * Clarify that use-defined code:Input and code:Output variables cannot be
4205    code:Boolean in the <<interfaces-iointerfaces-user, User-defined
4206    Variable Interface>> section (internal issue 1663).
4207  * Fix naming inconsistencies in
4208    slink:VkPhysicalDevicePerformanceQueryFeaturesKHR,
4209    slink:VkPhysicalDevicePerformanceQueryPropertiesKHR,
4210    slink:VkQueryPoolPerformanceCreateInfoKHR, and associated enumerants
4211    (internal issue 1746).
4212  * Use ACM reference style for normative references (internal merge request
4213    3256).
4214  * Explicitly list the features changed in Vulkan 1.1 in the
4215    <<features-requirements, Feature Requirements>> section and the
4216    <<versions, Core Revisions (Informative)>> appendix (internal merge
4217    request 3274).
4218  * Add the slink:VkPhysicalDeviceSubgroupSizeControlFeaturesEXT structure
4219    to the <<VK_EXT_subgroup_size_control>> extension, which was
4220    accidentally omitted in the initial release of the extension (internal
4221    merge request 3287).
4222  * Add missing slink:VkImageUsageFlag description for
4223    ename:VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT (internal merge
4224    request 3292).
4225  * Add valid usage statements to slink:VkAccelerationStructureInfoNV and
4226    flink:vkGetAccelerationStructureHandleNV to clarify usage of
4227    acceleration structure handle and geometries (internal merge request
4228    3292).
4229
4230New Extensions:
4231
4232  * `<<VK_AMD_shader_core_properties2>>`
4233  * `<<VK_AMD_pipeline_compiler_control>>`
4234
4235-----------------------------------------------------
4236
4237Change log for July 28, 2019 Vulkan 1.1.117 spec update:
4238
4239  * Update release number to 117.
4240
4241Github Issues:
4242
4243  * Add ename:VK_STENCIL_FACE_FRONT_AND_BACK for naming consistency, and
4244    alias the old ename:VK_STENCIL_FRONT_AND_BACK for backwards
4245    compatibility (public issue 991).
4246  * Fix minor issues with valid usage statements for
4247    flink:vkCreateFramebuffer, slink:VkFramebufferCreateInfo, and
4248    slink:VkRenderPassBeginInfo when the `<<VK_KHR_imageless_framebuffer>>`
4249    extension is enabled (public issue 998).
4250  * Clarify the subpass dependency requirement in the
4251    <<renderpass-layout-transitions>> section to eliminate the need for a
4252    subpass dependency for either the same or different layouts as long as
4253    they're both read-only (relates to
4254    https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/948).
4255
4256Internal Issues:
4257
4258  * Document that <<extendingvulkan-compatibility-promotion, backwards
4259    compatibility aliases are not promoted>> as part of promoting an
4260    extension (internal issue 1677).
4261  * Update VK_ANDROID_native_buffer extension to spec version 8 (internal
4262    issue 1753).
4263  * Add missing section to the <<VK_KHR_shader_controls_v4_incompatibility,
4264    VK_KHR_shader_float_controls>> extension appendix describing
4265    the reason for the breaking API change in version 4 of the extension,
4266    and correct the version to 4 in `vk.xml` (internal merge request
4267    3275).
4268  * Add valid usage statements to slink:VkAccelerationStructureInfoNV
4269    requiring the ename:VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag for
4270    buffers used in acceleration structure building.
4271
4272New Extensions:
4273
4274  * `<<VK_EXT_line_rasterization>>`
4275  * `<<VK_EXT_texture_compression_astc_hdr>>`
4276  * `<<VK_EXT_index_type_uint8>>`
4277
4278-----------------------------------------------------
4279
4280Change log for July 20, 2019 Vulkan 1.1.116 spec update:
4281
4282  * Happy 50th Lunar Landing Day!
4283  * Update release number to 116.
4284
4285Internal Issues:
4286
4287  * Clarify that flink:vkCmdBeginQuery is the same as
4288    flink:vkCmdBeginQueryIndexEXT with index = 0, and that
4289    flink:vkCmdEndQuery is the same as flink:vkCmdEndQueryIndexEXT with
4290    index = 0 (internal issue 1735).
4291  * Clarify that when copying the depth aspect between buffers and images
4292    via slink:VkBufferImage Copy, the depth values in buffer memory must be
4293    in range if the `<<VK_EXT_depth_range_unrestricted>>` extension is not
4294    enabled (internal issue 1737).
4295  * Minor language tweaks in the <<spirvenv-module-validation, Validation
4296    Rules within a Module>> section (internal issue 1744).
4297  * Change the slink:VkPhysicalDeviceFloatControlsPropertiesKHR structure in
4298    the `<<VK_KHR_shader_controls>>` extension. This is a rare case of
4299    breaking the interface of an existing extension to acknowledge the
4300    reality of divergent vendor implementations that could not be described
4301    properly otherwise, and the breaking change is considered acceptable
4302    given the expected low use of the extension (internal issue 1734).
4303    Specific changes:
4304  ** Added the slink:VkShaderFloatControlsIndependenceKHR enumeration to
4305     describe the three possible behaviors.
4306  ** Renamed pname:separateDenormSettings to
4307     pname:denormBehaviorIndependence.
4308  ** Renamed pname:separateRoundingModeSettings to
4309     pname:roundingModeIndependence
4310  * Add a missing valid usage statement for
4311    slink:VkQueryPoolCreateInfo::pname:queryCount (internal issue 1742).
4312  * Update the `<<VK_NV_shading_rate_image>>` appendix to list all
4313    interfaces defined by the extension.
4314  * Add a valid usage statement to
4315    slink:VkWriteDescriptorSetAccelerationStructureNV to clarify that
4316    acceleration structure descriptors must be top level structures.
4317
4318New Extensions:
4319
4320  * `<<VK_EXT_subgroup_size_control>>`
4321
4322-----------------------------------------------------
4323
4324Change log for July 14, 2019 Vulkan 1.1.115 spec update:
4325
4326  * Update release number to 115.
4327
4328GitHub issues:
4329
4330  * Add valid usage statements to slink:VkWriteDescriptorSet and
4331    slink:VkCopyDescriptorSet specifying that updating immutable descriptors
4332    with ename:VK_DESCRIPTOR_TYPE_SAMPLER is invalid, and that updating
4333    ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER ignores the update's
4334    samplers (public issue 985).
4335  * Document that the `manhtmlpages` target requires building with all
4336    extensions enabled, in `BUILD.adoc` (public issue 992).
4337  * Fix reference to the wrong subpass in valid usage statement for
4338    slink:VkRenderPassCreateInfo (public pull request 994).
4339
4340Internal Issues:
4341
4342  * Rename slink:VkPhysicalDeviceShaderIntegerFunctions2INTEL and
4343    ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS2_FEATURES_INTEL
4344    for consistency with global naming conventions, and to help code
4345    generation in other projects (internal issue 1685).
4346  * Update valid usage statements for image code:Offset / code:ConstOffset
4347    usage in the <<textures-gather, Texel Gathering>> and
4348    <<spirvenv-module-validation, Validation Rules within a Module>>
4349    sections, and for the <<limits-minTexelGatherOffset>> and
4350    <<limits-maxTexelGatherOffset>> limits (internal issue 1723).
4351  * Require code:code:OpGroupNonUniformBroadcast to take a constant `Id`
4352    operand in the <<spirvenv-module-validation, Validation Rules within a
4353    Module>> sections (internal issue 1726).
4354  * Note that the swapchain specified in slink:VkImageSwapchainCreateInfoKHR
4355    when creating an image must match the one specified in
4356    slink:VkBindImageMemorySwapchainInfoKHR when binding memory to the image
4357    (internal issue 1729).
4358  * Remove stext:KHR suffix from some structure cross-references that were
4359    promoted to Vulkan 1.1 (internal issue 1730).
4360  * Fix structure name in `structextends` attribute for
4361    slink:VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT in `vk.xml`
4362    (internal issue 1740).
4363  * Fix an error in the code:ClipColor() pseudocode for
4364    <<VK_EXT_blend_operation_advanced>> (internal issue 1741).
4365  * Add a row for
4366    ename:VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV to the
4367    description of elink:VkQueryType, and make a few related minor text
4368    cleanups.
4369  * Rename slink:VkPhysicalDeviceFloat16Int8FeaturesKHR to
4370    slink:VkPhysicalDeviceShaderFloat16Int8FeaturesKHR for consistency,
4371    retaining aliases of the old structure name and structure type enum for
4372    backwards compatibility.
4373
4374-----------------------------------------------------
4375
4376Change log for July 7, 2019 Vulkan 1.1.114 spec update:
4377
4378  * Update release number to 114.
4379
4380Internal Issues:
4381
4382  * Fix extension appendix for `<<VK_INTEL_performance_query>>` to remove
4383    duplicate citation of ename:VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL
4384    (internal merge request 3234).
4385
4386New Extensions:
4387
4388  * `<<VK_KHR_imageless_framebuffer>>`
4389
4390-----------------------------------------------------
4391
4392Change log for June 30, 2019 Vulkan 1.1.113 spec update:
4393
4394  * Update release number to 113.
4395
4396Github Issues:
4397
4398  * Fix typo in `<<VK_EXT_global_priority>>` appendix (public issue 979).
4399
4400Internal Issues:
4401
4402  * Expand the explanation of
4403    slink:VkSamplerYcbcrConversionImageFormatPropertiesKHR::pname:combinedImageSamplerDescriptorCount,
4404    and explain how it interacts with slink:VkWriteDescriptorSet,
4405    slink:VkDescriptorSetLayoutBinding::pname:descriptorCount, and
4406    slink:VkDescriptorPoolSize::pname:descriptorCount (internal issue 1643).
4407  * Clarify restrictions on components for code:OpImageGather in the
4408    <<spirvenv-module-validation, Validation Rules within a Module>> section
4409    (internal issue 1707).
4410  * Clarify the descriptions of <<limits-computeUnitsPerShaderArray,
4411    pname:computeUnitsPerShaderArray>> and <<limits-wavefrontSize,
4412    pname:wavefrontSize>> fields in
4413    slink:VkPhysicalDeviceShaderCorePropertiesAMD.
4414
4415New Extensions:
4416
4417  * `<<VK_EXT_texel_buffer_alignment>>`
4418  * `<<VK_EXT_shader_demote_to_helper_invocation>>`
4419
4420-----------------------------------------------------
4421
4422Change log for June 23, 2019 Vulkan 1.1.112 spec update:
4423
4424  * Update release number to 112.
4425
4426Github Issues:
4427
4428  * Clarify that it is possible to use the <<memory-host, Host Memory>>
4429    pname:pfnReallocation callback to free memory in any case that
4430    pname:pfnFree could be used (public issue 973).
4431
4432Internal Issues:
4433
4434  * Clarify range and precision of code:OpImageQueryLod in the discussion of
4435    scale factor and level-of-detail operation in the
4436    <<textures-normalized-operations, Normalized Texel Coordinate
4437    Operations>> section (internal issues 926, 1719).
4438  * Fix framebuffer layer valid usage statements for
4439    slink:VkRenderPassCreateInfo, slink:VkRenderPassCreateInfo2KHR, and
4440    slink:VkFramebufferCreateInfo (internal issue 1670).
4441  * Refactor common valid usage statements for flink:vkCmdBeginQuery and
4442    flink:vkCmdBeginQueryIndexedEXT (internal issue 1682).
4443  * Prohibit the ename:ename:VK_SAMPLER_YCBCR_RANGE_ITU_NARROW range from
4444    being used in slink:VkSamplerYcbcrConversionCreateInfo for formats with
4445    a bit depth less than 8 (internal issue 1688).
4446  * Add missing interactions with `<<VK_EXT_host_query_reset_usage>>` in the
4447    <<queries, Queries>> chapter (internal issue 1692).
4448  * Clean up error output from the `optimize-pdf` build script on success.
4449  * Fix an internal link to the <<spirvenv-correctly-rounded, Correctly
4450    Rounded>> section in the SPIR-V appendix by adding and referring to that
4451    anchor.
4452  * Fix extension version numbers in `vk.xml` for `VK_EXT_filter_cubic` and
4453    `VK_IMG_filter_cubic`.
4454  * Specify division precision for negative numbers, and remove statement
4455    that trigonometric functions have undefined precision, in the
4456    <<spirvenv-precision-operation, Precision and Operation of SPIR-V
4457    Instructions>> appendix.
4458
4459-----------------------------------------------------
4460
4461Change log for June 10, 2019 Vulkan 1.1.111 spec update:
4462
4463  * Update release number to 111.
4464
4465Github Issues:
4466
4467  * Clean up flink:vkGetPhysicalDeviceSurfaceFormatsKHR and
4468    flink:vkGetPhysicalDeviceSurfaceFormats2KHR to drop the
4469    ename:VK_FORMAT_UNDEFINED case, require callers pass a supported
4470    surface, and rearrange some validation-related language (public issue
4471    207).
4472  * Allow dynamic and nonuniform indexing of acceleration structures in the
4473    <<interfaces-resources-descset, Descriptor Set Interface>> section
4474    (public KhronosGroup/glslang issue 1766).
4475
4476Internal Issues:
4477
4478  * Clarify when images require the use of YCbCr samplers for
4479    slink:VkWriteDescriptorSet and slink:VkImageViewCreateInfo (internal
4480    issue 1639).
4481  * Remove the "`block`" language around <<features-robustBufferAccess,
4482    vectorizing and robust buffer access>> (internal issue 1642).
4483  * Allow code:OpTypeImageFormat == code:Unknown for input attachments in
4484    the <<interfaces-resources-descset, Descriptor Set Interface>> section
4485    (internal issue 1645).
4486  * Fix asciidoctor conditionals around
4487    ename:VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT in the
4488    <<fundamentals-errorcodes>> section (internal issue 1679).
4489  * Remove error codes from `vk.xml` for
4490    flink:vkUninitializePerformanceApiINTEL, which has a `void` return type
4491    (internal issue 1704).
4492  * Various subgroup-related fixes in the <<spirvenv-capabilities,
4493    Capabilities>>, <<shaders-subgroup-arithmetic, Arithmetic Subgroup
4494    Operations>>, <<shaders-subgroup-clustered, Clustered Subgroup
4495    Operations>>, and <<shaders-subgroup-partitioned, Partitioned Subgroup
4496    Operations>> sections (internal merge request 3164).
4497  * Fix asciidoctor markup affecting math rendering in the <<Precision of
4498    core SPIR-V Instructions>> table (internal merge request 3166).
4499  * Fix incorrect reference to flink:vkGetPhysicalDeviceFeatures2KHR in the
4500    description of slink:VkPhysicalDeviceASTCDecodeFeaturesEXT (internal
4501    merge request 3169).
4502  * Fix a non-sentence in the introduction to the <<textures, Image
4503    Operations Overview>> section (internal merge request 3184).
4504  * Minor markup, grammar, and typo fixes for the
4505    `<<NV_shader_sm_builtins>>` extension spec language (internal merge
4506    request 3189).
4507  * Clarify that 1D and 1D array format support is optional for cubic
4508    filters, immediately following the <<formats-mandatory-features-astc,
4509    Mandatory ASTC LDR format support>> table (internal merge request 3194).
4510
4511-----------------------------------------------------
4512
4513Change log for June 2, 2019 Vulkan 1.1.110 spec update:
4514
4515  * Update release number to 110.
4516
4517Github Issues:
4518
4519  * Fix typo (public pull request 972).
4520  * Rename Pastel driver ID to SwiftShader (public pull request 974).
4521
4522New Extensions:
4523
4524  * `<<VK_EXT_fragment_shader_interlock>>`
4525  * `<<VK_NV_shader_sm_builtins>>`
4526
4527-----------------------------------------------------
4528
4529Change log for May 24, 2019 Vulkan 1.1.109 spec update:
4530
4531  * Update release number to 109.
4532
4533Github Issues:
4534
4535  * Require matching for physical devices to be in a device group in the
4536    <<devsandqueues-devices, Devices>> section (public issue 695).
4537  * Fix typo in an equation in the <<fragmentdensitymap-fetch-density-value,
4538    Fetch Density Value>> section (public issue 954).
4539  * Fix styleguide links (public pull request 965).
4540
4541Internal Issues:
4542
4543  * Allow <<renderpass-compatibility, compatibility of single-subpass
4544    renderpasses>> with different resolve attachments (internal issue 1464).
4545  * Add some missing empty flags types to API spec so custom refpage
4546    generation doesn't break (internal issue 1607).
4547  * Add a "`SPIR-V Sampled Type`" column to the <<formats-numericformat,
4548    Interpretation of Numeric Formats>> table, and clarify the requirement
4549    that the code:OpTypeImage sampled type match the bound image's numeric
4550    format for slink:VkClearColorValue and in the
4551    <<interfaces-resources-descset, Descriptor Set Interface>> section
4552    (internal issue 1646).
4553  * Fix a typo in the <<tessellation-quad-tessellation, Quad Tessellation>>
4554    section which should refer to rectangles, not triangles (internal issue
4555    1667).
4556  * Clarify the definition of time domains in elink:VkTimeDomainEXT
4557    (internal merge request 3110).
4558  * Add R10X6 and R12X4 formats to the <<formats-mandatory-features-10bit>>
4559    table (internal merge request 3137).
4560  * Don't require extern sync on wait/signal semaphores in `vk.xml` for
4561    flink:vkQueueSubmit and flink:vkQueueBindSparse (internal merge request
4562    3116).
4563  * Improve phrasing of compute and mesh shader size related to
4564    code:LocalSize and code:WorkgroupSize in
4565    slink:VkPhysicalDeviceMeshShaderPropertiesNV and
4566    slink:VkPhysicalDeviceMaintenance3Properties (internal merge request
4567    3156).
4568  * Make the flink:vkCmdBindShadingRateImageNV pname:imageView parameter
4569    optional in `vk.xml` (internal merge request 3157).
4570
4571New Extensions:
4572
4573  * `<<VK_INTEL_performance_query>>`
4574  * `<<VK_INTEL_shader_integer_functions2>>`
4575
4576-----------------------------------------------------
4577
4578Change log for May 13, 2019 Vulkan 1.1.108 spec update:
4579
4580  * Update release number to 108.
4581
4582Internal Issues:
4583
4584  * Clarify that only external resources can be bound to external memory in
4585    valid usage statements for flink:vkBindBufferMemory,
4586    flink:vkBindImageMemory, slink:VkSparseMemoryBind, and
4587    slink:VkSparseImageMemoryBind (internal issue 1496).
4588  * Move all `vk.xml`requirements for
4589    flink:vkGetDeviceGroupSurfacePresentModes2EXT into
4590    `<<VK_EXT_full_screen_exclusive>>` (internal issue 1622).
4591  * Add some missing valid usage statements for
4592    flink:vkCmdEndQueryIndexedEXT (internal issue 1638).
4593  * Specify rules for defining "`New Flags and Bitmask Types`" in that
4594    section of the style guide (internal issue 1649).
4595  * Add a comment to the `vk.xml` extension block for
4596    `VK_ANDROID_native_buffer` explaining why the extension is tagged
4597    `"disabled"` (internal issue 1657).
4598  * Fix typos in the description of slink:VkImageViewCreateInfo (internal
4599    issue 1661).
4600  * Modify valid usage statements for slink:VkImageViewCreateInfo to fix the
4601    description about the restriction for pname:baseArrayLayer and
4602    pname:layerCount from pname:extent.depth to the depth of mipmap level
4603    while creating a 2D array image view on a 3D image.
4604  * Forbid structures that contain opaque types (images or samplers) in the
4605    SPIR-V <<spirvenv-module-validation, Validation Rules within a Module>>
4606    section.
4607  * Minor editorial changes for the `VK_EXT_swapchain_colorspace` extension
4608    in the description of slink:VkColorSpace KHR and `vk.xml`, including:
4609  ** Consistently specify which function (OETF or Inverse-EOTF) is being
4610     defined;
4611  ** Remove the Display P3 EOTF, since no other EOTFs are defined;
4612  ** Include luminance range for the HLG OETF;
4613  ** Remove a duplicated paragraph; and,
4614  ** Rename ename:VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT, leaving the old
4615     ename:VK_COLOR_SPACE_DCI_P3_LINEAR_EXT token as an alias.
4616
4617New Extensions:
4618
4619  * `<<VK_NV_framebuffer_mixed_samples_coverage_reduction_mode>>`
4620  * `<<VK_KHR_uniform_buffer_standard_layout>>`
4621
4622-----------------------------------------------------
4623
4624Change log for April 16, 2019 Vulkan 1.1.107 spec update:
4625
4626  * Update release number to 107.
4627
4628Public Issues:
4629
4630  * Fix revision date for the `<<VK_AMD_gpu_shader_half_float>>` appendix
4631    (public issue 617).
4632  * Make <<synchronization-pipeline-barriers-subpass-self-dependencies,
4633    subpass self-dependencies>> less restrictive (public issue 777).
4634  * Fix the `<<VK_EXT_full_screen_exclusive>>` dependency on
4635    `<<VK_KHR_win32_surface>>` in `vk.xml` (public pull request 849).
4636  * Remove single-page (`apispec.html`) refpage sub-targets from the
4637    Makefile `allman` target and the build instructions. The target is still
4638    present in the Makefile, but we have not been actively maintaining the
4639    single-page document and do not promise it will work. The full
4640    Specification and the individual API reference pages are what we support
4641    and publish at present (public issue 949).
4642
4643Internal Issues:
4644
4645  * De-duplicate common valid usage statements shared by multiple commands
4646    or structures by using asciidoctor includes and dynamically assigning
4647    part of the valid usage ID based on which command or structure they're
4648    being applied to (internal issue 779).
4649  * Add reference pages for constructs not part of the formal API, such as
4650    platform calling convention macros, and script changes supporting them
4651    This required suppressing some check_spec_links warning classes in order
4652    to pass CI, until a more sophisticated fix can be done (internal issue
4653    888).
4654  * Change math notation for the elink:VkPrimitiveTopology descriptions to
4655    use short forms `v` and `p` instead of `vertex` and `primitive`,
4656    increasing legibility (internal issue 1611).
4657  * Rewrite generated file includes relative to a globally specified path,
4658    fixing some issues with refpage generation (internal issue 1630).
4659  * Update contributor list for `<<VK_EXT_calibrated_timestamps>>`.
4660  * Fix use of pathlin in `scripts/generator.py` so the script will work on
4661    Windows under Python 3.5 (internal merge request 3107).
4662  * Add missing conditionals around the
4663    <<descriptorsets-accelerationstructure, Acceleration Structure>>
4664    section (internal merge request 3108).
4665  * More script synchronization with OpenXR spec repository (internal merge
4666    request 3109).
4667  * Mark the `<<VK_AMD_gpu_shader_half_float>>` and
4668    `<<VK_AMD_gpu_shader_int16>>` extensions as deprecated in `vk.xml` and
4669    the corresponding extension appendices (internal merge request 3112).
4670
4671New Extensions:
4672
4673  * `<<VK_EXT_headless_surface>>`
4674
4675-----------------------------------------------------
4676
4677Change log for April 7, 2019 Vulkan 1.1.106 spec update:
4678
4679  * Update release number to 106.
4680
4681Public Issues:
4682
4683  * Add searchbox and generate search index for the chunked HTML target.
4684    Note that doing this requires several new toolchain components to build
4685    the `chunked` target (public issue 578 / internal issue 1352).
4686  * Remove descriptions of flink:vkCreateSampler sampler constraints which
4687    were repeated in the valid usage statements (public pull request 648).
4688  * Fix sense of conditional around a valid usage statement in the
4689    <<copies>> chapter (public issue 942).
4690
4691Internal Issues:
4692
4693  * Add missing pname:extent.width and pname:extent.height valid usage
4694    statements for flink:vkCmdClearAttachments (internal issue 1583).
4695  * Fix some inconsistencies in structures and corresponding pname:sType
4696    enumerant names by renaming
4697    sname:VkPhysicalDeviceShaderDrawParameterFeatures ->
4698    slink:slink:VkPhysicalDeviceShaderDrawParametersFeatures;
4699    sname:VkPhysicalDeviceVariablePointerFeatures ->
4700    slink:VkPhysicalDeviceVariablePointerFeatures;
4701    sname:VkPhysicalDeviceVariablePointerFeaturesKHR ->
4702    slink:VkPhysicalDeviceVariablePointerFeaturesKHR;
4703    sname:VkPhysicalDeviceBufferAddressFeaturesEXT ->
4704    slink:VkPhysicalDeviceBufferDeviceAddressFeaturesEXT;
4705    etext:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES
4706    ->
4707    ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES;
4708    etext:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES ->
4709    ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES;
4710    etext:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR ->
4711    ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR;
4712    and etext:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT
4713    ->
4714    ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT.
4715    The old names are still available as aliases for backwards
4716    compatibility. This change required introducing valid XML markup which
4717    externally written XML processing scripts may need to be modified to
4718    accomodate, to support multiple aliases of a single command or token
4719    name (internal issue 1592).
4720  * Add slink:VkDevice as the first parameter to flink:vkSetLocalDimmingAMD
4721    (internal issue 1618).
4722  * Improve CI header compilation tests to test all Vulkan platform
4723    includes, using fake platform headers where needed, and change the
4724    `allchecks` Makefile target to use the more comprehensive
4725    `check_spec_links.py` script instead of the retired `checkinc` and
4726    `checklinks` targets.
4727  * Move descriptions of the ASTC compressed texture decode mode from the
4728    <<appendix-compressedtex-astc,appendix>> to the recently updated
4729    external Khronos Data Format Specification.
4730  * Fix minor markup and spelling issues in the `VK_NV_ray_tracing`
4731    extension.
4732
4733-----------------------------------------------------
4734
4735Change log for March 19, 2019 Vulkan 1.1.105 spec update (GDC edition):
4736
4737  * Update release number to 105.
4738
4739Public Issues:
4740
4741  * Fix contractions and other markup issues (public pull request 935).
4742
4743New Extensions:
4744
4745  * Google Games Platform
4746  ** New `ggp` platform and associated header file `vulkan_ggp.h`
4747  ** `VK_GGP_frame_token`
4748  ** `VK_GGP_stream_descriptor_surface`
4749
4750-----------------------------------------------------
4751
4752Change log for March 18, 2019 Vulkan 1.1.104 spec update:
4753
4754  * Update release number to 104.
4755
4756Public Issues:
4757
4758  * Remove the incorrect line from "`Initial`" to "`Invalid`" state in the
4759    <<commandbuffer-lifecycle-diagram, Lifecycle of a command buffer>>
4760    diagram (public issue 881).
4761  * Add Fuchsia platform to <<boilerplate-wsi-header-table, Window System
4762    Extensions and Headers>> table (public pull request 933).
4763  * Change the type of
4764    slink:VkBufferDeviceAddressCreateInfoEXT::pname:deviceAddress from
4765    basetype:VkDeviceSize to basetype:VkDeviceAddress. These are both
4766    typedefs of code:uint64_t, so it is an ABI-compatible change (public
4767    issue 934).
4768
4769Internal Issues:
4770
4771  * Remove generated header files and update the CI tests to build a copy of
4772    the headers for use by the hpp-generate / hpp-compile CI stages. Targets
4773    to generate the headers will not be removed, but keeping these generated
4774    files in the repository increased the frequency of conflicts between
4775    branches when merging to master (internal issue 745).
4776  * Reword "`undefined: behavior if *action*" to "`must: not do *action*`"
4777    in the places the old terminology was used, and add a new
4778    <<writing-undefined, Describing Undefined Behavior>> section of the
4779    style guide to explain how to write such language in the future
4780    (internal issue 1579).
4781  * Move almost all Python scripts into the toplevel `scripts/` directory.
4782    Apply extensive internal edits to clean up and simplify the scripts, and
4783    try to follow PEP8 guidelines. Generalize the scripts with the use of a
4784    Conventions object controlling many aspects of output generation, to
4785    enable their use in other Khronos projects with similar requirements.
4786    Autogenerate extension interface refpages (these are experimental and
4787    may be retired going forward).
4788
4789New Extensions:
4790
4791  * `VK_AMD_display_native_hdr`
4792  * `VK_EXT_full_screen_exclusive` (internal issue 1439)
4793  * `VK_EXT_host_query_reset`
4794  * `VK_EXT_pipeline_creation_feedback` (internal issue 1560)
4795  * `VK_KHR_surface_protected_capabilities` (internal issue 1520)
4796
4797-----------------------------------------------------
4798
4799Change log for March 11, 2019 Vulkan 1.1.103 spec update:
4800
4801  * Update release number to 103.
4802
4803Public Issues:
4804
4805  * Remove (unnecessary) scoped modification order case from the memory
4806    model <<memory-model-location-ordered, location-ordered>> definition
4807    (public pull request 924).
4808  * Add an <<memory-model-acyclicity, acyclicity>> axiom to the memory model
4809    (public pull request 927).
4810
4811Internal Issues:
4812
4813  * Fix reversed logic of slink:VkFormatProperties discussion of multi-plane
4814    formats and ename:VK_FORMAT_FEATURE_DISJOINT_BIT (internal issue 1493).
4815  * Clarify how slink:VkImageStencilUsageCreateInfoEXT works, including new
4816    valid usage statements for flink:vkCmdClearDepthStencilImage, and the
4817    <<copies, Common Operation>> section of the Copy Commands chapter
4818    (internal issue 1565).
4819  * Update <<spirvenv-precision-operation, Precision and Operation of SPIR-V
4820    Instructions>> section to require that denorms be preserved by several
4821    instructions that don't perform any mathematical operations (internal
4822    issue 1584).
4823  * Remove duplicate valid usage statement from flink:vkAcquireNextImageKHR
4824    (internal merge request 3062).
4825
4826-----------------------------------------------------
4827
4828Change log for March 3, 2019 Vulkan 1.1.102 spec update:
4829
4830  * Update release number to 102.
4831
4832Public Issues:
4833
4834  * Simplify flink:vkGetImageMemoryRequirements constraint for
4835    ename:VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT (public pull request 817).
4836  * Fix typo in markup of the <<textures-texel-coordinate-systems-diagrams,
4837    Texel Coordinate Systems, Corner Sampling>> image that was generating
4838    complaints from chunked HTML output generation (public pull request
4839    928).
4840
4841Internal Issues:
4842
4843  * Split the old <<features, Features>> chapter into four chapters:
4844    <<features, Features>>, <<limits, Limits>>, <<formats, Formats>>, and
4845    <<capabilities, Capabilities>>, with minor edits to the introductory
4846    paragraph of each chapter. Anchor names in these chapters were changed,
4847    with corresponding effects to xrefs to these anchors elsewhere in spec
4848    markup . The purpose is to make the chunked HTML spec output load faster
4849    on what was previously a single, gigantic chapter (internal issue 1554).
4850  * Add ename:VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV, to the supported
4851    pipeline stages for ename:VK_ACCESS_UNIFORM_READ,
4852    ename:VK_ACCESS_SHADER_READ, and ename:VK_ACCESS_SHADER_WRITE in the
4853    <<synchronization-access-types-supported>> table.
4854  * Correct legal name of Google, LLC in vk.xml <tags> section and a
4855    copyright statement.
4856  * Clarify that Vulkan treats the Android
4857    code:AHARDWAREBUFFER_FORMAT_R8G8B8X8_UNORM format as RGBA, and the
4858    application is responsible for forcing the X/A component to be read as
4859    1.0, in the <<memory-external-android-hardware-buffer-formats>> table.
4860  * Clarify the vertex order of various primitive topologies, and define the
4861    order of transform feedback vertex capture based on that. This involves
4862    a lot of refactoring and cleanup in the <<drawing-primitive-topologies,
4863    Primitive Topologies>>, <<geometry-input, Geometry Shader Input
4864    Primitives>> sections, and <<vertexpostproc-transform-feedback Transform
4865    Feedback>> sections, and numerous places in the <<tessellation>>
4866    chapter,
4867
4868New Extensions:
4869
4870  * `VK_EXT_metal_surface`
4871  * `VK_EXT_ycbcr_image_arrays` (internal issue 1361).
4872  * `VK_NVX_image_view_handle`
4873
4874-----------------------------------------------------
4875
4876Change log for February 17, 2019 Vulkan 1.1.101 spec update:
4877
4878  * Update release number to 101.
4879
4880Public Issues:
4881
4882  * Make clear that memory types for imported host memory must be host
4883    visible in slink:VkMemoryHostPointerPropertiesEXT.txt (public issue
4884    897).
4885  * Make <<interfaces-resources-layout, WARNING block>> into a NOTE block,
4886    per the styleguide (public pull request 916).
4887
4888Internal Issues:
4889
4890  * Make <<textures-output-format-conversion, computation of derivatives in
4891    non-uniform flow control>> have undefined behavior (internal issue
4892    1367).
4893  * Make behavior, not just values, undefined for
4894    <<textures-layout-validation, reads from inconsistent YCbCr layouts>>
4895    (internal issue 1366).
4896  * Consolidate version and extension behavior documentation in the
4897    <<extended-functionality, Extended Functionality>> appendix, While a
4898    great deal of text was moved from other parts of the Specification into
4899    the appendix, this just serves to simplify and make consistent
4900    discussions of versions and extensions (internal issue 1473).
4901  * Add limits for slink:VkPhysicalDeviceRayTracingPropertiesNV in the
4902    <<features-limits-types, Required Limit Types>> and
4903    <<features-limits-required, Required Limits>> tables (internal issue
4904    1511).
4905  * Disallow <<memory-protected-memory, indirect calls within protected
4906    command buffers>> by adding valid usage statements for the related
4907    indirect dispatch and draw commands (internal issue 1513).
4908  * Add valid usage stataements to slink:VkGraphicsPipelineCreateInfo,
4909    slink:VkSubpassDescription, slink:VkSubpassDescription2KHR,
4910    slink:VkSubpassDescriptionDepthStencilResolveKHR, and
4911    slink:VkImageViewCreateInfo preventing the creation of a renderpass with
4912    attachments in formats that are not supported for rendering (internal
4913    issue 1552).
4914  * Qualify valid usage statements for
4915    slink:VkAttachmentReference::pname:layout parameter so restrictions only
4916    apply if an attachment is ename:VK_ATTACHMENT_UNUSED (internal issue
4917    1561).
4918  * Add valid usage statement for flink:vkCmdDrawIndirectByteCountEXT
4919    restricting pname:vertexStride to be positive (internal issue 1566).
4920  * Make the `VK_EXT_sample_locations` extension depend on
4921    `VK_KHR_get_physical_device_properties2` in `vk.xml`.
4922  * Rearrange and simplify the <<interfaces-resources-layout, block layout
4923    rules>>.
4924
4925New Extensions:
4926
4927  * `VK_NV_cooperative_matrix`
4928  * `VK_EXT_depth_clip_enable` (internal issue 1485).
4929
4930-----------------------------------------------------
4931
4932Change log for February 10, 2019 Vulkan 1.1.100 spec update:
4933
4934  * Update release number to 100.
4935
4936Public Issues:
4937
4938  * Clarify that scoped modification order only relates to
4939    <<memory-model-atomic-operation, atomic writes>> (public pull request
4940    906).
4941  * Remove `readme.txt` reference from `xml/README.adoc` (public pull
4942    request 907).
4943  * Add missing slink:VkShaderResourceUsageAMD to the <<VK_AMD_shader_info>>
4944    appendix (public pull request 908).
4945  * Fix markup for <<VK_EXT_filter_cubic>> appendix (public pull request
4946    911).
4947  * Fix typo "`attachment`" (public pull request 914).
4948  * Alias the enums for `VK_IMG_filter_cubic` properly to the corresponding
4949    `VK_EXT_filter_cubic` enums, so they appear in the corresponding
4950    enumerated types, instead of as #defines (Vulkan-Headers issue 40).
4951
4952Internal Issues:
4953
4954  * Remove nested conditionals in valid usage statements for
4955    slink:VkFramebufferCreateInfo and flink:vkCmdPipelineBarrier by
4956    duplicating statements along ifdef/ifndef paths for
4957    VK_KHR_depth_stencil_resolve (internal issue 1527).
4958  * Clarify allowed values of <<spirv-precision-operation, SPIR-V operations
4959    near infinity>>. For very large results of operations the allowed range
4960    of return values as defined in the spec didn't include the largest
4961    finite number. In some rounding modes (eg. RTZ) the largest finite
4962    number is the correctly rounded result, so it should be allowed.
4963  * Require descriptor types to match in slink:VkCopyDescriptorSet.
4964
4965-----------------------------------------------------
4966
4967Change log for February 3, 2019 Vulkan 1.1.99 spec update:
4968
4969  * Update release number to 99.
4970
4971Public Issues:
4972
4973  * Add missing pname:pMemoryHostPointerProperties description to
4974    flink:vkGetMemoryHostPointerPropertiesEXT.txt (public pull request 896).
4975  * Minor markup fixes (public pull request 900).
4976  * Minor update to `khronos.css` and markup fixes (originally proposed in
4977    public pull request 901, but done via an internal MR).
4978
4979Internal Issues:
4980
4981  * Document restrictions on image queries for {YCbCr} formats in the
4982    <<formats-requiring-sampler-ycbcr-conversion>> table as well as
4983    for slink:sname:VkImageFormatProperties and slink:VkImageCreateInfo
4984    (internal issue 1361).
4985  * Correct type of the code:FragSizeEXT built-in in the
4986    <<interfaces-builtin-variables, Built-In Variables>> section (internal
4987    issue 1526).
4988  * Clean up math in the <<textures, Image Operations>> chapter by
4989    refactoring, using better naming conventions, updating diagrams to use
4990    the correct orientation, etc. (internal merge request 2968).
4991  * Fix minor typos for slink:VkImageCreateInfo and
4992    slink:VkImageStencilUsageCreateInfoEXT.
4993  * Add missing documentation for tlink:VkResolveModeFlagsKHR.
4994  * Fix extension dependency of pname:scalarBlockLayout in the
4995    <<features-features-requirements, Feature Requirements>> section.
4996  * Fix indexing math for shader binding table calculations in the
4997    <<shader-binding-table-indexing-rules, Indexing Rules>> section, and use
4998    spelling "`any-hit`" consistently.
4999  * Reconcile valid usage statement and text for sampled image layouts in
5000    slink:VkWriteDescriptorSet
5001    (https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/551).
5002  * Make SPIR-V code:OpConvertUToPtr and code:OpConvertPtrToU operations
5003    require a 64-bit integer for physical storage buffer pointers in the
5004    <<spirvenv-module-validation, Validation Rules within a Module>>
5005    section.
5006  * Update to KaTeX 10.0.
5007
5008New Extensions:
5009
5010  * `VK_EXT_filter_cubic`
5011  * `VK_NV_dedicated_allocation_image_aliasing`
5012
5013-----------------------------------------------------
5014
5015Change log for January 13, 2019 Vulkan 1.1.98 spec update:
5016
5017  * Update release number to 98.
5018
5019Public Issues:
5020
5021  * Fix missing markup in flink:vkDestroyPipelineLayout valid usage
5022    statement (pull request 882).
5023  * Add missing contributors for `<<VK_EXT_buffer_device_address>>` (public
5024    pull request 891).
5025
5026Internal Issues:
5027
5028  * Detect nested bullet points in valid usage blocks and warn about them
5029    during VUID assignment (internal issue 1382).
5030  * Update the style guide to document the process for reserving new bits in
5031    bitmask types (internal issue 1411).
5032  * Clarify for slink:VkApplicationInfo::pname:apiVersion and in the
5033    <<fundamentals-validusage-versions, Valid Usage for Newer Core
5034    Versions>> section when it is valid for an application to use a certain
5035    version of Vulkan API functionality (for an instance and for a
5036    device/physical device); and when the validation layers must generate an
5037    error (internal issue 1412).
5038  * Add optional <<memory-model-availability-visibility, transitive
5039    availability/visibility operations to the memory model, including a new
5040    pname:vulkanMemoryModelAvailabilityVisibilityChains feature for
5041    slink:VkPhysicalDeviceVulkanMemoryModelFeaturesKHR (internal issue
5042    1460).
5043  * Add the code:StorageBuffer storage class to those in the
5044    <<interfaces-resources-descset, Descriptor Set Interface>> (internal
5045    issue 1480).
5046  * Add missing `returnedonly` tags for a number of returned extension
5047    structures that can be passed in pname:pNext chains (internal issue
5048    1515).
5049  * Clean up and rearrange some spec language for
5050    slink:VkRenderPassCreateInfo and slink:VkAttachmentReference.txt
5051    (internal issue 1522).
5052  * Correctly round the code:OpVectorTimesScalar and
5053    code:OpMatrixTimesScalar SPIR-V operations in the <<Precision of core
5054    SPIR-V Instructions>> table (internal merge request 2996).
5055  * Work around cases in flink:vkCmdBeginTransformFeedbackEXT,
5056    flink:vkCmdEndTransformFeedbackEXT, and
5057    slink:VkPipelineCoverageModulationStateCreateInfoNV where an array
5058    parameter is `optional` but the length is not in `vk.xml`. This is an
5059    interim fix using `noautovalidity` + handcoded VU replacing those that
5060    should be autogenerated (internal issue 2944 and
5061    https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/480).
5062  * Remove redundant capability validation of the code:float16 and code:int8
5063    SPIR-V capabilities from the <<spirvenv-capabilities, Capabilities>>
5064    section, since they are already covered in the preceding table.
5065  * Update check_spec_links script, including validation for reference page
5066    open blocks. Fix errors identified by the script.
5067
5068-----------------------------------------------------
5069
5070Change log for January 05, 2019 Vulkan 1.1.97 spec update:
5071
5072  * Update release number to 97.
5073
5074Public Issues:
5075
5076  * Add a special case to the <<renderpass-compatibility, Render Pass
5077    Compatibility>> rules allowing single-subpass renderpasses to be
5078    compatible even if they have different resolve attachment references
5079    (public issue 835).
5080  * Fix the miss shader binding table record address rule in the
5081    <<shader-binding-table-indexing-rules, Miss Shaders>> section to index
5082    by code:missIndex, not code:sbtOffset (public issue 875).
5083
5084Internal Issues:
5085
5086  * Add a missing anchor to the elink:VkSamplerCreateFlagBits language
5087    (internal issue 1483).
5088  * Add missing implicit valid usage include for slink:VkHdrMetadataEXT and
5089    corresponding `noautovalidity` attributes in `vk.xml` for the
5090    externally-defined metadata properties (internal issue 1514).
5091  * Remove restrictions on the `mask` parameter of SPIR-V's
5092    code:OpGroupNonUniformXor in the <<spirvenv-module-validation,
5093    Validation Rules within a Module>> appendix (internal merge request
5094    2971).
5095  * Restore `noautovalidity` attribute for
5096    slink:VkPipelineViewportWScalingStateCreateInfoNV::pname:pViewportWScalings
5097    in `vk.xml` (internal merge request 2975).
5098  * Update copyright dates on Khronos-copyrighted files to 2019 (internal
5099    merge request 2980).
5100
5101New Extensions:
5102
5103  * `VK_KHR_depth_stencil_resolve`
5104  * `VK_EXT_buffer_device_address`
5105  * `VK_EXT_memory_budget`
5106  * `VK_EXT_memory_priority`
5107  * `VK_EXT_validation_features`
5108
5109-----------------------------------------------------
5110
5111Change log for December 16, 2018 Vulkan 1.1.96 spec update:
5112
5113  * Update release number to 96.
5114
5115Public Issues:
5116
5117  * Fix typo in `vk.xml` for `structextends` attribute of
5118    slink:VkPhysicalDeviceShadingRateImagePropertiesNV (public PR 870).
5119  * Fix links in optimized PDF output (public PR 879).
5120
5121Internal Issues:
5122
5123  * Add a link to GitHub contributors in the <<credits, Other Credits>>
5124    section (internal issue 808).
5125  * Clarify the behavior of command aliases described in the <<versions,
5126    Core Revisions>> and <<initialization-functionpointers, Command Function
5127    Pointers>> sections and the registry schema document with respect to
5128    whether they are or are not the same entry point, and what the behaviour
5129    of the ftext:vkGet*ProcAddr commands is for each alias (internal issue
5130    1462).
5131  * Update slink:VkPipelineShaderStageCreateInfo valid usage statements for
5132    writing to code:Layer and code:viewportIndex to apply to any vertex
5133    processing stage (internal issue 1475).
5134  * Make sparse image creation optional for {YCbCr} formats in the
5135    <<features-required-format-support, Required Format Support>> section
5136    and the <<formats-requiring-sampler-ycbcr-conversion, Formats
5137    requiring sampler {YCbCr} conversion for
5138    ename:VK_IMAGE_ASPECT_COLOR_BIT image views>> table (internal issue
5139    1476).
5140  * Modify the valid usage statement for
5141    flink:vkCmdDrawIndirectByteCountEXT::pname:vertexStride to use the
5142    pname:maxTransformFeedbackBufferDataStride limit rather than the
5143    pname:maxVertexInputBindingStride limit, which is a better match for
5144    transform feedback related operations (internal issue 1487).
5145  * Changed all members of slink:VkPhysicalDevicePCIBusInfoPropertiesEXT to
5146    have the `uint32_t` type. This is an imcompatible change to an EXT
5147    that was released very recently; although this is against usual Vulkan WG
5148    policy, we discussed and consider this an acceptable risk, but have
5149    polled the mesa-dev list in case there are use cases we missed (internal
5150    issue 1492).
5151  * Set spec vetsion to 1 for `VK_GOOGLE_hlsl_functionality1` and
5152    `VK_GOOGLE_decorate_string` in `vk.xml` (internal MR 2948).
5153  * Remove redundant valid usage statement `VkImageCreateInfo-pNext-02395`
5154    (internal MR 2950).
5155  * Add `check_spec_links.py` script, use it in Gitlab CI, and fix many
5156    minor markup issues discovered by the script (internal MR 2955).
5157  * Update `BUILD.md` to the current Ruby version (2.5.3), and make some
5158    corresponding updates to per-platform build instructions (internal MR
5159    2956).
5160  * Fix binding numbers and other details in
5161    flink:vkUpdateDescriptorSetWithTemplate.txt example code blocks
5162    (internal MR 2960).
5163  * Remove some nautovalidity="true" in `vk.xml` for NV extensions where
5164    it is clearly wrong (internal MR 2970).
5165
5166-----------------------------------------------------
5167
5168Change log for December 3, 2018 Vulkan 1.1.95 spec update:
5169
5170  * Update release number to 95.
5171
5172Public Issues:
5173
5174  * Fix valid usage and XML issues found in public issues 789 and 790 for
5175    the `VK_EXT_debug_utils` extension (public pull request 794).
5176  * Replace references to `VK_NV_dedicated_allocation` with links to the
5177    corresponding slink:slink:VkMemoryDedicatedRequirements and
5178    slink:slink:VkMemoryDedicatedAllocateInfo structures in the description
5179    of elink:VkExternalMemoryFeatureFlagBits (public issue 801).
5180  * Fix miscellaneous minor markup and spelling issues in
5181    `VK_NV_ray_tracing` extension (public pull request 860).
5182  * Remove "returnedonly" from XML for
5183    slink:VkPhysicalDeviceInlineUniformBlockFeaturesEXT and
5184    slink:VkPhysicalDeviceVulkanMemoryModelFeaturesKHR (public issue 862).
5185
5186Internal Issues:
5187
5188  * Add to the description of the
5189    <<features-limits-maxComputeSharedMemorySize,
5190    pname:maxCompureSharedMemorySize>> feature to state the shared variables
5191    should be packed at least as tightly as std430 (internal issue 1386).
5192  * Fix and clarify various references to image and image view usage in
5193    flink:vkCmdBindShadingRateImageNV, flink:vkCmdBeginRenderPass, and
5194    slink:VkImageStencilUsageCreateInfoEXT (internal issue 1432).
5195  * Require that the slink:VkImage mipmap chain match the Android hardware
5196    buffer mipmap chain for slink:VkMemoryAllocateInfo (internal issue
5197    1479).
5198  * Fix the definition of slink:VkSwapchainCreateInfoKHR valid usage
5199    statement 01778 (Vulkan-ValidationLayers!15)
5200  * Fix descriptions of <<interfaces-builtin-variables-launchid,
5201    code:LaunchIDNV>> and <<interfaces-builtin-variables-launchsize,
5202    code:LaunchSizeNV>> to code:uvec3.
5203
5204New Extensions:
5205
5206  * `VK_KHR_shader_float16_int8`
5207  * `VK_KHR_shader_float_controls`
5208
5209-----------------------------------------------------
5210
5211Change log for November 25, 2018 Vulkan 1.1.94 spec update:
5212
5213  * Update release number to 94.
5214
5215Public Issues:
5216
5217  * Use the terms "`texel block`" and "`texel block size`" instead of "`data
5218    element`" and "`element size`", and define "`element`" as an array slot.
5219    In addition to the terminology changes, retitled the <<texel-block-size,
5220    Representation and Texel Block Size>> section and added texel block size
5221    / no. of texels/block information to the
5222    <<features-formats-compatibility, Compatible Formats>> table. There is
5223    some additional work underway to make sure the compatibility language
5224    makes sense for all of uncompressed, compressed, and multiplanar formats
5225    (public issue 763).
5226  * Cleanup `VK_NV_ray_tracing` language (public issues 858, 859).
5227
5228Internal Issues:
5229
5230  * Specify in <<shaders-invocationgroups, Invocation and Derivative
5231    Groups>> and <<textures-output-format-conversion, Texel Output Format
5232    Conversion>> that derivative groups are quads when code:SubgroupSize >=
5233    4 (internal issue 1390).
5234  * Make the type of slink:VkDescriptorUpdateTemplateCreateInfo::pNext
5235    `const` following pattern for the other stext:Vk*CreateInfo structures
5236    (internal issue 1459).
5237  * Specify that flink:vkCmdClearAttachments executes as a drawing command,
5238    rather than a transfer command (internal issue 1463).
5239  * Update `VK_NV_ray_tracing` to use code:InstanceId instead of
5240    code:InstanceIndex.
5241
5242New Extensions:
5243
5244  * `VK_KHR_swapchain_mutable_format`
5245  * `VK_EXT_fragment_density_map`
5246
5247-----------------------------------------------------
5248
5249Change log for November 18, 2018 Vulkan 1.1.93 spec update:
5250
5251  * Update release number to 93.
5252
5253Public Issues:
5254
5255  * Add spec language for ename:VK_INDEX_TYPE_NONE_NV and fix up
5256    slink:VkAccelerationStructureTypeNV (public issue 848).
5257  * Add missing suffix in description of slink:VkSubpassDescription2KHR
5258    parameters (public pull request 851).
5259  * Fix miscellaneous typos (public pull request 855).
5260  * Add driver ID for Pastel (public pull request 856).
5261  * Add missing include directive for slink:VkMemoryWin32HandlePropertiesKHR
5262    implicit valid usage statements (public pull request 857).
5263
5264Internal Issues:
5265
5266  * Restrict the storage classes permitted for SPIR-V atomics to what is
5267    actually supported, in the <<spirvenv-module-validation, Validation
5268    Rules within a Module>> section (internal issue 1123).
5269  * Add a missing Valid Usage statement to slink:VkRenderPassCreateInfo for
5270    the case pname:stencilLoadOp == ename:VK_LOAD_OP_CLEAR, pname:layout ==
5271    ename:VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL (internal issue
5272    1408).
5273  * Modify optimize-pdf script and Makefile to retain non-optimized original
5274    PDF on errors (internal issue 1435).
5275  * Add <<spirvenv-module-validation, SPIR-V validation rules>> stating that
5276    only the listed code:BuiltIn decorations are permitted, and only when
5277    relevante features and extensions are enabled (internal issue 1449).
5278  * Remove some duplicated Valid Usage IDs created via cut & paste error
5279    (internal issue 1455).
5280  * Build HTML output for extension reference pages (internal issue 1461).
5281  ** Improve genRef.py handling of aliases defined inside other refpages.
5282  ** Emit aliases in pygenerator.py.
5283  ** Add XML noautovalidity flag for VkRenderPassCreateFlags until there
5284     are some corresponding FlagBits defined.
5285  ** Corrected types= attribute on some refpage blocks to 'flags'
5286  ** Added refpage blocks for some missing types detected by CI tests.
5287  * Fixed many Valid Usage statement issues in slink:VkRenderPassCreateInfo,
5288    slink:VkSubpassDescription, slink:VkSubpassDescription2KHR,
5289    slink:VkSubpassDependency2KHR, flink:vkCmdBeginRenderPass,
5290    flink:vkCmdBeginRenderPass2KHR, and slink:VkRenderPassBeginInfo
5291    discovered while adding `VK_KHR_create_renderpass2` to the validation
5292    layers.
5293
5294New Extensions:
5295
5296  * `VK_EXT_scalar_block_layout`
5297  * `VK_EXT_separate_stencil_usage`
5298
5299-----------------------------------------------------
5300
5301Change log for November 12, 2018 Vulkan 1.1.92 spec update:
5302
5303  * Update release number to 92.
5304
5305Public Issues:
5306
5307  * Move and modify valid usage statements dealing with pname:aspectMask in
5308    flink:vkCmdClearColorImage, flink:vkCmdClearDepthStencilImage, and
5309    slink:VkClearAttachment, so they are in places where all necessary
5310    information is available (public issue 529).
5311  * Fix math markup in <<textures-texel-anisotropic-filtering, Texel
5312    Anisotropic Filtering>> (public pull request 840).
5313  * Fix misspellings (public pull request 845).
5314
5315Internal Issues:
5316
5317  * Add installation instructions and a Makefile "`chunked`" target for
5318    chunked HTML generation (internal issue 1352).
5319  * Fix pipeline mesh diagram style; also fix a minor bug in the classic
5320    pipeline diagram where vertex/index buffers wrongly fed into the vertex
5321    shader (internal issue 1436).
5322  * Make asciidoctor ERROR output raise an error, and don't suppress
5323    executed command output from CI make invocation (internal issue 1454).
5324  * Minor typo fixes and clarifications for `VK_NV_raytracing`.
5325  * Cleanup extension-specific properties
5326  ** Remove duplicated documentation for pname:maxDiscardRectangles,
5327     pname:pointClippingBehavior, and pname:maxVertexAttribDivisor (they
5328     shouldn't be documented with the other members of
5329     slink:VkPhysicalDeviceLimits at all).
5330  ** Remove duplicate anchor for pname:maxVertexAttribDivisor
5331  ** Consistently document stext:VkPhysicalDevice<Extension>PropertiesKHR
5332  *** Always document pname:sType/pname:pNext (was inconsistent before)
5333  *** Always mention chaining to slink:VkPhysicalDeviceProperties2 (and not
5334      as slink:VkPhysicalDeviceProperties2KHR)
5335  *** Always include Valid Usage statements last
5336  * Update Makefile 'checklinks' target and associated scripts, and fix
5337    markup problems identified by checkLinks.py, so that we can rely on the
5338    checklinks script as part of Gitlab CI.
5339
5340-----------------------------------------------------
5341
5342Change log for November 4, 2018 Vulkan 1.1.91 spec update:
5343
5344  * Update release number to 91.
5345
5346Public Issues:
5347
5348  * Update Ubuntu subsystem build instructions in `BUILD.adoc` (public pull
5349    request 624).
5350  * Delete the `VK_KHR_mir_surface` extension from the Specification and
5351    XML, due to EOL of the only driver known to have supported it, and
5352    near-EOL of Mir itself (public issue 814).
5353  * Fix options for some figures that were using old ones (public pull
5354    request 841).
5355  * Fix various accidentally repeated words (public pull request 843).
5356  * Use `time.process_time()`, introduced in Python 3.3, in the scripts
5357    instead of `time.clock()`, which will be removed in Python 3.8 (public
5358    pull request 844).
5359
5360Internal Issues:
5361
5362  * Update valid usage statements for
5363    `VK_ANDROID_external_memory_android_hardware_buffer` in
5364    slink:VkMemoryAllocateInfo,
5365    slink:VkImportAndroidHardwareBufferInfoANDROID, and
5366    flink:vkGetAndroidHardwareBufferPropertiesANDROID to actually be
5367    verifiable (internal issue 1419).
5368  * Update valid usage statements for
5369    `VK_ANDROID_external_memory_android_hardware_buffer` in
5370    slink:VkMemoryAllocateInfo, slink:VkImageCreateInfo, and
5371    slink:VkImageViewCreateInfo to move valid usage statements in
5372    doubly-nested bullet points up one level, accomodating limitations of
5373    the valid usage extraction script that creates `validusage.json`
5374    (internal issue 1434).
5375  * Fix typo etext:VK_ACCESS_SHADING_RATE_IMAGE_BIT_NV to the correct
5376    ename:VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV.
5377  * Add missing etext:VK_STRUCTURE_TYPE_* tokens to appendices for
5378    extensions missing them.
5379
5380New Extensions:
5381
5382  * `VK_AMD_memory_overallocation_behavior`
5383  * `VK_NV_ray_tracing`, replacing `VK_NVX_raytracing`
5384
5385-----------------------------------------------------
5386
5387Change log for October 28, 2018 Vulkan 1.1.90 spec update:
5388
5389  * Update release number to 90.
5390
5391Public Issues:
5392
5393  * Tag flink:vkQueueWaitIdle as `externsync` in `vk.xml` (public pull
5394    request 815).
5395  * Update README (public pull request 834).
5396  * `VK_NV_framebuffer_mixed_samples` and `VK_AMD_mixed_attachment_samples`
5397    had confusing and contradictory valid usage statements when read in the
5398    all-extensions spec build. Change them to explicitly mention which
5399    extension each is for (public issue Vulkan-ValidationLayers/issues/353).
5400
5401Internal Issues:
5402
5403  * Update `COPYING.md` to clarify how externally generated Vulkan
5404    Specifications (for translations, annotations, or other reasons) must be
5405    copyrighted, and acknowledge the Exception Clause on the `vk.xml`
5406    license (internal issue 1079).
5407  * Specify that flink:vkGetPhysicalDeviceImageFormatProperties may: return
5408    pname:maxMipLevels 1 if the format is ycbcr (internal issue 1361).
5409  * Clarify previously underspecified language for
5410    flink:vkCmdPushConstants::pname:pStageFlags regarding use of push
5411    constants across multiple pipelines (internal issue 1403).
5412  * Fix typo in XML/headers for
5413    ename:VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT,
5414    which was previously
5415    etext:VK_STRUCTURE_TYPE_IMAGE_EXCPLICIT_DRM_FORMAT_MODIFIER_CREATE_INFO_EXT
5416    (internal issue 1428).
5417  * Fix markup of equations that were sporadically breaking the
5418    `optimize-pdf` step of PDF generation, due (apparently) to inconsistent
5419    treatment of unwrapped multicharacter terms by different LaTeX parsers
5420    (internal issue 1435).
5421  * For the <<memory-model-synchronizes-with synchronizes-with>> memory
5422    model relation cases involving a release barrier plus relaxed atomic
5423    write, treat the atomic as if it were a release atomic and allow the
5424    acquire side to read from its hypothetical release sequence. This is
5425    more consistent with how C++ defines synchronization for release fences
5426    (internal issue cross-api/memory-model#72).
5427  * Minor editorial changes to the <<memory-model, memory model>> appendix
5428    based on external feedback.
5429
5430-----------------------------------------------------
5431
5432Change log for October 21, 2018 Vulkan 1.1.89 spec update:
5433
5434  * Update release number to 89.
5435
5436Public Issues:
5437
5438  * Clarify the reference to <<features-limits-mipmapPrecisionBits, mipmap
5439    precision bits>> in the <<textures-image-level-selection, Image Level(s)
5440    Selection>> section (public issue 660).
5441  * Update <<debugging-object-types,VkObjectType and Vulkan Handle
5442    Relationship>> table with missing types (public pull request 820).
5443  * Miscellaneous minor markup cleanup (public pull request 822).
5444  * Fix copy/paste bugs in the description of how implicit
5445    availability/visibility operations for atomics/barriers are ordered in
5446    the <<memory-model-availability-visibility-semantics, Availability and
5447    Visibility Semantics>> section (public issue 823).
5448  * Add ename:VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV bit missing from
5449    the mesh shading list of the <<synchronization-pipeline-graphics,
5450    graphics pipeline>> (public issue 824).
5451
5452Internal Issues:
5453
5454  * Clarify that only statically used members of a push constant block need
5455    to be in the push constant range, and stop referring to block members as
5456    "`variables`" in the <<interfaces-resources-pushconst, Push Constant
5457    Interface>> section. This is related to
5458    https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/340
5459    (internal issue 1401).
5460  * Clarify interaction between flink:vkCmdSetDeviceMask and render pass
5461    control commands in the slink:VkDeviceGroupRenderPassBeginInfo section
5462    (internal issue 1416).
5463  * Miscellaneous minor markup cleanup.
5464  * Remove types defined by `"disabled"` extensions from
5465    validextensionstructs in the XML processing scripts, so downstream code
5466    generators don't emit them.
5467
5468-----------------------------------------------------
5469
5470Change log for October 13, 2018 Vulkan 1.1.88 spec update:
5471
5472  * Update release number to 88.
5473
5474Public Issues:
5475
5476  * Make clear that
5477    tname:PFN_vkDebugUtilsMessengerCallbackEXT::pname:messageTypes is a
5478    bitmask, and correct a typo in the spelling of
5479    slink:VkDebugUtilsMessengerCreateInfoEXT.txt::pname:messageType (public
5480    pull request 800).
5481  * Make an ABI-compatible change of the type of
5482    slink:VkPhysicalDeviceDriverPropertiesKHR::pname:driverID to use the new
5483    elink:VkDriverIdKHR type (public issue 811).
5484
5485Internal Issues:
5486
5487  * Clarify for the <<features-features-shaderStorageImageExtendedFormats>>
5488    feature and in the <<spirvenv-capabilities-table>> that the feature
5489    means that all of the formats are supported, and that otherwise the
5490    features can be queried per-format (internal issue 1273).
5491  * Clarified interactions of `VK_EXT_external_memory_host` with host cache
5492    management commands and structures flink:vkMapMemory,
5493    flink:vkFlushMappedMemoryRanges, slink:VkMappedMemoryRange, and
5494    flink:vkUnmapMemory using the new glossary term "`Host Mapped Device
5495    Memory`" (internal issue 1385).
5496  * Update the language for flink:vkCreateViSurfaceNN.txt describing the
5497    pname:currentExtent of a VI surface to more accurately reflect current
5498    capabilities, replacing "`undefined`" with more explicit behavior
5499    (internal issue 1410).
5500
5501New Extensions:
5502
5503  * `VK_EXT_calibrated_timestamps`
5504  * `VK_EXT_image_drm_format_modifier` (this extension was previously
5505    disabled in vk.xml, and has now been enabled after some changes to fix
5506    performance issues).
5507  * `VK_EXT_pci_bus_info`
5508  * `VK_EXT_transform_feedback`
5509  * `VK_GOOGLE_hlsl_functionality1`, exposing support for
5510    `SPV_GOOGLE_hlsl_functionality1`.
5511  * `VK_GOOGLE_decorate_string`, exposing support for
5512    `SPV_GOOGLE_decorate_string`.
5513
5514-----------------------------------------------------
5515
5516Change log for October 7, 2018 Vulkan 1.1.87 spec update:
5517
5518  * Update release number to 87.
5519
5520Public Issues:
5521
5522  * Merge flink:vkCmdPipelineBarrier self-dependency barrier VUs referring
5523    to the same subpass dependency (public pull request 756).
5524  * Describe default value of `"optional"` attribute in the registry schema
5525    document (public issue 769)
5526  * Fix links in <<VK_NVX_raytracing>> extension (public pull request 805).
5527  * Mark the <<VK_KHR_mir_surface>> extension obsolete (see public issue 814
5528    - does not close this, however).
5529  * Fix missing endif in Image Creation block (public issue 817).
5530
5531Internal Issues:
5532
5533  * Clarify that the compressed texture formats corresponding to
5534    <<features-features-textureCompressionETC2>>,
5535    <<features-features-textureCompressionASTC_LDR>>, and
5536    <<features-features-textureCompressionBC>> is not contingent on the
5537    feature bits, and may be supported even if the features are not enabled
5538    (internal issue 663).
5539  * Clarify that code:FragStencilRefEXT is output only in the
5540    <<interfaces-builtin-variables, Built-In Variables>> section (internal
5541    issue 1173).
5542  * Identify and correct many overly-aggressive uses of "`undefined`", and
5543    narrow them down, where straightforward to do so. Mark such resolved
5544    uses of "`undefined`" with the custom undefined: macro. Add a new
5545    <<writing-undefined, Describing Undefined Behavior>> section (internal
5546    issue 1267).
5547  * Don't require code:inline_uniform_block descriptors to be populated
5548    before use in the flink:vkAllocateDescriptorSets section (internal issue
5549    1380).
5550  * Allow suppressing inline SVG images by controlling this with an
5551    attribute set in the Makefile, rather than the explicit [%inline]
5552    directive (internal issue 1391).
5553  * Mark 'Khronos' as a registered trademark in several places, now that it
5554    is one.
5555  * Fix typo in the <<VK_KHR_shader_atomic_int64>> appendix using the GLSL
5556    naming of the compare exchange op when referring to the SPIR-V op.
5557  * Specify in the flink:vkGetPhysicalDeviceQueueFamilyProperties section
5558    that all implementations must support at least one queue family, and
5559    that every queue family must contain at least one queue.
5560  * Make slink:VkPipelineDynamicStateCreateInfo::pname:dynamicStateCount,
5561    slink:VkSampleLocationsInfoEXT::pname:sampleLocationsPerPixel, and
5562    slink:VkSampleLocationsInfoEXT::pname:sampleLocationsCount optional, to
5563    fix bogus implicit valid usage checks that were causing failures in the
5564    conformance tests.
5565  * Fix vendor tag in reserved extension 237 constants. Does not affect
5566    anything since it is just a placeholder, but this should avoid further
5567    comments.
5568  * Minor markup fixes in some extension appendices.
5569
5570New Extensions:
5571
5572  * `<<VK_FUCHSIA_imagepipe_surface>>`
5573
5574-----------------------------------------------------
5575
5576Change log for September 29, 2018 Vulkan 1.1.86 spec update:
5577
5578  * Update release number to 86.
5579
5580Internal Issues:
5581
5582  * Add new <<resources-image-creation-limits, Image Creation Limits>>
5583    section and reference that from valid usage statements, reducing
5584    combinatorial complexity of extension-dependent VUs. Also fixes some
5585    underspecified limits (such as pname:maxMipLevels) in the VUs for
5586    slink:VkImageCreateInfo when
5587    slink:VkExternalMemoryImageCreateInfo::pname:externalMemoryHandles
5588    contains multiple bits, and fixes incorrectly (and underspecified)
5589    limits when an Android external format is used (internal issue 1370).
5590  * Remove unused "`Fragment Area Granularity`" glossary entry accidentally
5591    introduced in the 1.1.85 update.
5592
5593New Extensions:
5594
5595  * `VK_KHR_driver_properties`
5596  * `VK_KHR_shader_atomic_int64`
5597  * The specification sources contain text for another extension,
5598    `VK_EXT_image_drm_format_modifier`, but this extension is not yet
5599    complete, and is marked disabled in `vk.xml`. The extension will be
5600    enabled, and become part of the spec, only when the authors decide it is
5601    ready.
5602
5603-----------------------------------------------------
5604
5605Change log for September 19, 2018 Vulkan 1.1.85 spec update:
5606
5607  * Update release number to 85.
5608
5609Public Issues:
5610
5611  * Add self-dependency ename:VK_DEPENDENCY_BY_REGION_BIT valid usage
5612    statements for slink:VkSubpassDependency(public pull request 778).
5613  * Apply fix from pull request 742 to slink:VkSubpassDependency and
5614    slink:VkSubpassDependency2 (public pull request 779).
5615  * Specify the units of slink:VkBufferImageCopy::pname:bufferRowLength and
5616    pname:bufferImageHeight as texels (public pull request 781).
5617  * Better specify promoted parameter mapping in the
5618    `<<VK_KHR_create_renderpass2>>` appendix (public pull request 782).
5619
5620Internal Issues:
5621
5622  * Only include the <<fundamentals-validusage-versions, Valid Usage for
5623    Newer Core Versions>> section in Vulkan 1.1 or later (internal issue
5624    1381).
5625
5626Other Issues:
5627
5628  * Clean up redundant valid usage language for the
5629    `VK_ANDROID_external_memory_android_hardware_buffer` extension
5630    interaction with slink:VkImageCreateInfo.
5631  * Fix error in a flag name within valid usage statements for
5632    slink:VkMemoryAllocateInfo.
5633  * Clarify that memory types are not totally ordered in
5634    slink:VkPhysicalDeviceMemoryProperties.
5635  * For slink:VkWriteDescriptorSetInlineUniformBlockEXT, set
5636    structextends="VkWriteDescriptorSet" in `vk.xml`, and make
5637    slink:VkDescriptorSetLayoutBindingFlagsCreateInfoEXT::pname:pBindingFlags
5638    optional.
5639  * Add documentation of 'provisional' XML attribute to registry.txt.
5640
5641New Extensions:
5642
5643  * `VK_NV_compute_shader_derivatives`
5644  * `VK_NV_corner_sampled_image`
5645  * `VK_NV_fragment_shader_barycentric`
5646  * `VK_NV_mesh_shader`
5647  * `VK_NV_representative_fragment_test`
5648  * `VK_NV_scissor_exclusive`
5649  * `VK_NV_shader_image_footprint`
5650  * `VK_NV_shading_rate_image`
5651  * `VK_NVX_raytracing`
5652
5653-----------------------------------------------------
5654
5655Change log for September 8, 2018 Vulkan 1.1.84 spec update:
5656
5657  * Update release number to 84.
5658
5659Public Issues:
5660
5661  * Fix code sample in the `<<VK_EXT_debug_utils>>` extension (public issue
5662    751).
5663  * Fix misleading comment in `vk.xml` for
5664    slink:VkDescriptorBufferInfo::pname:buffer (public pull request 762).
5665  * Fix formatting of deprecation attributes in schema doc (public pull
5666    request 767).
5667  * Change `can` to `may` in the description of
5668    elink:VkSparseImageFormatFlagBits, which are return values from queries
5669    (public pull request 768).
5670  * Prettify generated contact list in extension appendices, adding logos
5671    and a New Issue link (public pull request 770).
5672  * Enable sRGB conversion based on the image view format, not the image
5673    format, in the <<textures-format-conversion, Format Conversion>> section
5674    (public pull request 773).
5675  * Fix typo in equation in the <<primsrast-lines-basic, Basic Line Segment
5676    Rasterization>> section (public pull request 780).
5677  * Fix special characters in GitHub contacts links (public pull request
5678    783).
5679  * Make clean_pdf target remove pdf folder (public pull request 784).
5680  * Fix styleguide bad markup of block continuation (public pull request
5681    792).
5682
5683Other Issues:
5684
5685  * Allow a zero vertex attribute divisor in the
5686    `<<VK_EXT_vertex_attribute_divisor>>` extension, exposed via the
5687    slink:VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT feature.
5688  * Add missing `structextends="VkDeviceCreateInfo"` to
5689    slink:VkPhysicalDeviceShaderDrawParameterFeatures and
5690    slink:VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT.
5691
5692New Extensions:
5693
5694  * `VK_KHR_memory_model`
5695  * `VK_EXT_astc_decode_mode`
5696  * `VK_EXT_inline_uniform_block`
5697
5698-----------------------------------------------------
5699
5700Change log for August 13, 2018 Vulkan 1.1.83 spec update:
5701
5702  * Update release number to 83.
5703
5704Public Issues:
5705
5706  * Use [%inline] directive for all SVGs to reduce file size (public pull
5707    request 734).
5708  * Convert XML `value` aliases into <alias> tags (public pull request
5709    747).
5710  * Fix metadoc script showing non-selected extensions (public pull request
5711    748).
5712  * Reapply public pull request 742 to make
5713    ename:VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT part of the
5714    graphices pipeline (public pull request 749).
5715  * Fix numerous typos related to accidental duplication of words (public
5716    pull request 760).
5717  * Fix `vk.xml` contact typos (public pull request 761).
5718
5719
5720Internal Issues:
5721
5722  * Add images to the <<Standard sample locations>> table (internal issue
5723    1115).
5724  * Add a definition of "`Inherited from`" precision in the
5725    <<spirvenv-precision-operation, Precision and Operation of SPIR-V
5726    Instructions>> section (internal issue 1314).
5727  * Clarify that both built-in and user-defined variables count against the
5728    location limits for shader interfaces in the
5729    <<interfaces-iointerfaces-locations, Location Assignment>> section
5730    (internal issue 1316).
5731  * Merge "`required`" capabilities into the <<spirvenv-capabilities-table,
5732    list of optional: SPIR-V capabilities>> (internal issue 1320).
5733  * Relax the layout matching rules of descriptors referring to only a
5734    single aspect of a depth/stencil image, by reference to the new
5735    <<resources-image-layouts-matching-rule, Image Layout Matching Rules>>
5736    section (internal issue 1346).
5737  * Revert extension metadoc generator warning about name mismatches to a
5738    diagnostic, due to annoying warnings in build output for conscious
5739    choices we've made (internal issue 1351).
5740
5741Other Issues:
5742
5743  * Reserve bits for pending vendor extensions.
5744  * Make Vulkan consistent with SPIR-V regarding code:DepthReplacing and
5745    code:FragDepth in the <<interfaces-builtin-variables, Built-In
5746    Variables>> section.
5747  * Add missing ChangeLog entries for the previous three spec updates.
5748
5749-----------------------------------------------------
5750
5751Change log for July 30, 2018 Vulkan 1.1.82 spec update:
5752
5753  * Update release number to 82.
5754
5755Public Issues:
5756
5757  * Add flink:vkDestroyPipelineLayout valid usage statement that the layout
5758    must not have been used with command buffers still in the recording
5759    state (public issue 730).
5760  * Correct <unused> tag for elink:VkResult in `vk.xml` (public merge
5761    request 746).
5762
5763Internal Issues:
5764
5765  * Add a valid usage statement to flink:vkQueueSubmit, and similar language
5766    to the definitions of <<synchronization-queue-transfers-acquire, acquire
5767    operations>> requiring that an acquire operation follow a previous
5768    release of the same subresource (internal issue 1290).
5769  * Add <<resources-image-format-features,Image Format Features>> and
5770    <<resources-image-view-format-features,Image View Format Features>>
5771    sections that precisely define the slink:VkFormatFeatures supported by
5772    images and image views, and rewrite valid usage statements to reference
5773    these sections instead of duplicating language (internal issue 1310).
5774  * Reword and consolidate synchronization valid usage statements for
5775    flink:vkCmdPipelineBarrier such that they correctly account for mutiple
5776    possible self-dependencies (internal issue 1322).
5777  * Change order of <<Standard sample locations>> for 2xMSAA (internal issue
5778    1347).
5779  * Add definitions of "`<<Correctly Rounded>>`" and "`<<ULP>>`" in the
5780    SPIR-V environment appendix, and "`Units in the Last Place (ULP)`" in
5781    the glossary.
5782
5783New Extensions:
5784
5785  * `VK_NV_device_diagnostic_checkpoints`
5786
5787-----------------------------------------------------
5788
5789Change log for July 23, 2018 Vulkan 1.1.81 spec update:
5790
5791  * Update release number to 81.
5792
5793Public Issues:
5794
5795  * Fix missing "`valid`" phrasing in some obscure cases (public pull
5796    request 605).
5797  * Replace improper use of cannot: referring to the implementation in the
5798    description of the
5799    <<features-limits-maxUpdateAfterBindDescriptorsInAllPools,
5800    pname:maxUpdateAfterBindDescriptorsInAllPools>> limit (public pull
5801    request 738).
5802  * Reorder description of bits in elink:VkPipelineStageFlagBits and the
5803    <<synchronization-pipeline-stages-supported, Supported pipeline stage
5804    flags>> table to match their definition order (public pull request 740).
5805  * Add description of ename:VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT
5806    to elink:VkBufferUsageFlagBits (public pull request 741).
5807  * Fix value usage statement for slink:VkSubpassDependency stage mask
5808    parameters (public pull request 742).
5809  * Fix visible markup in registry schema document (public pull request
5810    #745).
5811
5812Internal Issues:
5813
5814  * Make the <<geometry-invocations, geometry shader invocation
5815    description>> and <<shaders-geometry-execution, Geometry Shader
5816    Execution>> descriptions consistent with other pipeline stages (internal
5817    issue 1325).
5818  * Mark the `VK_NV_glsl_shader` extension as deprecated.
5819  * Adjust the per-instance vertex attribute offset formula specified by
5820    `VK_EXT_vertex_attribute_divisor` for
5821    slink:VkVertexInputBindingDivisorDescriptionEXT so that the interaction
5822    between pname:firstInstance and pname:divisor matches the OpenGL
5823    convention (internal issue 1333).
5824
5825-----------------------------------------------------
5826
5827Change log for July 7, 2018 Vulkan 1.1.80 spec update:
5828
5829  * Update release number to 80.
5830
5831Public Issues:
5832
5833  * Remove unused "`API Order`" term from glossary (public issue 657).
5834  * Dynamically generate the extension appendix includes based on
5835    information in `vk.xml`, including new metadata tags describing
5836    deprecated, obsoleted, and promoted extensions (public pull request
5837    690).
5838
5839Internal Issues:
5840
5841  * Add valid usage statements to flink:vkCmdBindDescriptorSets to keep
5842    offsets + range less than or equal to the buffer size (internal issue
5843    1174).
5844
5845New Extensions:
5846
5847  * `VK_EXT_conditional_render`
5848  * `VK_KHR_create_renderpass2` (public issue 736)
5849  * `VK_KHR_8bit_storage` (public issue 737)
5850
5851-----------------------------------------------------
5852
5853Change log for July 1, 2018 Vulkan 1.1.79 spec update:
5854
5855  * Update release number to 79.
5856
5857Public Issues:
5858
5859  * Add a note to the <<features-required-format-support, Required Format
5860    Support>> section clarifying that the required formats don't depend on
5861    the used flags (public issue 671).
5862  * Add a valid usage statement for flink:vkUpdateDescriptors that was
5863    previously described for slink:VkImageSubresourceRange, but not as a
5864    valid usage statement (public issue 713).
5865  * Modify implicit valid usage generator script to not emit 'must: not be
5866    0' for a parameter that is a pointer to a flags field, such as
5867    pname:pPeerMemoryFeatures (public issue 729).
5868
5869Internal Issues:
5870
5871  * Add definitions of "`obsoleted`" and "`deprecated`", and modify the
5872    definition of "`promoted`" in the <<glossary, Glossary>> (internal issue
5873    988).
5874  * Add language for integer texel output conversions (the conversion is
5875    undefined) to the <<textures-output-format-conversion]] Texel Output
5876    Format Conversion>> section. Simplify and clarify the floating-point
5877    conversion language in the <<fundamentals-general, General
5878    Requirements>> section and the new <<fundamentals-fp-conversion,
5879    Floating-Point Format Conversions>> section, and remove obsolete
5880    language in the format-specific floating-point sections (internal issue
5881    1275).
5882  * Add the elink:VkVendorId enumerated type to the Vulkan API / XML /
5883    header, so reserved Khronos vendor IDs can be referred to symbolically
5884    by clients. Note that only Khronos vendor IDs (e.g. non-PCI vendor IDs)
5885    are defined (internal issue 1299).
5886  * Fix typo in the <<fig-non-strict-lines, Non strict lines>> table
5887    (internal issue 1315).
5888  * Clean up and simplify the
5889    <<formats-requiring-sampler-ycbcr-conversion, YCbCr format
5890    properties>> table and use symbols consistently with other tables. Add a
5891    column for the number of planes.
5892  * Add code:Float16 to the <<spirvenv-capabilities-table, List of optional
5893    SPIR-V capabilities>> for the `VK_AMD_gpu_shader_half_float` extension.
5894
5895-----------------------------------------------------
5896
5897Change log for June 18, 2018 Vulkan 1.1.78 spec update:
5898
5899  * Update release number to 78.
5900
5901Public Issues:
5902
5903  * Change markup so parameter descriptions include links to structures,
5904    instead of just their names (public issue 697).
5905  * Resume publishing updated Vulkan 1.0 + KHR extensions and Vulkan 1.0 +
5906    all extensions versions of the specification (public issue 722).
5907  * Reapply fixes from public pull request 698 for
5908    `VK_ANDROID_external_memory_android_hardware_buffer`, which accidentally
5909    were reverted at some point (public pull request 724).
5910  * Fix undefined format valid usage statements for slink:VkImageCreateInfo
5911    in the presence of the
5912    `VK_ANDROID_external_memory_android_hardware_buffer` extension (public
5913    pull request 725).
5914  * Miscellaneous markup consistency fixes (public pull request 728).
5915
5916Internal Issues:
5917
5918  * When building specifications containing vendor extensions, add terms to
5919    the Khronos spec copyright specifying that the result is not a ratified
5920    specification (internal issue 739).
5921  * Change the value of the
5922    pname:maxDescriptorSetUpdateAfterBindUniformBuffers minimum limit to 72
5923    (6 times pname:maxPerStageDescriptorUpdateAfterBindUniformBuffers) in
5924    the <<features-limits-required, Required Limits>> table (internal issue
5925    1300).
5926
5927Other Issues:
5928
5929  * Fix link to resource image view compatibility table in the valid usage
5930    statements for slink:VkImageFormatListCreateInfoKHR (internal pull
5931    request 2711).
5932
5933-----------------------------------------------------
5934
5935Change log for June 10, 2018 Vulkan 1.1.77 spec update:
5936
5937  * Update release number to 77.
5938
5939Public Issues:
5940
5941  * Remove redundant asciidoctor ifdef in slink:VkDeviceCreateInfo valid
5942    usage statement (public pull request 718).
5943
5944Internal Issues:
5945
5946  * Require that the returned slink:VkMemoryRequirements::pname:alignment
5947    reflect the minimum alignment requirements for the buffer's usages, and
5948    make dynamic offset alignment valid usage more explicit for
5949    flink:vkBindBufferMemory and flink:vkCmdBindDescriptorSets (internal
5950    issue 1170).
5951  * Explicitly state that objects of type code:OpTypeImage,
5952    code:OpTypeSampler, and code:OpTypeSampledImage must not be stored to in
5953    the <<spirvenv-module-validation, Validation Rules within a Module>>
5954    section (internal issue 1262).
5955  * Clarify rules about validating descriptor set/binding against storage
5956    class and descriptor type in the <<spirvenv-module-validation,
5957    Validation Rules within a Module>> section, and add an anchor for and
5958    references to the <<interfaces-resources-storage-class-correspondence,
5959    Shader Resource and Storage Class Correspondence>> table (internal issue
5960    1266).
5961  * Use correct spelling of SPIR-V decoration code:NonWritable in several
5962    places (internal issue 1298).
5963
5964Other Issues:
5965
5966  * Update specification links to files in the old
5967    KhronosGroup/Vulkan-LoaderAndValidationLayers repository with
5968    corresponding links into the new repositories that replace it.
5969  * Move validity requirement for slink:VkSamplerCreateInfo into the valid
5970    usage block instead of the body text, and give it a VUID.
5971  * Use the full name of the "`style guide`" in a reference in the
5972    description of slink:vkGetPhysicalDeviceProperties, update the
5973    <<vulkan-styleguide, link to that document>>, and use the full name
5974    in the registry index page.
5975
5976-----------------------------------------------------
5977
5978Change log for May 25, 2018 Vulkan 1.1.76 spec update:
5979
5980  * Update release number to 76.
5981
5982Internal Issues:
5983
5984  * Add an exception clause to the license on `vk.xml`, enabling its use
5985    with GPL-based projects (internal issue 1017).
5986  * Remove the generated `vulkan_ext.[ch]` files, which are no longer
5987    supported. Add `src/ext_loader/README.md` explaining why, and update
5988    files in `xml/` to not generate them by default (internal issue 1268)
5989
5990Other Issues:
5991
5992  * Fix typos in valid usage statements for the
5993    ftext:vkDrawIndexedIndirectCount* commands, replacing
5994    sizeof(VkDrawIndirectComment) with sizeof(VkDrawIndexedIndirectCommand).
5995  * Modify the <<spirvenv-module-validation, Validation Rules within a
5996    Module>> section to require code:NonReadable or code:NonWriteable in
5997    SPIR-V code for images with an image format of code:Unknown if one of
5998    the requisite code:shaderImageReadWithoutFormat or
5999    code:shaderImageWriteWithoutFormat features is disabled.
6000
6001New Extensions:
6002
6003  * `VK_KHR_get_display_properties2`
6004  * `VK_KHR_draw_indirect_count`
6005
6006-----------------------------------------------------
6007
6008Change log for May 16, 2018 Vulkan 1.1.75 spec update:
6009
6010  * Update release number to 75.
6011
6012Github Issues:
6013
6014  * Use Github handles (e.g. @handle) for contact information in vk.xml,
6015    when available (partial fix for public issue 630).
6016  * Add size invariance guarantee to slink:VkMemoryRequirements for
6017    buffer/image memory requirements (public issue 661).
6018  * Correct scope (conditional constructs) in valid usage statement for
6019    slink:VkBindImageMemoryInfo (public pull request 684).
6020  * Clean up minor markup issues and typos in the
6021    `VK_ANDROID_external_memory_android_hardware_buffer` extension appendix
6022    (public pull request 698).
6023  * Modify registry processing script to avoid irrelevant warnings of benign
6024    enumerant redefinitions (public pull request 705).
6025  * Fix some duplicate words and some misspelled "`stagess`" (public pull
6026    request 712)
6027
6028Internal Issues:
6029
6030  * Enable continuous integration tests on the internal Khronos gitlab
6031    server by adding a .gitlab-ci.yml file. Note: this does not implement CI
6032    on the public Github repository (internal issue 408).
6033  * Add link from description of depth clamping in the <<fragops-depth,
6034    depth test>> section to the
6035    slink:VkPipelineRasterizationStateCreateInfo::pname:depthClampEnable
6036    parameter which enables it, making it easily searchable / findable
6037    (internal issue 1125).
6038  * Clarify that arrays of arrays of descriptors are not allowed in the
6039    <<interfaces-resources-descset, Descriptor Set Interface>> and
6040    <<interfaces-resources-setandbinding, DescriptorSet and Binding
6041    Assignment>> sections (internal issue 1192).
6042  * Comment out some redundant nested asciidoctor conditionals in the
6043    slink:VkImageViewCreateInfo valid usage block, and explain in all cases
6044    why the redundant conditional exist and are commented out (internal
6045    issue 1231).
6046  * Move a valid usage statement from slink:VkCommandPoolCreateInfo to the
6047    parent flink:vkCreateCommandPool, where the device queue is known
6048    (internal issue 1233).
6049  * Add new slink:VkBaseInStructure and slink:VkBaseOutStructure types which
6050    can be used by extensions and implementations for handling Vulkan
6051    sType/pNext style structures in a more generic way (internal issue
6052    1265).
6053  * Clarify that
6054    slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
6055    only applies to external-format images. Add references to this in valid
6056    usage statements that previously only referred to
6057    slink:VkFormatProperties (internal issue 1244).
6058  * Fix the description of elink:VkPipelineCreateFlagBits enumerant
6059    ename:VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT to match the
6060    name (internal issue 1279).
6061  * Add a NOTE to the <<interfaces-resources-setandbinding, DescriptorSet
6062    and Binding Assignment>> section making it clear that variables sharing
6063    a storage class may use identical descriptor set and bindings.
6064    Specifically state the sometimes misunderstood ability to have one or
6065    more differently typed image descriptors sharing a descriptor set and
6066    binding (internal SPIR-V issue 264).
6067  * Make DynamicIndexing features and capabilities also control the
6068    uniformity of the descriptor used in memory access instructions in the
6069    <<interfaces-resources-descset, Descriptor Set Interface>> section. This
6070    makes them also apply to variable_pointer usage, which can bypass the
6071    array indexing operation (internal SPIR-V issue 289).
6072
6073Other Issues:
6074
6075  * Correct flink:vkCmdBlitImage limitations on cubic blits to be 2D only,
6076    not 3D.
6077  * Update valid usage statements for slink:VkRenderPassCreateInfo and
6078    slink:VkInputAttachmentAspectReference.
6079  * Move YCbCr-related VU statements from slink:VkDescriptorImageInfo to
6080    slink:VkWriteDescriptorSet, where all needed information is known, and
6081    remove redundant statements.
6082  * Move SPIR-V restriction that images be of either sampled or storage
6083    types from the <<interfaces-resources-descset, Descriptor Set
6084    Interface>> section to the <<spirvenv-module-validation, Validation
6085    Rules within a Module>> section of the SPIR-V appendix.
6086
6087-----------------------------------------------------
6088
6089Change log for April 21, 2018 Vulkan 1.1.74 spec update:
6090
6091  * Update release number to 74.
6092
6093Github Issues:
6094
6095  * Clarify which buffer locations are accessed in
6096    flink:vkCmdCopyBufferToImage valid usage statements (public issue 676).
6097  * Refine description of <<extended-functionality-extensions-dependencies,
6098    extension dependencies>>, related NOTE in the
6099    <<extended-functionality-extensions, Extensions>> section, and
6100    "`Required Extensions`" glossary term (public pull request 693).
6101  * Add support for specifying required Vulkan core version in `vk.xml` and
6102    the extension metadoc generator (public issue 696).
6103  * Update .gitignore for directory reorganization (public pull request
6104    699).
6105  * Fix typo (public pull request 703).
6106
6107Internal Issues:
6108
6109  * Update valid usage of slink:VkClearRect::pname:layerCount (internal
6110    issue 1241).
6111
6112Other Issues:
6113
6114  * Fix typo in <<NV_geometry_shader_passthrough>> issues list.
6115
6116-----------------------------------------------------
6117
6118Change log for April 15, 2018 Vulkan 1.1.73 spec update:
6119
6120  * Update release number to 73.
6121
6122Github Issues:
6123
6124  * Refine swapchain association with surface for slink:VkSwapchainKHR, with
6125    matching valid usage statements for slink:VkSwapchainCreateInfoKHR and
6126    discussion following the <<swapchain-wsi-image-create-info>> table
6127    (public issue 637).
6128  * Re-remove several valid usage statements from slink:VkImageCreateInfo
6129    that had previously been removed at the time that
6130    ename:VK_IMAGE_CREATE_EXTENDED_USAGE_BIT was introduced. These
6131    statements had incorrectly been restored due to an glitch while merging
6132    from the old `1.0` branch to the current `master` branch (public issue
6133    683).
6134
6135Internal Issues:
6136
6137  * Fix reference page generation and configure build to generate reference
6138    pages 1.1 with all extensions, rather than core only, as was the case
6139    for the 1.0 ref pages (internal issues 484, 1056, 1205).
6140  * Require that
6141    slink:VkMemoryDedicatedRequirements::pname:prefersDedicateAllocation is
6142    ename:VK_TRUE when
6143    slink:VkMemoryDedicatedRequirements::pname:requiresDedicateAllocation is
6144    ename:VK_TRUE (internal issue 1222).
6145  * Fix Ruby extension code so `diff_html` Makefile target works (internal
6146    issue 1230).
6147  * Update `genRelease` script to generate 1.1 + all extensions reference
6148    pages - but not the single-page HTML / PDF versions, which are even
6149    larger than the API spec (internal issue 1245).
6150
6151Other Issues:
6152
6153  * Add missing attributes to `vk.xml` for `VK_ANDROID_native_buffer`.
6154  * Specify that the slink:VkAttachmentDescription::pname:format member is
6155    the format of the image *view* that will be used for the attachment.
6156  * Use core sname:VkPhysicalDeviceFeatures2 in the `structextends` `vk.xml`
6157    attribute for sname:VkPhysicalDeviceDescriptorIndexingFeaturesEXT and
6158    sname:VkPhysicalDeviceDescriptorIndexingPropertiesEXT, rather than the
6159    KHR equivalent it was promoted from.
6160  * Fix the "`Fragment Input Attachment Interface`" glossary entry to match
6161    the specification body.
6162  * Clarify the interaction of sRGB images used as storage or texel buffers
6163    with <<textures-output-format-conversion, Texel Output Format
6164    Conversion>>.
6165  * Moved three valid usage statements from
6166    slink:VkRenderPassMultiviewCreateInfo up to
6167    slink:VkRenderPassCreateInfo, and added a new valid usage statement for
6168    slink:VkRenderPassInputAttachmentAspectCreateInfo.
6169  * Added valid usage statements for slink:VkBufferMemoryBarrier and
6170    slink:VkImageMemoryBarrier reflecting the global requirement that
6171    "`non-sparse resources must be bound to memory before being recorded to
6172    command`".
6173
6174-----------------------------------------------------
6175
6176Change log for April 5, 2018 Vulkan 1.1.72 spec update:
6177
6178  * Update release number to 72.
6179
6180Github Issues:
6181
6182  * Restructure the repository to put the specification `Makefile` and
6183    associated spec source material at the top level, `vk.xml` and
6184    associated scripts material in `xml/`, and generated include and source
6185    files in `include/vulkan/` and `src/ext_loader/`, respectively (public
6186    issue 436).
6187  * Add missing bullet point markup to flink:vkCmdCopyImage valid usage
6188    statement, so it gets a VUID assigned (public issue 627).
6189  * Fix broken links in a couple of extension appendices (public pull
6190    request 665).
6191  * Add the <platform> tag to the index in section 4.1 of the registry
6192    schema documentation, and add the protect= attribute of <extension>
6193    tags to the comments in `registry.rnc` (public issues 673, 678).
6194  * Add missing valid usage statements for sparse image interactions to
6195    flink:VkImageCreateInfo (public pull request 675).
6196  * Fix improper usage and grammar of "`can: not`" (public pull request
6197    681).
6198  * Remove duplicate spec language and NOTE on present layout between the
6199    flink:vkAcquireNextImageKHR and flink:vkAcquireNextImage2KHR commands
6200    (public pull request 685).
6201  * Fix some typos and markup issues (public pull request 689; public issues
6202    642, 667, 687).
6203  * Fix typo etext:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT ->
6204    ename:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT in the
6205    <<external-semaphore-handle-types-compatibility, External semaphore
6206    handle types compatibility>> table (public pull request 691).
6207
6208Internal Issues:
6209
6210  * Remove the need for the "`noautovalidity`" attribute on extension
6211    structures in `vk.xml`. It is now implied by the "`structextends`"
6212    attribute instead (internal issue 942).
6213  * Replace uses of "`currently bound`" with "`bound`", since "`currently`"
6214    is redundant and distracting, and add a corresponding rule to the style
6215    guide (internal issue 993).
6216  * Fixed subtle issues with the last updates to flink:vkAcquireNextImageKHR
6217    language that had resulted in ambiguities (internal issue 1178).
6218  * Make it clear that only one query of a given type is allowed at a time
6219    by reordering valid usage statements for flink:vkCmdBeginQuery and
6220    flink:vkCmdEndQuery, and removing redundant ones (internal issue 1213).
6221  * Swapped OL1 and OL3 in `tessparamUL.svg` to match previous version, and
6222    fixed where "`(no edge)`" appears (internal issue 1215).
6223
6224Other Issues:
6225
6226  * Fixed a minor problem with the valid usage statement extraction script,
6227    and corresponding markup in the spec source.
6228
6229New Extensions:
6230
6231  * `VK_AMD_shader_core_properties`
6232  * `VK_EXT_descriptor_indexing`
6233  * `VK_NV_shader_subgroup_partitioned`
6234
6235-----------------------------------------------------
6236
6237Change log for March 16, 2018 Vulkan 1.1.71 spec update:
6238
6239  * First public update for Vulkan 1.1.
6240
6241Github Issues:
6242
6243  * Refer to standard sparse image block shape format tables explicitly in
6244    the <<sparsememory-standard-shapes, Standard Sparse Image Block Shapes>>
6245    section (public issue 93).
6246  * Add the missing definition of the code:LocalInvocationIndex decoration
6247    in the <<interfaces-builtin-variables, Built-In Variables>> section
6248    (public issue 532).
6249  * Clarify dynamic state definition in the introduction to the <<pipelines,
6250    Pipelines>> section and the new <<pipelines-dynamic-state, Dynamic
6251    State>> subsection (public issue 620).
6252  * Clarified deprecation statement in the `VK_AMD_negative_viewport_height`
6253    appendix (public issue 674).
6254  * Fix parameter descriptions for flink:vkCreateIndirectCommandsLayoutNVX
6255    (public issue 677).
6256
6257Internal Issues:
6258
6259  * Remove description of <<primsrast-points, rasterization point size>>
6260    being taken from the tessellation control shader, since there are no
6261    circumstances under which you can have TCS without TES (internal issue
6262    522).
6263  * Define <<copies-images-format-size-compatibility, _size-compatible_
6264    image formats>> for flink:vkCmdCopyImage, add it to the glossary, and
6265    use that definition for slink:VkImageViewCreateInfo (internal issue
6266    771).
6267  * Change brief descriptions of enumerant names, and of parameters which
6268    are enumerants, from "`enum *indicates*`" to "`enum *specifies*`" for
6269    consistency, and add a markup style guide rule (internal issue 862).
6270  * Clarify how execution dependencies interact with
6271    <<synchronization-submission-order, submission order>> at numerous
6272    places in the <<renderpass, Render Pass>> and <<synchronization,
6273    Synchronization>> chapters (internal issue 1062).
6274  * Clarify statement in the <<interfaces-resources-setandbinding,
6275    DescriptorSet and Binding Assignment>> section that only interface
6276    variables statically used by the entry point used in a pipeline must be
6277    present in the descriptor set layout (internal issue 1172).
6278  * Flip sparse image diagrams with partially full mip levels vertically, to
6279    match graph origins of other image diagrams (internal issue 1176).
6280  * Update new SVG diagrams to have consistent style and base font size,
6281    increase consistency of primitive topology diagrams, and add a section
6282    to the style guide on creating and editing images in a consistent style
6283    (internal issue 1177).
6284  * Resolve problems with valid usage statement extraction by fixing
6285    existing VUID tags for interfaces promoted to version 1.1 and fixing
6286    conditional directives around
6287    VUID-VkMemoryDedicatedAllocateInfo-image-01797 (internal issue 1184).
6288  * Strip `KHR` suffixes from a few interfaces promoted to Vulkan 1.1 that
6289    were missed previously (internal issue 1185).
6290  * Restrict code:OpImageQuerySizeLod and code:OpImageQueryLevels to only
6291    work on code:Image operands with their code:Sampled operand set to 1. In
6292    other words, these operations are not defined to work with storage
6293    images (internal issue 1193).
6294  * Recycle extension slot for extension #82 in `vk.xml`. This extension was
6295    never published (internal issue 1195).
6296  * Add an issue to the `VK_KHR_maintenance1` appendix noting that zero
6297    height viewports are allowed when this extension is enabled (internal
6298    issue 1202).
6299  * Fix slink:VkDescriptorSetLayoutBinding description so that shader stages
6300    always use descriptor bindings, not the other way around (internal issue
6301    1206).
6302  * Fix field name for
6303    slink:VkInputAttachmentAspectReference::pname:inputAttachmentIndex
6304    (internal issue 1210).
6305
6306Other Issues:
6307
6308  * Fix a few broken links in the <<versions-1.1, Version 1.1>> appendix.
6309  * Replace a few old refBegin/refEnd tags with open block markup around
6310    interfaces, and remove old KHX VUID tags that were breaking the valid
6311    usage statement extraction.
6312  * Fix error codes accidentally tagged as success codes in `vk.xml` for
6313    flink:vkGetSwapchainCounterEXT.
6314  * Added valid usage statements for ftext:vkBind*Memory2 input structures
6315    stext:VkBind*MemoryInfo, and fix a pname:image -> pname:buffer typo in a
6316    couple of places.
6317  * Fix swapped descriptions of elink:VkDescriptorType enums
6318    ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE and
6319    ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE (reported via tweet).
6320
6321New Extensions:
6322
6323  * `VK_ANDROID_external_memory_android_hardware_buffer`
6324
6325-----------------------------------------------------
6326
6327Change log for March 7, 2018 Vulkan 1.1.70 spec update:
6328
6329  * Vulkan 1.1 initial release. Bump API patch number and header version
6330    number to 70 for this update. The patch number will be used for both
6331    Vulkan 1.1 and Vulkan 1.0 updates, and continues to increment
6332    continuously from the previous Vulkan 1.0.69 update.
6333
6334    NOTE: We are not publishing an updated 1.0.70 specification, or 1.1
6335    reference pages, along with 1.1.70. There are still minor issues to work
6336    out with those build targets. However, we will soon generate all three
6337    types of documents as part of the regular spec update cycle.
6338
6339    NOTE: The GitHub KhronosGroup/Vulkan-Docs repository now maintains the
6340    current specification in the `master` branch. The `1.0` branch is out of
6341    date and will not be maintained, since we will be generating both 1.1
6342    and 1.0 specifications from the `master` branch in the future.
6343
6344Github Issues:
6345
6346  * Clarify how mapped memory ranges are flushed in
6347    flink:vkFlushMappedMemoryRanges (public issue 127).
6348  * Specify that <<synchronization-pipeline-stages, Pipeline Stages>> are a
6349    list of tasks that each command performs, rather than necessarily being
6350    discrete pieces of hardware that one task flows through. Add a
6351    "`synchronization command`" pipeline type which all synchronization
6352    command execute (it is just TOP + BOTTOM), with an explanatory note
6353    (public issue 554).
6354
6355Internal Issues:
6356
6357  * Regenerate all images used in the spec in Inkscape with a consistent
6358    look-and-feel, and adjust image size attributes so they're all legible,
6359    and not too large with respect to the spec body text (internal issue
6360    701).
6361  * Document in the <<extensions,extensions>> appendix and in the style
6362    guide that `KHX` extensions are no longer supported or used in the
6363    Vulkan 1.1 timeframe (internal issue 714).
6364  * Remove the leftover equations_temp directory after PDF build completes
6365    (internal issue 925).
6366  * Update the <<credits, Credits (Informative)>> appendix to include
6367    contributors to Vulkan 1.1, and to list them according to the API
6368    version(s) they contributed to (internal issue 987).
6369  * Add a NOTE to the introduction explaining that interfaces defined by
6370    extensions which were promoted to Vulkan 1.1 are now expressed as
6371    aliases of the Vulkan 1.1 type (internal issue 991).
6372  * Instrument spec source conditionals so spec can be built with 1.1
6373    features, extensions promoted to 1.1, or both (internal issues 992,
6374    998).
6375  * Modify the XML schema and tools to support explicit aliasing of types,
6376    structures, and commands, and use this to express the promotion of 1.0
6377    extensions to 1.1 core features, by making the extension interfaces
6378    aliases of the core features they were promoted to. Mark up promoted
6379    interfaces to allow still generating 1.0 + extension specifications
6380    (internal issue 991).
6381  * Platform names, along with corresponding preprocessor symbols to enable
6382    extensions specific to those platforms, are now reserved in vk.xml using
6383    the <platform> tag. Update the registry schema and schema specification
6384    to match (internal issue 1011).
6385  * Updated the <<textures-texel-replacement, Texel Replacement>> section to
6386    clarify that reads from invalid texels for image resources result in
6387    undefined values (internal issue 1014).
6388  * Modify description of patch version so it continues to increment across
6389    minor version changes (internal issue 1033).
6390  * Clarify and unify language describing physical device-level core and
6391    extension functionality in the <<fundamentals-validusage-extensions,
6392    Valid Usage for Extensions>>, <<fundamentals-validusage-versions, Valid
6393    Usage for Newer Core Versions>>, <<initialization-functionpointers
6394    Command Function Pointers>>, <<initialization-phys-dev-extensions,
6395    Extending Physical Device From Device Extensions>>
6396    <<extended-functionality-instance-extensions-and-devices, Instance
6397    Extensions and Device Extensions>> sections and for
6398    flink:vkGetPhysicalDeviceImageFormatProperties2. This documents that
6399    instance-level functionality is tied to the loader, and independent of
6400    the ICD; physical device-level functionality is tied to the ICD, and
6401    associated with device extensions; physical devices are treated more
6402    uniformly between core and extensions; and instance and physical
6403    versions can be different (internal issue 1048).
6404  * Updated the <<commandbuffers-lifecycle, Command Buffer Lifecycle>>
6405    section to clarify the ability for pending command buffers to transition
6406    to the invalid state after submission, and add a command buffer
6407    lifecycle diagram (internal issue 1050).
6408  * Clarify that some flink:VkDescriptorUpdateTemplateCreateInfo parameters
6409    are ignored when push descriptors are not supported (internal issue
6410    1054).
6411  * Specify that flink:vkCreateImage will return an error if the image is
6412    too large, in a NOTE in the slink:VkImageFormatProperties description
6413    (internal issue 1078).
6414  * Remove near-duplicate NOTEs about when to query function pointers
6415    dynamically in the <<initialization, Initialization>> chapter and
6416    replace by extending the NOTE in the <<fundamentals-abi, Application
6417    Binary Interface>> section (internal issue 1085).
6418  * Restore missing references to "`Sparse Resource Features`" in the
6419    flink:VkBufferCreateFlagBits description (internal issue 1086).
6420  * Tidy up definitions of descriptor types in the `GL_KHR_vulkan_glsl`
6421    specification, the <<descriptorsets, Resource Descriptors>> section and
6422    its subsections, and the <<interfaces-resources-descset, Descriptor Set
6423    Interface>> for consistency, reduction of duplicate information, and
6424    removal of GLSL correspondance/examples (internal issue 1090).
6425  * Correctly describe code:PrimitiveId as an Input for tessellation control
6426    and evaluation shaders, not an Output (internal issue 1109).
6427  * Relax the requirements on chroma offsets for nearest filtering in
6428    <<textures-implict-reconstruction, Implicit Reconstruction>> (internal
6429    issue 1116).
6430
6431Other Issues:
6432
6433  * Clarify the intended relationship between specification language and
6434    certain terms defined in the Khronos Intellectual Property Rights
6435    policy. Specific changes include:
6436  ** Rewrote IP/Copyright preamble and introduction to better agree with
6437     normative language both as laid out in the introduction, and the
6438     Khronos IPR policy.
6439  ** Added notion of fully informative sections, which are now tagged with
6440     "`(Informative)`" in their titles.
6441  ** Removed non-normative uses of the phrase "`not required`"
6442  ** Clarified the distinction between terms "`optional`" and "`not
6443     required:`" as they relate to the IPR Policy, and updated specification
6444     text to use terms consistent with the intent.
6445  ** Reduced additions to RFC 2119, and ensured the specification agreed
6446     with the leaner language.
6447  ** Removed the terms "`hardware`", "`software`", "`CPU`", and "`GPU`" from
6448     normative text.
6449  ** Moved several paragraphs that should not have been normative to
6450     informative notes.
6451  ** Clarified a number of definitions in the Glossary.
6452  ** Updated the document writing guide to match new terminology changes.
6453  * Explicitly state in the <<fundamentals-objectmodel-lifetime-acquire,
6454    application memory lifetime>> language that for objects other than
6455    descriptor sets, a slink:VkDescriptorSetLayout object used in the
6456    creation of another object (such as slink:VkPipelineLayout or
6457    slink:VkDescriptorUpdateTemplateKHR) is only in use during the creation
6458    of that object and can be safely destroyed afterwards.
6459  * Updated the <<textures-scale-factor, Scale Factor Operation>> section to
6460    use the ratio of anisotropy, rather than the integer sample rate, to
6461    perform the LOD calculation. The spec still allows use of the sample
6462    rate as the value used to calculate the LOD, but no longer requires it.
6463  * Update `vulkan_ext.c` to include all platform-related definitions from
6464    the Vulkan platform headers, following the split of the headers into
6465    platform-specific and non-platform-specific files.
6466  * Fix bogus anchor name in the <<commandbuffers, Command Buffers>> chapter
6467    which accidentally duplicated an anchor in the pipelines chapter. There
6468    were no reference to this anchor, fortunately.
6469  * Add valid usage statement for slink:VkWriteDescriptorSet and
6470    slink:VkCopyDescriptorSet requiring that the slink:VkDescriptorSetLayout
6471    used to allocate the source and destination sets must not have been
6472    destroyed at the time flink:vkUpdateDescriptorSets is called.
6473  * Document mapping of subgroup barrier functions to SPIR-V, and clarify a
6474    place where subgroupBarrier sounds like it is execution-only in the
6475    standalone `GL_KHR_shader_subgroup` specification.
6476  * Use an HTML stylesheet derived from the Asciidoctor `colony` theme, with
6477    the default Arial font family replaced by the sans-serif Noto font
6478    family.
6479  * Numerous minor updates to README.adoc, build scripts, Makefiles, and
6480    registry and style guide specifications to support Vulkan 1.1 outputs,
6481    use them as defaults, and remove mention of `KHX` extensions, which are
6482    no longer supported.
6483
6484
6485New Extensions:
6486
6487  * `VK_EXT_vertex_attrib_divisor`
6488
6489-----------------------------------------------------
6490
6491Change log for February 19, 2018 Vulkan 1.0.69 spec update:
6492
6493  * Bump API patch number and header version number to 69 for this update.
6494
6495Github Issues:
6496
6497  * Clean up description of synchronization for flink:vkAcquireNextImageKHR
6498    (public issue 626).
6499  * Move valid usage statements requiring offset and extent to respect image
6500    transfer granularity requirements of the queue family they are submitted
6501    against from slink:VkImageCopy and slink:VkBufferImageCopy to the
6502    corresponding flink:vkCmdCopyImage, flink:vkCmdCopyBufferToImage, and
6503    flink:vkCmdCopyImageToBuffer commands, where are relevant information is
6504    known (public issue 654).
6505  * Clarify that flink:vkGetDeviceProcAddr only supports device-level
6506    commands (public issue 655).
6507
6508Internal Issues:
6509
6510  * Associate each elink:VkDescriptorType with a type of descriptor, and
6511    link to descriptions of those types (internal issue 860).
6512  * Rework valid usage extraction script to better utilize and respond to
6513    spec markup, and fix some spec markup accordingly (internal issues 846,
6514    909, 945).
6515  * Rephrase flink:vkCmdPushConstants valid usage to allow overlapping push
6516    constant ranges in different shader stages (internal issue 1103).
6517  * Fix problem with diff_html target in extension.rb (internal issue 1104).
6518  * Modify valid usage statements for slink:VkClearDepthStencilValue,
6519    slink:VkGraphicsPipelineCreateInfo, slink:VkViewport, and
6520    flink:vkCmdSetDepthBounds, and the description of vkCmdSetDepthBias, to
6521    clarify that clamping is applied if and only if the
6522    `VK_EXT_depth_range_unrestricted` is not enabled (internal issue 1124),
6523    in versions of the specification built with that extension included.
6524  * Resolve contradictions and use of undefined "`per-sample shading`" term
6525    in the <<primsrast-sampleshading, Sample Shading>> and
6526    <<shaders-fragment-execution, Fragment Shader Execution>> sections; for
6527    the <<features-features-sampleRateShading, sampleRateShading feature>>;
6528    for code:FragCoord, code:SampleId, and code:SamplePosition; and for
6529    slink:sname:VkPipelineMultisampleStateCreateInfo (internal issue 1134).
6530  * Clarify the meaning of the ptext:maxDescriptorSet* limits in footnote 8
6531    of the <<features-limits-required,Required Limits>> table (internal
6532    issue 1139).
6533  * Fix broken NOTE markup in slink:VkSamplerCreateInfo.txt (internal issue
6534    1140).
6535  * Remove extend comparison language from valid usage statement for
6536    slink:VkImageCreateInfo, turning it into a simple validation of
6537    pname:mipLevels against pname:maxMipLevels (internal issue 1151).
6538  * Update valid usage statements for slink:VkImageCopy when the
6539    `VK_KHR_maintenance1` extension is enabled to allow multi-slice 2D <->
6540    3D copies when the pnaem:extent.depth parameter specifies the number of
6541    layers being copied, and matches the
6542    slink:VkImageSubresourceLayers.layerCount of the 2D image (internal
6543    issue 1152).
6544  * Rephrase memory / control barrier rules in the
6545    <<spirvenv-module-validation, Validation Rules within a Module>> section
6546    to avoid "`not use none`", which could be misconstrued to allow no
6547    synchronization semantics, and only storage class semantics (internal
6548    issue 1154).
6549
6550Other Issues:
6551
6552  * Move GLSL extension specifications to the KhronosGroup/GLSL repository
6553    on Github.
6554  * Add missing description of ename:VK_FILTER_CUBIC_IMG enum to
6555    slink:VkFilter.
6556  * Update description of code:PrimitiveId in the
6557    <<interfaces-builtin-variables,Built-In Variables>> section to clarify
6558    its behavior.
6559  * Disallow disjoint images from being used with dedicated-memory images in
6560    slink:VkMemoryDedicatedAllocateInfoKHR.
6561  * Update README to suggest older versions of "mathematical" and
6562    "ruby-gems" packages for use on Cygwin.
6563  * Fix typos
6564
6565New Extensions:
6566
6567  * `VK_AMD_buffer_marker`
6568
6569-----------------------------------------------------
6570
6571Change log for January 15, 2018 Vulkan 1.0.68 spec update:
6572
6573  * Bump API patch number and header version number to 68 for this update.
6574
6575Github Issues:
6576
6577  * Added more details in the
6578    <<extended-functionality-extensions-compatibility, Extension
6579    Compatibility>> section, allowing explicit incompatibilities, and
6580    simplify corresponding language in the style guide, which now defers to
6581    the API Specification on this point (public issue 638).
6582  * Fix typo in description of slink:VkCommandBufferLevel::pname:level
6583    (public issue 651).
6584  * Only include extension-dependent valid usage statement for
6585    slink:VkImageSubresourceRange, and note that the extension names for
6586    header files described in the <<boilerplate-wsi-header, Window
6587    System-Specific Header Control>> section are only valid links, when the
6588    specification being viewed is built with the corresponding extensions
6589    enabled (public issue 652).
6590
6591Internal Issues:
6592
6593  * Add language to elink:VkResult specifying that when commands return an
6594    error, output parameter contents are undefined instead of unmodified
6595    (except for pname:sType and pname:pNext). Note that this is a behavior
6596    change. Add notes calling out slink:VkImageFormatProperties as an
6597    exception (internal issue 1118).
6598  * Add "`general-purpose`" to the style guide, and correct existing uses of
6599    "`general purpose`" as an adjective (internal issue 1121).
6600  * Add the ename:VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT token
6601    for the `VK_EXT_validation_cache` extension, following the same naming
6602    pattern as other tokens in the extension, but keep the old
6603    ename:VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT token around for
6604    backwards compatibility (internal issue 1126).
6605
6606Other Issues:
6607
6608  * Specify that flink:vkCmdSetDiscardRectangleEXT does not affect copies or
6609    clears, matching existing language for the scissor rectangle test.
6610  * Move the <<boilerplate-sType, pname:sType>> definition from the
6611    boilerplate appendix to the Fundamentals chapter, putting it together
6612    with the valid usage of pname:sType rather than having the definition
6613    split across two places.
6614  * Inline all of the etext:Vk*Flags definitions, moving each one from the
6615    boilerplate appendix to appear either after the corresponding
6616    etext:Vk*FlagBits value if one is defined, or after the first structure
6617    that includes them if not.
6618
6619-----------------------------------------------------
6620
6621Change log for January 5, 2018 Vulkan 1.0.67 spec update:
6622
6623  * Bump API patch number and header version number to 67 for this update.
6624  * Update copyright dates to 2018
6625
6626Github Issues:
6627
6628  * Fix texture lookup functions in `GL_KHR_vulkan_glsl` specification
6629    (public pull request 363).
6630  * Clarify the state waited semaphores are left in when a call to
6631    flink:vkQueuePresentKHR fails (public issue 572).
6632  * Cleanup descriptions of slink:VkObjectTablePushConstantEntryNVX and
6633    slink:VkObjectTableDescriptorSetEntryNVX (public issue 583)
6634  * Remove redundant flink:vkCmdSetDiscardRectangleEXT valid usage
6635    statements (public pull 586).
6636  * Make dynamic state array length valid usage statements implicit for
6637    flink:vkCmdSetViewportWScalingNV, flink:vkCmdSetDiscardRectangleEXT, and
6638    flink:vkCmdSetViewport (public pull 589).
6639  * Clarify meaning of window extent (0,0) in slink:VkSwapchainKHR for the
6640    Windows and X11 platforms, in their respective extensions (public issue
6641    590).
6642  * Allow flink:vkGetPastPresentationTimingGOOGLE to return
6643    ename:VK_INCOMPLETE (public issue 604).
6644  * Add synchronization valid usage statements to flink:vkAcquireNextImage
6645    (public pull 611).
6646  * Fix some broken external links and internal xrefs (public pull 613).
6647  * Clean up slink:VkViewport valid usage statements in the presence or
6648    absence of relevant extensions (public pull 623).
6649  * Remove
6650    ename:VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR
6651    token from VK_KHR_maintenance2 from the non-extension VU path for
6652    slink:VkGraphicsPipelineCreateInfo (public issue 628).
6653  * Miscellaneous minor markup fixes - extension name strings (public pull
6654    631), Notes (pull 633), queue names emitted by generator scripts (pull
6655    634), block formatting in slink:VkDescriptorUpdateTemplateEntryKHR (pull
6656    635), ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG (pull
6657    641), quotes and apostrophes (pull 643),
6658  * Miscellaneous minor grammar fixes (public pull 644).
6659  * Fix markup macros so usage like ptext:*Src* works (public pull 647).
6660
6661Internal Issues:
6662
6663  * Clarify in the `VK_KHR_surface` and `VK_KHR_swapchain` extensions that
6664    parameter combinations which aren't supported for normal images are also
6665    unsupported for presentable images, even if the parameter values are
6666    individually supported as reported by the surface capability queries
6667    (internal issue 1029).
6668  * Fixed XML typo in the valid value field of the pname:sType member of
6669    slink:VkPhysicalDeviceExternalMemoryHostPropertiesEXT (internal issue
6670    1100).
6671
6672Other Issues:
6673
6674  * Add memory semantics validity rules to the <<spirvenv-module-validation,
6675    Validation Rules within a Module>> section of the SPIR-V environment
6676    appendix, and specify that sequentiality consistency is not supported.
6677    This forbids certain cases like "`Load+Release`" that we don't expect to
6678    ever be meaningful.
6679  * Document mapping of OpenGL Shading Language barriers to SPIR-V scope and
6680    semantics in the `GL_KHR_vulkan_glsl` specification.
6681
6682New Extensions:
6683
6684  * `VK_EXT_conservative_rasterization`
6685
6686-----------------------------------------------------
6687
6688Change log for November 27, 2017 Vulkan 1.0.66 spec update:
6689
6690  * Bump API patch number and header version number to 66 for this update.
6691
6692Github Issues:
6693
6694  * Clarified how and when ename:VK_ERROR_TOO_MANY_OBJECTS is generated in
6695    flink:vkAllocate Memory, and remove incorrect valid usage statement
6696    about exceeding the API limit (public issue 356).
6697  * Minor clarification of the description of
6698    flink:vkUpdateDescriptorSetWithTemplateKHR::pname:descriptorUpdateTemplate
6699    (public issue 564).
6700  * Minor fixes for flink:vkCmdSetViewportWScalingNV (public pull request
6701    588).
6702  * Fix random name markup issues (public pull request 603).
6703  * Fix code:BuiltIn decoration typo in the <<fxvertex-attrib, Vertex
6704    Attributes>> section (public pull request 606).
6705  * Fix synchronization language following the definition of
6706    flink:vkAcquireNextImageKHR (public issue 607).
6707  * Restore descriptions of several commands and structures missing from the
6708    generated spec due to a mistyped asciidoctor conditional (public issue
6709    612).
6710  * Fix 1.0.41 changelog to refer to public issues 403/404 (public issue
6711    618).
6712
6713Internal Issues:
6714
6715  * Refactor valid usage statements with internal conditionals in
6716    `copies.txt`, `pipelines.txt`, `renderpass.txt`, and `resources.txt` so
6717    each branch of the conditional appears as a standalone statement which
6718    can contain a separate VUID. This should have no impact on the generated
6719    specs, but is necessary given the present state of the VU extractor and
6720    the validation layer code that consumes them (internal issue 1043).
6721  * Fix VkQueueGlobalPriorityEXT enum values missing _EXT suffix (internal
6722    issue 1045).
6723  * Clarified initial ownership of resources bound to shared memory objects,
6724    (internal issue 1068).
6725  * Fix duplicated valid usage ID tag for flink:vkCmdCopyImage, and make the
6726    required layouts include ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL in
6727    both cases (internal issue 1084).
6728
6729Other Issues:
6730
6731  * Remove the noise functions from GLSL for SPIR-V for Vulkan in the
6732    `GL_KHR_vulkan_glsl.txt` extension.
6733
6734New Extensions:
6735
6736  * `VK_EXT_external_memory_host`
6737  * `VK_EXT_external_memory_dma_buf`
6738  * `VK_EXT_queue_family_foreign`
6739
6740-----------------------------------------------------
6741
6742Change log for October 27, 2017 Vulkan 1.0.65 spec update:
6743
6744  * Bump API patch number and header version number to 65 for this update.
6745
6746Github Issues:
6747
6748  * Replaced inaccurate "`pixel`" with "`texel`" or "`compressed texel
6749    block`" as appropriate in the <<sparsememory, Sparse Resources>> chapter
6750    (public issue 86).
6751  * Attempt to clarify security/integrity guarantees in the
6752    <<fundamentals-errors, Errors>> section (public issue 147).
6753  * Update the <<memory-device,Device Memory>> section with clarifications
6754    and markup fixes (public pull request 194).
6755  * Fix typo VkDeviceCreateInfo -> slink:VkDebugMarkerObjectNameInfoEXT in
6756    sample code for `VK_EXT_debug_marker` extension (public pull request
6757    227).
6758  * Clarified slink:VkFramebufferCreateInfo language regarding concurrent
6759    use of attachment resources during a render pass instance (public issue
6760    299).
6761  * Added overlap rules for destination regions in <<copies,copy commands>>.
6762    Also unified the sparse and non-sparse source-destination overlap rules,
6763    since the non-sparse rules were technically inaccurate in the face of
6764    aliasing in flink:vkBindMemory2 - the new rules are true regardless
6765    (public issue 317).
6766  * Clarified the <<features-features-samplerAnisotropy,
6767    pname:samplerAnisotropy feature>> to only affect the
6768    slink:VkSamplerCreateInfo::pname:anisotropyEnable value, and that
6769    pname:maxAnisotropy is ignored when pname:anisotropyEnable is VK_FALSE
6770    (public issue 503).
6771  * Clarify pointer valid usage statements to use "`valid pointer to valid
6772    _object_`" terminology and update the
6773    <<fundamentals-validusage-pointers,Valid Usage for Pointers>> section
6774    accordingly (public pull request 547).
6775  * Some operations that use integer coordinates can also accept a LOD to
6776    sample from. Add a description of that selection and the validity
6777    conditions in the new <<textures-integer-coordinate-operations, Integer
6778    Texel Coordinate Operations>> section (public issue 548).
6779  * Update stext:VkImageSubresource* valid usage statements (public pull
6780    request 550).
6781  * Added text tying ename:VK_OUT_OF_POOL_MEMORY error for
6782    flink:vkAllocateDescriptorSets to the number of descriptor types in the
6783    allocating pool. Removed redundant "`length`" text about number of
6784    descriptors returned (public issue 582).
6785  * Update slink:VkSwapchainCreateInfoKHR descriptions (public pull request
6786    585).
6787  * Update slink:VkPipelineViewportWScalingStateCreateInfoNV and related
6788    structures' valid usage statements (public pull request 587).
6789  * Change some dates to conform to ISO 8601 as specified in the style guide
6790    (public pull request 601).
6791  * Fix some math markup problems and be more consistent in use of asciidoc
6792    math markup (public pull request 602).
6793
6794Internal Issues:
6795
6796  * Clarified that attribute reads from incomplete vertex buffer elements
6797    are considered out of bounds accesses, in the
6798    slink:VkPhysicalDeviceFeatures and flink:vkCmdBindVertexBuffers.txt
6799    sections (internal issue 842).
6800
6801-----------------------------------------------------
6802
6803Change log for October 20, 2017 Vulkan 1.0.64 spec update:
6804
6805  * Bump API patch number and header version number to 64 for this update.
6806
6807Github Issues:
6808
6809  * Add chapter name to the PDF page footer (public pull request 458).
6810  * Fix several mistaken references to the nonexistent etext:VK_DEVICE_LOST
6811    status to etext:VK_ERROR_DEVICE_LOST (public pull request 502).
6812  * Fix description of the tlink:PFN_vkDebugReportCallbackEXT debug report
6813    callback function pointer to match the validation layer behavior (public
6814    issue 534).
6815  * Document experimental KHX extensions and alternate vendor author IDs
6816    also ending in X in more detail in the <<extensions, Layers &
6817    Extensions>> appendix, the extensions section of the style guide, and
6818    the registry schema description document (public issues 536, 580).
6819  * Fix references to ptext:pDepthStencil to properly refer to
6820    pname:pDepthStencilState or pname:pRasterizationState as appropriate in
6821    the slink:VkGraphicsPipelineCreateInfo description (public issue 542).
6822  * Fix wrong parameter name in slink:VkPipelineMultisampleStateCreateInfo
6823    valid usage (public pull request 571).
6824
6825Internal Issues:
6826
6827  * Update the style guide to describe how to write LaTeX math expressions
6828    in table cells (internal issue 908).
6829  * Define how framebuffer-local dependencies work between subpasses with
6830    the same or different numbers of samples, in the
6831    slink:VkSubpassDescription and <<synchronization-framebuffer-regions,
6832    Framebuffer Region Dependencies>> sections. This clarifies which samples
6833    in an input attachment you are allowed to access after a
6834    framebuffer-local dependency (internal issue 915).
6835  * Specify which storage classes can have an initializer in the
6836    <<spirvenv-module-validation, Validation Rules within a Module>> section
6837    (internal issue 1023).
6838  * Use "LOD" consistently for "level-of-detail", to eliminate spelling
6839    inconsistencies. The term is already standardized in the Glossary
6840    (internal issue 1027).
6841
6842Other Issues:
6843
6844  * Fix false positives in Makefile dependencies when rules fail, by
6845    deleting partially-made targets.
6846
6847New Extensions:
6848
6849  * `VK_AMD_shader_info`
6850
6851-----------------------------------------------------
6852
6853Change log for October 13, 2017 Vulkan 1.0.63 spec update:
6854
6855  * Bump API patch number and header version number to 63 for this update.
6856
6857Github Issues:
6858
6859  * Add missing valid usage statements for ptext:maxDescriptorSets*,
6860    ptext:maxPerStageDescriptorInputAttachments, and
6861    ptext:maxPerStageResources to slink:VkPipelineLayoutCreateInfo.txt,
6862    flink:VkComputePipelineCreateInfo, and
6863    flink:VkGraphicsPipelineCreateInfo (public issue 546).
6864  * Fix typos in ftext:vkCmdDraw*AMD descriptions (public pull request 549).
6865  * Fixed flink:vkCmdWriteTimestamp so it is not unnecessarily restricted to
6866    queues supporting graphics or compute operations (public issue 558).
6867  * Improvements to valid usage generator for output `*Flags` pointer
6868    parameters and for some `void *` parameters (public pull requests 560,
6869    562).
6870  * Document `altlen` attribute in XML schema as valid C99 syntax and tweak
6871    `vk.xml` to match (public pull request 566).
6872  * Clarify when pname:fence is signaled by flink:vkQueueSubmit in a more
6873    obvious place (public issue 577).
6874
6875Internal Issues:
6876
6877  * Specify a list of supported SPIR-V Storage Classes in the
6878    <<spirvenv-module-validation, Validation Rules within a Module>>
6879    appendix (internal SPIR-V issue 166).
6880  * Relax the shared semaphore wait timeout requirement in the
6881    <<synchronization-semaphores-importing, Importing Semaphore Payloads>>
6882    section (internal issue 820).
6883  * Update the <<textures-image-level-selection, Image Level(s) Selection>>
6884    equations so that the parameters returned by the level-of-detail query
6885    appear explicitly, also fixing the issue that linear filtering would
6886    select a level below the base level for magnification (internal issue
6887    926).
6888  * Disallow creation of a swapchain with zero pname:imageExtent in
6889    slink:VkSurfaceCapabilitiesKHR and slink:VkSwapchainCreateInfoKHR
6890    (internal issue 1020).
6891
6892Other Issues:
6893
6894  * Clarify in <<textures-operation-validation,Image View Validation>> that
6895    the layout of subresources in an image view must have a layout that
6896    matches that written into the descriptor, and that this section is about
6897    validating image views, not images.
6898
6899New Extensions:
6900
6901  * `VK_EXT_global_priority`
6902
6903-----------------------------------------------------
6904
6905Change log for October 6, 2017 Vulkan 1.0.62 spec update:
6906
6907  * Bump API patch number and header version number to 62 for this update.
6908
6909Github Issues:
6910
6911  * Move asciidoc conditionals for `VK_KHR_maintenance1` in
6912    slink:VkDescriptorSetAllocateInfo so valid usage statements for
6913    `VK_KHR_push_descriptor` aren't accidentally removed when the first
6914    extension isn't enabled (public issue 573).
6915
6916Internal Issues:
6917
6918  * Specify constraints on concurrent access to fences that share payload in
6919    the <<synchronization-fences-importing, Importing Fence Payloads>> and
6920    <<synchronization-semaphores-waiting-state, Semaphore State Requirements
6921    For Wait Operations>> sections (internal issue 820).
6922  * Define the term "`retired swapchain`", reorganize some swapchain
6923    language, and improve language for pname:oldSwapchain in
6924    flink:VkSwapchainCreateInfoKHR, the <<swapchain-wsi-image-create-info>>
6925    table, flink:vkDestroySwapchainKHR, and flink:vkAcquireNextImage2KHX
6926    (internal issue 869).
6927  * Describe in the <<writing-arrays, Describing Properties of Array
6928    Elements>> section of the style guide how and when to use "`each`" and
6929    "`any`" to refer to properties of array elements, and make those uses in
6930    the specification consistent (internal issue 884).
6931  * Clarified that events cannot be used for cross-queue synchronization in
6932    the <<synchronization-events, Events>> section and for
6933    flink:vkCmdWaitEvents (internal issue 970).
6934  * Add success and error codes to +vk.xml+ for
6935    flink:vkCreateValidationCacheEXT (internal issue 995).
6936  * Clarify aspect mask usage for image memory barriers of multi-plane
6937    images in slink:VkImageSubresourceRange, slink:VkImageMemoryBarrier, and
6938    the <<textures-layout-validation, Layout Validation>> section (internal
6939    issue 996).
6940
6941Other Issues:
6942
6943  * Fixed typo in flink:VkRenderPassSampleLocationsBeginInfoEXT (renamed
6944    field pname:pSubpassSampleLocations to
6945    pname:pPostSubpassSampleLocations).
6946  * Add missing buffer usage requirements for indirect draws in
6947    flink:vkCmdDrawIndirect, flink:vkCmdDrawIndirectCountAMD,
6948    flink:vkCmdDrawIndexedIndirect, and
6949    flink:vkCmdDrawIndexedIndirectCountAMD.
6950  * Modify Makefile to allow specification to build in git "`detached HEAD`"
6951    state.
6952  * Update valid usage ID generation script to allow recursively operating
6953    on all `.txt` files in a specified directory, and move the `startVUID`
6954    tracking information into a separate python file that is automatically
6955    updated by the script.
6956  * Fixed errors in API example code for
6957    flink:vkUpdateDescriptorSetWithTemplateKHR and
6958    flink:vkCmdPushDescriptorSetWithTemplateKHR.
6959
6960New Extensions:
6961
6962  * Add +vk.xml+ entries for pending `VK_ANDROID_native_buffer` extension
6963    (note, this extension is not yet enabled).
6964  * `VK_AMD_shader_image_load_store_lod`
6965
6966-----------------------------------------------------
6967
6968Change log for September 15, 2017 Vulkan 1.0.61 spec update:
6969
6970  * Bump API patch number and header version number to 61 for this update.
6971
6972Github Issues:
6973
6974  * Provide alternate length attributes (altlen=) in the XML schema, for
6975    those using length attributes to generate code instead of documentation
6976    (public issue 555).
6977  * Fix erroneous references to `latex:` being used for asciidoc math
6978    markup, rather than `latexmath:` (public pull request 556).
6979  * Add author ID to XML for Kazan software renderer (public pull request
6980    557).
6981
6982Internal Issues:
6983
6984  * Add the <<fundamentals-abi,Application Binary Interface>> section
6985    describing platform ABI requirements and recommendations, add examples
6986    of function and function pointer declarations to the
6987    <<boilerplate-platform-specific-calling-conventions, Platform-Specific
6988    Calling Conventions>> section, and remove related language that existed
6989    elsewhere in the specification (internal issue 64).
6990  * Describe where to document valid usage interactions of chained
6991    structures in the style guide, and fix one case now appearing in
6992    slink:VkBufferCreateInfo instead of the child
6993    slink:VkDedicatedAllocationBufferCreateInfoNV structure (internal issue
6994    715).
6995  * Add example to the style guide of describing enumerated types which are
6996    empty when the spec is built without relevant extensions enabled, and
6997    apply it to existing examples for
6998    elink:VkDescriptorSetLayoutCreateFlagBits and
6999    elink:VkSubpassDescriptionFlagBits (internal issue 864).
7000  * Add a note to the <<fundamentals-validusage-enums, Valid Usage for
7001    Enumerated Types>> section that the special values suffixed with
7002    etext:_BEGIN_RANGE, etext:_END_RANGE, etext:_RANGE_SIZE and
7003    etext:_MAX_ENUM are not part of the API and should: not be used by
7004    applications (internal issue 872).
7005  * Added note to flink:vkCmdUpdateBuffers explaining the performance
7006    penalty for copies done in this way, and why the upper copy limit is
7007    what it is (internal issue 952).
7008  * Update `VK_KHX_device_group` to split some functionality into the new
7009    `VK_KHR_bind_memory2` extension, and rename that functionality (internal
7010    issue 969).
7011  * Remove *Status* fields from extension appendices, since they are by
7012    definition published and complete by the time they reach the public
7013    github repository (internal issue 973).
7014
7015Other Issues:
7016
7017  * Update Data Format specification dependency to version 1.2 and change
7018    references to DF sections accordingly.
7019  * Update XML to make the pname:pAllocator parameter of
7020    flink:vkRegisterDeviceEventEXT and flink:vkRegisterDisplayEventEXT in
7021    the `VK_EXT_display_control` extension as optional.
7022
7023New Extensions:
7024
7025  * `VK_KHR_bind_memory2`
7026  * `VK_KHR_image_format_list`
7027  * `VK_KHR_maintenance2`
7028  * `VK_KHR_sampler_ycbcr_conversion`
7029
7030-----------------------------------------------------
7031
7032Change log for September 5, 2017 Vulkan 1.0.60 spec update:
7033
7034  * Bump API patch number and header version number to 60 for this update.
7035
7036Github Issues:
7037
7038  * Document that <<queries-timestamps, Timestamp Queries>> can only be
7039    meaningfully compared when they are written from the same queue (public
7040    issue 216).
7041  * Document that the `<extension>` tag `type` attribute is required for
7042    non-disabled extensions (derived from, but does not close public issue
7043    354).
7044  * Clean up registry schema length attribute descriptions to be consistent
7045    and correct (public issue 555).
7046
7047Internal Issues:
7048
7049  * Replace as much of the hand-written extension appendix metadata as
7050    possible with asciidoc includes generated from corresponding attributes
7051    of +vk.xml+, and enhance the style guide to match. This avoids
7052    inconsistencies between +vk.xml+ and the appendices, and produces a more
7053    uniform style (internal issue 137).
7054  * Remove the generated extDependency.{py,sh} files from the tree and
7055    create them dynamically on demand instead, reducing merge conflicts
7056    (internal issue 713).
7057  * Add a prototype tool for generating in-place difference markup for
7058    sections guarded by asciidoc conditionals, and new syntax for open
7059    blocks to support it (internal issue 833).
7060  * Remove unnecessary restriction of etext:*SYNC_FD_BIT_KHR external handle
7061    types to the same physical device in the
7062    slink:VkPhysicalDeviceIDPropertiesKHR,
7063    flink:VkImportMemoryWin32HandleInfoKHR,
7064    slink:VkImportFenceWin32HandleInfoKHR, slink:VkImportFenceFdInfoKHR,
7065    slink:VkImportSemaphoreWin32HandleInfoKHR,
7066    slink:VkImportSemaphoreFdInfoKHR
7067    <<external-memory-handle-types-compatibility, External memory handle
7068    types compatibility>>, <<external-semaphore-handle-types-compatibility,
7069    External semaphore handle types compatibility>>, and
7070    <<external-fence-handle-types-compatibility, External fence handle types
7071    compatibility>> sections (internal issue 956).
7072
7073Other Issues:
7074
7075  * Remove dependency of +VK_KHX_device_group+ on +VK_KHR_swapchain+ (there
7076    is an interaction, but not a strict dependency), and add a new
7077    `extension` attribute to the `<require` XML tag to allow classifying a
7078    subset of interfaces of an extension as requiring another extension.
7079    Update the registry schema and documentation accordingly.
7080
7081New Extensions:
7082
7083  * `VK_AMD_shader_fragment_mask` (and related `GL_AMD_shader_fragment_mask`
7084    GLSL extension)
7085  * `VK_EXT_sample_locations`
7086  * `VK_EXT_validation_cache`
7087
7088-----------------------------------------------------
7089
7090Change log for August 19, 2017 Vulkan 1.0.59 spec update:
7091
7092  * Bump API patch number and header version number to 59 for this update.
7093
7094Github Issues:
7095
7096  * Fix a few missing Implicit Valid Usage statements to indicate that a
7097    common parent of two objects is required (public issue 497).
7098  * Clarify render pass synchronization language for
7099    slink:VkSubpassDependency and <<renderpass,render passes>> (public
7100    issue 531).
7101  * Rename ename:VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT to
7102    ename:VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT for consistency, and
7103    add an alias for backwards compatibility (public issue 539).
7104
7105Internal Issues:
7106
7107  * Add an explanation to the <<interfaces-builtin-variables-layer,
7108    code:Layer>> description explaining that writing to invalid layers
7109    results may or may not result in primitives being processed and fragment
7110    shaders being run, and gives undefined results in the framebuffer
7111    (internal issue 614)
7112  * Add valid usage statement for slink:VkDescriptorSetLayoutBinding
7113    requiring that input attachment descriptor bindings must not use
7114    non-fragment stages (internal issue 933).
7115
7116Other Issues:
7117
7118  * Makes description of pname:loadOp and pname:storeOp easier to read in
7119    the <<renderpass-load-store-ops>> section.
7120
7121New Extensions:
7122
7123  * `VK_EXT_shader_stencil_export`
7124
7125-----------------------------------------------------
7126
7127Change log for August 14, 2017 Vulkan 1.0.58 spec update:
7128
7129  * Bump API patch number and header version number to 58 for this update.
7130
7131Github Issues:
7132
7133  * Update the <<interfaces-resources-descset,Descriptor Set Interface>>
7134    section to allow multiple variables with the same descriptor set/binding
7135    decorations, and require that all variables that are statically used
7136    must be consistent with the pipeline layout. Allow
7137    ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER to be used with texture
7138    and sampler variables (public issues 522, 524).
7139
7140Internal Issues:
7141
7142  * Replace networkx package used for extension dependency generation with a
7143    homegrown network dependency traverser (internal issue 713).
7144  * Specify in the <<interfaces-fragmentoutput, Fragment Output Interface>>
7145    section that if a fragment shader writes integers that cannot be
7146    represented in the format of the colour attachment, then the result is
7147    undefined (internal issue 893).
7148  * Separate malformed valid usage statement for
7149    slink:VkPipelineRasterizationStateCreateInfo into two (internal issue
7150    918).
7151  * Fix cases where the term 'pNext chain' is incorrectly used in reference
7152    to functions, rather than their parameters. Replace 'pNext list' with
7153    'pNext chain'. Fixed typo in the example code of
7154    +VK_KHR_dedicated_allocation+ (internal issue 944).
7155  * Fix typo in elink:VkExternalSemaphoreHandleTypeFlagBitsKHR enum
7156    descriptions, replacing
7157    etext:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT_KHR with
7158    ename:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR, and make the
7159    description more consistent with
7160    VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR (internal issue 950).
7161
7162Other Issues:
7163
7164  * Clarify how pipeline stage masks affect
7165    <<synchronization-pipeline-stages-masks, access and synchronization
7166    scopes>>.
7167  * Clarify that dedicated allocations do not allow aliasing in the
7168    flink:vkBindBufferMemory and flink:vkBindImageMemory valid usage
7169    statements.
7170  * Correct specification of pname:dynamicCount for push_constant token in
7171    slink:VkIndirectCommandsLayoutNVX.
7172
7173New Extensions:
7174
7175  * `VK_EXT_shader_viewport_index_layer`
7176
7177-----------------------------------------------------
7178
7179Change log for August 1, 2017 Vulkan 1.0.57 spec update:
7180
7181  * Bump API patch number and header version number to 57 for this update.
7182
7183Github Issues:
7184
7185  * Fix error in description of ename:VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK
7186    block size (public issue 342).
7187  * Update documentation of ename:VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT
7188    to explicitly mention both graphics and compute pipelines (public issue
7189    525).
7190
7191Internal Issues:
7192
7193  * Document that
7194    slink:VkPhysicalDeviceLimits::pname:framebufferColorSampleCounts does
7195    not cover integer formats (internal issue 550).
7196  * Add a note under slink:VkImageViewCreateInfo describing how values meant
7197    for one format can be sanitized when used via another format (internal
7198    issue 927).
7199  * Add valid usage statements to ftext:vkCmd* documenting that image
7200    subresources used as attachments must not be accessed as non-attachments
7201    in a render pass (internal issue 929).
7202  * Remove obsolete 'validextensionstructs' attribute from +vk.xml+, the XML
7203    schema, and the schema documentation (internal issue 946).
7204
7205New Extensions:
7206
7207  * `VK_AMD_mixed_attachment_samples`
7208  * `VK_EXT_post_depth_coverage`
7209  * `VK_KHR_relaxed_block_layout`
7210
7211-----------------------------------------------------
7212
7213Change log for July 21, 2017 Vulkan 1.0.56 spec update:
7214
7215  * Bump API patch number and header version number to 56 for this update.
7216
7217Github Issues:
7218
7219  * Add valid usage statements for commands introduced by
7220    `VK_EXT_debug_report` and `VK_EXT_debug_marker` extensions, regarding
7221    the valid pname:object and pname:objectType values (public issue 495).
7222  * Modify `GL_KHR_vulkan_glsl` specification to document that uniform and
7223    buffer block arrays each take only a single binding (public issue 514).
7224  * Add `KHX` author tag to +vk.xml+ (public issue 526).
7225
7226Internal Issues:
7227
7228  * Document use of code: macro for non-Vulkan APIs in the style guide
7229    (internal issue 863).
7230  * Document that reference page open block delimiters must not contain
7231    asciidoc section markup in the style guide (internal issue 898).
7232  * Fix <<spirvenv,SPIR-V appendix>> to say
7233    code:VariablePointersStorageBuffer instead of
7234    code:VariablePointersUniformBufferBlock (internal issue 928).
7235
7236Other Commits:
7237
7238  * Add missing extension structures to dependency attributes in +vk.xml+.
7239
7240New Extenions:
7241
7242  * `VK_EXT_depth_range_unrestricted`
7243
7244-----------------------------------------------------
7245
7246Change log for July 15, 2017 Vulkan 1.0.55 spec update:
7247
7248  * Bump API patch number and header version number to 55 for this update.
7249
7250Github Issues:
7251
7252  * Removed unintended optional parameter in +vk.xml+ from the
7253    pname:pWaitSemaphores member of slink:VkPresentInfoKHR, which resulted
7254    in the generation of an incorrect implicit valid usage clause allowing
7255    pname:pWaitSemaphores to be NULL even when pname:waitSemaphoreCount is
7256    non-zero (public issue 491).
7257  * Add missing attribute to +vk.xml+ documenting that
7258    slink:VkSwapchainCounterCreateInfoEXT extends
7259    slink:VkSwapchainCreateInfo (public issue 510).
7260  * Add const qualifier for some `VK_EXT_debug_market` extension command
7261    parameters that were missing it (public issue 513).
7262  * Fix definition of q and level~base~ in
7263    <<textures-image-level-selection,Image Level(s) Selection>> (public
7264    issue 515).
7265  * Clarify lifetime requirement for slink:VkRenderPass objects used in
7266    object creation (public issue 516).
7267  * Fix link to floating/normalized fixed-point conversion from
7268    <<interfaces-fragmentoutput,Fragment Output Interface>> (public issue
7269    521).
7270
7271Internal Issues:
7272
7273  * Update the style guide to include the general structure of a Vulkan
7274    command name, the specific rule for using "`Get`" vs. "`Enumerate`" in
7275    names, and a table of verbs commonly used in command names (spinoff of
7276    internal issue 753).
7277  * Clarified the behavior of automatic layout transitions in case of
7278    attachment views that are 2D or 2D array views of 3D images. In
7279    addition, restructured the valid usage clauses corresponding to the
7280    members of the slink:VkImageSubresourceRange structure and added missing
7281    valid usage clauses for its pname:baseMipLevel and pname:baseArrayLayer
7282    members (internal issues 803, 849).
7283  * Modify `GL_KHR_vulkan_glsl` specification to allow explicit std430 on a
7284    push_constant declaration (internal issue 919).
7285
7286Other Commits:
7287
7288  * Modify <<synchronization-framebuffer-regions, Framebuffer Region
7289    Dependencies>> to use synchronization scope terminology.
7290  * Add ename:VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT to the
7291    `VK_EXT_swapchain_colorspace` extension.
7292  * Replace XML comments with `comment` attributes and/or tags, to enable
7293    tools which transform the XML without loss of information.
7294  * Replace `validextensionstructs` with `structextends`, which is tagged in
7295    the child structure instead of the parent. This makes it slightly
7296    simpler to add new structs to the XML, causes fewer merge conflicts, and
7297    the information is kept localized to the extension structures where it
7298    belongs. The old `validextensionstructs` attributes will be retained
7299    until we're certain this doesn't cause problems with known consumers of
7300    +vk.xml+.
7301
7302-----------------------------------------------------
7303
7304Change log for July 13, 2017 Vulkan 1.0.54 spec update:
7305
7306  * Bump API patch number and header version number to 54 for this update.
7307
7308Github Issues:
7309
7310Internal Issues:
7311
7312  * Fix tessellation domain to have an upper-left origin in the
7313    <<img-tessellation-topology-ul, tessellation toplogy image>> and related
7314    language. CTS and all implementations were already doing this, it was
7315    just a documentation bug that it was flipped to lower-left (internal
7316    issue 603).
7317  * Add a section to the style guide describing how VUID tags are changed
7318    and removed when the corresponding Valid Usage statements are modified
7319    (internal issue 829).
7320  * Add explicit Valid Usage statement to
7321    slink:VkPipelineDynamicStateCreateInfo to require that members of
7322    pname:pDynamicStates must be unique (internal issue 851).
7323
7324New Extensions:
7325
7326  * `VK_KHR_16bit_storage`
7327  * `VK_KHR_dedicated_allocation`
7328  * `VK_KHR_external_fence`
7329  * `VK_KHR_external_fence_capabilities`
7330  * `VK_KHR_external_fence_fd`
7331  * `VK_KHR_external_fence_win32`
7332  * `VK_KHR_get_memory_requirements2`
7333  * `VK_KHR_storage_buffer_storage_class`
7334  * `VK_KHR_variable_pointers`
7335
7336Extensions Promoted From KHX To KHR Status:
7337
7338  * `VK_KHR_external_memory`
7339  * `VK_KHR_external_memory_capabilities`
7340  * `VK_KHR_external_memory_fd`
7341  * `VK_KHR_external_memory_win32`
7342  * `VK_KHR_external_semaphore`
7343  * `VK_KHR_external_semaphore_capabilities`
7344  * `VK_KHR_external_semaphore_fd`
7345  * `VK_KHR_external_semaphore_win32`
7346  * `VK_KHR_win32_keyed_mutex`
7347
7348-----------------------------------------------------
7349
7350Change log for June 24, 2017 Vulkan 1.0.53 spec update:
7351
7352  * Bump API patch number and header version number to 53 for this update.
7353
7354Github Issues:
7355
7356Internal Issues:
7357
7358  * Clarify mappings of coordinates for mutable, compatible image views in
7359    slink:VkImageViewCreateInfo (internal issue 815).
7360  * Make ename:VK_BIND_SFR_BIT require a logical device with multiple
7361    physical devices, so that standard sparse image block dimensions are
7362    only required on systems that support multi-GPU (internal issue 835).
7363  * Convert all files from use of // refBegin .. // refEnd comments to
7364    delimit ref pages, to use of open blocks, and update style guide
7365    accordingly (internal issue 839).
7366  * Add valid usage for slink:VkWriteDescriptorSet when performing updates
7367    to a ename:VK_STORAGE_IMAGE descriptor with layout
7368    ename:VK_IMAGE_LAYOUT_GENERAL.
7369  * Add a hack to the validity generator script to support an odd
7370    interaction between flink:vkCmdFillBuffer and an extension (internal
7371    issue 853).
7372  * Remove redundant text describing slink:VkBufferCreateInfo::pname:usage,
7373    which was already covered by implicit valid usage (internal issue 854).
7374  * Update implicit validity generator script to properly handle the
7375    pname:sType and pname:pNext members of "returnedonly" structures
7376    (internal issue 874).
7377  * Note that slink:VkApplicationInfo::pname:pApplicationName &
7378    slink:VkApplicationInfo::pname:pEngineName are optional, and add missing
7379    implicit valid usage statements for flink:vkDestroyInstance.
7380  * Added missing valid usage for flink:vkCmdWriteTimestamp to require a
7381    timestamp query pool.
7382  * Simplify and/or split "`non-atomic`" valid usage statements.
7383
7384New Extensions:
7385
7386  * `VK_AMD_gpu_shader_int16`
7387  * `VK_EXT_blend_operation_advanced`
7388  * `VK_EXT_sampler_filter_minmax`
7389  * `VK_NV_framebuffer_mixed_samples`
7390
7391-----------------------------------------------------
7392
7393Change log for June 13, 2017 Vulkan 1.0.52 spec update:
7394
7395  * Bump API patch number and header version number to 52 for this update.
7396
7397Github Issues:
7398
7399Internal Issues:
7400
7401  * Clarify behavior when non-coherent memory has
7402    <<memory-device-unmap-does-not-flush, not been flushed before being
7403    unmapped>> (internal issue 819).
7404  * Fix description of code:WorkgroupSize builtin to note it decorates an
7405    object, not a variable (internal issue 836).
7406  * Fix asciidoc attributes so that trailing '{plus}' symbols in [eq] style
7407    equations are rendered properly (internal issue 845).
7408  * Add language to the "`Extension Handles, Objects, Enums, and Typedefs`"
7409    section of the Procedures and Conventions document stating that any new
7410    handle type requires a corresponding entry in the elink:VkObjectType
7411    enumerated type (internal issue 856).
7412  * Update style guide to use slink macro for Vulkan handle type names, and
7413    define narrow conditions under which to use the *name and *text macros
7414    instead of *link (internal issue 886).
7415  * Add a dependency of the <<VK_KHX_device_group,VK_KHX_device_group>>
7416    extension on VK_KHX_device_group_creation to +vk.xml+ and the extension
7417    appendix.
7418  * Change the copyright on Vulkan specification asciidoc *source* files to
7419    CC-BY 4.0, and update the proprietary Khronos copyright applied to the
7420    generated *output* formats (internal issue 327). This enables broader
7421    re-use and modification of the Vulkan specification sources, while not
7422    affecting the Reciprocal IP License between Vulkan Adopters and Working
7423    Group Members.
7424
7425New Extensions:
7426
7427  * `VK_NV_fill_rectangle`
7428  * `VK_NV_fragment_coverage_to_color`
7429
7430-----------------------------------------------------
7431
7432Change log for June 4, 2017 Vulkan 1.0.51 spec update:
7433
7434  * Bump API patch number and header version number to 51 for this update.
7435
7436Github Issues:
7437
7438  * Add Valid Usage statement to flink:vkCmdResolveImage to require that
7439    source and destination image formats match (public issue 492).
7440  * Specify that a code:char* parameter must: be a valid null-terminated
7441    string in the <<fundamentals-implicit-validity, implicit valid usage>>
7442    section (public issue 494).
7443  * Removed unnecessary VU for slink:VkPhysicalDeviceFeatures which is
7444    covered by ename:VK_ERROR_FEATURE_NOT_PRESENT already (public issue
7445    496).
7446  * Clarify valid usage of pname:pQueueFamilyIndices in
7447    slink:VkBufferCreateInfo, slink:VkImageCreateInfo, and
7448    slink:VkSwapchainCreateInfoKHR (public issue 501).
7449  * Document that dependencies of enabled extensions must also be enabled in
7450    the <<extended-functionality-extensions-dependencies, Extension
7451    Dependencies>> section (public issue 507).
7452
7453Internal Issues:
7454
7455  * Change slink:VkMappedMemoryRange valid usage to allow pname:offset +
7456    pname:size == size of the allocation. Also, if ename:VK_WHOLE_SIZE is
7457    used, require the end of the mapping to be aligned to a multiple of
7458    pname:nonCoherentAtomSize (internal issue 611).
7459  * Add issue to `VK_KHR_win32_surface` about reusing window objects from a
7460    different graphics API or Vulkan ICD (internal issue 639).
7461  * Require locations on user in/out in `GL_KHR_vulkan_glsl` (internal issue
7462    783).
7463  * Added version info to the json validation output, and updated the schema
7464    to match (internal issue 838).
7465  * Restructure enumerated type descriptions separately from the command or
7466    structure they are used in, allowing better reference page generation
7467    (internal issue 841).
7468  * Re-sort extension appendices to be in alphabetical order within each
7469    author ID section.
7470  * Fix enum naming and clarify behavior for
7471    `VK_NVX_device_generated_commands` extension.
7472
7473-----------------------------------------------------
7474
7475Change log for May 20, 2017 Vulkan 1.0.50 spec update:
7476
7477  * Bump API patch number and header version number to 50 for this update.
7478
7479Github Issues:
7480
7481  * Fix numerous minor issues with the VK_EXT_debug_report extension (public
7482    issues 478, 483, 486, 489, 490).
7483
7484Internal Issues:
7485
7486  * Update flink:vkAllocateDescriptorSets to specify conditions under which
7487    to return ename:VK_ERROR_FRAGMENTED_POOL or
7488    ename:VK_ERROR_OUT_OF_POOL_MEMORY instead of
7489    out-of-host/out-of-device-memory, and improve the
7490    <<fundamentals-errorcodes, description of those errors (internal issue
7491    654).
7492  * Add a NOTE documenting that flink:vkAcquireNextImageKHR can only signal
7493    a single semaphore, and how to deal with that when multiple physical
7494    devices in a logical device need to wait on it (internal issue 730).
7495  * Improve description of pname:pNext chains of
7496    slink:VkPhysicalDeviceImageFormatInfo2KHR and
7497    slink:VkImageFormatProperties2KHR (internal issue 814).
7498  * Clean up math markup issues in the <<textures, Image Operations>>
7499    chapter (internal issue 818).
7500  * Update validusage target to use more robust code for preprocessing, by
7501    making direct use of Asciidoctor's preprocessor. Added uniqueItems check
7502    to JSON vu schema and add clean_validusage target (internal issue 826).
7503  * Update style guide to prohibit writing non-self-contained (on a single
7504    bullet point) Valid Usage statements, and modify offending Valid Usage
7505    statements in the Specification to match, to assist with automatic
7506    extraction for the validation layers (internal issue 828).
7507  * Add ename:VK_VALIDATION_CHECK_SHADERS_EXT to elink:VkValidationCheckEXT
7508    of the `VK_EXT_validation_flags` extension, to selectively disable
7509    shader validation.
7510  * Remove duplicate valid usage statement for slink:VkImageMemoryBarrier.
7511  * Modify reflow.py script to place VUID tag anchors standalone on a line
7512    following their corresponding bullet point, and reflow the spec text
7513    accordingly (this had been pending since the initial tag deployment).
7514
7515New Extensions:
7516
7517  * `VK_AMD_texture_gather_bias_lod`
7518
7519-----------------------------------------------------
7520
7521Change log for May 12, 2017 Vulkan 1.0.49 spec update:
7522
7523  * Bump API patch number and header version number to 49 for this update.
7524
7525Github Issues:
7526
7527  * Modify reference page extraction script to make internal links to spec
7528    anchors refer to the core specification instead of being dangling links
7529    (public issue 455).
7530  * Fix GL_KHR_vulkan_glsl typo and add a nor-normative mapping to the newly
7531    published StorageBuffer class (public issue 466).
7532  * Both flink:vkEnumerateInstanceExtensionProperties and
7533    flink:vkEnumerateDeviceExtensionProperties return
7534    ename:VK_ERROR_LAYER_NOT_PRESENT, which covers the error case of an
7535    application providing a layer name that wasn't returned by
7536    ftext:vkEnumerate{Instance|Device}LayerProperties (public issue 487).
7537  * The specification for flink:VkApplicationInfo::apiVersion says that the
7538    driver must return ename:VK_ERROR_INCOMPATIBLE_DRIVER in the case that
7539    pname:apiVersion specifies a non-supported version. That means that the
7540    valid usage should not also state that, and so the VU statement is
7541    removed. The VU had language about "`an effective substitute`" that
7542    would have been lost, and so it was moved to the pname:apiVersion
7543    description (public issue 488).
7544
7545Internal Issues:
7546
7547  * Modify implicit validity generator script to assign asciidoc anchors to
7548    all valid usage statements it generates, and reflow.py script to insert
7549    Valid Usage ID (VUID) tags into the specification source files for
7550    explicit valid usage statements. This has no semantic effects on the
7551    specification, but will support the validation layer's detection of
7552    valid usage violations and allow it to link into the corresponding part
7553    of the specification (internal issue 583).
7554  * Assign VUID tags to all explicit VU statements and document
7555    the process and tag format in the style guide (internal issue 583).
7556  * Clarify the rules of whether to structure new functionality as instance
7557    extensions, device extensions, or both in the
7558    <<extended-functionality-instance-extensions-and-devices, Instance
7559    Extensions and Device Extensions>> section (internal issue 749).
7560  * Require that SPIR-V run-time arrays are only used with the
7561    code:BufferBlock decoration (internal issue 750).
7562  * Fix implicit and explicit valid usage statements for
7563    slink:VkWriteDescriptorSet::pname:dstSet (internal issue 767)
7564  * Fix SPIR-V code sample for ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
7565    in the <<descriptorsets-uniformtexelbuffer, Uniform Texel Buffer>>
7566    section (internal issue 770).
7567  * Clarify that disabling depth testing also disables depth writes in the
7568    <<fragops-ds-state, Depth and Stencil Operations>> section (internal
7569    issue 775).
7570  * flink:VkDescriptorImageInfo::pname:imageLayout must match the actual
7571    imageLayout at the time the image is accessed. This was in the spec
7572    text, but needed an associated valid usage statement.
7573  * Note that only 32-bit atomic operations are supported in the
7574    <<spirvenv-module-validation, Validation Rules within a Module>>
7575    section.
7576  * Note that code:UniformConstant variables must not have initializers in
7577    the <<spirvenv-module-validation, Validation Rules within a Module>>
7578    section.
7579  * Add a new elink:VkObjectType enumeration to the core API, promoted from
7580    elink:VkDebugObjectTypeEXT, since it is used for much more than just the
7581    debug_report extension.
7582
7583New Extensions:
7584
7585  * `VK_KHR_get_surface_capabilities2`
7586  * `VK_KHR_shared_presentable_image`
7587
7588-----------------------------------------------------
7589
7590Change log for April 15, 2017 Vulkan 1.0.48 spec update:
7591
7592  * Bump API patch number and header version number to 48 for this update.
7593
7594Internal Issues:
7595
7596  * Add missing VU statements for flink:vkUpdateDescriptorSets (internal
7597    issue 333).
7598  * Correct swapped ifdef/ifndef blocks for `VK_KHR_maintenance1` extension
7599    (internal issue 776).
7600
7601-----------------------------------------------------
7602
7603Change log for April 8, 2017 Vulkan 1.0.47 spec update:
7604
7605  * Bump API patch number and header version number to 47 for this update.
7606
7607Github Issues:
7608
7609  * Allow <<synchronization-pipeline-barriers-subpass-self-dependencies,
7610    self-dependencies>> (also described for slink:VkSubpassDependency) to
7611    have earlier stages depend on later stages if all stages are
7612    framebuffer-space (public issue 125).
7613  * Clarify when pipeline state structures are ignored in the
7614    slink:VkGraphicsPipelineCreateInfo strucure, when the tessellation
7615    structure must be valid, and remove 'if `NULL`' descriptions from the
7616    valid usage statements (public issue 445).
7617  * Remove the obsolete "validextensionstructs" attribute for
7618    flink:VkPresentRegionsKHR. This caused a pname:pNext valid usage
7619    statement to be generated which wasn't consistent with what is stated in
7620    the spec (public issue 481).
7621
7622Internal Issues:
7623
7624  * Clarify facingness of non-polygon fragments for slink:VkStencilOpState
7625    and in the code:FrontFacing <<interfaces-builtin-variables,built-in
7626    variable description>>. Define 'facingness' of a fragment as a distinct
7627    term from facingness of a polygon (internal issue 662).
7628  * Clarify that the texture compression features (e.g.
7629    pname:textureCompressionBC) means that all formats of that type
7630    (<<features-features-textureCompressionASTC_LDR,ASTC>>,
7631    <<features-features-textureCompressionETC2,ETC2>>,
7632    <<features-features-textureCompressionBC,BC>>) are supported, and that
7633    support for individual formats may: queried separately (internal issue
7634    663).
7635  * Clarify in the valid usage for slink:VkBindImageMemoryInfoKHX that each
7636    SFR rectangle must be a multiple of the sparse block size for each
7637    aspect, e.g. in a depth/stencil image using separate depth/stencil
7638    planes (internal issue 721).
7639  * Re-remove KHX variants of KHR structure types after promotion (internal
7640    issue 762).
7641
7642-----------------------------------------------------
7643
7644Change log for March 31, 2017 Vulkan 1.0.46 spec update:
7645
7646  * Bump API patch number and header version number to 46 for this update.
7647
7648Github Issues:
7649
7650  * Add language to the <<fundamentals-validusage-enums, Valid Usage for
7651    Enumerated Types>> section allowing values to be returned from Vulkan
7652    that are not present in extensions explicitly enabled by the
7653    application, similar to existing language for bit flags in the
7654    <<fundamentals-validusage-flags, Valid Usage for Flags>> section (public
7655    issue 442).
7656  * *Important*: run `gem update --pre asciidoctor-pdf` before trying to
7657    build this version of the spec - 1.5.0.alpha15 is required for this
7658    change. Removes the monkey patch currently used to draw valid usage
7659    blocks across multiple pages which had numerous issues. A fixed version
7660    was incorporated into Asciidoctor-PDF for the latest release, so the
7661    monkey patch or any variant thereof is no longer required (public issue
7662    465).
7663
7664Internal Issues:
7665
7666  * Add ename:VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT
7667    to `VK_EXT_debug_report` extension
7668  * Fix ptext:pNext member of
7669    slink:VkPhysicalDeviceDiscardRectanglePropertiesEXT to be a non-const
7670    pointer. Properties structures return values, so the chain should be
7671    non-const.
7672  * Explicitly remove gl_NumSamples from the `GL_KHR_vulkan_glsl` extension,
7673    against 1.0 (internal issue 612).
7674  * Add Valid Usage statements requiring that each structure type valid in a
7675    ptext:pNext chain must: not appear more than once in a chain (internal
7676    issue 752).
7677  * Use ename:VK_USE_PLATFORM_WIN32_KHX in the
7678    `VK_KHX_external_memory_win32` extension, rather than etext:_KHR
7679    (internal issue 754).
7680
7681New Extensions:
7682
7683  * `VK_KHR_incremental_present`
7684
7685-----------------------------------------------------
7686
7687Change log for March 24, 2017 Vulkan 1.0.45 spec update:
7688
7689  * Bump API patch number and header version number to 45 for this update.
7690
7691Github Issues:
7692
7693  * Defined the lifetime of the memory pointed to by
7694    slink:VkDisplayPropertiesKHR::pname:displayName to be equal to that of
7695    its associated display handle (public issue 460).
7696  * Correct several cases where the sparse memory feature name
7697    pname:residencyNonResidentStrict was written as
7698    pname:sparseResidencyNonResidentStrict (public issue 475).
7699
7700Internal Issues:
7701
7702  * Fix ptext:pNext member of slink:VkPhysicalDeviceGroupPropertiesKHX to be
7703    a non-const pointer. Properties structures return values, so the chain
7704    should be non-const.
7705  * Clarify definition of memory aliasing to consistently use the terms
7706    "linear" and "non-linear" when referring to resources, and define what
7707    those terms mean.
7708  * Modified XML schema and implicit validity scripts to generate language
7709    for all ptext:pNext values in a ptext:pNext chain instead of just the
7710    top level struct, and made `noautovalidity` functional for ptext:sType
7711    and ptext:pNext (internal issue 535).
7712  * Add more detail for BT2020 and scRGB color spaces in
7713    `VK_EXT_swapchain_colorspace` extension (internal issue 632).
7714  * Add naming rules for Extension Structure Names (structures added to the
7715    ptext:pNext chain of a base structure) to the style guide (internal
7716    issue 706).
7717  * Define the glossary term "ptext:pNext chain", and use it consistently in
7718    the spec (internal issue 744).
7719
7720-----------------------------------------------------
7721
7722Change log for March 17, 2017 Vulkan 1.0.44 spec update:
7723
7724  * Bump API patch number and header version number to 44 for this update.
7725
7726Github Issues:
7727
7728  * Fix description of <<features-extentperimagetype, Allowed Extent Values
7729    Based On Image Type>> (public issue 290).
7730  * Better specify VK_DEVICE_LOST behavior around flink:vkQueueSubmit,
7731    flink:vkWaitForFences, and flink:vkGetFenceStatus (public issue 423).
7732  * Clarify definition of flink:vkGetQueryPoolResults::pname:queryCount
7733    (public issue 441).
7734  * Simplify and clean up normative language. Remove shall and replace
7735    recommend and variants with should wherever possible (public issue 448).
7736  * Fix all dangling internal cross-references in the 1.0-extensions
7737    specification, and add scripts/checkXrefs to find these in the future
7738    (public issue 456).
7739  * Reverse order of ChangeLog.txt entries so the most recent version is
7740    documented first (public issue 463)
7741  * Removes "become invalid" which clashes with invalid state for command
7742    buffers. (public issue 467)
7743  * Disallowed pending state in spec text for vkResetCommandBuffer, matching
7744    valid usage (public issue 468)
7745  * Removes sentence describing invalid state "like initial state". (public
7746    issue 469)
7747  * Disallows begin command buffer from resetting command buffers in the
7748    "recording" state. (public issue 470)
7749  * Removes mention of state from description of
7750    VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT (public issue 471)
7751  * Removed extra valid usage statement in VkSubmitInfo (public issue 472)
7752
7753Internal Issues:
7754
7755  * Clarify description of the pname:imageLayout member of
7756    sname:VkDescriptorImageInfo.
7757  * Fix typos where etext:VK_VIEW_TYPE* was used instead of
7758    etext:VK_IMAGE_VIEW_TYPE.
7759  * Removed the <<VK_KHR_display>> and <<VK_KHR_display_swapchain>> example
7760    code from the specification and noted it has been moved to the Vulkan
7761    SDK cube demo (internal issue 179).
7762  * Reorder VkExternalMemoryHandleTypeFlagBitsNV description (internal issue
7763    480).
7764  * Clarify than an implementation is
7765    <<fundamentals-validusage-flags,permitted to return 'undefined' bit
7766    flags>> in a bitfield (internal issue 640).
7767  * Break Valid Usage statements describing unrelated parameters into
7768    separate statements, and add a style guide entry to follow this approach
7769    (internal issue 685).
7770  * Move valid usage statement for slink:VkImageCreateInfo from spec body to
7771    the explicit valid usage block (internal issue 693).
7772  * Fix typos in the descriptions of slink:VkDisplaySurfaceCreateInfoKHR,
7773    flink:vkCreateDisplayModeKHR, and
7774    flink:vkGetDisplayPlaneSupportedDisplaysKHR in the <<display,Presenting
7775    Directly to Display Devices>> section (internal issue 698, 704, 716).
7776  * Clarified that mandatory depth/stencil formats are only a requirement
7777    for 2D images (internal issue 719).
7778  * Clarify that variables decorated with DeviceIndex/ViewIndex must be in
7779    the Input storage class (internal issue 733).
7780  * Work around generator script problem with removal of Unicode literals
7781    from Python 3.0-3.2 using `future` package (internal issue 737).
7782  * Remove nonexistent structure type enums from vk.xml (internal issue
7783    738).
7784  * Fix validextensionstructs attributes for structures in the pname:pNext
7785    chain for VkPresentInfoKHR, fixing implicit valid usage statements for
7786    those structures (internal issue 740).
7787
7788-----------------------------------------------------
7789
7790Change log for March 10, 2017 Vulkan 1.0.43 spec update:
7791
7792  * Bump API patch number and header version number to 43 for this update.
7793
7794Github Issues:
7795
7796  * Make clearer that color write mask is applied regardless of whether
7797    blending is enabled, by referring to the
7798    <<framebuffer-color-write-mask,Color Write Mask>> section (public issue
7799    241).
7800  * Fix public issue 414:
7801  ** Added two new command buffer states (invalid, pending), and an explicit
7802     "command buffer lifecycle" section to explain them.
7803  ** Replaced "pending execution" with "in the pending state".
7804  ** Replaced a bunch of "this will invalidate the command buffer" language
7805     with "this will move the command buffer to the invalid state", and added
7806     validation language for what state those command buffers should be in.
7807  ** Added additional validation language about what state a command buffer
7808     should be in for various commands that affect it.
7809  ** Added invalidation language to destroy commands in the lifetimes section
7810     of fundamentals.
7811  ** Added command buffers to list of objects which must not be deleted
7812     whilst a (primary) command buffer is in the recording or pending state.
7813  * Update `GL_KHR_vulkan_glsl` extension to allow anonymous push constant
7814    blocks (public issue 428).
7815
7816Internal Issues:
7817
7818  * Document rules about extension interactions in the style guide (internal
7819    issue 579).
7820  * Require ename:VK_PRESENT_MODE_MAILBOX_KHR support in queries of surfaces
7821    created with flink:vkCreateWaylandSurfaceKHR using the
7822    VK_KHR_wayland_surface extension (internal issue 666).
7823  * Remove Valid Usage constraints for flink:vkAllocateDescriptorSets when
7824    the `VK_KHR_maintainance1` extension is present (internal issue 686).
7825  * Remove undocumented KHX-variants of vkGetPhysicalDeviceProperties2KHR
7826    and vkGetPhysicalDeviceImageFormatProperties2KHR from the
7827    <<VK_KHX_external_memory_capabilities>> and
7828    <<VK_KHX_external_semaphore_capabilities>> extensions.
7829
7830New Extensions:
7831
7832  * `VK_EXT_hdr_metadata`
7833  * `VK_GOOGLE_display_timing`
7834
7835-----------------------------------------------------
7836
7837Change log for February 27, 2017 Vulkan 1.0.42 spec update:
7838
7839  * Bump API patch number and header version number to 42 for this update
7840    (the first anniversary edition).
7841
7842Github Issues:
7843
7844  * Changed asciidoctor macros so cross-page links in the standalone
7845    reference pages function properly (public issue 462).
7846
7847Internal Issues:
7848
7849  * Clarified host visibility discussion for slink:VkMemoryType,
7850    flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
7851    <<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
7852    section, removing duplicated information and adding a central definition
7853    in the access types section (internal issue 552).
7854  * Change description of
7855    slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
7856    return an array of values, not structures (internal issue 699).
7857
7858New Extensions:
7859
7860  * Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
7861    the experimental status of `KHX` extensions.
7862  * Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
7863    release at GDC:
7864  ** VK_KHR_descriptor_update_template
7865  ** VK_KHR_push_descriptor
7866  ** VK_KHX_device_group
7867  ** VK_KHX_device_group_creation
7868  ** VK_KHX_external_memory
7869  ** VK_KHX_external_memory_capabilities
7870  ** VK_KHX_external_memory_fd
7871  ** VK_KHX_external_memory_win32
7872  ** VK_KHX_external_semaphore
7873  ** VK_KHX_external_semaphore_capabilities
7874  ** VK_KHX_external_semaphore_fd
7875  ** VK_KHX_external_semaphore_win32
7876  ** VK_KHX_multiview
7877  ** VK_KHX_win32_keyed_mutex
7878  ** VK_EXT_discard_rectangles
7879  ** VK_MVK_ios_surface
7880  ** VK_MVK_macos_surface
7881  ** VK_NVX_multiview_per_view_attributes
7882  ** VK_NV_clip_space_w_scaling
7883  ** VK_NV_geometry_shader_passthrough
7884  ** VK_NV_sample_mask_override_coverage
7885  ** VK_NV_viewport_array2
7886  ** VK_NV_viewport_swizzle
7887  * Add new GLSL vendor extensions to support new builtin variables:
7888  ** GL_EXT_device_group
7889  ** GL_EXT_multiview
7890
7891-----------------------------------------------------
7892
7893Change log for February 17, 2017 Vulkan 1.0.41 spec update:
7894
7895  * Bump API patch number and header version number to 41 for this update.
7896
7897Github Issues:
7898
7899  * Made all uses of `NULL` vs. code:VK_NULL_HANDLE consistent (public issue
7900    276).
7901  * Clarify render pass compatibility in different usage scenarios (public
7902    issues 403 and 404).
7903  * Add valid usage statements to slink:VkFramebufferCreateInfo requiring
7904    that the width, height, and number of layers of the framebuffer all be
7905    nonzero (public issue 432).
7906  * Allow `offset` and `align` in any GLSL version for the
7907    `GL_KHR_vulkan_glsl` extension (public issue 435).
7908  * Specify lifetime of string objects passed to the
7909    tlink:PFN_vkDebugReportCallbackEXT user callback in the
7910    +VK_EXT_debug_report+ extension (public issue 446).
7911  * Fix inter-page links in multi-file reference pages (public issue 454).
7912
7913Internal Issues:
7914
7915  * Update valid usage language for slink:VkImageCreateInfo to disallow
7916    creating images that have ename:VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
7917    set without other attachment usage bits
7918    (ename:VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,
7919    ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, or
7920    ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) (internal issue 540).
7921  * Disable `VK_EXT_swapchain_colorspace` extension until internal issues
7922    640 and 661 are mutually resolved.
7923  * Allow alternative mipmap level selection when [eq]#lambda == 0.5# during
7924    texture <<textures-image-level-selection,Image Level(s) Selection>>
7925    (internal issue 680).
7926
7927Other Issues:
7928
7929  * Add a clarification to the style guide that the extension revision
7930    number is treated as a patch number, so that changes to published
7931    extensions should only include bug fixes and spec clarifications.
7932
7933-----------------------------------------------------
7934
7935Change log for February 10, 2017 Vulkan 1.0.40 spec update:
7936
7937  * Bump API patch number and header version number to 40 for this update.
7938  * There is a major build change in this release. We are now using the
7939    Ruby-based ``asciidoctor'' implementation, rather than the Python-based
7940    ``asciidoc'' implementation, to process the specification. While the
7941    actual specification markup changes were minimal, this requires a new
7942    set of build tools and a very different installation process, especially
7943    because we now use an experimental direct-to-PDF backend for Asciidoctor
7944    instead of Docbook->dblatex->PDF. It is no longer possible to build the
7945    Specification using asciidoc. See doc/specs/vulkan/README.adoc
7946    for some guidance on installing the new toolchain components.
7947  * There are some minor rendering issues in the PDF output due to teething
7948    problems with the asciidoctor toolchain, especially with mathematical
7949    equations. We are aware of these and working on them.
7950
7951Github Issues:
7952
7953  * Updated sample code for the <<sparsememory-examples-basic,sparse
7954    resource binding example>> (public issue 97).
7955  * Modify line and point clipping behavior in the
7956    <<vertexpostproc-clipping, Primitive Clipping>> section to allow for
7957    pop-free behavior. The ability to check for which behavior is
7958    implemented may be added a future feature or extension (public issue
7959    113).
7960  * Unify the discussions of implicit ordering throughout the spec, in
7961    particular in the new sections <<drawing-primitive-order, Primitive
7962    Order>>, <<primsrast-order, Rasterization Order>>, and
7963    <<synchronization-implicit, Implicit Synchronization Guarantees>>; the
7964    discussion of <<synchronization-submission-order, submission order>>;
7965    and references elsewhere to these sections (public issue 133).
7966  * Clarify <<descriptorsets-compatibility,Pipeline Layout Compatibility>>
7967    language and introduce the term ``identically defined'' (public issue
7968    164).
7969  * Add a dependency to the +VK_EXT_debug_marker+ extension that is needed to
7970    reuse the object type enum from +VK_EXT_debug_report+, and moves the
7971    definition of that enum into +VK_EXT_debug_report+ where it should be
7972    (public issue 409).
7973  * Remove redundant valid usage statement from slink:VkImageBlit (public
7974    issue 421).
7975  * Update GL_KHR_vulkan_glsl to allow the ternary operator to result in a
7976    specialization constant (public issue 424).
7977  * Fix valid usage for flink:VkPipelineShaderStageCreateInfo (public issue
7978    426).
7979  * Correct typo in New Objects list for <<VK_EXT_debug_report>> (public
7980    issue 447).
7981
7982Internal Issues:
7983
7984  * Moved to asciidoctor for spec builds (internal issue 121).
7985  * Update style guide to describe where to put new extensions-specific
7986    asciidoc files, and what to name them (internal issue 626).
7987  * Add src/spec/indexExt.py to autogenerate registry index entries linking
7988    into the 1.0-extensions specification, instead of maintaining the index
7989    manually. (internal issue 642).
7990  * Autogenerate extension dependencies and lists of all extensions and all
7991    KHR extensions from the "supported" attributes in +vk.xml+. Execute
7992    +make config/extDependency.sh+ from +doc/specs/vulkan+ when a supported
7993    extension is added to vk.xml, to regenerate the dependency script. The
7994    consequence is that specifying a single extension to the +makeExt+
7995    script will automatically enable all extensions it depends on as well,
7996    and that the +makeAllExts+ and +makeKHR+ scripts do not need to be
7997    updated when a new extension is supported (internal issue 648).
7998  * Put extension appendices all at the same asciidoc section level, so KHR
7999    WSI extensions show up in the HTML index (internal issue 648).
8000
8001Other Issues:
8002
8003  * Imbed images in the generated HTML specs instead of loading them from
8004    the images/ directory.
8005  * Fix missing EXT in extension name
8006    (ename:VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME).
8007  * Add new +VK_EXT_SMPTE_2086_metadata+ extension.
8008  * In the <<platformCreateSurface_xlib,Xlib Surface>> section of the
8009    `VK_KHR_xlib_surface` specification, add language warning users that
8010    they always need to call code:XinitThreads.
8011  * Use the term "presentable image" (rather than "swapchain image")
8012    consistently in `VK_KHR_swapchain` and related extensions, and add a
8013    glossary term defining it.
8014  * Relocate the valid usage for samples of
8015    flink:vkGetPhysicalDeviceSparseImageFormatProperties2KHR::pname:pFormatInfo
8016    to be below the flink:VkPhysicalDeviceSparseImageFormatInfo2KHR
8017    structure.
8018
8019-----------------------------------------------------
8020
8021Change log for January 23, 2017 Vulkan 1.0.39 spec update:
8022
8023  * Bump API patch number and header version number to 39 for this update.
8024
8025Github Issues:
8026
8027  * Clarified that only accesses via the specified buffer/image subresource
8028    ranges are included in the access scopes (public issue 306).
8029  * Add missing valid usage statements for flink:vkCreateComputePipelines
8030    and flink:vkCreateGraphicsPipelines (public issue 427).
8031
8032Internal Issues:
8033
8034  * Add a Note to the <<invariance,Invariance>> appendix about a difference
8035    between OpenGL and Vulkan with regards to how primitives derived from
8036    offsets are handled (internal issue 355).
8037  * Add the +<<VK_KHR_get_physical_device_properties2>>+,
8038    +<<VK_KHR_maintenance1>>+, and +<<VK_KHR_shader_draw_parameters>>+
8039    extensions (internal issue 448).
8040  * Add the +<<VK_EXT_shader_subgroup_vote>>+ and
8041    +<<VK_EXT_shader_subgroup_ballot>>+ extensions (internal issue 449).
8042  * Update the texture level-of-detail equation in the
8043    <<textures-scale-factor,Scale Factor Operation>> section to better
8044    approximate the ellipse major and minor axes (internal issue 547).
8045  * Forbid non-explicitly allowed uses of interface decorations in the
8046    introduction to the <<interfaces,Shader Interfaces>> chapter (internal
8047    issue 607).
8048  * Replace use of MathJax with KaTeX, for improved load-time performance as
8049    well as avoiding the scrolling-and-scrolling behavior due to MathJax
8050    asynchronous rendering when loading at an anchor inside the spec. This
8051    change also requires moving to HTML5 output for the spec instead of
8052    XHTML, and there is a visible difference in that the chapter navigation
8053    index is now in a scrollable sidebar instead of at the top of the
8054    document. We may or may not retain the nav sidebar based on feedback
8055    (internal issue 613).
8056  * Improve consistency of markup and formatting in extension appendices
8057    (internal issue 631).
8058
8059Other Issues:
8060
8061  * Add explicit valid usage statements to slink:VkImageCopy requiring that
8062    the source and destination layer ranges be contained in their respective
8063    source and destination images.
8064  * Add valid usage language for swapchain of flink:vkAcquireNextImage. If
8065    the swapchain has been replaced, then it should not be passed to
8066    flink:vkAcquireNextImage.
8067  * Add a valid usage statement to flink:vkCreateImageView, that the image
8068    must have been created with an appropriate usage bit set.
8069  * Noted that slink:VkDisplayPresentInfoKHR is a valid extension of
8070    slink:VkPresentInfoKHR in the <<wsi_swapchain,WSI Swapchain>> section.
8071  * Update valid usage for flink:vkCmdSetViewport and flink:vkCmdSetScissor
8072    to account for the multiple viewport feature. If the feature is not
8073    enabled, the parameters for these functions have required values that
8074    are defined in the <<features-features-multiViewport,multiple
8075    viewports>> section of the spec but were not reflected in the valid
8076    usage text for these functions.
8077  * Add the +<<VK_EXT_swapchain_colorspace>>+ extension defining common
8078    color spaces.
8079
8080-----------------------------------------------------
8081
8082Change log for December 16, 2016 Vulkan 1.0.38 spec update:
8083
8084  * Bump API patch number and header version number to 38 for this update.
8085
8086Github Issues:
8087
8088  * Make ename:VK_PIPELINE_STAGE_HOST_BIT invalid for all stage masks,
8089    except for flink:vkCmdWaitEvents (public issue 261).
8090
8091Internal Issues:
8092
8093  * Added validation language for flink:vkQueueBindSparse,
8094    slink:VkPresentInfoKHR, and slink:VkSubmitInfo, and a note to the
8095    <<synchronization-semaphores-waiting,Semaphore Waiting and Unsignaling>>
8096    section to clarify that semaphores must be signaled and waited on in a
8097    1:1 fashion (internal issue 546).
8098  * Modify valid usage for slink:VkBufferImageCopy to only require
8099    pname:bufferOffset to be a multiple of the image format's element size
8100    when the format is not depth/stencil (internal issue 594).
8101
8102Other Issues:
8103
8104  * Vulkan is now a registered trademark symbol, and this is reflected in
8105    documents and copyright statements.
8106
8107-----------------------------------------------------
8108
8109Change log for December 10, 2016 Vulkan 1.0.37 spec update:
8110
8111  * Bump API patch number and header version number to 37 for this update.
8112
8113Github Issues:
8114
8115  * Add usability guarantees on the values returned by
8116    flink:vkGetPhysicalDeviceSurfaceCapabilitiesKHR in the
8117    slink:VkSurfaceCapabilitiesKHR structure and by
8118    flink:vkGetPhysicalDeviceSurfaceFormatsKHR in the
8119    pname:pSurfaceFormatCount parameter (public issue 385).
8120  * Add elink:VkDebugReportObjectTypeEXT enumerants for new object types
8121    introduced by new extensions (public issue 408).
8122  * Add +VK_NVX_device_generated_commands+ etext:ACCESS bits and define how
8123    they are used (public issue 415).
8124  * Fix indentation for slink:VkDebugReportCallbackCreateInfoEXT member
8125    descriptions (public issue 419).
8126
8127Internal Issues:
8128
8129  * Expand requirements memory binding of non-sparse images and buffers from
8130    the <<resources-association,Resource Memory Association>> section into
8131    valid usage statements for all of the applicable API calls (internal
8132    issue 508).
8133  * Explicitly state that valid usage of flink:vkCreateImage requires that
8134    flink:vkGetPhysicalDeviceImageFormatProperties would return
8135    ename:VK_SUCCESS for the requested image configuration (internal issue
8136    598).
8137
8138-----------------------------------------------------
8139
8140Change log for December 1, 2016 Vulkan 1.0.36 spec update:
8141
8142  * Bump API patch number and header version number to 36 for this update.
8143
8144Github Issues:
8145
8146  * Fix "recorded with" terminology in the valid usage language for the
8147    flink:vkCmdExecuteCommands::pname:pCommandBuffers parameter (public
8148    issue 390).
8149  * Modify +genvk.py+ to support specifying extensions to remove from output
8150    generators, allowing the extension loader +vulkan_ext.c+ to be created
8151    without WSI extensions which are statically exported by the Vulkan
8152    loader (public issue 412).
8153  * Added validation language for slink:VkSubpassDependency and in the
8154    <<synchronization-access-types-supported,supported access types>>
8155    section to catch access masks that include bits which are not supported
8156    by pipeline stages in the stage masks (partially addresses
8157    github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/issues/1006 ).
8158
8159Internal Issues:
8160
8161  * Added validation language for flink:vkCmdWaitEvents,
8162    flink:vkQueueSubmit, flink:VkRenderPassCreateInfo, and in the
8163    <<synchronization-pipeline-stages-supported>> section to prevent
8164    recording stage dependencies that aren't supported on the queue
8165    (internal issue 516).
8166  * Make a few changes that generalize spec language for use with possible
8167    future extensions by adding glossary terms and generalizing ``feature''
8168    to ``feature or extension'' where relevant (internal issues 448, 590).
8169  * Added "pipeline type" attribute to +vk.xml+ for relevant commands and
8170    utilize it in automatic generation of the Command Properties table
8171    (internal issue 517).
8172  * Specify that WSI implementations must provide both UNORM and sRGB
8173    formats in the description of slink:VkColorSpaceKHR (internal issue
8174    529).
8175  * Remove nesting of explicit valid usage statements where it is not
8176    meaningful (internal issue 583).
8177
8178Other Issues:
8179
8180  * Add validity language requiring that
8181    slink:VkPushConstantRange::pname:offset be a multiple of 4, as stated in
8182    the spec language.
8183
8184-----------------------------------------------------
8185
8186Change log for November 25, 2016 Vulkan 1.0.35 spec update:
8187
8188  * Bump API patch number and header version number to 35 for this update.
8189
8190Github Issues:
8191
8192  * Document in the <<memory-device-hostaccess,Host Access>> section that
8193    mapping and unmapping does not invalidate or flush the mapped memory
8194    (public issues 27, 126).
8195  * Redefine the entire <<synchronization>> chapter in terms of consistent
8196    and well defined terminology, that is called out at the start of the
8197    chapter. This terminology is applied equally to all synchronization
8198    types, including subpass dependencies, submissions, and much of the
8199    implicit ordering stuff dotted around the spec. Key terms are laid out
8200    in the <<synchronization-dependencies,Execution and Memory
8201    Dependencies>> section at the top of the rewritten chapter (public
8202    issues 128, 131, 132, 217, 299, 300, 302, 306, 322, 346, 347, 371, 407).
8203  * Specify order of submission for batches in the
8204    <<vkQueueSubmit,vkQueueSubmit>> and
8205    <<vkQueueBindSparse,vkQueueBindSparse>> commands (public issue 371).
8206  * Add valid usage statements to each of the WSI extension sections
8207    indicating that the WSI-specific structure parameters must be valid, and
8208    remove automatically generated valid usage statements now covered by the
8209    manual sections (public issue 383).
8210  * Clarify render pass compatibility for flink:vkCmdExecuteCommands (public
8211    issue 390).
8212
8213Internal Issues:
8214
8215  * Update +vk.xml+ to make previously explicit valid usage statements for
8216    <<vkDebugReportMessageEXT,vkDebugReportMessageEXT>> implicit instead
8217    (internal issue 553).
8218  * Add valid usage statement for slink:VkCreateImageInfo preventing
8219    creation of 1D sparse images (internal issue 573).
8220  * Fix Python scripts to always read/write files in utf-8 encoding, and a
8221    logic error in reflib.py which could cause a fatal error for
8222    malstructured asciidoc (internal issues 578, 586).
8223
8224-----------------------------------------------------
8225
8226Change log for November 18, 2016 Vulkan 1.0.34 spec update:
8227
8228  * Bump API patch number and header version number to 34 for this update.
8229
8230Github Issues:
8231
8232  * Allow vkUpdateDescriptorSets overflow to skip empty bindings. Clarify
8233    that unused bindings have a descriptorCount of zero. Improve some valid
8234    usage for vkUpdateDescriptorSets (public issue 256).
8235  * Require that slink:VkImageSubresourceRange always define a non-empty
8236    range of the resource (public issue 303).
8237  * Added valid usage for slink:VkPresentInfoKHR on the layout of presented
8238    images (public issue 397).
8239
8240Internal Issues:
8241
8242  * Add dependency in src/spec/Makefile so specversion.txt is regenerated
8243    when needed (internal issue 462).
8244  * Shorten the table of contents in the single-page ref page HTML output.
8245    Still working on the PDF (internal issue 536).
8246
8247-----------------------------------------------------
8248
8249Change log for November 11, 2016 Vulkan 1.0.33 spec update:
8250
8251  * Bump API patch number and header version number to 33 for this update.
8252
8253Github Issues:
8254
8255  * Added implicit external synchronization parameters to
8256    vkBegin/EndCommandBuffer, and fixed missing command pool host
8257    synchronization from per-command lists (public issue 398).
8258  * Started using git tags including the spec release number, such as
8259    'v1.0.32-core', instead of tags including the date of release, such as
8260    'v1.0-core-20161025' (public issue 405).
8261
8262Internal Issues:
8263
8264  * Add validity constraint for
8265    slink:VkImportMemoryWin32HandleInfoNV::pname:handle (internal issue
8266    #480).
8267  * Add scripts to compare two Vulkan HTML specifications, derived from W3
8268    htmldiff service (internal issue 525).
8269  * Relax requirement that memoryTypeBits can't depend on format, to allow
8270    it to differ only for depth/stencil formats (internal issue 544).
8271  * Add a new generator script to create a simple extension loader for
8272    Vulkan based on +vk.xml+ (internal issue 558).
8273  * Add the overlooked requirement that buffer and image memory
8274    alignment requirements must be a power of two in the
8275    <<resources-association,Resource Memory Association>> section
8276    (internal issue 569).
8277
8278Other Issues:
8279
8280  * Add a naming rule to the style guide for members of extension structures
8281    defining array lengths which are the same as array lengths of the core
8282    structure they are chained from.
8283  * Add a new generator to create a simple extension loader in
8284    +src/ext_loader/vulkan_ext.[ch]+ from +vk.xml+. This code can be
8285    included in your project, and is expected to be packaged in the Vulkan
8286    SDK provided by LunarG in the future.
8287
8288-----------------------------------------------------
8289
8290Change log for October 25, 2016 Vulkan 1.0.32 spec update:
8291
8292  * Bump API patch number and header version number to 32 for this update.
8293
8294Github Issues:
8295
8296  * Add automatic visibility operations to the presentation engineE when
8297    doing a queue present in flink:vkAcquireNextImageKHR. Removed all
8298    references to MEMORY_READ that referenced WSI - they no longer make
8299    sense (some aspects of public issues 128, 131, 132, 261, and 298).
8300  * Document valid non-boolean +externsync+ attribute values for <param>
8301    tags in +vk.xml+ (public issue 265).
8302  * Add valid usage to slink:VkImageCreateInfo requiring that
8303    pname:arrayLayers be 1 for images of type ename:VK_IMAGE_TYPE_3D
8304    (public issue 319).
8305  * Add missing captions to figures in the <<textures,Image Operations>>
8306    chapter (public issue 334).
8307  * Clarify WSI interaction with exclusive sharing mode (public issue
8308    344).
8309  * Added explicit language clarifying the allowed queue usage of
8310    resources created with ename:VK_SHARING_MODE_CONCURRENT (public
8311    issue 386).
8312  * Require that the
8313    slink:VkDescriptorSetLayoutCreateInfo::pname:binding members of the
8314    pname:pBindings array passed to
8315    flink:vkDescriptorSetLayoutCreateInfo all be distinct (public issue
8316    391).
8317
8318Internal Issues:
8319
8320  * Remove empty validity blocks from +vk.xml+ and suppressed broken
8321    validity statements and added missing statements to explicit
8322    validity. Doesn't affect output, other than some statements
8323    appearing in another block now (internal issue 513).
8324
8325-----------------------------------------------------
8326
8327Change log for October 14, 2016 Vulkan 1.0.31 spec update:
8328
8329  * Bump API patch number and header version number to 31 for this update.
8330
8331Github Issues:
8332
8333  * Clarifying wording of slink:VkGraphicsPipelineCreateInfo parameters and
8334    adding Valid Usage statements on render pass compatibility to the
8335    <<drawing,drawing commands>> (public issue 375).
8336  * Replace 'texel size' with 'element size', and add a definition to the
8337    glossary (public issue 382).
8338  * Clarify the description of ename:VK_ERROR_NATIVE_WINDOW_IN_USE_KHR to
8339    make it accurate, but still generic (non-exhaustive). Remove two Valid
8340    Usage statements describing error situations that will return
8341    ename:VK_ERROR_NATIVE_WINDOW_IN_USE_KHR (public issue 387).
8342  * Fix refBegin tag for elink:VkDebugReportFlagBitsEXT (public issue 392).
8343  * The <<interfaces-builtin-variables,built-in variable>> code:PrimitiveId
8344    in a fragment shader needs the code:Input storage class (public issue
8345    393).
8346
8347Internal Issues:
8348
8349  * Unused ({y,z} and {height,depth} for 1D, z and depth for 2D) offsets
8350    must be 0 and unused extents must be 1. Added basic offset and extent
8351    valid usage for slink:VkImageResolve to match that of slink:VkImageCopy
8352    (internal issue 413).
8353  * Describe what flink:vkGetPhysicalDeviceImageFormatProperties returns for
8354    pname:sampleCounts when for pname:usage only includes transfer-related
8355    flags (internal issue 478).
8356  * Remove mention of
8357    slink:VkPhysicalDeviceLimits::pname:maxImageArrayLayers from the valid
8358    usage for slink:VkImageCreateInfo::pname:arrayLayers (internal issue
8359    520).
8360  * Tag usages of ``dynamically uniform'' as glossary terms and add a
8361    glossary entry pointing to the SPIR-V Specification's definition of the
8362    term (internal issue 531).
8363
8364-----------------------------------------------------
8365
8366Change log for October 7, 2016 Vulkan 1.0.30 spec update:
8367
8368  * Bump API patch number and header version number to 30 for this update.
8369
8370Github Issues:
8371
8372  * Document missing pname:sType and pname:pNext parameters for
8373    slink:VkCommandBufferInheritanceInfo (public issue 224).
8374  * As promised, we are removing the example code, from the appendix, for
8375    the VK_KHR_surface and VK_KHR_swapchain extensions. The cube demo
8376    (shipped in the official Khronos SDK) has been updated, and is the
8377    example code that we want people to look at for how to use these two
8378    extensions (public issues 279, 308, and 311).
8379  * Clarify the formats for which the slink:VkClearColorValue pname:float32
8380    member is used. Also clean up related language for flink:vkCmdBlitImage
8381    (public issue 369).
8382  * Reword the <<invariance, Invariance>> appendix chapter to better match
8383    Vulkan terminology (public issue 372).
8384
8385Internal Issues:
8386
8387  * Update slink:VkMemoryRequirements to not require a host_visible memory
8388    type exists that can be bound to sparse buffers (internal issue 494).
8389  * Modify the <<features-supported-sample-counts,Supported Sample Counts>>
8390    language to allow multisampled depth-stencil images (internal issue
8391    521).
8392
8393-----------------------------------------------------
8394
8395Change log for September 30, 2016 Vulkan 1.0.29 spec update:
8396
8397  * Bump API patch number and header version number to 29 for this update.
8398
8399Github Issues:
8400
8401  * Remove redundant constraint on
8402    slink:VkCommandBufferInheritanceInfo::pname:queryFlags (public issue
8403    224).
8404  * Fix typo and remove link in Note in the
8405    <<extended-functionality-instance-extensions-and-devices, Instance
8406    Extensions and Device Extensions>> section (public issue 359).
8407  * Fix erroneous validation statement for the pname:layout member of
8408    slink:VkComputePipelineCreateInfo (public issue 362).
8409
8410Internal Issues:
8411
8412  * Restore long figure captions using asciidoc sidebar blocks, due to
8413    restrictions of asciidoc syntax (internal issue 101).
8414  * Replace most latexmath equations with comparable markup in straight
8415    asciidoc, which significantly improves time required to fully load and
8416    process the HTML forms of the Specification. There are known minor font
8417    and alignment inconsistencies with MathJax and PDF rendering of
8418    latexmath equations. Please do not file github issues about these. We
8419    are aware of the inconsistencies and will make refinements over time,
8420    while the performance improvements are compelling in at least some major
8421    browsers (internal issue 313).
8422  * Move handcoded validity statements from +vk.xml+ into the Specification
8423    body, easing work in the single-branch model. Specify the distinction
8424    between these explicit statements, and the implicit validity statements
8425    inferred from vk.xml. Validity statements now appear in two blocks for
8426    each command and structure - handcoded "Valid Usage" and the implicit
8427    "Valid Usage (Implicit)" (internal issue 392).
8428  * Add the +returnedonly="false"+ attribute to WSI output structures,
8429    removing incorrectly generated implicit validity statements for
8430    slink:VkDisplayPropertiesKHR, slink:VkDisplayPlanePropertiesKHR,
8431    slink:VkDisplayModePropertiesKHR, slink:VkDisplayPlaneCapabilitiesKHR,
8432    slink:VkSurfaceCapabilitiesKHR, and slink:VkSurfaceFormatKHR structures
8433    (internal issue 486).
8434  * Update slink:VkImageLayout to require the
8435    ename:VK_IMAGE_USAGE_SAMPLED_BIT be set for sampled depth/stencil images
8436    (internal issue 487).
8437  * Use an explicit format specifier string for the date command invocation
8438    in the +Makefile+ instead of the shorthand -R option, which doesn't work
8439    on BSD and MaxOS X date commands (internal issue 500).
8440
8441Other Issues:
8442
8443  * Use the terms ``allocation scope'' and ``extension scope'' instead of
8444    just ``scope'', and add them to the glossary.
8445
8446-----------------------------------------------------
8447
8448Change log for September 23, 2016 Vulkan 1.0.28 spec update:
8449
8450  * Bump API patch number and header version number to 28 for this update.
8451
8452Github Issues:
8453
8454  * Minor spelling and typography cleanup, add definitions of
8455    ename:VK_FALSE and ename:VK_TRUE as just what their names say
8456    (public issues 220, 318, 325, 365; internal issues 451, 496)
8457  * Clarify that the pname:maxDescriptorSet limits in the
8458    <<features-limits-required,Required Limits>> table are n *
8459    maxPerStage limit (where n=number of supported stages) (public issue
8460    254).
8461  * Minor cleanup to <<boilerplate-platform-macros,Platform-Specific
8462    Macro Definitions>> appendix (public issue 314).
8463  * Add valid usage statement to slink:VkPipelineLayoutCreateInfo
8464    disallowing multiple push constant ranges for the same shader stage
8465    (public issue 340).
8466  * Clarify the elink:VkSharingMode description of what executing the
8467    "same" barriers means in case of ownership transfer (public issue
8468    347).
8469  * Rename copyright.txt and add COPYING.md to try and reduce confusion
8470    about applicable copyrights (public issue 350).
8471  * Extend the table in the <<boilerplate-wsi-header, Window System-Specific
8472    Header Control>> section to describe the external headers included when
8473    each etext:VK_USE_PLATFORM_* macro is defined (public issue 376).
8474
8475Internal Issues:
8476
8477  * Add "Revision History" to the PDF outputs following the table of
8478    contents, to match HTML outputs (internal issue 43).
8479  * Clarified that flink:vkMapMemory may fail due to virtual address
8480    space limitations (internal issue 346).
8481  * Add +refBody+ comment markup for ref page autoextraction when required
8482    (internal issue 400).
8483  * Document proper use of "mipmap" and "mip" in the style guide API
8484    naming rules, matching the spelling rules (internal issue 471).
8485  * Tweak the <<extensions,Layers and Extensions>> appendix to note that
8486    the Specification may be built with arbitrary combinations of
8487    extensions (internal issue 483).
8488  * Remove incorrect statement allowing
8489    slink:VkClearAttachment::pname:colorAttachment to be >=
8490    slink:VkSubpassDescription::pname:colorAttachmentCount (internal
8491    issue 488).
8492  * The <<features-limits-viewportboundsrange,viewportBoundsRange>> is
8493    expressed in terms of the pname:maxViewportDimensions but this is
8494    actually two values. Clarify that it is based on the larger of the two
8495    (if they differ) (internal issue 499).
8496
8497Other Issues:
8498
8499  * Reflowed text of the entire spec using the 'reflow' Makefile target, to
8500    (hopefully) reduce future internal git churn as edits are made and
8501    extensions added in return for one-time pain. This has no perceptible
8502    effect on the spec outputs, but considerable changes on the asciidoc
8503    source (internal issue 367).
8504
8505-----------------------------------------------------
8506
8507Change log for September 16, 2016 Vulkan 1.0.27 spec update:
8508
8509  * Bump API patch number and header version number to 27 for this update.
8510
8511Github Issues:
8512
8513  * Weaken flink:vkGetPipelineCacheData invariance conditions; previous
8514    conditions were stronger than agreed and can't be guaranteed (public
8515    issue 280).
8516  * Add link to "Vulkan Loader Specification and Architecture Overview"
8517    document to Normative References section (public issue 359).
8518
8519Internal Issues:
8520
8521  * Be more clear in the <<interfaces-resources-layout-std140, uniform
8522    buffer layout>> section that block offsets can be out of order
8523    (internal issue 396).
8524  * Document that extension authors should add support for their extensions
8525    to the validation layers (internal issue 398).
8526  * Clarify that the valid range of depth clear values should be limited
8527    to the 0..1 range and that copies to depth aspect must also be in this
8528    range (internal issue 412).
8529  * Specify ``a'' vs. ``an'' use in the style guide (internal issue 432).
8530  * Increase the maximum pname:nonCoherentAtomSize value in the
8531    <<features-limits-required,Required Limits>> section from 128 to 256
8532    (internal issue 435).
8533  * Fix vk_platform.h for compiler errors on some Android platforms
8534    (internal issue 441).
8535  * Clarify that slink:VkPhysicalDeviceFeatures::pname:pEnabledFeatures ==
8536    `NULL` disables all features, including the "required" feature
8537    pname:robustBufferAccess (internal issue 479).
8538
8539Other Issues:
8540
8541  * Expand style guide and make it more self-consistent.
8542  * Use ISO 8601 date format everywhere.
8543  * Emphasise the correct way of using
8544    slink:VkSurfaceCapabilitiesKHR::pname:maxImageCount.
8545  * Added +VK_EXT_validation_flags+ extension for validation flag mechanism.
8546  * Fix an <<credits,author credit>> to include their current employer.
8547
8548-----------------------------------------------------
8549
8550Change log for September 6, 2016 Vulkan 1.0.26 spec update:
8551
8552  * Bump API patch number and header version number to 26 for this update.
8553
8554Github Issues:
8555
8556  * Bring sample code in the `VK_KHR_surface` and `VK_KHR_swapchain`
8557    extension summary appendices up to date, and note they will be replaced
8558    with pointers to the LunarG SDK examples in the future (public issue
8559    279).
8560  * Add a new <<fundamentals-commandsyntax-results-lifetime,Lifetime of
8561    Retrieved Results>> section specifying that ftext:vkGet* and
8562    ftext:VkEnumerate* results are invariant unless otherwise specified, and
8563    specify behavior for individual commands which are not invariant (public
8564    issue 280).
8565  * Remove conflicting definition of
8566    slink:VkDisplayPlaneCapabilitiesKHR::pname:maxSrcPosition and clean up
8567    language of the remaining definition (public issue 351).
8568  * Fix many minor spelling errors and add rules to the style guide to
8569    prevent recurrences (public issue 352).
8570
8571Internal Issues:
8572
8573  * Remove redundant descriptions of the etext:VK_USE_PLATFORM_* macros from
8574    the <<wsi,Window System Integration>> chapter in favor of the
8575    description in the <<boilerplate-wsi-header,Window System-Specific
8576    Header Control>> appendix (internal issue 6).
8577  * Replace misleading 'can: be destroyed when not X' with more correct
8578    'must: not be destroyed while X' in the
8579    <<fundamentals-objectmodel-lifetime,Object Lifetime>> section. Disallow
8580    destroying a pipeline layout while a command buffer using it is
8581    recording (internal issue 241).
8582  * Clarify that ename:VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT is valid for
8583    all images used as attachments in elink:VkImageUsageFlagBits and the
8584    slink:VkImageLayout validity language (internal issue 320).
8585  * Note that <<extended-functionality-layers,Layers>> may wrap object
8586    handles, but that this is a generally discouraged. A link to additional
8587    information in the documentation for layer authors is provided (issue
8588    398)
8589  * Replace the mustnot: and shouldnot: macros with equivalent must: not and
8590    should: not to get rid of non-English words while still highlighting
8591    normative language (internal issue 407).
8592  * Disallow creating multisampled images with
8593    ename:VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT in the slink:VkImageLayout
8594    validity language and the <<features-supported-sample-counts,Supported
8595    Sample Counts>> section (internal issue 445).
8596  * Fix typo so that flink:vkCmdDrawIndexedIndirect is defined in terms of
8597    flink:vkCmdDrawIndexed rather than flink:vkCmdDrawIndirect (internal
8598    issue 446).
8599  * Reorganize the per-extension information sections to all be in the
8600    <<extensions,Layers & Extensions>> appendix. Also fix a typo in
8601    +VK_IMG_filter_cubic+ which incorrectly identified it as a +KHR+
8602    extension (internal issue 461).
8603
8604Other Issues:
8605
8606  * Use asciidoc markup instead of latexmath to simplify diagrams in the
8607    <<features-formats-non-packed,byte mapping tables>> for color formats.
8608  * Fix a markup problem with the wildcarded enumerant names in a NOTE in
8609    the <<textures-texel-replacement,Texel Replacement>> section.
8610  * Fix missing attributes in the XML interface for
8611    elink:VkExternalMemoryHandleTypeFlagBitsNV and
8612    elink:VkExternalMemoryFeatureFlagBitsNV (KhronosGroup/Vulkan-Hpp issue
8613    25)
8614  * Cleanup reference page builds so only core pages are built for releases.
8615
8616-----------------------------------------------------
8617
8618Change log for August 26, 2016 Vulkan 1.0.25 spec update:
8619
8620  * Bump API patch number and header version number to 25 for this update.
8621  * Structurally change the specification so that multiple extensions are
8622    included in the +1.0+ git branch, and specifications will include or not
8623    include those extensions at build time based on options passed to the
8624    Makefile. See +doc/specs/vulkan/README.html+ and the ``Layers and
8625    Extensions'' section of the ``Vulkan Documentation and Extensions''
8626    document for more information on this change.
8627  * Register and publish new extensions in the single-branch form:
8628  ** +VK_NV_external_memory_capabilities+
8629  ** +VK_NV_external_memory+
8630  ** +VK_NV_external_memory_win32+
8631  ** +VK_NV_win32_keyed_mutex+
8632
8633Github Issues:
8634
8635  * Clarify description of GetInstanceProcAddr and GetDeviceProcAddr (public
8636    issue 212).
8637  * Add SPIR-V <<textures-operation-validation, instruction validation>> for
8638    single-sampled images (public issue 316).
8639  * Fix spelling of ``tesselation'' in a few places and note it as an
8640    exception to the American spelling rules convention (public issue
8641    327).
8642  * Fix Makefile to create output directory for ``styleguide''
8643    target (public issue 329).
8644  * Fix numerous minor issues with incorrectly tags on enumerant names and
8645    table titles (public issue 330).
8646  * Generate specversion.txt date in UTC time and RFC 2822 format
8647    (public issue 335).
8648  * Convert link to the SPIR-V Specification for
8649    flink:VkShaderModuleCreateInfo into an internal link to the normative
8650    reference (public issue 336).
8651  * Add ename:VK_ERROR_OUT_OF_MEMORY error code to
8652    flink:vkCreateDebugReportCallbackEXT (public issue 337).
8653
8654Internal Issues:
8655
8656  * Update style guide regarding use of code:NULL and dname:VK_NULL_HANDLE
8657    (internal issue 393).
8658  * Change the definition of latexmath:[$q$] in the
8659    <<textures-image-level-selection,texture image level selection>> section
8660    to be the index of the maximum defined level for the view, not the
8661    number of levels in the view (internal issue 406).
8662  * Allow developers to override dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE
8663    with their own binary-compatible definition (internal issue 439).
8664  * Fix +vk_platform.h+ conditional logic causing compile failure with some
8665    Android compilers (internal issue 441).
8666  * Implement the single-branch model as described above (internal issue
8667    461).
8668
8669-----------------------------------------------------
8670
8671Change log for August 12, 2016 Vulkan 1.0.24 spec update:
8672
8673  * Bump API patch number and header version number to 24 for this update.
8674
8675Github Issues:
8676
8677  * Fix type mismatch in swapchain image equivalency table (public issue
8678    289).
8679  * Fix a copy-and-paste error in the description of
8680    flink:vkGetSwapchainImagesKHR::pname:pSwapchainImages, that said it
8681    was an array of ``sname:VkSwapchainImageKHR structures'' instead of
8682    an array of ``sname:VkImage handles'' (public issue 292).
8683  * Specify that ename:VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT is only valid
8684    for ename:VK_IMAGE_TYPE_2D images (public issue 293).
8685  * Add a valid usage statement to flink:vkCmdExecuteCommands saying
8686    that when called outside a render pass instance, the secondary
8687    command buffers must not have been created with the
8688    ename:VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT (public issue
8689    297).
8690  * Fix description of +VK_NO_STDINT_H+ in the
8691    <<boilerplate-platform-macros,platform macros>> section (public
8692    issue 314).
8693
8694Internal Issues:
8695
8696  * Normalize the language for the remaining built-in variables in the
8697    <<interfaces-builtin-variables,Built-In Variables>> section. Fix
8698    code:FrontFacing and code:HelperInvocation, as they should be of
8699    code:boolean type rather than code:integer (internal issue 323).
8700  * Clarify that when ename:VK_WHOLE_SIZE is used for a buffer
8701    descriptor range, the effective range must still be within the max
8702    buffer range (internal issue 426).
8703  * Clarify that command buffers and descriptor sets are allocated
8704    rather than created. Also clarify when the recording state of a
8705    command buffer is relevant (internal issue 434).
8706
8707-----------------------------------------------------
8708
8709Change log for August 5, 2016 Vulkan 1.0.23 spec update:
8710
8711  * Bump API patch number and header version number to 23 for this update.
8712
8713Github Issues:
8714
8715  * Add explicit valid value attributes to pname:sType members in vk.xml
8716    (public issue 34).
8717  * Clarify usage of flink:vkGetInstanceProcAddr and
8718    flink:vkGetDeviceProcAddr (public issue 225).
8719  * Fix a copy-and-paste error in the description of
8720    pname:pSwapchainImageCount saying that it was the count of ``format
8721    pairs'' instead of ``swapchain images'' (public issue 292).
8722  * flink:vkCmdExecuteCommandBuffers requires all command buffers to be
8723    allocated from command pools created for the same queue family (public
8724    issue 296).
8725  * Remove bogus +optional+ attribute for
8726    flink:vkEnumerateDeviceLayerProperties::pname:physicalDevice from vk.xml
8727    (public issue 301).
8728  * Clean up the <<resources-image-views-compatibility,image and image view
8729    compatibility table>> reference and contents. Use full enumerant names.
8730    Refer to pname:layerCount in the ``view parameters'' column instead of
8731    pname:arrayLayers. Require N >= 1 for the cube array subview row, not
8732    just arrayLayers >= 6 N (public issue 304).
8733  * Modify description of <<resources-memory-aliasing,memory aliasing>> to
8734    be consistent with the description of
8735    <<resources-bufferimagegranularity,buffer image granularity>> (public
8736    issue 307).
8737
8738Internal Issues:
8739
8740  * Describe remaining +vk_platform.h+ macros in the <<boilerplate,API
8741    Boilerplate>> appendix (internal issue 6).
8742  * Clarify
8743    <<features-features-robustBufferAccess,pname:robustBufferAccess>>
8744    feature behavior; what memory can be accessed, how bounds checking is
8745    performed, and allowing for vectorization (internal issue 332).
8746  * Document markup for automatic extraction of reference pages from the
8747    spec sources in the style guide (internal issue 395).
8748  * Allow flink:vkCreateDisplayModeKHR to return
8749    ename:VK_ERROR_INITIALIZAION_FAILED_KHR if the user requests mode
8750    parameters that the specified display does not support (internal issue
8751    411).
8752  * Remove atomic counters (atomic_uint style) from KHR_vulkan_glsl, and
8753    more clearly remove the subroutine keyword alongside it (internal issue
8754    421).
8755  * Clarify behavior of flink:vkCmdBindDescriptorSets for descriptor sets
8756    not contained in the layout (internal issue 427).
8757
8758Other Commits:
8759
8760  * Change the order in which members of sname:VkAttachmentDescription and
8761    sname:VkPipelineInputAssemblyStateCreateInfo are described to match
8762    their order in the structures.
8763
8764-----------------------------------------------------
8765
8766Change log for July 22, 2016 Vulkan 1.0.22 spec update:
8767
8768  * Bump API patch number and header version number to 22 for this update.
8769
8770Github Issues:
8771
8772  * Translate the subpass self-dependency language into concrete
8773    validity statements, and added a validity statement about the
8774    restrictions on layout parameters (public issue 267).
8775  * Add validity requirement that
8776    slink:VkAttachmentDescription::pname:finalLayout and
8777    slink:VkAttachmentReference::pname:layout must not be
8778    ename:VK_IMAGE_LAYOUT_UNDEFINED or
8779    ename:VK_IMAGE_LAYOUT_PREINITIALIZED (public issue 268).
8780  * Clarify that slink:VkSubpassDescription::pname:pResolveAttachments
8781    layouts are used. Make language consistent with other attachment
8782    arrays (public issue 270).
8783  * Changed 64-bit definition for
8784    dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE to work for x32 platform in
8785    +vk.xml+ and the resulting +vulkan.h+ (public issue 282).
8786  * Add missing error return code for
8787    flink:vkEnumerateInstanceExtensionProperties and
8788    flink:vkEnumerateDeviceExtensionProperties (public issue 285)
8789  * Fix several cases of stext::VkStructName.memberName markup to
8790    stext::VkStructName::pname:memberName, to match other usage in the
8791    spec, and describe this markup in the style guide (public issue
8792    286).
8793  * Modified validity language generation script to avoid redundant
8794    common ancestor language if covered by generic parent language, and
8795    used `Both' instead of `Each' when appropriate (public issue 288).
8796
8797Internal Issues:
8798
8799  * Add language about behavior of flink:vkAllocateDescriptorSets when
8800    allocation fails due to fragmentation, a new error
8801    ename:VK_ERROR_FRAGMENTED_POOL, and a Note explaining the situation
8802    (internal issue 309).
8803  * For the features of code:PointSize, code:ClipDistance, and
8804    code:CullDistance, the SPIR-V capability is required to be declared
8805    on use (read or write) rather than on decoration (internal issue
8806    359).
8807  * Have desktop versions of GLSL respect precision qualification
8808    (code:mediump and code:lowp) when compiling for Vulkan. These will
8809    get translated to SPIR-V's code:RelaxedPrecision decoration as they
8810    do with OpenGL ES versions of GLSL (ESSL). The default precision of
8811    all types is code:highp when using a desktop version (internal issue
8812    360).
8813  * Add validity statement for slink:VkImageCreateInfo specifying that
8814    multisampled images must be two-dimensional, optimally tiled, and
8815    with a single mipmap level (internal issue 369).
8816  * Add validity statements to slink:VkImageViewCreateInfo disallowing
8817    creation of images or image views with no supported features. Made
8818    some slink:VkImageViewCreateInfo validity statements more precise
8819    and consistent. Added a Note to the <<features,features>> chapter
8820    about formats with no features (internal issue 371).
8821  * Remove +manpages+ from default build targets. Nroff outputs
8822    containing imbedded latexmath will not render properly. Fixing this
8823    is a lot of work for limited use cases (internal issue 401).
8824
8825Other Commits:
8826
8827  * Fix flink:vkRenderPassBeginInfo::pname:clearValueCount validity
8828    statement to be based on attachment indices rather than the number
8829    of cleared attachments
8830    (Vulkan-LoaderAndValidationLayers/issues/601).
8831  * Convert registry documentation from LaTeX to asciidoc source and
8832    rename from +src/spec/readme.tex+ to +src/spec/registry.txt+.
8833  * Fix lack of Oxford commas in validity language.
8834  * Lots of cleanup of generator scripts and Makefiles to move extension
8835    list for generator into the script arguments instead of the body of
8836    genvk.py, and express better dependencies between XML, scripts, and
8837    generated files.
8838
8839-----------------------------------------------------
8840
8841Change log for July 15, 2016 Vulkan 1.0.21 spec update:
8842
8843  * Bump API patch number and header version number to 21 for this update.
8844
8845Github Issues:
8846
8847  * Clarify how <<features-supported-sample-counts,sample count queries>>
8848    relate to the limits in slink:VkPhysicalDeviceLimits. (public issue
8849    185).
8850  * Clarify in the <<interfaces-iointerfaces,Shader Input and Output
8851    Interfaces>> section that shader output variables have undefined values
8852    until the shader writes to them (public issue 240).
8853  * Specify the implicit value of image parameters that cannot be set in
8854    slink:VkSwapchainCreateInfo::pname:flags, pname:imageType,
8855    pname:mipLevels, pname:samples, pname:tiling, and pname:initialLayout
8856    (public issue 243).
8857  * Make use of code:NULL and code:VK_NULL_HANDLE consistent in the
8858    VK_KHR_swapchain extension (public issue 276).
8859
8860Internal Issues:
8861
8862  * Clarify that presenting an image to a display surface swapchain applies
8863    the display surface's mode, and that destroying a display surface
8864    swapchain may reset the display's mode, in the VK_KHR_display_swapchain
8865    extension (internal issue 247).
8866  * Better describe what a slink:VkSurfaceKHR is, and that creating one does
8867    not set a mode, in the VK_KHR_display extension. This is a round-about
8868    way of pointing out that mode setting is not covered by the extension,
8869    but rather is performed as a side effect of presentation (internal issue
8870    247).
8871  * Add more valid usage statements to flink:vkQueuePresentKHR command when
8872    the VK_KHR_display_swapchain extension is present (internal issue
8873    247).
8874  * Add more includes to the VK_KHR_swapchain extension to better document
8875    interactions with VK_KHR_display_swapchain (internal issue 247).
8876  * Clarify restrictions on location aliasing in the
8877    <<fxvertex,Fixed-Function Vertex Processing>> section (internal issue
8878    370).
8879  * Add mathematical description of blitting to flink:vkCmdBlitImage, and
8880    link it to the <<textures,Image Operations>> chapter. Use mathematical
8881    notation for ranges of texel coordinates in the <<textures,Image
8882    Operations>> chapter. Fixed miscellaneous validity statements for
8883    flink:vkCmdBlit and slink:VkImageBlit (internal issue 382).
8884
8885Other Commits:
8886
8887  * Added a valid usage rule to flink:VkGraphicsPipelineCreateInfo that the
8888    ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST topology must only be used when
8889    tessellation shaders are used.
8890  * Expand the style guide into a formal "Procedures and Conventions"
8891    document. Add a API Naming Conventions section, move most of the API
8892    Specification Appendix C (Layers and Extensions) content into the new
8893    document, and define the resulting procedures as mandatory (where
8894    relevant). This more clearly separates use vs. specification of Vulkan
8895    APIs.
8896  * Update vk_platform.h to handle 32-bit ARMv8 binaries.
8897  * Various minor cleanups to the Makefile and build process.
8898
8899-----------------------------------------------------
8900
8901Change log for July 8, 2016 Vulkan 1.0.20 spec update:
8902
8903  * Bump API patch number and header version number to 20 for this
8904    update.
8905
8906Github Issues:
8907
8908  * Replaced existing reference pages by text automatically extracted from
8909    the specification source, or generated from vk.xml in some cases. This
8910    is not a complete solution for the reference pages, but puts them in a
8911    much better state. The ref pages (only) are now placed under a CC BY
8912    open source license, which is more current than the obsolete license
8913    previously used. Various minor tweaks to the Specification sources were
8914    made to enable this, and a new ``API Boilerplate'' chapter added to
8915    include definitions of all the entities in the API and +vulkan.h+ which
8916    were not already described in some form in the document.
8917
8918    Further improvements to the pages should not edit them directly, but
8919    instead concentrate on the specification source from which the ref pages
8920    are being extracted (public issues 44, 55, 160; internal issue 389).
8921
8922-----------------------------------------------------
8923
8924Change log for July 1, 2016 Vulkan 1.0.19 spec update:
8925
8926  * Bump API patch number and header version number to 19 for this
8927    update.
8928
8929Github Issues:
8930
8931  * Clarified how flink:vkGetImageSubresourceLayout interacts with image
8932    layouts (public issue 247).
8933  * Remove ename:VK_IMAGE_LAYOUT_PREINITIALIZED from valid usage rule for
8934    slink:VkImageMemoryBarrier::pname:oldLayout. It is only valid if it is
8935    the current layout (public issue 248).
8936  * Modify valid usage for flink:vkBindBufferMemory so implementations are
8937    free to require a different backing memory size than the buffer size
8938    (public issue 251).
8939  * Clarify that filtering rules for flink:vkCmdBlitImage always apply, and
8940    are usually no-ops if the formats are the same (public issue 253).
8941  * Remove 'non-sparse' from description of
8942    flink:vkGetBufferMemoryRequirements and
8943    flink:vkGetImageMemoryRequirements (public issue 257).
8944  * Remove ename:VK_ERROR_LAYER_NOT_PRESENT error code from
8945    flink:vkCreateDevice (public issue 259).
8946  * Change "must: not" to "should: not" in constraint on when
8947    flink:vkAcquireNextImageKHR is called in the VK_KHR_swapchain branch
8948    (public issue 262).
8949  * Change type of flink:vkCmdUpdateBuffer::pname:pData from
8950    basetype:uint32_t* to basetype:void* (public issue 263).
8951  * Change should: to must: in description of where additional segments are
8952    placed in the <<[tessellation-tessellator-spacing,Tessellator Spacing>>
8953    section (public issue 264).
8954
8955Internal Issues:
8956
8957  * Normalize the language of all the compute shader built-ins in the
8958    <<interfaces-builtin-variables,Built-in Variables>> section (internal
8959    issue 323).
8960  * Remove definition of presentation engine internal queue lengths
8961    associated with ename:VK_PRESENT_MODE_FIFO_KHR and
8962    ename:VK_PRESENT_MODE_FIFO_RELAXED_KHR in the <<Window System
8963    Integration,wsi>> chapter (internal issue 374).
8964  * The language of a Note was too broad, and implied that loaders for a
8965    given OS would statically export functions for WSI extensions that
8966    were not relevant to (or supported on) the OS. Also, removed
8967    "Khronos-provided" since the Android loader is not (internal issue 380)
8968
8969Other Commits:
8970
8971  * Add ename:VK_INCOMPLETE to list of return values for
8972    flink:vkGetPipelineCacheData. Spec says this value is returnable, but it
8973    was not listed in the error codes.
8974  * Fix "correponds" typo in member definitions for
8975    slink:VkSubpassDescription.
8976
8977-----------------------------------------------------
8978
8979Change log for June 24, 2016 Vulkan 1.0.18 spec update:
8980
8981  * Bump API patch number and header version number to 18 for this
8982    update.
8983
8984Github Issues:
8985
8986  * Added "queue operation" terminology, and modified spec to actually
8987    use this terminology (public issue 155). The act of submitting a
8988    piece of work to a queue now generates "operations" for the queue to
8989    execute, including operations to wait on/signal semaphores and
8990    fences. Synchronization waits on these operations, making execution
8991    dependency chains more obvious for semaphores and fences (though
8992    additional work is still needed here). These changes include:
8993  ** Overview of "queue submission" commands in chapter
8994     <<devsandqueues-submission>>.
8995  ** Updated descriptions for fence and semaphore waits and signals in
8996     the synchronization chapter <<synchronization-semaphores-waiting>>,
8997     <<synchronization-semaphores-signaling>> and
8998     <<synchronization-fences-waiting>>.
8999  ** Clarifications to semaphore and fence operation within queue
9000     submission functions.
9001  ** New glossary terms.
9002  ** Moved device idle and queue wait idle to synchronization chapter in
9003     order to describe them in terms of other synchronization
9004     primitives.
9005  ** Clarifications to semaphore and fence operation allowed removal of
9006     the "implicit ordering guarantees" section, as this information is
9007     now wholly covered where these primitives are described.
9008  *** The "host writes" section of this is still there for now - in its
9009      own section. This could probably be merged into other sections
9010      later.
9011  *** Modified fundamentals chapter on queue ordering to make sense in
9012      context of the new changes, and avoid duplication.
9013      <<fundamentals-queueoperation>>
9014  * Added "aspect" and "component" definitions to the glossary, and made
9015    sure these terms are referenced correctly (public issue 163).
9016  * Update valid usage for ftext:vkGet*ProcAddr to only include
9017    conditions that must be met to get a valid result. In particular,
9018    it is okay to call flink:vkGetDeviceProcAddr with any string and will
9019    get a code:NULL if that string is not a core Vulkan function or an
9020    enabled extension function (addresses but does not fully close
9021    public issue 214).
9022  * Change the WSI extension dependencies to refer to version 1.0 of the
9023    Vulkan API, instead of the pre-1.0-release internal revisions
9024    numbers (public issue 238).
9025  * Specified that <<interfaces-fragmentoutput,undeclared fragment
9026    shader outputs>> result in undefined values input to the blending
9027    unit or color attachment (public issue 240).
9028  * Fix latexmath:[$\leq$] operators turning into Unicode left arrow symbols
9029    (public issue 245).
9030
9031Internal Issues:
9032
9033  * Better documented that the registry XML "optional" tag for values
9034    only applies when that value is the size of an array (internal issue
9035    335).
9036  * Add a stronger definition for the valid usages of
9037    VkSpecializationMapEntry.size in the
9038    <<pipelines-specialization-constants,Specialization Constants>>
9039    section (internal issue 345).
9040  * Change code:OpName to code:OpDecorate (along with appropriate
9041    syntax) for vertex shader built-ins (internal issue 368).
9042  * Add missing ref pages (those which are not currently stubs) to
9043    apispec.txt for the single-page version of the ref pages (internal
9044    issue 378).
9045
9046Other Commits:
9047
9048  * Fix example in the <<descriptorsets,Descriptor Sets>> section to use
9049    M, N, and I, describing set, binding, and index, consistently
9050    throughout the example code.
9051
9052-----------------------------------------------------
9053
9054Change log for June 17, 2016 Vulkan 1.0.17 spec update:
9055
9056  * Bump API patch number and header version number to 17 for this
9057    update.
9058
9059Github Issues:
9060
9061  * Update description of vertex shader reuse in
9062    <<shaders-vertex-execution>> (public issue 106).
9063  * Simplify validity language around pname:ppEnabledExtensionNames and
9064    pname:ppEnabledLayerNames (in the <<initialization-instances>> and
9065    <<devsandqueues-device-creation>> sections) (public issue 214).
9066  * Add missing validity rule to flink:vkCmdBeginRenderPass requiring
9067    compatibility between slink:VkAttachmentDescription pname:initalLayout
9068    members and the corresponding attached framebuffer images (public issue
9069    233).
9070  * Fix Unicode arrows appearing in output instead of relational operators
9071    (public issue 239).
9072  * Correctly describe the required number of elements for
9073    code:TessLevelInner and code:TessLevelOuter arrays in the
9074    <<interfaces-builtin-variables,Built-In Variables>> section as two and
9075    four, respectively, instead of the other way around, and refer to this
9076    section from the <<tessellation,Tessellation>> chapter (public issue
9077    246).
9078
9079Internal Issues:
9080
9081  * Document deprecation of ename:VK_COLORSPACE_SRGB_NONLINEAR_KHR in the
9082    VK_KHR_surface extension, and of
9083    ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT in the
9084    VK_EXT_debug_report extension (internal issue 328).
9085  * Added language to define what a valid usage statement is and should be,
9086    with a note about some apparent weirdnesses this might entail (internal
9087    issue 357).
9088
9089Other Commits:
9090
9091  * Added missing ename:VK_ERROR_DEVICE_LOST error to
9092    flink:vkQueueBindSparse.
9093
9094-----------------------------------------------------
9095
9096Change log for June 10, 2016 Vulkan 1.0.16 spec update:
9097
9098  * Bump API patch number and header version number to 16 for this
9099    update.
9100
9101Github Issues:
9102
9103  * Clarify that integer border values are meant to be 0/1, and that
9104    integer texture lookups are sign-extended in the
9105    <<textures-format-conversion,Format Conversion>> and
9106    <<textures-texel-replacement,Texel Replacement>> sections (public
9107    issue 52).
9108  * Add logic to generate spec boilerplate without using the 'git'
9109    command-line client, needed when building from a tarball or another
9110    source of the Vulkan tree rather than a cloned git repo. Remove
9111    boilerplate as part of 'clean' target (public issue 195).
9112  * Document that color writes and clears to unused attachments have no
9113    effect for slink:VkClearAttachment and
9114    elink:VkColorComponentFlagBits (public issue 198).
9115  * Fixed flink:vkCmdExecuteCommands validity statement for
9116    sname:VkCommandBufferInheritanceInfo::pname:framebuffer. If used, it
9117    must match the framebuffer in the current renderpass instance
9118    (public issue 226).
9119  * Added valid usage language to require for all functions that set
9120    dynamic state that the currently bound graphics pipeline has the
9121    corresponding dynamic state enabled (public issue 235).
9122
9123Internal Issues:
9124
9125  * Clarify for flink:vkEnumerateInstanceExtensionProperties, in the
9126    <<extended-functionality-instance-extensions-and-devices, Instance
9127    Extensions and Device Extensions>> section, and in the
9128    <<glossary,Glossary>> section when functionality should be exposed
9129    as an instance extension, as a device extension, or as both
9130    (internal issue 109).
9131  * Place WorkgroupSize in alphabetical order in the
9132    <<interfaces-builtin-variables,Built-in Variables>> section
9133    (internal issue 323).
9134  * Corrects valid usage in vkEndRenderPass to only affect primary
9135    render passes, as secondaries may be entirely within a render pass,
9136    and should be able to be ended (previous language disallowed that)
9137    (internal issue 338).
9138  * Fix relational operator from <= to >= in the
9139    <<features-extentperimagetype,Allowed Extent Values>> section
9140    (internal issue 343).
9141  * Disallow recursion under SPIR-V entry points in the
9142    <<spirvenv-module-validation,Validation Rules within a Module>>
9143    section (internal SPIR-V issue 37).
9144
9145Other Commits:
9146
9147  * Use standard Python ElementTree package instead of lxml.etree in
9148    header / validation layer / include autogeneration from XML,
9149    reducing platform dependencies.
9150
9151-----------------------------------------------------
9152
9153Change log for May 27, 2016 Vulkan 1.0.15 spec update:
9154
9155  * Bump API patch number and header version number to 15 for this
9156    update.
9157
9158Github Issues:
9159
9160  * Fixed the <<glossary,Glossary>> entry for Fragment Input Attachment
9161    Interface to specify code:UniformConstant storage class (public issue
9162    156).
9163  * Disallow lazily allocated memory for buffers in the description of
9164    slink:VkMemoryRequirements::pname:memoryTypeBits (public issue 196).
9165  * Add numbered figure captions (public issue 219).
9166  * Fix output variable names in the <<fundamentals-fpfixedconv,Conversion
9167    from Floating-Point to Normalized Fixed-Point>> section and related
9168    minor normative language and markup cleanup (public issue 220).
9169
9170Internal Issues:
9171
9172  * Fix reference to nonexistent etext:VK_IMAGE_LAYOUT_TRANSFER_{SRC,DST}BIT
9173    to the actual etext:VK_IMAGE_LAYOUT{SRC,DST}_OPTIMAL (internal issue
9174    296).
9175  * Update the <<sparsememory-sparse-memory-aliasing,Sparse Resource
9176    Implementation Guidelines>> to refer to the correct feature names
9177    (internal issue 305).
9178
9179-----------------------------------------------------
9180
9181Change log for May 20, 2016 Vulkan 1.0.14 spec update:
9182
9183  * Bump API patch number and header version number to 14 for this
9184    update.
9185
9186Github Issues:
9187
9188  * Fix validity language for sname:VkCommandBufferAllocateInfo to
9189    impose range limits on pname:commandBufferCount (public issue 178).
9190  * Fix validity language for flink:vkCmdExecuteCommands to refer to the
9191    correct structure names (public issue 179).
9192  * Fix two copy-and-paste errors in the WSI queries, where the wrong
9193    term was used for what was being returned (public issue 206).
9194  * Add a note in the documentation of
9195    flink:vkGetPhysicalDeviceSurfaceFormatsKHR, about what it means if
9196    ename:VK_FORMAT_UNDEFINED is returned (public issue 207).
9197
9198Internal Issues:
9199
9200  * Clarify the usage and correct the name for the bitmask referenced in
9201    <<queries-pipestats,Pipeline Statistics Queries>> (internal issue
9202    334).
9203
9204Other Commits:
9205
9206  * Fix the names of decorations listed in the
9207    <<interfaces-builtin-variables,Built-in Variables>> section such
9208    that they match the SPIR-V specification.
9209
9210-----------------------------------------------------
9211
9212Change log for May 13, 2016 Vulkan 1.0.13 spec update:
9213
9214  * Bump API patch number and header version number to 13 for this
9215    update.
9216
9217Github Issues:
9218
9219  * Improve the description of ename:VK_PRESENT_MODE_FIFO_RELAXED_KHR in the
9220    VK_KHR_surface extension (public issue 174).
9221  * Clarify use of etext:*_SIMULTANEOUS_USE_BIT for secondary command
9222    buffers (public issue 182).
9223  * Fix typos in VK_KHR_wayland_surface extension where code:wl_device was
9224    used instead of code:wl_display (public issue 193).
9225  * Replaced {apiname} with ``Vulkan'' in XML validity statements (public
9226    issue 199).
9227  * Fix dead links for WSI handle types (public issue 200).
9228  * Use "signaled" instead of "signalled" spelling everywhere (public issue
9229    201).
9230  * Move readme.pdf target directory for XML schema documentation into the
9231    target generation directory, instead of leaving it checked into the spec
9232    source tree (public issue 203).
9233  * Fix duplicate 'which which' typo in description of
9234    elink:VkCommandPoolResetFlagBits (public issue 204).
9235  * Move the <<Programmable Primitive Shading>> section up one level, out of
9236    the <<drawing-primitive-topologies,Primitive Topologies>> section
9237    (public issue 209).
9238
9239Internal Issues:
9240
9241  * Clarify in the <<pipelines-cache,Pipeline Cache>> section that
9242    implementations should not manage the size of pipeline cache (internal
9243    issue 192).
9244  * Deprecate the concept of device layers and associated commands (internal
9245    issue 255).
9246  * Remove ename:VK_INCOMPLETE from the list of possible result codes of
9247    flink:vkGetPhysicalDeviceSurfaceCapabilitiesKHR (internal issue 314).
9248  * Add missing std140/std430 rule: the base alignment of a member following
9249    a structure is a multiple of the structure's base alignment (internal
9250    issue 321).
9251  * Fixes naming of the single elink:VkColorSpaceKHR enum from
9252    ename:VK_COLORSPACE_SRGB_NONLINEAR_KHR to
9253    ename:VK_COLOR_SPACE_SRGB_NONLINEAR_KHR in XML/header and the
9254    VK_KHR_swapchain and VK_KHR_surface extensions to match the style of the
9255    typename (space and color are two words, not one) (internal issue 322).
9256  * Make it clear that code:LocalInvocationID should only be applied to an
9257    input variable and normalize the language describing
9258    code:LocalInvocationID to the language for other compute shader
9259    variables in the <<interfaces-builtin-variables,Built-in Variables>>
9260    section, and add normative language (internal issue 323).
9261  * Clarify in the <<fundamentals-returncodes,Return Codes>> section that
9262    the result pointer may be modified for specific commands, even if a
9263    runtime error is returned (internal issue 324).
9264
9265-----------------------------------------------------
9266
9267Change log for April 29, 2016 Vulkan 1.0.12 spec update:
9268
9269  * Bump API patch number and header version number to 12 for this
9270    update.
9271
9272Github Issues:
9273
9274  * Change valid usage statements intended to be "sub-points" to
9275    be actual sub-points (public issue 66).
9276  * Replace double negation in description of
9277    slink:VkRenderPassBeginInfo::pname:pClearValues (based on public
9278    merge 142).
9279  * Cleanup minor typos in spec, ref pages and XML, including those
9280    proposed in public pull requests 144, 150, 151, 167, 168, 181, and
9281    186.
9282  * Use *strict subset* in describing the partial order of memory
9283    property types for slink:VkMemoryType, and update the style guide
9284    accordingly (public issue 190).
9285  * Fix various "a image" -> "an image" typos (public issue 191).
9286  * Note in the <<fundamentals-validusage,Valid Usage>> and
9287    <<extensions-interactions,Extension Interactions>> sections that
9288    structures defined by extensions which may be passed in structure
9289    chains using the ptext:pNext member must include initial
9290    ptext:sType and ptext:pNext members (public issue 192).
9291
9292Internal Issues:
9293
9294  * Remove duplicate language from the description of the pname:fence
9295    parameter to flink:vkQueueSubmit and improve validity language
9296    (internal issue 91).
9297  * Added documentation for "optional" attribute to XML readme.tex/pdf
9298    (internal issue 149).
9299  * Clarify the host-side data validity rules and behavior of
9300    flink:vkFlushMappedMemoryRanges and
9301    flink:vkInvalidateMappedMemoryRanges (internal issue 266).
9302
9303Other Commits:
9304
9305  * Added clarification to flink:vkCmdFillBuffer regarding the use of
9306    ename:VK_WHOLE_SIZE.
9307  * Fixed and documented implementation of "validextensionstructs"
9308    attribute. in XML processing scripts and readme.tex/pdf.
9309  * Add missing validity statements to flink:vkResetEvent and
9310    flink:vkCmdResetEvent.
9311  * Fix validity for the
9312    ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag.
9313    Correct all the draw/dispatch commands to mention optimally tiled
9314    images as well as linear tiled images, and say image VIEWS instead
9315    of images. Add validity statement to flink:vkCmdBlitImage
9316  * Replace the {apiname} macro with hardcoded "Vulkan", now that we have
9317    committed to that name.
9318  * Add the VK_AMD_rasterization_order extension to vk.xml.
9319
9320-----------------------------------------------------
9321
9322Change log for April 22, 2016 Vulkan 1.0.11 spec update:
9323
9324  * Bump API patch number and header version number to 11 for this
9325    update.
9326
9327Github Issues:
9328
9329  * Clarify the WSI extension language by switching from the fuzzier
9330    "ownership" language to more-consistent "acquire" language (public
9331    issue 117).
9332  * Clarify that memory barriers apply to all commands in the dependency
9333    chains in the flink:vkGetRenderAreaGranularity command and the
9334    <<synchronization-execution-and-memory-dependencies,Execution And
9335    Memory Dependencies>> section (public issue 132).
9336  * Clarify that a queue family is a set of queues in the
9337    <<fundamentals-execmodel,Execution Model>> section (public issue
9338    166).
9339  * Removed requirement from valid usage language that
9340    VkPresentInfoKHR::waitSemaphoreCount must be greater than 0 (public
9341    issue 171).
9342  * Fix broken internal links, describe structures consistently, use
9343    consistent style for SPIR-V codewords, and tag normative terms that
9344    were missing asciidoc tags (public issue 183 and ancillary
9345    markup/normative language fixes).
9346  * Fix typos for slink:VkPhysicalDeviceLimits member names in
9347    slink:VkImageCreateInfo validity language (public issue 184).
9348
9349Internal Issues:
9350
9351  * Document that the requested patch version number specified as part
9352    of slink:VkApplicationInfo::pname:apiVersion is ignored when
9353    creating an instance (internal issue 176).
9354  * Clarify handling of extension structs in the
9355    <<fundamentals-validusageValid Usage>> section (internal issue 254).
9356  * Update required slink:VkImageFormatProperties::pname:maxMipLevels to
9357    be limited to the maximum allowed mipmap pyramid size corresponding
9358    to the actual maximum supported size for the format (internal issue
9359    256).
9360  * Modify the <<features-extentperimagetype,Allowed Extent Values Based
9361    On Image Type>> section so the allowed maximum extent is the maximum
9362    image dimension supported for each dimension of the type of texture
9363    being queried (internal issue 257).
9364  * Clarify in the <<spirvenv-module-validation,Validation Rules within
9365    a Module>> section that at least one of the code:LocalSize execution
9366    mode or code:WorkgroupSize decoration is required for each compute
9367    shader entry point in a shader module (internal issue 279).
9368  * Add validity rules for formats in flink:vkCmdClearColorImage and
9369    flink:vkCmdClearDepthStencilImage (internal issue 283).
9370  * Clarify that slink:VkImageFormatProperties::pname:maxResourceSize is
9371    an upper bound, and that it may not be possible to create an image
9372    anywhere near that size (internal issue 284).
9373
9374Other Commits:
9375
9376  * Fix various minor markup errors reported by validation scripts.
9377  * Change copyright from Khronos Free Use License to Apache 2.0 license
9378    on relevant script/XML/header files. This does not affect the
9379    specification source copyright.
9380
9381-----------------------------------------------------
9382
9383Change log for April 15, 2016 Vulkan 1.0.10 spec update:
9384
9385  * Bump API patch number and header version number to 10 for this
9386    update.
9387
9388Github Issues:
9389
9390  * Slightly tweak the <<memory-allocation,Host Memory>> allocator language
9391    so that an application wrapping the standard C alloc/free/realloc
9392    functions is still correct - the previous language was too strong with
9393    regards to freeing memory. Also made certain scenarios clearer - an
9394    implementation may now continue without error if an allocation failed
9395    and it is able to continue correctly (public issue 21).
9396  * Require that etext:VK_*_CREATE_SPARSE_BINDING_BIT is set when the
9397    corresponding etext:VK_*_CREATE_SPARSE_RESIDENCY_BIT is used, in the
9398    <<sparsememory-miptail,Mip Tail Regions>> section and related commands
9399    flink:vkCreateBuffer and flink:vkCreateImage (public issue 84).
9400  * Update the <<features,Features, Limits, and Formats>> chapter to clarify
9401    interactions between optional features and dynamic state for the
9402    pname:depthBiasClamp and pname:wideLines features (public issue 89).
9403  * Describe the code:WorkgroupSize builtin in the
9404    <<interfaces-builtin-variables,Built-In Variables>> section, and update
9405    the <<compute-shaders,Compute Shaders>> section to further clarify how
9406    to set the number of workgroups to execute in a compute shader (public
9407    issue 145).
9408  * Use the term *image subresource* everywhere instead of *subresource*,
9409    except for the special case of *host-accessible subresource*, which may
9410    be either an image subresource or buffer range (public issue 120)
9411  * Add a note to the <<features,Features, Limits, and Formats>> section
9412    about extensibility of structures (Public issue 165).
9413  * Fix return code flink:vkAcquireNextImageKHR when the timeout parameter
9414    is 0 to ename:VK_NOT_READY instead of ename:VK_TIMEOUT (public issue
9415    170).
9416  * Fix typo in slink:VkLayerProperties::pname:apiVersion field (public
9417    issue 172).
9418
9419Internal Issues:
9420
9421  * Fix a few minor internally-detected typos.
9422  * Minor formatting tweaks to pseudocode in the <<resources,Resource
9423    Creation>> chapter (internal issue 179).
9424  * Fix typo in the definition of point sampling for
9425    elink:VkCullModeFlagBits (internal issue 268).
9426
9427-----------------------------------------------------
9428
9429Change log for April 8, 2016 Vulkan 1.0.9 spec update:
9430
9431  * Bump API patch number and header version number to 9 for this
9432    update.
9433
9434Github Issues:
9435
9436  * Fix memory type preorder definition and clarify example list and source
9437    code for slink:VkMemoryRequirements and slink:VkMemoryHeap (public issue
9438    26).
9439  * Ensure slink:VkAllocationCallbacks are properly defined (public issue
9440    73).
9441  * Clarify the WSI extension language by switching from the fuzzier
9442    "ownership" language to more-consistent "acquire" language (public issue
9443    117).
9444  * Add language allowing allocation and freeing of memory scoped to the
9445    duration of any API command in the <<memory-allocation,Memory
9446    Allocation>> section (public issue 136).
9447  * Clarify the explicit location assignment always overrides the inherited
9448    location in the <<interfaces-iointerfaces-locations,Location
9449    Assignment>> section, even for the first member of a block (public issue
9450    141).
9451  * Fixed references to
9452    slink:VkCommandBufferInheritanceInfo::pname:pipelineStatistics (public
9453    issue 158).
9454  * Fix name of slink:VkBufferCopy::pname:size field in validity language
9455    for flink:vkCmdCopyBuffer (public issue 162).
9456
9457Internal Issues:
9458
9459  * Update GL_KHR_vulkan_glsl specification to clarify disallowance of
9460    spec-const arrays in initializers (internal issue 248).
9461  * Clarify <<interfaces-iointerfaces-matching,Interface Matching>> section
9462    to state that user-defined variable interface must match too (internal
9463    issue 250).
9464
9465-----------------------------------------------------
9466
9467Change log for April 1, 2016 Vulkan 1.0.8 spec update:
9468
9469  * Bump API patch number and header version number to 8 for this
9470    update.
9471
9472Github Issues:
9473
9474  * Specify in the validity language for flink:vkBeginCommandBuffer that
9475    pname:commandBuffer must not currently be pending execution (public
9476    issue 96).
9477  * Describe depth comparison using the correct temporary variable names
9478    in the <<textures-depth-compare-operation,Depth Compare Operation>>
9479    section (public issue 100).
9480  * Clarify the order of descriptor update operations in the
9481    flink:vkUpdateDescriptorSets command (public issue 115).
9482  * Specify in the VK_KHR_swapchain extension that
9483    flink:vkAcquireNextImageKHR's pname:semaphore and pname:fence
9484    parameters cannot both be sname:VK_NULL_HANDLE (partly addresses,
9485    but does not fully close, public issue 117 / internal issue 246).
9486  * Change reference to the "lifetime" of a Vulkan command to
9487    "duration", and define the "duration" term (public issue 135).
9488  * Added valid usage language for slink:VkImageLayout to require both
9489    pname:height and pname:depth to be 1 for 1D images and pname:depth
9490    to be 1 for 2D images (public issue 137).
9491  * Fix SPIR-V example code in the
9492    <<descriptorsets-inputattachment,Input Attachment>> section to
9493    properly decorate the code:InputAttachmentIndex (public issue 139).
9494  * Fix reference to nonexistent pname:imageInfo in the description of
9495    flink:VkWriteDescriptorSet to refer to pname:pImageInfo (public
9496    issue 140).
9497
9498Internal Issues:
9499
9500  * Link to the fixed-function vertex chapter from the drawing chapter
9501    (internal issue 110)
9502  * Fix typo in slink:VkImageCreateInfo validity language:
9503    ptext:maxExtent.sampleCounts -> pname:sampleCounts (internal issue
9504    249).
9505  * Explain why the non-core token etext:VK_IMAGE_LAYOUT_PRESENT_SRC_KHR
9506    is used in the example in the
9507    <<synchronization-semaphores,Semaphores>> section (internal issue
9508    251).
9509  * Attempt to clarify in the VK_KHR_android_surface extension's
9510    <<platformQuerySupport_android,Android Platform Support>> section
9511    that there is no Android-specific WSI query, and why (internal issue
9512    252).
9513
9514Other Commits:
9515
9516  * Add missing language about ename:VK_INCOMPLETE being returned from
9517    array queries when the passed array is too short, in the
9518    VK_KHR_display, VK_KHR_swapchain, and VK_KHR_surface extensions.
9519
9520-----------------------------------------------------
9521
9522Change log for March 25, 2016 Vulkan 1.0.7 spec update:
9523
9524  * Bump API patch number and header version number to 7 for this
9525    update.
9526
9527Github Issues:
9528
9529  * Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
9530    aliasing issues (public issue 14).
9531  * Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
9532    validity language (public issue 33).
9533  * Add stub reference pages so xrefs to not-yet-written pages do not
9534    generate 404 errors. However, the actual content of these pages
9535    still needs to be filled in as time allows (public issue 44, but
9536    does not close that issue out).
9537  * Remove incorrect validity statement for
9538    flink:vkGetImageSparseMemoryRequirements (public issue 85).
9539  * Reword the
9540    <<features-limits-bufferImageGranularity,bufferImageGranularity>>
9541    feature in terms of "aliasing", and clarify that it applies to
9542    bindings in the same memory object (public issue 90).
9543  * Clarify the relationship of the slink:VkPhysicalDeviceLimits
9544    pname:maxViewportDimensions and pname:viewportBoundsRange limits
9545    (public issue 92).
9546  * Specify sparse unbound texture replacement in the
9547    <<textures-texel-replacement,Texel Replacement>> section
9548    independently of robust buffer access language (public issue 100).
9549  * Add the <<fundamentals-architecture-model,Architecture Model>>
9550    section to explain architecture constraints Vulkan has chosen to
9551    accept in order to enable portable and performant code (public issue
9552    122).
9553  * State that an object must not be destroyed until *all* (not *any*)
9554    uses of that object have completed (public issue 123).
9555  * Minor editorial cleanup (public issues 129, 134, 146, 148).
9556  * Add validity language for layer and extension names to
9557    slink:VkDeviceCreateInfo matching that used for
9558    slink:VkInstanceCreateInfo (public issue 130).
9559  * Clean up terminology for the case when the bits set in one bitmask
9560    are a subset of the bits set in another bitmask (public issue 138).
9561  * Document that input attachments are UniformConstant not Input, in
9562    the <<interfaces-inputattachment,Fragment Input Attachment
9563    Interface>> section (public glslang bug 169).
9564
9565Internal Issues:
9566
9567  * Add max enum values to "flag bits" enums (internal issue 136).
9568  * Clarify language around the various uses of the term "block" in the
9569    <<appendix-compressedtex-bc,Block Compressed Image Formats>> section
9570    (internal issue 202).
9571  * Removed "expand" dependency from <enums> groups in vk.xml and added
9572    auto-generation code in the scripts to infer it instead, to ensure
9573    consistency. This caused renaming of sname:VkColorSpaceKHR and
9574    sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
9575    tokens are metadata, not part of the API, and the Vulkan WG is OK
9576    with this change. This change adds ranges to two additional enums
9577    that were missing them due to not defining the "expand" attribute
9578    (internal issue 217).
9579  * Tweak makefile to generate ref page nroff (.3) files in the right
9580    output directory, working around an a2x limitation (internal issue
9581    223).
9582
9583Other Commits:
9584
9585  * Add validity requirements for flink:vkCmdCopyQueryPoolResults
9586    pname:dstBuffer parameter.
9587  * Fix ref page build to generate .3 targets in the right output
9588    directory.
9589
9590-----------------------------------------------------
9591
9592Change log for March 10, 2016 Vulkan 1.0.6 spec update:
9593
9594  * Bump API patch number and header version number to 6 for this
9595    update.
9596
9597Github Issues:
9598
9599  * Define 'invocation group' for compute and graphics shaders. Cleanup
9600    definition and use of 'workgroup', and add glossary entries (public
9601    issue 1).
9602  * Various minor editorial fixes (public issue 33).
9603  * Clarify locations for block members in the
9604    <<interfaces-iointerfaces-locations,Location Assignment>>
9605    section (public issue 45).
9606  * Editorial fixes for <<commandbuffer-allocation,Command Buffer
9607    Allocation>> section (public issues 54, 59).
9608  * Clarify behavior of depth test in the <<fragops-depth,Depth Test>>
9609    section (public issues 80, 81).
9610  * Remove discussion of return codes from
9611    flink:vkGetPhysicalDeviceSparseImageFormatProperties and
9612    flink:vkGetImageSparseMemoryRequirements, which do not return values
9613    (public issue 82).
9614  * Allow flink:vkCmdDrawIndirect and flink:vkCmdDrawIndexedIndirect
9615    pname:drawCount of 0, as well as 1, when the multiDrawIndirect
9616    feature is not supported (public issue 88).
9617  * Remove confusing wording in the <<features-limits,Limits>>
9618    section describing the slink:VkPhysicalDeviceLimits
9619    pname:minTexelBufferOffsetAlignment,
9620    pname:minUniformBufferOffsetAlignment, and
9621    pname:minStorageBufferOffsetAlignment members as both minimums and
9622    maximums (public issue 91).
9623  * Clarified that only the RGB components should be affected in places
9624    where sRGB is referred to in the spec, such as ASTC formats. Minor
9625    re-wording to avoid "color space" when actively incorrect, now that
9626    we refer to the Data Format Spec which actually makes a distinction
9627    between color space and transfer function (public issue 94).
9628  * Treat pname:pPropertyCount == 0 consistently in
9629    flink:vkEnumerateInstanceLayerProperties and
9630    flink:vkEnumerateDeviceLayerProperties (public issue 99)
9631  * Cleanup minor editorial issues in chapters 14-17 (public issue 100).
9632  * Clarify definition of flink:vkEnumerateInstanceExtensionProperties
9633    and flink:vkEnumerateDeviceExtensionProperties (public issue 101).
9634  * Define the flink:vkEnumerateInstanceExtensionProperties and
9635    flink:vkEnumerateDeviceExtensionProperties pname:pLayerName
9636    parameter to be a pointer to a null-terminated UTF-8 string (public
9637    issue 101).
9638  * Rearrange "Missing information" references in mandatory format
9639    tables (public issue 101).
9640  * Clarify that the enumerated extensions returned by
9641    flink:vkEnumerateInstanceExtensionProperties and
9642    flink:vkEnumerateDeviceExtensionProperties will only include
9643    extensions provided by the platform or extensions implemented in
9644    implicitly enabled layers (public issue 101).
9645  * Miscellaneous editorial fixes. Include the Vulkan spec patch number
9646    in the PDF title. Fix label on <<fig-non-strict-lines,Non
9647    strict lines>> diagram. Use more easily distinguished symbols in
9648    tables in the <<features-required-format-support,Required
9649    Format Support>> section. Do not require FQDNs used as layer names be
9650    encoded in lower case if not possible, in the
9651    <<extensions-naming-conventions, Extension and Layer Naming
9652    Conventions>> section (public issues 101, 119, 121).
9653
9654Internal Issues:
9655
9656  * Fixed excessive spacing in tables in XHTML (internal issue 18).
9657  * Clarify that ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
9658    applies to secondary command buffers. Previously spec only referred
9659    to the members of pname:pCommandBuffers being affected by this bit.
9660    Added a separate slink:VkSubmitInfo Valid Usage restriction
9661    specifying that ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
9662    also applies to any secondary command buffers that are recorded into
9663    the primary command buffers in pname:pCommandBuffers (internal issue
9664    106).
9665  * Clarify that slink:VkDeviceCreateInfo::pname:pEnabledFeatures can be
9666    NULL (internal issue 117).
9667  * Remove "the value of" where it is redundant (e.g. speaking of an API
9668    parameter, struct member, or SPIR-V variable, but not when speaking
9669    of color components) (internal issue 175).
9670  * Forced patch version to always be 0 in the header. Add a
9671    "VK_API_VERSION_<major>_<minor>" macro for people to use to do the
9672    right thing. Add a VK_HEADER_VERSION which captures the header
9673    release number independent of the spec patch number (internal issue
9674    176).
9675  * Correct description of
9676    slink:VkPipelineShaderStageCreateInfo::pname:pName to "a pointer to
9677    a null-terminated UTF-8 string" (internal issue 197).
9678
9679Other Commits:
9680
9681  * Updated DataFormat spec reference to the new date for revision 5 of
9682    that spec.
9683  * Fixed KEEP option (to retain LaTeX intermediate files) in the
9684    Makefile to be included when edited there, as well as set on the
9685    command line.
9686  * Reserve and add "VK_IMG_filter_cubic" to the registry, and implement
9687    script functionality to add and remove validity from existing
9688    functions. Includes schema and readme changes.
9689  * Update GL_KHR_vulkan_glsl so push_constants do not have descriptor
9690    sets.
9691
9692-----------------------------------------------------
9693
9694Change log for March 4, 2016 Vulkan 1.0.5 spec update:
9695
9696  * Bump API patch number to 5 for this update.
9697
9698Github Issues:
9699
9700  * Correctly describe slink:VkPhysicalDeviceProperties pname:deviceName
9701    member as a string, not a pointer to a string. Also one typo fix for
9702    "hetereogeneous" (public issue 4).
9703  * Replace maynot: macro with may: not, and "may: or maynot:" with
9704    "may:" (public issue 4).
9705  * Clarify that redundantly setting the state of a fence or event has
9706    no effect (public issue 4).
9707  * Minor fixes to ref pages to track descriptions of memory bits that
9708    changed in the core spec. Fix name of a member in the description of
9709    sname:sname:VkPipelineMultisampleStateCreateInfo (public issues 8,
9710    13).
9711  * Remove redundant validity statement for
9712    sname:VkGraphicsPipelineCreateInfo::pname:stageCount (public issue
9713    14).
9714  * Fix typos in chapters 7-9 (public issue 14).
9715  * Clarify the example demonstrating the behavior of
9716    code:OpMemoryBarrier in the
9717    <<shaders-execution-memory-ordering,shader memory acces
9718    ordering>> section (public issue 16).
9719  * Specify that freeing mapped memory implicitly unmaps the memory in
9720    the description of flink:vkFreeMemory (public issue 17).
9721  * Forbid allocation callbacks from calling into the API in the
9722    <<memory-allocation,memory allocation>> section (public issue
9723    20).
9724  * Add missing validity rules about size being greater than 0 and
9725    offset being less than size of object. Fix
9726    flink:VkMappedMemoryRange's misinterpretation of offset (public
9727    issues 27, 31).
9728  * Add validity rule disallowing overlapping source/destination
9729    descriptors in flink:VkCopyDescriptorSet (public issue 32).
9730  * Clarify that array and matrix stride has to be a multiple of the
9731    base alignment of the array or matrix in the
9732    <<interfaces-resources-layout,Offset and Stride Assignment>>
9733    section (public issue 38).
9734  * Correct parenthesis floor nesting error in equation for
9735    <<textures-RGB-sexp,RGB to shared exponent conversion>>.
9736    Clarify case of when exp' is forced to 0, avoiding log2(0) undefined
9737    problem (public issue 40).
9738  * Remove redundant statement from the code:FragDepth description in
9739    the <<interfaces-builtin-variables,Built-In Variables>>
9740    section (public issue 47).
9741  * Define the clamping of the
9742    <<textures-level-of-detail-operation,bias added to the scale
9743    factor>> by linking to the slink:VkPhysicalDevice feature
9744    pname:maxSamplerLodBias (public issue 64).
9745  * Fix typo "optimal linear resources" and clarify the set of resources
9746    <<features-limits-bufferImageGranularity,the
9747    pname:bufferImageGranularity resource>> applies to (public issue
9748    67).
9749  * Replace 'descriptor accessed by a pipeline' language for
9750    sname:VkDescriptorSetAllocateInfo with more precise phrasing about
9751    binding a descriptor set before a command that invokes work using
9752    that set (public issue 69).
9753  * tstripadj.svg contained an Inkscape tag which caused Firefox and IE
9754    11 to fail to render it, and was illegal SVG. Generating Plain SVG
9755    from the Inkscape SVG source fixes this (public issue 70).
9756  * Fix validity for sname:VkVertexInputBindingDescription and
9757    sname:VkVertexInputAttributeDescription numbers (public issue 72).
9758
9759Internal Issues:
9760
9761  * Clarify the meaning of
9762    ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in
9763    elink:VkFormatFeatureFlagBits with respect to depth compare
9764    (internal issue 107).
9765  * Added a note explaining that ename:VK_QUEUE_TRANSFER_BIT may or may
9766    not be reported for a queue family that already supports
9767    ename:VK_QUEUE_GRAPHICS_BIT or ename:VK_QUEUE_COMPUTE_BIT as the
9768    former is a strict subset of the latter ones (internal issue 116).
9769  * Add validity language for sname:VkDescriptorSetAllocateInfo about
9770    exceeding the descriptor pool capacity (internal issue 140).
9771  * Add ename:VK_INCOMPLETE success code for
9772    flink:vkEnumeratePhysicalDevices query (internal issue 163).
9773
9774Other Commits:
9775
9776  * Add the VK_NV_glsl_shader extension definitions to the API.
9777  * Update GL_KHR_vulkan_glsl with 1) origin_upper_left as default 2)
9778    specialization array constant semantics.
9779  * Corrected/updated Data Format Specification date.
9780
9781-----------------------------------------------------
9782
9783Change log for February 25, 2015 Vulkan 1.0.4 spec update:
9784
9785  * Bump API patch number from 3 to 4 for the first public update to the
9786    spec. Add patch number to the spec title (this will be done
9787    automatically from XML, later).
9788  * Fixes for numerous editorial issues. Regularize descriptions of
9789    variable-length array queries. Properly tag enumerants so they come
9790    out in the right font (many were mislabeled in usage tags in vk.xml,
9791    or not tagged). Spelling and markup corrections (public issue 4).
9792  * Fix typos and clearly separate description of different types of
9793    memory areas (public issue 5).
9794  * Use standards-compliant preprocessor guard symbols on headers
9795    (public issue 7).
9796  * Note that Github users cannot currently set labels on issues, and
9797    recommend a fallback approach (public issue 15).
9798  * Use latexmath prefix on len= attributes (public issue 29).
9799  * Make flink:vkCmdUpdateBuffer pname:dataSize limit consistent (public
9800    issue 65).
9801  * Add VK_KHR_mirror_clamp_to_edge extension to core API branch, as an
9802    optional feature not introducing new commands or enums (internal
9803    issue 104).
9804  * Cleanup invariance language inherited from the GL specification to
9805    not refer to nonexistent (GL-specific) state (internal issue 111).
9806  * Modify the flink:vkCmdDrawIndexed pname:vertexOffset definition to
9807    not be the "base offset within the index buffer" but rather the
9808    "value added to the vertex index before indexing into the vertex
9809    buffer" (internal issue 118).
9810  * Fix drawing chapter in the "Programmable Primitive Shading" section
9811    where it described categories of drawing commands. It referenced
9812    flink:vkCmdDrawIndexed twice. Replace the second reference with
9813    flink:vkCmdDrawIndexedIndirect (internal issue 119).
9814  * Typo fixed in <<sparsememory-examples-advanced,Advanced Sparse
9815    Resources>> sparse memory example (internal issue 122).
9816  * Add flink:VkDisplayPlaneAlphaFlagsKHR to <require> section of
9817    VK_KHR_display extension (internal issue 125)
9818  * Add missing optional="false,true" to
9819    flink:vkGetImageSparseMemoryRequirements
9820    pname:pSparseMemoryRequirementCount parameter (internal issue 132)
9821  * Rename ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT to
9822    ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
9823    (internal issue 133)
9824  * Fix a handful of broken cross-references in the
9825    <<samplers,Samplers>> chapter (internal issue 134).
9826  * Fix "Input Attachement" GLSL example to use correct syntax (internal
9827    issue 135).
9828  * Update XML schema and documentation to accommodate recently added
9829    attributes for validity. Add some introductory material describing
9830    design choices and pointing to the public repository to file issues.
9831  * Put include of validity in the core spec extensions chapter on its
9832    own line, so that asciidoc is happy.
9833  * Fix vertexOffset language to specify that it is the value added to
9834    the vertex index before indexing into the vertex buffer, not the
9835    base offset within the index buffer.
9836  * Fix error in the description of flink:vkCmdNextSubpass.
9837
9838-----------------------------------------------------
9839
9840February 16, 2016 - Vulkan 1.0 initial public release
9841
9842