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