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 9, 2021 Vulkan 1.2.198 spec update: 15 16 * Update release number to 198 for this update. 17 18Github Issues: 19 20 * Sort dependencies of "`Provided by`" comments in generated API includes, 21 and remove duplicates (public issue 1483, internal issue 2620). 22 * Remove max-width attribute from document headers, causing CSS to limit 23 page width in wide windows (public pull request 1660). 24 25Internal Issues: 26 27 * Filter out `VK_VERSION_1_x` pages when generating refpage sources for a 28 build that does not include the corresponding core version (internal 29 issue 1971). 30 * Adjust section header level for extension appendix refpages to match 31 other refpages (internal issue 2151). 32 * Add and fix protected memory valid usage statements to require queues be 33 protected if any batch if a protected batch, and restrict indirect 34 operations when pname:protectedNoFault is supported (internal issues 35 2169, 2841) 36 * Generate refpages to SPIR-V builtins, which were marked up in the spec 37 source but not being extracted and built (internal issue 2395). 38 * Clarify VUID 04918 regarding use of code:Location decorations (internal 39 issue 2737). 40 * Remove redundant nested VK_VERSION_1_1 conditional markup from the 41 <<initialization>> chapter (internal issue 2851). 42 * Add code:IdrPicFlag to code:StdVideoDecodeH264PictureInfoFlags for 43 provisional video extensions (internal issue 2901). 44 * Fix incorrect example code in apiext:VK_HUAWEI_subpass_shading appendix 45 sample code (internal merge request 4889). 46 * Promote ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT and 47 ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT in a few 48 places where the etext:KHR suffixes had not been removed (internal merge 49 request 4902). 50 * Add missing format properties consistency checks for 51 slink:VkDrmFormatModifierPropertiesList2EXT and 52 slink:VkAndroidHardwareBufferFormatProperties2ANDROID. 53 * Minor editorial markup fixes. 54 55----------------------------------------------------- 56 57Change log for November 2, 2021 Vulkan 1.2.197 spec update: 58 59 * Update release number to 197 for this update. 60 61Github Issues: 62 63 * Align some of the provisional video standard headers enums and bitfields 64 to have predictable sizes (public issue 1571). 65 * Remove exporting of D3D memory handles from 66 slink:VkExportMemoryWin32HandleInfoKHR (public pull request 1612). 67 * Add language to slink:VkAccelerationStructureBuildGeometryInfoKHR 68 explicitly stating that source and target acceleration structures are 69 allowed to be the same or different during an update (public issue 70 1641). 71 * Fix typos (public pull request 1662). 72 * Register remaining newly introduced `vk_video` types in `vk.xml` (public 73 pull request 1663). 74 75Internal Issues: 76 77 * Clarify <<resources-external-sharing, ownership transfers on external 78 resources>> (internal issue 2692). 79 * Changes to (nearly) eliminate dead internal links and improve scripts: 80 ** Correctly generate API dependencies on extensions and core versions in 81 cases where "`spelling aliases`" were present 82 ** Clean up a few incorrectly marked up links, anchors, and refpage block 83 alias= attributes 84 ** Use an API alias map to substitute promoted API names for promoted-to 85 APIs when an older or restricted spec is being generated and the 86 promoted-to API is not included 87 * Tag sname:VkVideo{Encode,Decode}H26{4,5}ProfileEXT structures as 88 extending slink:VkQueryPoolCreateInfo in `vk.xml` (internal issue 2861). 89 * Grammar edits to slink:VkAccelerationStructureKHR (internal issue 2887). 90 * Change the cited title of the <<LoaderInterfaceArchitecture>> document 91 to "`Architecture of the Vulkan Loader Interfaces`" matching a recent 92 change in https://github.com/KhronosGroup/Vulkan-Loader/pull/685 93 (internal merge request 4823). 94 * Re-remove etext:VkVideoEncodeH265CapabilityFlagBitsEXT, which was 95 accidentally reintroduced but is still unused (internal merge request 96 4885). 97 * Update wording for 98 ename:VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR since it no 99 longer contains `"update`" (internal merge request 4886). 100 * Consistency edits to remove "`instance of`" when referring to a specific 101 structure, and use "`render pass`" instead of "`renderpass`" as a noun 102 (internal merge request 4896). 103 * Add -version option to 'makeSpec' frontend build script. 104 105New Extensions 106 107 * `<<VK_KHR_dynamic_rendering>>` 108 109----------------------------------------------------- 110 111Change log for October 13, 2021 Vulkan 1.2.196 spec update: 112 113 * Update release number to 196 for this update. 114 115Github Issues: 116 117 * Clarify normative language for 118 ename:VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT in 119 elink:VkImageUsageFlagBits, allowing two styles of implementation 120 (public issue 1616). 121 * Fix typo in flink:vkCmdSetScissor (public pull request 1659). 122 * Reorder attributes of elink:VkFormatFeatureFlags2KHR in `vk.xml` for 123 consistency (public pull request 1653). 124 125Internal Issues: 126 127 * More cleanup of internal broken links in various builds of the specs. 128 Fix typos on xrefs and anchors, add stub pages for missing Flags and 129 FlagBits types, update `spirvcapgenerator.py` to put anchors with the 130 same table row they belong to, validate `apiext:` macro targets at build 131 time, and don't generate API requirements for `<type>` tags with no 132 `category`, eliminating spurious warnings for external types (internal 133 issues 2864, 2866). 134 * Update `htmldiff` scripts for Python3. 135 * Add subsection titles and anchors in the <<fxvertex, Fixed-Function 136 Vertex Processing>> chapter to make thematic breaks more clear (internal 137 merge request 4867). 138 139New Extensions 140 141 * `<<VK_EXT_border_color_swizzle>>` 142 * `<<VK_EXT_video_encode_h265>>` *provisional* H.265 video encode codec extension 143 144----------------------------------------------------- 145 146Change log for October 5, 2021 Vulkan 1.2.195 spec update: 147 148 * Update release number to 195 for this update. 149 150Github Issues: 151 152 * Add a NOTE to flink:vkDestroyQueryPool clarifying when a query pool can 153 be destroyed (public issue 1647). 154 155Internal Issues: 156 157 * Begin cleanup of internal broken links in various builds of the specs, 158 including generating a Ruby API map to be used by the asciidoctor macros 159 to validate their API name arguments; using "nofollow" on github issue 160 opening links to avoid link-checkers being interpreted as DOS attacks; 161 improved checker scripts; minor markup fixes; and using the `apiext:` 162 macro to replace `<<VK_KHR_extension_name>>`-style extension links 163 everywhere (internal issue 2831). 164 * Minor editorial cleanups to descriptions of 165 `apiext:VK_FUCHSIA_buffer_collection` APIs (internal issue 2836). 166 * Match `Cull Mask` SPIR-V name to pname:mask parameter name in the 167 <<acceleration-structure, Acceleration Structures>> chapter (internal 168 merge request 4844). 169 * Add pname:minTexelOffset and pname:maxTexelOffset limit valid usage 170 statements for code:OpImageSample* and code:OpImageFetch* in the 171 <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> 172 section (internal merge request 4845). 173 * Add pname:maxFragmentDualSrcAttachments and 174 pname:maxFragmentCombinedOutputResources limit valid usage statements 175 for output and color attachments in the 176 <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> 177 section (internal merge request 4847). 178 179New Extensions 180 181 * `<<VK_KHR_format_feature_flags2>>` 182 * `<<VK_KHR_maintenance4>>` 183 * `<<VK_EXT_rgba10x6_formats>>` 184 185----------------------------------------------------- 186 187Change log for September 28, 2021 Vulkan 1.2.194 spec update: 188 189 * Update release number to 194 for this update. 190 191Github Issues: 192 193 * Add missing `len` attribute to 194 slink:VkCuModuleCreateInfoNVX::pname:pData (public merge request 1646). 195 * Refer to dynamic state consistently from ftext:vkCmdSet* commands, and 196 link to the definition of dynamic state (public issue 1428, but with 197 expanded scope beyond the actual ask in that issue). 198 199Internal Issues: 200 201 * Fix incorrect member name in slink:VkRenderPassCreateInfo valid usage 202 statement 02515 (internal issue 2824). 203 * Fix XML dependency for `<<VK_NV_device_generated_commands>>` (internal 204 issue 2818). 205 * Add packed formats from `<<VK_KHR_sampler_ycbcr_conversion>>`` to the 206 <<formats-packed, table of packed formats>> and improve description of 207 packed format naming conventions (internal merge request 4798). 208 209New Extensions 210 211 * `<<VK_FUCHSIA_buffer_collection>>` 212 213----------------------------------------------------- 214 215Change log for September 21, 2021 Vulkan 1.2.193 spec update: 216 217 * Update release number to 193 for this update. 218 219Github Issues: 220 221 * Use consistent `implicitexternsync` language in XML for 222 flink:vkDestroyDevice (public issue 1482). 223 * Clarify requirements of flink:vkGetInstanceProcAddr to match that of the 224 Android loader when attempting to retrieve a global function with a 225 non-NULL instance parameter (public issue 1605). 226 * Add new elink:VK_DRIVER_ID reservations for upcoming Mesa drivers 227 (public pull request 1642). 228 229Internal Issues: 230 231 * Fix flink:vkCmdEndDebugUtilsLabelEXT to clarify command buffer recording 232 interactions with debug labels (internal issue 2777). 233 * Improve NOTE for acceleration structure capture / replay in 234 slink:VkAccelerationStructureCreateInfoKHR (internal issue 2769). 235 * Add "`See Also`" crosslinks to extension refpages providing aliased APIs 236 in API refpages (internal issue 2819). 237 * Fix markup for core version (`VK_VERSION_1_0`, etc.) refpages - 238 asciidoctor doesn't allow section headers here and this affected the 239 specification appendix rendering (internal issue 2826). 240 * Use open range notation for slink:VkSamplerCreateInfo 241 ptext:addressMode[UVW] descriptions (internal issue 2829). 242 * Replace term "`channel`" with "`component`" when discussing formats, and 243 update glossary to help clarify formats such as 244 ename:VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 and 245 ename:VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 (internal merge 246 request 4799). 247 * Fix some primitive_topology_list_restart VUIDs to only apply if 248 pname:primitiveRestartEnable is ename:VK_TRUE (internal merge request 249 4818). 250 * Fix slink:VkPhysicalDeviceShaderCorePropertiesAMD `limittype` attributes 251 in XML (internal merge request 4819). 252 * Fix accidentally duplicated VUIDs 06256 due to missing {accessMaskName} 253 in VUID markup (internal merge request 4829). 254 * Miscellaneous minor formatting and style fixes (internal merge requests 255 4832, 4838). 256 257----------------------------------------------------- 258 259Change log for September 14, 2021 Vulkan 1.2.192 spec update: 260 261 * Update release number to 192 for this update. 262 263Github Issues: 264 265 * Correctly describe slink:VkDeviceQueueInfo2::pname:pNext (public issue 266 1622). 267 * Improve behavior of contact links from extension metadata generator 268 (public merge request 1635). 269 * Require slink:VkDeviceAddress in 1.0 spec conditional markup, matching 270 XML (public issue 1636). 271 272Internal Issues: 273 274 * Turn <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> 275 section into formal Valid Usage statements with assigned valid usage IDs 276 (internal issue 1598). 277 * Use `pass:[~~~~]` delimiters for `[source]` blocks inside reference page 278 `[open]` blocks to bypass logic problem with VUID assignment script 279 (internal issue 2040). 280 * Update style guide to incorporate Khronos Inclusive Language document by 281 reference. Followon changes will apply the suggestions as needed 282 (internal issue 2293). 283 * Add clarifications about ray tracing transform matrices to 284 slink:VkAccelerationStructureGeometryTrianglesDataKHR, 285 slink:VkAccelerationStructureBuildOffsetInfoKHR, and the 286 <<ray-intersection-candidate-determination, Ray Intersection Candidate 287 Determination>> section (internal issue 2709). 288 * Clarify descriptor requirements for code:Buffer and code:Subpassdata in 289 the <<interfaces-resources-correspondence, Shader Resource and 290 Descriptor Type Correspondence>> table (internal issue 2751). 291 * Add aliases for versioned extensions which don't treat the trailing 292 version number as a separate word, such as 293 ename:VK_KHR_MAINTENANCE1_SPEC_VERSION -> 294 ename:VK_KHR_MAINTENANCE_1_SPEC_VERSION, and add a CI test in 295 `scripts/xml_consistency.py` to try and detect future occurrences 296 (internal issue 2810). 297 * Add missing pname:sType and pname:pNext boilerplate descriptions to spec 298 language for several elink:*Features structures that were missing it 299 (though they did have them in the XML definition of the structures) 300 (internal issue 2815). 301 * Add extension and version crosslinks to generated reference pages, 302 expressing the same information in the `Provided by` comments in 303 generated API includes (internal issue 2816). 304 * Move the old "`Fragment Shader Execution`" section from the <<shaders>> 305 chapter to the <<fragops-shader, Fragment Shading>> section of the 306 <<fragops>> chapter, change anchor names accordingly, and factor out 307 common related language from several parts of the spec into this section 308 (internal merge request 4765). 309 * Allow access to the code:PrimitiveId builtin from shaders declared with 310 the code:MeshShadingNV capability (internal merge request 4767). 311 * Make the <<features-primitiveTopologyListRestart, 312 pname:primitiveTopologyListRestart>> feature mandatory for 313 `<<VK_EXT_primitive_topology_list_restart>>` (internal merge request 314 4790). 315 * Edit <<limits-types, Required Limit Types>> table to add Vulkan 1.2 316 interactions for pname:filterMinmaxSingleComponentFormats and 317 pname:filterMinmaxImageComponentMapping limits (internal merge request 318 4802). 319 * Add ename:VK_FORMAT_R10X6_UNORM_PACK16 and 320 ename:VK_FORMAT_R12X4_UNORM_PACK16 to the list of 16-bit packed formats, 321 and fix formatting of "`wildcard`" enums containing a placeholder _i_ 322 tag corresponding to supported integers (internal merge request 4803). 323 * Refactor CI scripts to use the Makefile `allchecks` target as part of CI 324 instead of multiple separate steps, allowing a quick local check 325 equivalent to that part of CI, and update that target accordingly 326 (internal merge request 4807). 327 * Make slink:VkImageCreateInfo valid usage statement 01572 apply to all 328 compressed formats (internal merge request 4812). 329 330 331----------------------------------------------------- 332 333Change log for September 7, 2021 Vulkan 1.2.191 spec update: 334 335 * Update release number to 191 for this update. 336 337Internal Issues: 338 339 * Update checker scripts to detect extension number conflicts in `vk.xml`, 340 and run the check in CI (internal issue 2612). 341 * Minor cleanup for the provisional video extensions, including 342 documenting a few undocumented enums and structure members and some 343 language cleanup (internal issue 2705). 344 * Add a NOTE to flink:vkAllocateMemory.txt about protected memory 345 allocation count limits (internal issue 2791). 346 * Use "`cube map`" rather than "`cubemap`" spelling, and add this case to 347 the style guide (internal merge request 4794). 348 349New Extensions: 350 351 * `<<VK_EXT_pageable_device_local_memory>>` 352 353----------------------------------------------------- 354 355Change log for August 29, 2021 Vulkan 1.2.190 spec update: 356 357 * Update release number to 190 for this update. 358 * Released a few days in advance of the usual Tuesday spec updates due to 359 holiday meeting schedule. 360 361Github Issues: 362 363 * Make treatment of empty etext:Vk*FlagBits types consistent in `vk.xml` 364 (public issue 1601 and merge request 1609) 365 366Internal Issues: 367 368 * Add more descriptive language for transforms in the 369 <<ray-intersection-candidate-determination, Ray Intersection Candidate 370 Determination>> section (internal issue 2709). 371 * Update `-validate` logic in registry scripts to validate the `limittype` 372 attribute presence and values where required (internal issue 2606). 373 * Update common validity statements for access masks to allow shader 374 pipeline bits to be use with ename:VK_ACCELERATION_STRUCTURE_READ_BIT 375 (internal issue 2782). 376 * Fix typo in the description of code:CullDistancePerViewNV (internal 377 merge request 4769). 378 * Various fixes and simplifications for 379 <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> valid 380 usage statements: 381 ** Flatten markup for VK_KHR_shader_subgroup_extended_types valid usage 382 statements (internal issue 1598) 383 ** Flatten markup for VK_EXT_shader_atomic_float valid usage statements 384 (internal issue 1598). 385 ** Remove asciidoctor conditional check for 386 `VK_KHR_storage_buffer_storage_class`, not needed because the SPIR-V 387 specification is unified and `spirv-val` will throw an error if trying 388 to use code:StorageBuffer without the proper extension / version being 389 set (internal merge request 4779). 390 391New Extensions: 392 393 * `<<VK_KHR_shader_integer_dot_product>>` 394 * `<<VK_EXT_primitive_topology_list_restart>>` 395 396----------------------------------------------------- 397 398Change log for August 17, 2021 Vulkan 1.2.189 spec update: 399 400 * Update release number to 189 for this update. 401 402Github Issues: 403 404 * Add parent check valid usage statements to flink:vkUpdateDescriptors 405 (public issue 1581). 406 * Document the feature requirement for separate depth/stencil layouts in 407 the <<resources-image-layouts, Image Layouts>> section (public issue 408 1583). 409 * Revert a valid usage statement constraining 410 slink:VkMemoryAllocateInfo::pname:allocationSize (public issue 1595). 411 * Remove misleading reference to `z` from the description of image 412 coordinates for slink:VkSamplerCreateInfo::pname:unnormalizedCoordinates 413 (public issue 1602). 414 * Fix typo in <<fxvertex-input-extraction>> section (public pull request 415 1604). 416 * Fix comment in example for `<<VK_EXT_debug_utils>>` appendix to 417 correctly reference pname:objectHandle, not ptext:object (public pull 418 request 1606). 419 * Revert `vk_platform.h` path change in `vk.xml` from public pull request 420 1538, which was causing build issues for some projects. We will revisit 421 this in the future but did not want to put a problematic change into the 422 next SDK update (public pull request 1610). 423 424Internal Issues: 425 426 * Use `hexapdf` for PDF optimization, rather than Ghostscript. This 427 improves overall PDF generation time about 15-20%, and final PDF size by 428 about 1/3 (internal issue 2422). 429 * Improve contrast for better accessibility of HTML outputs, based on 430 feedback from the ANDI tool. This includes updating the specification 431 CSS in `config/khronos.css`, switching to the rouge source code 432 highlighter instead of coderay, and overriding some of the rouge theme 433 CSS (internal issue 2784). 434 * Clarify that transforms are consumed only if transformData is non-null 435 for slink:VkAccelerationStructureBuildRangeInfoKHR.txt (internal issue 436 2787). 437 * Make spec language describing bitmasks consistent as 'Bits which can: be 438 set' (internal merge request 4762). 439 * Support `optional` attribute in the valid usage statement generator for 440 union types (internal merge request 4772). 441 442----------------------------------------------------- 443 444Change log for August 10, 2021 Vulkan 1.2.188 spec update: 445 446 * Update release number to 188 for this update. 447 448Github Issues: 449 450 * Add missing `optional="true"` attributes to pname:pNext members. Enable 451 `scripts/xml_consistency.py` in CI, and add check for this case (public 452 pull request 1597). 453 * Add missing markup (setting `refpage` attributes where they were needed 454 for commonvalidity statements) to fix some broken valid usage ID link 455 names (public issue 1598). 456 * Update valid usage statement 02650 to use "`potential format features`" 457 consistently with other recent changes (discussion on public 458 Vulkan-ValidationLayers pull request 3139). 459 460Internal Issues: 461 462 * Clarify the role of <<ray-traversal-culling-face, face winding>> in the 463 context of ray intersection candidate determination and alias 464 ename:VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR to 465 ename:VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR, corresponding 466 to the clarifications (internal issue 2780). 467 * Add valid usage statement for flink:vkCmdBeginTransformFeedbackEXT 468 requiring a valid graphics pipeline be bound (internal issue 2785). 469 * Use the term <<acceleration-structure-def, "`constructed`">> to refer to 470 an acceleration structure that was previously built or created by 471 copying or deserialization of a built acceleration structure (internal 472 merge request 4727). 473 * Add explicit valid usage statements to flink:vkWaitForPresentKHR and 474 slink:VkPresentInfoKHR requiring the corresponding features be enabled 475 (internal merge request 4754). 476 * Remove extraneous trailing periods from some valid usage statements 477 (internal merge request 4759). 478 479New Extensions: 480 481 * `<<VK_EXT_load_store_op_none>>` 482 483----------------------------------------------------- 484 485Change log for August 3, 2021 Vulkan 1.2.187 spec update: 486 487 * Update release number to 187 for this update. 488 489Github Issues: 490 491 * Add glossary terms for "`pipeline ray tracing instructions`" and "`ray 492 tracing commands`" (public issue 1578). 493 * Limit the code:OpTypeImage code:Unknown format restriction to storage 494 images in the <<spirvenv-module-validation-runtime, Runtime SPIR-V 495 Validation>> section (public issue 1588). 496 * Fix slink:VkRect2D::pname:extent in a few places where it was 497 misreferenced as pname:offset (public pull request 1590). 498 499Internal Issues: 500 501 * Clarify that depth values outside the range [0,1] become undefined 502 following the depthClamp stage of the pipeline, by rearranging the 503 <<fragops-depth, Depth Test>> section and adding a new "`Depth Clamping 504 and Range Adjustment`" subsection (internal issues 2445, 2753). 505 * Clarify valid usage statement 01843 for slink:VkDeviceQueueInfo2 to 506 match similar statement for flink:vkGetDeviceQueue, and split off part 507 of it into a new VU statement (internal issue 2645). 508 * Fix a few enumerant and member names in the provisional video extensions 509 to comply with the spec style guidelinse (internal issue 2710). 510 * Update the descriptions of flink:vkCmdDrawMultiEXT and 511 flink:vkCmdDrawMultiIndexedEXT to clarify how they are equivalent to 512 calling underlying drawing commands multiple times with different 513 parameters (internal issue 2757). 514 * Renumber VUIDs which duplicated the numeric portion of another 515 non-common VUID, and add a duplicate number detection test to CI to 516 prevent recurrences (internal issue 2764). 517 * Make code:SubgroupSize command scope uniform in compute dispatches 518 (internal issue 2773). 519 * Expand the list of valid image layouts for 520 <<attachment-type-imagelayout, input attachments>>, 521 <<descriptorsets-sampleimage, sampled images>>, and 522 <<descriptorsets-combinedimagesampler, combined image samplers>> to 523 include DEPTH_READ_ONLY_OPTIMAL and STENCIL_READ_ONLY_OPTIMAL (internal 524 issue 2774). 525 * Remove `flowRoot` SVG elements from a few recent image updates, as they 526 are not supported by the current PDF toolchain (internal issue 2778). 527 * Update to asciidoctor-chunker 1.0.4, adding support for `aria-label` 528 accessibility tags on the chunked specification forward/back section 529 navigation arrows (internal issue 2784). 530 * Clean up description of flink:vkCmdClearAttachments and remove redundant 531 information (internal merge request 4717). 532 * Add a description of each of the 533 flink:vkCmdWriteAccelerationStructuresPropertiesKHR::pname:queryPool 534 query types (internal merge request 4728). 535 * Add new valid usage statement to slink:VkMemoryAllocateInfo when 536 allocating a memory object larger than the reported limit (internal 537 merge request 4737). 538 * Add missing description of pname:layerCount member of 539 slink:VkFramebufferAttachmentImageInfo (internal merge request 4744). 540 541 542----------------------------------------------------- 543 544Change log for July 27, 2021 Vulkan 1.2.186 spec update: 545 546 * Update release number to 186 for this update. 547 548Github Issues: 549 550 * Reduce size and increase clarity of some SVG images for the provisional 551 video extensions (public issue 1537). 552 * Use a consistent description of pname:stride as "`byte stride`" rather 553 than "`distance in bytes`" in a few places (public issue 1575) 554 * Clarify the equivalence of flink:vkQueueWaitIdle to 555 fence submission (public issue 1579). 556 * Fix XML capabilities for new code:*Float*Atomic* SPIR-V capabilities to 557 require slink:VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT rather than 558 slink:VkPhysicalDeviceShaderAtomicFloatFeaturesEXT (public pull request 559 1587, although fixed internally first). 560 561Internal Issues: 562 563 * Refactor asciidoctor conditionals imbedded within valid usage statements 564 so they are extracted properly to `validusage.json`, and add a CI check 565 to prevent this happening in the future (internal issues 1529, 2439). 566 * Clarify that dynamic vertex buffer object stride of 0 is allowed in 567 valid usage statement for flink:vkCmdBindVertexBuffers2EXT 568 (internal issue 2742) 569 * Add valid usage statement to 570 ftext:vkGetPhysicalDeviceSurfaceCapabilities{KHR,2EXT,2KHR}, 571 ftext:vkGetPhysicalDeviceSurfacePresentModes{KHR,2EXT}, and 572 ftext:vkGetDeviceGroupSurfacePresentModes{KHR,2EXT} requiring surface / 573 device compatibility (internal issue 2744). 574 * Clarify the requirements on code:OpTypeImage for input attachments in 575 the <<spirvenv-module-validation, Validation Rules within a Module>> and 576 <<interfaces-inputattachment, Fragment Input Attachment Interface>> 577 sections (internal issue 2752) 578 * Clarify that stipple parameters are ignored when line stipple is 579 disabled in slink:VkPipelineRasterizationLineStateCreateInfoEXT 580 (internal issue 2763) 581 * Improve wording for the shader interface code:Location limit in the 582 <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> 583 section (internal merge request 4693) 584 585----------------------------------------------------- 586 587Change log for July 20, 2021 Vulkan 1.2.185 spec update: 588 589 * Update release number to 185 for this update. 590 * Going forward we will probably be moving the default day for spec 591 updates to Tuesday (Pacific time) rather than Monday. 592 593Github Issues: 594 595 * Clarify that only *device* extensions are required to be specified in 596 valid usage statement for flink:vkCreateDevice (public issue 1567). 597 * Fix extension dependencies for `<<VK_EXT_calibrated_timestamps>>` to 598 include `<<VK_KHR_get_physical_device_properties2>>` (public issue 599 1568). 600 * Conditionalize xref to VkPhysicalDeviceSubgroupProperties in 601 `<<VK_KHR_spirv_1_4>>` appendix so it does not show up in a 1.0 spec 602 build (public issue 1574). 603 * Relax portability usage of the identity swizzle in 604 slink:VkImageViewCreateInfo valid usage statement 04465 (public 605 KhronosGroup/Vulkan-Portability issue 27). 606 607Internal Issues: 608 609 * Document in the <<extendingvulkan-extensions-extensiondependencies, 610 Extension Dependencies>> section that instance extensions do not have 611 dependencies on device extensions, and add a similar requirement to the 612 description of the `requires` attribute of extension tags in the 613 registry schema document (internal issue 2387). 614 * Fix `optional` attribute in XML for 615 flink:vkCmdBindVertexBuffers2EXT::pname:pBuffers (internal issue 2574). 616 * Remove redundant valid usage statements from flink:vkCmdPipelineBarrier, 617 flink:vkCmdSetEvent, and flink:vkCmdResetEvent. Add missing VUs for 618 slink:VkSubpassDependency and slink:VkSubpassDependency2 (internal issue 619 2583). 620 * Clarify that 621 ename:VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR 622 must be supported in pname:bufferFeatures (internal issue 2686). 623 * Clarify that a valid function pointer pname:fp returned from 624 flink:vkGetInstanceProcAddr must not be `NULL` (internal issue 2720). 625 * Relax code:Flat, code:NoPerspective, code:Sample, and code:Centroid 626 storage class restriction in the 627 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 628 section (internal issue 2721). 629 * Clarify forward progress behavior of flink:vkAcquireNextImageKHR and 630 flink:vkQueuePresentKHR (internal issue 2729). 631 * Remove duplicated language describing queue submission in the 632 <<fundamentals-execmodel, Execution Model>> and 633 <<fundamentals-queueoperation, Queue Operation>> sections (internal 634 issue 2736). 635 * Describe the new pipeline stage 636 ename:VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI in several sections 637 of the <<synchronization>> chapter where it was missing (internal issue 638 2745). 639 * Improve formatting in the <<limits>> chapter, add support for the 640 missing optionally: normative word macro, and replace most use of 641 (non-normative) "`optionally`" with normative "`can:`". Update style 642 guide to add more contractions and remove contractions from the spec. 643 add a better description of the pname:shaderDrawParameters feature 644 (internal merge requests 4699, 4708). 645 * Fix name of parameter 646 flink:vkGetMemoryRemoteAddressNV::pname:pMemoryGetRemoteAddressInfo to 647 follow Vulkan conventions (internal merge request 4704). 648 * Minor fixes for the <<resources-image-views-compatibility, image view 649 compatibility table>> and related minor spec language fixes elsewhere 650 (internal merge request 4709). 651 652New Extensions: 653 654 * `<<VK_EXT_shader_atomic_float2>>` 655 * `<<VK_HUAWEI_invocation_mask>>` 656 * `<<VK_KHR_present_id>>` 657 * `<<VK_KHR_present_wait>>` 658 659Miscellany: 660 661 * Happy Lunar Landing Day! 662 663----------------------------------------------------- 664 665Change log for July 5, 2021 Vulkan 1.2.184 spec update: 666 667 * Update release number to 184 for this update. 668 669Github Issues: 670 671 * Make description of 672 slink:VkSparseImageMemoryRequirements::pname:formatProperties.imageGranularity 673 consistent by replacing the nested structure descriptions with a simple 674 description of pname:formatProperties (public issue 1444). 675 * Update `<<VK_HUAWEI_subpass_shading>>` extension to rename 676 flink:vkGetSubpassShadingMaxWorkgroupSizeHUAWEI to 677 flink:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI and give it a 678 dispatchable slink:VkDevice parameter (public issue 1564). 679 * Fix labelling of "`Resource`" reference block in pipeline block 680 diagrams (public issue 1582). 681 682Internal Issues: 683 684 * Replace the old <<resources-image-views-compatibility>> table with a 685 simplified image type / image view type compatibility table, and move 686 the parameter compatibility portions of the table into explicit valid 687 usage statements (internal issue 2586). 688 * Define the slink:VkPipelinCacheHeaderVersionOne structure in `vk.xml` 689 instead of the previous "`Layout for pipeline cache header version one`" 690 table (internal merge request 4011). 691 * Make the `requires` attribute of the `spirvcapability` XML tag required 692 when specifying a structure, even if what's required is 693 `"VK_VERSION_1_0"`, to address a problem in the generated table from 694 these tags (internal merge request 4689). 695 696New Extensions: 697 698 * `<<VK_NV_extermal_memory_rdma>>` 699 700----------------------------------------------------- 701 702Change log for June 28, 2021 Vulkan 1.2.183 spec update: 703 704 * Update release number to 183 for this update. 705 706Github Issues: 707 708 * Rewrite and simplify the <<interfaces-iointerfaces-matching, Interface 709 Matching>> section. Clarify that results are undefined if the size of a 710 vector mismatches (public issue 666; internal issues 1269, 2059, 2323). 711 * Remove inappropriate `const` from `void *pNext` members of 712 `returnedonly` structures in `vk.xml` (public issue 1482, internal issue 713 2644). 714 * Add a NOTE to the <<interfaces, Shader Interfaces>> chapter that SPIR-V 715 execution model keywords with extension suffixes will always be present 716 in spec builds, even in a build not supporting any extensions, since 717 these keywords appear in the unified SPIR-V specification without such 718 qualifiers (public issue 1483, internal issue 2621). 719 * Modify `vk.xml` to include the Vulkan platform header via the path 720 `vulkan/vk_platform.h` rather than just `vk_platform.h` 721 (public pull request 1538). 722 * Add length annotations for slink:VkCuLaunchInfoNVX (public issue 1548). 723 * Describe slink:VkSubpassDescription::pname:pDepthStencilAttachment 724 correctly as a pointer to a structure, not a pointer to an array of 725 structures (public issue 1561). 726 * Fix `structextends` attribute of 727 slink:VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, declare its 728 pname:pNext member correctly, and fix some typos in the related 729 extension language (public issue 1565, internal issue 2724). 730 731Internal Issues: 732 733 * Add explicit valid usage statements for 734 flink:vkCmdClearColorImage::slink:VkClearColorValue and 735 slink:VkRenderPassBeginInfo::slink:VkClearValue (internal issue 2490). 736 * Change the term "`vertex processing {shader} stage`" to 737 "`pre-rasterization shader stage`" throughout the specification, link to 738 a single definition, and add "`pre-rasterization`" to the glossary 739 (internal issue 2634). 740 * Add an `<implicitexternsync>` constraint for 741 flink:vkResetCommandBuffers::pname:pool (internal issue 2646). 742 * Fix typo `vkCmdResetEvent` -> `vkResetEvent` in flink:vkResetEvent valid 743 usage statements (internal issue 2651). 744 * Fix wording of scope dependencies for slink:VkMemoryBarrier2KHR, 745 slink:VkBufferMemoryBarrier2KHR, and slink:VkImageMemoryBarrier2KHR 746 members pname:srcAccessMask and pname:dstAccessMask (internal issue 747 2654). 748 * Require support for pname:shaderInt64 in the <<features-requirements, 749 Feature Requirements>> section when pname:atomicInt64 features are 750 supported (internal issue 2660). 751 * Clarify ray tracing valid usage statements for cases where a parameter 752 refers to an acceleration structure that must have been built (internal 753 issue 2715). 754 * Add a NOTE clarifying shader record buffer uniformity in the 755 <<shader-binding-table, Shader Binding Table>> section (internal issue 756 2719). 757 * Minor clarifications and typo fixes to `<<VK_HUAWEI_subpass_shading>>` 758 (internal issue 2722). 759 * Add missing <spirvextension> entry in `vk.xml` to enable 760 `SPV_KHR_subgroup_uniform_control_flow` 761 (internal issue 2733). 762 * Move SPIR-V valid usage statement from the 763 <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> 764 section to <<spirvenv-module-validation-standalone]] Standalone SPIR-V 765 Validation>> (internal merge request 4637). 766 * Add a new <<spirvenv-image-signedness, Signedness of SPIR-V Image 767 Accesses>> section to allow the use of unsigned Sampled Types with 768 code:SignExtend and signed code:Format decorations (internal merge 769 request 4638). 770 * Add missing slink:VkDeviceCreateInfo to `structextends` attribute of 771 slink:VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT (internal merge 772 request 4652). 773 * Remove nonexistent pname:minFragmentSize from the <<limits-minmax, Limit 774 Requirements>> table (internal merge request 4655). 775 * Fix markup typo for `<<VK_NV_fragment_shader_barycentric>>` ifdef 776 (internal merge request 4663). 777 778----------------------------------------------------- 779 780Change log for June 21, 2021 Vulkan 1.2.182 spec update: 781 782 * Update release number to 182 for this update. 783 784Github Issues: 785 786 * Add XML attributes & schema updates to link untyped Vulkan object handle 787 values to corresponding object types (public issue 1536). 788 789Internal Issues: 790 791 * Automatically generate links to extension proposal documents from 792 extension appendices (internal issue 2713). 793 * Clean up wording of flink:vkCmdWriteTimestamp and 794 flink:vkCmdWriteTimestamp2KHR (internal issue 2425). 795 * Fix hpp-compile CI stage after recent changes to Vulkan-Headers 796 repository which generate additional header files. 797 798New Extensions: 799 800 * `<<VK_EXT_acquire_drm_display>>` (public pull request 1529). 801 * `<<VK_EXT_multi_draw>>` 802 * `<<VK_EXT_physical_device_drm>>` (public pull request 1356). 803 * `<<VK_HUAWEI_subpass_shading>>` 804 * `<<VK_NV_ray_tracing_motion_blur>>` 805 806----------------------------------------------------- 807 808Change log for June 14, 2021 Vulkan 1.2.181 spec update: 809 810 * Update release number to 181 for this update. 811 812Github Issues: 813 814 * Add stub slink:VkPipelineLayoutCreateFlagBits <enum> type in `vk.xml` to 815 reduce spurious warnings from XML processing scripts that don't respect 816 the `supported="disabled"` attribute, and update the registry schema 817 documentation to make more clear that `extension` tags with this 818 attribute should not be processed (public issue 1549). 819 820Internal Issues: 821 822 * Clarify implicit conversions between the vertex input attribute 823 description format and the shader vertex attribute input type in the 824 <<fxvertex-attrib-location, Attribute Location and Component 825 Assignment>> and <<fxvertex-input-extraction>> sections (internal issue 826 902). 827 * Add text about the <<interfaces-alignment-requirements, base alignment 828 of empty structures>> (internal issue 2174). 829 * Clarify the use of rasterization order <<primsrast-order, 830 "`operations`">> (internal merge request 4582). 831 * Allow any pipeline barrier command for queue transfers in the 832 <<synchronization-queue-transfers, Queue Family Ownership Transfer>> 833 section (internal merge request 4596). 834 * Remove potentially confusing reference to 835 ename:VK_ERROR_INVALID_SHADER_NV in the description of 836 flink:vkCreateShaderModule (internal merge request 4602). 837 * Improve visibility of instance creation callbacks by migrating some 838 language from the `<<VK_EXT_debug_report>>` and `<<VK_EXT_debug_utils>>` 839 appendix examples to the description of slink:VkInstanceCreateInfo 840 (internal merge request 4614). 841 * Fix markup for sparse image atomic requirements in the 842 <<features-requirements, Feature Requirements>> section and for 843 slink:VkDeviceCreateInfo valid usage statements (internal merge request 844 4618). 845 * Correct the definition of 846 ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT 847 to constrain pname:chromaFilter, not pname:minFilter / pname:magFilter 848 (internal merge request 4623). 849 * Add level 3 headings in <<pipelines-cache, Pipeline Cache>> section 850 (internal merge request 4627). 851 * Clarify flink:vkCmdCopyAccelerationStructureKHR to add details on the 852 copy command itself, as well as the etext:CLONE and etext:COMPACT copy 853 modes (internal merge request 4631). 854 * Remove `<mask>` tags from some SVG images in the provisional video 855 extensions. These tags are not supported by components of the PDF 856 toolchain. Removing them removes many warnings from the PDF build and is 857 a workaround for editing the SVGs to use alternate constructs for the 858 intended purpose, although it also make these images in the HTML output 859 show the same artifacts as the PDF output. 860 861----------------------------------------------------- 862 863Change log for June 7, 2021 Vulkan 1.2.180 spec update: 864 865 * Update release number to 180 for this update. 866 867Github Issues: 868 869 * Add more details about zero shader group handles and draw linkage to 870 etext:VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL* flags (public issue 1487). 871 * Clarify that semaphore operations don't do work in a specific pipeline 872 stage in slink:VkSemaphoreSubmitInfoKHR::pname:stageMask (public issue 873 1501). 874 * Fix markup in shared valid usage statements 03766 / 03767 (public issue 875 1528). 876 877Internal Issues: 878 879 * Grammatical improvements for various ray tracing sections. Add statement 880 that AABB intersections may be false-positives (internal issue 2597). 881 * Disambiguate ASTC HDR block error handling in 882 <<appendix-compressedtex-astc, ASTC Compressed Image Formats>> and the 883 following "`ASTC decode mode`" section (internal issue 2603). 884 * Fix some holes in `<<VK_EXT_vertex_input_dynamic_state>>`, including 885 adding some missing common draw validity statements; an interaction 886 with VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT; an interaction 887 with code:nullDescriptor to flink:vkCmdBindVertexBuffers2EXT; and 888 language to 889 slink:VkGraphicsPipelineCreateInfo::pname:pVertexInputState (internal 890 issue 2637, 2684). 891 * Make elink:VkAccessFlagBits and elink:VkAccessFlagBits2KHR descriptions 892 consistent and reorganize them in matching order (internal issue 2650). 893 * Add slink:VkSpecializationInfo::pname:pMapEntries valid usage 894 statement requiring the pname:constantID values be unique (internal 895 issue 2668). 896 * Clarify <<[[queries-wait-bit-not-set, the cases in which 897 flink:vkGetQueryPoolResults returns VK_NOT_READY>> (internal issue 898 2676). 899 * Add spec language and refpages for API constants. With this change all 900 APIs should be defined in the spec (internal issue 2698). 901 * Move some restrictions in the <<interfaces, Shader Interfaces>> chapter 902 into the <<spirvenv-module-validation-standalone, Standalone SPIR-V 903 Validation>> section (internal merge request 4537). 904 * Add missing member descriptions to slink:VkSurfaceCapabilities2EXT 905 (internal merge request 4544). 906 * Update glossary definition of "`Aspect`" to accomodate copy commands 907 which can operate on multiple aspects (internal merge request 4586). 908 * Add ename:VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHING_EXT 909 enum to provide a standard way to disable caching of shader validation 910 results (internal merge request 4589). 911 * Remove the `pipeline` attribute from `vk.xml`, and the corresponding 912 "`Pipeline Types`" column from the generated command properties tables. 913 The `queues` attribute should be used instead (internal merge request 914 4594). 915 * Fix typos and improve consistency in the provisional video extension 916 language (internal merge request 4598). 917 * Use "`implementation-dependent`" spelling consistently, and update the 918 style guide to match (internal merge request 4611). 919 * Update <<ray-intersection-candidate-determination, ray tracing 920 intersection equation>> for triangles to match other API. This cannot be 921 distinguished in practice (internal vk-gl-cts issue 2846). 922 923New Extensions: 924 925 * `<<VK_KHR_shader_subgroup_uniform_control_flow>>` 926 * `<<VK_EXT_global_priority_query>>` 927 928----------------------------------------------------- 929 930Change log for May 24, 2021 Vulkan 1.2.179 spec update: 931 932 * Update release number to 179 for this update. 933 934Github Issues: 935 936 * Require that the queried 937 slink:VkPhysicalDeviceExternalMemoryHostPropertiesEXT::pname:minImportedHostPointerAlignment 938 is a power of two (public issue 1442). 939 * Fix direction of enum aliasing for fragment shading rate extensions, 940 so NV tokens don't show up in a KHR-only specification build 941 (public issue 1482). 942 * Split the new <<fundamentals-validusage, Valid Usage>> section off from 943 its previous location within the <<fundamentals-errors, Errors>> section 944 (public pull request 1503). 945 * Correct some typos in stage parameter names (public pull request 1507). 946 * Fix minor markup issues (public pull request 1508). 947 * Add missiong `optional` attribute to 948 flink:vkGetPhysicalDeviceVideoFormatPropertiesKHR::pname:pVideoFormatPropertyCount 949 in `vk.xml` (public pull request 1514). 950 * Add additional header dependecies for external code:Std* types in the 951 provisional video extensions (public pull request 1515). 952 * Tagged slink:VkCuModuleCreateInfoNVX::pname:pName as 953 `len="null-terminated"` in `vk.xml` (public issue 1526). 954 * Fix `:anchor-prefix:` markup showing up in spec outputs due to 955 overzealous whitespace removal (public issue 1530). 956 * Protect use of `__cplusplus` macro in a preprocessor test in the headers 957 (public Vulkan-Headers issue 4). 958 959Internal Issues: 960 961 * Rephrase the language describing lifetime of EDID query results for 962 slink:VkDisplayPropertiesKHR to be more precise (internal issue 695). 963 * Clarify descriptor pool size aggregation behavior for 964 slink:VkDescriptorPoolCreateInfo.txt (internal issue 2577). 965 * Make valid usage statements for slink:VkImportMemoryFdInfoKHR and 966 slink:VkMemoryGetFdInfoKHR properly enforce the relationship between 967 pname:fd and pname:handleType (internal issue 2607). 968 * Add missing common, non-indirect shared valid usage statements for 969 flink:vkCmdDispatchBase (internal issue 2625). 970 * Call out precision of pname:subPixelPrecisionBits clearly in the 971 <<vertexpostproc-viewport, Controlling the Viewport>> section (internal 972 issue 2635) 973 * Do not allow code:RayPayloadKHR on any-hit shaders in the 974 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 975 section (internal issue 2640). 976 * Simplify specification language for sname:VkMemoryDedicatedRequirements 977 (internal issue 2661). 978 * Remove `optional="true"` attributes from XML for 979 slink:VkSurfaceCapabilities* members pname:supportedTransforms, 980 pname:supportedCompositeAlpha, and pname:supportedUsageFlags, matching 981 descriptions in the specification (internal issue 2666). 982 * Add a concurrent deferred host operation example to the 983 `<<VK_KHR_deferred_host_operations>>` appendix (internal issue 2677). 984 * Add a NOTE to slink:VkAccelerationStructureCompatibilityKHR encouraging 985 host-cachable memory for host acceleration structure builds (internal 986 issue 2682). 987 * Remove redundant language in basetype:VkSampleMask duplicating valid 988 usage statements for slink:VkGraphicsPipelineCreateInfo (internal issue 989 2624). 990 * Allow `<<VK_EXT_shader_image_atomic_int64>>` to enable the 991 code:shaderImageInt64Atomics SPIR-V feature in `vk.xml` (internal SPIR-V 992 issue 644). 993 * Add valid usage statement to fname:vkCmdWriteTimestamp* for the 994 pname:query index in pname:queryPool (internal merge request 4528). 995 * Add valid usage statements to flink:vkQueueSubmit2KHR for pname:fence 996 (internal merge request 4530). 997 * Add *GlCompute* to the disallowed *Output* storage classes in shared valid 998 usage statement 04644 for ray tracing functionality (internal merge 999 request 4532). 1000 * Remove redundant code:Patch decoration shared valid usage statement 04671 1001 (internal merge request 4530). 1002 * Make the code:sparseImage*Atomics features a superset of the corresponding 1003 code:shaderImage*Atomics features, in the slink:VkDeviceCreateInfo valid 1004 usage statements and the <<features-requirements, Feature Requirements>> 1005 section (internal merge request 4561). 1006 * Add `specialuse="glemulation,d3demulation"` attribute to XML for 1007 `<<VK_EXT_custom_border_color>>` (internal merge request 4564). 1008 * Make array count and pointer-to-array parameter / member descriptions 1009 more consistent (internal merge request 4566). 1010 * Add third-level section headings to the <<memory-device, Device Memory>> 1011 section for clarity (internal merge request 4567). 1012 * Use the terminology "`drawing/dispatching command`" consistently, add it 1013 to the style guide, and remove occasional use of "`record`" or "`perform`" 1014 in refpage summaries of ftext:vkCmd* (internal merge request 4569). 1015 * Use asciidoctor attributes to genericize more instances of header file 1016 names, to enable future variant APIs (internal merge request 4581). 1017 * Fix SVG for some images that render incorrectly in Chrome on MacOS 1018 (internal merge request 4583). 1019 * Move some valid usage statements for 1020 `<<VK_QCOM_render_pass_shader_resolve>>` into 1021 slink:VkGraphicsPipelineCreateInfo, slink:VkRenderPassCreateInfo2, and 1022 the <<spirvenv-module-validation-standalone, Standalone SPIR-V 1023 Validation>> section (internal merge request 4584). 1024 1025----------------------------------------------------- 1026 1027Change log for May 10, 2021 Vulkan 1.2.178 spec update: 1028 1029 * Update release number to 178 for this update. 1030 1031Github Issues: 1032 1033 * Add `optional` attribute to pname:pFragmentShadingRateAttachment member 1034 of slink:VkFragmentShadingRateAttachmentInfoKHR, to match specification 1035 text (public issue 1482). 1036 * Lots of minor markup and phrasing fixes (public issue 1482). 1037 * Additional fixes specific to ray tracing extensions, including a few 1038 duplicate valid usage statements, incorrect descriptions of structure 1039 members, and incorrect SPIR-V opcodes (public issue 1483). 1040 * Fix formatting around "`Special Use`" sections in generated refpages 1041 (public issue 1518). 1042 1043Internal Issues: 1044 1045 * Language cleanup including removing contractions, and some wording in 1046 more egregious violation of the style guide. 1047 * Make parameter handling text in the 1048 <<deferred-host-operations-requesting, Requesting Deferral>> section 1049 consistent with the <<fundamentals>> chapter (internal issue 2018). 1050 * Relax slink:VkCopyDescriptorSet valid usage statements to remove some 1051 constraints on copying descriptors from sets residing in host memory 1052 other kinds of sets (internal issue 2610). 1053 * Clarify the definition of "`intersection`" in the 1054 <<ray-intersection-candidate-determination, Ray Intersection Candidate 1055 Determination>> section (internal issue 2623). 1056 * Allow pname:stride to equal buffer size in 1057 slink:VkStridedDeviceAddressRegionKHR (internal issue 2631). 1058 * Fix the ray tracing shader interface table in the 1059 <<interfaces-raypipeline, Ray Tracing Pipeline Interface>> section 1060 (internal issue 2640). 1061 * Try to use consistently-phrased descriptions of etext:*FlagBits* members 1062 and parameters everywhere (internal issue 2656). 1063 * Replace "`optional pointer`" terminology with "`NULL or a pointer`" (and 1064 similar uses), and update the style guide accordingly (internal issue 1065 2662). 1066 * Modify wording of some pipeline creation valid usage statements to tidy 1067 up cases where certain state isn't required (internal merge request 1068 4496). 1069 * Clarify consistent <<descriptorsets-updates-consecutive, consecutive 1070 binding updates>> (internal merge request 4500). 1071 * Clarify that code:scalarBlockLayout is supported on the 1072 code:ShaderRecordBufferKHR storage class in the 1073 <<interfaces-resources-standard-layout, Standard Buffer Layout>> section 1074 (internal merge request 4525). 1075 * Hide boilerplate Features and Properties text where it incorrectly 1076 appeared outside the descriptions of feature and property structures, 1077 respectively (internal merge request 4541). 1078 * Add missing section headers to the 1079 `<<VK_KHR_zero_initialize_workgroup_memory>> appendix (internal merge 1080 request 4553). 1081 * Add missing `R64ui` and `R64i` entries to the SPIR-V 1082 <<spirvenv-format-type-matching tables, image format matching tables>> 1083 for `<<VK_EXT_shader_image_atomic_int64>>` (internal 1084 Tracker/vk-gl-cts#2885). 1085 1086New Extensions: 1087 1088 * `<<VK_NVX_binary_import>>` (only appendix and XML - no spec language 1089 yet). 1090 1091----------------------------------------------------- 1092 1093Change log for April 26, 2021 Vulkan 1.2.177 spec update: 1094 1095 * Update release number to 177 for this update. 1096 1097Github Issues: 1098 1099 * Add valid usage statement to flink:vkDestroyImage to prevent destruction 1100 of presentable images acquired from flink:vkGetSwapchainImagesKHR 1101 (public Vulkan-ValidationLayers issue 2718). 1102 1103Internal Issues: 1104 1105 * Add proposal template for new feature development (internal issue 2529). 1106 * Remove valid usage statement 03361 from flink:vkCmdBindVertexBuffers2EXT 1107 (internal issue 2600). 1108 * Finish fixing refpage formatting issues for the new video extensions 1109 (internal issue 2611). 1110 * Invert direction of ray space matrix to correct the 1111 <<ray-intersection-candidate-determination, ray/triangle sidedness 1112 test>> (internal merge request 4480). 1113 * Fix capitalization of etext:*_EXTENSION_NAME and etext:*_SPEC_VERSION 1114 tokens for `<<VK_QCOM_render_pass_store_ops>>` (internal merge request 1115 4490). 1116 * Don't generate etext:*_MAX_ENUM tokens for 64-bit flag types. Note that 1117 these tokens are *explicitly* not part of the Vulkan API and are not 1118 included in the Specification, only in generated headers. They are added 1119 to enumerated types to ensure padding to 32 bits, but are completely 1120 pointless for the 64-bit flag types, which are defined as integer 1121 constants rather than enumerants (internal merge request 4493). 1122 * Remove empty VK_ENABLE_BETA_EXTENSION guards from headers when disabling 1123 extensions (internal merge request 4498). 1124 * Reproduce valid usage statement constraining pname:query from 1125 flink:vkCmdBeginQuery to 1126 flink:vkCmdWriteAccelerationStructuresPropertiesKHR (internal merge 1127 request 4520). 1128 1129New Extensions: 1130 1131 * `<<VK_EXT_provoking_vertex>>` 1132 1133----------------------------------------------------- 1134 1135Change log for April 19, 2021 Vulkan 1.2.176 spec update: 1136 1137 * Update release number to 176 for this update. 1138 1139Github Issues: 1140 1141 * Fix many typos (based on public issues 1483 & 1484). 1142 * Fix an error in the definition of dname:VK_NULL_HANDLE which caused a 1143 compilation error with one version of MSVC (public issue 1502). 1144 * Remove duplicate requirement for elink:VkStructureType from 1145 dname:VK_VERSION_1_0 block of `vk.xml` (public merge request 1504). 1146 1147Internal Issues: 1148 1149 * Modify extension metadoc generator to include Contact information in 1150 extension reference pages (internal issue 2611). 1151 * Fix XML consistency checker script to add exceptions to naming patterns 1152 for new extensions (internal merge request 4491). 1153 * Clean up latest revision numbers in some video extension appendices to 1154 be integers, for compatibility with the consistency checker script 1155 (internal merge request 4492). 1156 * Mark slink:VkIndirectCommandsLayoutCreateInfoNV pname:flags member as 1157 `optional` in `vk.xml` (internal merge request 4501). 1158 1159New Extensions: 1160 1161 * `<<VK_EXT_extended_dynamic_state2>>` 1162 1163----------------------------------------------------- 1164 1165Change log for April 13, 2021 Vulkan 1.2.175 spec update: 1166 1167 * Update release number to 175 for this update. 1168 1169Github Issues: 1170 1171 * Specify that fragment shader invocations in the same quad scope are also 1172 in the same primitive scope (public issue 1465). 1173 * Fix an incorrect reference to ename:VK_SHARING_MODE_CONCURRENT to the 1174 correct ename:VK_SHARING_MODE_EXCLUSIVE in the queue transfer wording 1175 for slink:VkBufferMemoryBarrier2KHR (public issue 1479). 1176 * Fix description of <<vertexpostproc-clipping, Primitive Clipping>> 1177 (public issues 1480 and 1481). 1178 1179Internal Issues: 1180 1181 * Use consistent language in describing <<features, feature>> and 1182 <<limits, property (limit)>> queries. In particular, a few structures 1183 were described as being usable to query feature support, but not to set 1184 it. This was incorrect. All feature structures which can appear in the 1185 pname:pNext chain of slink:VkPhysicalDeviceFeatures2 can be used to both 1186 query and set (internal issue 2310). 1187 * Add `limittype` attributes to the XML schema and to `vk.xml` for 1188 structure members which are part of physical device property queries, to 1189 annotate how the resulting properties are interpreted and replace some 1190 manual interpretation of these properties (internal issue 2427). 1191 * Improve slink:VkAttachmentDescription2 wording around the use of 1192 slink:VkAttachmentDescriptionStencilLayout for specifying the stencil 1193 aspect layout (internal issue 2496). 1194 * Split the <<extendingvulkan-coreversions-versionnumbers, major version 1195 field>> of a packed pname:apiVersion value, introducing a new `variant` 1196 field. This field allows identification of APIs based on Vulkan, but not 1197 fully compatible with Vulkan applications. Vulkan is variant 0, making 1198 the change backwards compatible with the previous definition of 1199 pname:apiVersion. This change was introduced to enable variants of the 1200 Vulkan API that Khronos may release in the future, in particular the 1201 in-development Vulkan SC API. It is purely a future-proofing measure and 1202 no near-term further use is planned. To support this split, a set of new 1203 macros is introduced: dname:VK_API_VERSION_VARIANT, 1204 dname:VK_API_VERSION_MAJOR, dname:VK_API_VERSION_MINOR, and 1205 dname:VK_API_VERSION_PATCH (internal issue 2531). 1206 * Clarify that the slink:VkRectLayerKHR members of a 1207 slink:VkPresentRegionKHR structure must not be transformed to align with 1208 the swapchain's pname:pTransform. The presentation engine must do this 1209 transform (internal issue 2571). 1210 * Fix minor issues with exposed asciidoctor markup in spec outputs 1211 (internal issue 2576). 1212 * Tighten up wording around pool entries of mutable descriptor types. for 1213 slink:VkDescriptorPoolCreateInfo (internal issue 2578). 1214 * Expand on wording of code:FPRoundingMode valid usage statement in the 1215 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 1216 section (internal merge request 4298). 1217 * Document interaction with `<<VK_KHR_fragment_shading_rate>>` for 1218 `<<VK_QCOM_render_pass_transform>>` (internal merge request 4221). 1219 * Require compile-time constants be explicitly tagged as unsigned or float 1220 in `vk.xml`. Modify the generator scripts and schema documentation to 1221 require `type` attributes for such constants. This allows generating 1222 headers compliant with MISRA section 10.4 requirements, where needed 1223 (internal merge request 4451). 1224 * Minor editorial fixes (internal merge request 4454). 1225 * Disallow code:*Offset* decorations on storage images 1226 in the <<spirvenv-module-validation-standalone, Standalone SPIR-V 1227 Validation>> section (internal merge request 4465). 1228 * Improve the code: macro used in spec markup to allow imbedded wildcards 1229 separating words and a trailing wildcard (internal merge request 4466). 1230 * Modify `vk.xml` `requires` attributes to reorder definitions of 1231 dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE and dname:VK_NULL_HANDLE. This 1232 prevents a corner case where the app overriding the first macro 1233 explicitly would prevent definition of dname:VK_NULL_HANDLE (internal 1234 merge request 4476). 1235 1236New Extensions: 1237 1238 * `<<VK_EXT_color_write_enable>>` 1239 * `<<VK_EXT_vertex_input_dynamic_state>>` 1240 * `<<VK_EXT_ycbcr_2plane_444_format>>` 1241 * `<<VK_NV_inherited_viewport_scissor>>` 1242 * Vulkan video core & codecs provisional extension package, including 1243 ** `<<VK_KHR_video_queue>>` 1244 ** `<<VK_KHR_video_decode_queue>>` 1245 ** `<<VK_KHR_video_encode_queue>>` 1246 ** `<<VK_EXT_video_decode_h264>>` 1247 ** `<<VK_EXT_video_decode_h265>>` 1248 ** `<<VK_EXT_video_encode_h264>>` 1249 1250----------------------------------------------------- 1251 1252Change log for March 29, 2021 Vulkan 1.2.174 spec update: 1253 1254 * Update release number to 174 for this update. 1255 1256Github Issues: 1257 1258 * Add a common header macro dname:VK_USE_64_BIT_PTR_DEFINES to specify at 1259 compile time whether non-dispatchable handles are declared using a 1260 64-bit pointer type, or a 64-bit unsigned interger type. NOTE: it is 1261 possible that the complex platform-dependent C preprocessor block will 1262 move from vk.xml into the static (non-generated) vk_platform.h header in 1263 the near future (partially addresses public issue 1431, in addition to 1264 internal needs). 1265 * Clarify code:PatchVertices documentation for tessellation shaders 1266 (public pull request 1475). 1267 1268Internal Issues: 1269 1270 * Add valid usage statements restricting bitfield operations to 32-bit 1271 types in the <<spirvenv-module-validation-standalone, Standalone SPIR-V 1272 Validation>> section (internal issue 2561). 1273 * Update registry documentation to require providing the `type` attribute 1274 of `enum` tags when they are specifying compile-time constants, and 1275 change the accepted values of the attribute to a small set of C scalar 1276 type names, instead of schema-specific names. The XML schema itself 1277 would ideally be updated to match, but we don't know how to do that yet 1278 (internal issue 2564). NOTE: it is possible this will affect downstream 1279 consumers of `vk.xml`, although we consider this unlikely. 1280 * Document in the style guide that bits reserved in corresponding 32- and 1281 64-bit bitmasks should be reserved in both types (internal merge issue 1282 2565). 1283 * Add output generator options to generate MISRA-friendly headers, and 1284 check generator scripts to avoid generating etext:RESERVED 64-bit 1285 bitflag names specified by `disabled` extensions in `vk.xml` (internal 1286 merge request 4239, internal issue 2572). 1287 * Clarify that compressed copies need to round up division in the 1288 computation `rowLength` and `imageHeight` in the sample code for the 1289 <<copies-buffers-images-addressing, Buffer and Image Addressing>> 1290 section (internal merge request 4439). 1291 1292----------------------------------------------------- 1293 1294Change log for March 21, 2021 Vulkan 1.2.173 spec update: 1295 1296 * Update release number to 173 for this update. 1297 1298Github Issues: 1299 1300 * Fix valid usage statement for flink:vkCmdBeginQueryIndexedEXT to allow 1301 multiple active queries of the same type, as long as their index values 1302 are different (public issue 1357). 1303 * Fix tagging for slink:VkPhysicalDeviceVulkan11Features in `vk.xml` 1304 (public issue 1437). 1305 * Update the <<WSI Swapchain>> chapter's use of "`release`" and 1306 "`present`" terminology (public pull request 1470). 1307 * Migrate from Azure Pipelines to Github Actions for CI, and use updated 1308 Khronos Docker image to build (public pull request 1473). 1309 1310Internal Issues: 1311 1312 * Document requirements for extension <<extensions-feature-structures, 1313 Feature Structures>> (internal issue 2503). 1314 * Add missing valid usage statements for slink:VkAttachmentReference2 and 1315 separate depth/stencil layouts (internal issue 2509). 1316 * Clarify interactions between `<<VK_EXT_buffer_device_address>>` and 1317 Vulkan 1.2 in slink:VkDeviceCreateInfo valid usage (internal issue 1318 2530). 1319 * Allow variation in number of acceleration structure handles following a 1320 top-level acceleration structures for 1321 flink:vkCmdCopyAccelerationStructureToMemoryKHR (internal issue 2538). 1322 * Specify implementation requirement for device timestamps in the 1323 description of elink:VkTimeDomainEXT (internal issue 2551). 1324 * Update valid usage ID assignment and extraction scripts to handle IDs 1325 containing function pointer names (internal issue 2557). 1326 * Move some runtime restrictions to 1327 <<spirvenv-module-validation-standalone Standalone SPIR-V>> valid usage 1328 statements (internal merge request 4286). 1329 * Use new version of the HTML asciidoctor-chunker, which runs much faster, 1330 and a new Docker image which omits the old implementation of the chunker 1331 (internal merge request 4391). 1332 * Fix <<devsandqueues-devices, logical device creation language>> for 1333 Vulkan 1.1 (internal merge request 4405). 1334 * Modify scripts to enable platform extensions to be filtered by the 1335 `"supported"` attribute in `vk.xml` (internal merge request 4411). 1336 * Add common valid usage statement for draw/dispatch commands on format 1337 support for mip filters (internal merge request 4413). 1338 * Fix valid usage statement extractor (vu-to-json) to add padding after 1339 inserted list items, so they don't absorb other markup that might come 1340 after in the document (internal merge request 4423). 1341 * Disallow shadow lookups on 3D images in the 1342 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 1343 section. This is not supported on all hardware, and should not have been 1344 allowed (internal merge request 4424). 1345 1346New Extensions: 1347 1348 * `<<VK_FUCHSIA_external_memory>>` 1349 * `<<VK_FUCHSIA_external_semaphore>>` 1350 1351----------------------------------------------------- 1352 1353Change log for March 8, 2021 Vulkan 1.2.172 spec update: 1354 1355 * Update release number to 172 for this update. 1356 1357Internal Issues: 1358 1359 * Remove asciidoctor conditional markup for extensions from 1360 <<spirvenv-module-validation-standalone, Standalone SPIR-V valid usage 1361 statements>>, and add a note to this effect for future additions 1362 (internal issue 2512). 1363 * Update the descriptions (and related validation rules) of 1364 code:uniformAndStorageBuffer8BitAccess and 1365 code:uniformAndStorageBuffer16BitAccess to only refer to the 1366 code:Uniform storage class; and update the 16-bit storage feature 1367 validation rules to refer to 16-bit floating-point, similarly to the 1368 feature descriptions. These changes are in the 1369 <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> 1370 <<features-requirements, Feature Requirements>> sections (internal issue 1371 2535). 1372 * Ban recursion in tlink:PFN_vkDebugUtilsMessengerCallbackEXT callbacks, 1373 for consistency of `<<VK_EXT_debug_utils_callbacks>>` with 1374 `<<VK_EXT_device_memory_report>>` and the rules for 1375 slink:VkAllocationCallbacks (internal issue 2537). 1376 * Remove dependency on `<<VK_KHR_create_renderpass2>>` from `vk.xml` for 1377 `<<VK_KHR_synchronization2>>` (internal issue 2539). 1378 * Add the transform feedback pipeline stage as valid for 1379 ename:VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT access (internal 1380 merge request 4355). 1381 * Fix typo in `<<VK_EXT_debug_utils>>` examples (internal merge request 1382 4395). 1383 * Fix typo to refer to "`buffer view`" rather than "`image view`" in the 1384 valid usage statements for code:OpImageWrite (internal merge request 1385 4398). 1386 * Fix typo in the mandatory features section related to 1387 `<<VK_KHR_ray_tracing_pipeline>>` (internal merge request 4406). 1388 1389----------------------------------------------------- 1390 1391Change log for March 1, 2021 Vulkan 1.2.171 spec update: 1392 1393 * Update release number to 171 for this update. 1394 1395Github Issues: 1396 1397 * Use `strictly increasing` rather than `monotonically increasing` in the 1398 definition of <<glossary, timeline semaphores>> (public issue 1424). 1399 * Add missing raytracing pipeline creation information from 1400 `<<VK_KHR_pipeline_executable_properties>>` to 1401 flink:vkGetPipelineExecutableStatisticsKHR and 1402 flink:vkGetPipelineExecutableInternalRepresentationsKHR valid usage 1403 statements (public issue 1433). 1404 * Add missing `SPV_EXT_shader_atomic_float` to `vk.xml` (public issue 1405 1447). 1406 * Fix ename:VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL to 1407 ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT in synchronization 1408 valid usage statement 03938 (public issue 1458). 1409 * Correct the <<interfaces-resources-setandbinding, DescriptorSet and 1410 Binding Assignment>> "`noteworthy example`" to refer to code:OpTypeImage 1411 code:Samplerd=1, not code:OpTypeSampler code:Sampled=1 (public pull 1412 request 1459). 1413 * Clarify that the value of slink:VkViewport::pname:minDepth is not 1414 restricted relative to pname:maxDepth (Vulkan-Headers public issue 180). 1415 * Add valid usage statement to <<spirvenv-module-validation-standalone, 1416 Standalone SPIR-V Validation>> specifying that push constant array 1417 members must only be accessed with dynamically uniform indices 1418 (SPIRV-Tools public issue 2909) 1419 * Add valid usage statement to <<spirvenv-module-validation-standalone, 1420 Standalone SPIR-V Validation>> specifying when the code:Flat decoration 1421 must be used (SPIRV-Tools public issue 3154) 1422 1423Internal Issues: 1424 1425 * Specifiy the maximum allowed pname:depthBias unit for 1426 flink:vkCmdSetDepthBias (internal issue 2455). 1427 * Add `"protect"` attribute to provisional extension enumerants, and emit 1428 them with that symbol for runtime conditional inclusion from 1429 `vulkan_core.h`. Update description of ename:VK_ENABLE_BETA_EXTENSIONS 1430 to match (internal issue 2481). 1431 * Add valid usage statement to slink:VkImageViewCreateInfo to ban 3D image 1432 views when the ename:VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT is 1433 set (internal issue 2501). 1434 * Add explicit language for the zero hit group intersection shader to the 1435 <<ray-intersection-confirmation, Ray Intersection Confirmation>> section 1436 (internal issue 2505). 1437 * Add a new <<raytraversal-ray-intersection-candidate-diagram, basic ray 1438 diagram>> (internal issue 2518). 1439 * Clarify that acceptable fragment shading rates are less than *or equal* 1440 to, not just less than, in the description of the 1441 <<primsrast-fragment-shading-rate-combining final combined shading 1442 rate>> (internal issue 2524) 1443 * Refer to correct barycentric coordinates for 1444 <<ray-intersection-candidate-determination, triangle intersection 1445 coordinates>> (internal issue 2525). 1446 * Add valid usage statements to drawing commands to match 1447 pname:rasterizationSamples in the pipeline state and the current 1448 attachments (internal merge request 4332). 1449 * Make use of ename:VK_WHOLE_SIZE consistent with sized flush in valid 1450 usage statement for slink:VkMappedMemoryRange (internal merge request 1451 4373). 1452 * Fix asciidoctor ifdef markup around 1453 ename:VK_MEMORY_HEAP_MULTI_INSTANCE_BIT (internal merge request 4383). 1454 * Move improperly placed valid usage statements from 1455 slink:VkImageViewCreateInfo to slink:VkImageCreateInfo (internal merge 1456 request 4390). 1457 * Add valid usage statements to <<spirvenv-module-validation-standalone, 1458 Standalone SPIR-V Validation>> for pname:minTexelGatherOffset and 1459 pname:minTexelGatherOffset. 1460 * Make <<spirvenv-module-validation-standalone, Standalone SPIR-V 1461 Validation>> valid usage statement 04681 unconditional, rather than 1462 having two versions when a relevant Vulkan extension is or is not 1463 enabled, since this is *standalone* validation. 1464 1465New Extensions 1466 1467 * `<<VK_QNX_screen_surface>>` (public pull request 1449). 1468 1469----------------------------------------------------- 1470 1471Change log for February 15, 2021 Vulkan 1.2.170 spec update: 1472 1473 * Update release number to 170 for this update. 1474 1475Internal Issues: 1476 1477 * Add missing language for zero hit groups to the <<shader-binding-table, 1478 Shader Binding Table>> section and related valid usage statements 1479 (internal issue 2505). 1480 1481New Extensions: 1482 1483 * `<<VK_KHR_synchronization2>>` 1484 1485----------------------------------------------------- 1486 1487Change log for February 2, 2021 Vulkan 1.2.169 spec update: 1488 1489 * Update release number to 169 for this update. 1490 1491Github Issues: 1492 1493 * Fix typos in language in the <<vertexpostproc-renderpass-transform, 1494 Render Pass Transform>> section (public issue 1406). 1495 * Fix case of etext:EXTENSION_NAME and etext:SPEC_VERSION enums in 1496 `vk.xml` for the `<<VK_QCOM_rotated_copy>>` extension (public issue 1497 1427). 1498 * Fix equations in the <<ray-intersection-candidate-determination, Ray 1499 Intersection Candidate Determination>> section (public issue 1427). 1500 * Modify examples in the `<<VK_EXT_debug_utils>>` appendix to use 1501 flink:vkGetInstanceProcAddr (public issue 1432). 1502 * Various typo fixes (public pull request 1434). 1503 1504Internal Issues: 1505 1506 * Add missing query types to the the introduction of the <<queries>> 1507 chapter (internal issue 2488). 1508 * Tag use of union types in `vk.xml` as `noautovalidity`, since we don't 1509 generate meaningful valid usage statements or validation layer code at 1510 present. This removes a few nonsensical, and unimplemented valid usage 1511 statements of form 'ptext:param must: be a valid stext:VkUnionType union 1512 (internal issue 2490). 1513 * Flatten inline lists in valid usage statements in the 1514 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 1515 section so the VU extraction script can process them properly (internal 1516 issue 2502). 1517 * Move some common copy buffer / copy image valid usage statements to 1518 `copy_bufferimage_to_imagebuffer_common.txt` so they can be shared 1519 (internal merge request 4344). 1520 * Update copyright dates to 2021 (internal merge request 4345), 1521 * Fix typos in asciidoctor conditional markup in the 1522 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 1523 section (internal issue 4349). 1524 * Fix typos in SPIR-V capability names 1525 code:WorkgroupMemoryExplicitLayout8BitAccessKHR and 1526 code:WorkgroupMemoryExplicitLayout16BitAccessKHR (internal merge request 1527 4359). 1528 * Fix typo in description of 1529 slink:VkCoarseSampleLocationNV::pname:pSampleLocations (internal merge 1530 request 4365). 1531 1532 1533----------------------------------------------------- 1534 1535Change log for January 25, 2021 Vulkan 1.2.168 spec update: 1536 1537 * Update release number to 168 for this update. 1538 1539Internal Issues: 1540 1541 * Change slink:VkAccelerationStructureNV resource classification to 1542 non-linear, and slink:VkAccelerationStructureKHR is neither linear nor 1543 non-linear. This affects the memory classification for purposes of 1544 <<resources-bufferimagegranularity,bufferImageGranularity>> (internal 1545 issue 2289). 1546 * Specify which storage classes are affected by code:scalarBlockLayout in 1547 the <<interfaces-resources-standard-layout, Standard Buffer Layout>> 1548 section (internal merge request 4280). 1549 * Flatten valid usage statements in the 1550 <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> 1551 section so they are correctly processed by the VU extractor script 1552 (internal merge request 4285). 1553 1554New Extensions: 1555 1556 * `<<VK_KHR_workgroup_memory_explicit_layout>>` 1557 * `<<VK_KHR_zero_initialize_workgroup_memory>>` 1558 1559----------------------------------------------------- 1560 1561Change log for January 19, 2021 Vulkan 1.2.167 spec update: 1562 1563 * Update release number to 167 for this update. 1564 1565Github Issues: 1566 1567 * Clarify valid usage statements for slink:VkGraphicsPipelineCreateInfo 1568 interaction with potential format features (public issue 1392). 1569 * Use default PDF theme with a local fallback font, to provide 1570 floor/ceiling symbols (public issue 1400). 1571 * Fix valid usage statements to clarify that 1572 flink:vkCmdWriteAccelerationStructuresPropertiesNV only accepts 1573 ename:VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV (public 1574 Vulkan-ValidationLayers issue 2448). 1575 * Add missing `SPV_KHR_multiview` SPIR-V extension to `vk.xml` (public 1576 Vulkan-ValidationLayers issue 2456). 1577 1578Internal Issues: 1579 1580 * Move Acceleration Structure chapter before Ray Traversal and Ray Tracing 1581 chapters and reorganize asciidoctor source markup, including inlining 1582 ray tracing sub-chapters (internal issue 2249). 1583 * Clarify the definition of the `optional='true'` XML attribute to allow 1584 its use with scalar types, and use it consistently in the specification 1585 and XML; this removes a few uses of the attribute and simplifies some 1586 valid usage statements (internal issue 2435). 1587 * Clarify that it is not valid to create an image view using a format that 1588 requires YCbCr conversion without passing a 1589 slink:VkSamplerYcbcrConversion in valid usage for 1590 slink:VkImageViewCreateInfo (internal issue 2458). 1591 * Clarify that pipeline flags do not cause the corresponding flags to 1592 appear in code:IncomingRayFlagsKHR variables (internal issue 2470). 1593 * Require that pname:supportedAlpha is never zero in text and valid usage 1594 statements for slink:VkDisplayPlaneCapabilitiesKHR and 1595 slink:VkDisplaySurfaceCreateInfoKHR (internal issue 2471). 1596 * Clarify that Dref values are supposed to be clamped for fixed-point 1597 accesses in the <<textures-depth-compare-operation, Depth Compare 1598 Operation>> section (internal issue 2474). 1599 * Fix typo for a destination stage in an issue in the 1600 `<<VK_EXT_transform_feedback>>` extension appendix (internal issue 1601 2477). 1602 * Restrict code:OpImageQueryLod, code:OpImageQuerySizeLod, and 1603 code:OpImageQueryLevels to require a sampler (not storage image) in the 1604 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 1605 section (internal issue 2478). 1606 * Allow 1607 flink:vkGetAccelerationStructureBuildSizesKHR::pname:pMaxPrimitiveCounts 1608 to be zero by setting the `optional` attribute in the XML (internal 1609 issue 2480). 1610 * Update description of 1611 slink:VkDeviceMemoryReportCallbackDataEXT::pname:objectType for 1612 consistency with description of other parameters (internal issue 2485). 1613 * Add a valid usage statement to slink:VkRayTracingPipelineCreateInfoKHR 1614 requiring that all linked pipelines have the same set of flags specified 1615 from the etext:VK_PIPELINE_CREATE_RAY_TRACING_* bits (internal issue 1616 2489). 1617 * Add valid usage statements to flink:vkCmdBeginQuery / 1618 flink:vkCmdBeginQueryIndexedEXT to disallow use with pools created with 1619 ename:VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR / 1620 ename:VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR types 1621 (internal issue 2493). 1622 * Fix normative language for valid usage statements in the <<spirvenv, 1623 Vulkan Environment for SPIR-V>> appendix (internal merge request 4265). 1624 * Remove a few cases where `_KHR` suffixes were left on promoted 1625 extensions in valid usage statements (internal merge request 4293) 1626 * Update and futureproof a previously hardwired reference to Vulkan 1.1 in 1627 the <<introduction-conventions, Document Conventions>> section (internal 1628 merge request 4295). 1629 * Add code:PhysicalStorageBuffer as a valid atomic storage class in the 1630 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 1631 section (internal merge request 4296). 1632 * Clean up phrasing of valid usage statements in the 1633 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 1634 section (internal merge request 4297). 1635 * Add shared valid usage statement for buffer copy commands requiring 1636 pname:bufferRowLength to fit in a signed 32-bit integer (internal merge 1637 request 4302). 1638 * Add dname:VK_NO_STDDEF_H to allow apps to prevent including 1639 `<stddef.h>`, and document it in the <<boilerplate, API Boilerplate>> 1640 appendix (internal merge request 4312). 1641 * Fix typo `SkipTrianglesKHR` -> `SkipAABBsKHR` in the 1642 <<ray-traversal-culling-primitive, Ray Primitive Culling>> section 1643 (internal merge request 4315). 1644 1645----------------------------------------------------- 1646 1647Change log for January 4, 2021 Vulkan 1.2.166 spec update: 1648 1649 * Update release number to 166 for this update. 1650 1651Github Issues: 1652 1653 * Add an Issue to the appendix for `<<VK_EXT_debug_report>>` discussing 1654 how to compare handles returned by the debug report callback to 1655 application handles (public issue 368). 1656 * Specify the purpose of ename:VK_LOD_CLAMP_NONE in the description of 1657 slink:VkSamplerCreateInfo::pname:maxLod (public issue 663). 1658 * Clarify in the <<extendingvulkan-extensions-extensiondependencies, 1659 Extension Dependencies>> section that extensions may depend on both 1660 other extensions, and specific core API versions. Together with previous 1661 changes to this section, this should close out the original issue 1662 (public issue 865). 1663 1664Internal Issues: 1665 1666 * Add descriptions of image queries to the <<textures, Image Operations 1667 Overview>> and <<textures-queries, Image Query Instructions>> sections 1668 (internal issues 2416 and 2423). 1669 * Allow axis swapping to be carried through clamping in the 1670 <<primsrast-fragment-shading-rate-combining, Combining the Fragment 1671 Shading Rates>> section (internal issue 2420). 1672 * Move even-size requirements for planar formats to valid usage statements 1673 for slink:VkImageCreateInfo and slink:VkImageViewCreateInfo, and tweak 1674 descriptions of <<formats-definition, the corresponding formats>> 1675 accordingly (internal issue 2434). 1676 * Remove asciidoctor conditional macros from markup for 1677 slink:VkSamplerCreateInfo valid usage statement 01079 (internal issue 1678 2440). 1679 * Clarify behavior of the <<features-alphaToOne, pname:alphaToOne>> 1680 feature by linking the enable to the corresponding <<fragops-covg, 1681 Multisample Coverage>> fragment operation language, and specifying in 1682 the introduction to the <<fragops, Fragment Operations>> chapter that 1683 "`replacing`" a fragment shader output occurs whether or not the shader 1684 actually wrote that output (internal issue 2448). 1685 * Modify XML for 1686 slink:VkPipelineViewportShadingRateImageStateCreateInfoNV::pname:viewportCount 1687 to allow pname:viewportCount == 0 (internal issue 2449). 1688 * Remove "`built as`" requirement from valid usage statement 03579 for 1689 slink:VkWriteDescriptorSetAccelerationStructureKHR (internal issue 1690 2466). 1691 * Remove incorrect valid usage statement 03655 for 1692 slink:VkAccelerationStructureGeometryTrianglesDataKHR (internal issue 1693 2467). 1694 * Add location limits for mesh shaders to the 1695 <<interfaces-iointerfaces-limits, Shader Input and Output Locations>> 1696 table (internal merge request 3428). 1697 1698----------------------------------------------------- 1699 1700Change log for December 14, 2020 Vulkan 1.2.165 spec update: 1701 1702 * Update release number to 165 for this update. 1703 1704Github Issues: 1705 1706 * Fix interaction between imageless framebuffers and 1707 slink:VkImageViewUsageCreateInfo for slink:VkRenderPassBeginInfo, 1708 elink:VkImageUsageFlagBits, and in the 1709 <<resources-image-inherited-usage>> section (public issue 1391). 1710 * Fix `vk.xml` `optional` / `noautovalidity` attributes and corresponding 1711 explicit valid usage statements for 1712 slink:VkBuildAccelerationStructureModeKHR (public issue 1405). 1713 * Remove redundant / incomplete handle comments from `vk.xml` for 1714 elink:VkObjectType enumerants (public merge request 1412). 1715 1716Internal Issues: 1717 1718 * Create valid usage statements from constraints in the 1719 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 1720 section (internal issue 2394). 1721 * Fix valid usage staement 01256 for slink:VkDisplaySurfaceCreateInfoKHR 1722 (internal issue 2404). 1723 * Expand and clarify the event race condition warning for 1724 flink:vkCmdWaitEvents to include two additional scenarios in which the 1725 effect and/or state of an event becomes undefined without additional 1726 synchronization operations (internal issue 2411). 1727 * Update valid usage statement for flink:vkSetLocalDimmingAMD (internal 1728 issue 2446). 1729 * Recast slink:VkStridedDeviceAddressRegionKHR valid usage statements in 1730 terms of size being non-zero, instead of pname:deviceAddress (internal 1731 issue 2450). 1732 * Add missing ename:VK_SHARING_MODE_CONCURRENT valid usage statement for 1733 flink:vkQueueSubmit (internal merge request 4244). 1734 * Add limits related to local size to the 1735 <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> 1736 section (internal merge request 4255). 1737 * Fix typo in description of 1738 slink:VkDescriptorUpdateTemplateEntry::pname:dstArrayElement (internal 1739 merge request 4260). 1740 * Remove repeated "`all`" from slink:VkGraphicsPipelineCreateInfo valid 1741 usage statements (internal merge request 4266). 1742 * Fix internal xrefs to the SPIR-V capabilities tables, which broke as a 1743 side effect of generating the table instead of handcoding it (internal 1744 merge request 4270). 1745 * Fix normative language for code:WorkgroupSize (internal merge request 1746 4272). 1747 * Restore `len` attribute to `vk.xml` after its recent accidental removal 1748 from slink:VkDescriptorSetAllocateInfo::pname:pSetLayouts (internal 1749 merge request 4275). 1750 * Remove trailing periods from SPIR-V valid usage statements (internal 1751 merge request 4284). 1752 * Base PDF theme on builtin fallback theme, simplifying it and adding 1753 support for some math characters not found in the default theme 1754 (internal merge request 4287). 1755 1756----------------------------------------------------- 1757 1758Change log for December 7, 2020 Vulkan 1.2.164 spec update: 1759 1760 * Update release number to 164 for this update. 1761 1762Github Issues: 1763 1764 * Reserve vendor ID for PoCL (public pull request 1411). 1765 1766Internal Issues: 1767 1768 * Add valid usage statements to ray tracing commands requiring they be 1769 given a ray tracing pipeline, and removing support for 1770 ename:ACCELERATION_STRUCTURE_TYPE_GENERIC in 1771 flink:vkCmdBuildAccelerationStructureNV (internal issue 2271). 1772 * Add valid usage statements disallowing the use of protected command 1773 buffers with Ray Tracing Pipelines and Ray Query instructions (internal 1774 issue 2409). 1775 * Move the un-numbered glossary / abbreviations / prefixes pseudo-chapters 1776 into a single appendix, so the table of contents looks cleaner (internal 1777 issue 2437). 1778 * Remove redundant valid usage statement from 1779 slink:VkCommandBufferAllocateInfo (internal merge request 4229). 1780 * Add missing <<features-inlineUniformBlock>> valid usage statement to 1781 slink:VkDescriptorSetLayoutBinding (internal merge request 4246). 1782 * Tweak example of Docker image invocation in `BUILD.adoc` (internal merge 1783 request 4249). 1784 * Capitalize code:LaunchIdKHR the same as in SPIR-V. code:LaunchSizeKHR 1785 and code:LaunchIdKHR are accessible in the code:CallableKHR shader stage 1786 (internal merge request 4252). 1787 * Remove unreachable (redundant) valid usage statements from 1788 flink:vkCmdBeginRenderPass and flink:vkCmdBeginRenderPass2 (internal 1789 merge request 4254). 1790 * Add missing `objtypeenum` attribute to `vk.xml` for slink:VkInstance 1791 (internal merge request 4263). 1792 * Change the chunked HTML target to use a more robust method of inserting 1793 additional Javascript and HTML to support the searchbox. 1794 1795New Extensions: 1796 1797 * `<<VK_NV_acquire_winrt_display>>` 1798 * `<<VK_VALVE_mutable_descriptor_type>>` 1799 1800----------------------------------------------------- 1801 1802Change log for November 30, 2020 Vulkan 1.2.163 spec update: 1803 1804 * Update release number to 163 for this update. 1805 1806Github Issues: 1807 1808 * Add XML mapping between VK_OBJECT_TYPE_* names and object type names 1809 (public issue 1379). 1810 * Remove *_READ_BIT from .srcAccessMask in code samples (public issue 1811 1389). 1812 * Fix example code for slink:VkPushConstantRange to take 1813 elink:VkShaderStageFlags, not elink:VkPipelineStageFlags (public pull 1814 request 1393). 1815 * Add missing :refpage: attribute to slink:VkBlitImageInfo2KHR (public 1816 issue 1407). 1817 * Remove extraneous newline from texel block size table (public issue 1818 1409). 1819 1820Internal Issues: 1821 1822 * Update style guide to require `optional="true"` be set on pname:pNext 1823 structure members (internal issue 2428). 1824 * Sort conditionals in ifdef:: output of spirvcapgenerator for stability 1825 (internal issue 2430). 1826 * Fix slink:VkGraphicsPipelineShaderGroupsCreateInfoNV VU 02886 1827 (internal merge request 4225). 1828 1829 1830----------------------------------------------------- 1831 1832Change log for November 23, 2020 Vulkan 1.2.162 spec update: 1833 1834 * Update release number to 162 for this update. 1835 1836Github Issues: 1837 1838 * Mark pname:pNext pointers as `optional="true"` in `vk.xml` (public pull 1839 request 1396). 1840 * Make a formerly implicit slink:VkSubpassDescriptionDepthStencilResolve 1841 valid usage statement explicit (public Vulkan-ValidationLayers issue 1842 2311). 1843 1844Internal Issues: 1845 1846 * Clarify lifetime of push constants in the flink:vkCmdPushConstants 1847 description (internal issue 2168). 1848 * Clarify that flink:vkGetDeviceProcAddr is not intended to return 1849 physical device-level commands (internal issue 2344). 1850 * Tweak CI test for SPEC_VERSION to always succeed when the branch name 1851 exists, but the extension is disabled (internal merge request 4219). 1852 1853New Extensions: 1854 1855 * Add final (non-provisional) versions of the Vulkan Ray Tracing 1856 extensions (internal merge request 4143): 1857 ** `<<VK_KHR_acceleration_structure>>` 1858 ** `<<VK_KHR_ray_tracing_pipeline>>` 1859 ** `<<VK_KHR_ray_query>>` 1860 ** `<<VK_KHR_pipeline_library>>` 1861 ** `<<VK_KHR_deferred_host_operations>>` 1862 1863----------------------------------------------------- 1864 1865Change log for November 16, 2020 Vulkan 1.2.161 spec update: 1866 1867 * Update release number to 161 for this update. 1868 1869Github Issues: 1870 1871 * Add some missing types to the table of handle type <-> 1872 etext:VK_OBJECT_TYPE_* enums in the debugging chapter (in response to a 1873 comment on public issue 1379). 1874 1875Internal Issues: 1876 1877 * Move copyright statement into its own "`Preamble`" chapter to simplify 1878 preprocessing for chunked HTML target and make PDF / single-page HTML 1879 consistent with the chunked output (internal issue 2384). 1880 * Clarify that slink:VkExternalMemoryBufferCreateInfo::pname:handleTypes 1881 and slink:VkExternalMemoryImageCreateInfo::pname:handleTypes can be 1882 zero, and fix missing `optional` attribute in `vk.xml` for the latter 1883 case (internal issue 2388). 1884 * Make `specialuse` attributes in source markup expand properly in 1885 extension refpages (internal issue 2412). 1886 * Remove as yet unused slink:VkSemaphoreCreateFlagBits type from `vk.xml` 1887 (internal issue 2413). 1888 * Remove unreachable valid usage statements for 1889 slink:VkRenderPassMultiviewCreateInfo::pname:pViewMask in the 1890 slink:VkRenderPassCreateInfo pname:pNext chain, and for 1891 slink:VkRenderPassCreateInfo2::pname:viewMask. These statements cannot 1892 ever be violated given that view masks cannot exceed index 31 and 1893 pname:maxFramebufferLayers exceeds this value (internal merge request 1894 4204). 1895 * Only allow forward pointers for physical storage buffers in the 1896 <<spirvenv-module-validation>> section (internal merge request 4206). 1897 * Fix a variety of minor valid usage statement issues with the 1898 `<<VK_KHR_fragment_shading_rate>>` extension (internal merge request 1899 4207). 1900 1901----------------------------------------------------- 1902 1903Change log for November 9, 2020 Vulkan 1.2.160 spec update: 1904 1905 * Update release number to 160 for this update. 1906 1907Github Issues: 1908 1909 * Remove redundant input attachment valid usage statements from 1910 slink:VkAttachmentReference2 (public issue 1378). 1911 1912Internal Issues: 1913 1914 * Restore "`Preamble`" section containing the copyright statement to the 1915 proper place in the chunked specification index (internal issue 2384). 1916 * Add missing valid usage statements for 1917 flink:vkCmdDrawIndirectByteCountEXT (internal issue 2400). 1918 * Move vertex input example from the <<fxvertex>> chapter to the Vulkan 1919 Guide (internal merge request 4162). 1920 * Clarify update-after-bind limits for dynamic buffers in the 1921 <<limits-maxDescriptorSetUpdateAfterBindUniformBuffersDynamic>> and 1922 <<limits-maxDescriptorSetUpdateAfterBindStorageBuffersDynamic>> sections 1923 (internal merge request 4186). 1924 * Clarify slink:VkFramebufferCreateInfo to allow read-only use of depth 1925 images as attachments and non-attachments (internal merge request 4191). 1926 * Remove redundant valid usage statement from slink:VkWriteDescriptorSet 1927 (internal merge request 4196). 1928 * Remove redundant valid usage statement from flink:vkFreeDescriptorSets 1929 (internal merge request 4198). 1930 * Fix typo in slink:VkDisplaySurfaceCreateInfoKHR valid usage statement 1931 (internal merge request 4199). 1932 * Remove redundant pname:firstViewport / pname:firstScissor limit checks 1933 in valid usage statements for flink:vkCmdSetViewportWScalingNV, 1934 flink:vkCmdSetScissor, flink:vkCmdSetExclusiveScissorNV, 1935 flink:vkCmdSetViewportShadingRatePaletteNV, and flink:vkCmdSetViewport 1936 (internal merge request 4200). 1937 1938New Extensions: 1939 1940 * `<<VK_NV_fragment_shading_rate_enums>>` 1941 1942----------------------------------------------------- 1943 1944Change log for November 1, 2020 Vulkan 1.2.159 spec update: 1945 1946 * Update release number to 159 for this update. 1947 1948Github Issues: 1949 1950 * Clarify handle uniqueness with private data in the 1951 <<fundamentals-objectmodel-overview, Object Model>> section (public 1952 issue 1349). 1953 * Make ename:VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR 1954 an alias of 1955 ename:VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR 1956 and ename:VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR 1957 an alias of 1958 ename:VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR, 1959 for backwards compatibility while complying with naming conventions 1960 (public issue 1367). 1961 * Make ename:VK_SURFACE_COUNTER_VBLANK_EXT an alias of 1962 ename:VK_SURFACE_COUNTER_VBLANK_BIT_EXT for backwards compatibility 1963 while complying with naming conventions (public issue 1368). 1964 * Add a note to the <<memory-model-synchronizes-with, Synchronizes-With>> 1965 section that fragment shader interlock instructions don't perform 1966 implicit availability or visibility operations (public issue 1383). 1967 1968Internal Issues: 1969 1970 * Dynamically generate SPIR-V <<spirvenv-capabilities-table, 1971 Capabilities>> and <<spirvenv-extensions-table, Extensions>> tables from 1972 new tags in `vk.xml`, exposing this information for other projects 1973 downstream (internal issue 2156). 1974 * Clarify when a <<renderpass-feedbackloop, feedback loop>> creates a data 1975 race (internal issue 2296). 1976 * Remove un-needed `noautovalidity` attributes on pname:pNext structure 1977 members, including a few cases where they were actually suppressing 1978 appropriate autogenerated validity statements (internal issue 2335; 1979 similar purpose to closed public PR 1339). 1980 * Clarify treatment of most-negative signed normalized fixed-point values 1981 in the <<fundamentals-fixedfpconv, Conversion from Normalized 1982 Fixed-Point to Floating-Point>> section (internal issue 2367). 1983 * Clarify that enabling an extension cannot change existing implementation 1984 behavior in the introduction to the <<extendingvulkan-extensions, 1985 Extensions>> chapter (internal issue 2375). 1986 * Add missing valid usage statement to flink:vkCreatePrivateDataSlotEXT 1987 (internal issue 2379). 1988 * Fix a misplaced asciidoctor `endif::` for flink:vkCreateSwapchainKHR 1989 (internal merge request 4177). 1990 * Add missing pname:aspectMask valid usage statement to 1991 slink:VkSubpassDescription2, matching 1992 slink:VkInputAttachmentAspectReference (internal merge request 4177). 1993 * Clarify <<interfaces, SPIR-V rules on decorations>> (internal 1994 spirv/SPIR-V issue 444). 1995 * Add missing `<<VK_VERSION_1_2>>` to all 1996 `<<VK_EXT_separate_stencil_usage>>` conditional markup (internal 1997 vulkansc/vulkansc issue 58). 1998 1999New Extensions: 2000 2001 * `<<VK_QCOM_rotated_copy_commands>>` (internal merge request 4132). 2002 2003----------------------------------------------------- 2004 2005Change log for October 19, 2020 Vulkan 1.2.158 spec update: 2006 2007 * Update release number to 158 for this update. 2008 2009Internal Issues: 2010 2011 * Clarify that linear filtering can be used with comparison sampling 2012 in valid usage statements for dispatched draw commands 2013 (internal issue 2365). 2014 * Add valid usage statement for flink:vkGetQueryPoolResults requiring 2015 pname:stride to be large enough for a single performance query result 2016 (internal issue 2380). 2017 * Move input attachment imageLayout to valid usage reference section, 2018 and refer to the <<attachment-type-imagelayout>> section 2019 to reduce complexity of valid usage statement 2020 (internal merge request 4117). 2021 * Update issues list for `<<VK_QCOM_render_pass_transform>>` 2022 (internal merge request 4175). 2023 * Add valid usage statement for 2024 slink:VkPipelineColorBlendStateCreateInfo::pname:attachmentCount (public 2025 Vulkan-ValidationLayers issue 2197). 2026 2027New Extensions: 2028 2029 * `<<VK_KHR_fragment_shading_rate>>` 2030 * `<<VK_KHR_shader_terminate_invocation>>` 2031 2032----------------------------------------------------- 2033 2034Change log for October 12, 2020 Vulkan 1.2.157 spec update: 2035 2036 * Update release number to 157 for this update. 2037 2038Github Issues: 2039 2040 * Fix `<<VK_KHR_shader_draw_parameters>>` missing as a feature alias 2041 (based on public pull request 1310). 2042 * Remove unnecessary sentence about device extensions implemented by 2043 layers in the flink:vkCreateDevice description (based on public pull 2044 request 1350). 2045 * Fix parenthesis in equation in the 2046 <<textures-texel-anisotropic-filtering, Texel Anisotropic Filtering>> 2047 section (public merge request 1365). 2048 * Add missing types to `vk.xml` for `<<VK_EXT_device_memory_report>>` 2049 (public issue 1374). 2050 * Add slink:VkBufferImageCopy valid usage statement for 2051 ename:VK_IMAGE_ASPECT_DEPTH_BIT and ename:VK_IMAGE_ASPECT_STENCIL_BIT 2052 pname:aspectMask values (public Vulkan-ValidationLayers issue 2113). 2053 2054Internal Issues: 2055 2056 * Remove unused etext:VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT 2057 token 2058 (internal issue 2275). 2059 * Clarify the specific stage requirement for synchronization 2060 between flink:vkCmdResetEvent and flink:vkCmdWaitEvents 2061 (internal merge request 4152). 2062 2063----------------------------------------------------- 2064 2065Change log for October 5, 2020 Vulkan 1.2.156 spec update: 2066 2067 * Update release number to 156 for this update. 2068 2069Github Issues: 2070 2071 * Define memory import/export using the glossary term _payload_, rather 2072 than "`the same underlying memory`", for slink:VkFence, 2073 <<synchronization-semaphores-payloads, the semaphore payload section>>, 2074 and many places in the <<memory, Memory Allocation>> chapter (public 2075 issue 1145). 2076 2077New Extensions: 2078 2079 * `<<VK_EXT_device_memory_report>>` 2080 2081----------------------------------------------------- 2082 2083Change log for September 28, 2020 Vulkan 1.2.155 spec update: 2084 2085 * Update release number to 155 for this update. 2086 2087New Extensions: 2088 2089 * `<<VK_EXT_shader_image_atomic_int64>>` 2090 2091----------------------------------------------------- 2092 2093Change log for September 7, 2020 Vulkan 1.2.153 spec update: 2094 2095 * Update release number to 153 for this update. 2096 2097Github Issues: 2098 2099 * Specification default branch for updates and PRs is now `main` instead 2100 of `master`. `master` branch still exists, but is frozen at the 1.2.152 2101 level. If you are pulling content from this repository, please switch 2102 from `master` to `main` branch (internal issue 1351). 2103 * Fix slink:VkSubpassDependency2 link from slink:VkRenderPassCreateInfo2 2104 (public issue 1358). 2105 2106Internal Issues: 2107 2108 * Add developer documentation to the appendices for 2109 `<<VK_EXT_memory_budget>>`, `<<VK_KHR_buffer_device_address>>`, 2110 `<<VK_KHR_depth_stencil_resolve>>`, `<<VK_KHR_draw_indirect_count>>`, 2111 `<<VK_KHR_multiview>>`, `<<VK_KHR_sampler_ycbcr_conversion>>` (internal 2112 issue 2109). 2113 * Implement VUID expander treeprocessor plugin to make VUID text visible 2114 and searchable in generated outputs (internal issue 2253, 2258). 2115 * Clarify when acceleration structures can be indexed dynamically in the 2116 <<interfaces-resources-descset, Descriptor Set Interface>> section 2117 (internal issue 2316). 2118 * Add missing valid usage statement for flink:vkImportFenceWin32HandleKHR 2119 (internal merge request 4087). 2120 * Replace badly formatted VUID for `<<VK_AMD_display_native_hdr>>` 2121 (internal merge request 4096). 2122 * Add ray tracing acceleration structures to the lists of objects where 2123 appropriate in the <<fundamentals-objectmodel-lifetime, Object 2124 Lifetime>> section (internal merge request 4100). 2125 * Move GLSL and SPIR-V extension references in the extension appendices 2126 into the "`Interactions and External Dependencies`" sections (internal 2127 merge request 3969). 2128 2129----------------------------------------------------- 2130 2131Change log for August 26, 2020 Vulkan 1.2.152 spec update: 2132 2133 * Update release number to 152 for this update. 2134 2135Github Issues: 2136 2137 * Add attachment image layout valid usage statements for 2138 slink:VkSubpassDescription and slink:VkSubpassDescription2 (public issue 2139 1316). 2140 * Clarify and generalize use of "`graphics commands`" in the 2141 <<descriptorsets>> and <<pipelines>> chapters (public issue 1322). 2142 * Fix description of handle returned in slink:VkDeviceQueueInfo2 (public 2143 pull request 1347). 2144 2145Internal Issues: 2146 2147 * Promote valid usage statements requiring multiple parameters of a copy 2148 command from the structure parameter descriptions to the command itself, 2149 significantly restructuring some of the common validity files (internal 2150 issue 2034). 2151 * Add details of clamping and quantization behavior for border colors that 2152 are outside the normal range for slink:VkSamplerCreateInfo and in the 2153 <<textures-operation-validation, Instruction/Sampler/Image View 2154 Validation>> and <<textures-texel-replacement, Texel Replacement>> 2155 sections (internal issue 2281). 2156 * Clarify in the <<spirvenv-module-validation-standalone, Standalone 2157 SPIR-V Validation>> section that the value of code:XfbBuffer cannot 2158 differ for members of the same block (internal issue 2307). 2159 * Add valid usage blocks to the <<interfaces>> chapter where discussing 2160 allowed uses of built-in SPIR-V variables (internal merge requests 3933, 2161 4090). 2162 * Refactor <<spirvenv-module-validation-standalone, Standalone SPIR-V 2163 Validation>> constraints to single statement phrases not using ifdef::ed 2164 asciidoctor markup, and move some of them down to the 2165 <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> 2166 section (internal merge request 4054). 2167 * Fix XML attributes for some `<<VK_INTEL_performance_query>>` interfaces 2168 (internal merge request 4061). 2169 * Fix the "`Differences relative to `VK_KHR_shader_float16_int8``" 2170 paragraph in the <<versions-1.2, Version 1.2>> appendix (internal merge 2171 request 4062). 2172 * Fix several valid usage statements for 2173 flink:vkCmdBindTransformFeedbackBuffersEXT (public 2174 KhronosGroup/Vulkan-ValidationLayers issue 2105). 2175 * Clarify `shader_read_only` layout restrictions for 2176 slink:VkWriteDescriptorSet and elink:VkImageLayout (internal merge 2177 request 4060). 2178 * Clarify wording for required 4444 and {YCbCr} formats in the 2179 <<formats-mandatory-features-subbyte, Mandatory format support: sub-byte 2180 channels>> and <<formats-requiring-sampler-ycbcr-conversion, Formats 2181 requiring sampler {YCbCr} conversion for ename:VK_IMAGE_ASPECT_COLOR_BIT 2182 image views>> tables (internal merge request 4066). 2183 * Move a feature valid usage statement from flink:vkCmdDrawIndexedIndirect 2184 to its proper home in flink:vkCmdDrawIndexedIndirectCount, matching what 2185 the validation layer already does (internal merge request 4070). 2186 * Split valid usage statement for slink:VkWriteDescriptorSet into one 2187 statement for each descriptor type for image layout requirements 2188 (internal merge request 4071). 2189 * Add the a <<valid-imageview-imageusage>> definition to capture which 2190 elink:VkImageUsageFlagBits must be set when creating a 2191 sname:VkImageView, and use that definition to simplify 2192 slink:VkImageViewCreateInfo valid usage statements (internal merge 2193 request 4073). 2194 * Remove redundant valid usage statement 03269 for slink:VkPresentInfoKHR 2195 (internal merge request 4084). 2196 * Move valid usage statement from slink:VkProtectedSubmitInfo to 2197 slink:VkSubmitInfo (internal merge request 4085). 2198 * Update reference to pname:framebufferIntegerColorSampleCounts from the 2199 description of the <<limits-framebufferColorSampleCounts>> feature if 2200 Vulkan 1.2 is supported (internal merge request 4088). 2201 2202----------------------------------------------------- 2203 2204Change log for August 17, 2020 Vulkan 1.2.151 spec update: 2205 2206 * Update release number to 151 for this update. 2207 2208Github Issues: 2209 2210 * Clarify that the <<memory-protected-memory,Protected Memory>> is not 2211 cross-physical device (public issue 1335). 2212 2213Internal Issues: 2214 2215 * Improve the layout of the <<Standard sample locations>> table to avoid 2216 overflow in the HTML output (internal issue 1354). 2217 * Also build core-only HTML spec in internal CI, to try and catch 2218 extension ifdef errors (should probably also do this in Azure CI on 2219 github) (internal issue 1770). 2220 * Add internal CI test for un-tagged uses of "`undefined`", to help make 2221 sure we've carefully considered all such uses (internal issue 2270). 2222 * Add style guide section "`Commands which Return Error Codes`" to give 2223 guidance on assigning error codes and when to use 2224 ename:VK_ERROR_OUT_OF_HOST_MEMORY (internal issue 2290). 2225 * Use the term "`reference monitor`" instead of "`mastering display`" for 2226 the `<<VK_EXT_hdr_metadata>>` extension (internal issue 2291). 2227 * Explicitly state that SPIR-V modules must be valid after specialization 2228 in slink:VkPipelineShaderStageCreateInfo and the 2229 <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> 2230 section (internal issue 2302). 2231 * Add slink:VkShaderModuleCreateInfo valid usage statements to match the 2232 SPIR-V capabilities (internal merge request 4047). 2233 * Add missing features to the <<[spirvenv-module-validation-runtime, 2234 Runtime SPIR-V Validation>> section (internal merge request 4048). 2235 * Update slink:VkPhysicalDeviceVulkan11Properties to follow the same 2236 renaming of "`subgroups`" to "`groups`" previously done for 2237 slink:VkPhysicalDeviceSubgroupProperties (internal merge request 4050). 2238 2239----------------------------------------------------- 2240 2241Change log for August 10, 2020 Vulkan 1.2.150 spec update: 2242 2243 * Update release number to 150 for this update. 2244 2245Github Issues: 2246 2247 * Remove ename:VK_ERROR_TOO_MANY_OBJECTS as a required error code for 2248 flink:vkAllocateMemory and and flink:vkCreateSampler, and note that 2249 while it may still occur as a historical artifact, exceeding 2250 implementation limits will result in undefined behavior (public issue 2251 1295). 2252 * Allow duplicate slink:VkDebugUtilsMessengerCreateInfoEXT structs in 2253 pname:pNext chain (public issue 1329) 2254 * Fix typo in slink:VkSubmitInfo valid usage statement 04120 (public merge 2255 request 1336). 2256 * Remove `KHR` suffix from some names promoted to core, in the 2257 <<renderpass, Render Pass>> chapter (public merge request 1341). 2258 2259Internal Issues: 2260 2261 * Add ename:VK_ERROR_OUT_OF_HOST_MEMORY to `vk.xml` as a possible error 2262 code for some additional commands returing elink:VkResult, and add a 2263 note to the description of elink:VkResult giving some guidance on which 2264 commands may and may not return that error code (internal issue 2063). 2265 * Make a handful of terminology changes which move this repository closer 2266 to the conventions of the AOSP 2267 https://source.android.com/setup/contribute/respectful-code[Coding with 2268 Respect] document (internal issue 2282). 2269 * Update `<<VK_MVK_ios_surface>>` and `<<VK_MVK_macos_surface>>` 2270 documentation and mark them as deprecated and replaced by 2271 `<<VK_EXT_metal_surface>>` (internal merge request 4024). 2272 * Add a section to the style guide on markup for the copyright and license 2273 block on files in the repository (internal merge request 4036). 2274 * Add ename:VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT to 2275 `<<VK_EXT_validation_features>>` to enable synchronization validation 2276 (internal merge request 4037). 2277 2278----------------------------------------------------- 2279 2280Change log for August 3, 2020 Vulkan 1.2.149 spec update: 2281 2282 * Update release number to 149 for this update. 2283 2284Github Issues: 2285 2286 * Fix valid usage statements to clarify interactions between 2287 `<<VK_EXT_extended_dynamic_state>>` and the old viewport related 2288 extensions `<<VK_NV_clip_space_w_scaling>>`, 2289 `<<VK_NV_shading_rate_image>>` (for the palettes), 2290 `<<VK_NV_viewport_swizzle>>`, and `<<VK_NV_scissor_exclusive>>` (public 2291 issue 1296). 2292 2293Internal Issues: 2294 2295 * Clarify wording around non-uniform and non-constant descriptor access in 2296 <<interfaces-resources-descset, Descriptor Set Interface>> (internal 2297 issue 2163). 2298 * Add a missing code:StorageBuffer reference in the <<interface-resources, 2299 Shader Resource Interface>> section (internal issue 2191). 2300 * Refactor common valid usage statements for flink:vkBindBufferMemory, 2301 slink:VkBindBufferMemoryInfo, flink:vkBindImageMemory, and 2302 slink:VkBindImageMemoryInfo (internal issue 2260). 2303 * Copy over import/export behavior for sync file descriptor value `-1` 2304 from slink:VkImportFenceFdInfoKHR to slink:VkImportSemaphoreFdInfoKHR 2305 (internal issue 2274). 2306 * State that a deriviative group is a quad scope instance in the 2307 <<shaders-derivative-operations, Derivative Operations>> section 2308 (internal merge request 4025) 2309 2310New Extensions: 2311 2312 * `<<VK_EXT_4444_formats>>` 2313 2314----------------------------------------------------- 2315 2316Change log for July 19, 2020 Vulkan 1.2.148 spec update: 2317 2318 * Update release number to 148 for this update. 2319 2320Github Issues: 2321 2322 * Move description of slink:VkPhysicalDevicePerformanceQueryFeaturesKHR to 2323 the <<features>> chapter (public merge request 1312). 2324 * Fix a few broken internal and external links, and add stub description 2325 of empty elink:VkPipelineCompilerControlFlagsAMD type (public merge 2326 request 1313). 2327 2328Internal Issues: 2329 2330 * Fix a few new places where "`undefined`" was used imprecisely, by 2331 clarifying the difference between undefined results and undefined 2332 behavior (internal issue 543). 2333 * Add valid usage statement to common indirect draw valid usage statements 2334 requiring that the pname:countBufferOffset to the count being used lie 2335 within the pname:countBuffer (internal issue 1309). 2336 * Add <<interfaces-raypipeline, Ray Tracing Pipeline Interface>> section 2337 (internal issues 2094, 2237). 2338 * Add valid usage statement to flink:vkCmdBeginTransformFeedbackEXT to 2339 require that the last vertex processing stage of the bound graphics 2340 pipeline be declared with the code:Xfb execution mode (internal issue 2341 2124). 2342 * Do not allow flink:vkWaitForFences or flink:kWaitSemaphores to return 2343 timeouts before the period has expired, even though this is valid in 2344 some other synchronisation APIs (internal issue 2146). 2345 * Add elink:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT as an alias 2346 of elink:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT for clarity 2347 when interacting with D3D11 fences (internal issue 2175). 2348 * Ignore slink:VkMemoryAllocateInfo::pname:allocationSize when importing 2349 D3D resources (internal issue 2176). 2350 * Clarify the definition of flink:vkCmdBindVertexBuffers2EXT::pname:pSizes 2351 (internal issue 2262). 2352 * Fix markup error in slink:VkDescriptorSetLayoutBindingFlagsCreateInfo 2353 (internal merge request 3998). 2354 * Remove un-needed dependency of `<<VK_EXT_filter_cubic>>` on 2355 `<<VK_IMG_filter_cubic>>` (internal merge request 4000). 2356 * Minor textual clarifications in ray tracing extensions (internal merge 2357 request 4017). 2358 * Modify the validity generator so that, when generating valid usage for 2359 array lengths with a chain of parameters (e.g. pname:pFoo->bar), don' 2360 non-zero values are not required if any parameter in the chain is 2361 optional, and consider the last parameter only when deciding the type of 2362 the parameter (internal merge request 4021). 2363 * Fix a typo in the `<<VK_EXT_fragment_density_map2>>` extension appendix 2364 markup that caused refpage build warnings, and modify CI and 2365 `BUILD.adoc` to use `makeSpec` instead of the old `makeAllExts` script 2366 (internal merge request 4023). 2367 2368New Extensions: 2369 2370 * `<<VK_EXT_image_robustness>>` 2371 * `<<VK_EXT_shader_atomic_float>>` 2372 2373----------------------------------------------------- 2374 2375Change log for July 13, 2020 Vulkan 1.2.147 spec update: 2376 2377 * Update release number to 147 for this update. 2378 2379Github Issues: 2380 2381 * Allow physical-device-level structures in pname:pNext chains (public 2382 merge request 1303). 2383 * Remove elink:VkRenderPassCreateFlags from dependencies of 2384 `<<VK_QCOM_render_pass_transform>>` (public merge request 1311) 2385 2386Internal Issues: 2387 2388 * Require that variables with code:HitAttributeKHR storage class must: 2389 <<spirvenv-module-validation-standalone, only be written in intersection 2390 shaders>> (internal issue 2103). 2391 * Specify that acceleration structure scratch buffer accesses from 2392 acceleration structure build should be synchronized with the 2393 ename:VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR pipeline 2394 stage and an access mask of 2395 ename:VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR or 2396 ename:VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR (internal issue 2397 2173). 2398 * Improve description of 3D blitting in flink:vkCmdBlitImage (internal 2399 issue 2212). 2400 * Split <<fragops-coverage-reduction, Coverage Reduction>> section into 2401 multiple steps when multi-pixel fragments are involved: first per-pixel 2402 coverage is separated out, then per-sample coverage is generated for 2403 each color sample from per-pixel coverage. dditionally, the definition 2404 of "`color sample mask`" and discussions of it have been removed in 2405 favour of the per-color-sample coverage. (internal merge request 3951). 2406 * Modify slink:VkSamplerYcbcrConversionCreateInfo valid usage statements, 2407 as well as the <<textures-chroma-reconstruction, Chroma Reconstruction>> 2408 section, to make it clear the values of pname:xChromaOffset and 2409 pname:yChromaOffset are only validated when chroma channels are 2410 downsampled (internal merge request 3959). 2411 * Allow flink:vkGetBufferMemoryRequrements and 2412 flink:vkGetBufferMemoryRequrements2 to be called for an Android Hardware 2413 Buffer backed slink:VkBuffer, before it is been bound to memory 2414 (internal merge request 3982). 2415 * Remove *Draft* status from `<<VK_EXT_private_data>>` (internal merge 2416 request 3982). 2417 * Move valid usage statement from slink:VkProtectedSubmitInfo to 2418 slink:VkSubmitInfo (internal merge request 3987). 2419 * Add valid usage statements for protected buffers to 2420 slink:VkBindBufferMemoryInfo and slink:VkBindImageMemoryInfo 2421 (internal merge request 3988). 2422 * Add valid usage statement to slink:VkImageCreateInfo requiring that 2423 images with linear tiling cannot have sparse residency (internal merge 2424 request 3988). 2425 * Clarify that the ptext:maxPerStageDesciptorUpdateAfterBind* 2426 <<limits-required, Required Limits>> must be at least the corresponding 2427 non- ptext:UpdateAfterBind limits (internal merge request 3992). 2428 2429----------------------------------------------------- 2430 2431Change log for July 3, 2020 Vulkan 1.2.146 spec update: 2432 2433 * Update release number to 146 for this update. 2434 2435Github Issues: 2436 2437 * Fix valid usage generation script for optional bitmasks in a 2438 non-optional array (public pull request 1228). 2439 * Add lunr to `package.json` and update the locally cached copy (public 2440 pull request 1238). 2441 * Require that newly released extensions have etext:*_SPEC_VERSION `1` 2442 (public issue 1263). 2443 * Add to the NOTE in slink:VkPhysicalDeviceIDProperties, advising 2444 implementations on returning unique pname:deviceUUID values and avoiding 2445 hardwired values, especially 0 (public issue 1273). 2446 * Add noscript fallback for HTML output (public pull request 1289). 2447 * Fix duplicated VUIDs in flink:vkCmdExecuteGeneratedCommandsNV (public 2448 pull request 1304). 2449 * Fix link markup in <<ray-traversal, Ray Traversal>> chapter, nested link 2450 markup, and linear equation markup in 2451 <<textures-unnormalized-to-integer>> (public pull requests 1305, 1306, 2452 1307). 2453 2454Internal Issues: 2455 2456 * Add comments to extending enums in the generated API interfaces showing 2457 which core version and/or extensions provide the enum, matching recent 2458 changes to show this information for commands and structures (internal 2459 issue 1431). 2460 * Only allow code:Invocation memory scope in the 2461 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 2462 section when memory semantics is *None* (internal issue 1782). 2463 * Make reflow script handle literal block delimiters and lines containing 2464 only whitespace properly (internal issues 2039, 2042). 2465 * Clarify definition of <<limits-maxFragmentCombinedOutputResources, 2466 pname:maxFragmentCombinedOutputResources>> (internal issue 2236). 2467 * Add missing `errorcodes=` XML attributes for some 2468 `<<VK_EXT_display_control>>` commands. 2469 * Clarify <<features-extentperimagetype, allowed extent values based on 2470 image type>> and the related <<limits-maxImageDimension1D>>, 2471 <<limits-maxImageDimension2D>>, <<limits-maxImageDimension3D>>, 2472 <<limits-maxImageDimensionCube>> limits (internal merge request 3922). 2473 * Remove redundant valid usage statement 2474 VUID-VkFramebufferCreateInfo-flags-03188 (internal merge request 3934). 2475 * Update style guide to recommend new extension spec language be contained 2476 in existing asciidoctor files, unless it's of enough scope to create a 2477 and new chapter (internal merge request 3955). 2478 2479New Extensions: 2480 2481 * `<<VK_EXT_directfb_surface>>` (public pull requests 1292, 1294). 2482 * `<<VK_EXT_fragment_density_map2>>` (internal merge request 3914). 2483 2484----------------------------------------------------- 2485 2486Change log for June 20, 2020 Vulkan 1.2.145 spec update: 2487 2488 * Update release number to 145 for this update. 2489 2490Github Issues: 2491 2492 * Fix `<<VK_EXT_conservative_rasterization>>` interactions with external 2493 SPIR-V and GLSL functionality in the extension appendix (public issue 2494 1288). 2495 2496Internal Issues: 2497 2498 * Break SPIR-V validation into two sections, 2499 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 2500 and <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> 2501 (internal issue 1598). 2502 * Add VkFormat enums for ASTC 3D formats to `vk.xml`. These values are 2503 slotted into the reserved, and still disabled extension 289. They will 2504 not appear in the published `vulkan_core.h` header and there is no 2505 published extension utilizing them, but this allows external projects 2506 such as KTX2 to use these values as part of their internal cross-API 2507 formats by generating a header including this disabled extension 2508 (internal merge requests 1662, 2216). 2509 * Synchronize that shader binding table accesses from ray tracing 2510 pipelines should be synchronized with the 2511 ename:VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR pipeline stage and an 2512 access mask of ename:VK_ACCESS_SHADER_READ_BIT (internal issue 1749). 2513 * Validate that 3D image views are not used as attachments in 2514 slink:VkFramebufferCreateInfo and slink:VkRenderPassAttachmentBeginInfo 2515 (internal issue 2142). 2516 * Increase the number of conditions recognized as build errors by the 2517 valid usage extraction plugin (internal issue 2215). 2518 * Relax slink:VkImportAndroidHardwareBufferInfoANDROID valid usage 2519 statement 01881 to support external formats (internal issue 2220). 2520 * Clearly define what "`optional capabilities`" means in the 2521 <<spirvenv-capabilities, Capabilities>> section, and specify that if 2522 *any* of the required core versions and/or extensions for a capability 2523 is enabled, then it is valid to use that capability (internal merge 2524 request 3827). 2525 * Add ename:VK_FORMAT_B5G5R5_UNORM_PACK16 and 2526 ename:VK_FORMAT_B5G5R5A1_UNORM_PACK16 to 2527 `<<VK_EXT_custom_border_color>>` as exceptions when 2528 <features-customBorderColorWithoutFormat>> is enabled (internal merge 2529 request 3833). 2530 * Add new <<spirvenv-format-type-matching, Image Format and Type 2531 Matching>> section and refer to it from elsewhere in the spec, 2532 clarifying rules regarding types for image operations (internal merge 2533 request 3916). 2534 * Fix typo sname:VkImageFormatProperties -> slink:VkFormatProperties 2535 (internal merge request 3921). 2536 * Move <<sparsememory-examples, sparse image examples>> to the Vulkan 2537 Guide (internal merge request 3930). 2538 * Fix typo in slink:VkAccelerationStructureBuildOffsetInfoKHR valid usage 2539 statement 03553 (internal merge request 3938). 2540 * Support <remove> tags for extending enumerants in XML (internal merge 2541 request 3942). 2542 2543New Extensions: 2544 2545 * `<<VK_EXT_extended_dynamic_state>>` 2546 2547----------------------------------------------------- 2548 2549Change log for June 8, 2020 Vulkan 1.2.144 spec update: 2550 2551 * Update release number to 144 for this update. 2552 2553Internal Issues: 2554 2555 * Require `volatile` semantics for loading <<builtin-volatile-semantics, 2556 certain variables used in ray pipeline stages>> in the 2557 <<spirvenv-module-validation, Validation Rules within a Module>> and 2558 also the <<ray-tracing-shader-call, Shader Call Instructions>> section 2559 (internal issue 1924). 2560 * Created new <<potential-format-features, Potential Format Features>> 2561 section and corresponding glossary term, use the new term where 2562 appropriate, and add some related valid usage statements to 2563 flink:vkCmdBeginRenderPass, flink:vkCmdBeginRenderPass2, 2564 slink:VkSubpassDescription, and slink:VkSubpassDescription2 (internal 2565 issue 2031). 2566 * Add interaction with `<<VK_KHR_ray_tracing>>` and corresponding `NV` 2567 extension to flink:vkUpdateDescriptorSetWithTemplate (internal issue 2568 2193). 2569 * Resolve collisions in common VUID names using `{stageMaskName}` 2570 qualifiers as part of the name and make fixes to 2571 `config/vu-to-json/extension.rb` to match (internal issue 2215). 2572 * Replace `shutil.move` operations with `copy` / `remove` in the base 2573 `generator.py` code, working around a problem with bind mounts while 2574 using the Khronos docker build image with `podman` instead of `docker` 2575 (internal merge request 3872). 2576 * Add a new <<spirvenv-extensions, SPIR-V Extensions>> subsection 2577 containing a table showing the corresponding Vulkan extension or core 2578 API required to support each of the SPIR-V extensions, replacing a 2579 harder-to-read list of extensions (internal merge request 3876). 2580 * Remove two redundant valid usage statements from flik:vkCmdResolveImage 2581 (internal merge request 3878). 2582 * Make repository REUSE-compliant, and run the `reuse` license checker as 2583 part of internal CI. While most files now have SPDX license identifier 2584 tags, some licenses are recorded in `.reuse/dep5` instead. Note that 2585 this does not change licenses in the repository (aside from adding some 2586 to files missing them), just insures that every file *has* an explicit 2587 license (internal merge request 3904). 2588 * Clarify that code:ImageMSArray is supported as part of the 2589 <<features-shaderStorageImageMultisample>> feature (internal merge 2590 request 3905). 2591 * Reorganize some valid usage statements for flink:vkCmdBlitImage, 2592 flink:vkCmdCopyBuffer, flink:vkCmdCopyBufferToImage, 2593 flink:vkCmdCopyImage, flink:vkCmdCopyImageToBuffer, and 2594 flink:vkCmdResolveImage as common valid usage statements, for 2595 future-proofing (internal merge requests 3906, 3907, 3908, 3909, 3910). 2596 * Add two valid usage statements to flink:vkAllocateMemory and 2597 flink:vkCreateSampler for allocation limits of slink:VkDeviceMemory and 2598 elink:VkSamplers, respectively (internal merge request 3923). 2599 2600----------------------------------------------------- 2601 2602Change log for June 8, 2020 Vulkan 1.2.143 spec update: 2603 2604 * Update release number to 143 for this update. 2605 * Reorganize some valid usage statements for slink:VkBufferMemoryBarrier, 2606 and for commands with elink:VkPipelineStageFlags parameters, as common 2607 valid usage statements, for future-proofing (internal merge requests 2608 3863, 3867). 2609 2610Github Issues: 2611 2612 * Move `translate_math.js` to the `scripts/` directory (public pull 2613 request 1286). 2614 * Minor cleanup of math markup (public pull request 1287). 2615 2616Internal Issues: 2617 2618 * Misc. licensing updates (internal issue 1017): 2619 ** Replace the "`Exceptions`" clause on `vk.xml` with a dual Apache-2.0 OR 2620 MIT license, with agreement of downstream developers known to be 2621 affected by it. This enables use of `vk.xml` in GPLed projects under a 2622 more widely used licensing scheme. 2623 ** Use `SPDX-License-Identifier` tags in place of longer license text. 2624 This does not change the license terms on files other than `vk.xml`, 2625 but makes license statements in most files more compact. 2626 ** Reorganize repository documentation (README.adoc, COPYING.adoc, 2627 LICENSE.adoc, CONTRIBUTING.adoc, CODE_OF_CONDUCT.adoc, and BUILD.adoc) 2628 with a more widely used split of information; make all of these files 2629 Asciidoctor instead of Markdown format for consistency with the rest of 2630 the repository; describe use of SPDX identifiers; and point to full 2631 license text of the various OSS licenses used in the repository. 2632 * Add new <<resources-image-views-identity-mappings, text describing the 2633 identity swizzle>> incorporating the existing "`Component Mappings 2634 Equivalent To ename:VK_COMPONENT_SWIZZLE_IDENTITY`" table, and refer to 2635 this text in place of explicit references to 2636 ename:VK_COMPONENT_SWIZZLE_IDENTITY in many places (internal merge 2637 request 3399). 2638 * Require code:storageBuffer16BitAccess capability if 2639 `<<VK_KHR_16bit_storage>>` is enabled (internal merge request 3709). 2640 * Added XML schema and generator script extensions to support 64-bit flags 2641 and corresponding bitmasks (internal merge request 3718). 2642 * Correct <<interfaces-resources-standard-layout, Standard Buffer Layout>> 2643 alignment rules (internal merge request 3750). 2644 * Relax non-strict line constraints in the <<primsrast-lines-basic>> and 2645 <<primsrast-lines-bresenham>> sections (internal merge request 3792). 2646 * Add missing `structextends` attribute to the 2647 slink:VkPhysicalDevicePrivateDataFeaturesEXT definition in `vk.xml` 2648 (internal merge request 3873). 2649 * Move slink:VkImageFormatListCreateInfo valid usage statements to 2650 flink:vkCreateImageView (internal merge request 3879). 2651 * Update valid usage statements for slink:VkImageViewASTCDecodeModeEXT to 2652 allow ASTC HDR formats (internal merge request 3881). 2653 * Add missing extension dependency to 2654 `<<VK_KHR_pipeline_executable_properties>>` definition in `vk.xml` 2655 (internal merge request 3882). 2656 * Require the <<features-customBorderColors>> feature be enabled when 2657 using etext:VK_BORDER_COLOR_* in slink:VkSamplerCreateInfo (internal 2658 merge request 3884). 2659 2660----------------------------------------------------- 2661 2662Change log for June 1, 2020 Vulkan 1.2.142 spec update: 2663 2664 * Update release number to 142 for this update. 2665 2666Github Issues: 2667 2668 * Add boilerplate descriptions of reserved bitmask types (public pull 2669 request 1265). 2670 * Move dynamic state valid usage statements from 2671 slink:VkPipelineViewportExclusiveScissorStateCreateInfoNV and 2672 VkPipelineViewportShadingRateImageStateCreateInfoNV to 2673 slink:VkGraphicsPipelineCreateInfo, where they are testable, and make 2674 corresponding tweaks in `vk.xml` (public pull request 1268). 2675 * Add missing flink:vkDestroyPrivateDataSlotEXT explicit valid usage 2676 statement (public pull request 1269). 2677 * Cast arguments of dlink:VK_MAKE_VERSION macro to code:uint32_t to avoid 2678 compiler warnings (public pull request 1279). 2679 2680Internal Issues: 2681 2682 * Update <<fundamentals-validusage-pNext, description of pname:pNext 2683 chains>> to allow structures in the chain to be defined by either core 2684 versions or extensions. Add the new term "`extending structure`" to the 2685 glossary to describe such structures, and use it in place of "`extension 2686 structure`". Update the style guide accordingly (internal issue 1083). 2687 * Add a comment to the beginning of generated API includes showing which 2688 combinations of API core versions and extensions provide that API, based 2689 on the explicit requirements in the API XML. This does not yet document 2690 enumerants introduced by extending a base enum type (internal issue 2691 1431). 2692 * Relax the restriction that slink:VkBufferImageCopy::pname:bufferOffset 2693 must be a multiple of 4 for flink:vkCmdCopyBufferToImage and 2694 flink:vkCmdCopyImageToBuffer when run on graphics or compute queues, but 2695 not on transfer queues (internal issue 1701). 2696 * Document the types of "`special use`" extensions in the new 2697 <<extendingvulkan-compatibility-specialuse, Special Use Extensions>> 2698 section, summarize special uses in the generated metadata for extension 2699 appendices, and link back to the new section from each special use 2700 extension (internal issue 1938). 2701 * Clarify behavior of flink:vkGetDeferredOperationMaxConcurrencyKHR, 2702 allowing it to return zero for competed operations (internal issue 2036). 2703 * Allow flink:vkGetInstanceProcAddr to resolve itself with a `NULL` 2704 pname:instance (internal issue 2057). 2705 * Modify the valid usage statement ID assignment script to track a range 2706 of unused IDs for each extension branch under development, instead of 2707 only allowing VUID assignment in `master` and `devel` branches (internal 2708 issue 2100). 2709 * Add `selector` and `selection` attributes for unions in XML, to enable 2710 automatic generation of validation code (internal issue 2140). 2711 * Fix validity generator for stext:Vk*Flags types that are aliases, 2712 correcting generation of implicit valid usage for 2713 slink:VkAccelerationStructureInfoNV::pname:flags. Remove 2714 `noautovalidity` attribute for this member, as well as the previously 2715 written explicit valid usage (internal issue 2140). 2716 * Fix description of slink:VkTextureLODGatherFormatPropertiesAMD (internal 2717 issue 2189). 2718 * Remove redundant text about variables being explicitly laid out in the 2719 <<interfaces-resources-layout, Offset and Stride Assignment>> section 2720 (internal merge request 3691). 2721 * Fix conflicting slink:VkSamplerYcbcrConversionCreateInfo valid usage 2722 statements (internal merge request 3716). 2723 * Fix use of code:AHARDWAREBUFFER_USAGE_GPU_COLOR_OUTPUT to 2724 code:AHARDWAREBUFFER_USAGE_GPU_FRAMEBUFFER in valid usage statement 2725 02386 for slink:VkMemoryAllocateInfo (internal merge request 3808). 2726 * Add missing `externsync` XML attributes for ftext:vkCmd* commands 2727 (internal merge request 3825). 2728 * Add missing `extends` attribute to 2729 slink:VkDevicePrivateDataCreateInfoEXT XML (internal merge request 2730 3834). 2731 * Add code:RayGeometryIndexKHR to the `<<VK_KHR_ray_tracing>>` list of 2732 built-in variables (internal merge request 3853). 2733 * Restrict slink:VkBufferViewCreateInfo with ename:VK_WHOLE_SIZE, and 2734 round down results of division in calculating the test in the 2735 corresponding valid usage statements (internal merge request 3858). 2736 * Miscellaneous cleanup and reorganization of synchronization language in 2737 multiple places, and add the 2738 <<synchronization-image-barrier-layout-transition-order>> section 2739 (internal merge request 3861). 2740 * Redefine ename:VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT and 2741 ename:VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT as pseudo-stages in multiple 2742 places (internal merge request 3862). 2743 * Reorganize some valid usage statements, especially but not limited to 2744 stage mask parameters for slink:VkImageMemoryBarrier, 2745 slink:VkPipelineStageFlags, flink:vkCmdPipelineBarrier, 2746 flink:vkCmdResetEvent, flink:vkCmdSetEvent, flink:vkCmdWaitEvents, 2747 flink:vkCmdWriteBufferMarkerAMD, and flink:vkCmdWriteTimestamp as common 2748 valid usage statements, for future-proofing (internal merge requests 2749 3864, 3865, 3866, 3867, 3868). 2750 2751----------------------------------------------------- 2752 2753Change log for May 15, 2020 Vulkan 1.2.141 spec update: 2754 2755 * Update release number to 141 for this update. 2756 * *Note*: Using the default build options, specification outputs will now 2757 be created in `gen/out/` instead of `out/`, and header files will be 2758 created in `gen/include/vulkan` instead of `include/vulkan`. This can be 2759 overridden using the `-genpath` option to the frontend scripts like 2760 `makeAllExts` and `makeSpec`, or by specifying `GENERATED=*path*` on the 2761 make command line when invoking it directly. 2762 2763Github Issues: 2764 2765 * Assign new elink:VkDriverId and elink:VkVendorId enums for Mesa (public 2766 issue 1256). 2767 2768Internal Issues: 2769 2770 * Fix a typo in the <<fragops-stencil, Stencil Test>> section, removing a 2771 sentence fragment accidentally left over from an earlier merge conflict 2772 resolution (internal issue 2158). 2773 * Typo fixes for flink:vkGetRayTracingShaderGroupHandlesKHR and 2774 flink:vkGetRayTracingCaptureReplayShaderGroupHandlesKHR valid usage 2775 statements (internal merge request 3831). 2776 * Add a `requiredBy` dictionary to the generated `vkapi.py` showing which 2777 core versions or extensions require each API (internal merge request 2778 3832). 2779 * Allow specifying multiple API names for and tags in registry processing 2780 scripts. Update the registry schema documentation accordingly, and 2781 remove the redundant `xml_supported_name_of_api` method from the 2782 VulkanConventions object (internal merge request 3836). 2783 * Consolidate generated intermediate files and output documents into 2784 $(GENERATED) directory, add -genpath option to scripts requiring them, 2785 and modify Makefile accordingly. Add a new `makeSpec` script which 2786 combines and extends the functionality of the `makeExt`, `makeKHR`, and 2787 `makeAllExts` scripts (internal merge requests 3837, 3838, 3840, 3841). 2788 * Add "`runtime`" to style guide and use that spelling consistently 2789 (internal merge request 3843). 2790 2791----------------------------------------------------- 2792 2793Change log for May 3, 2020 Vulkan 1.2.140 spec update: 2794 2795 * Update release number to 140 for this update. 2796 2797Github Issues: 2798 2799 * Add `vk.xml` `noautovalidity` attribute to 2800 flink:vkCmdBindTransformFeedbackBuffersEXT::pname:pSizes to cause change 2801 in the generation of implicit valid usage statement for 2802 pname:bindingCount (public issue 1227). 2803 * Remove the special tokens (not part of the Vulkan API) suffixed with 2804 etext:*_BEGIN_RANGE etext:*_END_RANGE, and etext:*_RANGE_SIZE from the 2805 generated C headers, after consultation with downstream components and 2806 ISVs and advanced warning to the developer community (public issue 1230, 2807 internal issue 872). 2808 2809 *Note* if you absolutely require these tokens for some reason, you can 2810 still build a version of the header which restores them. Edit 2811 `scripts/genvk.py` to add the parameter `genEnumBeginEndRange = True` to 2812 the `CGeneratorOptions` objects for the header file targets you want to 2813 restore. See the version of `genvk.py` in the 1.2.139 spec update for an 2814 example. 2815 * Add valid usage statement to slink:VkApplicationInfo requiring that 2816 pname:apiVersion be greater than or equal to dlink:VK_API_VERSION_1_0 2817 (public pull request 1252). 2818 * Add \<implicitexternsync> tags to `vk.xml` for flink:vkDestroyDevice 2819 slink:VkQueue objects received from pname:device (public pull request 2820 1255). 2821 * Fix typo in slink:VkBufferMemoryBarrier language (public pull request 2822 1257). 2823 2824Internal Issues: 2825 2826 * Automatically generate interface lists for extension appendices from 2827 `vk.xml` using a new interface generator script, and update the style 2828 guide's description of these appendices accordingly (internal issue 2829 977, internal merge request 3819). 2830 * Add transitive language to the <<formats-compatible-planes, Compatible 2831 formats of planes of multi-planar formats>> section to pull in format 2832 compatibility classes as well (internal issue 1615). 2833 * Add valid usage statements to ftext:vkCmdBuildAccelerationStructure*KHR, 2834 flink:vkCmdCopyAccelerationStructureToMemoryKHR, and 2835 flink:vkCmdCopyMemoryToAccelerationStructureKHR for structure builds 2836 bound to device memory (internal issue 2033). 2837 * Don't generate etext:*_MAX_ENUM values in documentation generators, 2838 since they're not part of the API, and only meaningful on compiled 2839 headers (internal issue 2056). 2840 * Remove special lifetime rules for pipelines in the 2841 <<fundamentals-objectmodel-lifetime-cmdbuffers>> section (internal issue 2842 2068). 2843 * Improve valid usage statements for ftext:vkCmdTraceRays*, share more 2844 common VUs between ftext:vkTraceRays*, and add ftext:vkCmdTracerays* VUs 2845 for bound buffers. Improve documentation for the 2846 pname:raygenShaderBindingOffset parameters and fork `NV` and `KHR` valid 2847 usage statements, since the shader binding table is described 2848 differently (internal issues 2075, 2136). 2849 * Clarify lifetime of acceleration structure build inputs for 2850 flink:vkCreateAccelerationStructureKHR (internal issue 2077). 2851 * Add a Note to the <<framebuffer-blending, Blending>> section to stop 2852 claiming that blending is ignored for all integer formats (internal 2853 issue 2098). 2854 * Mark handle parameters of some ftext:vkDestroy* commands as `optional` 2855 and `externsync="true"` in `vk.xml` (internal issue 2129). 2856 * Add missing `:refpage:` attributes for ray tracing common valid usage 2857 statements (internal issue 2141). 2858 * Redefine fragment to include the possibility of it covering multiple 2859 pixels. This affects many parts of the specification including the 2860 <<pipelines, Pipelines>>, <<primsrast, Rasterization>>, and <<fragops, 2861 Fragment Operations>> chapters, the `<<VK_EXT_post_depth_coverage>>` 2862 appendix, the `Coverage*` and `Sample Index` glossary entries, the 2863 code:SampleId and code:SampleMask definitions in the 2864 <<interfaces-builtin-variables, Built-In Variables>> section, and the 2865 <<shaders-fragment-execution, Fragment Shader Execution>>, 2866 <<shaders-fragment-earlytest, Early Fragment Tests>>, and 2867 <<textures-texel-coordinate-systems, Texel Coordinate Systems>> sections 2868 (internal merge request 3568). 2869 * Refactor `scripts/genvk.py` script to specify generator and generator 2870 options to the `Registry` object before loading XML. This allows 2871 generator options to influence behavior such as reparenting enum 2872 elements from feature/extension elmements to the enums they are being 2873 added to, which is desirable for generating complete feature lists for 2874 an extension or core version (internal merge request 3789). 2875 * Raise a fatal error (instead of a warning) in `scripts/generator.py` 2876 when two enumerants that are not aliased have the same value, so that CI 2877 will fail (internal merge request 3807). 2878 * Remove accidentally duplicated slink:VkSubpassDependency2 valid usage 2879 statement 03093 (internal merge request 3826). 2880 2881New Extensions: 2882 2883 * `<<VK_EXT_private_data>>` 2884 * `<<VK_EXT_custom_border_color>>` 2885 2886----------------------------------------------------- 2887 2888Change log for April 26, 2020 Vulkan 1.2.139 spec update: 2889 2890 * Update release number to 139 for this update. 2891 2892Github Issues: 2893 2894 * Configure Github CI with Azure pipelines and the Khronos Docker build 2895 image (public pull request 1141). 2896 * Move NOTE in flink:vkEnumerateInstanceVersion prior to valid usage 2897 statements (public pull request 1237). 2898 * Add `implicitexternsyncparams` to flink:vkDestroyInstance for 2899 slink:VkPhysicalDevice objects (public pull request 1244). 2900 * Note in the style guide that extension names are used as preprocessor 2901 symbols in all the generated Vulkan headers (public pull request 1245). 2902 * Move NOTE about app use of `switch` statements and Vulkan API enums from 2903 the style guide into the <<fundamentals-validusage-enums, Valid Usage 2904 for Enumerated Types>> section (public pull request 1246). 2905 * Modify generator script to use Unix newlines on all platforms (public 2906 pull request 1250). 2907 2908Internal Issues: 2909 2910 * Allow ename:VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT error to be 2911 generated by flink:vkQueuePresentKHR (internal issue 1932). 2912 * Update references to the SPIR-V Specification to version 1.5.3 (internal 2913 issue 1957). 2914 * Add a \<comment> explaining why the bitfields defined for 2915 slink:VkAccelerationStructureInstanceKHR in `vk.xml` are non-normative 2916 (internal issue 1975). 2917 * Add valid usage statement for flink:vkBindImageMemory2::pname:pBindInfos 2918 to prevent binding disjoint memory twice (internal merge request 3696). 2919 * Add valid usage statements to flink:vkGetBufferMemoryRequirements, 2920 flink:vkGetImageMemoryRequirements, and 2921 slink:VkBufferMemoryRequirementsInfo2 requiring that external Android 2922 hardware buffers be bound to memory (internal merge request 3717). 2923 * Fix implicit valid usage statement generation script for handle 2924 parameters with `optional="false,true"` XML attributes (internal merge 2925 request 3753). 2926 2927New Extensions: 2928 2929 * `<<VK_EXT_robustness2>>` 2930 * `<<VK_QCOM_render_pass_shader_resolve>>` 2931 2932----------------------------------------------------- 2933 2934Change log for April 16, 2020 Vulkan 1.2.138 spec update: 2935 2936 * Update release number to 138 for this update. 2937 2938Github Issues: 2939 2940 * Use correctly tagged normative term macros in various places (public 2941 pull request 1217). 2942 * Fix C arrow markup in parameter descriptions (public pull request 1222). 2943 2944Internal Issues: 2945 2946 * Add language to the <<features-requirements, Feature Requirements>> 2947 section, the <<versions, Core Revisions>> appendix, and the applicable 2948 extensions to require major feature bits if the corresponding extension 2949 is supported (internal issue 1961). 2950 * Allow slink:VkAccelerationStructureCreateInfoKHR::pname:maxGeometryCount 2951 = 0, and clarify that exactly one of pname:compactedSize and 2952 pname:maxGeometryCount must: be zero. (internal issue 2079). 2953 * Add `allowduplicate` attribute to XML `type` tags to enable future 2954 structures which can allow multiple copies of a structure in their 2955 pname:pNext chain (internal issue 2090). 2956 * Add the glossary term "`format features`", and make minor clarifications 2957 to uses of this term in several places in the <<resources, Resource 2958 Creation>> chapter and the 2959 <<resources-sampler-ycbcr-conversion-format-features, Sampler Ycbcr 2960 Conversion Format Features>> section (internal merge request 3727). 2961 * Add a constraint to the <<memory-external-android-hardware-buffer, 2962 Android Hardware Buffer>> section requiring that bound slink:VkImage or 2963 slink:VkBuffer objects be created with the 2964 ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID 2965 flag set, and corresponding valid usage statements to 2966 flink:vkBindBufferMemory, slink:VkBindBufferMemoryInfo, 2967 flink:vkBindImageMemory, and slink:VkBindImageMemoryInfo (internal merge 2968 request 3732). 2969 * Fix pname:memoryTypes ordering description for device coherent memory 2970 (ename:VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD) in the 2971 <<memory-device-bitmask-list>> section (internal merge request 3738). 2972 * Replace code:AHARDWAREBUFFER_USAGE_GPU_COLOR_OUTPUT with 2973 code:AHARDWAREBUFFER_USAGE_GPU_FRAMEBUFFER in the 2974 <<memory-external-android-hardware-buffer-usage, AHardwareBuffer Usage 2975 Equivalence>> table, and add 2976 ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT flag for this case 2977 (internal merge request 3741). 2978 * Add more references to `NV` and `KHR` ray tracing pipelines in 2979 discussions of creating pipelines, or generalize text so they need not 2980 all be mentioned by name (internal merge request 3743). 2981 * Allow *ShaderCallKHR* memory scope in ray tracing shaders, in the 2982 <<spirvenv-module-validation, Validation Rules within a Module>> 2983 appendix (internal merge request 3744). 2984 * Use Khronos Dockerhub image for spec builds in internal CI (internal 2985 merge request 3748). 2986 * Add the `<<VK_KHR_dedicated_allocation>>` extension as a dependency of 2987 `<<VK_ANDROID_external_memory_android_hardware_buffer>>` (internal merge 2988 request 3751). 2989 2990----------------------------------------------------- 2991 2992Change log for April 06, 2020 Vulkan 1.2.137 spec update: 2993 2994 * Update release number to 137 for this update. 2995 2996Github Issues: 2997 2998 * Incorporate several changes to the specification build process and HTML 2999 load-time scripts which pre-render KaTeX math, pre-fetch fonts, and 3000 perform several other optimizations which can significantly improve load 3001 time for the single-page HTML specification. In our internal evaluation 3002 these changes appear to primarily help when using Chrome or Chromium, 3003 with smaller improvements for Firefox and Safari. Speedups seem more 3004 significant on Linux, Windows, and Android platforms, while MacOS 3005 browsers may benefit less (public pull requests 702, 704, and 708). 3006 * Clarify that code:OpVariable is decorated with code:Location, not 3007 code:OpTypeStruct in the <<interfaces-iointerfaces-locations, Location 3008 Assignment>> section (public issue 1203). 3009 * Add a NOTE about the WSI origin location in the description of 3010 flink:vkQueuePresentKHR (public pull request 1208). 3011 * Add the `null-terminated` attribute to 3012 slink:VkPerformanceValueDataINTEL::pname:valueString in `vk.xml` (public 3013 pull request 1209). 3014 * Mark slink:VkPhysicalDeviceVulkan11Properties and 3015 slink:VkPhysicalDeviceVulkan12Properties structures as `returnedonly` in 3016 `vk.xml` (public pull request 1210). 3017 * Create explicit valid usage statements from text in the description of 3018 slink:VkValidationFeaturesEXT (public pull request 1212). 3019 * Update style guide to add "`user`" to the list of words *not* to use, 3020 instead recommending "`application`" (public pull request 1213). 3021 * Fix typos where `ext:` was used in the style guide instead of the new 3022 `apiext:` asciidoctor macro (public pull request 1214). 3023 * Miscellaneous minor markup and editing fixes (public pull request 1215). 3024 * Remove etext:KHR from promoted ename:VK_MAX_DRIVER_NAME_SIZE in the 3025 description of slink:VkPhysicalDeviceDriverProperties (public pull 3026 request 1218). 3027 * Correct use of `NULL` to dlink:VK_NULL_HANDLE in the 3028 <<acceleration-structure-inactive-prims, Inactive Primitives and 3029 Instances>> section (public pull request 1219). 3030 * Remove trailing periods on valid usage statement text, as required by 3031 the style guide, and add `scripts/deperiodize_vuids.py` to do this in 3032 the future if needed (public pull request 1220). 3033 3034Internal Issues: 3035 3036 * Provide a warning in the repository `README.adoc` of pending header 3037 changes to remove etext:VK_*_BEGIN_RANGE, etext:VK_*_END_RANGE, and 3038 etext:VK_*_RANGE_SIZE tokens (internal issue 872). 3039 * Describe the meaning of code:Device for the `<<VK_KHR_shader_clock>>` 3040 extension in the <<shaders-scope-device, Device>>, 3041 <<shaders-scope-queue-family, Queue Family>>, and 3042 <<shaders-scope-command, Command>> sections of the shader 3043 <<shaders-scope, Scope>> section (internal issue 1955). 3044 * Allow slink:VkDebugUtilsObjectNameInfoEXT::pname:pObjectName to be 3045 either NULL or an empty string to remove a previously set name (internal 3046 issue #2019). 3047 * Add missing VK_ERROR_OUT_OF_HOST_MEMORY error code in `vk.xml` for 3048 flink:vkEnumerateInstanceVersion (internal issue 2029). 3049 * Require code:R32i or code:R32ui image format for 3050 code:OpImageTexelPointer atomic operations in the 3051 <<spirvenv-module-validation, Validation Rules within a Module>> section 3052 (internal issue 2049). 3053 * Remove the `<pattern>` element from images used in the specification, to 3054 avoid complaints from prawn-svg during PDF spec builds (internal issue 3055 2053). 3056 * Clarify usable sample counts for empty subpasses in the 3057 <<features-variableMultisampleRate>> section and the related 3058 flink:vkCmdBindPipeline valid usage statement, as well as in the 3059 <<limits-framebufferNoAttachmentsSampleCounts>> 3060 <<renderpass-noattachments>> sections (internal issue 2066). 3061 * Clarify pname:aspectMask usage in render passes in 3062 slink:VkGraphicsPipelineCreateInfo valid usage statement 01565 and in 3063 slink:VkAttachmentReference2 (internal merge request 3664). 3064 * Remove unused etext:VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_KHR 3065 token from `vk.xml` and the `<<VK_KHR_ray_tracing>>` appendix 3066 (internal merge request 3680). 3067 * Require <<features-subgroup-extended-types, 3068 pname:shaderSubgroupExtendedTypes>> for Vulkan 1.2 (internal merge 3069 request 3680). 3070 * Generate symlinks from refpage aliases to the API they're aliasing 3071 (internal merge request 3694). 3072 * Add an alias from the old ename:VK_ANDROID_NATIVE_BUFFER_EXTENSION_NAME 3073 token (internal merge request 3697). 3074 * Add `scripts/compImages.sh` to compare all images in two git branches of 3075 the specification (internal merge request 3699). 3076 * Improve valid usage statements for `<<VK_NV_device_generated_commands>>` 3077 in flink:vkCmdExecuteGeneratedCommandsNV, 3078 slink:VkGeneratedCommandsInfoNV, 3079 flink:vkCmdPreprocessGeneratedCommandsNV, 3080 slink:VkIndirectCommandsStreamNV, slink:VkIndirectCommandsLayoutTokenNV 3081 and slink:VkGraphicsPipelineCreateInfo (internal merge request 3702). 3082 * Clarify differences between `<<VK_NV_ray_tracing>>` and 3083 `<<VK_KHR_ray_tracing>>` for 3084 slink:VkPipelineCreationFeedbackCreateInfoEXT pipeline creation, 3085 pname:shaderGroupHandleSize and pname:maxRecursionDepth limit 3086 requirement differences, and detangle `SPV_KHR/NV_ray_tracing` in the 3087 <<spirvenv-capabilities-table, List of SPIR-V Capabilities and enabling 3088 features or extensions>> (internal merge request 3710). 3089 * Add flink:vkGetImageViewAddressNVX and 3090 slink:VkImageViewAddressPropertiesNVX to `<<VK_NVX_image_view_handle>>` 3091 (internal merge request 3710). 3092 * Shorten 'make' output by reducing redundant logging output from refpage 3093 build targets (internal merge request 3729). 3094 * Replace sname: macro with slink: everywhere except language actually 3095 describing the structure in the macro argument (internal merge request 3096 3728). 3097 * Add flink:vkGetBufferMemoryRequirements2 and 3098 flink:vkGetImageMemoryRequirements2 to the commands for which the 3099 implementation makes guarantees about certain properties of the memory 3100 requirements in the <<resources-association, Resource Memory 3101 Association>> section, following the description of 3102 slink:VkMemoryRequirements (internal merge request 3730). 3103 * Add valid usage statements for 3104 `<<VK_ANDROID_external_memory_android_hardware_buffer>>` (internal merge 3105 request 3731). 3106 * Add requirements on the 3107 slink:VkAccelerationStructureMemoryRequirementsInfoKHR acceleration 3108 structure for which memory type bits must be exposed (internal 3109 advisorypanel issue 28). 3110 3111New Extensions: 3112 3113 * `<<VK_QCOM_render_pass_store_ops>>` 3114 3115----------------------------------------------------- 3116 3117Change log for March 24, 2020 Vulkan 1.2.136 spec update: 3118 3119 * Update release number to 136 for this update. 3120 3121Github Issues: 3122 3123 * Generate per-extension refpages from the extension appendices in the 3124 specification instead of the old, minimal generated refpages, and update 3125 the registry index to point to these refpages instead of the 3126 specification (public issue 1195, internal issue 1999). 3127 * Rename ename:VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL to 3128 ename:VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL 3129 to match the similar renaming of sname:VkQueryPoolCreateInfoINTEL to 3130 slink:VkQueryPoolPerformanceQueryCreateInfoINTEL (public issue 1207, 3131 internal issue 2048). 3132 3133Internal Issues: 3134 3135 * Add a new <<resources-sampler-ycbcr-conversion-format-features, Sampler 3136 Ycbcr Conversion Format Features>> section, and update 3137 elink:VkFormatFeatureFlagBits and valid usage statements for 3138 slink:VkSamplerCreateInfo and slink:VkSamplerYcbcrConversionCreateInfo 3139 to refer to it (internal issue 1963). 3140 * Comment out reserved but unused ename:VK_ACCESS_RESERVED_31_BIT_KHR to 3141 avoid generator script warnings (internal issue 2016). 3142 * Fix some `<<VK_KHR_ray_tracing>>` valid usage IDs that were broken in 3143 the 1.2.135 update (internal issue 2044). 3144 * Remove `const` qualifier from 3145 sname:VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::pname:pNext 3146 in `vk.xml` (internal issue 2047). 3147 * Remove `flowRoot` elements supported only by Inkscape from some of the 3148 images, and update a couple to 96 DPI from 90 DPI due to current 3149 Inkscape's insistence. This reduces warnings from prawn-svg during PDF 3150 builds (internal issue 2053). 3151 * Remove reference in the <<devsandqueues-lost-device, Lost Device>> 3152 section to a non-existent list of functions returning 3153 ename:VK_ERROR_DEVICE_LOST (internal merge request 3667). 3154 * Add valid usage statements to slink:VkImageViewCreateInfo for cube and 3155 cube array image view (internal merge request 3682). 3156 * Remove redundant valid usage statement 00228 from flink:vkCmdBlitImage 3157 (internal merge request 3684). 3158 * Document the Khronos-provided Docker image, whose use is recommended 3159 when building documents and generated files from this repository 3160 (internal merge request 3686). 3161 * Rename ename:VK_PIPELINE_COMPILE_REQUIRED_EXT from 3162 ename:VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT and add an alias from the 3163 old name, since it is not actually an error code. Add it to the 3164 `successcodes` attributes of appropriate commands in `vk.xml` (internal 3165 merge request 3687). 3166 3167----------------------------------------------------- 3168 3169Change log for March 17, 2020 Vulkan 1.2.135 spec update: 3170 3171 * Update release number to 135 for this update. 3172 3173Github Issues: 3174 3175 * Add missing dependencies of slink:VkExportMemoryWin32HandleInfoKHR on 3176 slink:VkExportMemoryAllocateInfo in the slink:VkMemoryAllocateInfo 3177 pname:pNext chain; slink:VkExportFenceWin32HandleInfoKHR on 3178 slink:VkExportFenceCreateInfo in the slink:VkFenceCreateInfo pname:pNext 3179 chain; and slink:VkExportSemaphoreWin32HandleInfoKHR on 3180 slink:VkExportSemaphoreCreateInfo in the slink:VkSemaphoreCreateInfo 3181 pname:pNext chain (public issue 1095). 3182 * Update the <<spirvenv-module-validation, Validation Rules within a 3183 Module>> section of the SPIR-V environment appendix to allow the 3184 code:PhysicalStorageBuffer64 addressing model (public issue 1199). 3185 * Fix markup in parameters section of 3186 flink:vkGetPhysicalDeviceXcbPresentationSupportKHR (public pull request 3187 1201). 3188 * Amend rules in the <<extensions-vendor-id, Registering a Vendor ID with 3189 Khronos>> section of the style guide to allow other Khronos APIs such as 3190 OpenCL to reserve vendor IDs here so they can be shared with those APIs 3191 (public KhronosGroup/OpenCL-Docs pull request 203). 3192 3193Internal Issues: 3194 3195 * Clarify layer loading order for slink:VkInstanceCreateInfo and in the 3196 <<extendingvulkan-layers, Layers>> chapter following the specification 3197 of slink:VkLayerProperties (internal issue 1986). 3198 * Simplify markup for SPIR-V versions required by different Vulkan 3199 versions in the <<spirvenv, Vulkan Environment for SPIR-V>> appendix 3200 (internal issue 2011). 3201 * Rename sname:VkQueryPoolCreateInfoINTEL to 3202 slink:VkQueryPoolPerformanceQueryCreateInfoINTEL in the 3203 `<<VK_INTEL_performance_query>>` extension (internal issue 2022). 3204 * Add ename:VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT to 3205 elink:VkValidationFeatureEnableEXT to specify that layers will process 3206 code:debugPrintfEXT operations (internal issue 2023). 3207 * Fix conflicting language in slink:VkSamplerYcbcrConversionCreateInfo 3208 valid usage statement 01653 (internal merge request 3629). 3209 * Add missing valid usage statement for slink:VkSparseImageMemoryBindInfo 3210 to require slink:VkImage objects created with the 3211 ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag set (internal merge 3212 request 3633). 3213 * Remove redundant valid usage statement 00122 from flink:vkCmdCopyImage 3214 (internal merge request 3643). 3215 * Fix several places where `VULKAN_1_1` was used in asciidoctor 3216 conditional markup instead of `VK_VULKAN_1_1` (internal merge request 3217 3654). 3218 * Fix conditional markup around slink:VkImageViewCreateInfo valid usage 3219 statement 01018 to ensure it doesn't overlap a similar valid usage 3220 statement written for another combination of enabled extensions and 3221 versions (internal merge request 3655). 3222 * Remove redundant valid usage statement from flink:vkCmdCopyImage that 3223 was already covered by statements for slink:VkImageCopy. Eventually this 3224 will be inverted so the statements are located with flink:vkCmdCopyImage 3225 but that requires more work and is deferred (internal merge request 3226 3656). 3227 * Clarify wording of slink:VkImageMemoryBarrier valid usage statement 3228 01671 and add a missing statement (internal merge request 3657). 3229 * Minor fixes to the style guide to bring it up to date with respect to 3230 the asciidoctor client, assignment of valid usage ID tags, and proper 3231 placement of valid usage statements (internal merge request 3662). 3232 * Add missing valid usage statements to slink:VkSubpassDescription2 based 3233 on comparable statements for slink:VkSubpassDescription (internal merge 3234 request 3663). 3235 3236New Extensions 3237 3238 * Ray Tracing package of extensions, including 3239 ** `<<VK_KHR_deferred_host_operations>>` 3240 ** `<<VK_KHR_pipeline_library>>` 3241 ** `<<VK_KHR_ray_tracing>>` 3242 * `<<VK_EXT_pipeline_creation_cache_control>>` 3243 * `<<VK_NV_device_diagnostics_config>>` 3244 * `<<VK_NV_device_generated_commands>>` (replacing 3245 `VK_NVX_device_generated_commands`, which was an experimental vendor 3246 extension and has been removed from the Specification and `vk.xml`). 3247 3248----------------------------------------------------- 3249 3250Change log for March 6, 2020 Vulkan 1.2.134 spec update: 3251 3252 * Update release number to 134 for this update. 3253 3254Github Issues: 3255 3256 * Fix flink:vkGetPhysicalDeviceToolPropertiesEXT implicit array valid 3257 usage statements, rewrite for consistency, and explicitly state lifetime 3258 of retrieved results (public pull request 1148). 3259 * Change use of "`happens before`" to glossary term "`happens-before`" 3260 (public pull request 1170). 3261 * Use glossary terms "`release operation`" / "`acquire operation`" instead 3262 of similar colloquial language (public pull request 1171). 3263 * Fix minor spelling errors and duplicated words (public pull request 3264 1174). 3265 * Remove duplicate "`to`" word (public pull request 1176). 3266 * Rephrase description of signaling / unsignaling for slink:VkEvent 3267 (public pull request 1179). 3268 * Update asciidoctor extension handling of C arrow operator to avoid need 3269 for escaping it in custom macros, and corresponding fixes to markup in 3270 the spec and to the style guide (public pull request 1186). 3271 * Move layout transition NOTE in the 3272 <<synchronization-image-layout-transitions, Image Layout Transitions>> 3273 section below the corresponding normative paragraph (public pull request 3274 1190). 3275 * Change the parent handle types of slink:VkDisplayKHR and 3276 slink:VkDisplayModeKHR in `vk.xml` (public pull request 1194). 3277 * Add missing `len` attribute for 3278 flink:vkQueueSignalReleaseImageANDROID::pname:pWaitSemaphores parameter 3279 in `vk.xml` (public pull request 1196). 3280 3281Internal Issues: 3282 3283 * Link to HTML preview of `SPV_KHR_non_semantic_info` link in the 3284 `<<VK_KHR_shader_non_semantic_info>>` appendix, instead of asciidoctor 3285 source document (internal merge request 3614). 3286 * Improve registry schema documentation description of allowed <enum> tags 3287 inside <remove> tags (internal merge request 3614). 3288 3289 * Clarify behavior when reading or writing image formats with padding 3290 ("`X`" components) in the "`Common Operation`" section of the <<copies>> 3291 chapter, and that padding components are unused in the elink:VkFormat 3292 description of such formats (internal issue 1122). 3293 * Clarify that flink:vkGetDeviceProcAddr can be used for device-level 3294 commands from instance extensions (internal issue 1960). 3295 * Add a note to the <<primsrast-lines-bresenham, Bresenham Line Segment 3296 Rasterization>> section clarifying that line rasterization does not 3297 depend on sample locations (internal issue 1855). 3298 * Add a new header macro dlink:VK_HEADER_VERSION_COMPLETE which provides 3299 the complete version (major, minor, and patch/release) of the Vulkan 3300 headers at compile time, and document the intended use cases for this 3301 macro (internal issue 1990). 3302 * Remove `optional` attribute from 3303 slink:VkDebugUtilsObjectNameInfoEXT::pname:pObjectName in `vk.xml`, 3304 making the string required (internal issue 2002). 3305 * Add a missing `structextends` attribute for 3306 slink:VkQueryPoolCreateInfoINTEL in `vk.xml` (internal merge request 3307 3599). 3308 * Clarify when implicit subpass dependencies are introduced in the 3309 definition of slink:VkSubpassDependency (internal merge request 3603). 3310 * Update several valid usage statements for flink:vkCmdResetQueryPool, 3311 flink:vkCmdBeginQuery, and flink:vkCmdBeginQueryIndexedEXT which 3312 interact with the presence of flink:vkCmdResetQueryPool commands in a 3313 command buffer, and restrict the VUs to performance queries (internal 3314 merge request 3604). 3315 * Simplify a hard-to-parse sentence in the <<textures-RGB-sexp, RGB to 3316 Shared Exponent Conversion>> section (internal merge request 3606). 3317 * Add a `pdfwidth` attribute to markup for images inside tables, to work 3318 around a crash occurring in recent versions of asciidoctor-pdf (internal 3319 merge request 3626). 3320 3321New Extensions 3322 3323 * `<<VK_QCOM_render_pass_transform>>` 3324 3325----------------------------------------------------- 3326 3327Change log for February 15, 2020 Vulkan 1.2.133 spec update: 3328 3329 * Update release number to 133 for this update. 3330 3331Github Issues: 3332 3333 * Clarify language describing the <<commandbuffers-lifecycle, command 3334 buffer lifecycle>> (public pull request 1152). 3335 * Add anchor handles to chapters and VUID statements in the HTML outputs 3336 (public pull request 1157). 3337 * Update declaration of flink:vkCmdDrawIndexedIndirectCountAMD to alias 3338 the core function rather than the KHR extension function (public pull 3339 request 1165). 3340 * Remove redundant NOTE discussing 3341 ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT after the description 3342 of slink:VkCommandBufferInheritanceInfo.txt (public pull request 1167). 3343 * Reserved vendor ID for Codeplay (public pull request #1167). 3344 3345Internal Issues: 3346 3347 * Restrict flag bits to bit positions 0..30. Add language to the 3348 <<fundamentals-validusage-flags, Valid Usage for Flags>> section 3349 expressing the restriction; to the registry documentation where the 3350 `bitpos` attribute is defined; and finally, add a test to the generator 3351 scripts that warns of bits 31 and higher being used (internal issue 3352 1945). 3353 * Clarify dynamic indexing of sampler objects in the 3354 <<interfaces-resources-descset, Descriptor Set Interface>> section, to 3355 be controlled by the same feature as sampled images (internal issue 3356 1951). 3357 * Make the effect of query reset commands requiring multiple passes to 3358 complete explicit, by disallowing resets of the same query from the same 3359 primary command buffer in the description of flink:vkCmdResetQueryPool 3360 and the valid usage statements for ftext:vkCmdBeginQuery* (internal 3361 issue 1965). 3362 * Update interaction between elink:VkFormatFeatureFlagBits affecting 3363 slink:VkSamplerYcbcrConversionCreateInfo::pname:forceExplicitReconstruction 3364 (internal merge request 3533). 3365 * Generate implicit pname:sType-unique valid usage statements from 3366 `validitygenerator.py` even for pname:pNext chains with only a single 3367 valid structure type, to enable validation layers work (internal merge 3368 request 3534). 3369 * Clean up wording of some flink:vkBindImageMemory valid usage statements 3370 (internal merge request 3547). 3371 * Mark the `VK_EXT_shader_subgroup_vote` and 3372 `VK_EXT_shader_subgroup_ballot` as deprecated in `vk.xml` (internal 3373 merge request 3558). 3374 * Tighten slink:VkSamplerYcbcrConversionCreateInfo::pname:chromaFilter 3375 valid usage restriction to be ename:VK_FILTER_NEAREST instead of 3376 ename:VK_FILTER_LINAER, now that other filters exist (internal merge 3377 request 3561). 3378 * Add valid usage statements to slink:VkCommandPoolCreateInfo and 3379 slink:VkDeviceQueueCreateInfo requiring that the corresponding 3380 ename:VK_COMMAND_POOL_CREATE_PROTECTED_BIT and 3381 ename:VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT not be set if the protected 3382 memory feature is not enabled. Previously this restriction was described 3383 for the elink:VkCommandPoolCreateFlagBits and 3384 elink:VkDeviceQueueCreateFlagBits types containing those flags, but not 3385 in valid usage statements (internal merge request 3563). 3386 * Fix conditional markup in the <<shaders-scope-device>> and 3387 <<shaders-scope-queue-family>> sections to apply to Vulkan 1.2, as well 3388 as `VK_KHR_vulkan_memory_model` (internal merge request 3570). 3389 * Add performance queries to the list in the introduction of the 3390 <<supported query types, queries>> chapter (internal merge request 3391 3577). 3392 3393New Extensions 3394 3395 * `<<VK_KHR_shader_non_semantic_info>>` 3396 3397----------------------------------------------------- 3398 3399Change log for January 20, 2020 Vulkan 1.2.132 spec update: 3400 3401 * Update release number to 132 for this update. 3402 3403Github Issues: 3404 3405 * Move and reword a NOTE in the <<extendingvulkan-extensions, Extensions>> 3406 section (public pull request 1131). 3407 * Change redundant description of application error when using 3408 flink:vkMapMemory into a non-normative NOTE (public pull request 1143). 3409 * Remove redundant valid usage statement for flink:vkCmdExecuteCommands 3410 (public pull request 1151). 3411 * Remove redundant command buffer 3412 ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT language in 3413 flink:vkCmdExecuteCommands valid usage statements (public pull request 3414 1153). 3415 * Add flink:vkBeginCommandBuffer valid usage statement to prevent using a 3416 primary command buffer with both the 3417 ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT and 3418 ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flags (public pull 3419 request 1154). 3420 * Add slink:VkRenderPassBeginInfo valid usage statements for 3421 pname:renderArea (public pull request 1159). 3422 * Add missing valid usage statements for flink:vkCmdBeginRenderPass when 3423 `VK_KHR_separate_depth_stencil_layouts` is enabled (public 3424 KhronosGroup/Vulkan-ValidationLayers issue 1470). 3425 3426Internal Issues: 3427 3428 * Clarify the definition of "`transfer commands`" for 3429 <<synchronization-pipeline-stages-transfer, 3430 ename:VK_PIPELINE_STAGE_TRANSFER_BIT>> (internal issue 816). 3431 * Clarify VK_ATTACHMENT_STORE_OP_DONT_CARE and reorder render pass chapter 3432 (internal issue 1098). 3433 * Clarify that <<pipelines-dynamic-state, Dynamic State>> can be set 3434 before pipeline bind, and update valid usage statements accordingly 3435 (internal issue 1624). 3436 * Clarify the behavior of floating-point divide by zero in the 3437 <<spirvenv-precision-operation, Precision and Operation of SPIR-V 3438 Instructions>> section (internal issue 1669). 3439 * Add a valid usage statement to flink:vkCmdResetQueryPool which allows 3440 not calling flink:vkCmdEndQuery if a prior flink:vmCmdResetQuery command 3441 was called (internal issue 1700). 3442 * Refactor specification of shader scopes into the new <<shaders-scope, 3443 Scope>> section, and modify other references to this language 3444 accordingly. Also describe quad invocation groups properly, with 3445 derivative and quad group operations referencing the description, and 3446 call out helper invocations as being able to become spontaneously 3447 inactive. Simplify parts of the texturing chapter accordingly (internal 3448 issues 1824, 1884, 1885, 1911). 3449 * Stop claiming that semaphore signals are ordered between different queue 3450 commands in the <<synchronization-signal-operation-order>> section 3451 (internal merge request 3542). 3452 * Move a valid usage statement from slink:VkBindImagePlaneMemoryInfo to 3453 flink:vkBindImageMemory2, where it can be determined (internal merge 3454 request 3548). 3455 3456----------------------------------------------------- 3457 3458Change log for January 15, 2020 Vulkan 1.2.131 spec update: 3459 3460 * Vulkan 1.2 initial release. Update release number to 131 for this 3461 update. The patch number will be used for all Vulkan 1.x spec updates, 3462 and continue to increment continuously from the previous Vulkan 1.1.130 3463 update. 3464 3465Github Issues: 3466 3467 * Use the attributes {prime}, {YCbCr}, and {RGBprime} for better markup of 3468 prime symbols, and ease of changing the markup for the commonly used 3469 color format names (public issue 636). 3470 * Expand the <<extendingvulkan-extensions-extensiondependencies, Extension 3471 Dependencies>> section to acknowledge that extension dependencies are 3472 usually, but not always satisfied by promoted versions of the 3473 dependencies, and point to the extension and version appendices for more 3474 information (public issue 1085). 3475 * Clarify the <<features-shaderStorageImageExtendedFormats, 3476 pname:shaderStorageImageExtendedFormats>> feature and add corresponding 3477 formats to the <<formats-mandatory-features-2byte>>, 3478 <<formats-mandatory-features-10bit>>, 3479 <<formats-mandatory-features-16bit>>, and 3480 <<formats-mandatory-features-64bit>> tables (public pull request 1098). 3481 * Fix issue 2 wording in the `<<VK_KHR_surface>>` appendix (public pull 3482 request 1100). 3483 * Fix valid usage statements for 3484 slink:VkSwapchainCreateInfoKhr::pname:minImageCount interactions with 3485 `<<VK_KHR_shared_presentable_image>>` (public pull request 1101). 3486 * Change the etext:VK_QUERY_SCOPE_* tokens in the 3487 slink:VkPerformanceCounterScopeKHR to aliases of new 3488 etext:VK_PERFORMANCE_COUNTER_SCOPE_* tokens, following the naming 3489 conventions for enumerants (public issue 1130). 3490 * Move `NV` extension pipe stages in elink:VkShaderStageFlagBits so they 3491 are not included in enmae:VK_SHADER_STAGE_ALL_GRAPHICS (public pull 3492 request 1133). 3493 * Clarify the introduction of the "`Surface Queries`" section of the 3494 <<wsi, Window System Integration>> chapter (public pull request 1135). 3495 * Fix macros that consume codelike text like pname:foo\->bar (public pull 3496 request 1149). 3497 3498Internal Issues: 3499 3500 * Add a new <<fundamentals-errorcodes, error code>>, 3501 ename:VK_ERROR_UNKNOWN, that can be returned by any function that has 3502 error returns (internal issue 1654). 3503 * Remove the `<<VK_EXT_filter_cubic>>` requirement to cubic filter the 3504 formats etext:*USCALED_PACKED32, etext:*SSCALED_PACKED32, 3505 etext:*UINT_PACK32, and etext:*SINT_PACK32 in the 3506 <<features-required-format-support, Required Format Support>> section 3507 (internal issue 1934). 3508 * Add a missing valid usage statement for 3509 `<<VK_KHR_buffer_device_address>>` to slink:VkBindBufferMemoryInfo, 3510 based on a similar statement for flink:vkBindBufferMemory (internal 3511 merge request 3512). 3512 * Fix some 'name:' macros to the correct 'pname:' (internal merge request 3513 3529). 3514 * Changes to script tools to stay relatively aligned with OpenXR scripts 3515 (internal merge request 3530). 3516 3517----------------------------------------------------- 3518 3519Change log for December 9, 2019 Vulkan 1.1.130 spec update: 3520 3521 * Update release number to 130 3522 3523Github Issues: 3524 3525 * Mark slink:VkPipelineExecutableInternalRepresentationKHR as 3526 `returnedonly` in `vk.xml` (public pull request 1092). 3527 * Use 'slink:' in autogenerated valid usage statements instead of 'sname:' 3528 (public pull request 1093). 3529 * Split flink:vkGetQueryPoolResults VU statement 00815, which had 3530 disallowed internal asciidoctor conditionals into two (public issue 3531 1094). 3532 * Minor markup and editing fixes (public pull request 1099). 3533 * Hide outdated valid usage statement when not building with timeline 3534 semaphore extension (public pull request 1121). 3535 * Add `<<VK_NV_glsl_shader>>` deprecation note (public pull request 1125). 3536 * Add SPV and GLSL links to `<<VK_KHR_multiview>>` (public pull request 3537 1128). 3538 3539Internal Issues: 3540 3541 * Clarify and consistently refer to the shader interface matching rules in 3542 the <<interfaces, Shader Interfaces>> chapter (internal issue 1067). 3543 * Clarify that inner array dimensions can't be sized with specialization 3544 constants in the <<spirvenv-module-validation, Validation Rules within a 3545 Module>> section (internal issue 1739). 3546 * Use consistent markup for nested access (members, array references, 3547 pointers) to structure members and function parameters (internal issues 3548 503, 1765). 3549 * Make slink:VkDeviceQueueInfo2::flags optional in `vk.xml` to remove an 3550 inappropriate valid usage statement (internal issue 1805). 3551 * Fix API name assignment for valid usage blocks in `scripts/reflow.py` 3552 (internal issue 1809). 3553 * Make spec language more internally consistent by fixing remaining cases 3554 where the term "`an instance of (structurename)`" was used, and 3555 expanding the style guide rules for describing pname:pNext chains along 3556 with corresponding edits it (internal issue 1814). 3557 * Disallow code:Workgroup memory and execution scope and code:Workgroup 3558 storage class in all but compute, mesh, and task shaders in the 3559 <<spirvenv-module-validation, Validation Rules within a Module>> 3560 section. There is an exception for code:Workgroup execution scope in 3561 tessellation control shaders because we do not have a more appropriate 3562 scope for patch barriers (internal issue 1905). 3563 * Restore 'Promoted to Vulkan 1.1 Core' comments in extension appendices, 3564 which were accidentally removed in spec revision 1.1.129 (internal issue 3565 1914). 3566 * Add some minor markup fixes as well as new valid usage statements for 3567 slink:VkAttachmentDescription, slink:VkAttachmentDescription2KHR, and 3568 slink:VkAttachmentReference2KHR (internal merge request 3493). 3569 3570New Extensions 3571 3572 * `<<VK_EXT_tooling_info>>` 3573 3574----------------------------------------------------- 3575 3576Change log for November 25, 2019 Vulkan 1.1.129 spec update: 3577 3578 * Update release number to 129 3579 3580Github Issues: 3581 3582 * Rename "`pixel shaders`" to "`fragment shaders`" (public issue 1082). 3583 * Fix some markup in external semaphore extension (public pull request 3584 1083). 3585 * Fix styleguide em-dash example (public pull request 1088). 3586 * Update `.gitignore` to include some additional static refpages (public 3587 pull request 1089). 3588 * Restructure query language in <<wsi, Window System Integration (WSI)>> 3589 chapter - split into sections, reordered orphaned paragraphs, simplify 3590 language (public pull request 1090). 3591 3592Internal Issues: 3593 3594 * Remove NVIDIA contributors from `<<VK_KHR_performance_query>>` (internal 3595 merge request 3481). 3596 3597New Extensions 3598 3599 * `<<VK_KHR_buffer_device_address>>` 3600 3601----------------------------------------------------- 3602 3603Change log for November 18, 2019 Vulkan 1.1.128 spec update: 3604 3605 * Update release number to 128 3606 3607Github Issues: 3608 3609 * Fix valid usage condition for 3610 flink:vkAllocationMemory::pname:pAllocateInfo (public issue 1032). 3611 * Change explicit valid usage statements for queue transfer operations in 3612 flink:vkCmdWaitEvents and flink:vkCmdPipelineBarrier, and corresponding 3613 language in the <<synchronization-queue-transfers-release>> section, to 3614 incorporate access masks and clarify when queue transfer ops occur 3615 (public pull request 1046). 3616 * Ignore disabled bits in valid usage statements (public pull request 3617 1062). 3618 * Fix some broken HTML links (public pull request 1063). 3619 * Change ename:VK_PIPELINE_CREATE_DISPATCH_BASE to an alias of new token 3620 ename:VK_PIPELINE_CREATE_DISPATCH_BASE_BIT, to follow the naming 3621 conventions for bitmasks (public issue 1075). 3622 3623Internal Issues: 3624 3625 * Add valid usage statement to flink:vkQueueSubmit for attempted use of a 3626 resource currently not available for use (internal issue 1751). 3627 * Make it invalid for an implementation to return anything but 3628 ename:VK_SUCCESS for the flink:vkFreeDescriptorSets and 3629 flink:vkResetDescriptorPool commands (internal issue 1781). 3630 * Add a note clarifying the relationship between 3631 code:SubgroupLocalInvocationId and code:LocalInvocationId or 3632 code:LocalInvocationIndex to the <<interfaces-builtin-variables-sgli, 3633 code:SubgroupLocalInvocationId>> description (internal issue 1810). 3634 * Add valid usage statements for scissor regions to 3635 slink:VkPipelineViewportStateCreateInfo based on similar statements for 3636 flink:vkCmdSetScissor, and generalize all these VUs to cover each 3637 element of the pname:pScissors array (internal issue 1861). 3638 * Fix the basis matrix for <<textures-texel-cubic-filtering, Texel Cubic 3639 Filtering>> (internal issue 1878). 3640 * Make the 3641 slink:VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT::pname:pNext 3642 member non-const, like other feature structures (internal issue 1880). 3643 * Document that aggregate load/store may access padding bytes in the 3644 <<memory-model-memory-location, Memory Location>> appendix (internal 3645 cross-api/memory-model issue 113). 3646 * Clarify in the description of elink:VkDescriptorBindingFlagBitsEXT that 3647 ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT descriptors allow 3648 for updating different descriptors in the same set at the same time on 3649 multiple threads (internal merge request 3419). 3650 * Clarify that resolve attachments don't need to be compatible in the 3651 <<renderpass-compatibility, Render Pass Compatibility>> section 3652 (internal merge request 3422). 3653 * Add Visual Studio folders to `.gitignore` (internal merge request 3450). 3654 * Add language to 3655 slink:sname:VkPipelineCoverageModulationStateCreateInfoNV documenting 3656 that coverage modulation has no effect when using the 3657 ename:VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV reduction mode, clarifying 3658 an interaction with `<<VK_NV_coverage_reduction_mode>>` (internal merge 3659 request 3456). 3660 3661New Extensions 3662 3663 * `<<VK_KHR_performance_query>>` 3664 3665----------------------------------------------------- 3666 3667Change log for November 4, 2019 Vulkan 1.1.127 spec update: 3668 3669 * Update release number to 127 3670 3671Github Issues: 3672 3673 * Consistently use the feature name pname:pipelineExecutableInfo as found 3674 in `vk.xml` and the generated header files, instead of 3675 pname:pipelineExecutableProperties as sometimes used in the 3676 specification text (public issue 1061). 3677 * Clarify the definition of the code:PrimitiveId returned by a 3678 `<<VK_NV_ray_tracing>>` shader (public issue 1068). 3679 3680Internal Issues: 3681 3682 * Remove unused `draw_renderpass_validation.txt` valid usage text 3683 (internal issue 1869). 3684 * Require <<features-features-timelineSemaphore, pname:timelineSemaphore>> 3685 if the `<<VK_KHR_timeline_semaphore>>` extension is supported (internal 3686 issue 1873). 3687 * Fix typos in slink:VkBindBufferMemoryInfo valid usage statement 02791 3688 and various slink:VkSparseMemoryBind VUs (internal merge request 3411). 3689 * Minor non-semantic markup and diagram fixes (internal merge request 3690 3417). 3691 * Clarify that <<interfaces-iointerfaces-locations, Location>> values are 3692 physical slots, not a virtual table that just imposes an overall maximum 3693 on the number of locations that can be used (internal merge request 3694 3426). 3695 * Add links to GLSL specs from the `<<VK_KHR_shader_clock>>` appendix, as 3696 well as expected mappings for GLSL builtins (internal merge request 3697 3429). 3698 3699New Extensions 3700 3701 * `<<VK_KHR_separate_depth_stencil_layouts>>` 3702 3703----------------------------------------------------- 3704 3705Change log for October 21, 2019 Vulkan 1.1.126 spec update: 3706 3707 * Update release number to 126 3708 3709Github Issues: 3710 3711 * Update the elink:VkAccessFlagBits etext:VK_ACCESS_MEMORY_* flags 3712 definition to make clear that ename:VK_ACCESS_MEMORY_READ_BIT and 3713 ename:VK_ACCESS_MEMORY_WRITE_BIT are meant to be equivalent to setting 3714 all applicable etext:READ and etext:WRITE access flags, and update the 3715 <<synchronization-access-types-supported, supported access types>> table 3716 accordingly (public pull request 1014). 3717 * Remove misleading NOTE in the <<synchronization-dependencies-chains>> 3718 section (public pull request 1048). 3719 * Clarify the memory mapping NOTE about invalidation described for 3720 flink:vkInvalidateMappedMemoryRanges (public pull request 1049). 3721 * Fix label for flink:vkCmdWaitEvents VUID 02803 (public pull request 3722 1056). 3723 * Styleguide fixes to several NOTES in the <<synchronization>> chapter 3724 (public pull request 1057). 3725 * Markup fix to <<features-features-timelineSemaphore>> section (public 3726 pull request 1058). 3727 * Convert some external links to `https` protocol (public pull request 3728 1064). 3729 * Remove unsupported nested links inside table captions (public pull 3730 request 1067 + followon tweak to make 'allchecks' target pass). 3731 3732Internal Issues: 3733 3734 * Restrict the SPIR-V code:Invariant decoration to only be used with 3735 code:Output variables in the <<spirvenv-module-validation, Validation 3736 Rules within a Module>> section (internal issue 1832). 3737 * Clarify that the <<features-independentResolve, independentResolve>> 3738 feature implies support for the <<features-independentResolveNone, 3739 independentResolveNone>> feature (internal issue 1848). 3740 * Clarify self-contradictory language for slink:VkSubpassDescription to 3741 say that resolves only happen within the render area (internal issue 3742 1850). 3743 * Add valid usage statements for slink:VkMemoryAllocateInfo and 3744 corresponding language to elink:VkExternalMemoryFeatureFlagBitsKHR to 3745 restrict implementations and applications from using both an external 3746 host memory allocation and dedicated allocation (internal merge request 3747 3375). 3748 3749----------------------------------------------------- 3750 3751Change log for October 13, 2019 Vulkan 1.1.125 spec update: 3752 3753 * Update release number to 125. 3754 3755Github Issues: 3756 3757 * Allow slink:VkRenderPassFragmentDensityMapCreateInfoEXT to extend 3758 slink:VkRenderPassCreateInfo2KHR in `vk.xml` (public issue 1027). 3759 * Fix markup in `<<VK_EXT_external_memory_dma_buf>>` appendix (public pull 3760 request 1051). 3761 * Update .gitignore (public pull request 1052). 3762 3763Internal Issues: 3764 3765 * Disallowed slink:VkEvent from participating in queue family ownership 3766 transfers in the <<devsandqueues-index, Queue Family Index>> section 3767 (internal issue 1691). 3768 * Relax language describing default NT handle access rights for 3769 slink:VkExportMemoryWin32HandleInfoKHR and 3770 slink:VkExportSemaphoreWin32HandleInfoKHR (internal issue 1838). 3771 * Fix markup for slink:VkDeviceCreateInfo valid usage statement 00372 to 3772 remove imbedded asciidoctor conditionals by splitting it into two VUs 3773 (internal issue 1846). 3774 * Clarify lifetime of samplers used as immutable samplers in 3775 slink:VkDescriptorSetLayoutBinding (internal issue 1849). 3776 * Add a valid usage statement prohibiting flink:vkCmdBeginQuery on 3777 timestamp queries (internal issue 1851). 3778 * Correct some <<Precision of GLSL.std.450 Instructions, SPIR-V 3779 instruction precisions>> (internal merge request 3391). 3780 * Fix a typo in flink:vkQueueBindSparse valid usage statement 03245 3781 (internal merge request 3394). 3782 3783New Extensions 3784 3785 * `<<VK_KHR_spirv_1_4>>` 3786 3787----------------------------------------------------- 3788 3789Change log for October 6, 2019 Vulkan 1.1.124 spec update: 3790 3791 * Update release number to 124. 3792 3793Github Issues: 3794 3795 * Fix Makefile SPECREMARK macro to work when not building in a git tree 3796 (public issue 992). 3797 * Ignore pname:aspectMask for unused attachments in 3798 slink:VkSubpassDescription2KHR valid usage statements (public pull 3799 request 1028). 3800 * Minor markup / spelling fixes (public pull requests 1035, 1045). 3801 3802Internal Issues: 3803 3804 * Fix markup in Valid Usage statement for slink:VkCreateFramebuffer 3805 (internal issue 1823). 3806 * Add a new <<synchronization-signal-operation-order, _signal operation 3807 order_>> section to the synchronization chapter which describes in 3808 detail the ordering guarantees provided by the API between fence and 3809 semaphore signal operations (internal merge request 3368). 3810 * Move generated `appendix/meta/` files into the Makefile GENERATED 3811 directory (internal merge request 3381). 3812 3813New Extensions 3814 3815 * `<<VK_KHR_shader_clock>>` 3816 * `<<VK_KHR_timeline_semaphore>>` 3817 3818----------------------------------------------------- 3819 3820Change log for September 15, 2019 Vulkan 1.1.123 spec update: 3821 3822 * Update release number to 123. 3823 3824Github Issues: 3825 3826 * Add missing aspect mask descriptions to elink:VkImageAspectFlagBits 3827 (public pull request 1029). 3828 * Modify validity generator script to not check validity of ignored values 3829 in same-parent valid usage statements (public pull request 1030). 3830 * Make slink:VkDescriptorUpdateTemplateCreateInfo::pname:descriptorSetLayout 3831 `noautovalidity` in `vk.xml` (public pull request 1031). 3832 * Fix footnote markup in the <<vkGetDeviceProcAddr behavior>> table 3833 (public pull request 1034). 3834 3835Internal Issues: 3836 3837 * Require that <<interfaces-builtin-variables-sgs, code:SubgroupSize>> be 3838 a power of two (internal issue 1499). 3839 * Clarify that shaderFloat64 and shaderInt64 enable all storage classes, 3840 while shaderFloat16, shaderInt8, and shaderInt16 only enable 3841 non-interface storage classes. in the <<features-shaderFloat64>>, 3842 <<features-shaderInt64>>, and <<features-shaderInt16>> descriptions and 3843 for slink:VkPhysicalDeviceShaderFloat16Int8FeaturesKHR (internal issue 3844 1582). 3845 * Fix broken asciidoctor conditional logic in the 3846 <<spirvenv-module-validation, Validation Rules within a Module>> 3847 section, and add style guide language to help avoid this problem in the 3848 future (internal issue 1808). 3849 * Modify VUID assignment script to use the first API include in a block as 3850 part of the VUID name rather than the last one, so the VUID is based on 3851 the promoted API name (internal issue 1809). 3852 * Cleanup string descriptions to consistently refer to "`null-terminated 3853 UTF-8`" strings (internal issue 1813). 3854 * Clarify the purpose of the 3855 slink:VkPhysicalDeviceLimits::ptext:maxDescriptorSet* limits (internal 3856 merge request 3357). 3857 * Fix the slink:VkPhysicalDeviceRayTracingPropertiesNV limits for 3858 pname:maxGeometryCount, pname:maxInstanceCount, and 3859 pname:maxTriangleCount in the <<limits-required, Required Limits>> 3860 section (internal issue 3372). 3861 * Update SPIR-V image op sign-matching rules in the 3862 <<spirvenv-module-validation, Validation Rules within a Module>> 3863 section, the <<formats-numericformat>> table, and the 3864 <<interfaces-resources-descset, Descriptor Set Interface>> section 3865 (internal spirv/SPIR-V issue 332). 3866 3867New Extensions 3868 3869 * `<<VK_KHR_shader_subgroup_extended_types>>` 3870 * `<<VK_GOOGLE_user_type>>` 3871 3872----------------------------------------------------- 3873 3874Change log for September 8, 2019 Vulkan 1.1.122 spec update: 3875 3876 * Update release number to 122. 3877 3878Internal Issues: 3879 3880 * Add style guide language on not using standalone `+` signs (internal 3881 issue 736); not using leading whitespace for markup (internal issue 3882 747); and on keeping descriptions of a single API in a contiguous block 3883 of markup (internal issue 949), and apply them to the specification. 3884 * Add a glossary definition of "`constant integral expression`", pointing 3885 to the SPIR-V "`constant instruction`" definition (internal issue 1225). 3886 * Many minor edits to improve writing style consistency and capture 3887 additional style guidelines (internal issue 1553). 3888 * Clarify that <<fragops-depth-write, depth writes are not performed>> if 3889 there is no depth framebuffer attachment (internal issue 1771). 3890 * Allow implementations to use rectangular line style of interpolation for 3891 <<primsrast-lines-bresenham, wide Bresenham lines>>, though replicating 3892 attributes is still preferred. Clarify that code:FragCoord is not 3893 replicated (internal issue 1772). 3894 * Resolve a contradiction in valid usage statements for 3895 slink:VkImageCreateInfo and slink:VkImageStencilUsageCreateInfoEXT 3896 (internal issue 1773). 3897 * Add style guide discussion of markup for indented equations, and use 3898 markup workaround for asciidoctor 2 compatibility (internal issue 1793). 3899 * Deprecate the `<<VK_EXT_validation_flags>>` extension in `vk.xml` and 3900 the extension appendix (internal issue 1801). 3901 * Add a new checker script `scripts/xml_consistency.py`. This is not 3902 currently run as part of internal CI (internal merge request 3285). 3903 * Correct "`an`" -> "`a`" prepositions where needed (internal merge 3904 request 3334). 3905 * Clarify that the <<features-uniformBufferStandardLayout, 3906 pname:uniformBufferStandardLayout>> feature is only required when the 3907 extension defining it is supported (internal merge request 3341). 3908 * Bring scripts into closer sync with OpenXR, mainly through conversion of 3909 comments to docstrings where appropriate, and add gen-scripts-docs.sh 3910 (internal merge request 3324). 3911 * Correct pname:maxDrawMeshTasksCount to 2^16^-1 in the <<limits-required, 3912 Required Limits>> table (internal merge requests 3361). 3913 3914New Extensions 3915 3916 * `<<VK_IMG_format_pvrtc>>` (public issue 512). 3917 3918----------------------------------------------------- 3919 3920Change log for August 25, 2019 Vulkan 1.1.121 spec update: 3921 3922 * Update release number to 121. 3923 3924Github Issues: 3925 3926 * Add missing `structextends` attribute in `vk.xml` for 3927 slink:VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR (public 3928 issue 1018). 3929 * Change attributes of flink:vkCmdCopyAccelerationStructureNV, 3930 flink:vkCmdWriteAccelerationStructuresPropertiesNV, 3931 flink:vkCmdBuildAccelerationStructureNV, and flink:vkCmdTraceRaysNV to 3932 require that these commands execute outside renderpasses (public issue 3933 1021). 3934 * Add an issue to the `<<VK_EXT_buffer_device_address>>` appendix 3935 discussing the introduction of new names and aliasing by equivalent old 3936 names (public pull request 1024). 3937 3938Internal Issues: 3939 3940 * Protect the `VK_KHR_sampler_mirror_clamp_to_edge` extension with 3941 asciidoctor conditionals, and remove it from the core-only specification 3942 builds, where it had previously been force-included in the Makefile. It 3943 is now treated like any other extension (internal issue 1776). 3944 * Edit some asciidoctor anchor names starting with `features-features-` to 3945 just start with `features-`, since the old chapters was split into 3 3946 pieces. There are still some mild naming inconsistencies with anchors 3947 which may be addressed in the future (internal issue 1792). 3948 * Add `KHR` alias for the non-suffixed extension token 3949 ename:VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE, for compatibility 3950 with naming rules for extensions (internal issue 1796). 3951 * Clarify requirements for external memory in NOTEs for 3952 sname:VkExternalMemoryBufferCreateInfo, and valid usage statements for 3953 flink:vkBindBufferMemory, slink:VkBindBufferMemoryInfo, 3954 flink:vkBindImageMemory, and slink:VkBindImageMemoryInfo (internal merge 3955 request 3301). 3956 * Make extension version numbers in `vk.xml` and extension appendices 3957 consistent. In a few cases, we could not recover history at this 3958 granularity, and left the summary of a version's change undefined 3959 (internal merge request 3323). 3960 * Fix invocation of `CodeInlineMacro` in the Ruby extension backing the 3961 `code:` macro, which was delegating to the wrong base class (internal 3962 merge request 3331). 3963 * Modify `reg.py` to do a better job of recognizing equivalent <enum> 3964 definitions. 3965 * Add a `sortorder` attribute to XML feature and extension tags. 3966 3967New Extensions 3968 3969 * `<<VK_AMD_device_coherent_memory>>` 3970 3971----------------------------------------------------- 3972 3973Change log for August 17, 2019 Vulkan 1.1.120 spec update: 3974 3975 * Update release number to 120. 3976 3977Github Issues: 3978 3979 * Add slink:VkAccelerationStructureTypeNV explicitly to extension XML for 3980 `<<VK_NV_ray_tracing>>` (public issue 848). 3981 * Add missing valid usage statements for feature flags in 3982 slink:VkCommandBufferInheritanceInfo (public pull request 1017). 3983 3984Internal Issues: 3985 3986 * Clarify behavior of non-premultiplied destination colors for 3987 `<<VK_EXT_blend_operation_advanced>>` prior to the definition of 3988 slink:VkBlendOverlapEXT (internal issue 1766). 3989 * Fix the confusing phrasing "`no other queue must: be (doing something)`" 3990 for flink:vkQueuePresentKHR, flink:vkQueueSubmit, and 3991 flink:vkQueueBindSparse (internal issue 1774). 3992 * Add `<<VK_EXT_validation_features>>` flag to enable best practices 3993 checks, which will soon be available in the validation layer (internal 3994 issue 1779). 3995 * Specify allowed characters for VUID tag name components in the style 3996 guide (internal issue 1788). 3997 * Update links to SPIR-V extension specifications, and parameterize their 3998 markup in case the URLs change in the future (internal issue 1797). 3999 * Fix an off-by-one error in the valid usage statement for 4000 slink:VkPipelineExecutableInfoKHR (internal merge request 3303). 4001 * Clean up markup indentation not matching the style guide (internal merge 4002 request 3314). 4003 * Minor script updates to allow refpage aliases, generate a dynamic TOC 4004 for refpages, generate Apache rewrite rules for aliases, open external 4005 links from refpages in a new window, and synchronize with the OpenCL 4006 scripts. This will shortly enable a paned navigation setup for refpages, 4007 similar to the OpenCL 2.2 refpages (internal merge request 3322). 4008 * Script updates to add tests to the checker, refactor and reformat code, 4009 generate better text for some valid usage statements, use more Pythonic 4010 idioms, and synchronize with the OpenXR scripts (internal merge request 4011 3239). 4012 * Script updates and minor fixes in spec language to not raise checker 4013 errors for refpage markup of pages not existing in the API, such as 4014 VKAPI_NO_STDINT_H. Remove corresponding suppression of some 4015 check_spec_links.py tests from .gitlab-ci.yml and 'allchecks' target 4016 (internal merge request 3315). 4017 4018----------------------------------------------------- 4019 4020Change log for August 11, 2019 Vulkan 1.1.119 spec update: 4021 4022 * Update release number to 119. 4023 * A new extension was accidentally left out of the 1.1.118 spec update. 4024 This update corrects that oversight. 4025 4026New Extensions: 4027 4028 * `<<VK_KHR_pipeline_executable_properties>>` 4029 4030----------------------------------------------------- 4031 4032Change log for August 11, 2019 Vulkan 1.1.118 spec update: 4033 4034 * Update release number to 118. 4035 4036Github Issues: 4037 4038 * Update `BUILD.adoc` to specifically require asciidoctor 1.5.8, and make 4039 that change to the gitlab CI script (public issue 968). 4040 * Remove redundant slink:VkSubpassDependency and 4041 slink:VkSubpassDependency2KHR valid usage statements 4042 (public pull request 995). 4043 * Clarify the <<vkGetInstanceProcAddr behavior>> and <<vkGetDeviceProcAddr 4044 behavior>> tables (public pull request 1004). 4045 * Fix use of nonexistent 4046 slink:VkSamplerYcbcrConversionImageFormatProperties::pname:maxCombinedImageSamplerDescriptorCount 4047 (public pull request 1010). 4048 * Use compatible pathlib for python2 (public pull request 1012). 4049 4050Internal Issues: 4051 4052 * Mark the <<VK_KHR_vulkan_memory_model>> extension as no longer 4053 provisional in `vk.xml` (internal issue 1369). 4054 * Clarify that use-defined code:Input and code:Output variables cannot be 4055 code:Boolean in the <<interfaces-iointerfaces-user, User-defined 4056 Variable Interface>> section (internal issue 1663). 4057 * Fix naming inconsistencies in 4058 slink:VkPhysicalDevicePerformanceQueryFeaturesKHR, 4059 slink:VkPhysicalDevicePerformanceQueryPropertiesKHR, 4060 slink:VkQueryPoolPerformanceCreateInfoKHR, and associated enumerants 4061 (internal issue 1746). 4062 * Use ACM reference style for normative references (internal merge request 4063 3256). 4064 * Explicitly list the features changed in Vulkan 1.1 in the 4065 <<features-requirements, Feature Requirements>> section and the 4066 <<versions, Core Revisions (Informative)>> appendix (internal merge 4067 request 3274). 4068 * Add the slink:VkPhysicalDeviceSubgroupSizeControlFeaturesEXT structure 4069 to the <<VK_EXT_subgroup_size_control>> extension, which was 4070 accidentally omitted in the initial release of the extension (internal 4071 merge request 3287). 4072 * Add missing slink:VkImageUsageFlag description for 4073 ename:VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT (internal merge 4074 request 3292). 4075 * Add valid usage statements to slink:VkAccelerationStructureInfoNV and 4076 flink:vkGetAccelerationStructureHandleNV to clarify usage of 4077 acceleration structure handle and geometries (internal merge request 4078 3292). 4079 4080New Extensions: 4081 4082 * `<<VK_AMD_shader_core_properties2>>` 4083 * `<<VK_AMD_pipeline_compiler_control>>` 4084 4085----------------------------------------------------- 4086 4087Change log for July 28, 2019 Vulkan 1.1.117 spec update: 4088 4089 * Update release number to 117. 4090 4091Github Issues: 4092 4093 * Add ename:VK_STENCIL_FACE_FRONT_AND_BACK for naming consistency, and 4094 alias the old ename:VK_STENCIL_FRONT_AND_BACK for backwards 4095 compatibility (public issue 991). 4096 * Fix minor issues with valid usage statements for 4097 flink:vkCreateFramebuffer, slink:VkFramebufferCreateInfo, and 4098 slink:VkRenderPassBeginInfo when the `<<VK_KHR_imageless_framebuffer>>` 4099 extension is enabled (public issue 998). 4100 * Clarify the subpass dependency requirement in the 4101 <<renderpass-layout-transitions>> section to eliminate the need for a 4102 subpass dependency for either the same or different layouts as long as 4103 they're both read-only (relates to 4104 https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/948). 4105 4106Internal Issues: 4107 4108 * Document that <<extendingvulkan-compatibility-promotion, backwards 4109 compatibility aliases are not promoted>> as part of promoting an 4110 extension (internal issue 1677). 4111 * Update VK_ANDROID_native_buffer extension to spec version 8 (internal 4112 issue 1753). 4113 * Add missing section to the <<VK_KHR_shader_controls_v4_incompatibility, 4114 VK_KHR_shader_float_controls>> extension appendix describing 4115 the reason for the breaking API change in version 4 of the extension, 4116 and correct the version to 4 in `vk.xml` (internal merge request 4117 3275). 4118 * Add valid usage statements to slink:VkAccelerationStructureInfoNV 4119 requiring the ename:VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag for 4120 buffers used in acceleration structure building. 4121 4122New Extensions: 4123 4124 * `<<VK_EXT_line_rasterization>>` 4125 * `<<VK_EXT_texture_compression_astc_hdr>>` 4126 * `<<VK_EXT_index_type_uint8>>` 4127 4128----------------------------------------------------- 4129 4130Change log for July 20, 2019 Vulkan 1.1.116 spec update: 4131 4132 * Happy 50th Lunar Landing Day! 4133 * Update release number to 116. 4134 4135Internal Issues: 4136 4137 * Clarify that flink:vkCmdBeginQuery is the same as 4138 flink:vkCmdBeginQueryIndexEXT with index = 0, and that 4139 flink:vkCmdEndQuery is the same as flink:vkCmdEndQueryIndexEXT with 4140 index = 0 (internal issue 1735). 4141 * Clarify that when copying the depth aspect between buffers and images 4142 via slink:VkBufferImage Copy, the depth values in buffer memory must be 4143 in range if the `<<VK_EXT_depth_range_unrestricted>>` extension is not 4144 enabled (internal issue 1737). 4145 * Minor language tweaks in the <<spirvenv-module-validation, Validation 4146 Rules within a Module>> section (internal issue 1744). 4147 * Change the slink:VkPhysicalDeviceFloatControlsPropertiesKHR structure in 4148 the `<<VK_KHR_shader_controls>>` extension. This is a rare case of 4149 breaking the interface of an existing extension to acknowledge the 4150 reality of divergent vendor implementations that could not be described 4151 properly otherwise, and the breaking change is considered acceptable 4152 given the expected low use of the extension (internal issue 1734). 4153 Specific changes: 4154 ** Added the slink:VkShaderFloatControlsIndependenceKHR enumeration to 4155 describe the three possible behaviors. 4156 ** Renamed pname:separateDenormSettings to 4157 pname:denormBehaviorIndependence. 4158 ** Renamed pname:separateRoundingModeSettings to 4159 pname:roundingModeIndependence 4160 * Add a missing valid usage statement for 4161 slink:VkQueryPoolCreateInfo::pname:queryCount (internal issue 1742). 4162 * Update the `<<VK_NV_shading_rate_image>>` appendix to list all 4163 interfaces defined by the extension. 4164 * Add a valid usage statement to 4165 slink:VkWriteDescriptorSetAccelerationStructureNV to clarify that 4166 acceleration structure descriptors must be top level structures. 4167 4168New Extensions: 4169 4170 * `<<VK_EXT_subgroup_size_control>>` 4171 4172----------------------------------------------------- 4173 4174Change log for July 14, 2019 Vulkan 1.1.115 spec update: 4175 4176 * Update release number to 115. 4177 4178GitHub issues: 4179 4180 * Add valid usage statements to slink:VkWriteDescriptorSet and 4181 slink:VkCopyDescriptorSet specifying that updating immutable descriptors 4182 with ename:VK_DESCRIPTOR_TYPE_SAMPLER is invalid, and that updating 4183 ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER ignores the update's 4184 samplers (public issue 985). 4185 * Document that the `manhtmlpages` target requires building with all 4186 extensions enabled, in `BUILD.adoc` (public issue 992). 4187 * Fix reference to the wrong subpass in valid usage statement for 4188 slink:VkRenderPassCreateInfo (public pull request 994). 4189 4190Internal Issues: 4191 4192 * Rename slink:VkPhysicalDeviceShaderIntegerFunctions2INTEL and 4193 ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS2_FEATURES_INTEL 4194 for consistency with global naming conventions, and to help code 4195 generation in other projects (internal issue 1685). 4196 * Update valid usage statements for image code:Offset / code:ConstOffset 4197 usage in the <<textures-gather, Texel Gathering>> and 4198 <<spirvenv-module-validation, Validation Rules within a Module>> 4199 sections, and for the <<limits-minTexelGatherOffset>> and 4200 <<limits-maxTexelGatherOffset>> limits (internal issue 1723). 4201 * Require code:code:OpGroupNonUniformBroadcast to take a constant `Id` 4202 operand in the <<spirvenv-module-validation, Validation Rules within a 4203 Module>> sections (internal issue 1726). 4204 * Note that the swapchain specified in slink:VkImageSwapchainCreateInfoKHR 4205 when creating an image must match the one specified in 4206 slink:VkBindImageMemorySwapchainInfoKHR when binding memory to the image 4207 (internal issue 1729). 4208 * Remove stext:KHR suffix from some structure cross-references that were 4209 promoted to Vulkan 1.1 (internal issue 1730). 4210 * Fix structure name in `structextends` attribute for 4211 slink:VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT in `vk.xml` 4212 (internal issue 1740). 4213 * Fix an error in the code:ClipColor() pseudocode for 4214 <<VK_EXT_blend_operation_advanced>> (internal issue 1741). 4215 * Add a row for 4216 ename:VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV to the 4217 description of elink:VkQueryType, and make a few related minor text 4218 cleanups. 4219 * Rename slink:VkPhysicalDeviceFloat16Int8FeaturesKHR to 4220 slink:VkPhysicalDeviceShaderFloat16Int8FeaturesKHR for consistency, 4221 retaining aliases of the old structure name and structure type enum for 4222 backwards compatibility. 4223 4224----------------------------------------------------- 4225 4226Change log for July 7, 2019 Vulkan 1.1.114 spec update: 4227 4228 * Update release number to 114. 4229 4230Internal Issues: 4231 4232 * Fix extension appendix for `<<VK_INTEL_performance_query>>` to remove 4233 duplicate citation of ename:VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL 4234 (internal merge request 3234). 4235 4236New Extensions: 4237 4238 * `<<VK_KHR_imageless_framebuffer>>` 4239 4240----------------------------------------------------- 4241 4242Change log for June 30, 2019 Vulkan 1.1.113 spec update: 4243 4244 * Update release number to 113. 4245 4246Github Issues: 4247 4248 * Fix typo in `<<VK_EXT_global_priority>>` appendix (public issue 979). 4249 4250Internal Issues: 4251 4252 * Expand the explanation of 4253 slink:VkSamplerYcbcrConversionImageFormatPropertiesKHR::pname:combinedImageSamplerDescriptorCount, 4254 and explain how it interacts with slink:VkWriteDescriptorSet, 4255 slink:VkDescriptorSetLayoutBinding::pname:descriptorCount, and 4256 slink:VkDescriptorPoolSize::pname:descriptorCount (internal issue 1643). 4257 * Clarify restrictions on components for code:OpImageGather in the 4258 <<spirvenv-module-validation, Validation Rules within a Module>> section 4259 (internal issue 1707). 4260 * Clarify the descriptions of <<limits-computeUnitsPerShaderArray, 4261 pname:computeUnitsPerShaderArray>> and <<limits-wavefrontSize, 4262 pname:wavefrontSize>> fields in 4263 slink:VkPhysicalDeviceShaderCorePropertiesAMD. 4264 4265New Extensions: 4266 4267 * `<<VK_EXT_texel_buffer_alignment>>` 4268 * `<<VK_EXT_shader_demote_to_helper_invocation>>` 4269 4270----------------------------------------------------- 4271 4272Change log for June 23, 2019 Vulkan 1.1.112 spec update: 4273 4274 * Update release number to 112. 4275 4276Github Issues: 4277 4278 * Clarify that it is possible to use the <<memory-host, Host Memory>> 4279 pname:pfnReallocation callback to free memory in any case that 4280 pname:pfnFree could be used (public issue 973). 4281 4282Internal Issues: 4283 4284 * Clarify range and precision of code:OpImageQueryLod in the discussion of 4285 scale factor and level-of-detail operation in the 4286 <<textures-normalized-operations, Normalized Texel Coordinate 4287 Operations>> section (internal issues 926, 1719). 4288 * Fix framebuffer layer valid usage statements for 4289 slink:VkRenderPassCreateInfo, slink:VkRenderPassCreateInfo2KHR, and 4290 slink:VkFramebufferCreateInfo (internal issue 1670). 4291 * Refactor common valid usage statements for flink:vkCmdBeginQuery and 4292 flink:vkCmdBeginQueryIndexedEXT (internal issue 1682). 4293 * Prohibit the ename:ename:VK_SAMPLER_YCBCR_RANGE_ITU_NARROW range from 4294 being used in slink:VkSamplerYcbcrConversionCreateInfo for formats with 4295 a bit depth less than 8 (internal issue 1688). 4296 * Add missing interactions with `<<VK_EXT_host_query_reset_usage>>` in the 4297 <<queries, Queries>> chapter (internal issue 1692). 4298 * Clean up error output from the `optimize-pdf` build script on success. 4299 * Fix an internal link to the <<spirvenv-correctly-rounded, Correctly 4300 Rounded>> section in the SPIR-V appendix by adding and referring to that 4301 anchor. 4302 * Fix extension version numbers in `vk.xml` for `VK_EXT_filter_cubic` and 4303 `VK_IMG_filter_cubic`. 4304 * Specify division precision for negative numbers, and remove statement 4305 that trigonometric functions have undefined precision, in the 4306 <<spirvenv-precision-operation, Precision and Operation of SPIR-V 4307 Instructions>> appendix. 4308 4309----------------------------------------------------- 4310 4311Change log for June 10, 2019 Vulkan 1.1.111 spec update: 4312 4313 * Update release number to 111. 4314 4315Github Issues: 4316 4317 * Clean up flink:vkGetPhysicalDeviceSurfaceFormatsKHR and 4318 flink:vkGetPhysicalDeviceSurfaceFormats2KHR to drop the 4319 ename:VK_FORMAT_UNDEFINED case, require callers pass a supported 4320 surface, and rearrange some validation-related language (public issue 4321 207). 4322 * Allow dynamic and nonuniform indexing of acceleration structures in the 4323 <<interfaces-resources-descset, Descriptor Set Interface>> section 4324 (public KhronosGroup/glslang issue 1766). 4325 4326Internal Issues: 4327 4328 * Clarify when images require the use of YCbCr samplers for 4329 slink:VkWriteDescriptorSet and slink:VkImageViewCreateInfo (internal 4330 issue 1639). 4331 * Remove the "`block`" language around <<features-robustBufferAccess, 4332 vectorizing and robust buffer access>> (internal issue 1642). 4333 * Allow code:OpTypeImageFormat == code:Unknown for input attachments in 4334 the <<interfaces-resources-descset, Descriptor Set Interface>> section 4335 (internal issue 1645). 4336 * Fix asciidoctor conditionals around 4337 ename:VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT in the 4338 <<fundamentals-errorcodes>> section (internal issue 1679). 4339 * Remove error codes from `vk.xml` for 4340 flink:vkUninitializePerformanceApiINTEL, which has a `void` return type 4341 (internal issue 1704). 4342 * Various subgroup-related fixes in the <<spirvenv-capabilities, 4343 Capabilities>>, <<shaders-subgroup-arithmetic, Arithmetic Subgroup 4344 Operations>>, <<shaders-subgroup-clustered, Clustered Subgroup 4345 Operations>>, and <<shaders-subgroup-partitioned, Partitioned Subgroup 4346 Operations>> sections (internal merge request 3164). 4347 * Fix asciidoctor markup affecting math rendering in the <<Precision of 4348 core SPIR-V Instructions>> table (internal merge request 3166). 4349 * Fix incorrect reference to flink:vkGetPhysicalDeviceFeatures2KHR in the 4350 description of slink:VkPhysicalDeviceASTCDecodeFeaturesEXT (internal 4351 merge request 3169). 4352 * Fix a non-sentence in the introduction to the <<textures, Image 4353 Operations Overview>> section (internal merge request 3184). 4354 * Minor markup, grammar, and typo fixes for the 4355 `<<NV_shader_sm_builtins>>` extension spec language (internal merge 4356 request 3189). 4357 * Clarify that 1D and 1D array format support is optional for cubic 4358 filters, immediately following the <<formats-mandatory-features-astc, 4359 Mandatory ASTC LDR format support>> table (internal merge request 3194). 4360 4361----------------------------------------------------- 4362 4363Change log for June 2, 2019 Vulkan 1.1.110 spec update: 4364 4365 * Update release number to 110. 4366 4367Github Issues: 4368 4369 * Fix typo (public pull request 972). 4370 * Rename Pastel driver ID to SwiftShader (public pull request 974). 4371 4372New Extensions: 4373 4374 * `<<VK_EXT_fragment_shader_interlock>>` 4375 * `<<VK_NV_shader_sm_builtins>>` 4376 4377----------------------------------------------------- 4378 4379Change log for May 24, 2019 Vulkan 1.1.109 spec update: 4380 4381 * Update release number to 109. 4382 4383Github Issues: 4384 4385 * Require matching for physical devices to be in a device group in the 4386 <<devsandqueues-devices, Devices>> section (public issue 695). 4387 * Fix typo in an equation in the <<fragmentdensitymap-fetch-density-value, 4388 Fetch Density Value>> section (public issue 954). 4389 * Fix styleguide links (public pull request 965). 4390 4391Internal Issues: 4392 4393 * Allow <<renderpass-compatibility, compatibility of single-subpass 4394 renderpasses>> with different resolve attachments (internal issue 1464). 4395 * Add some missing empty flags types to API spec so custom refpage 4396 generation doesn't break (internal issue 1607). 4397 * Add a "`SPIR-V Sampled Type`" column to the <<formats-numericformat, 4398 Interpretation of Numeric Formats>> table, and clarify the requirement 4399 that the code:OpTypeImage sampled type match the bound image's numeric 4400 format for slink:VkClearColorValue and in the 4401 <<interfaces-resources-descset, Descriptor Set Interface>> section 4402 (internal issue 1646). 4403 * Fix a typo in the <<tessellation-quad-tessellation, Quad Tessellation>> 4404 section which should refer to rectangles, not triangles (internal issue 4405 1667). 4406 * Clarify the definition of time domains in elink:VkTimeDomainEXT 4407 (internal merge request 3110). 4408 * Add R10X6 and R12X4 formats to the <<formats-mandatory-features-10bit>> 4409 table (internal merge request 3137). 4410 * Don't require extern sync on wait/signal semaphores in `vk.xml` for 4411 flink:vkQueueSubmit and flink:vkQueueBindSparse (internal merge request 4412 3116). 4413 * Improve phrasing of compute and mesh shader size related to 4414 code:LocalSize and code:WorkgroupSize in 4415 slink:VkPhysicalDeviceMeshShaderPropertiesNV and 4416 slink:VkPhysicalDeviceMaintenance3Properties (internal merge request 4417 3156). 4418 * Make the flink:vkCmdBindShadingRateImageNV pname:imageView parameter 4419 optional in `vk.xml` (internal merge request 3157). 4420 4421New Extensions: 4422 4423 * `<<VK_INTEL_performance_query>>` 4424 * `<<VK_INTEL_shader_integer_functions2>>` 4425 4426----------------------------------------------------- 4427 4428Change log for May 13, 2019 Vulkan 1.1.108 spec update: 4429 4430 * Update release number to 108. 4431 4432Internal Issues: 4433 4434 * Clarify that only external resources can be bound to external memory in 4435 valid usage statements for flink:vkBindBufferMemory, 4436 flink:vkBindImageMemory, slink:VkSparseMemoryBind, and 4437 slink:VkSparseImageMemoryBind (internal issue 1496). 4438 * Move all `vk.xml`requirements for 4439 flink:vkGetDeviceGroupSurfacePresentModes2EXT into 4440 `<<VK_EXT_full_screen_exclusive>>` (internal issue 1622). 4441 * Add some missing valid usage statements for 4442 flink:vkCmdEndQueryIndexedEXT (internal issue 1638). 4443 * Specify rules for defining "`New Flags and Bitmask Types`" in that 4444 section of the style guide (internal issue 1649). 4445 * Add a comment to the `vk.xml` extension block for 4446 `VK_ANDROID_native_buffer` explaining why the extension is tagged 4447 `"disabled"` (internal issue 1657). 4448 * Fix typos in the description of slink:VkImageViewCreateInfo (internal 4449 issue 1661). 4450 * Modify valid usage statements for slink:VkImageViewCreateInfo to fix the 4451 description about the restriction for pname:baseArrayLayer and 4452 pname:layerCount from pname:extent.depth to the depth of mipmap level 4453 while creating a 2D array image view on a 3D image. 4454 * Forbid structures that contain opaque types (images or samplers) in the 4455 SPIR-V <<spirvenv-module-validation, Validation Rules within a Module>> 4456 section. 4457 * Minor editorial changes for the `VK_EXT_swapchain_colorspace` extension 4458 in the description of slink:VkColorSpace KHR and `vk.xml`, including: 4459 ** Consistently specify which function (OETF or Inverse-EOTF) is being 4460 defined; 4461 ** Remove the Display P3 EOTF, since no other EOTFs are defined; 4462 ** Include luminance range for the HLG OETF; 4463 ** Remove a duplicated paragraph; and, 4464 ** Rename ename:VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT, leaving the old 4465 ename:VK_COLOR_SPACE_DCI_P3_LINEAR_EXT token as an alias. 4466 4467New Extensions: 4468 4469 * `<<VK_NV_framebuffer_mixed_samples_coverage_reduction_mode>>` 4470 * `<<VK_KHR_uniform_buffer_standard_layout>>` 4471 4472----------------------------------------------------- 4473 4474Change log for April 16, 2019 Vulkan 1.1.107 spec update: 4475 4476 * Update release number to 107. 4477 4478Public Issues: 4479 4480 * Fix revision date for the `<<VK_AMD_gpu_shader_half_float>>` appendix 4481 (public issue 617). 4482 * Make <<synchronization-pipeline-barriers-subpass-self-dependencies, 4483 subpass self-dependencies>> less restrictive (public issue 777). 4484 * Fix the `<<VK_EXT_full_screen_exclusive>>` dependency on 4485 `<<VK_KHR_win32_surface>>` in `vk.xml` (public pull request 849). 4486 * Remove single-page (`apispec.html`) refpage sub-targets from the 4487 Makefile `allman` target and the build instructions. The target is still 4488 present in the Makefile, but we have not been actively maintaining the 4489 single-page document and do not promise it will work. The full 4490 Specification and the individual API reference pages are what we support 4491 and publish at present (public issue 949). 4492 4493Internal Issues: 4494 4495 * De-duplicate common valid usage statements shared by multiple commands 4496 or structures by using asciidoctor includes and dynamically assigning 4497 part of the valid usage ID based on which command or structure they're 4498 being applied to (internal issue 779). 4499 * Add reference pages for constructs not part of the formal API, such as 4500 platform calling convention macros, and script changes supporting them 4501 This required suppressing some check_spec_links warning classes in order 4502 to pass CI, until a more sophisticated fix can be done (internal issue 4503 888). 4504 * Change math notation for the elink:VkPrimitiveTopology descriptions to 4505 use short forms `v` and `p` instead of `vertex` and `primitive`, 4506 increasing legibility (internal issue 1611). 4507 * Rewrite generated file includes relative to a globally specified path, 4508 fixing some issues with refpage generation (internal issue 1630). 4509 * Update contributor list for `<<VK_EXT_calibrated_timestamps>>`. 4510 * Fix use of pathlin in `scripts/generator.py` so the script will work on 4511 Windows under Python 3.5 (internal merge request 3107). 4512 * Add missing conditionals around the 4513 <<descriptorsets-accelerationstructure, Acceleration Structure>> 4514 section (internal merge request 3108). 4515 * More script synchronization with OpenXR spec repository (internal merge 4516 request 3109). 4517 * Mark the `<<VK_AMD_gpu_shader_half_float>>` and 4518 `<<VK_AMD_gpu_shader_int16>>` extensions as deprecated in `vk.xml` and 4519 the corresponding extension appendices (internal merge request 3112). 4520 4521New Extensions: 4522 4523 * `<<VK_EXT_headless_surface>>` 4524 4525----------------------------------------------------- 4526 4527Change log for April 7, 2019 Vulkan 1.1.106 spec update: 4528 4529 * Update release number to 106. 4530 4531Public Issues: 4532 4533 * Add searchbox and generate search index for the chunked HTML target. 4534 Note that doing this requires several new toolchain components to build 4535 the `chunked` target (public issue 578 / internal issue 1352). 4536 * Remove descriptions of flink:vkCreateSampler sampler constraints which 4537 were repeated in the valid usage statements (public pull request 648). 4538 * Fix sense of conditional around a valid usage statement in the 4539 <<copies>> chapter (public issue 942). 4540 4541Internal Issues: 4542 4543 * Add missing pname:extent.width and pname:extent.height valid usage 4544 statements for flink:vkCmdClearAttachments (internal issue 1583). 4545 * Fix some inconsistencies in structures and corresponding pname:sType 4546 enumerant names by renaming 4547 sname:VkPhysicalDeviceShaderDrawParameterFeatures -> 4548 slink:slink:VkPhysicalDeviceShaderDrawParametersFeatures; 4549 sname:VkPhysicalDeviceVariablePointerFeatures -> 4550 slink:VkPhysicalDeviceVariablePointerFeatures; 4551 sname:VkPhysicalDeviceVariablePointerFeaturesKHR -> 4552 slink:VkPhysicalDeviceVariablePointerFeaturesKHR; 4553 sname:VkPhysicalDeviceBufferAddressFeaturesEXT -> 4554 slink:VkPhysicalDeviceBufferDeviceAddressFeaturesEXT; 4555 etext:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES 4556 -> 4557 ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES; 4558 etext:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES -> 4559 ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES; 4560 etext:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR -> 4561 ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR; 4562 and etext:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT 4563 -> 4564 ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT. 4565 The old names are still available as aliases for backwards 4566 compatibility. This change required introducing valid XML markup which 4567 externally written XML processing scripts may need to be modified to 4568 accomodate, to support multiple aliases of a single command or token 4569 name (internal issue 1592). 4570 * Add slink:VkDevice as the first parameter to flink:vkSetLocalDimmingAMD 4571 (internal issue 1618). 4572 * Improve CI header compilation tests to test all Vulkan platform 4573 includes, using fake platform headers where needed, and change the 4574 `allchecks` Makefile target to use the more comprehensive 4575 `check_spec_links.py` script instead of the retired `checkinc` and 4576 `checklinks` targets. 4577 * Move descriptions of the ASTC compressed texture decode mode from the 4578 <<appendix-compressedtex-astc,appendix>> to the recently updated 4579 external Khronos Data Format Specification. 4580 * Fix minor markup and spelling issues in the `VK_NV_ray_tracing` 4581 extension. 4582 4583----------------------------------------------------- 4584 4585Change log for March 19, 2019 Vulkan 1.1.105 spec update (GDC edition): 4586 4587 * Update release number to 105. 4588 4589Public Issues: 4590 4591 * Fix contractions and other markup issues (public pull request 935). 4592 4593New Extensions: 4594 4595 * Google Games Platform 4596 ** New `ggp` platform and associated header file `vulkan_ggp.h` 4597 ** `VK_GGP_frame_token` 4598 ** `VK_GGP_stream_descriptor_surface` 4599 4600----------------------------------------------------- 4601 4602Change log for March 18, 2019 Vulkan 1.1.104 spec update: 4603 4604 * Update release number to 104. 4605 4606Public Issues: 4607 4608 * Remove the incorrect line from "`Initial`" to "`Invalid`" state in the 4609 <<commandbuffer-lifecycle-diagram, Lifecycle of a command buffer>> 4610 diagram (public issue 881). 4611 * Add Fuchsia platform to <<boilerplate-wsi-header-table, Window System 4612 Extensions and Headers>> table (public pull request 933). 4613 * Change the type of 4614 slink:VkBufferDeviceAddressCreateInfoEXT::pname:deviceAddress from 4615 basetype:VkDeviceSize to basetype:VkDeviceAddress. These are both 4616 typedefs of code:uint64_t, so it is an ABI-compatible change (public 4617 issue 934). 4618 4619Internal Issues: 4620 4621 * Remove generated header files and update the CI tests to build a copy of 4622 the headers for use by the hpp-generate / hpp-compile CI stages. Targets 4623 to generate the headers will not be removed, but keeping these generated 4624 files in the repository increased the frequency of conflicts between 4625 branches when merging to master (internal issue 745). 4626 * Reword "`undefined: behavior if *action*" to "`must: not do *action*`" 4627 in the places the old terminology was used, and add a new 4628 <<writing-undefined, Describing Undefined Behavior>> section of the 4629 style guide to explain how to write such language in the future 4630 (internal issue 1579). 4631 * Move almost all Python scripts into the toplevel `scripts/` directory. 4632 Apply extensive internal edits to clean up and simplify the scripts, and 4633 try to follow PEP8 guidelines. Generalize the scripts with the use of a 4634 Conventions object controlling many aspects of output generation, to 4635 enable their use in other Khronos projects with similar requirements. 4636 Autogenerate extension interface refpages (these are experimental and 4637 may be retired going forward). 4638 4639New Extensions: 4640 4641 * `VK_AMD_display_native_hdr` 4642 * `VK_EXT_full_screen_exclusive` (internal issue 1439) 4643 * `VK_EXT_host_query_reset` 4644 * `VK_EXT_pipeline_creation_feedback` (internal issue 1560) 4645 * `VK_KHR_surface_protected_capabilities` (internal issue 1520) 4646 4647----------------------------------------------------- 4648 4649Change log for March 11, 2019 Vulkan 1.1.103 spec update: 4650 4651 * Update release number to 103. 4652 4653Public Issues: 4654 4655 * Remove (unnecessary) scoped modification order case from the memory 4656 model <<memory-model-location-ordered, location-ordered>> definition 4657 (public pull request 924). 4658 * Add an <<memory-model-acyclicity, acyclicity>> axiom to the memory model 4659 (public pull request 927). 4660 4661Internal Issues: 4662 4663 * Fix reversed logic of slink:VkFormatProperties discussion of multi-plane 4664 formats and ename:VK_FORMAT_FEATURE_DISJOINT_BIT (internal issue 1493). 4665 * Clarify how slink:VkImageStencilUsageCreateInfoEXT works, including new 4666 valid usage statements for flink:vkCmdClearDepthStencilImage, and the 4667 <<copies, Common Operation>> section of the Copy Commands chapter 4668 (internal issue 1565). 4669 * Update <<spirvenv-precision-operation, Precision and Operation of SPIR-V 4670 Instructions>> section to require that denorms be preserved by several 4671 instructions that don't perform any mathematical operations (internal 4672 issue 1584). 4673 * Remove duplicate valid usage statement from flink:vkAcquireNextImageKHR 4674 (internal merge request 3062). 4675 4676----------------------------------------------------- 4677 4678Change log for March 3, 2019 Vulkan 1.1.102 spec update: 4679 4680 * Update release number to 102. 4681 4682Public Issues: 4683 4684 * Simplify flink:vkGetImageMemoryRequirements constraint for 4685 ename:VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT (public pull request 817). 4686 * Fix typo in markup of the <<textures-texel-coordinate-systems-diagrams, 4687 Texel Coordinate Systems, Corner Sampling>> image that was generating 4688 complaints from chunked HTML output generation (public pull request 4689 928). 4690 4691Internal Issues: 4692 4693 * Split the old <<features, Features>> chapter into four chapters: 4694 <<features, Features>>, <<limits, Limits>>, <<formats, Formats>>, and 4695 <<capabilities, Capabilities>>, with minor edits to the introductory 4696 paragraph of each chapter. Anchor names in these chapters were changed, 4697 with corresponding effects to xrefs to these anchors elsewhere in spec 4698 markup . The purpose is to make the chunked HTML spec output load faster 4699 on what was previously a single, gigantic chapter (internal issue 1554). 4700 * Add ename:VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV, to the supported 4701 pipeline stages for ename:VK_ACCESS_UNIFORM_READ, 4702 ename:VK_ACCESS_SHADER_READ, and ename:VK_ACCESS_SHADER_WRITE in the 4703 <<synchronization-access-types-supported>> table. 4704 * Correct legal name of Google, LLC in vk.xml <tags> section and a 4705 copyright statement. 4706 * Clarify that Vulkan treats the Android 4707 code:AHARDWAREBUFFER_FORMAT_R8G8B8X8_UNORM format as RGBA, and the 4708 application is responsible for forcing the X/A component to be read as 4709 1.0, in the <<memory-external-android-hardware-buffer-formats>> table. 4710 * Clarify the vertex order of various primitive topologies, and define the 4711 order of transform feedback vertex capture based on that. This involves 4712 a lot of refactoring and cleanup in the <<drawing-primitive-topologies, 4713 Primitive Topologies>>, <<geometry-input, Geometry Shader Input 4714 Primitives>> sections, and <<vertexpostproc-transform-feedback Transform 4715 Feedback>> sections, and numerous places in the <<tessellation>> 4716 chapter, 4717 4718New Extensions: 4719 4720 * `VK_EXT_metal_surface` 4721 * `VK_EXT_ycbcr_image_arrays` (internal issue 1361). 4722 * `VK_NVX_image_view_handle` 4723 4724----------------------------------------------------- 4725 4726Change log for February 17, 2019 Vulkan 1.1.101 spec update: 4727 4728 * Update release number to 101. 4729 4730Public Issues: 4731 4732 * Make clear that memory types for imported host memory must be host 4733 visible in slink:VkMemoryHostPointerPropertiesEXT.txt (public issue 4734 897). 4735 * Make <<interfaces-resources-layout, WARNING block>> into a NOTE block, 4736 per the styleguide (public pull request 916). 4737 4738Internal Issues: 4739 4740 * Make <<textures-output-format-conversion, computation of derivatives in 4741 non-uniform flow control>> have undefined behavior (internal issue 4742 1367). 4743 * Make behavior, not just values, undefined for 4744 <<textures-layout-validation, reads from inconsistent YCbCr layouts>> 4745 (internal issue 1366). 4746 * Consolidate version and extension behavior documentation in the 4747 <<extended-functionality, Extended Functionality>> appendix, While a 4748 great deal of text was moved from other parts of the Specification into 4749 the appendix, this just serves to simplify and make consistent 4750 discussions of versions and extensions (internal issue 1473). 4751 * Add limits for slink:VkPhysicalDeviceRayTracingPropertiesNV in the 4752 <<features-limits-types, Required Limit Types>> and 4753 <<features-limits-required, Required Limits>> tables (internal issue 4754 1511). 4755 * Disallow <<memory-protected-memory, indirect calls within protected 4756 command buffers>> by adding valid usage statements for the related 4757 indirect dispatch and draw commands (internal issue 1513). 4758 * Add valid usage stataements to slink:VkGraphicsPipelineCreateInfo, 4759 slink:VkSubpassDescription, slink:VkSubpassDescription2KHR, 4760 slink:VkSubpassDescriptionDepthStencilResolveKHR, and 4761 slink:VkImageViewCreateInfo preventing the creation of a renderpass with 4762 attachments in formats that are not supported for rendering (internal 4763 issue 1552). 4764 * Qualify valid usage statements for 4765 slink:VkAttachmentReference::pname:layout parameter so restrictions only 4766 apply if an attachment is ename:VK_ATTACHMENT_UNUSED (internal issue 4767 1561). 4768 * Add valid usage statement for flink:vkCmdDrawIndirectByteCountEXT 4769 restricting pname:vertexStride to be positive (internal issue 1566). 4770 * Make the `VK_EXT_sample_locations` extension depend on 4771 `VK_KHR_get_physical_device_properties2` in `vk.xml`. 4772 * Rearrange and simplify the <<interfaces-resources-layout, block layout 4773 rules>>. 4774 4775New Extensions: 4776 4777 * `VK_NV_cooperative_matrix` 4778 * `VK_EXT_depth_clip_enable` (internal issue 1485). 4779 4780----------------------------------------------------- 4781 4782Change log for February 10, 2019 Vulkan 1.1.100 spec update: 4783 4784 * Update release number to 100. 4785 4786Public Issues: 4787 4788 * Clarify that scoped modification order only relates to 4789 <<memory-model-atomic-operation, atomic writes>> (public pull request 4790 906). 4791 * Remove `readme.txt` reference from `xml/README.adoc` (public pull 4792 request 907). 4793 * Add missing slink:VkShaderResourceUsageAMD to the <<VK_AMD_shader_info>> 4794 appendix (public pull request 908). 4795 * Fix markup for <<VK_EXT_filter_cubic>> appendix (public pull request 4796 911). 4797 * Fix typo "`attachment`" (public pull request 914). 4798 * Alias the enums for `VK_IMG_filter_cubic` properly to the corresponding 4799 `VK_EXT_filter_cubic` enums, so they appear in the corresponding 4800 enumerated types, instead of as #defines (Vulkan-Headers issue 40). 4801 4802Internal Issues: 4803 4804 * Remove nested conditionals in valid usage statements for 4805 slink:VkFramebufferCreateInfo and flink:vkCmdPipelineBarrier by 4806 duplicating statements along ifdef/ifndef paths for 4807 VK_KHR_depth_stencil_resolve (internal issue 1527). 4808 * Clarify allowed values of <<spirv-precision-operation, SPIR-V operations 4809 near infinity>>. For very large results of operations the allowed range 4810 of return values as defined in the spec didn't include the largest 4811 finite number. In some rounding modes (eg. RTZ) the largest finite 4812 number is the correctly rounded result, so it should be allowed. 4813 * Require descriptor types to match in slink:VkCopyDescriptorSet. 4814 4815----------------------------------------------------- 4816 4817Change log for February 3, 2019 Vulkan 1.1.99 spec update: 4818 4819 * Update release number to 99. 4820 4821Public Issues: 4822 4823 * Add missing pname:pMemoryHostPointerProperties description to 4824 flink:vkGetMemoryHostPointerPropertiesEXT.txt (public pull request 896). 4825 * Minor markup fixes (public pull request 900). 4826 * Minor update to `khronos.css` and markup fixes (originally proposed in 4827 public pull request 901, but done via an internal MR). 4828 4829Internal Issues: 4830 4831 * Document restrictions on image queries for {YCbCr} formats in the 4832 <<formats-requiring-sampler-ycbcr-conversion>> table as well as 4833 for slink:sname:VkImageFormatProperties and slink:VkImageCreateInfo 4834 (internal issue 1361). 4835 * Correct type of the code:FragSizeEXT built-in in the 4836 <<interfaces-builtin-variables, Built-In Variables>> section (internal 4837 issue 1526). 4838 * Clean up math in the <<textures, Image Operations>> chapter by 4839 refactoring, using better naming conventions, updating diagrams to use 4840 the correct orientation, etc. (internal merge request 2968). 4841 * Fix minor typos for slink:VkImageCreateInfo and 4842 slink:VkImageStencilUsageCreateInfoEXT. 4843 * Add missing documentation for tlink:VkResolveModeFlagsKHR. 4844 * Fix extension dependency of pname:scalarBlockLayout in the 4845 <<features-features-requirements, Feature Requirements>> section. 4846 * Fix indexing math for shader binding table calculations in the 4847 <<shader-binding-table-indexing-rules, Indexing Rules>> section, and use 4848 spelling "`any-hit`" consistently. 4849 * Reconcile valid usage statement and text for sampled image layouts in 4850 slink:VkWriteDescriptorSet 4851 (https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/551). 4852 * Make SPIR-V code:OpConvertUToPtr and code:OpConvertPtrToU operations 4853 require a 64-bit integer for physical storage buffer pointers in the 4854 <<spirvenv-module-validation, Validation Rules within a Module>> 4855 section. 4856 * Update to KaTeX 10.0. 4857 4858New Extensions: 4859 4860 * `VK_EXT_filter_cubic` 4861 * `VK_NV_dedicated_allocation_image_aliasing` 4862 4863----------------------------------------------------- 4864 4865Change log for January 13, 2019 Vulkan 1.1.98 spec update: 4866 4867 * Update release number to 98. 4868 4869Public Issues: 4870 4871 * Fix missing markup in flink:vkDestroyPipelineLayout valid usage 4872 statement (pull request 882). 4873 * Add missing contributors for `<<VK_EXT_buffer_device_address>>` (public 4874 pull request 891). 4875 4876Internal Issues: 4877 4878 * Detect nested bullet points in valid usage blocks and warn about them 4879 during VUID assignment (internal issue 1382). 4880 * Update the style guide to document the process for reserving new bits in 4881 bitmask types (internal issue 1411). 4882 * Clarify for slink:VkApplicationInfo::pname:apiVersion and in the 4883 <<fundamentals-validusage-versions, Valid Usage for Newer Core 4884 Versions>> section when it is valid for an application to use a certain 4885 version of Vulkan API functionality (for an instance and for a 4886 device/physical device); and when the validation layers must generate an 4887 error (internal issue 1412). 4888 * Add optional <<memory-model-availability-visibility, transitive 4889 availability/visibility operations to the memory model, including a new 4890 pname:vulkanMemoryModelAvailabilityVisibilityChains feature for 4891 slink:VkPhysicalDeviceVulkanMemoryModelFeaturesKHR (internal issue 4892 1460). 4893 * Add the code:StorageBuffer storage class to those in the 4894 <<interfaces-resources-descset, Descriptor Set Interface>> (internal 4895 issue 1480). 4896 * Add missing `returnedonly` tags for a number of returned extension 4897 structures that can be passed in pname:pNext chains (internal issue 4898 1515). 4899 * Clean up and rearrange some spec language for 4900 slink:VkRenderPassCreateInfo and slink:VkAttachmentReference.txt 4901 (internal issue 1522). 4902 * Correctly round the code:OpVectorTimesScalar and 4903 code:OpMatrixTimesScalar SPIR-V operations in the <<Precision of core 4904 SPIR-V Instructions>> table (internal merge request 2996). 4905 * Work around cases in flink:vkCmdBeginTransformFeedbackEXT, 4906 flink:vkCmdEndTransformFeedbackEXT, and 4907 slink:VkPipelineCoverageModulationStateCreateInfoNV where an array 4908 parameter is `optional` but the length is not in `vk.xml`. This is an 4909 interim fix using `noautovalidity` + handcoded VU replacing those that 4910 should be autogenerated (internal issue 2944 and 4911 https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/480). 4912 * Remove redundant capability validation of the code:float16 and code:int8 4913 SPIR-V capabilities from the <<spirvenv-capabilities, Capabilities>> 4914 section, since they are already covered in the preceding table. 4915 * Update check_spec_links script, including validation for reference page 4916 open blocks. Fix errors identified by the script. 4917 4918----------------------------------------------------- 4919 4920Change log for January 05, 2019 Vulkan 1.1.97 spec update: 4921 4922 * Update release number to 97. 4923 4924Public Issues: 4925 4926 * Add a special case to the <<renderpass-compatibility, Render Pass 4927 Compatibility>> rules allowing single-subpass renderpasses to be 4928 compatible even if they have different resolve attachment references 4929 (public issue 835). 4930 * Fix the miss shader binding table record address rule in the 4931 <<shader-binding-table-indexing-rules, Miss Shaders>> section to index 4932 by code:missIndex, not code:sbtOffset (public issue 875). 4933 4934Internal Issues: 4935 4936 * Add a missing anchor to the elink:VkSamplerCreateFlagBits language 4937 (internal issue 1483). 4938 * Add missing implicit valid usage include for slink:VkHdrMetadataEXT and 4939 corresponding `noautovalidity` attributes in `vk.xml` for the 4940 externally-defined metadata properties (internal issue 1514). 4941 * Remove restrictions on the `mask` parameter of SPIR-V's 4942 code:OpGroupNonUniformXor in the <<spirvenv-module-validation, 4943 Validation Rules within a Module>> appendix (internal merge request 4944 2971). 4945 * Restore `noautovalidity` attribute for 4946 slink:VkPipelineViewportWScalingStateCreateInfoNV::pname:pViewportWScalings 4947 in `vk.xml` (internal merge request 2975). 4948 * Update copyright dates on Khronos-copyrighted files to 2019 (internal 4949 merge request 2980). 4950 4951New Extensions: 4952 4953 * `VK_KHR_depth_stencil_resolve` 4954 * `VK_EXT_buffer_device_address` 4955 * `VK_EXT_memory_budget` 4956 * `VK_EXT_memory_priority` 4957 * `VK_EXT_validation_features` 4958 4959----------------------------------------------------- 4960 4961Change log for December 16, 2018 Vulkan 1.1.96 spec update: 4962 4963 * Update release number to 96. 4964 4965Public Issues: 4966 4967 * Fix typo in `vk.xml` for `structextends` attribute of 4968 slink:VkPhysicalDeviceShadingRateImagePropertiesNV (public PR 870). 4969 * Fix links in optimized PDF output (public PR 879). 4970 4971Internal Issues: 4972 4973 * Add a link to GitHub contributors in the <<credits, Other Credits>> 4974 section (internal issue 808). 4975 * Clarify the behavior of command aliases described in the <<versions, 4976 Core Revisions>> and <<initialization-functionpointers, Command Function 4977 Pointers>> sections and the registry schema document with respect to 4978 whether they are or are not the same entry point, and what the behaviour 4979 of the ftext:vkGet*ProcAddr commands is for each alias (internal issue 4980 1462). 4981 * Update slink:VkPipelineShaderStageCreateInfo valid usage statements for 4982 writing to code:Layer and code:viewportIndex to apply to any vertex 4983 processing stage (internal issue 1475). 4984 * Make sparse image creation optional for {YCbCr} formats in the 4985 <<features-required-format-support, Required Format Support>> section 4986 and the <<formats-requiring-sampler-ycbcr-conversion, Formats 4987 requiring sampler {YCbCr} conversion for 4988 ename:VK_IMAGE_ASPECT_COLOR_BIT image views>> table (internal issue 4989 1476). 4990 * Modify the valid usage statement for 4991 flink:vkCmdDrawIndirectByteCountEXT::pname:vertexStride to use the 4992 pname:maxTransformFeedbackBufferDataStride limit rather than the 4993 pname:maxVertexInputBindingStride limit, which is a better match for 4994 transform feedback related operations (internal issue 1487). 4995 * Changed all members of slink:VkPhysicalDevicePCIBusInfoPropertiesEXT to 4996 have the `uint32_t` type. This is an imcompatible change to an EXT 4997 that's very recently released; although this is against usual Vulkan WG 4998 policy, we discussed and consider this an acceptable risk, but have 4999 polled the mesa-dev list in case there are use cases we missed (internal 5000 issue 1492). 5001 * Set spec vetsion to 1 for `VK_GOOGLE_hlsl_functionality1` and 5002 `VK_GOOGLE_decorate_string` in `vk.xml` (internal MR 2948). 5003 * Remove redundant valid usage statement `VkImageCreateInfo-pNext-02395` 5004 (internal MR 2950). 5005 * Add `check_spec_links.py` script, use it in Gitlab CI, and fix many 5006 minor markup issues discovered by the script (internal MR 2955). 5007 * Update `BUILD.md` to the current Ruby version (2.5.3), and make some 5008 corresponding updates to per-platform build instructions (internal MR 5009 2956). 5010 * Fix binding numbers and other details in 5011 flink:vkUpdateDescriptorSetWithTemplate.txt example code blocks 5012 (internal MR 2960). 5013 * Remove some nautovalidity="true" in `vk.xml` for NV extensions where 5014 it's clearly wrong (internal MR 2970). 5015 5016----------------------------------------------------- 5017 5018Change log for December 3, 2018 Vulkan 1.1.95 spec update: 5019 5020 * Update release number to 95. 5021 5022Public Issues: 5023 5024 * Fix valid usage and XML issues found in public issues 789 and 790 for 5025 the `VK_EXT_debug_utils` extension (public pull request 794). 5026 * Replace references to `VK_NV_dedicated_allocation` with links to the 5027 corresponding slink:slink:VkMemoryDedicatedRequirements and 5028 slink:slink:VkMemoryDedicatedAllocateInfo structures in the description 5029 of elink:VkExternalMemoryFeatureFlagBits (public issue 801). 5030 * Fix miscellaneous minor markup and spelling issues in 5031 `VK_NV_ray_tracing` extension (public pull request 860). 5032 * Remove "returnedonly" from XML for 5033 slink:VkPhysicalDeviceInlineUniformBlockFeaturesEXT and 5034 slink:VkPhysicalDeviceVulkanMemoryModelFeaturesKHR (public issue 862). 5035 5036Internal Issues: 5037 5038 * Add to the description of the 5039 <<features-limits-maxComputeSharedMemorySize, 5040 pname:maxCompureSharedMemorySize>> feature to state the shared variables 5041 should be packed at least as tightly as std430 (internal issue 1386). 5042 * Fix and clarify various references to image and image view usage in 5043 flink:vkCmdBindShadingRateImageNV, flink:vkCmdBeginRenderPass, and 5044 slink:VkImageStencilUsageCreateInfoEXT (internal issue 1432). 5045 * Require that the slink:VkImage mipmap chain match the Android hardware 5046 buffer mipmap chain for slink:VkMemoryAllocateInfo (internal issue 5047 1479). 5048 * Fix the definition of slink:VkSwapchainCreateInfoKHR valid usage 5049 statement 01778 (Vulkan-ValidationLayers!15) 5050 * Fix descriptions of <<interfaces-builtin-variables-launchid, 5051 code:LaunchIDNV>> and <<interfaces-builtin-variables-launchsize, 5052 code:LaunchSizeNV>> to code:uvec3. 5053 5054New Extensions: 5055 5056 * `VK_KHR_shader_float16_int8` 5057 * `VK_KHR_shader_float_controls` 5058 5059----------------------------------------------------- 5060 5061Change log for November 25, 2018 Vulkan 1.1.94 spec update: 5062 5063 * Update release number to 94. 5064 5065Public Issues: 5066 5067 * Use the terms "`texel block`" and "`texel block size`" instead of "`data 5068 element`" and "`element size`", and define "`element`" as an array slot. 5069 In addition to the terminology changes, retitled the <<texel-block-size, 5070 Representation and Texel Block Size>> section and added texel block size 5071 / no. of texels/block information to the 5072 <<features-formats-compatibility, Compatible Formats>> table. There is 5073 some additional work underway to make sure the compatibility language 5074 makes sense for all of uncompressed, compressed, and multiplanar formats 5075 (public issue 763). 5076 * Cleanup `VK_NV_ray_tracing` language (public issues 858, 859). 5077 5078Internal Issues: 5079 5080 * Specify in <<shaders-invocationgroups, Invocation and Derivative 5081 Groups>> and <<textures-output-format-conversion, Texel Output Format 5082 Conversion>> that derivative groups are quads when code:SubgroupSize >= 5083 4 (internal issue 1390). 5084 * Make the type of slink:VkDescriptorUpdateTemplateCreateInfo::pNext 5085 `const` following pattern for the other stext:Vk*CreateInfo structures 5086 (internal issue 1459). 5087 * Specify that flink:vkCmdClearAttachments executes as a drawing command, 5088 rather than a transfer command (internal issue 1463). 5089 * Update `VK_NV_ray_tracing` to use code:InstanceId instead of 5090 code:InstanceIndex. 5091 5092New Extensions: 5093 5094 * `VK_KHR_swapchain_mutable_format` 5095 * `VK_EXT_fragment_density_map` 5096 5097----------------------------------------------------- 5098 5099Change log for November 18, 2018 Vulkan 1.1.93 spec update: 5100 5101 * Update release number to 93. 5102 5103Public Issues: 5104 5105 * Add spec language for ename:VK_INDEX_TYPE_NONE_NV and fix up 5106 slink:VkAccelerationStructureTypeNV (public issue 848). 5107 * Add missing suffix in description of slink:VkSubpassDescription2KHR 5108 parameters (public pull request 851). 5109 * Fix miscellaneous typos (public pull request 855). 5110 * Add driver ID for Pastel (public pull request 856). 5111 * Add missing include directive for slink:VkMemoryWin32HandlePropertiesKHR 5112 implicit valid usage statements (public pull request 857). 5113 5114Internal Issues: 5115 5116 * Restrict the storage classes permitted for SPIR-V atomics to what is 5117 actually supported, in the <<spirvenv-module-validation, Validation 5118 Rules within a Module>> section (internal issue 1123). 5119 * Add a missing Valid Usage statement to slink:VkRenderPassCreateInfo for 5120 the case pname:stencilLoadOp == ename:VK_LOAD_OP_CLEAR, pname:layout == 5121 ename:VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL (internal issue 5122 1408). 5123 * Modify optimize-pdf script and Makefile to retain non-optimized original 5124 PDF on errors (internal issue 1435). 5125 * Add <<spirvenv-module-validation, SPIR-V validation rules>> stating that 5126 only the listed code:BuiltIn decorations are permitted, and only when 5127 relevante features and extensions are enabled (internal issue 1449). 5128 * Remove some duplicated Valid Usage IDs created via cut & paste error 5129 (internal issue 1455). 5130 * Build HTML output for extension reference pages (internal issue 1461). 5131 ** Improve genRef.py handling of aliases defined inside other refpages. 5132 ** Emit aliases in pygenerator.py. 5133 ** Add XML noautovalidity flag for VkRenderPassCreateFlags until there 5134 are some corresponding FlagBits defined. 5135 ** Corrected types= attribute on some refpage blocks to 'flags' 5136 ** Added refpage blocks for some missing types detected by CI tests. 5137 * Fixed many Valid Usage statement issues in slink:VkRenderPassCreateInfo, 5138 slink:VkSubpassDescription, slink:VkSubpassDescription2KHR, 5139 slink:VkSubpassDependency2KHR, flink:vkCmdBeginRenderPass, 5140 flink:vkCmdBeginRenderPass2KHR, and slink:VkRenderPassBeginInfo 5141 discovered while adding `VK_KHR_create_renderpass2` to the validation 5142 layers. 5143 5144New Extensions: 5145 5146 * `VK_EXT_scalar_block_layout` 5147 * `VK_EXT_separate_stencil_usage` 5148 5149----------------------------------------------------- 5150 5151Change log for November 12, 2018 Vulkan 1.1.92 spec update: 5152 5153 * Update release number to 92. 5154 5155Public Issues: 5156 5157 * Move and modify valid usage statements dealing with pname:aspectMask in 5158 flink:vkCmdClearColorImage, flink:vkCmdClearDepthStencilImage, and 5159 slink:VkClearAttachment, so they are in places where all necessary 5160 information is available (public issue 529). 5161 * Fix math markup in <<textures-texel-anisotropic-filtering, Texel 5162 Anisotropic Filtering>> (public pull request 840). 5163 * Fix misspellings (public pull request 845). 5164 5165Internal Issues: 5166 5167 * Add installation instructions and a Makefile "`chunked`" target for 5168 chunked HTML generation (internal issue 1352). 5169 * Fix pipeline mesh diagram style; also fix a minor bug in the classic 5170 pipeline diagram where vertex/index buffers wrongly fed into the vertex 5171 shader (internal issue 1436). 5172 * Make asciidoctor ERROR output raise an error, and don't suppress 5173 executed command output from CI make invocation (internal issue 1454). 5174 * Minor typo fixes and clarifications for `VK_NV_raytracing`. 5175 * Cleanup extension-specific properties 5176 ** Remove duplicated documentation for pname:maxDiscardRectangles, 5177 pname:pointClippingBehavior, and pname:maxVertexAttribDivisor (they 5178 shouldn't be documented with the other members of 5179 slink:VkPhysicalDeviceLimits at all). 5180 ** Remove duplicate anchor for pname:maxVertexAttribDivisor 5181 ** Consistently document stext:VkPhysicalDevice<Extension>PropertiesKHR 5182 *** Always document pname:sType/pname:pNext (was inconsistent before) 5183 *** Always mention chaining to slink:VkPhysicalDeviceProperties2 (and not 5184 as slink:VkPhysicalDeviceProperties2KHR) 5185 *** Always include Valid Usage statements last 5186 * Update Makefile 'checklinks' target and associated scripts, and fix 5187 markup problems identified by checkLinks.py, so that we can rely on the 5188 checklinks script as part of Gitlab CI. 5189 5190----------------------------------------------------- 5191 5192Change log for November 4, 2018 Vulkan 1.1.91 spec update: 5193 5194 * Update release number to 91. 5195 5196Public Issues: 5197 5198 * Update Ubuntu subsystem build instructions in `BUILD.adoc` (public pull 5199 request 624). 5200 * Delete the `VK_KHR_mir_surface` extension from the Specification and 5201 XML, due to EOL of the only driver known to have supported it, and 5202 near-EOL of Mir itself (public issue 814). 5203 * Fix options for some figures that were using old ones (public pull 5204 request 841). 5205 * Fix various accidentally repeated words (public pull request 843). 5206 * Use `time.process_time()`, introduced in Python 3.3, in the scripts 5207 instead of `time.clock()`, which will be removed in Python 3.8 (public 5208 pull request 844). 5209 5210Internal Issues: 5211 5212 * Update valid usage statements for 5213 `VK_ANDROID_external_memory_android_hardware_buffer` in 5214 slink:VkMemoryAllocateInfo, 5215 slink:VkImportAndroidHardwareBufferInfoANDROID, and 5216 flink:vkGetAndroidHardwareBufferPropertiesANDROID to actually be 5217 verifiable (internal issue 1419). 5218 * Update valid usage statements for 5219 `VK_ANDROID_external_memory_android_hardware_buffer` in 5220 slink:VkMemoryAllocateInfo, slink:VkImageCreateInfo, and 5221 slink:VkImageViewCreateInfo to move valid usage statements in 5222 doubly-nested bullet points up one level, accomodating limitations of 5223 the valid usage extraction script that creates `validusage.json` 5224 (internal issue 1434). 5225 * Fix typo etext:VK_ACCESS_SHADING_RATE_IMAGE_BIT_NV to the correct 5226 ename:VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV. 5227 * Add missing etext:VK_STRUCTURE_TYPE_* tokens to appendices for 5228 extensions missing them. 5229 5230New Extensions: 5231 5232 * `VK_AMD_memory_overallocation_behavior` 5233 * `VK_NV_ray_tracing`, replacing `VK_NVX_raytracing` 5234 5235----------------------------------------------------- 5236 5237Change log for October 28, 2018 Vulkan 1.1.90 spec update: 5238 5239 * Update release number to 90. 5240 5241Public Issues: 5242 5243 * Tag flink:vkQueueWaitIdle as `externsync` in `vk.xml` (public pull 5244 request 815). 5245 * Update README (public pull request 834). 5246 * `VK_NV_framebuffer_mixed_samples` and `VK_AMD_mixed_attachment_samples` 5247 had confusing and contradictory valid usage statements when read in the 5248 all-extensions spec build. Change them to explicitly mention which 5249 extension each is for (public issue Vulkan-ValidationLayers/issues/353). 5250 5251Internal Issues: 5252 5253 * Update `COPYING.md` to clarify how externally generated Vulkan 5254 Specifications (for translations, annotations, or other reasons) must be 5255 copyrighted, and acknowledge the Exception Clause on the `vk.xml` 5256 license (internal issue 1079). 5257 * Specify that flink:vkGetPhysicalDeviceImageFormatProperties may: return 5258 pname:maxMipLevels 1 if the format is ycbcr (internal issue 1361). 5259 * Clarify previously underspecified language for 5260 flink:vkCmdPushConstants::pname:pStageFlags regarding use of push 5261 constants across multiple pipelines (internal issue 1403). 5262 * Fix typo in XML/headers for 5263 ename:VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT, 5264 which was previously 5265 etext:VK_STRUCTURE_TYPE_IMAGE_EXCPLICIT_DRM_FORMAT_MODIFIER_CREATE_INFO_EXT 5266 (internal issue 1428). 5267 * Fix markup of equations that were sporadically breaking the 5268 `optimize-pdf` step of PDF generation, due (apparently) to inconsistent 5269 treatment of unwrapped multicharacter terms by different LaTeX parsers 5270 (internal issue 1435). 5271 * For the <<memory-model-synchronizes-with synchronizes-with>> memory 5272 model relation cases involving a release barrier plus relaxed atomic 5273 write, treat the atomic as if it were a release atomic and allow the 5274 acquire side to read from its hypothetical release sequence. This is 5275 more consistent with how C++ defines synchronization for release fences 5276 (internal issue cross-api/memory-model#72). 5277 * Minor editorial changes to the <<memory-model, memory model>> appendix 5278 based on external feedback. 5279 5280----------------------------------------------------- 5281 5282Change log for October 21, 2018 Vulkan 1.1.89 spec update: 5283 5284 * Update release number to 89. 5285 5286Public Issues: 5287 5288 * Clarify the reference to <<features-limits-mipmapPrecisionBits, mipmap 5289 precision bits>> in the <<textures-image-level-selection, Image Level(s) 5290 Selection>> section (public issue 660). 5291 * Update <<debugging-object-types,VkObjectType and Vulkan Handle 5292 Relationship>> table with missing types (public pull request 820). 5293 * Miscellaneous minor markup cleanup (public pull request 822). 5294 * Fix copy/paste bugs in the description of how implicit 5295 availability/visibility operations for atomics/barriers are ordered in 5296 the <<memory-model-availability-visibility-semantics, Availability and 5297 Visibility Semantics>> section (public issue 823). 5298 * Add ename:VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV bit missing from 5299 the mesh shading list of the <<synchronization-pipeline-graphics, 5300 graphics pipeline>> (public issue 824). 5301 5302Internal Issues: 5303 5304 * Clarify that only statically used members of a push constant block need 5305 to be in the push constant range, and stop referring to block members as 5306 "`variables`" in the <<interfaces-resources-pushconst, Push Constant 5307 Interface>> section. This is related to 5308 https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/340 5309 (internal issue 1401). 5310 * Clarify interaction between flink:vkCmdSetDeviceMask and render pass 5311 control commands in the slink:VkDeviceGroupRenderPassBeginInfo section 5312 (internal issue 1416). 5313 * Miscellaneous minor markup cleanup. 5314 * Remove types defined by `"disabled"` extensions from 5315 validextensionstructs in the XML processing scripts, so downstream code 5316 generators don't emit them. 5317 5318----------------------------------------------------- 5319 5320Change log for October 13, 2018 Vulkan 1.1.88 spec update: 5321 5322 * Update release number to 88. 5323 5324Public Issues: 5325 5326 * Make clear that 5327 tname:PFN_vkDebugUtilsMessengerCallbackEXT::pname:messageTypes is a 5328 bitmask, and correct a typo in the spelling of 5329 slink:VkDebugUtilsMessengerCreateInfoEXT.txt::pname:messageType (public 5330 pull request 800). 5331 * Make an ABI-compatible change of the type of 5332 slink:VkPhysicalDeviceDriverPropertiesKHR::pname:driverID to use the new 5333 elink:VkDriverIdKHR type (public issue 811). 5334 5335Internal Issues: 5336 5337 * Clarify for the <<features-features-shaderStorageImageExtendedFormats>> 5338 feature and in the <<spirvenv-capabilities-table>> that the feature 5339 means that all of the formats are supported, and that otherwise the 5340 features can be queried per-format (internal issue 1273). 5341 * Clarified interactions of `VK_EXT_external_memory_host` with host cache 5342 management commands and structures flink:vkMapMemory, 5343 flink:vkFlushMappedMemoryRanges, slink:VkMappedMemoryRange, and 5344 flink:vkUnmapMemory using the new glossary term "`Host Mapped Device 5345 Memory`" (internal issue 1385). 5346 * Update the language for flink:vkCreateViSurfaceNN.txt describing the 5347 pname:currentExtent of a VI surface to more accurately reflect current 5348 capabilities, replacing "`undefined`" with more explicit behavior 5349 (internal issue 1410). 5350 5351New Extensions: 5352 5353 * `VK_EXT_calibrated_timestamps` 5354 * `VK_EXT_image_drm_format_modifier` (this extension was previously 5355 disabled in vk.xml, and has now been enabled after some changes to fix 5356 performance issues). 5357 * `VK_EXT_pci_bus_info` 5358 * `VK_EXT_transform_feedback` 5359 * `VK_GOOGLE_hlsl_functionality1`, exposing support for 5360 `SPV_GOOGLE_hlsl_functionality1`. 5361 * `VK_GOOGLE_decorate_string`, exposing support for 5362 `SPV_GOOGLE_decorate_string`. 5363 5364----------------------------------------------------- 5365 5366Change log for October 7, 2018 Vulkan 1.1.87 spec update: 5367 5368 * Update release number to 87. 5369 5370Public Issues: 5371 5372 * Merge flink:vkCmdPipelineBarrier self-dependency barrier VUs referring 5373 to the same subpass dependency (public pull request 756). 5374 * Describe default value of `"optional"` attribute in the registry schema 5375 document (public issue 769) 5376 * Fix links in <<VK_NVX_raytracing>> extension (public pull request 805). 5377 * Mark the <<VK_KHR_mir_surface>> extension obsolete (see public issue 814 5378 - does not close this, however). 5379 * Fix missing endif in Image Creation block (public issue 817). 5380 5381Internal Issues: 5382 5383 * Clarify that the compressed texture formats corresponding to 5384 <<features-features-textureCompressionETC2>>, 5385 <<features-features-textureCompressionASTC_LDR>>, and 5386 <<features-features-textureCompressionBC>> is not contingent on the 5387 feature bits, and may be supported even if the features are not enabled 5388 (internal issue 663). 5389 * Clarify that code:FragStencilRefEXT is output only in the 5390 <<interfaces-builtin-variables, Built-In Variables>> section (internal 5391 issue 1173). 5392 * Identify and correct many overly-aggressive uses of "`undefined`", and 5393 narrow them down, where straightforward to do so. Mark such resolved 5394 uses of "`undefined`" with the custom undefined: macro. Add a new 5395 <<writing-undefined, Describing Undefined Behavior>> section (internal 5396 issue 1267). 5397 * Don't require code:inline_uniform_block descriptors to be populated 5398 before use in the flink:vkAllocateDescriptorSets section (internal issue 5399 1380). 5400 * Allow suppressing inline SVG images by controlling this with an 5401 attribute set in the Makefile, rather than the explicit [%inline] 5402 directive (internal issue 1391). 5403 * Mark 'Khronos' as a registered trademark in several places, now that it 5404 is one. 5405 * Fix typo in the <<VK_KHR_shader_atomic_int64>> appendix using the GLSL 5406 naming of the compare exchange op when referring to the SPIR-V op. 5407 * Specify in the flink:vkGetPhysicalDeviceQueueFamilyProperties section 5408 that all implementations must support at least one queue family, and 5409 that every queue family must contain at least one queue. 5410 * Make slink:VkPipelineDynamicStateCreateInfo::pname:dynamicStateCount, 5411 slink:VkSampleLocationsInfoEXT::pname:sampleLocationsPerPixel, and 5412 slink:VkSampleLocationsInfoEXT::pname:sampleLocationsCount optional, to 5413 fix bogus implicit valid usage checks that were causing failures in the 5414 conformance tests. 5415 * Fix vendor tag in reserved extension 237 constants. Does not affect 5416 anything since it's just a placeholder, but this should avoid further 5417 comments. 5418 * Minor markup fixes in some extension appendices. 5419 5420New Extensions: 5421 5422 * `<<VK_FUCHSIA_imagepipe_surface>>` 5423 5424----------------------------------------------------- 5425 5426Change log for September 29, 2018 Vulkan 1.1.86 spec update: 5427 5428 * Update release number to 86. 5429 5430Internal Issues: 5431 5432 * Add new <<resources-image-creation-limits, Image Creation Limits>> 5433 section and reference that from valid usage statements, reducing 5434 combinatorial complexity of extension-dependent VUs. Also fixes some 5435 underspecified limits (such as pname:maxMipLevels) in the VUs for 5436 slink:VkImageCreateInfo when 5437 slink:VkExternalMemoryImageCreateInfo::pname:externalMemoryHandles 5438 contains multiple bits, and fixes incorrectly (and underspecified) 5439 limits when an Android external format is used (internal issue 1370). 5440 * Remove unused "`Fragment Area Granularity`" glossary entry accidentally 5441 introduced in the 1.1.85 update. 5442 5443New Extensions: 5444 5445 * `VK_KHR_driver_properties` 5446 * `VK_KHR_shader_atomic_int64` 5447 * The specification sources contain text for another extension, 5448 `VK_EXT_image_drm_format_modifier`, but this extension is not yet 5449 complete, and is marked disabled in `vk.xml`. The extension will be 5450 enabled, and become part of the spec, only when the authors decide it is 5451 ready. 5452 5453----------------------------------------------------- 5454 5455Change log for September 19, 2018 Vulkan 1.1.85 spec update: 5456 5457 * Update release number to 85. 5458 5459Public Issues: 5460 5461 * Add self-dependency ename:VK_DEPENDENCY_BY_REGION_BIT valid usage 5462 statements for slink:VkSubpassDependency(public pull request 778). 5463 * Apply fix from pull request 742 to slink:VkSubpassDependency and 5464 slink:VkSubpassDependency2 (public pull request 779). 5465 * Specify the units of slink:VkBufferImageCopy::pname:bufferRowLength and 5466 pname:bufferImageHeight as texels (public pull request 781). 5467 * Better specify promoted parameter mapping in the 5468 `<<VK_KHR_create_renderpass2>>` appendix (public pull request 782). 5469 5470Internal Issues: 5471 5472 * Only include the <<fundamentals-validusage-versions, Valid Usage for 5473 Newer Core Versions>> section in Vulkan 1.1 or later (internal issue 5474 1381). 5475 5476Other Issues: 5477 5478 * Clean up redundant valid usage language for the 5479 `VK_ANDROID_external_memory_android_hardware_buffer` extension 5480 interaction with slink:VkImageCreateInfo. 5481 * Fix error in a flag name within valid usage statements for 5482 slink:VkMemoryAllocateInfo. 5483 * Clarify that memory types are not totally ordered in 5484 slink:VkPhysicalDeviceMemoryProperties. 5485 * For slink:VkWriteDescriptorSetInlineUniformBlockEXT, set 5486 structextends="VkWriteDescriptorSet" in `vk.xml`, and make 5487 slink:VkDescriptorSetLayoutBindingFlagsCreateInfoEXT::pname:pBindingFlags 5488 optional. 5489 * Add documentation of 'provisional' XML attribute to registry.txt. 5490 5491New Extensions: 5492 5493 * `VK_NV_compute_shader_derivatives` 5494 * `VK_NV_corner_sampled_image` 5495 * `VK_NV_fragment_shader_barycentric` 5496 * `VK_NV_mesh_shader` 5497 * `VK_NV_representative_fragment_test` 5498 * `VK_NV_scissor_exclusive` 5499 * `VK_NV_shader_image_footprint` 5500 * `VK_NV_shading_rate_image` 5501 * `VK_NVX_raytracing` 5502 5503----------------------------------------------------- 5504 5505Change log for September 8, 2018 Vulkan 1.1.84 spec update: 5506 5507 * Update release number to 84. 5508 5509Public Issues: 5510 5511 * Fix code sample in the `<<VK_EXT_debug_utils>>` extension (public issue 5512 751). 5513 * Fix misleading comment in `vk.xml` for 5514 slink:VkDescriptorBufferInfo::pname:buffer (public pull request 762). 5515 * Fix formatting of deprecation attributes in schema doc (public pull 5516 request 767). 5517 * Change `can` to `may` in the description of 5518 elink:VkSparseImageFormatFlagBits, which are return values from queries 5519 (public pull request 768). 5520 * Prettify generated contact list in extension appendices, adding logos 5521 and a New Issue link (public pull request 770). 5522 * Enable sRGB conversion based on the image view format, not the image 5523 format, in the <<textures-format-conversion, Format Conversion>> section 5524 (public pull request 773). 5525 * Fix typo in equation in the <<primsrast-lines-basic, Basic Line Segment 5526 Rasterization>> section (public pull request 780). 5527 * Fix special characters in GitHub contacts links (public pull request 5528 783). 5529 * Make clean_pdf target remove pdf folder (public pull request 784). 5530 * Fix styleguide bad markup of block continuation (public pull request 5531 792). 5532 5533Other Issues: 5534 5535 * Allow a zero vertex attribute divisor in the 5536 `<<VK_EXT_vertex_attribute_divisor>>` extension, exposed via the 5537 slink:VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT feature. 5538 * Add missing `structextends="VkDeviceCreateInfo"` to 5539 slink:VkPhysicalDeviceShaderDrawParameterFeatures and 5540 slink:VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT. 5541 5542New Extensions: 5543 5544 * `VK_KHR_memory_model` 5545 * `VK_EXT_astc_decode_mode` 5546 * `VK_EXT_inline_uniform_block` 5547 5548----------------------------------------------------- 5549 5550Change log for August 13, 2018 Vulkan 1.1.83 spec update: 5551 5552 * Update release number to 83. 5553 5554Public Issues: 5555 5556 * Use [%inline] directive for all SVGs to reduce file size (public pull 5557 request 734). 5558 * Convert XML `value` aliases into <alias> tags (public pull request 5559 747). 5560 * Fix metadoc script showing non-selected extensions (public pull request 5561 748). 5562 * Reapply public pull request 742 to make 5563 ename:VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT part of the 5564 graphices pipeline (public pull request 749). 5565 * Fix numerous typos related to accidental duplication of words (public 5566 pull request 760). 5567 * Fix `vk.xml` contact typos (public pull request 761). 5568 5569 5570Internal Issues: 5571 5572 * Add images to the <<Standard sample locations>> table (internal issue 5573 1115). 5574 * Add a definition of "`Inherited from`" precision in the 5575 <<spirvenv-precision-operation, Precision and Operation of SPIR-V 5576 Instructions>> section (internal issue 1314). 5577 * Clarify that both built-in and user-defined variables count against the 5578 location limits for shader interfaces in the 5579 <<interfaces-iointerfaces-locations, Location Assignment>> section 5580 (internal issue 1316). 5581 * Merge "`required`" capabilities into the <<spirvenv-capabilities-table, 5582 list of optional: SPIR-V capabilities>> (internal issue 1320). 5583 * Relax the layout matching rules of descriptors referring to only a 5584 single aspect of a depth/stencil image, by reference to the new 5585 <<resources-image-layouts-matching-rule, Image Layout Matching Rules>> 5586 section (internal issue 1346). 5587 * Revert extension metadoc generator warning about name mismatches to a 5588 diagnostic, due to annoying warnings in build output for conscious 5589 choices we've made (internal issue 1351). 5590 5591Other Issues: 5592 5593 * Reserve bits for pending vendor extensions. 5594 * Make Vulkan consistent with SPIR-V regarding code:DepthReplacing and 5595 code:FragDepth in the <<interfaces-builtin-variables, Built-In 5596 Variables>> section. 5597 * Add missing ChangeLog entries for the previous three spec updates. 5598 5599----------------------------------------------------- 5600 5601Change log for July 30, 2018 Vulkan 1.1.82 spec update: 5602 5603 * Update release number to 82. 5604 5605Public Issues: 5606 5607 * Add flink:vkDestroyPipelineLayout valid usage statement that the layout 5608 must not have been used with command buffers still in the recording 5609 state (public issue 730). 5610 * Correct <unused> tag for elink:VkResult in `vk.xml` (public merge 5611 request 746). 5612 5613Internal Issues: 5614 5615 * Add a valid usage statement to flink:vkQueueSubmit, and similar language 5616 to the definitions of <<synchronization-queue-transfers-acquire, acquire 5617 operations>> requiring that an acquire operation follow a previous 5618 release of the same subresource (internal issue 1290). 5619 * Add <<resources-image-format-features,Image Format Features>> and 5620 <<resources-image-view-format-features,Image View Format Features>> 5621 sections that precisely define the slink:VkFormatFeatures supported by 5622 images and image views, and rewrite valid usage statements to reference 5623 these sections instead of duplicating language (internal issue 1310). 5624 * Reword and consolidate synchronization valid usage statements for 5625 flink:vkCmdPipelineBarrier such that they correctly account for mutiple 5626 possible self-dependencies (internal issue 1322). 5627 * Change order of <<Standard sample locations>> for 2xMSAA (internal issue 5628 1347). 5629 * Add definitions of "`<<Correctly Rounded>>`" and "`<<ULP>>`" in the 5630 SPIR-V environment appendix, and "`Units in the Last Place (ULP)`" in 5631 the glossary. 5632 5633New Extensions: 5634 5635 * `VK_NV_device_diagnostic_checkpoints` 5636 5637----------------------------------------------------- 5638 5639Change log for July 23, 2018 Vulkan 1.1.81 spec update: 5640 5641 * Update release number to 81. 5642 5643Public Issues: 5644 5645 * Fix missing "`valid`" phrasing in some obscure cases (public pull 5646 request 605). 5647 * Replace improper use of cannot: referring to the implementation in the 5648 description of the 5649 <<features-limits-maxUpdateAfterBindDescriptorsInAllPools, 5650 pname:maxUpdateAfterBindDescriptorsInAllPools>> limit (public pull 5651 request 738). 5652 * Reorder description of bits in elink:VkPipelineStageFlagBits and the 5653 <<synchronization-pipeline-stages-supported, Supported pipeline stage 5654 flags>> table to match their definition order (public pull request 740). 5655 * Add description of ename:VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT 5656 to elink:VkBufferUsageFlagBits (public pull request 741). 5657 * Fix value usage statement for slink:VkSubpassDependency stage mask 5658 parameters (public pull request 742). 5659 * Fix visible markup in registry schema document (public pull request 5660 #745). 5661 5662Internal Issues: 5663 5664 * Make the <<geometry-invocations, geometry shader invocation 5665 description>> and <<shaders-geometry-execution, Geometry Shader 5666 Execution>> descriptions consistent with other pipeline stages (internal 5667 issue 1325). 5668 * Mark the `VK_NV_glsl_shader` extension as deprecated. 5669 * Adjust the per-instance vertex attribute offset formula specified by 5670 `VK_EXT_vertex_attribute_divisor` for 5671 slink:VkVertexInputBindingDivisorDescriptionEXT so that the interaction 5672 between pname:firstInstance and pname:divisor matches the OpenGL 5673 convention (internal issue 1333). 5674 5675----------------------------------------------------- 5676 5677Change log for July 7, 2018 Vulkan 1.1.80 spec update: 5678 5679 * Update release number to 80. 5680 5681Public Issues: 5682 5683 * Remove unused "`API Order`" term from glossary (public issue 657). 5684 * Dynamically generate the extension appendix includes based on 5685 information in `vk.xml`, including new metadata tags describing 5686 deprecated, obsoleted, and promoted extensions (public pull request 5687 690). 5688 5689Internal Issues: 5690 5691 * Add valid usage statements to flink:vkCmdBindDescriptorSets to keep 5692 offsets + range less than or equal to the buffer size (internal issue 5693 1174). 5694 5695New Extensions: 5696 5697 * `VK_EXT_conditional_render` 5698 * `VK_KHR_create_renderpass2` (public issue 736) 5699 * `VK_KHR_8bit_storage` (public issue 737) 5700 5701----------------------------------------------------- 5702 5703Change log for July 1, 2018 Vulkan 1.1.79 spec update: 5704 5705 * Update release number to 79. 5706 5707Public Issues: 5708 5709 * Add a note to the <<features-required-format-support, Required Format 5710 Support>> section clarifying that the required formats don't depend on 5711 the used flags (public issue 671). 5712 * Add a valid usage statement for flink:vkUpdateDescriptors that was 5713 previously described for slink:VkImageSubresourceRange, but not as a 5714 valid usage statement (public issue 713). 5715 * Modify implicit valid usage generator script to not emit 'must: not be 5716 0' for a parameter that is a pointer to a flags field, such as 5717 pname:pPeerMemoryFeatures (public issue 729). 5718 5719Internal Issues: 5720 5721 * Add definitions of "`obsoleted`" and "`deprecated`", and modify the 5722 definition of "`promoted`" in the <<glossary, Glossary>> (internal issue 5723 988). 5724 * Add language for integer texel output conversions (the conversion is 5725 undefined) to the <<textures-output-format-conversion]] Texel Output 5726 Format Conversion>> section. Simplify and clarify the floating-point 5727 conversion language in the <<fundamentals-general, General 5728 Requirements>> section and the new <<fundamentals-fp-conversion, 5729 Floating-Point Format Conversions>> section, and remove obsolete 5730 language in the format-specific floating-point sections (internal issue 5731 1275). 5732 * Add the elink:VkVendorId enumerated type to the Vulkan API / XML / 5733 header, so reserved Khronos vendor IDs can be referred to symbolically 5734 by clients. Note that only Khronos vendor IDs (e.g. non-PCI vendor IDs) 5735 are defined (internal issue 1299). 5736 * Fix typo in the <<fig-non-strict-lines, Non strict lines>> table 5737 (internal issue 1315). 5738 * Clean up and simplify the 5739 <<formats-requiring-sampler-ycbcr-conversion, YCbCr format 5740 properties>> table and use symbols consistently with other tables. Add a 5741 column for the number of planes. 5742 * Add code:Float16 to the <<spirvenv-capabilities-table, List of optional 5743 SPIR-V capabilities>> for the `VK_AMD_gpu_shader_half_float` extension. 5744 5745----------------------------------------------------- 5746 5747Change log for June 18, 2018 Vulkan 1.1.78 spec update: 5748 5749 * Update release number to 78. 5750 5751Public Issues: 5752 5753 * Change markup so parameter descriptions include links to structures, 5754 instead of just their names (public issue 697). 5755 * Resume publishing updated Vulkan 1.0 + KHR extensions and Vulkan 1.0 + 5756 all extensions versions of the specification (public issue 722). 5757 * Reapply fixes from public pull request 698 for 5758 `VK_ANDROID_external_memory_android_hardware_buffer`, which accidentally 5759 were reverted at some point (public pull request 724). 5760 * Fix undefined format valid usage statements for slink:VkImageCreateInfo 5761 in the presence of the 5762 `VK_ANDROID_external_memory_android_hardware_buffer` extension (public 5763 pull request 725). 5764 * Miscellaneous markup consistency fixes (public pull request 728). 5765 5766Internal Issues: 5767 5768 * When building specifications containing vendor extensions, add terms to 5769 the Khronos spec copyright specifying that the result is not a ratified 5770 specification (internal issue 739). 5771 * Change the value of the 5772 pname:maxDescriptorSetUpdateAfterBindUniformBuffers minimum limit to 72 5773 (6 times pname:maxPerStageDescriptorUpdateAfterBindUniformBuffers) in 5774 the <<features-limits-required, Required Limits>> table (internal issue 5775 1300). 5776 5777Other Issues: 5778 5779 * Fix link to resource image view compatibility table in the valid usage 5780 statements for slink:VkImageFormatListCreateInfoKHR (internal pull 5781 request 2711). 5782 5783----------------------------------------------------- 5784 5785Change log for June 10, 2018 Vulkan 1.1.77 spec update: 5786 5787 * Update release number to 77. 5788 5789Public Issues: 5790 5791 * Remove redundant asciidoctor ifdef in slink:VkDeviceCreateInfo valid 5792 usage statement (public pull request 718). 5793 5794Internal Issues: 5795 5796 * Require that the returned slink:VkMemoryRequirements::pname:alignment 5797 reflect the minimum alignment requirements for the buffer's usages, and 5798 make dynamic offset alignment valid usage more explicit for 5799 flink:vkBindBufferMemory and flink:vkCmdBindDescriptorSets (internal 5800 issue 1170). 5801 * Explicitly state that objects of type code:OpTypeImage, 5802 code:OpTypeSampler, and code:OpTypeSampledImage must not be stored to in 5803 the <<spirvenv-module-validation, Validation Rules within a Module>> 5804 section (internal issue 1262). 5805 * Clarify rules about validating descriptor set/binding against storage 5806 class and descriptor type in the <<spirvenv-module-validation, 5807 Validation Rules within a Module>> section, and add an anchor for and 5808 references to the <<interfaces-resources-storage-class-correspondence, 5809 Shader Resource and Storage Class Correspondence>> table (internal issue 5810 1266). 5811 * Use correct spelling of SPIR-V decoration code:NonWritable in several 5812 places (internal issue 1298). 5813 5814Other Issues: 5815 5816 * Update specification links to files in the old 5817 KhronosGroup/Vulkan-LoaderAndValidationLayers repository with 5818 corresponding links into the new repositories that replace it. 5819 * Move validity requirement for slink:VkSamplerCreateInfo into the valid 5820 usage block instead of the body text, and give it a VUID. 5821 * Use the full name of the "`style guide`" in a reference in the 5822 description of slink:vkGetPhysicalDeviceProperties, update the 5823 <<vulkan-styleguide, link to that document>>, and use the full name 5824 in the registry index page. 5825 5826----------------------------------------------------- 5827 5828Change log for May 25, 2018 Vulkan 1.1.76 spec update: 5829 5830 * Update release number to 76. 5831 5832Internal Issues: 5833 5834 * Add an exception clause to the license on `vk.xml`, enabling its use 5835 with GPL-based projects (internal issue 1017). 5836 * Remove the generated `vulkan_ext.[ch]` files, which are no longer 5837 supported. Add `src/ext_loader/README.md` explaining why, and update 5838 files in `xml/` to not generate them by default (internal issue 1268) 5839 5840Other Issues: 5841 5842 * Fix typos in valid usage statements for the 5843 ftext:vkDrawIndexedIndirectCount* commands, replacing 5844 sizeof(VkDrawIndirectComment) with sizeof(VkDrawIndexedIndirectCommand). 5845 * Modify the <<spirvenv-module-validation, Validation Rules within a 5846 Module>> section to require code:NonReadable or code:NonWriteable in 5847 SPIR-V code for images with an image format of code:Unknown if one of 5848 the requisite code:shaderImageReadWithoutFormat or 5849 code:shaderImageWriteWithoutFormat features is disabled. 5850 5851New Extensions: 5852 5853 * `VK_KHR_get_display_properties2` 5854 * `VK_KHR_draw_indirect_count` 5855 5856----------------------------------------------------- 5857 5858Change log for May 16, 2018 Vulkan 1.1.75 spec update: 5859 5860 * Update release number to 75. 5861 5862Github Issues: 5863 5864 * Use Github handles (e.g. @handle) for contact information in vk.xml, 5865 when available (partial fix for public issue 630). 5866 * Add size invariance guarantee to slink:VkMemoryRequirements for 5867 buffer/image memory requirements (public issue 661). 5868 * Correct scope (conditional constructs) in valid usage statement for 5869 slink:VkBindImageMemoryInfo (public pull request 684). 5870 * Clean up minor markup issues and typos in the 5871 `VK_ANDROID_external_memory_android_hardware_buffer` extension appendix 5872 (public pull request 698). 5873 * Modify registry processing script to avoid irrelevant warnings of benign 5874 enumerant redefinitions (public pull request 705). 5875 * Fix some duplicate words and some misspelled "`stagess`" (public pull 5876 request 712) 5877 5878Internal Issues: 5879 5880 * Enable continuous integration tests on the internal Khronos gitlab 5881 server by adding a .gitlab-ci.yml file. Note: this does not implement CI 5882 on the public Github repository (internal issue 408). 5883 * Add link from description of depth clamping in the <<fragops-depth, 5884 depth test>> section to the 5885 slink:VkPipelineRasterizationStateCreateInfo::pname:depthClampEnable 5886 parameter which enables it, making it easily searchable / findable 5887 (internal issue 1125). 5888 * Clarify that arrays of arrays of descriptors are not allowed in the 5889 <<interfaces-resources-descset, Descriptor Set Interface>> and 5890 <<interfaces-resources-setandbinding, DescriptorSet and Binding 5891 Assignment>> sections (internal issue 1192). 5892 * Comment out some redundant nested asciidoctor conditionals in the 5893 slink:VkImageViewCreateInfo valid usage block, and explain in all cases 5894 why the redundant conditional exist and are commented out (internal 5895 issue 1231). 5896 * Move a valid usage statement from slink:VkCommandPoolCreateInfo to the 5897 parent flink:vkCreateCommandPool, where the device queue is known 5898 (internal issue 1233). 5899 * Add new slink:VkBaseInStructure and slink:VkBaseOutStructure types which 5900 can be used by extensions and implementations for handling Vulkan 5901 sType/pNext style structures in a more generic way (internal issue 5902 1265). 5903 * Clarify that 5904 slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures 5905 only applies to external-format images. Add references to this in valid 5906 usage statements that previously only referred to 5907 slink:VkFormatProperties (internal issue 1244). 5908 * Fix the description of elink:VkPipelineCreateFlagBits enumerant 5909 ename:VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT to match the 5910 name (internal issue 1279). 5911 * Add a NOTE to the <<interfaces-resources-setandbinding, DescriptorSet 5912 and Binding Assignment>> section making it clear that variables sharing 5913 a storage class may use identical descriptor set and bindings. 5914 Specifically state the sometimes misunderstood ability to have one or 5915 more differently typed image descriptors sharing a descriptor set and 5916 binding (internal SPIR-V issue 264). 5917 * Make DynamicIndexing features and capabilities also control the 5918 uniformity of the descriptor used in memory access instructions in the 5919 <<interfaces-resources-descset, Descriptor Set Interface>> section. This 5920 makes them also apply to variable_pointer usage, which can bypass the 5921 array indexing operation (internal SPIR-V issue 289). 5922 5923Other Issues: 5924 5925 * Correct flink:vkCmdBlitImage limitations on cubic blits to be 2D only, 5926 not 3D. 5927 * Update valid usage statements for slink:VkRenderPassCreateInfo and 5928 slink:VkInputAttachmentAspectReference. 5929 * Move YCbCr-related VU statements from slink:VkDescriptorImageInfo to 5930 slink:VkWriteDescriptorSet, where all needed information is known, and 5931 remove redundant statements. 5932 * Move SPIR-V restriction that images be of either sampled or storage 5933 types from the <<interfaces-resources-descset, Descriptor Set 5934 Interface>> section to the <<spirvenv-module-validation, Validation 5935 Rules within a Module>> section of the SPIR-V appendix. 5936 5937----------------------------------------------------- 5938 5939Change log for April 21, 2018 Vulkan 1.1.74 spec update: 5940 5941 * Update release number to 74. 5942 5943Github Issues: 5944 5945 * Clarify which buffer locations are accessed in 5946 flink:vkCmdCopyBufferToImage valid usage statements (public issue 676). 5947 * Refine description of <<extended-functionality-extensions-dependencies, 5948 extension dependencies>>, related NOTE in the 5949 <<extended-functionality-extensions, Extensions>> section, and 5950 "`Required Extensions`" glossary term (public pull request 693). 5951 * Add support for specifying required Vulkan core version in `vk.xml` and 5952 the extension metadoc generator (public issue 696). 5953 * Update .gitignore for directory reorganization (public pull request 5954 699). 5955 * Fix typo (public pull request 703). 5956 5957Internal Issues: 5958 5959 * Update valid usage of slink:VkClearRect::pname:layerCount (internal 5960 issue 1241). 5961 5962Other Issues: 5963 5964 * Fix typo in <<NV_geometry_shader_passthrough>> issues list. 5965 5966----------------------------------------------------- 5967 5968Change log for April 15, 2018 Vulkan 1.1.73 spec update: 5969 5970 * Update release number to 73. 5971 5972Github Issues: 5973 5974 * Refine swapchain association with surface for slink:VkSwapchainKHR, with 5975 matching valid usage statements for slink:VkSwapchainCreateInfoKHR and 5976 discussion following the <<swapchain-wsi-image-create-info>> table 5977 (public issue 637). 5978 * Re-remove several valid usage statements from slink:VkImageCreateInfo 5979 that had previously been removed at the time that 5980 ename:VK_IMAGE_CREATE_EXTENDED_USAGE_BIT was introduced. These 5981 statements had incorrectly been restored due to an glitch while merging 5982 from the old `1.0` branch to the current `master` branch (public issue 5983 683). 5984 5985Internal Issues: 5986 5987 * Fix reference page generation and configure build to generate reference 5988 pages 1.1 with all extensions, rather than core only, as was the case 5989 for the 1.0 ref pages (internal issues 484, 1056, 1205). 5990 * Require that 5991 slink:VkMemoryDedicatedRequirements::pname:prefersDedicateAllocation is 5992 ename:VK_TRUE when 5993 slink:VkMemoryDedicatedRequirements::pname:requiresDedicateAllocation is 5994 ename:VK_TRUE (internal issue 1222). 5995 * Fix Ruby extension code so `diff_html` Makefile target works (internal 5996 issue 1230). 5997 * Update `genRelease` script to generate 1.1 + all extensions reference 5998 pages - but not the single-page HTML / PDF versions, which are even 5999 larger than the API spec (internal issue 1245). 6000 6001Other Issues: 6002 6003 * Add missing attributes to `vk.xml` for `VK_ANDROID_native_buffer`. 6004 * Specify that the slink:VkAttachmentDescription::pname:format member is 6005 the format of the image *view* that will be used for the attachment. 6006 * Use core sname:VkPhysicalDeviceFeatures2 in the `structextends` `vk.xml` 6007 attribute for sname:VkPhysicalDeviceDescriptorIndexingFeaturesEXT and 6008 sname:VkPhysicalDeviceDescriptorIndexingPropertiesEXT, rather than the 6009 KHR equivalent it was promoted from. 6010 * Fix the "`Fragment Input Attachment Interface`" glossary entry to match 6011 the specification body. 6012 * Clarify the interaction of sRGB images used as storage or texel buffers 6013 with <<textures-output-format-conversion, Texel Output Format 6014 Conversion>>. 6015 * Moved three valid usage statements from 6016 slink:VkRenderPassMultiviewCreateInfo up to 6017 slink:VkRenderPassCreateInfo, and added a new valid usage statement for 6018 slink:VkRenderPassInputAttachmentAspectCreateInfo. 6019 * Added valid usage statements for slink:VkBufferMemoryBarrier and 6020 slink:VkImageMemoryBarrier reflecting the global requirement that 6021 "`non-sparse resources must be bound to memory before being recorded to 6022 command`". 6023 6024----------------------------------------------------- 6025 6026Change log for April 5, 2018 Vulkan 1.1.72 spec update: 6027 6028 * Update release number to 72. 6029 6030Github Issues: 6031 6032 * Restructure the repository to put the specification `Makefile` and 6033 associated spec source material at the top level, `vk.xml` and 6034 associated scripts material in `xml/`, and generated include and source 6035 files in `include/vulkan/` and `src/ext_loader/`, respectively (public 6036 issue 436). 6037 * Add missing bullet point markup to flink:vkCmdCopyImage valid usage 6038 statement, so it gets a VUID assigned (public issue 627). 6039 * Fix broken links in a couple of extension appendices (public pull 6040 request 665). 6041 * Add the <platform> tag to the index in section 4.1 of the registry 6042 schema documentation, and add the protect= attribute of <extension> 6043 tags to the comments in `registry.rnc` (public issues 673, 678). 6044 * Add missing valid usage statements for sparse image interactions to 6045 flink:VkImageCreateInfo (public pull request 675). 6046 * Fix improper usage and grammar of "`can: not`" (public pull request 6047 681). 6048 * Remove duplicate spec language and NOTE on present layout between the 6049 flink:vkAcquireNextImageKHR and flink:vkAcquireNextImage2KHR commands 6050 (public pull request 685). 6051 * Fix some typos and markup issues (public pull request 689; public issues 6052 642, 667, 687). 6053 * Fix typo etext:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT -> 6054 ename:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT in the 6055 <<external-semaphore-handle-types-compatibility, External semaphore 6056 handle types compatibility>> table (public pull request 691). 6057 6058Internal Issues: 6059 6060 * Remove the need for the "`noautovalidity`" attribute on extension 6061 structures in `vk.xml`. It is now implied by the "`structextends`" 6062 attribute instead (internal issue 942). 6063 * Replace uses of "`currently bound`" with "`bound`", since "`currently`" 6064 is redundant and distracting, and add a corresponding rule to the style 6065 guide (internal issue 993). 6066 * Fixed subtle issues with the last updates to flink:vkAcquireNextImageKHR 6067 language that had resulted in ambiguities (internal issue 1178). 6068 * Make it clear that only one query of a given type is allowed at a time 6069 by reordering valid usage statements for flink:vkCmdBeginQuery and 6070 flink:vkCmdEndQuery, and removing redundant ones (internal issue 1213). 6071 * Swapped OL1 and OL3 in `tessparamUL.svg` to match previous version, and 6072 fixed where "`(no edge)`" appears (internal issue 1215). 6073 6074Other Issues: 6075 6076 * Fixed a minor problem with the valid usage statement extraction script, 6077 and corresponding markup in the spec source. 6078 6079New Extensions: 6080 6081 * `VK_AMD_shader_core_properties` 6082 * `VK_EXT_descriptor_indexing` 6083 * `VK_NV_shader_subgroup_partitioned` 6084 6085----------------------------------------------------- 6086 6087Change log for March 16, 2018 Vulkan 1.1.71 spec update: 6088 6089 * First public update for Vulkan 1.1. 6090 6091Github Issues: 6092 6093 * Refer to standard sparse image block shape format tables explicitly in 6094 the <<sparsememory-standard-shapes, Standard Sparse Image Block Shapes>> 6095 section (public issue 93). 6096 * Add the missing definition of the code:LocalInvocationIndex decoration 6097 in the <<interfaces-builtin-variables, Built-In Variables>> section 6098 (public issue 532). 6099 * Clarify dynamic state definition in the introduction to the <<pipelines, 6100 Pipelines>> section and the new <<pipelines-dynamic-state, Dynamic 6101 State>> subsection (public issue 620). 6102 * Clarified deprecation statement in the `VK_AMD_negative_viewport_height` 6103 appendix (public issue 674). 6104 * Fix parameter descriptions for flink:vkCreateIndirectCommandsLayoutNVX 6105 (public issue 677). 6106 6107Internal Issues: 6108 6109 * Remove description of <<primsrast-points, rasterization point size>> 6110 being taken from the tessellation control shader, since there are no 6111 circumstances under which you can have TCS without TES (internal issue 6112 522). 6113 * Define <<copies-images-format-size-compatibility, _size-compatible_ 6114 image formats>> for flink:vkCmdCopyImage, add it to the glossary, and 6115 use that definition for slink:VkImageViewCreateInfo (internal issue 6116 771). 6117 * Change brief descriptions of enumerant names, and of parameters which 6118 are enumerants, from "`enum *indicates*`" to "`enum *specifies*`" for 6119 consistency, and add a markup style guide rule (internal issue 862). 6120 * Clarify how execution dependencies interact with 6121 <<synchronization-submission-order, submission order>> at numerous 6122 places in the <<renderpass, Render Pass>> and <<synchronization, 6123 Synchronization>> chapters (internal issue 1062). 6124 * Clarify statement in the <<interfaces-resources-setandbinding, 6125 DescriptorSet and Binding Assignment>> section that only interface 6126 variables statically used by the entry point used in a pipeline must be 6127 present in the descriptor set layout (internal issue 1172). 6128 * Flip sparse image diagrams with partially full mip levels vertically, to 6129 match graph origins of other image diagrams (internal issue 1176). 6130 * Update new SVG diagrams to have consistent style and base font size, 6131 increase consistency of primitive topology diagrams, and add a section 6132 to the style guide on creating and editing images in a consistent style 6133 (internal issue 1177). 6134 * Resolve problems with valid usage statement extraction by fixing 6135 existing VUID tags for interfaces promoted to version 1.1 and fixing 6136 conditional directives around 6137 VUID-VkMemoryDedicatedAllocateInfo-image-01797 (internal issue 1184). 6138 * Strip `KHR` suffixes from a few interfaces promoted to Vulkan 1.1 that 6139 were missed previously (internal issue 1185). 6140 * Restrict code:OpImageQuerySizeLod and code:OpImageQueryLevels to only 6141 work on code:Image operands with their code:Sampled operand set to 1. In 6142 other words, these operations are not defined to work with storage 6143 images (internal issue 1193). 6144 * Recycle extension slot for extension #82 in `vk.xml`. This extension was 6145 never published (internal issue 1195). 6146 * Add an issue to the `VK_KHR_maintenance1` appendix noting that zero 6147 height viewports are allowed when this extension is enabled (internal 6148 issue 1202). 6149 * Fix slink:VkDescriptorSetLayoutBinding description so that shader stages 6150 always use descriptor bindings, not the other way around (internal issue 6151 1206). 6152 * Fix field name for 6153 slink:VkInputAttachmentAspectReference::pname:inputAttachmentIndex 6154 (internal issue 1210). 6155 6156Other Issues: 6157 6158 * Fix a few broken links in the <<versions-1.1, Version 1.1>> appendix. 6159 * Replace a few old refBegin/refEnd tags with open block markup around 6160 interfaces, and remove old KHX VUID tags that were breaking the valid 6161 usage statement extraction. 6162 * Fix error codes accidentally tagged as success codes in `vk.xml` for 6163 flink:vkGetSwapchainCounterEXT. 6164 * Added valid usage statements for ftext:vkBind*Memory2 input structures 6165 stext:VkBind*MemoryInfo, and fix a pname:image -> pname:buffer typo in a 6166 couple of places. 6167 * Fix swapped descriptions of elink:VkDescriptorType enums 6168 ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE and 6169 ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE (reported via tweet). 6170 6171New Extensions: 6172 6173 * `VK_ANDROID_external_memory_android_hardware_buffer` 6174 6175----------------------------------------------------- 6176 6177Change log for March 7, 2018 Vulkan 1.1.70 spec update: 6178 6179 * Vulkan 1.1 initial release. Bump API patch number and header version 6180 number to 70 for this update. The patch number will be used for both 6181 Vulkan 1.1 and Vulkan 1.0 updates, and continues to increment 6182 continuously from the previous Vulkan 1.0.69 update. 6183 6184 NOTE: We are not publishing an updated 1.0.70 specification, or 1.1 6185 reference pages, along with 1.1.70. There are still minor issues to work 6186 out with those build targets. However, we will soon generate all three 6187 types of documents as part of the regular spec update cycle. 6188 6189 NOTE: The GitHub KhronosGroup/Vulkan-Docs repository now maintains the 6190 current specification in the `master` branch. The `1.0` branch is out of 6191 date and will not be maintained, since we will be generating both 1.1 6192 and 1.0 specifications from the `master` branch in the future. 6193 6194Github Issues: 6195 6196 * Clarify how mapped memory ranges are flushed in 6197 flink:vkFlushMappedMemoryRanges (public issue 127). 6198 * Specify that <<synchronization-pipeline-stages, Pipeline Stages>> are a 6199 list of tasks that each command performs, rather than necessarily being 6200 discrete pieces of hardware that one task flows through. Add a 6201 "`synchronization command`" pipeline type which all synchronization 6202 command execute (it's just TOP + BOTTOM), with an explanatory note 6203 (public issue 554). 6204 6205Internal Issues: 6206 6207 * Regenerate all images used in the spec in Inkscape with a consistent 6208 look-and-feel, and adjust image size attributes so they're all legible, 6209 and not too large with respect to the spec body text (internal issue 6210 701). 6211 * Document in the <<extensions,extensions>> appendix and in the style 6212 guide that `KHX` extensions are no longer supported or used in the 6213 Vulkan 1.1 timeframe (internal issue 714). 6214 * Remove the leftover equations_temp directory after PDF build completes 6215 (internal issue 925). 6216 * Update the <<credits, Credits (Informative)>> appendix to include 6217 contributors to Vulkan 1.1, and to list them according to the API 6218 version(s) they contributed to (internal issue 987). 6219 * Add a NOTE to the introduction explaining that interfaces defined by 6220 extensions which were promoted to Vulkan 1.1 are now expressed as 6221 aliases of the Vulkan 1.1 type (internal issue 991). 6222 * Instrument spec source conditionals so spec can be built with 1.1 6223 features, extensions promoted to 1.1, or both (internal issues 992, 6224 998). 6225 * Modify the XML schema and tools to support explicit aliasing of types, 6226 structures, and commands, and use this to express the promotion of 1.0 6227 extensions to 1.1 core features, by making the extension interfaces 6228 aliases of the core features they were promoted to. Mark up promoted 6229 interfaces to allow still generating 1.0 + extension specifications 6230 (internal issue 991). 6231 * Platform names, along with corresponding preprocessor symbols to enable 6232 extensions specific to those platforms, are now reserved in vk.xml using 6233 the <platform> tag. Update the registry schema and schema specification 6234 to match (internal issue 1011). 6235 * Updated the <<textures-texel-replacement, Texel Replacement>> section to 6236 clarify that reads from invalid texels for image resources result in 6237 undefined values (internal issue 1014). 6238 * Modify description of patch version so it continues to increment across 6239 minor version changes (internal issue 1033). 6240 * Clarify and unify language describing physical device-level core and 6241 extension functionality in the <<fundamentals-validusage-extensions, 6242 Valid Usage for Extensions>>, <<fundamentals-validusage-versions, Valid 6243 Usage for Newer Core Versions>>, <<initialization-functionpointers 6244 Command Function Pointers>>, <<initialization-phys-dev-extensions, 6245 Extending Physical Device From Device Extensions>> 6246 <<extended-functionality-instance-extensions-and-devices, Instance 6247 Extensions and Device Extensions>> sections and for 6248 flink:vkGetPhysicalDeviceImageFormatProperties2. This documents that 6249 instance-level functionality is tied to the loader, and independent of 6250 the ICD; physical device-level functionality is tied to the ICD, and 6251 associated with device extensions; physical devices are treated more 6252 uniformly between core and extensions; and instance and physical 6253 versions can be different (internal issue 1048). 6254 * Updated the <<commandbuffers-lifecycle, Command Buffer Lifecycle>> 6255 section to clarify the ability for pending command buffers to transition 6256 to the invalid state after submission, and add a command buffer 6257 lifecycle diagram (internal issue 1050). 6258 * Clarify that some flink:VkDescriptorUpdateTemplateCreateInfo parameters 6259 are ignored when push descriptors are not supported (internal issue 6260 1054). 6261 * Specify that flink:vkCreateImage will return an error if the image is 6262 too large, in a NOTE in the slink:VkImageFormatProperties description 6263 (internal issue 1078). 6264 * Remove near-duplicate NOTEs about when to query function pointers 6265 dynamically in the <<initialization, Initialization>> chapter and 6266 replace by extending the NOTE in the <<fundamentals-abi, Application 6267 Binary Interface>> section (internal issue 1085). 6268 * Restore missing references to "`Sparse Resource Features`" in the 6269 flink:VkBufferCreateFlagBits description (internal issue 1086). 6270 * Tidy up definitions of descriptor types in the `GL_KHR_vulkan_glsl` 6271 specification, the <<descriptorsets, Resource Descriptors>> section and 6272 its subsections, and the <<interfaces-resources-descset, Descriptor Set 6273 Interface>> for consistency, reduction of duplicate information, and 6274 removal of GLSL correspondance/examples (internal issue 1090). 6275 * Correctly describe code:PrimitiveId as an Input for tessellation control 6276 and evaluation shaders, not an Output (internal issue 1109). 6277 * Relax the requirements on chroma offsets for nearest filtering in 6278 <<textures-implict-reconstruction, Implicit Reconstruction>> (internal 6279 issue 1116). 6280 6281Other Issues: 6282 6283 * Clarify the intended relationship between specification language and 6284 certain terms defined in the Khronos Intellectual Property Rights 6285 policy. Specific changes include: 6286 ** Rewrote IP/Copyright preamble and introduction to better agree with 6287 normative language both as laid out in the introduction, and the 6288 Khronos IPR policy. 6289 ** Added notion of fully informative sections, which are now tagged with 6290 "`(Informative)`" in their titles. 6291 ** Removed non-normative uses of the phrase "`not required`" 6292 ** Clarified the distinction between terms "`optional`" and "`not 6293 required:`" as they relate to the IPR Policy, and updated specification 6294 text to use terms consistent with the intent. 6295 ** Reduced additions to RFC 2119, and ensured the specification agreed 6296 with the leaner language. 6297 ** Removed the terms "`hardware`", "`software`", "`CPU`", and "`GPU`" from 6298 normative text. 6299 ** Moved several paragraphs that should not have been normative to 6300 informative notes. 6301 ** Clarified a number of definitions in the Glossary. 6302 ** Updated the document writing guide to match new terminology changes. 6303 * Explicitly state in the <<fundamentals-objectmodel-lifetime-acquire, 6304 application memory lifetime>> language that for objects other than 6305 descriptor sets, a slink:VkDescriptorSetLayout object used in the 6306 creation of another object (such as slink:VkPipelineLayout or 6307 slink:VkDescriptorUpdateTemplateKHR) is only in use during the creation 6308 of that object and can be safely destroyed afterwards. 6309 * Updated the <<textures-scale-factor, Scale Factor Operation>> section to 6310 use the ratio of anisotropy, rather than the integer sample rate, to 6311 perform the LOD calculation. The spec still allows use of the sample 6312 rate as the value used to calculate the LOD, but no longer requires it. 6313 * Update `vulkan_ext.c` to include all platform-related definitions from 6314 the Vulkan platform headers, following the split of the headers into 6315 platform-specific and non-platform-specific files. 6316 * Fix bogus anchor name in the <<commandbuffers, Command Buffers>> chapter 6317 which accidentally duplicated an anchor in the pipelines chapter. There 6318 were no reference to this anchor, fortunately. 6319 * Add valid usage statement for slink:VkWriteDescriptorSet and 6320 slink:VkCopyDescriptorSet requiring that the slink:VkDescriptorSetLayout 6321 used to allocate the source and destination sets must not have been 6322 destroyed at the time flink:vkUpdateDescriptorSets is called. 6323 * Document mapping of subgroup barrier functions to SPIR-V, and clarify a 6324 place where subgroupBarrier sounds like it's execution-only in the 6325 standalone `GL_KHR_shader_subgroup` specification. 6326 * Use an HTML stylesheet derived from the Asciidoctor `colony` theme, with 6327 the default Arial font family replaced by the sans-serif Noto font 6328 family. 6329 * Numerous minor updates to README.adoc, build scripts, Makefiles, and 6330 registry and style guide specifications to support Vulkan 1.1 outputs, 6331 use them as defaults, and remove mention of `KHX` extensions, which are 6332 no longer supported. 6333 6334 6335New Extensions: 6336 6337 * `VK_EXT_vertex_attrib_divisor` 6338 6339----------------------------------------------------- 6340 6341Change log for February 19, 2018 Vulkan 1.0.69 spec update: 6342 6343 * Bump API patch number and header version number to 69 for this update. 6344 6345Github Issues: 6346 6347 * Clean up description of synchronization for flink:vkAcquireNextImageKHR 6348 (public issue 626). 6349 * Move valid usage statements requiring offset and extent to respect image 6350 transfer granularity requirements of the queue family they are submitted 6351 against from slink:VkImageCopy and slink:VkBufferImageCopy to the 6352 corresponding flink:vkCmdCopyImage, flink:vkCmdCopyBufferToImage, and 6353 flink:vkCmdCopyImageToBuffer commands, where are relevant information is 6354 known (public issue 654). 6355 * Clarify that flink:vkGetDeviceProcAddr only supports device-level 6356 commands (public issue 655). 6357 6358Internal Issues: 6359 6360 * Associate each elink:VkDescriptorType with a type of descriptor, and 6361 link to descriptions of those types (internal issue 860). 6362 * Rework valid usage extraction script to better utilize and respond to 6363 spec markup, and fix some spec markup accordingly (internal issues 846, 6364 909, 945). 6365 * Rephrase flink:vkCmdPushConstants valid usage to allow overlapping push 6366 constant ranges in different shader stages (internal issue 1103). 6367 * Fix problem with diff_html target in extension.rb (internal issue 1104). 6368 * Modify valid usage statements for slink:VkClearDepthStencilValue, 6369 slink:VkGraphicsPipelineCreateInfo, slink:VkViewport, and 6370 flink:vkCmdSetDepthBounds, and the description of vkCmdSetDepthBias, to 6371 clarify that clamping is applied if and only if the 6372 `VK_EXT_depth_range_unrestricted` is not enabled (internal issue 1124), 6373 in versions of the specification built with that extension included. 6374 * Resolve contradictions and use of undefined "`per-sample shading`" term 6375 in the <<primsrast-sampleshading, Sample Shading>> and 6376 <<shaders-fragment-execution, Fragment Shader Execution>> sections; for 6377 the <<features-features-sampleRateShading, sampleRateShading feature>>; 6378 for code:FragCoord, code:SampleId, and code:SamplePosition; and for 6379 slink:sname:VkPipelineMultisampleStateCreateInfo (internal issue 1134). 6380 * Clarify the meaning of the ptext:maxDescriptorSet* limits in footnote 8 6381 of the <<features-limits-required,Required Limits>> table (internal 6382 issue 1139). 6383 * Fix broken NOTE markup in slink:VkSamplerCreateInfo.txt (internal issue 6384 1140). 6385 * Remove extend comparison language from valid usage statement for 6386 slink:VkImageCreateInfo, turning it into a simple validation of 6387 pname:mipLevels against pname:maxMipLevels (internal issue 1151). 6388 * Update valid usage statements for slink:VkImageCopy when the 6389 `VK_KHR_maintenance1` extension is enabled to allow multi-slice 2D <-> 6390 3D copies when the pnaem:extent.depth parameter specifies the number of 6391 layers being copied, and matches the 6392 slink:VkImageSubresourceLayers.layerCount of the 2D image (internal 6393 issue 1152). 6394 * Rephrase memory / control barrier rules in the 6395 <<spirvenv-module-validation, Validation Rules within a Module>> section 6396 to avoid "`not use none`", which could be misconstrued to allow no 6397 synchronization semantics, and only storage class semantics (internal 6398 issue 1154). 6399 6400Other Issues: 6401 6402 * Move GLSL extension specifications to the KhronosGroup/GLSL repository 6403 on Github. 6404 * Add missing description of ename:VK_FILTER_CUBIC_IMG enum to 6405 slink:VkFilter. 6406 * Update description of code:PrimitiveId in the 6407 <<interfaces-builtin-variables,Built-In Variables>> section to clarify 6408 its behavior. 6409 * Disallow disjoint images from being used with dedicated-memory images in 6410 slink:VkMemoryDedicatedAllocateInfoKHR. 6411 * Update README to suggest older versions of "mathematical" and 6412 "ruby-gems" packages for use on Cygwin. 6413 * Fix typos 6414 6415New Extensions: 6416 6417 * `VK_AMD_buffer_marker` 6418 6419----------------------------------------------------- 6420 6421Change log for January 15, 2018 Vulkan 1.0.68 spec update: 6422 6423 * Bump API patch number and header version number to 68 for this update. 6424 6425Github Issues: 6426 6427 * Added more details in the 6428 <<extended-functionality-extensions-compatibility, Extension 6429 Compatibility>> section, allowing explicit incompatibilities, and 6430 simplify corresponding language in the style guide, which now defers to 6431 the API Specification on this point (public issue 638). 6432 * Fix typo in description of slink:VkCommandBufferLevel::pname:level 6433 (public issue 651). 6434 * Only include extension-dependent valid usage statement for 6435 slink:VkImageSubresourceRange, and note that the extension names for 6436 header files described in the <<boilerplate-wsi-header, Window 6437 System-Specific Header Control>> section are only valid links, when the 6438 specification being viewed is built with the corresponding extensions 6439 enabled (public issue 652). 6440 6441Internal Issues: 6442 6443 * Add language to elink:VkResult specifying that when commands return an 6444 error, output parameter contents are undefined instead of unmodified 6445 (except for pname:sType and pname:pNext). Note that this is a behavior 6446 change. Add notes calling out slink:VkImageFormatProperties as an 6447 exception (internal issue 1118). 6448 * Add "`general-purpose`" to the style guide, and correct existing uses of 6449 "`general purpose`" as an adjective (internal issue 1121). 6450 * Add the ename:VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT token 6451 for the `VK_EXT_validation_cache` extension, following the same naming 6452 pattern as other tokens in the extension, but keep the old 6453 ename:VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT token around for 6454 backwards compatibility (internal issue 1126). 6455 6456Other Issues: 6457 6458 * Specify that flink:vkCmdSetDiscardRectangleEXT does not affect copies or 6459 clears, matching existing language for the scissor rectangle test. 6460 * Move the <<boilerplate-sType, pname:sType>> definition from the 6461 boilerplate appendix to the Fundamentals chapter, putting it together 6462 with the valid usage of pname:sType rather than having the definition 6463 split across two places. 6464 * Inline all of the etext:Vk*Flags definitions, moving each one from the 6465 boilerplate appendix to appear either after the corresponding 6466 etext:Vk*FlagBits value if one is defined, or after the first structure 6467 that includes them if not. 6468 6469----------------------------------------------------- 6470 6471Change log for January 5, 2018 Vulkan 1.0.67 spec update: 6472 6473 * Bump API patch number and header version number to 67 for this update. 6474 * Update copyright dates to 2018 6475 6476Github Issues: 6477 6478 * Fix texture lookup functions in `GL_KHR_vulkan_glsl` specification 6479 (public pull request 363). 6480 * Clarify the state waited semaphores are left in when a call to 6481 flink:vkQueuePresentKHR fails (public issue 572). 6482 * Cleanup descriptions of slink:VkObjectTablePushConstantEntryNVX and 6483 slink:VkObjectTableDescriptorSetEntryNVX (public issue 583) 6484 * Remove redundant flink:vkCmdSetDiscardRectangleEXT valid usage 6485 statements (public pull 586). 6486 * Make dynamic state array length valid usage statements implicit for 6487 flink:vkCmdSetViewportWScalingNV, flink:vkCmdSetDiscardRectangleEXT, and 6488 flink:vkCmdSetViewport (public pull 589). 6489 * Clarify meaning of window extent (0,0) in slink:VkSwapchainKHR for the 6490 Windows and X11 platforms, in their respective extensions (public issue 6491 590). 6492 * Allow flink:vkGetPastPresentationTimingGOOGLE to return 6493 ename:VK_INCOMPLETE (public issue 604). 6494 * Add synchronization valid usage statements to flink:vkAcquireNextImage 6495 (public pull 611). 6496 * Fix some broken external links and internal xrefs (public pull 613). 6497 * Clean up slink:VkViewport valid usage statements in the presence or 6498 absence of relevant extensions (public pull 623). 6499 * Remove 6500 ename:VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR 6501 token from VK_KHR_maintenance2 from the non-extension VU path for 6502 slink:VkGraphicsPipelineCreateInfo (public issue 628). 6503 * Miscellaneous minor markup fixes - extension name strings (public pull 6504 631), Notes (pull 633), queue names emitted by generator scripts (pull 6505 634), block formatting in slink:VkDescriptorUpdateTemplateEntryKHR (pull 6506 635), ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG (pull 6507 641), quotes and apostrophes (pull 643), 6508 * Miscellaneous minor grammar fixes (public pull 644). 6509 * Fix markup macros so usage like ptext:*Src* works (public pull 647). 6510 6511Internal Issues: 6512 6513 * Clarify in the `VK_KHR_surface` and `VK_KHR_swapchain` extensions that 6514 parameter combinations which aren't supported for normal images are also 6515 unsupported for presentable images, even if the parameter values are 6516 individually supported as reported by the surface capability queries 6517 (internal issue 1029). 6518 * Fixed XML typo in the valid value field of the pname:sType member of 6519 slink:VkPhysicalDeviceExternalMemoryHostPropertiesEXT (internal issue 6520 1100). 6521 6522Other Issues: 6523 6524 * Add memory semantics validity rules to the <<spirvenv-module-validation, 6525 Validation Rules within a Module>> section of the SPIR-V environment 6526 appendix, and specify that sequentiality consistency is not supported. 6527 This forbids certain cases like "`Load+Release`" that we don't expect to 6528 ever be meaningful. 6529 * Document mapping of OpenGL Shading Language barriers to SPIR-V scope and 6530 semantics in the `GL_KHR_vulkan_glsl` specification. 6531 6532New Extensions: 6533 6534 * `VK_EXT_conservative_rasterization` 6535 6536----------------------------------------------------- 6537 6538Change log for November 27, 2017 Vulkan 1.0.66 spec update: 6539 6540 * Bump API patch number and header version number to 66 for this update. 6541 6542Github Issues: 6543 6544 * Clarified how and when ename:VK_ERROR_TOO_MANY_OBJECTS is generated in 6545 flink:vkAllocate Memory, and remove incorrect valid usage statement 6546 about exceeding the API limit (public issue 356). 6547 * Minor clarification of the description of 6548 flink:vkUpdateDescriptorSetWithTemplateKHR::pname:descriptorUpdateTemplate 6549 (public issue 564). 6550 * Minor fixes for flink:vkCmdSetViewportWScalingNV (public pull request 6551 588). 6552 * Fix random name markup issues (public pull request 603). 6553 * Fix code:BuiltIn decoration typo in the <<fxvertex-attrib, Vertex 6554 Attributes>> section (public pull request 606). 6555 * Fix synchronization language following the definition of 6556 flink:vkAcquireNextImageKHR (public issue 607). 6557 * Restore descriptions of several commands and structures missing from the 6558 generated spec due to a mistyped asciidoctor conditional (public issue 6559 612). 6560 * Fix 1.0.41 changelog to refer to public issues 403/404 (public issue 6561 618). 6562 6563Internal Issues: 6564 6565 * Refactor valid usage statements with internal conditionals in 6566 `copies.txt`, `pipelines.txt`, `renderpass.txt`, and `resources.txt` so 6567 each branch of the conditional appears as a standalone statement which 6568 can contain a separate VUID. This should have no impact on the generated 6569 specs, but is necessary given the present state of the VU extractor and 6570 the validation layer code that consumes them (internal issue 1043). 6571 * Fix VkQueueGlobalPriorityEXT enum values missing _EXT suffix (internal 6572 issue 1045). 6573 * Clarified initial ownership of resources bound to shared memory objects, 6574 (internal issue 1068). 6575 * Fix duplicated valid usage ID tag for flink:vkCmdCopyImage, and make the 6576 required layouts include ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL in 6577 both cases (internal issue 1084). 6578 6579Other Issues: 6580 6581 * Remove the noise functions from GLSL for SPIR-V for Vulkan in the 6582 `GL_KHR_vulkan_glsl.txt` extension. 6583 6584New Extensions: 6585 6586 * `VK_EXT_external_memory_host` 6587 * `VK_EXT_external_memory_dma_buf` 6588 * `VK_EXT_queue_family_foreign` 6589 6590----------------------------------------------------- 6591 6592Change log for October 27, 2017 Vulkan 1.0.65 spec update: 6593 6594 * Bump API patch number and header version number to 65 for this update. 6595 6596Github Issues: 6597 6598 * Replaced inaccurate "`pixel`" with "`texel`" or "`compressed texel 6599 block`" as appropriate in the <<sparsememory, Sparse Resources>> chapter 6600 (public issue 86). 6601 * Attempt to clarify security/integrity guarantees in the 6602 <<fundamentals-errors, Errors>> section (public issue 147). 6603 * Update the <<memory-device,Device Memory>> section with clarifications 6604 and markup fixes (public pull request 194). 6605 * Fix typo VkDeviceCreateInfo -> slink:VkDebugMarkerObjectNameInfoEXT in 6606 sample code for `VK_EXT_debug_marker` extension (public pull request 6607 227). 6608 * Clarified slink:VkFramebufferCreateInfo language regarding concurrent 6609 use of attachment resources during a render pass instance (public issue 6610 299). 6611 * Added overlap rules for destination regions in <<copies,copy commands>>. 6612 Also unified the sparse and non-sparse source-destination overlap rules, 6613 since the non-sparse rules were technically inaccurate in the face of 6614 aliasing in flink:vkBindMemory2 - the new rules are true regardless 6615 (public issue 317). 6616 * Clarified the <<features-features-samplerAnisotropy, 6617 pname:samplerAnisotropy feature>> to only affect the 6618 slink:VkSamplerCreateInfo::pname:anisotropyEnable value, and that 6619 pname:maxAnisotropy is ignored when pname:anisotropyEnable is VK_FALSE 6620 (public issue 503). 6621 * Clarify pointer valid usage statements to use "`valid pointer to valid 6622 _object_`" terminology and update the 6623 <<fundamentals-validusage-pointers,Valid Usage for Pointers>> section 6624 accordingly (public pull request 547). 6625 * Some operations that use integer coordinates can also accept a LOD to 6626 sample from. Add a description of that selection and the validity 6627 conditions in the new <<textures-integer-coordinate-operations, Integer 6628 Texel Coordinate Operations>> section (public issue 548). 6629 * Update stext:VkImageSubresource* valid usage statements (public pull 6630 request 550). 6631 * Added text tying ename:VK_OUT_OF_POOL_MEMORY error for 6632 flink:vkAllocateDescriptorSets to the number of descriptor types in the 6633 allocating pool. Removed redundant "`length`" text about number of 6634 descriptors returned (public issue 582). 6635 * Update slink:VkSwapchainCreateInfoKHR descriptions (public pull request 6636 585). 6637 * Update slink:VkPipelineViewportWScalingStateCreateInfoNV and related 6638 structures' valid usage statements (public pull request 587). 6639 * Change some dates to conform to ISO 8601 as specified in the style guide 6640 (public pull request 601). 6641 * Fix some math markup problems and be more consistent in use of asciidoc 6642 math markup (public pull request 602). 6643 6644Internal Issues: 6645 6646 * Clarified that attribute reads from incomplete vertex buffer elements 6647 are considered out of bounds accesses, in the 6648 slink:VkPhysicalDeviceFeatures and flink:vkCmdBindVertexBuffers.txt 6649 sections (internal issue 842). 6650 6651----------------------------------------------------- 6652 6653Change log for October 20, 2017 Vulkan 1.0.64 spec update: 6654 6655 * Bump API patch number and header version number to 64 for this update. 6656 6657Github Issues: 6658 6659 * Add chapter name to the PDF page footer (public pull request 458). 6660 * Fix several mistaken references to the nonexistent etext:VK_DEVICE_LOST 6661 status to etext:VK_ERROR_DEVICE_LOST (public pull request 502). 6662 * Fix description of the tlink:PFN_vkDebugReportCallbackEXT debug report 6663 callback function pointer to match the validation layer behavior (public 6664 issue 534). 6665 * Document experimental KHX extensions and alternate vendor author IDs 6666 also ending in X in more detail in the <<extensions, Layers & 6667 Extensions>> appendix, the extensions section of the style guide, and 6668 the registry schema description document (public issues 536, 580). 6669 * Fix references to ptext:pDepthStencil to properly refer to 6670 pname:pDepthStencilState or pname:pRasterizationState as appropriate in 6671 the slink:VkGraphicsPipelineCreateInfo description (public issue 542). 6672 * Fix wrong parameter name in slink:VkPipelineMultisampleStateCreateInfo 6673 valid usage (public pull request 571). 6674 6675Internal Issues: 6676 6677 * Update the style guide to describe how to write LaTeX math expressions 6678 in table cells (internal issue 908). 6679 * Define how framebuffer-local dependencies work between subpasses with 6680 the same or different numbers of samples, in the 6681 slink:VkSubpassDescription and <<synchronization-framebuffer-regions, 6682 Framebuffer Region Dependencies>> sections. This clarifies which samples 6683 in an input attachment you are allowed to access after a 6684 framebuffer-local dependency (internal issue 915). 6685 * Specify which storage classes can have an initializer in the 6686 <<spirvenv-module-validation, Validation Rules within a Module>> section 6687 (internal issue 1023). 6688 * Use "LOD" consistently for "level-of-detail", to eliminate spelling 6689 inconsistencies. The term is already standardized in the Glossary 6690 (internal issue 1027). 6691 6692Other Issues: 6693 6694 * Fix false positives in Makefile dependencies when rules fail, by 6695 deleting partially-made targets. 6696 6697New Extensions: 6698 6699 * `VK_AMD_shader_info` 6700 6701----------------------------------------------------- 6702 6703Change log for October 13, 2017 Vulkan 1.0.63 spec update: 6704 6705 * Bump API patch number and header version number to 63 for this update. 6706 6707Github Issues: 6708 6709 * Add missing valid usage statements for ptext:maxDescriptorSets*, 6710 ptext:maxPerStageDescriptorInputAttachments, and 6711 ptext:maxPerStageResources to slink:VkPipelineLayoutCreateInfo.txt, 6712 flink:VkComputePipelineCreateInfo, and 6713 flink:VkGraphicsPipelineCreateInfo (public issue 546). 6714 * Fix typos in ftext:vkCmdDraw*AMD descriptions (public pull request 549). 6715 * Fixed flink:vkCmdWriteTimestamp so it is not unnecessarily restricted to 6716 queues supporting graphics or compute operations (public issue 558). 6717 * Improvements to valid usage generator for output `*Flags` pointer 6718 parameters and for some `void *` parameters (public pull requests 560, 6719 562). 6720 * Document `altlen` attribute in XML schema as valid C99 syntax and tweak 6721 `vk.xml` to match (public pull request 566). 6722 * Clarify when pname:fence is signaled by flink:vkQueueSubmit in a more 6723 obvious place (public issue 577). 6724 6725Internal Issues: 6726 6727 * Specify a list of supported SPIR-V Storage Classes in the 6728 <<spirvenv-module-validation, Validation Rules within a Module>> 6729 appendix (internal SPIR-V issue 166). 6730 * Relax the shared semaphore wait timeout requirement in the 6731 <<synchronization-semaphores-importing, Importing Semaphore Payloads>> 6732 section (internal issue 820). 6733 * Update the <<textures-image-level-selection, Image Level(s) Selection>> 6734 equations so that the parameters returned by the level-of-detail query 6735 appear explicitly, also fixing the issue that linear filtering would 6736 select a level below the base level for magnification (internal issue 6737 926). 6738 * Disallow creation of a swapchain with zero pname:imageExtent in 6739 slink:VkSurfaceCapabilitiesKHR and slink:VkSwapchainCreateInfoKHR 6740 (internal issue 1020). 6741 6742Other Issues: 6743 6744 * Clarify in <<textures-operation-validation,Image View Validation>> that 6745 the layout of subresources in an image view must have a layout that 6746 matches that written into the descriptor, and that this section is about 6747 validating image views, not images. 6748 6749New Extensions: 6750 6751 * `VK_EXT_global_priority` 6752 6753----------------------------------------------------- 6754 6755Change log for October 6, 2017 Vulkan 1.0.62 spec update: 6756 6757 * Bump API patch number and header version number to 62 for this update. 6758 6759Github Issues: 6760 6761 * Move asciidoc conditionals for `VK_KHR_maintenance1` in 6762 slink:VkDescriptorSetAllocateInfo so valid usage statements for 6763 `VK_KHR_push_descriptor` aren't accidentally removed when the first 6764 extension isn't enabled (public issue 573). 6765 6766Internal Issues: 6767 6768 * Specify constraints on concurrent access to fences that share payload in 6769 the <<synchronization-fences-importing, Importing Fence Payloads>> and 6770 <<synchronization-semaphores-waiting-state, Semaphore State Requirements 6771 For Wait Operations>> sections (internal issue 820). 6772 * Define the term "`retired swapchain`", reorganize some swapchain 6773 language, and improve language for pname:oldSwapchain in 6774 flink:VkSwapchainCreateInfoKHR, the <<swapchain-wsi-image-create-info>> 6775 table, flink:vkDestroySwapchainKHR, and flink:vkAcquireNextImage2KHX 6776 (internal issue 869). 6777 * Describe in the <<writing-arrays, Describing Properties of Array 6778 Elements>> section of the style guide how and when to use "`each`" and 6779 "`any`" to refer to properties of array elements, and make those uses in 6780 the specification consistent (internal issue 884). 6781 * Clarified that events cannot be used for cross-queue synchronization in 6782 the <<synchronization-events, Events>> section and for 6783 flink:vkCmdWaitEvents (internal issue 970). 6784 * Add success and error codes to +vk.xml+ for 6785 flink:vkCreateValidationCacheEXT (internal issue 995). 6786 * Clarify aspect mask usage for image memory barriers of multi-plane 6787 images in slink:VkImageSubresourceRange, slink:VkImageMemoryBarrier, and 6788 the <<textures-layout-validation, Layout Validation>> section (internal 6789 issue 996). 6790 6791Other Issues: 6792 6793 * Fixed typo in flink:VkRenderPassSampleLocationsBeginInfoEXT (renamed 6794 field pname:pSubpassSampleLocations to 6795 pname:pPostSubpassSampleLocations). 6796 * Add missing buffer usage requirements for indirect draws in 6797 flink:vkCmdDrawIndirect, flink:vkCmdDrawIndirectCountAMD, 6798 flink:vkCmdDrawIndexedIndirect, and 6799 flink:vkCmdDrawIndexedIndirectCountAMD. 6800 * Modify Makefile to allow specification to build in git "`detached HEAD`" 6801 state. 6802 * Update valid usage ID generation script to allow recursively operating 6803 on all `.txt` files in a specified directory, and move the `startVUID` 6804 tracking information into a separate python file that is automatically 6805 updated by the script. 6806 * Fixed errors in API example code for 6807 flink:vkUpdateDescriptorSetWithTemplateKHR and 6808 flink:vkCmdPushDescriptorSetWithTemplateKHR. 6809 6810New Extensions: 6811 6812 * Add +vk.xml+ entries for pending `VK_ANDROID_native_buffer` extension 6813 (note, this extension is not yet enabled). 6814 * `VK_AMD_shader_image_load_store_lod` 6815 6816----------------------------------------------------- 6817 6818Change log for September 15, 2017 Vulkan 1.0.61 spec update: 6819 6820 * Bump API patch number and header version number to 61 for this update. 6821 6822Github Issues: 6823 6824 * Provide alternate length attributes (altlen=) in the XML schema, for 6825 those using length attributes to generate code instead of documentation 6826 (public issue 555). 6827 * Fix erroneous references to `latex:` being used for asciidoc math 6828 markup, rather than `latexmath:` (public pull request 556). 6829 * Add author ID to XML for Kazan software renderer (public pull request 6830 557). 6831 6832Internal Issues: 6833 6834 * Add the <<fundamentals-abi,Application Binary Interface>> section 6835 describing platform ABI requirements and recommendations, add examples 6836 of function and function pointer declarations to the 6837 <<boilerplate-platform-specific-calling-conventions, Platform-Specific 6838 Calling Conventions>> section, and remove related language that existed 6839 elsewhere in the specification (internal issue 64). 6840 * Describe where to document valid usage interactions of chained 6841 structures in the style guide, and fix one case now appearing in 6842 slink:VkBufferCreateInfo instead of the child 6843 slink:VkDedicatedAllocationBufferCreateInfoNV structure (internal issue 6844 715). 6845 * Add example to the style guide of describing enumerated types which are 6846 empty when the spec is built without relevant extensions enabled, and 6847 apply it to existing examples for 6848 elink:VkDescriptorSetLayoutCreateFlagBits and 6849 elink:VkSubpassDescriptionFlagBits (internal issue 864). 6850 * Add a note to the <<fundamentals-validusage-enums, Valid Usage for 6851 Enumerated Types>> section that the special values suffixed with 6852 etext:_BEGIN_RANGE, etext:_END_RANGE, etext:_RANGE_SIZE and 6853 etext:_MAX_ENUM are not part of the API and should: not be used by 6854 applications (internal issue 872). 6855 * Added note to flink:vkCmdUpdateBuffers explaining the performance 6856 penalty for copies done in this way, and why the upper copy limit is 6857 what it is (internal issue 952). 6858 * Update `VK_KHX_device_group` to split some functionality into the new 6859 `VK_KHR_bind_memory2` extension, and rename that functionality (internal 6860 issue 969). 6861 * Remove *Status* fields from extension appendices, since they are by 6862 definition published and complete by the time they reach the public 6863 github repository (internal issue 973). 6864 6865Other Issues: 6866 6867 * Update Data Format specification dependency to version 1.2 and change 6868 references to DF sections accordingly. 6869 * Update XML to make the pname:pAllocator parameter of 6870 flink:vkRegisterDeviceEventEXT and flink:vkRegisterDisplayEventEXT in 6871 the `VK_EXT_display_control` extension as optional. 6872 6873New Extensions: 6874 6875 * `VK_KHR_bind_memory2` 6876 * `VK_KHR_image_format_list` 6877 * `VK_KHR_maintenance2` 6878 * `VK_KHR_sampler_ycbcr_conversion` 6879 6880----------------------------------------------------- 6881 6882Change log for September 5, 2017 Vulkan 1.0.60 spec update: 6883 6884 * Bump API patch number and header version number to 60 for this update. 6885 6886Github Issues: 6887 6888 * Document that <<queries-timestamps, Timestamp Queries>> can only be 6889 meaningfully compared when they are written from the same queue (public 6890 issue 216). 6891 * Document that the `<extension>` tag `type` attribute is required for 6892 non-disabled extensions (derived from, but does not close public issue 6893 354). 6894 * Clean up registry schema length attribute descriptions to be consistent 6895 and correct (public issue 555). 6896 6897Internal Issues: 6898 6899 * Replace as much of the hand-written extension appendix metadata as 6900 possible with asciidoc includes generated from corresponding attributes 6901 of +vk.xml+, and enhance the style guide to match. This avoids 6902 inconsistencies between +vk.xml+ and the appendices, and produces a more 6903 uniform style (internal issue 137). 6904 * Remove the generated extDependency.{py,sh} files from the tree and 6905 create them dynamically on demand instead, reducing merge conflicts 6906 (internal issue 713). 6907 * Add a prototype tool for generating in-place difference markup for 6908 sections guarded by asciidoc conditionals, and new syntax for open 6909 blocks to support it (internal issue 833). 6910 * Remove unnecessary restriction of etext:*SYNC_FD_BIT_KHR external handle 6911 types to the same physical device in the 6912 slink:VkPhysicalDeviceIDPropertiesKHR, 6913 flink:VkImportMemoryWin32HandleInfoKHR, 6914 slink:VkImportFenceWin32HandleInfoKHR, slink:VkImportFenceFdInfoKHR, 6915 slink:VkImportSemaphoreWin32HandleInfoKHR, 6916 slink:VkImportSemaphoreFdInfoKHR 6917 <<external-memory-handle-types-compatibility, External memory handle 6918 types compatibility>>, <<external-semaphore-handle-types-compatibility, 6919 External semaphore handle types compatibility>>, and 6920 <<external-fence-handle-types-compatibility, External fence handle types 6921 compatibility>> sections (internal issue 956). 6922 6923Other Issues: 6924 6925 * Remove dependency of +VK_KHX_device_group+ on +VK_KHR_swapchain+ (there 6926 is an interaction, but not a strict dependency), and add a new 6927 `extension` attribute to the `<require` XML tag to allow classifying a 6928 subset of interfaces of an extension as requiring another extension. 6929 Update the registry schema and documentation accordingly. 6930 6931New Extensions: 6932 6933 * `VK_AMD_shader_fragment_mask` (and related `GL_AMD_shader_fragment_mask` 6934 GLSL extension) 6935 * `VK_EXT_sample_locations` 6936 * `VK_EXT_validation_cache` 6937 6938----------------------------------------------------- 6939 6940Change log for August 19, 2017 Vulkan 1.0.59 spec update: 6941 6942 * Bump API patch number and header version number to 59 for this update. 6943 6944Github Issues: 6945 6946 * Fix a few missing Implicit Valid Usage statements to indicate that a 6947 common parent of two objects is required (public issue 497). 6948 * Clarify render pass synchronization language for 6949 slink:VkSubpassDependency and <<renderpass,render passes>> (public 6950 issue 531). 6951 * Rename ename:VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT to 6952 ename:VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT for consistency, and 6953 add an alias for backwards compatibility (public issue 539). 6954 6955Internal Issues: 6956 6957 * Add an explanation to the <<interfaces-builtin-variables-layer, 6958 code:Layer>> description explaining that writing to invalid layers 6959 results may or may not result in primitives being processed and fragment 6960 shaders being run, and gives undefined results in the framebuffer 6961 (internal issue 614) 6962 * Add valid usage statement for slink:VkDescriptorSetLayoutBinding 6963 requiring that input attachment descriptor bindings must not use 6964 non-fragment stages (internal issue 933). 6965 6966Other Issues: 6967 6968 * Makes description of pname:loadOp and pname:storeOp easier to read in 6969 the <<renderpass-load-store-ops>> section. 6970 6971New Extensions: 6972 6973 * `VK_EXT_shader_stencil_export` 6974 6975----------------------------------------------------- 6976 6977Change log for August 14, 2017 Vulkan 1.0.58 spec update: 6978 6979 * Bump API patch number and header version number to 58 for this update. 6980 6981Github Issues: 6982 6983 * Update the <<interfaces-resources-descset,Descriptor Set Interface>> 6984 section to allow multiple variables with the same descriptor set/binding 6985 decorations, and require that all variables that are statically used 6986 must be consistent with the pipeline layout. Allow 6987 ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER to be used with texture 6988 and sampler variables (public issues 522, 524). 6989 6990Internal Issues: 6991 6992 * Replace networkx package used for extension dependency generation with a 6993 homegrown network dependency traverser (internal issue 713). 6994 * Specify in the <<interfaces-fragmentoutput, Fragment Output Interface>> 6995 section that if a fragment shader writes integers that cannot be 6996 represented in the format of the colour attachment, then the result is 6997 undefined (internal issue 893). 6998 * Separate malformed valid usage statement for 6999 slink:VkPipelineRasterizationStateCreateInfo into two (internal issue 7000 918). 7001 * Fix cases where the term 'pNext chain' is incorrectly used in reference 7002 to functions, rather than their parameters. Replace 'pNext list' with 7003 'pNext chain'. Fixed typo in the example code of 7004 +VK_KHR_dedicated_allocation+ (internal issue 944). 7005 * Fix typo in elink:VkExternalSemaphoreHandleTypeFlagBitsKHR enum 7006 descriptions, replacing 7007 etext:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT_KHR with 7008 ename:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR, and make the 7009 description more consistent with 7010 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR (internal issue 950). 7011 7012Other Issues: 7013 7014 * Clarify how pipeline stage masks affect 7015 <<synchronization-pipeline-stages-masks, access and synchronization 7016 scopes>>. 7017 * Clarify that dedicated allocations do not allow aliasing in the 7018 flink:vkBindBufferMemory and flink:vkBindImageMemory valid usage 7019 statements. 7020 * Correct specification of pname:dynamicCount for push_constant token in 7021 slink:VkIndirectCommandsLayoutNVX. 7022 7023New Extensions: 7024 7025 * `VK_EXT_shader_viewport_index_layer` 7026 7027----------------------------------------------------- 7028 7029Change log for August 1, 2017 Vulkan 1.0.57 spec update: 7030 7031 * Bump API patch number and header version number to 57 for this update. 7032 7033Github Issues: 7034 7035 * Fix error in description of ename:VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK 7036 block size (public issue 342). 7037 * Update documentation of ename:VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT 7038 to explicitly mention both graphics and compute pipelines (public issue 7039 525). 7040 7041Internal Issues: 7042 7043 * Document that 7044 slink:VkPhysicalDeviceLimits::pname:framebufferColorSampleCounts does 7045 not cover integer formats (internal issue 550). 7046 * Add a note under slink:VkImageViewCreateInfo describing how values meant 7047 for one format can be sanitized when used via another format (internal 7048 issue 927). 7049 * Add valid usage statements to ftext:vkCmd* documenting that image 7050 subresources used as attachments must not be accessed as non-attachments 7051 in a render pass (internal issue 929). 7052 * Remove obsolete 'validextensionstructs' attribute from +vk.xml+, the XML 7053 schema, and the schema documentation (internal issue 946). 7054 7055New Extensions: 7056 7057 * `VK_AMD_mixed_attachment_samples` 7058 * `VK_EXT_post_depth_coverage` 7059 * `VK_KHR_relaxed_block_layout` 7060 7061----------------------------------------------------- 7062 7063Change log for July 21, 2017 Vulkan 1.0.56 spec update: 7064 7065 * Bump API patch number and header version number to 56 for this update. 7066 7067Github Issues: 7068 7069 * Add valid usage statements for commands introduced by 7070 `VK_EXT_debug_report` and `VK_EXT_debug_marker` extensions, regarding 7071 the valid pname:object and pname:objectType values (public issue 495). 7072 * Modify `GL_KHR_vulkan_glsl` specification to document that uniform and 7073 buffer block arrays each take only a single binding (public issue 514). 7074 * Add `KHX` author tag to +vk.xml+ (public issue 526). 7075 7076Internal Issues: 7077 7078 * Document use of code: macro for non-Vulkan APIs in the style guide 7079 (internal issue 863). 7080 * Document that reference page open block delimiters must not contain 7081 asciidoc section markup in the style guide (internal issue 898). 7082 * Fix <<spirvenv,SPIR-V appendix>> to say 7083 code:VariablePointersStorageBuffer instead of 7084 code:VariablePointersUniformBufferBlock (internal issue 928). 7085 7086Other Commits: 7087 7088 * Add missing extension structures to dependency attributes in +vk.xml+. 7089 7090New Extenions: 7091 7092 * `VK_EXT_depth_range_unrestricted` 7093 7094----------------------------------------------------- 7095 7096Change log for July 15, 2017 Vulkan 1.0.55 spec update: 7097 7098 * Bump API patch number and header version number to 55 for this update. 7099 7100Github Issues: 7101 7102 * Removed unintended optional parameter in +vk.xml+ from the 7103 pname:pWaitSemaphores member of slink:VkPresentInfoKHR, which resulted 7104 in the generation of an incorrect implicit valid usage clause allowing 7105 pname:pWaitSemaphores to be NULL even when pname:waitSemaphoreCount is 7106 non-zero (public issue 491). 7107 * Add missing attribute to +vk.xml+ documenting that 7108 slink:VkSwapchainCounterCreateInfoEXT extends 7109 slink:VkSwapchainCreateInfo (public issue 510). 7110 * Add const qualifier for some `VK_EXT_debug_market` extension command 7111 parameters that were missing it (public issue 513). 7112 * Fix definition of q and level~base~ in 7113 <<textures-image-level-selection,Image Level(s) Selection>> (public 7114 issue 515). 7115 * Clarify lifetime requirement for slink:VkRenderPass objects used in 7116 object creation (public issue 516). 7117 * Fix link to floating/normalized fixed-point conversion from 7118 <<interfaces-fragmentoutput,Fragment Output Interface>> (public issue 7119 521). 7120 7121Internal Issues: 7122 7123 * Update the style guide to include the general structure of a Vulkan 7124 command name, the specific rule for using "`Get`" vs. "`Enumerate`" in 7125 names, and a table of verbs commonly used in command names (spinoff of 7126 internal issue 753). 7127 * Clarified the behavior of automatic layout transitions in case of 7128 attachment views that are 2D or 2D array views of 3D images. In 7129 addition, restructured the valid usage clauses corresponding to the 7130 members of the slink:VkImageSubresourceRange structure and added missing 7131 valid usage clauses for its pname:baseMipLevel and pname:baseArrayLayer 7132 members (internal issues 803, 849). 7133 * Modify `GL_KHR_vulkan_glsl` specification to allow explicit std430 on a 7134 push_constant declaration (internal issue 919). 7135 7136Other Commits: 7137 7138 * Modify <<synchronization-framebuffer-regions, Framebuffer Region 7139 Dependencies>> to use synchronization scope terminology. 7140 * Add ename:VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT to the 7141 `VK_EXT_swapchain_colorspace` extension. 7142 * Replace XML comments with `comment` attributes and/or tags, to enable 7143 tools which transform the XML without loss of information. 7144 * Replace `validextensionstructs` with `structextends`, which is tagged in 7145 the child structure instead of the parent. This makes it slightly 7146 simpler to add new structs to the XML, causes fewer merge conflicts, and 7147 the information is kept localized to the extension structures where it 7148 belongs. The old `validextensionstructs` attributes will be retained 7149 until we're certain this doesn't cause problems with known consumers of 7150 +vk.xml+. 7151 7152----------------------------------------------------- 7153 7154Change log for July 13, 2017 Vulkan 1.0.54 spec update: 7155 7156 * Bump API patch number and header version number to 54 for this update. 7157 7158Github Issues: 7159 7160Internal Issues: 7161 7162 * Fix tessellation domain to have an upper-left origin in the 7163 <<img-tessellation-topology-ul, tessellation toplogy image>> and related 7164 language. CTS and all implementations were already doing this, it was 7165 just a documentation bug that it was flipped to lower-left (internal 7166 issue 603). 7167 * Add a section to the style guide describing how VUID tags are changed 7168 and removed when the corresponding Valid Usage statements are modified 7169 (internal issue 829). 7170 * Add explicit Valid Usage statement to 7171 slink:VkPipelineDynamicStateCreateInfo to require that members of 7172 pname:pDynamicStates must be unique (internal issue 851). 7173 7174New Extensions: 7175 7176 * `VK_KHR_16bit_storage` 7177 * `VK_KHR_dedicated_allocation` 7178 * `VK_KHR_external_fence` 7179 * `VK_KHR_external_fence_capabilities` 7180 * `VK_KHR_external_fence_fd` 7181 * `VK_KHR_external_fence_win32` 7182 * `VK_KHR_get_memory_requirements2` 7183 * `VK_KHR_storage_buffer_storage_class` 7184 * `VK_KHR_variable_pointers` 7185 7186Extensions Promoted From KHX To KHR Status: 7187 7188 * `VK_KHR_external_memory` 7189 * `VK_KHR_external_memory_capabilities` 7190 * `VK_KHR_external_memory_fd` 7191 * `VK_KHR_external_memory_win32` 7192 * `VK_KHR_external_semaphore` 7193 * `VK_KHR_external_semaphore_capabilities` 7194 * `VK_KHR_external_semaphore_fd` 7195 * `VK_KHR_external_semaphore_win32` 7196 * `VK_KHR_win32_keyed_mutex` 7197 7198----------------------------------------------------- 7199 7200Change log for June 24, 2017 Vulkan 1.0.53 spec update: 7201 7202 * Bump API patch number and header version number to 53 for this update. 7203 7204Github Issues: 7205 7206Internal Issues: 7207 7208 * Clarify mappings of coordinates for mutable, compatible image views in 7209 slink:VkImageViewCreateInfo (internal issue 815). 7210 * Make ename:VK_BIND_SFR_BIT require a logical device with multiple 7211 physical devices, so that standard sparse image block dimensions are 7212 only required on systems that support multi-GPU (internal issue 835). 7213 * Convert all files from use of // refBegin .. // refEnd comments to 7214 delimit ref pages, to use of open blocks, and update style guide 7215 accordingly (internal issue 839). 7216 * Add valid usage for slink:VkWriteDescriptorSet when performing updates 7217 to a ename:VK_STORAGE_IMAGE descriptor with layout 7218 ename:VK_IMAGE_LAYOUT_GENERAL. 7219 * Add a hack to the validity generator script to support an odd 7220 interaction between flink:vkCmdFillBuffer and an extension (internal 7221 issue 853). 7222 * Remove redundant text describing slink:VkBufferCreateInfo::pname:usage, 7223 which was already covered by implicit valid usage (internal issue 854). 7224 * Update implicit validity generator script to properly handle the 7225 pname:sType and pname:pNext members of "returnedonly" structures 7226 (internal issue 874). 7227 * Note that slink:VkApplicationInfo::pname:pApplicationName & 7228 slink:VkApplicationInfo::pname:pEngineName are optional, and add missing 7229 implicit valid usage statements for flink:vkDestroyInstance. 7230 * Added missing valid usage for flink:vkCmdWriteTimestamp to require a 7231 timestamp query pool. 7232 * Simplify and/or split "`non-atomic`" valid usage statements. 7233 7234New Extensions: 7235 7236 * `VK_AMD_gpu_shader_int16` 7237 * `VK_EXT_blend_operation_advanced` 7238 * `VK_EXT_sampler_filter_minmax` 7239 * `VK_NV_framebuffer_mixed_samples` 7240 7241----------------------------------------------------- 7242 7243Change log for June 13, 2017 Vulkan 1.0.52 spec update: 7244 7245 * Bump API patch number and header version number to 52 for this update. 7246 7247Github Issues: 7248 7249Internal Issues: 7250 7251 * Clarify behavior when non-coherent memory has 7252 <<memory-device-unmap-does-not-flush, not been flushed before being 7253 unmapped>> (internal issue 819). 7254 * Fix description of code:WorkgroupSize builtin to note it decorates an 7255 object, not a variable (internal issue 836). 7256 * Fix asciidoc attributes so that trailing '{plus}' symbols in [eq] style 7257 equations are rendered properly (internal issue 845). 7258 * Add language to the "`Extension Handles, Objects, Enums, and Typedefs`" 7259 section of the Procedures and Conventions document stating that any new 7260 handle type requires a corresponding entry in the elink:VkObjectType 7261 enumerated type (internal issue 856). 7262 * Update style guide to use slink macro for Vulkan handle type names, and 7263 define narrow conditions under which to use the *name and *text macros 7264 instead of *link (internal issue 886). 7265 * Add a dependency of the <<VK_KHX_device_group,VK_KHX_device_group>> 7266 extension on VK_KHX_device_group_creation to +vk.xml+ and the extension 7267 appendix. 7268 * Change the copyright on Vulkan specification asciidoc *source* files to 7269 CC-BY 4.0, and update the proprietary Khronos copyright applied to the 7270 generated *output* formats (internal issue 327). This enables broader 7271 re-use and modification of the Vulkan specification sources, while not 7272 affecting the Reciprocal IP License between Vulkan Adopters and Working 7273 Group Members. 7274 7275New Extensions: 7276 7277 * `VK_NV_fill_rectangle` 7278 * `VK_NV_fragment_coverage_to_color` 7279 7280----------------------------------------------------- 7281 7282Change log for June 4, 2017 Vulkan 1.0.51 spec update: 7283 7284 * Bump API patch number and header version number to 51 for this update. 7285 7286Github Issues: 7287 7288 * Add Valid Usage statement to flink:vkCmdResolveImage to require that 7289 source and destination image formats match (public issue 492). 7290 * Specify that a code:char* parameter must: be a valid null-terminated 7291 string in the <<fundamentals-implicit-validity, implicit valid usage>> 7292 section (public issue 494). 7293 * Removed unnecessary VU for slink:VkPhysicalDeviceFeatures which is 7294 covered by ename:VK_ERROR_FEATURE_NOT_PRESENT already (public issue 7295 496). 7296 * Clarify valid usage of pname:pQueueFamilyIndices in 7297 slink:VkBufferCreateInfo, slink:VkImageCreateInfo, and 7298 slink:VkSwapchainCreateInfoKHR (public issue 501). 7299 * Document that dependencies of enabled extensions must also be enabled in 7300 the <<extended-functionality-extensions-dependencies, Extension 7301 Dependencies>> section (public issue 507). 7302 7303Internal Issues: 7304 7305 * Change slink:VkMappedMemoryRange valid usage to allow pname:offset + 7306 pname:size == size of the allocation. Also, if ename:VK_WHOLE_SIZE is 7307 used, require the end of the mapping to be aligned to a multiple of 7308 pname:nonCoherentAtomSize (internal issue 611). 7309 * Add issue to `VK_KHR_win32_surface` about reusing window objects from a 7310 different graphics API or Vulkan ICD (internal issue 639). 7311 * Require locations on user in/out in `GL_KHR_vulkan_glsl` (internal issue 7312 783). 7313 * Added version info to the json validation output, and updated the schema 7314 to match (internal issue 838). 7315 * Restructure enumerated type descriptions separately from the command or 7316 structure they are used in, allowing better reference page generation 7317 (internal issue 841). 7318 * Re-sort extension appendices to be in alphabetical order within each 7319 author ID section. 7320 * Fix enum naming and clarify behavior for 7321 `VK_NVX_device_generated_commands` extension. 7322 7323----------------------------------------------------- 7324 7325Change log for May 20, 2017 Vulkan 1.0.50 spec update: 7326 7327 * Bump API patch number and header version number to 50 for this update. 7328 7329Github Issues: 7330 7331 * Fix numerous minor issues with the VK_EXT_debug_report extension (public 7332 issues 478, 483, 486, 489, 490). 7333 7334Internal Issues: 7335 7336 * Update flink:vkAllocateDescriptorSets to specify conditions under which 7337 to return ename:VK_ERROR_FRAGMENTED_POOL or 7338 ename:VK_ERROR_OUT_OF_POOL_MEMORY instead of 7339 out-of-host/out-of-device-memory, and improve the 7340 <<fundamentals-errorcodes, description of those errors (internal issue 7341 654). 7342 * Add a NOTE documenting that flink:vkAcquireNextImageKHR can only signal 7343 a single semaphore, and how to deal with that when multiple physical 7344 devices in a logical device need to wait on it (internal issue 730). 7345 * Improve description of pname:pNext chains of 7346 slink:VkPhysicalDeviceImageFormatInfo2KHR and 7347 slink:VkImageFormatProperties2KHR (internal issue 814). 7348 * Clean up math markup issues in the <<textures, Image Operations>> 7349 chapter (internal issue 818). 7350 * Update validusage target to use more robust code for preprocessing, by 7351 making direct use of Asciidoctor's preprocessor. Added uniqueItems check 7352 to JSON vu schema and add clean_validusage target (internal issue 826). 7353 * Update style guide to prohibit writing non-self-contained (on a single 7354 bullet point) Valid Usage statements, and modify offending Valid Usage 7355 statements in the Specification to match, to assist with automatic 7356 extraction for the validation layers (internal issue 828). 7357 * Add ename:VK_VALIDATION_CHECK_SHADERS_EXT to elink:VkValidationCheckEXT 7358 of the `VK_EXT_validation_flags` extension, to selectively disable 7359 shader validation. 7360 * Remove duplicate valid usage statement for slink:VkImageMemoryBarrier. 7361 * Modify reflow.py script to place VUID tag anchors standalone on a line 7362 following their corresponding bullet point, and reflow the spec text 7363 accordingly (this had been pending since the initial tag deployment). 7364 7365New Extensions: 7366 7367 * `VK_AMD_texture_gather_bias_lod` 7368 7369----------------------------------------------------- 7370 7371Change log for May 12, 2017 Vulkan 1.0.49 spec update: 7372 7373 * Bump API patch number and header version number to 49 for this update. 7374 7375Github Issues: 7376 7377 * Modify reference page extraction script to make internal links to spec 7378 anchors refer to the core specification instead of being dangling links 7379 (public issue 455). 7380 * Fix GL_KHR_vulkan_glsl typo and add a nor-normative mapping to the newly 7381 published StorageBuffer class (public issue 466). 7382 * Both flink:vkEnumerateInstanceExtensionProperties and 7383 flink:vkEnumerateDeviceExtensionProperties return 7384 ename:VK_ERROR_LAYER_NOT_PRESENT, which covers the error case of an 7385 application providing a layer name that wasn't returned by 7386 ftext:vkEnumerate{Instance|Device}LayerProperties (public issue 487). 7387 * The specification for flink:VkApplicationInfo::apiVersion says that the 7388 driver must return ename:VK_ERROR_INCOMPATIBLE_DRIVER in the case that 7389 pname:apiVersion specifies a non-supported version. That means that the 7390 valid usage should not also state that, and so the VU statement is 7391 removed. The VU had language about "`an effective substitute`" that 7392 would have been lost, and so it was moved to the pname:apiVersion 7393 description (public issue 488). 7394 7395Internal Issues: 7396 7397 * Modify implicit validity generator script to assign asciidoc anchors to 7398 all valid usage statements it generates, and reflow.py script to insert 7399 Valid Usage ID (VUID) tags into the specification source files for 7400 explicit valid usage statements. This has no semantic effects on the 7401 specification, but will support the validation layer's detection of 7402 valid usage violations and allow it to link into the corresponding part 7403 of the specification (internal issue 583). 7404 * Assign VUID tags to all explicit VU statements and document 7405 the process and tag format in the style guide (internal issue 583). 7406 * Clarify the rules of whether to structure new functionality as instance 7407 extensions, device extensions, or both in the 7408 <<extended-functionality-instance-extensions-and-devices, Instance 7409 Extensions and Device Extensions>> section (internal issue 749). 7410 * Require that SPIR-V run-time arrays are only used with the 7411 code:BufferBlock decoration (internal issue 750). 7412 * Fix implicit and explicit valid usage statements for 7413 slink:VkWriteDescriptorSet::pname:dstSet (internal issue 767) 7414 * Fix SPIR-V code sample for ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER 7415 in the <<descriptorsets-uniformtexelbuffer, Uniform Texel Buffer>> 7416 section (internal issue 770). 7417 * Clarify that disabling depth testing also disables depth writes in the 7418 <<fragops-ds-state, Depth and Stencil Operations>> section (internal 7419 issue 775). 7420 * flink:VkDescriptorImageInfo::pname:imageLayout must match the actual 7421 imageLayout at the time the image is accessed. This was in the spec 7422 text, but needed an associated valid usage statement. 7423 * Note that only 32-bit atomic operations are supported in the 7424 <<spirvenv-module-validation, Validation Rules within a Module>> 7425 section. 7426 * Note that code:UniformConstant variables must not have initializers in 7427 the <<spirvenv-module-validation, Validation Rules within a Module>> 7428 section. 7429 * Add a new elink:VkObjectType enumeration to the core API, promoted from 7430 elink:VkDebugObjectTypeEXT, since it is used for much more than just the 7431 debug_report extension. 7432 7433New Extensions: 7434 7435 * `VK_KHR_get_surface_capabilities2` 7436 * `VK_KHR_shared_presentable_image` 7437 7438----------------------------------------------------- 7439 7440Change log for April 15, 2017 Vulkan 1.0.48 spec update: 7441 7442 * Bump API patch number and header version number to 48 for this update. 7443 7444Internal Issues: 7445 7446 * Add missing VU statements for flink:vkUpdateDescriptorSets (internal 7447 issue 333). 7448 * Correct swapped ifdef/ifndef blocks for `VK_KHR_maintenance1` extension 7449 (internal issue 776). 7450 7451----------------------------------------------------- 7452 7453Change log for April 8, 2017 Vulkan 1.0.47 spec update: 7454 7455 * Bump API patch number and header version number to 47 for this update. 7456 7457Github Issues: 7458 7459 * Allow <<synchronization-pipeline-barriers-subpass-self-dependencies, 7460 self-dependencies>> (also described for slink:VkSubpassDependency) to 7461 have earlier stages depend on later stages if all stages are 7462 framebuffer-space (public issue 125). 7463 * Clarify when pipeline state structures are ignored in the 7464 slink:VkGraphicsPipelineCreateInfo strucure, when the tessellation 7465 structure must be valid, and remove 'if `NULL`' descriptions from the 7466 valid usage statements (public issue 445). 7467 * Remove the obsolete "validextensionstructs" attribute for 7468 flink:VkPresentRegionsKHR. This caused a pname:pNext valid usage 7469 statement to be generated which wasn't consistent with what is stated in 7470 the spec (public issue 481). 7471 7472Internal Issues: 7473 7474 * Clarify facingness of non-polygon fragments for slink:VkStencilOpState 7475 and in the code:FrontFacing <<interfaces-builtin-variables,built-in 7476 variable description>>. Define 'facingness' of a fragment as a distinct 7477 term from facingness of a polygon (internal issue 662). 7478 * Clarify that the texture compression features (e.g. 7479 pname:textureCompressionBC) means that all formats of that type 7480 (<<features-features-textureCompressionASTC_LDR,ASTC>>, 7481 <<features-features-textureCompressionETC2,ETC2>>, 7482 <<features-features-textureCompressionBC,BC>>) are supported, and that 7483 support for individual formats may: queried separately (internal issue 7484 663). 7485 * Clarify in the valid usage for slink:VkBindImageMemoryInfoKHX that each 7486 SFR rectangle must be a multiple of the sparse block size for each 7487 aspect, e.g. in a depth/stencil image using separate depth/stencil 7488 planes (internal issue 721). 7489 * Re-remove KHX variants of KHR structure types after promotion (internal 7490 issue 762). 7491 7492----------------------------------------------------- 7493 7494Change log for March 31, 2017 Vulkan 1.0.46 spec update: 7495 7496 * Bump API patch number and header version number to 46 for this update. 7497 7498Github Issues: 7499 7500 * Add language to the <<fundamentals-validusage-enums, Valid Usage for 7501 Enumerated Types>> section allowing values to be returned from Vulkan 7502 that are not present in extensions explicitly enabled by the 7503 application, similar to existing language for bit flags in the 7504 <<fundamentals-validusage-flags, Valid Usage for Flags>> section (public 7505 issue 442). 7506 * *Important*: run `gem update --pre asciidoctor-pdf` before trying to 7507 build this version of the spec - 1.5.0.alpha15 is required for this 7508 change. Removes the monkey patch currently used to draw valid usage 7509 blocks across multiple pages which had numerous issues. A fixed version 7510 was incorporated into Asciidoctor-PDF for the latest release, so the 7511 monkey patch or any variant thereof is no longer required (public issue 7512 465). 7513 7514Internal Issues: 7515 7516 * Add ename:VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT 7517 to `VK_EXT_debug_report` extension 7518 * Fix ptext:pNext member of 7519 slink:VkPhysicalDeviceDiscardRectanglePropertiesEXT to be a non-const 7520 pointer. Properties structures return values, so the chain should be 7521 non-const. 7522 * Explicitly remove gl_NumSamples from the `GL_KHR_vulkan_glsl` extension, 7523 against 1.0 (internal issue 612). 7524 * Add Valid Usage statements requiring that each structure type valid in a 7525 ptext:pNext chain must: not appear more than once in a chain (internal 7526 issue 752). 7527 * Use ename:VK_USE_PLATFORM_WIN32_KHX in the 7528 `VK_KHX_external_memory_win32` extension, rather than etext:_KHR 7529 (internal issue 754). 7530 7531New Extensions: 7532 7533 * `VK_KHR_incremental_present` 7534 7535----------------------------------------------------- 7536 7537Change log for March 24, 2017 Vulkan 1.0.45 spec update: 7538 7539 * Bump API patch number and header version number to 45 for this update. 7540 7541Github Issues: 7542 7543 * Defined the lifetime of the memory pointed to by 7544 slink:VkDisplayPropertiesKHR::pname:displayName to be equal to that of 7545 its associated display handle (public issue 460). 7546 * Correct several cases where the sparse memory feature name 7547 pname:residencyNonResidentStrict was written as 7548 pname:sparseResidencyNonResidentStrict (public issue 475). 7549 7550Internal Issues: 7551 7552 * Fix ptext:pNext member of slink:VkPhysicalDeviceGroupPropertiesKHX to be 7553 a non-const pointer. Properties structures return values, so the chain 7554 should be non-const. 7555 * Clarify definition of memory aliasing to consistently use the terms 7556 "linear" and "non-linear" when referring to resources, and define what 7557 those terms mean. 7558 * Modified XML schema and implicit validity scripts to generate language 7559 for all ptext:pNext values in a ptext:pNext chain instead of just the 7560 top level struct, and made `noautovalidity` functional for ptext:sType 7561 and ptext:pNext (internal issue 535). 7562 * Add more detail for BT2020 and scRGB color spaces in 7563 `VK_EXT_swapchain_colorspace` extension (internal issue 632). 7564 * Add naming rules for Extension Structure Names (structures added to the 7565 ptext:pNext chain of a base structure) to the style guide (internal 7566 issue 706). 7567 * Define the glossary term "ptext:pNext chain", and use it consistently in 7568 the spec (internal issue 744). 7569 7570----------------------------------------------------- 7571 7572Change log for March 17, 2017 Vulkan 1.0.44 spec update: 7573 7574 * Bump API patch number and header version number to 44 for this update. 7575 7576Github Issues: 7577 7578 * Fix description of <<features-extentperimagetype, Allowed Extent Values 7579 Based On Image Type>> (public issue 290). 7580 * Better specify VK_DEVICE_LOST behavior around flink:vkQueueSubmit, 7581 flink:vkWaitForFences, and flink:vkGetFenceStatus (public issue 423). 7582 * Clarify definition of flink:vkGetQueryPoolResults::pname:queryCount 7583 (public issue 441). 7584 * Simplify and clean up normative language. Remove shall and replace 7585 recommend and variants with should wherever possible (public issue 448). 7586 * Fix all dangling internal cross-references in the 1.0-extensions 7587 specification, and add scripts/checkXrefs to find these in the future 7588 (public issue 456). 7589 * Reverse order of ChangeLog.txt entries so the most recent version is 7590 documented first (public issue 463) 7591 * Removes "become invalid" which clashes with invalid state for command 7592 buffers. (public issue 467) 7593 * Disallowed pending state in spec text for vkResetCommandBuffer, matching 7594 valid usage (public issue 468) 7595 * Removes sentence describing invalid state "like initial state". (public 7596 issue 469) 7597 * Disallows begin command buffer from resetting command buffers in the 7598 "recording" state. (public issue 470) 7599 * Removes mention of state from description of 7600 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT (public issue 471) 7601 * Removed extra valid usage statement in VkSubmitInfo (public issue 472) 7602 7603Internal Issues: 7604 7605 * Clarify description of the pname:imageLayout member of 7606 sname:VkDescriptorImageInfo. 7607 * Fix typos where etext:VK_VIEW_TYPE* was used instead of 7608 etext:VK_IMAGE_VIEW_TYPE. 7609 * Removed the <<VK_KHR_display>> and <<VK_KHR_display_swapchain>> example 7610 code from the specification and noted it has been moved to the Vulkan 7611 SDK cube demo (internal issue 179). 7612 * Reorder VkExternalMemoryHandleTypeFlagBitsNV description (internal issue 7613 480). 7614 * Clarify than an implementation is 7615 <<fundamentals-validusage-flags,permitted to return 'undefined' bit 7616 flags>> in a bitfield (internal issue 640). 7617 * Break Valid Usage statements describing unrelated parameters into 7618 separate statements, and add a style guide entry to follow this approach 7619 (internal issue 685). 7620 * Move valid usage statement for slink:VkImageCreateInfo from spec body to 7621 the explicit valid usage block (internal issue 693). 7622 * Fix typos in the descriptions of slink:VkDisplaySurfaceCreateInfoKHR, 7623 flink:vkCreateDisplayModeKHR, and 7624 flink:vkGetDisplayPlaneSupportedDisplaysKHR in the <<display,Presenting 7625 Directly to Display Devices>> section (internal issue 698, 704, 716). 7626 * Clarified that mandatory depth/stencil formats are only a requirement 7627 for 2D images (internal issue 719). 7628 * Clarify that variables decorated with DeviceIndex/ViewIndex must be in 7629 the Input storage class (internal issue 733). 7630 * Work around generator script problem with removal of Unicode literals 7631 from Python 3.0-3.2 using `future` package (internal issue 737). 7632 * Remove nonexistent structure type enums from vk.xml (internal issue 7633 738). 7634 * Fix validextensionstructs attributes for structures in the pname:pNext 7635 chain for VkPresentInfoKHR, fixing implicit valid usage statements for 7636 those structures (internal issue 740). 7637 7638----------------------------------------------------- 7639 7640Change log for March 10, 2017 Vulkan 1.0.43 spec update: 7641 7642 * Bump API patch number and header version number to 43 for this update. 7643 7644Github Issues: 7645 7646 * Make clearer that color write mask is applied regardless of whether 7647 blending is enabled, by referring to the 7648 <<framebuffer-color-write-mask,Color Write Mask>> section (public issue 7649 241). 7650 * Fix public issue 414: 7651 ** Added two new command buffer states (invalid, pending), and an explicit 7652 "command buffer lifecycle" section to explain them. 7653 ** Replaced "pending execution" with "in the pending state". 7654 ** Replaced a bunch of "this will invalidate the command buffer" language 7655 with "this will move the command buffer to the invalid state", and added 7656 validation language for what state those command buffers should be in. 7657 ** Added additional validation language about what state a command buffer 7658 should be in for various commands that affect it. 7659 ** Added invalidation language to destroy commands in the lifetimes section 7660 of fundamentals. 7661 ** Added command buffers to list of objects which must not be deleted 7662 whilst a (primary) command buffer is in the recording or pending state. 7663 * Update `GL_KHR_vulkan_glsl` extension to allow anonymous push constant 7664 blocks (public issue 428). 7665 7666Internal Issues: 7667 7668 * Document rules about extension interactions in the style guide (internal 7669 issue 579). 7670 * Require ename:VK_PRESENT_MODE_MAILBOX_KHR support in queries of surfaces 7671 created with flink:vkCreateWaylandSurfaceKHR using the 7672 VK_KHR_wayland_surface extension (internal issue 666). 7673 * Remove Valid Usage constraints for flink:vkAllocateDescriptorSets when 7674 the `VK_KHR_maintainance1` extension is present (internal issue 686). 7675 * Remove undocumented KHX-variants of vkGetPhysicalDeviceProperties2KHR 7676 and vkGetPhysicalDeviceImageFormatProperties2KHR from the 7677 <<VK_KHX_external_memory_capabilities>> and 7678 <<VK_KHX_external_semaphore_capabilities>> extensions. 7679 7680New Extensions: 7681 7682 * `VK_EXT_hdr_metadata` 7683 * `VK_GOOGLE_display_timing` 7684 7685----------------------------------------------------- 7686 7687Change log for February 27, 2017 Vulkan 1.0.42 spec update: 7688 7689 * Bump API patch number and header version number to 42 for this update 7690 (the first anniversary edition). 7691 7692Github Issues: 7693 7694 * Changed asciidoctor macros so cross-page links in the standalone 7695 reference pages function properly (public issue 462). 7696 7697Internal Issues: 7698 7699 * Clarified host visibility discussion for slink:VkMemoryType, 7700 flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the 7701 <<synchronization-framebuffer-regions,Framebuffer Region Dependencies>> 7702 section, removing duplicated information and adding a central definition 7703 in the access types section (internal issue 552). 7704 * Change description of 7705 slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to 7706 return an array of values, not structures (internal issue 699). 7707 7708New Extensions: 7709 7710 * Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing 7711 the experimental status of `KHX` extensions. 7712 * Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for 7713 release at GDC: 7714 ** VK_KHR_descriptor_update_template 7715 ** VK_KHR_push_descriptor 7716 ** VK_KHX_device_group 7717 ** VK_KHX_device_group_creation 7718 ** VK_KHX_external_memory 7719 ** VK_KHX_external_memory_capabilities 7720 ** VK_KHX_external_memory_fd 7721 ** VK_KHX_external_memory_win32 7722 ** VK_KHX_external_semaphore 7723 ** VK_KHX_external_semaphore_capabilities 7724 ** VK_KHX_external_semaphore_fd 7725 ** VK_KHX_external_semaphore_win32 7726 ** VK_KHX_multiview 7727 ** VK_KHX_win32_keyed_mutex 7728 ** VK_EXT_discard_rectangles 7729 ** VK_MVK_ios_surface 7730 ** VK_MVK_macos_surface 7731 ** VK_NVX_multiview_per_view_attributes 7732 ** VK_NV_clip_space_w_scaling 7733 ** VK_NV_geometry_shader_passthrough 7734 ** VK_NV_sample_mask_override_coverage 7735 ** VK_NV_viewport_array2 7736 ** VK_NV_viewport_swizzle 7737 * Add new GLSL vendor extensions to support new builtin variables: 7738 ** GL_EXT_device_group 7739 ** GL_EXT_multiview 7740 7741----------------------------------------------------- 7742 7743Change log for February 17, 2017 Vulkan 1.0.41 spec update: 7744 7745 * Bump API patch number and header version number to 41 for this update. 7746 7747Github Issues: 7748 7749 * Made all uses of `NULL` vs. code:VK_NULL_HANDLE consistent (public issue 7750 276). 7751 * Clarify render pass compatibility in different usage scenarios (public 7752 issues 403 and 404). 7753 * Add valid usage statements to slink:VkFramebufferCreateInfo requiring 7754 that the width, height, and number of layers of the framebuffer all be 7755 nonzero (public issue 432). 7756 * Allow `offset` and `align` in any GLSL version for the 7757 `GL_KHR_vulkan_glsl` extension (public issue 435). 7758 * Specify lifetime of string objects passed to the 7759 tlink:PFN_vkDebugReportCallbackEXT user callback in the 7760 +VK_EXT_debug_report+ extension (public issue 446). 7761 * Fix inter-page links in multi-file reference pages (public issue 454). 7762 7763Internal Issues: 7764 7765 * Update valid usage language for slink:VkImageCreateInfo to disallow 7766 creating images that have ename:VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT 7767 set without other attachment usage bits 7768 (ename:VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, 7769 ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, or 7770 ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) (internal issue 540). 7771 * Disable `VK_EXT_swapchain_colorspace` extension until internal issues 7772 640 and 661 are mutually resolved. 7773 * Allow alternative mipmap level selection when [eq]#lambda == 0.5# during 7774 texture <<textures-image-level-selection,Image Level(s) Selection>> 7775 (internal issue 680). 7776 7777Other Issues: 7778 7779 * Add a clarification to the style guide that the extension revision 7780 number is treated as a patch number, so that changes to published 7781 extensions should only include bug fixes and spec clarifications. 7782 7783----------------------------------------------------- 7784 7785Change log for February 10, 2017 Vulkan 1.0.40 spec update: 7786 7787 * Bump API patch number and header version number to 40 for this update. 7788 * There is a major build change in this release. We are now using the 7789 Ruby-based ``asciidoctor'' implementation, rather than the Python-based 7790 ``asciidoc'' implementation, to process the specification. While the 7791 actual specification markup changes were minimal, this requires a new 7792 set of build tools and a very different installation process, especially 7793 because we now use an experimental direct-to-PDF backend for Asciidoctor 7794 instead of Docbook->dblatex->PDF. It is no longer possible to build the 7795 Specification using asciidoc. See doc/specs/vulkan/README.adoc 7796 for some guidance on installing the new toolchain components. 7797 * There are some minor rendering issues in the PDF output due to teething 7798 problems with the asciidoctor toolchain, especially with mathematical 7799 equations. We are aware of these and working on them. 7800 7801Github Issues: 7802 7803 * Updated sample code for the <<sparsememory-examples-basic,sparse 7804 resource binding example>> (public issue 97). 7805 * Modify line and point clipping behavior in the 7806 <<vertexpostproc-clipping, Primitive Clipping>> section to allow for 7807 pop-free behavior. The ability to check for which behavior is 7808 implemented may be added a future feature or extension (public issue 7809 113). 7810 * Unify the discussions of implicit ordering throughout the spec, in 7811 particular in the new sections <<drawing-primitive-order, Primitive 7812 Order>>, <<primsrast-order, Rasterization Order>>, and 7813 <<synchronization-implicit, Implicit Synchronization Guarantees>>; the 7814 discussion of <<synchronization-submission-order, submission order>>; 7815 and references elsewhere to these sections (public issue 133). 7816 * Clarify <<descriptorsets-compatibility,Pipeline Layout Compatibility>> 7817 language and introduce the term ``identically defined'' (public issue 7818 164). 7819 * Add a dependency to the +VK_EXT_debug_marker+ extension that's needed to 7820 reuse the object type enum from +VK_EXT_debug_report+, and moves the 7821 definition of that enum into +VK_EXT_debug_report+ where it should be 7822 (public issue 409). 7823 * Remove redundant valid usage statement from slink:VkImageBlit (public 7824 issue 421). 7825 * Update GL_KHR_vulkan_glsl to allow the ternary operator to result in a 7826 specialization constant (public issue 424). 7827 * Fix valid usage for flink:VkPipelineShaderStageCreateInfo (public issue 7828 426). 7829 * Correct typo in New Objects list for <<VK_EXT_debug_report>> (public 7830 issue 447). 7831 7832Internal Issues: 7833 7834 * Moved to asciidoctor for spec builds (internal issue 121). 7835 * Update style guide to describe where to put new extensions-specific 7836 asciidoc files, and what to name them (internal issue 626). 7837 * Add src/spec/indexExt.py to autogenerate registry index entries linking 7838 into the 1.0-extensions specification, instead of maintaining the index 7839 manually. (internal issue 642). 7840 * Autogenerate extension dependencies and lists of all extensions and all 7841 KHR extensions from the "supported" attributes in +vk.xml+. Execute 7842 +make config/extDependency.sh+ from +doc/specs/vulkan+ when a supported 7843 extension is added to vk.xml, to regenerate the dependency script. The 7844 consequence is that specifying a single extension to the +makeExt+ 7845 script will automatically enable all extensions it depends on as well, 7846 and that the +makeAllExts+ and +makeKHR+ scripts do not need to be 7847 updated when a new extension is supported (internal issue 648). 7848 * Put extension appendices all at the same asciidoc section level, so KHR 7849 WSI extensions show up in the HTML index (internal issue 648). 7850 7851Other Issues: 7852 7853 * Imbed images in the generated HTML specs instead of loading them from 7854 the images/ directory. 7855 * Fix missing EXT in extension name 7856 (ename:VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME). 7857 * Add new +VK_EXT_SMPTE_2086_metadata+ extension. 7858 * In the <<platformCreateSurface_xlib,Xlib Surface>> section of the 7859 `VK_KHR_xlib_surface` specification, add language warning users that 7860 they always need to call code:XinitThreads. 7861 * Use the term "presentable image" (rather than "swapchain image") 7862 consistently in `VK_KHR_swapchain` and related extensions, and add a 7863 glossary term defining it. 7864 * Relocate the valid usage for samples of 7865 flink:vkGetPhysicalDeviceSparseImageFormatProperties2KHR::pname:pFormatInfo 7866 to be below the flink:VkPhysicalDeviceSparseImageFormatInfo2KHR 7867 structure. 7868 7869----------------------------------------------------- 7870 7871Change log for January 23, 2017 Vulkan 1.0.39 spec update: 7872 7873 * Bump API patch number and header version number to 39 for this update. 7874 7875Github Issues: 7876 7877 * Clarified that only accesses via the specified buffer/image subresource 7878 ranges are included in the access scopes (public issue 306). 7879 * Add missing valid usage statements for flink:vkCreateComputePipelines 7880 and flink:vkCreateGraphicsPipelines (public issue 427). 7881 7882Internal Issues: 7883 7884 * Add a Note to the <<invariance,Invariance>> appendix about a difference 7885 between OpenGL and Vulkan with regards to how primitives derived from 7886 offsets are handled (internal issue 355). 7887 * Add the +<<VK_KHR_get_physical_device_properties2>>+, 7888 +<<VK_KHR_maintenance1>>+, and +<<VK_KHR_shader_draw_parameters>>+ 7889 extensions (internal issue 448). 7890 * Add the +<<VK_EXT_shader_subgroup_vote>>+ and 7891 +<<VK_EXT_shader_subgroup_ballot>>+ extensions (internal issue 449). 7892 * Update the texture level-of-detail equation in the 7893 <<textures-scale-factor,Scale Factor Operation>> section to better 7894 approximate the ellipse major and minor axes (internal issue 547). 7895 * Forbid non-explicitly allowed uses of interface decorations in the 7896 introduction to the <<interfaces,Shader Interfaces>> chapter (internal 7897 issue 607). 7898 * Replace use of MathJax with KaTeX, for improved load-time performance as 7899 well as avoiding the scrolling-and-scrolling behavior due to MathJax 7900 asynchronous rendering when loading at an anchor inside the spec. This 7901 change also requires moving to HTML5 output for the spec instead of 7902 XHTML, and there is a visible difference in that the chapter navigation 7903 index is now in a scrollable sidebar instead of at the top of the 7904 document. We may or may not retain the nav sidebar based on feedback 7905 (internal issue 613). 7906 * Improve consistency of markup and formatting in extension appendices 7907 (internal issue 631). 7908 7909Other Issues: 7910 7911 * Add explicit valid usage statements to slink:VkImageCopy requiring that 7912 the source and destination layer ranges be contained in their respective 7913 source and destination images. 7914 * Add valid usage language for swapchain of flink:vkAcquireNextImage. If 7915 the swapchain has been replaced, then it should not be passed to 7916 flink:vkAcquireNextImage. 7917 * Add a valid usage statement to flink:vkCreateImageView, that the image 7918 must have been created with an appropriate usage bit set. 7919 * Noted that slink:VkDisplayPresentInfoKHR is a valid extension of 7920 slink:VkPresentInfoKHR in the <<wsi_swapchain,WSI Swapchain>> section. 7921 * Update valid usage for flink:vkCmdSetViewport and flink:vkCmdSetScissor 7922 to account for the multiple viewport feature. If the feature is not 7923 enabled, the parameters for these functions have required values that 7924 are defined in the <<features-features-multiViewport,multiple 7925 viewports>> section of the spec but were not reflected in the valid 7926 usage text for these functions. 7927 * Add the +<<VK_EXT_swapchain_colorspace>>+ extension defining common 7928 color spaces. 7929 7930----------------------------------------------------- 7931 7932Change log for December 16, 2016 Vulkan 1.0.38 spec update: 7933 7934 * Bump API patch number and header version number to 38 for this update. 7935 7936Github Issues: 7937 7938 * Make ename:VK_PIPELINE_STAGE_HOST_BIT invalid for all stage masks, 7939 except for flink:vkCmdWaitEvents (public issue 261). 7940 7941Internal Issues: 7942 7943 * Added validation language for flink:vkQueueBindSparse, 7944 slink:VkPresentInfoKHR, and slink:VkSubmitInfo, and a note to the 7945 <<synchronization-semaphores-waiting,Semaphore Waiting and Unsignaling>> 7946 section to clarify that semaphores must be signaled and waited on in a 7947 1:1 fashion (internal issue 546). 7948 * Modify valid usage for slink:VkBufferImageCopy to only require 7949 pname:bufferOffset to be a multiple of the image format's element size 7950 when the format is not depth/stencil (internal issue 594). 7951 7952Other Issues: 7953 7954 * Vulkan is now a registered trademark symbol, and this is reflected in 7955 documents and copyright statements. 7956 7957----------------------------------------------------- 7958 7959Change log for December 10, 2016 Vulkan 1.0.37 spec update: 7960 7961 * Bump API patch number and header version number to 37 for this update. 7962 7963Github Issues: 7964 7965 * Add usability guarantees on the values returned by 7966 flink:vkGetPhysicalDeviceSurfaceCapabilitiesKHR in the 7967 slink:VkSurfaceCapabilitiesKHR structure and by 7968 flink:vkGetPhysicalDeviceSurfaceFormatsKHR in the 7969 pname:pSurfaceFormatCount parameter (public issue 385). 7970 * Add elink:VkDebugReportObjectTypeEXT enumerants for new object types 7971 introduced by new extensions (public issue 408). 7972 * Add +VK_NVX_device_generated_commands+ etext:ACCESS bits and define how 7973 they are used (public issue 415). 7974 * Fix indentation for slink:VkDebugReportCallbackCreateInfoEXT member 7975 descriptions (public issue 419). 7976 7977Internal Issues: 7978 7979 * Expand requirements memory binding of non-sparse images and buffers from 7980 the <<resources-association,Resource Memory Association>> section into 7981 valid usage statements for all of the applicable API calls (internal 7982 issue 508). 7983 * Explicitly state that valid usage of flink:vkCreateImage requires that 7984 flink:vkGetPhysicalDeviceImageFormatProperties would return 7985 ename:VK_SUCCESS for the requested image configuration (internal issue 7986 598). 7987 7988----------------------------------------------------- 7989 7990Change log for December 1, 2016 Vulkan 1.0.36 spec update: 7991 7992 * Bump API patch number and header version number to 36 for this update. 7993 7994Github Issues: 7995 7996 * Fix "recorded with" terminology in the valid usage language for the 7997 flink:vkCmdExecuteCommands::pname:pCommandBuffers parameter (public 7998 issue 390). 7999 * Modify +genvk.py+ to support specifying extensions to remove from output 8000 generators, allowing the extension loader +vulkan_ext.c+ to be created 8001 without WSI extensions which are statically exported by the Vulkan 8002 loader (public issue 412). 8003 * Added validation language for slink:VkSubpassDependency and in the 8004 <<synchronization-access-types-supported,supported access types>> 8005 section to catch access masks that include bits which are not supported 8006 by pipeline stages in the stage masks (partially addresses 8007 github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/issues/1006 ). 8008 8009Internal Issues: 8010 8011 * Added validation language for flink:vkCmdWaitEvents, 8012 flink:vkQueueSubmit, flink:VkRenderPassCreateInfo, and in the 8013 <<synchronization-pipeline-stages-supported>> section to prevent 8014 recording stage dependencies that aren't supported on the queue 8015 (internal issue 516). 8016 * Make a few changes that generalize spec language for use with possible 8017 future extensions by adding glossary terms and generalizing ``feature'' 8018 to ``feature or extension'' where relevant (internal issues 448, 590). 8019 * Added "pipeline type" attribute to +vk.xml+ for relevant commands and 8020 utilize it in automatic generation of the Command Properties table 8021 (internal issue 517). 8022 * Specify that WSI implementations must provide both UNORM and sRGB 8023 formats in the description of slink:VkColorSpaceKHR (internal issue 8024 529). 8025 * Remove nesting of explicit valid usage statements where it is not 8026 meaningful (internal issue 583). 8027 8028Other Issues: 8029 8030 * Add validity language requiring that 8031 slink:VkPushConstantRange::pname:offset be a multiple of 4, as stated in 8032 the spec language. 8033 8034----------------------------------------------------- 8035 8036Change log for November 25, 2016 Vulkan 1.0.35 spec update: 8037 8038 * Bump API patch number and header version number to 35 for this update. 8039 8040Github Issues: 8041 8042 * Document in the <<memory-device-hostaccess,Host Access>> section that 8043 mapping and unmapping does not invalidate or flush the mapped memory 8044 (public issues 27, 126). 8045 * Redefine the entire <<synchronization>> chapter in terms of consistent 8046 and well defined terminology, that's called out at the start of the 8047 chapter. This terminology is applied equally to all synchronization 8048 types, including subpass dependencies, submissions, and much of the 8049 implicit ordering stuff dotted around the spec. Key terms are laid out 8050 in the <<synchronization-dependencies,Execution and Memory 8051 Dependencies>> section at the top of the rewritten chapter (public 8052 issues 128, 131, 132, 217, 299, 300, 302, 306, 322, 346, 347, 371, 407). 8053 * Specify order of submission for batches in the 8054 <<vkQueueSubmit,vkQueueSubmit>> and 8055 <<vkQueueBindSparse,vkQueueBindSparse>> commands (public issue 371). 8056 * Add valid usage statements to each of the WSI extension sections 8057 indicating that the WSI-specific structure parameters must be valid, and 8058 remove automatically generated valid usage statements now covered by the 8059 manual sections (public issue 383). 8060 * Clarify render pass compatibility for flink:vkCmdExecuteCommands (public 8061 issue 390). 8062 8063Internal Issues: 8064 8065 * Update +vk.xml+ to make previously explicit valid usage statements for 8066 <<vkDebugReportMessageEXT,vkDebugReportMessageEXT>> implicit instead 8067 (internal issue 553). 8068 * Add valid usage statement for slink:VkCreateImageInfo preventing 8069 creation of 1D sparse images (internal issue 573). 8070 * Fix Python scripts to always read/write files in utf-8 encoding, and a 8071 logic error in reflib.py which could cause a fatal error for 8072 malstructured asciidoc (internal issues 578, 586). 8073 8074----------------------------------------------------- 8075 8076Change log for November 18, 2016 Vulkan 1.0.34 spec update: 8077 8078 * Bump API patch number and header version number to 34 for this update. 8079 8080Github Issues: 8081 8082 * Allow vkUpdateDescriptorSets overflow to skip empty bindings. Clarify 8083 that unused bindings have a descriptorCount of zero. Improve some valid 8084 usage for vkUpdateDescriptorSets (public issue 256). 8085 * Require that slink:VkImageSubresourceRange always define a non-empty 8086 range of the resource (public issue 303). 8087 * Added valid usage for slink:VkPresentInfoKHR on the layout of presented 8088 images (public issue 397). 8089 8090Internal Issues: 8091 8092 * Add dependency in src/spec/Makefile so specversion.txt is regenerated 8093 when needed (internal issue 462). 8094 * Shorten the table of contents in the single-page ref page HTML output. 8095 Still working on the PDF (internal issue 536). 8096 8097----------------------------------------------------- 8098 8099Change log for November 11, 2016 Vulkan 1.0.33 spec update: 8100 8101 * Bump API patch number and header version number to 33 for this update. 8102 8103Github Issues: 8104 8105 * Added implicit external synchronization parameters to 8106 vkBegin/EndCommandBuffer, and fixed missing command pool host 8107 synchronization from per-command lists (public issue 398). 8108 * Started using git tags including the spec release number, such as 8109 'v1.0.32-core', instead of tags including the date of release, such as 8110 'v1.0-core-20161025' (public issue 405). 8111 8112Internal Issues: 8113 8114 * Add validity constraint for 8115 slink:VkImportMemoryWin32HandleInfoNV::pname:handle (internal issue 8116 #480). 8117 * Add scripts to compare two Vulkan HTML specifications, derived from W3 8118 htmldiff service (internal issue 525). 8119 * Relax requirement that memoryTypeBits can't depend on format, to allow 8120 it to differ only for depth/stencil formats (internal issue 544). 8121 * Add a new generator script to create a simple extension loader for 8122 Vulkan based on +vk.xml+ (internal issue 558). 8123 * Add the overlooked requirement that buffer and image memory 8124 alignment requirements must be a power of two in the 8125 <<resources-association,Resource Memory Association>> section 8126 (internal issue 569). 8127 8128Other Issues: 8129 8130 * Add a naming rule to the style guide for members of extension structures 8131 defining array lengths which are the same as array lengths of the core 8132 structure they are chained from. 8133 * Add a new generator to create a simple extension loader in 8134 +src/ext_loader/vulkan_ext.[ch]+ from +vk.xml+. This code can be 8135 included in your project, and is expected to be packaged in the Vulkan 8136 SDK provided by LunarG in the future. 8137 8138----------------------------------------------------- 8139 8140Change log for October 25, 2016 Vulkan 1.0.32 spec update: 8141 8142 * Bump API patch number and header version number to 32 for this update. 8143 8144Github Issues: 8145 8146 * Add automatic visibility operations to the presentation engineE when 8147 doing a queue present in flink:vkAcquireNextImageKHR. Removed all 8148 references to MEMORY_READ that referenced WSI - they no longer make 8149 sense (some aspects of public issues 128, 131, 132, 261, and 298). 8150 * Document valid non-boolean +externsync+ attribute values for <param> 8151 tags in +vk.xml+ (public issue 265). 8152 * Add valid usage to slink:VkImageCreateInfo requiring that 8153 pname:arrayLayers be 1 for images of type ename:VK_IMAGE_TYPE_3D 8154 (public issue 319). 8155 * Add missing captions to figures in the <<textures,Image Operations>> 8156 chapter (public issue 334). 8157 * Clarify WSI interaction with exclusive sharing mode (public issue 8158 344). 8159 * Added explicit language clarifying the allowed queue usage of 8160 resources created with ename:VK_SHARING_MODE_CONCURRENT (public 8161 issue 386). 8162 * Require that the 8163 slink:VkDescriptorSetLayoutCreateInfo::pname:binding members of the 8164 pname:pBindings array passed to 8165 flink:vkDescriptorSetLayoutCreateInfo all be distinct (public issue 8166 391). 8167 8168Internal Issues: 8169 8170 * Remove empty validity blocks from +vk.xml+ and suppressed broken 8171 validity statements and added missing statements to explicit 8172 validity. Doesn't affect output, other than some statements 8173 appearing in another block now (internal issue 513). 8174 8175----------------------------------------------------- 8176 8177Change log for October 14, 2016 Vulkan 1.0.31 spec update: 8178 8179 * Bump API patch number and header version number to 31 for this update. 8180 8181Github Issues: 8182 8183 * Clarifying wording of slink:VkGraphicsPipelineCreateInfo parameters and 8184 adding Valid Usage statements on render pass compatibility to the 8185 <<drawing,drawing commands>> (public issue 375). 8186 * Replace 'texel size' with 'element size', and add a definition to the 8187 glossary (public issue 382). 8188 * Clarify the description of ename:VK_ERROR_NATIVE_WINDOW_IN_USE_KHR to 8189 make it accurate, but still generic (non-exhaustive). Remove two Valid 8190 Usage statements describing error situations that will return 8191 ename:VK_ERROR_NATIVE_WINDOW_IN_USE_KHR (public issue 387). 8192 * Fix refBegin tag for elink:VkDebugReportFlagBitsEXT (public issue 392). 8193 * The <<interfaces-builtin-variables,built-in variable>> code:PrimitiveId 8194 in a fragment shader needs the code:Input storage class (public issue 8195 393). 8196 8197Internal Issues: 8198 8199 * Unused ({y,z} and {height,depth} for 1D, z and depth for 2D) offsets 8200 must be 0 and unused extents must be 1. Added basic offset and extent 8201 valid usage for slink:VkImageResolve to match that of slink:VkImageCopy 8202 (internal issue 413). 8203 * Describe what flink:vkGetPhysicalDeviceImageFormatProperties returns for 8204 pname:sampleCounts when for pname:usage only includes transfer-related 8205 flags (internal issue 478). 8206 * Remove mention of 8207 slink:VkPhysicalDeviceLimits::pname:maxImageArrayLayers from the valid 8208 usage for slink:VkImageCreateInfo::pname:arrayLayers (internal issue 8209 520). 8210 * Tag usages of ``dynamically uniform'' as glossary terms and add a 8211 glossary entry pointing to the SPIR-V Specification's definition of the 8212 term (internal issue 531). 8213 8214----------------------------------------------------- 8215 8216Change log for October 7, 2016 Vulkan 1.0.30 spec update: 8217 8218 * Bump API patch number and header version number to 30 for this update. 8219 8220Github Issues: 8221 8222 * Document missing pname:sType and pname:pNext parameters for 8223 slink:VkCommandBufferInheritanceInfo (public issue 224). 8224 * As promised, we are removing the example code, from the appendix, for 8225 the VK_KHR_surface and VK_KHR_swapchain extensions. The cube demo 8226 (shipped in the official Khronos SDK) has been updated, and is the 8227 example code that we want people to look at for how to use these two 8228 extensions (public issues 279, 308, and 311). 8229 * Clarify the formats for which the slink:VkClearColorValue pname:float32 8230 member is used. Also clean up related language for flink:vkCmdBlitImage 8231 (public issue 369). 8232 * Reword the <<invariance, Invariance>> appendix chapter to better match 8233 Vulkan terminology (public issue 372). 8234 8235Internal Issues: 8236 8237 * Update slink:VkMemoryRequirements to not require a host_visible memory 8238 type exists that can be bound to sparse buffers (internal issue 494). 8239 * Modify the <<features-supported-sample-counts,Supported Sample Counts>> 8240 language to allow multisampled depth-stencil images (internal issue 8241 521). 8242 8243----------------------------------------------------- 8244 8245Change log for September 30, 2016 Vulkan 1.0.29 spec update: 8246 8247 * Bump API patch number and header version number to 29 for this update. 8248 8249Github Issues: 8250 8251 * Remove redundant constraint on 8252 slink:VkCommandBufferInheritanceInfo::pname:queryFlags (public issue 8253 224). 8254 * Fix typo and remove link in Note in the 8255 <<extended-functionality-instance-extensions-and-devices, Instance 8256 Extensions and Device Extensions>> section (public issue 359). 8257 * Fix erroneous validation statement for the pname:layout member of 8258 slink:VkComputePipelineCreateInfo (public issue 362). 8259 8260Internal Issues: 8261 8262 * Restore long figure captions using asciidoc sidebar blocks, due to 8263 restrictions of asciidoc syntax (internal issue 101). 8264 * Replace most latexmath equations with comparable markup in straight 8265 asciidoc, which significantly improves time required to fully load and 8266 process the HTML forms of the Specification. There are known minor font 8267 and alignment inconsistencies with MathJax and PDF rendering of 8268 latexmath equations. Please do not file github issues about these. We 8269 are aware of the inconsistencies and will make refinements over time, 8270 while the performance improvements are compelling in at least some major 8271 browsers (internal issue 313). 8272 * Move handcoded validity statements from +vk.xml+ into the Specification 8273 body, easing work in the single-branch model. Specify the distinction 8274 between these explicit statements, and the implicit validity statements 8275 inferred from vk.xml. Validity statements now appear in two blocks for 8276 each command and structure - handcoded "Valid Usage" and the implicit 8277 "Valid Usage (Implicit)" (internal issue 392). 8278 * Add the +returnedonly="false"+ attribute to WSI output structures, 8279 removing incorrectly generated implicit validity statements for 8280 slink:VkDisplayPropertiesKHR, slink:VkDisplayPlanePropertiesKHR, 8281 slink:VkDisplayModePropertiesKHR, slink:VkDisplayPlaneCapabilitiesKHR, 8282 slink:VkSurfaceCapabilitiesKHR, and slink:VkSurfaceFormatKHR structures 8283 (internal issue 486). 8284 * Update slink:VkImageLayout to require the 8285 ename:VK_IMAGE_USAGE_SAMPLED_BIT be set for sampled depth/stencil images 8286 (internal issue 487). 8287 * Use an explicit format specifier string for the date command invocation 8288 in the +Makefile+ instead of the shorthand -R option, which doesn't work 8289 on BSD and MaxOS X date commands (internal issue 500). 8290 8291Other Issues: 8292 8293 * Use the terms ``allocation scope'' and ``extension scope'' instead of 8294 just ``scope'', and add them to the glossary. 8295 8296----------------------------------------------------- 8297 8298Change log for September 23, 2016 Vulkan 1.0.28 spec update: 8299 8300 * Bump API patch number and header version number to 28 for this update. 8301 8302Github Issues: 8303 8304 * Minor spelling and typography cleanup, add definitions of 8305 ename:VK_FALSE and ename:VK_TRUE as just what their names say 8306 (public issues 220, 318, 325, 365; internal issues 451, 496) 8307 * Clarify that the pname:maxDescriptorSet limits in the 8308 <<features-limits-required,Required Limits>> table are n * 8309 maxPerStage limit (where n=number of supported stages) (public issue 8310 254). 8311 * Minor cleanup to <<boilerplate-platform-macros,Platform-Specific 8312 Macro Definitions>> appendix (public issue 314). 8313 * Add valid usage statement to slink:VkPipelineLayoutCreateInfo 8314 disallowing multiple push constant ranges for the same shader stage 8315 (public issue 340). 8316 * Clarify the elink:VkSharingMode description of what executing the 8317 "same" barriers means in case of ownership transfer (public issue 8318 347). 8319 * Rename copyright.txt and add COPYING.md to try and reduce confusion 8320 about applicable copyrights (public issue 350). 8321 * Extend the table in the <<boilerplate-wsi-header, Window System-Specific 8322 Header Control>> section to describe the external headers included when 8323 each etext:VK_USE_PLATFORM_* macro is defined (public issue 376). 8324 8325Internal Issues: 8326 8327 * Add "Revision History" to the PDF outputs following the table of 8328 contents, to match HTML outputs (internal issue 43). 8329 * Clarified that flink:vkMapMemory may fail due to virtual address 8330 space limitations (internal issue 346). 8331 * Add +refBody+ comment markup for ref page autoextraction when required 8332 (internal issue 400). 8333 * Document proper use of "mipmap" and "mip" in the style guide API 8334 naming rules, matching the spelling rules (internal issue 471). 8335 * Tweak the <<extensions,Layers and Extensions>> appendix to note that 8336 the Specification may be built with arbitrary combinations of 8337 extensions (internal issue 483). 8338 * Remove incorrect statement allowing 8339 slink:VkClearAttachment::pname:colorAttachment to be >= 8340 slink:VkSubpassDescription::pname:colorAttachmentCount (internal 8341 issue 488). 8342 * The <<features-limits-viewportboundsrange,viewportBoundsRange>> is 8343 expressed in terms of the pname:maxViewportDimensions but this is 8344 actually two values. Clarify that it's based on the larger of the two 8345 (if they differ) (internal issue 499). 8346 8347Other Issues: 8348 8349 * Reflowed text of the entire spec using the 'reflow' Makefile target, to 8350 (hopefully) reduce future internal git churn as edits are made and 8351 extensions added in return for one-time pain. This has no perceptible 8352 effect on the spec outputs, but considerable changes on the asciidoc 8353 source (internal issue 367). 8354 8355----------------------------------------------------- 8356 8357Change log for September 16, 2016 Vulkan 1.0.27 spec update: 8358 8359 * Bump API patch number and header version number to 27 for this update. 8360 8361Github Issues: 8362 8363 * Weaken flink:vkGetPipelineCacheData invariance conditions; previous 8364 conditions were stronger than agreed and can't be guaranteed (public 8365 issue 280). 8366 * Add link to "Vulkan Loader Specification and Architecture Overview" 8367 document to Normative References section (public issue 359). 8368 8369Internal Issues: 8370 8371 * Be more clear in the <<interfaces-resources-layout-std140, uniform 8372 buffer layout>> section that block offsets can be out of order 8373 (internal issue 396). 8374 * Document that extension authors should add support for their extensions 8375 to the validation layers (internal issue 398). 8376 * Clarify that the valid range of depth clear values should be limited 8377 to the 0..1 range and that copies to depth aspect must also be in this 8378 range (internal issue 412). 8379 * Specify ``a'' vs. ``an'' use in the style guide (internal issue 432). 8380 * Increase the maximum pname:nonCoherentAtomSize value in the 8381 <<features-limits-required,Required Limits>> section from 128 to 256 8382 (internal issue 435). 8383 * Fix vk_platform.h for compiler errors on some Android platforms 8384 (internal issue 441). 8385 * Clarify that slink:VkPhysicalDeviceFeatures::pname:pEnabledFeatures == 8386 `NULL` disables all features, including the "required" feature 8387 pname:robustBufferAccess (internal issue 479). 8388 8389Other Issues: 8390 8391 * Expand style guide and make it more self-consistent. 8392 * Use ISO 8601 date format everywhere. 8393 * Emphasise the correct way of using 8394 slink:VkSurfaceCapabilitiesKHR::pname:maxImageCount. 8395 * Added +VK_EXT_validation_flags+ extension for validation flag mechanism. 8396 * Fix an <<credits,author credit>> to include their current employer. 8397 8398----------------------------------------------------- 8399 8400Change log for September 6, 2016 Vulkan 1.0.26 spec update: 8401 8402 * Bump API patch number and header version number to 26 for this update. 8403 8404Github Issues: 8405 8406 * Bring sample code in the `VK_KHR_surface` and `VK_KHR_swapchain` 8407 extension summary appendices up to date, and note they will be replaced 8408 with pointers to the LunarG SDK examples in the future (public issue 8409 279). 8410 * Add a new <<fundamentals-commandsyntax-results-lifetime,Lifetime of 8411 Retrieved Results>> section specifying that ftext:vkGet* and 8412 ftext:VkEnumerate* results are invariant unless otherwise specified, and 8413 specify behavior for individual commands which are not invariant (public 8414 issue 280). 8415 * Remove conflicting definition of 8416 slink:VkDisplayPlaneCapabilitiesKHR::pname:maxSrcPosition and clean up 8417 language of the remaining definition (public issue 351). 8418 * Fix many minor spelling errors and add rules to the style guide to 8419 prevent recurrences (public issue 352). 8420 8421Internal Issues: 8422 8423 * Remove redundant descriptions of the etext:VK_USE_PLATFORM_* macros from 8424 the <<wsi,Window System Integration>> chapter in favor of the 8425 description in the <<boilerplate-wsi-header,Window System-Specific 8426 Header Control>> appendix (internal issue 6). 8427 * Replace misleading 'can: be destroyed when not X' with more correct 8428 'must: not be destroyed while X' in the 8429 <<fundamentals-objectmodel-lifetime,Object Lifetime>> section. Disallow 8430 destroying a pipeline layout while a command buffer using it is 8431 recording (internal issue 241). 8432 * Clarify that ename:VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT is valid for 8433 all images used as attachments in elink:VkImageUsageFlagBits and the 8434 slink:VkImageLayout validity language (internal issue 320). 8435 * Note that <<extended-functionality-layers,Layers>> may wrap object 8436 handles, but that this is a generally discouraged. A link to additional 8437 information in the documentation for layer authors is provided (issue 8438 398) 8439 * Replace the mustnot: and shouldnot: macros with equivalent must: not and 8440 should: not to get rid of non-English words while still highlighting 8441 normative language (internal issue 407). 8442 * Disallow creating multisampled images with 8443 ename:VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT in the slink:VkImageLayout 8444 validity language and the <<features-supported-sample-counts,Supported 8445 Sample Counts>> section (internal issue 445). 8446 * Fix typo so that flink:vkCmdDrawIndexedIndirect is defined in terms of 8447 flink:vkCmdDrawIndexed rather than flink:vkCmdDrawIndirect (internal 8448 issue 446). 8449 * Reorganize the per-extension information sections to all be in the 8450 <<extensions,Layers & Extensions>> appendix. Also fix a typo in 8451 +VK_IMG_filter_cubic+ which incorrectly identified it as a +KHR+ 8452 extension (internal issue 461). 8453 8454Other Issues: 8455 8456 * Use asciidoc markup instead of latexmath to simplify diagrams in the 8457 <<features-formats-non-packed,byte mapping tables>> for color formats. 8458 * Fix a markup problem with the wildcarded enumerant names in a NOTE in 8459 the <<textures-texel-replacement,Texel Replacement>> section. 8460 * Fix missing attributes in the XML interface for 8461 elink:VkExternalMemoryHandleTypeFlagBitsNV and 8462 elink:VkExternalMemoryFeatureFlagBitsNV (KhronosGroup/Vulkan-Hpp issue 8463 25) 8464 * Cleanup reference page builds so only core pages are built for releases. 8465 8466----------------------------------------------------- 8467 8468Change log for August 26, 2016 Vulkan 1.0.25 spec update: 8469 8470 * Bump API patch number and header version number to 25 for this update. 8471 * Structurally change the specification so that multiple extensions are 8472 included in the +1.0+ git branch, and specifications will include or not 8473 include those extensions at build time based on options passed to the 8474 Makefile. See +doc/specs/vulkan/README.html+ and the ``Layers and 8475 Extensions'' section of the ``Vulkan Documentation and Extensions'' 8476 document for more information on this change. 8477 * Register and publish new extensions in the single-branch form: 8478 ** +VK_NV_external_memory_capabilities+ 8479 ** +VK_NV_external_memory+ 8480 ** +VK_NV_external_memory_win32+ 8481 ** +VK_NV_win32_keyed_mutex+ 8482 8483Github Issues: 8484 8485 * Clarify description of GetInstanceProcAddr and GetDeviceProcAddr (public 8486 issue 212). 8487 * Add SPIR-V <<textures-operation-validation, instruction validation>> for 8488 single-sampled images (public issue 316). 8489 * Fix spelling of ``tesselation'' in a few places and note it as an 8490 exception to the American spelling rules convention (public issue 8491 327). 8492 * Fix Makefile to create output directory for ``styleguide'' 8493 target (public issue 329). 8494 * Fix numerous minor issues with incorrectly tags on enumerant names and 8495 table titles (public issue 330). 8496 * Generate specversion.txt date in UTC time and RFC 2822 format 8497 (public issue 335). 8498 * Convert link to the SPIR-V Specification for 8499 flink:VkShaderModuleCreateInfo into an internal link to the normative 8500 reference (public issue 336). 8501 * Add ename:VK_ERROR_OUT_OF_MEMORY error code to 8502 flink:vkCreateDebugReportCallbackEXT (public issue 337). 8503 8504Internal Issues: 8505 8506 * Update style guide regarding use of code:NULL and dname:VK_NULL_HANDLE 8507 (internal issue 393). 8508 * Change the definition of latexmath:[$q$] in the 8509 <<textures-image-level-selection,texture image level selection>> section 8510 to be the index of the maximum defined level for the view, not the 8511 number of levels in the view (internal issue 406). 8512 * Allow developers to override dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE 8513 with their own binary-compatible definition (internal issue 439). 8514 * Fix +vk_platform.h+ conditional logic causing compile failure with some 8515 Android compilers (internal issue 441). 8516 * Implement the single-branch model as described above (internal issue 8517 461). 8518 8519----------------------------------------------------- 8520 8521Change log for August 12, 2016 Vulkan 1.0.24 spec update: 8522 8523 * Bump API patch number and header version number to 24 for this update. 8524 8525Github Issues: 8526 8527 * Fix type mismatch in swapchain image equivalency table (public issue 8528 289). 8529 * Fix a copy-and-paste error in the description of 8530 flink:vkGetSwapchainImagesKHR::pname:pSwapchainImages, that said it 8531 was an array of ``sname:VkSwapchainImageKHR structures'' instead of 8532 an array of ``sname:VkImage handles'' (public issue 292). 8533 * Specify that ename:VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT is only valid 8534 for ename:VK_IMAGE_TYPE_2D images (public issue 293). 8535 * Add a valid usage statement to flink:vkCmdExecuteCommands saying 8536 that when called outside a render pass instance, the secondary 8537 command buffers must not have been created with the 8538 ename:VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT (public issue 8539 297). 8540 * Fix description of +VK_NO_STDINT_H+ in the 8541 <<boilerplate-platform-macros,platform macros>> section (public 8542 issue 314). 8543 8544Internal Issues: 8545 8546 * Normalize the language for the remaining built-in variables in the 8547 <<interfaces-builtin-variables,Built-In Variables>> section. Fix 8548 code:FrontFacing and code:HelperInvocation, as they should be of 8549 code:boolean type rather than code:integer (internal issue 323). 8550 * Clarify that when ename:VK_WHOLE_SIZE is used for a buffer 8551 descriptor range, the effective range must still be within the max 8552 buffer range (internal issue 426). 8553 * Clarify that command buffers and descriptor sets are allocated 8554 rather than created. Also clarify when the recording state of a 8555 command buffer is relevant (internal issue 434). 8556 8557----------------------------------------------------- 8558 8559Change log for August 5, 2016 Vulkan 1.0.23 spec update: 8560 8561 * Bump API patch number and header version number to 23 for this update. 8562 8563Github Issues: 8564 8565 * Add explicit valid value attributes to pname:sType members in vk.xml 8566 (public issue 34). 8567 * Clarify usage of flink:vkGetInstanceProcAddr and 8568 flink:vkGetDeviceProcAddr (public issue 225). 8569 * Fix a copy-and-paste error in the description of 8570 pname:pSwapchainImageCount saying that it was the count of ``format 8571 pairs'' instead of ``swapchain images'' (public issue 292). 8572 * flink:vkCmdExecuteCommandBuffers requires all command buffers to be 8573 allocated from command pools created for the same queue family (public 8574 issue 296). 8575 * Remove bogus +optional+ attribute for 8576 flink:vkEnumerateDeviceLayerProperties::pname:physicalDevice from vk.xml 8577 (public issue 301). 8578 * Clean up the <<resources-image-views-compatibility,image and image view 8579 compatibility table>> reference and contents. Use full enumerant names. 8580 Refer to pname:layerCount in the ``view parameters'' column instead of 8581 pname:arrayLayers. Require N >= 1 for the cube array subview row, not 8582 just arrayLayers >= 6 N (public issue 304). 8583 * Modify description of <<resources-memory-aliasing,memory aliasing>> to 8584 be consistent with the description of 8585 <<resources-bufferimagegranularity,buffer image granularity>> (public 8586 issue 307). 8587 8588Internal Issues: 8589 8590 * Describe remaining +vk_platform.h+ macros in the <<boilerplate,API 8591 Boilerplate>> appendix (internal issue 6). 8592 * Clarify 8593 <<features-features-robustBufferAccess,pname:robustBufferAccess>> 8594 feature behavior; what memory can be accessed, how bounds checking is 8595 performed, and allowing for vectorization (internal issue 332). 8596 * Document markup for automatic extraction of reference pages from the 8597 spec sources in the style guide (internal issue 395). 8598 * Allow flink:vkCreateDisplayModeKHR to return 8599 ename:VK_ERROR_INITIALIZAION_FAILED_KHR if the user requests mode 8600 parameters that the specified display does not support (internal issue 8601 411). 8602 * Remove atomic counters (atomic_uint style) from KHR_vulkan_glsl, and 8603 more clearly remove the subroutine keyword alongside it (internal issue 8604 421). 8605 * Clarify behavior of flink:vkCmdBindDescriptorSets for descriptor sets 8606 not contained in the layout (internal issue 427). 8607 8608Other Commits: 8609 8610 * Change the order in which members of sname:VkAttachmentDescription and 8611 sname:VkPipelineInputAssemblyStateCreateInfo are described to match 8612 their order in the structures. 8613 8614----------------------------------------------------- 8615 8616Change log for July 22, 2016 Vulkan 1.0.22 spec update: 8617 8618 * Bump API patch number and header version number to 22 for this update. 8619 8620Github Issues: 8621 8622 * Translate the subpass self-dependency language into concrete 8623 validity statements, and added a validity statement about the 8624 restrictions on layout parameters (public issue 267). 8625 * Add validity requirement that 8626 slink:VkAttachmentDescription::pname:finalLayout and 8627 slink:VkAttachmentReference::pname:layout must not be 8628 ename:VK_IMAGE_LAYOUT_UNDEFINED or 8629 ename:VK_IMAGE_LAYOUT_PREINITIALIZED (public issue 268). 8630 * Clarify that slink:VkSubpassDescription::pname:pResolveAttachments 8631 layouts are used. Make language consistent with other attachment 8632 arrays (public issue 270). 8633 * Changed 64-bit definition for 8634 dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE to work for x32 platform in 8635 +vk.xml+ and the resulting +vulkan.h+ (public issue 282). 8636 * Add missing error return code for 8637 flink:vkEnumerateInstanceExtensionProperties and 8638 flink:vkEnumerateDeviceExtensionProperties (public issue 285) 8639 * Fix several cases of stext::VkStructName.memberName markup to 8640 stext::VkStructName::pname:memberName, to match other usage in the 8641 spec, and describe this markup in the style guide (public issue 8642 286). 8643 * Modified validity language generation script to avoid redundant 8644 common ancestor language if covered by generic parent language, and 8645 used `Both' instead of `Each' when appropriate (public issue 288). 8646 8647Internal Issues: 8648 8649 * Add language about behavior of flink:vkAllocateDescriptorSets when 8650 allocation fails due to fragmentation, a new error 8651 ename:VK_ERROR_FRAGMENTED_POOL, and a Note explaining the situation 8652 (internal issue 309). 8653 * For the features of code:PointSize, code:ClipDistance, and 8654 code:CullDistance, the SPIR-V capability is required to be declared 8655 on use (read or write) rather than on decoration (internal issue 8656 359). 8657 * Have desktop versions of GLSL respect precision qualification 8658 (code:mediump and code:lowp) when compiling for Vulkan. These will 8659 get translated to SPIR-V's code:RelaxedPrecision decoration as they 8660 do with OpenGL ES versions of GLSL (ESSL). The default precision of 8661 all types is code:highp when using a desktop version (internal issue 8662 360). 8663 * Add validity statement for slink:VkImageCreateInfo specifying that 8664 multisampled images must be two-dimensional, optimally tiled, and 8665 with a single mipmap level (internal issue 369). 8666 * Add validity statements to slink:VkImageViewCreateInfo disallowing 8667 creation of images or image views with no supported features. Made 8668 some slink:VkImageViewCreateInfo validity statements more precise 8669 and consistent. Added a Note to the <<features,features>> chapter 8670 about formats with no features (internal issue 371). 8671 * Remove +manpages+ from default build targets. Nroff outputs 8672 containing imbedded latexmath will not render properly. Fixing this 8673 is a lot of work for limited use cases (internal issue 401). 8674 8675Other Commits: 8676 8677 * Fix flink:vkRenderPassBeginInfo::pname:clearValueCount validity 8678 statement to be based on attachment indices rather than the number 8679 of cleared attachments 8680 (Vulkan-LoaderAndValidationLayers/issues/601). 8681 * Convert registry documentation from LaTeX to asciidoc source and 8682 rename from +src/spec/readme.tex+ to +src/spec/registry.txt+. 8683 * Fix lack of Oxford commas in validity language. 8684 * Lots of cleanup of generator scripts and Makefiles to move extension 8685 list for generator into the script arguments instead of the body of 8686 genvk.py, and express better dependencies between XML, scripts, and 8687 generated files. 8688 8689----------------------------------------------------- 8690 8691Change log for July 15, 2016 Vulkan 1.0.21 spec update: 8692 8693 * Bump API patch number and header version number to 21 for this update. 8694 8695Github Issues: 8696 8697 * Clarify how <<features-supported-sample-counts,sample count queries>> 8698 relate to the limits in slink:VkPhysicalDeviceLimits. (public issue 8699 185). 8700 * Clarify in the <<interfaces-iointerfaces,Shader Input and Output 8701 Interfaces>> section that shader output variables have undefined values 8702 until the shader writes to them (public issue 240). 8703 * Specify the implicit value of image parameters that cannot be set in 8704 slink:VkSwapchainCreateInfo::pname:flags, pname:imageType, 8705 pname:mipLevels, pname:samples, pname:tiling, and pname:initialLayout 8706 (public issue 243). 8707 * Make use of code:NULL and code:VK_NULL_HANDLE consistent in the 8708 VK_KHR_swapchain extension (public issue 276). 8709 8710Internal Issues: 8711 8712 * Clarify that presenting an image to a display surface swapchain applies 8713 the display surface's mode, and that destroying a display surface 8714 swapchain may reset the display's mode, in the VK_KHR_display_swapchain 8715 extension (internal issue 247). 8716 * Better describe what a slink:VkSurfaceKHR is, and that creating one does 8717 not set a mode, in the VK_KHR_display extension. This is a round-about 8718 way of pointing out that mode setting is not covered by the extension, 8719 but rather is performed as a side effect of presentation (internal issue 8720 247). 8721 * Add more valid usage statements to flink:vkQueuePresentKHR command when 8722 the VK_KHR_display_swapchain extension is present (internal issue 8723 247). 8724 * Add more includes to the VK_KHR_swapchain extension to better document 8725 interactions with VK_KHR_display_swapchain (internal issue 247). 8726 * Clarify restrictions on location aliasing in the 8727 <<fxvertex,Fixed-Function Vertex Processing>> section (internal issue 8728 370). 8729 * Add mathematical description of blitting to flink:vkCmdBlitImage, and 8730 link it to the <<textures,Image Operations>> chapter. Use mathematical 8731 notation for ranges of texel coordinates in the <<textures,Image 8732 Operations>> chapter. Fixed miscellaneous validity statements for 8733 flink:vkCmdBlit and slink:VkImageBlit (internal issue 382). 8734 8735Other Commits: 8736 8737 * Added a valid usage rule to flink:VkGraphicsPipelineCreateInfo that the 8738 ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST topology must only be used when 8739 tessellation shaders are used. 8740 * Expand the style guide into a formal "Procedures and Conventions" 8741 document. Add a API Naming Conventions section, move most of the API 8742 Specification Appendix C (Layers and Extensions) content into the new 8743 document, and define the resulting procedures as mandatory (where 8744 relevant). This more clearly separates use vs. specification of Vulkan 8745 APIs. 8746 * Update vk_platform.h to handle 32-bit ARMv8 binaries. 8747 * Various minor cleanups to the Makefile and build process. 8748 8749----------------------------------------------------- 8750 8751Change log for July 8, 2016 Vulkan 1.0.20 spec update: 8752 8753 * Bump API patch number and header version number to 20 for this 8754 update. 8755 8756Github Issues: 8757 8758 * Replaced existing reference pages by text automatically extracted from 8759 the specification source, or generated from vk.xml in some cases. This 8760 is not a complete solution for the reference pages, but puts them in a 8761 much better state. The ref pages (only) are now placed under a CC BY 8762 open source license, which is more current than the obsolete license 8763 previously used. Various minor tweaks to the Specification sources were 8764 made to enable this, and a new ``API Boilerplate'' chapter added to 8765 include definitions of all the entities in the API and +vulkan.h+ which 8766 were not already described in some form in the document. 8767 8768 Further improvements to the pages should not edit them directly, but 8769 instead concentrate on the specification source from which the ref pages 8770 are being extracted (public issues 44, 55, 160; internal issue 389). 8771 8772----------------------------------------------------- 8773 8774Change log for July 1, 2016 Vulkan 1.0.19 spec update: 8775 8776 * Bump API patch number and header version number to 19 for this 8777 update. 8778 8779Github Issues: 8780 8781 * Clarified how flink:vkGetImageSubresourceLayout interacts with image 8782 layouts (public issue 247). 8783 * Remove ename:VK_IMAGE_LAYOUT_PREINITIALIZED from valid usage rule for 8784 slink:VkImageMemoryBarrier::pname:oldLayout. It is only valid if it is 8785 the current layout (public issue 248). 8786 * Modify valid usage for flink:vkBindBufferMemory so implementations are 8787 free to require a different backing memory size than the buffer size 8788 (public issue 251). 8789 * Clarify that filtering rules for flink:vkCmdBlitImage always apply, and 8790 are usually no-ops if the formats are the same (public issue 253). 8791 * Remove 'non-sparse' from description of 8792 flink:vkGetBufferMemoryRequirements and 8793 flink:vkGetImageMemoryRequirements (public issue 257). 8794 * Remove ename:VK_ERROR_LAYER_NOT_PRESENT error code from 8795 flink:vkCreateDevice (public issue 259). 8796 * Change "must: not" to "should: not" in constraint on when 8797 flink:vkAcquireNextImageKHR is called in the VK_KHR_swapchain branch 8798 (public issue 262). 8799 * Change type of flink:vkCmdUpdateBuffer::pname:pData from 8800 basetype:uint32_t* to basetype:void* (public issue 263). 8801 * Change should: to must: in description of where additional segments are 8802 placed in the <<[tessellation-tessellator-spacing,Tessellator Spacing>> 8803 section (public issue 264). 8804 8805Internal Issues: 8806 8807 * Normalize the language of all the compute shader built-ins in the 8808 <<interfaces-builtin-variables,Built-in Variables>> section (internal 8809 issue 323). 8810 * Remove definition of presentation engine internal queue lengths 8811 associated with ename:VK_PRESENT_MODE_FIFO_KHR and 8812 ename:VK_PRESENT_MODE_FIFO_RELAXED_KHR in the <<Window System 8813 Integration,wsi>> chapter (internal issue 374). 8814 * The language of a Note was too broad, and implied that loaders for a 8815 given OS would statically export functions for WSI extensions that 8816 were not relevant to (or supported on) the OS. Also, removed 8817 "Khronos-provided" since the Android loader is not (internal issue 380) 8818 8819Other Commits: 8820 8821 * Add ename:VK_INCOMPLETE to list of return values for 8822 flink:vkGetPipelineCacheData. Spec says this value is returnable, but it 8823 was not listed in the error codes. 8824 * Fix "correponds" typo in member definitions for 8825 slink:VkSubpassDescription. 8826 8827----------------------------------------------------- 8828 8829Change log for June 24, 2016 Vulkan 1.0.18 spec update: 8830 8831 * Bump API patch number and header version number to 18 for this 8832 update. 8833 8834Github Issues: 8835 8836 * Added "queue operation" terminology, and modified spec to actually 8837 use this terminology (public issue 155). The act of submitting a 8838 piece of work to a queue now generates "operations" for the queue to 8839 execute, including operations to wait on/signal semaphores and 8840 fences. Synchronization waits on these operations, making execution 8841 dependency chains more obvious for semaphores and fences (though 8842 additional work is still needed here). These changes include: 8843 ** Overview of "queue submission" commands in chapter 8844 <<devsandqueues-submission>>. 8845 ** Updated descriptions for fence and semaphore waits and signals in 8846 the synchronization chapter <<synchronization-semaphores-waiting>>, 8847 <<synchronization-semaphores-signaling>> and 8848 <<synchronization-fences-waiting>>. 8849 ** Clarifications to semaphore and fence operation within queue 8850 submission functions. 8851 ** New glossary terms. 8852 ** Moved device idle and queue wait idle to synchronization chapter in 8853 order to describe them in terms of other synchronization 8854 primitives. 8855 ** Clarifications to semaphore and fence operation allowed removal of 8856 the "implicit ordering guarantees" section, as this information is 8857 now wholly covered where these primitives are described. 8858 *** The "host writes" section of this is still there for now - in its 8859 own section. This could probably be merged into other sections 8860 later. 8861 *** Modified fundamentals chapter on queue ordering to make sense in 8862 context of the new changes, and avoid duplication. 8863 <<fundamentals-queueoperation>> 8864 * Added "aspect" and "component" definitions to the glossary, and made 8865 sure these terms are referenced correctly (public issue 163). 8866 * Update valid usage for ftext:vkGet*ProcAddr to only include 8867 conditions that must be met to get a valid result. In particular, 8868 it is okay to call flink:vkGetDeviceProcAddr with any string and will 8869 get a code:NULL if that string is not a core Vulkan function or an 8870 enabled extension function (addresses but does not fully close 8871 public issue 214). 8872 * Change the WSI extension dependencies to refer to version 1.0 of the 8873 Vulkan API, instead of the pre-1.0-release internal revisions 8874 numbers (public issue 238). 8875 * Specified that <<interfaces-fragmentoutput,undeclared fragment 8876 shader outputs>> result in undefined values input to the blending 8877 unit or color attachment (public issue 240). 8878 * Fix latexmath:[$\leq$] operators turning into Unicode left arrow symbols 8879 (public issue 245). 8880 8881Internal Issues: 8882 8883 * Better documented that the registry XML "optional" tag for values 8884 only applies when that value is the size of an array (internal issue 8885 335). 8886 * Add a stronger definition for the valid usages of 8887 VkSpecializationMapEntry.size in the 8888 <<pipelines-specialization-constants,Specialization Constants>> 8889 section (internal issue 345). 8890 * Change code:OpName to code:OpDecorate (along with appropriate 8891 syntax) for vertex shader built-ins (internal issue 368). 8892 * Add missing ref pages (those which are not currently stubs) to 8893 apispec.txt for the single-page version of the ref pages (internal 8894 issue 378). 8895 8896Other Commits: 8897 8898 * Fix example in the <<descriptorsets,Descriptor Sets>> section to use 8899 M, N, and I, describing set, binding, and index, consistently 8900 throughout the example code. 8901 8902----------------------------------------------------- 8903 8904Change log for June 17, 2016 Vulkan 1.0.17 spec update: 8905 8906 * Bump API patch number and header version number to 17 for this 8907 update. 8908 8909Github Issues: 8910 8911 * Update description of vertex shader reuse in 8912 <<shaders-vertex-execution>> (public issue 106). 8913 * Simplify validity language around pname:ppEnabledExtensionNames and 8914 pname:ppEnabledLayerNames (in the <<initialization-instances>> and 8915 <<devsandqueues-device-creation>> sections) (public issue 214). 8916 * Add missing validity rule to flink:vkCmdBeginRenderPass requiring 8917 compatibility between slink:VkAttachmentDescription pname:initalLayout 8918 members and the corresponding attached framebuffer images (public issue 8919 233). 8920 * Fix Unicode arrows appearing in output instead of relational operators 8921 (public issue 239). 8922 * Correctly describe the required number of elements for 8923 code:TessLevelInner and code:TessLevelOuter arrays in the 8924 <<interfaces-builtin-variables,Built-In Variables>> section as two and 8925 four, respectively, instead of the other way around, and refer to this 8926 section from the <<tessellation,Tessellation>> chapter (public issue 8927 246). 8928 8929Internal Issues: 8930 8931 * Document deprecation of ename:VK_COLORSPACE_SRGB_NONLINEAR_KHR in the 8932 VK_KHR_surface extension, and of 8933 ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT in the 8934 VK_EXT_debug_report extension (internal issue 328). 8935 * Added language to define what a valid usage statement is and should be, 8936 with a note about some apparent weirdnesses this might entail (internal 8937 issue 357). 8938 8939Other Commits: 8940 8941 * Added missing ename:VK_ERROR_DEVICE_LOST error to 8942 flink:vkQueueBindSparse. 8943 8944----------------------------------------------------- 8945 8946Change log for June 10, 2016 Vulkan 1.0.16 spec update: 8947 8948 * Bump API patch number and header version number to 16 for this 8949 update. 8950 8951Github Issues: 8952 8953 * Clarify that integer border values are meant to be 0/1, and that 8954 integer texture lookups are sign-extended in the 8955 <<textures-format-conversion,Format Conversion>> and 8956 <<textures-texel-replacement,Texel Replacement>> sections (public 8957 issue 52). 8958 * Add logic to generate spec boilerplate without using the 'git' 8959 command-line client, needed when building from a tarball or another 8960 source of the Vulkan tree rather than a cloned git repo. Remove 8961 boilerplate as part of 'clean' target (public issue 195). 8962 * Document that color writes and clears to unused attachments have no 8963 effect for slink:VkClearAttachment and 8964 elink:VkColorComponentFlagBits (public issue 198). 8965 * Fixed flink:vkCmdExecuteCommands validity statement for 8966 sname:VkCommandBufferInheritanceInfo::pname:framebuffer. If used, it 8967 must match the framebuffer in the current renderpass instance 8968 (public issue 226). 8969 * Added valid usage language to require for all functions that set 8970 dynamic state that the currently bound graphics pipeline has the 8971 corresponding dynamic state enabled (public issue 235). 8972 8973Internal Issues: 8974 8975 * Clarify for flink:vkEnumerateInstanceExtensionProperties, in the 8976 <<extended-functionality-instance-extensions-and-devices, Instance 8977 Extensions and Device Extensions>> section, and in the 8978 <<glossary,Glossary>> section when functionality should be exposed 8979 as an instance extension, as a device extension, or as both 8980 (internal issue 109). 8981 * Place WorkgroupSize in alphabetical order in the 8982 <<interfaces-builtin-variables,Built-in Variables>> section 8983 (internal issue 323). 8984 * Corrects valid usage in vkEndRenderPass to only affect primary 8985 render passes, as secondaries may be entirely within a render pass, 8986 and should be able to be ended (previous language disallowed that) 8987 (internal issue 338). 8988 * Fix relational operator from <= to >= in the 8989 <<features-extentperimagetype,Allowed Extent Values>> section 8990 (internal issue 343). 8991 * Disallow recursion under SPIR-V entry points in the 8992 <<spirvenv-module-validation,Validation Rules within a Module>> 8993 section (internal SPIR-V issue 37). 8994 8995Other Commits: 8996 8997 * Use standard Python ElementTree package instead of lxml.etree in 8998 header / validation layer / include autogeneration from XML, 8999 reducing platform dependencies. 9000 9001----------------------------------------------------- 9002 9003Change log for May 27, 2016 Vulkan 1.0.15 spec update: 9004 9005 * Bump API patch number and header version number to 15 for this 9006 update. 9007 9008Github Issues: 9009 9010 * Fixed the <<glossary,Glossary>> entry for Fragment Input Attachment 9011 Interface to specify code:UniformConstant storage class (public issue 9012 156). 9013 * Disallow lazily allocated memory for buffers in the description of 9014 slink:VkMemoryRequirements::pname:memoryTypeBits (public issue 196). 9015 * Add numbered figure captions (public issue 219). 9016 * Fix output variable names in the <<fundamentals-fpfixedconv,Conversion 9017 from Floating-Point to Normalized Fixed-Point>> section and related 9018 minor normative language and markup cleanup (public issue 220). 9019 9020Internal Issues: 9021 9022 * Fix reference to nonexistent etext:VK_IMAGE_LAYOUT_TRANSFER_{SRC,DST}BIT 9023 to the actual etext:VK_IMAGE_LAYOUT{SRC,DST}_OPTIMAL (internal issue 9024 296). 9025 * Update the <<sparsememory-sparse-memory-aliasing,Sparse Resource 9026 Implementation Guidelines>> to refer to the correct feature names 9027 (internal issue 305). 9028 9029----------------------------------------------------- 9030 9031Change log for May 20, 2016 Vulkan 1.0.14 spec update: 9032 9033 * Bump API patch number and header version number to 14 for this 9034 update. 9035 9036Github Issues: 9037 9038 * Fix validity language for sname:VkCommandBufferAllocateInfo to 9039 impose range limits on pname:commandBufferCount (public issue 178). 9040 * Fix validity language for flink:vkCmdExecuteCommands to refer to the 9041 correct structure names (public issue 179). 9042 * Fix two copy-and-paste errors in the WSI queries, where the wrong 9043 term was used for what was being returned (public issue 206). 9044 * Add a note in the documentation of 9045 flink:vkGetPhysicalDeviceSurfaceFormatsKHR, about what it means if 9046 ename:VK_FORMAT_UNDEFINED is returned (public issue 207). 9047 9048Internal Issues: 9049 9050 * Clarify the usage and correct the name for the bitmask referenced in 9051 <<queries-pipestats,Pipeline Statistics Queries>> (internal issue 9052 334). 9053 9054Other Commits: 9055 9056 * Fix the names of decorations listed in the 9057 <<interfaces-builtin-variables,Built-in Variables>> section such 9058 that they match the SPIR-V specification. 9059 9060----------------------------------------------------- 9061 9062Change log for May 13, 2016 Vulkan 1.0.13 spec update: 9063 9064 * Bump API patch number and header version number to 13 for this 9065 update. 9066 9067Github Issues: 9068 9069 * Improve the description of ename:VK_PRESENT_MODE_FIFO_RELAXED_KHR in the 9070 VK_KHR_surface extension (public issue 174). 9071 * Clarify use of etext:*_SIMULTANEOUS_USE_BIT for secondary command 9072 buffers (public issue 182). 9073 * Fix typos in VK_KHR_wayland_surface extension where code:wl_device was 9074 used instead of code:wl_display (public issue 193). 9075 * Replaced {apiname} with ``Vulkan'' in XML validity statements (public 9076 issue 199). 9077 * Fix dead links for WSI handle types (public issue 200). 9078 * Use "signaled" instead of "signalled" spelling everywhere (public issue 9079 201). 9080 * Move readme.pdf target directory for XML schema documentation into the 9081 target generation directory, instead of leaving it checked into the spec 9082 source tree (public issue 203). 9083 * Fix duplicate 'which which' typo in description of 9084 elink:VkCommandPoolResetFlagBits (public issue 204). 9085 * Move the <<Programmable Primitive Shading>> section up one level, out of 9086 the <<drawing-primitive-topologies,Primitive Topologies>> section 9087 (public issue 209). 9088 9089Internal Issues: 9090 9091 * Clarify in the <<pipelines-cache,Pipeline Cache>> section that 9092 implementations should not manage the size of pipeline cache (internal 9093 issue 192). 9094 * Deprecate the concept of device layers and associated commands (internal 9095 issue 255). 9096 * Remove ename:VK_INCOMPLETE from the list of possible result codes of 9097 flink:vkGetPhysicalDeviceSurfaceCapabilitiesKHR (internal issue 314). 9098 * Add missing std140/std430 rule: the base alignment of a member following 9099 a structure is a multiple of the structure's base alignment (internal 9100 issue 321). 9101 * Fixes naming of the single elink:VkColorSpaceKHR enum from 9102 ename:VK_COLORSPACE_SRGB_NONLINEAR_KHR to 9103 ename:VK_COLOR_SPACE_SRGB_NONLINEAR_KHR in XML/header and the 9104 VK_KHR_swapchain and VK_KHR_surface extensions to match the style of the 9105 typename (space and color are two words, not one) (internal issue 322). 9106 * Make it clear that code:LocalInvocationID should only be applied to an 9107 input variable and normalize the language describing 9108 code:LocalInvocationID to the language for other compute shader 9109 variables in the <<interfaces-builtin-variables,Built-in Variables>> 9110 section, and add normative language (internal issue 323). 9111 * Clarify in the <<fundamentals-returncodes,Return Codes>> section that 9112 the result pointer may be modified for specific commands, even if a 9113 runtime error is returned (internal issue 324). 9114 9115----------------------------------------------------- 9116 9117Change log for April 29, 2016 Vulkan 1.0.12 spec update: 9118 9119 * Bump API patch number and header version number to 12 for this 9120 update. 9121 9122Github Issues: 9123 9124 * Change valid usage statements intended to be "sub-points" to 9125 be actual sub-points (public issue 66). 9126 * Replace double negation in description of 9127 slink:VkRenderPassBeginInfo::pname:pClearValues (based on public 9128 merge 142). 9129 * Cleanup minor typos in spec, ref pages and XML, including those 9130 proposed in public pull requests 144, 150, 151, 167, 168, 181, and 9131 186. 9132 * Use *strict subset* in describing the partial order of memory 9133 property types for slink:VkMemoryType, and update the style guide 9134 accordingly (public issue 190). 9135 * Fix various "a image" -> "an image" typos (public issue 191). 9136 * Note in the <<fundamentals-validusage,Valid Usage>> and 9137 <<extensions-interactions,Extension Interactions>> sections that 9138 structures defined by extensions which may be passed in structure 9139 chains using the ptext:pNext member must include initial 9140 ptext:sType and ptext:pNext members (public issue 192). 9141 9142Internal Issues: 9143 9144 * Remove duplicate language from the description of the pname:fence 9145 parameter to flink:vkQueueSubmit and improve validity language 9146 (internal issue 91). 9147 * Added documentation for "optional" attribute to XML readme.tex/pdf 9148 (internal issue 149). 9149 * Clarify the host-side data validity rules and behavior of 9150 flink:vkFlushMappedMemoryRanges and 9151 flink:vkInvalidateMappedMemoryRanges (internal issue 266). 9152 9153Other Commits: 9154 9155 * Added clarification to flink:vkCmdFillBuffer regarding the use of 9156 ename:VK_WHOLE_SIZE. 9157 * Fixed and documented implementation of "validextensionstructs" 9158 attribute. in XML processing scripts and readme.tex/pdf. 9159 * Add missing validity statements to flink:vkResetEvent and 9160 flink:vkCmdResetEvent. 9161 * Fix validity for the 9162 ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag. 9163 Correct all the draw/dispatch commands to mention optimally tiled 9164 images as well as linear tiled images, and say image VIEWS instead 9165 of images. Add validity statement to flink:vkCmdBlitImage 9166 * Replace the {apiname} macro with hardcoded "Vulkan", now that we have 9167 committed to that name. 9168 * Add the VK_AMD_rasterization_order extension to vk.xml. 9169 9170----------------------------------------------------- 9171 9172Change log for April 22, 2016 Vulkan 1.0.11 spec update: 9173 9174 * Bump API patch number and header version number to 11 for this 9175 update. 9176 9177Github Issues: 9178 9179 * Clarify the WSI extension language by switching from the fuzzier 9180 "ownership" language to more-consistent "acquire" language (public 9181 issue 117). 9182 * Clarify that memory barriers apply to all commands in the dependency 9183 chains in the flink:vkGetRenderAreaGranularity command and the 9184 <<synchronization-execution-and-memory-dependencies,Execution And 9185 Memory Dependencies>> section (public issue 132). 9186 * Clarify that a queue family is a set of queues in the 9187 <<fundamentals-execmodel,Execution Model>> section (public issue 9188 166). 9189 * Removed requirement from valid usage language that 9190 VkPresentInfoKHR::waitSemaphoreCount must be greater than 0 (public 9191 issue 171). 9192 * Fix broken internal links, describe structures consistently, use 9193 consistent style for SPIR-V codewords, and tag normative terms that 9194 were missing asciidoc tags (public issue 183 and ancillary 9195 markup/normative language fixes). 9196 * Fix typos for slink:VkPhysicalDeviceLimits member names in 9197 slink:VkImageCreateInfo validity language (public issue 184). 9198 9199Internal Issues: 9200 9201 * Document that the requested patch version number specified as part 9202 of slink:VkApplicationInfo::pname:apiVersion is ignored when 9203 creating an instance (internal issue 176). 9204 * Clarify handling of extension structs in the 9205 <<fundamentals-validusageValid Usage>> section (internal issue 254). 9206 * Update required slink:VkImageFormatProperties::pname:maxMipLevels to 9207 be limited to the maximum allowed mipmap pyramid size corresponding 9208 to the actual maximum supported size for the format (internal issue 9209 256). 9210 * Modify the <<features-extentperimagetype,Allowed Extent Values Based 9211 On Image Type>> section so the allowed maximum extent is the maximum 9212 image dimension supported for each dimension of the type of texture 9213 being queried (internal issue 257). 9214 * Clarify in the <<spirvenv-module-validation,Validation Rules within 9215 a Module>> section that at least one of the code:LocalSize execution 9216 mode or code:WorkgroupSize decoration is required for each compute 9217 shader entry point in a shader module (internal issue 279). 9218 * Add validity rules for formats in flink:vkCmdClearColorImage and 9219 flink:vkCmdClearDepthStencilImage (internal issue 283). 9220 * Clarify that slink:VkImageFormatProperties::pname:maxResourceSize is 9221 an upper bound, and that it may not be possible to create an image 9222 anywhere near that size (internal issue 284). 9223 9224Other Commits: 9225 9226 * Fix various minor markup errors reported by validation scripts. 9227 * Change copyright from Khronos Free Use License to Apache 2.0 license 9228 on relevant script/XML/header files. This does not affect the 9229 specification source copyright. 9230 9231----------------------------------------------------- 9232 9233Change log for April 15, 2016 Vulkan 1.0.10 spec update: 9234 9235 * Bump API patch number and header version number to 10 for this 9236 update. 9237 9238Github Issues: 9239 9240 * Slightly tweak the <<memory-allocation,Host Memory>> allocator language 9241 so that an application wrapping the standard C alloc/free/realloc 9242 functions is still correct - the previous language was too strong with 9243 regards to freeing memory. Also made certain scenarios clearer - an 9244 implementation may now continue without error if an allocation failed 9245 and it is able to continue correctly (public issue 21). 9246 * Require that etext:VK_*_CREATE_SPARSE_BINDING_BIT is set when the 9247 corresponding etext:VK_*_CREATE_SPARSE_RESIDENCY_BIT is used, in the 9248 <<sparsememory-miptail,Mip Tail Regions>> section and related commands 9249 flink:vkCreateBuffer and flink:vkCreateImage (public issue 84). 9250 * Update the <<features,Features, Limits, and Formats>> chapter to clarify 9251 interactions between optional features and dynamic state for the 9252 pname:depthBiasClamp and pname:wideLines features (public issue 89). 9253 * Describe the code:WorkgroupSize builtin in the 9254 <<interfaces-builtin-variables,Built-In Variables>> section, and update 9255 the <<compute-shaders,Compute Shaders>> section to further clarify how 9256 to set the number of workgroups to execute in a compute shader (public 9257 issue 145). 9258 * Use the term *image subresource* everywhere instead of *subresource*, 9259 except for the special case of *host-accessible subresource*, which may 9260 be either an image subresource or buffer range (public issue 120) 9261 * Add a note to the <<features,Features, Limits, and Formats>> section 9262 about extensibility of structures (Public issue 165). 9263 * Fix return code flink:vkAcquireNextImageKHR when the timeout parameter 9264 is 0 to ename:VK_NOT_READY instead of ename:VK_TIMEOUT (public issue 9265 170). 9266 * Fix typo in slink:VkLayerProperties::pname:apiVersion field (public 9267 issue 172). 9268 9269Internal Issues: 9270 9271 * Fix a few minor internally-detected typos. 9272 * Minor formatting tweaks to pseudocode in the <<resources,Resource 9273 Creation>> chapter (internal issue 179). 9274 * Fix typo in the definition of point sampling for 9275 elink:VkCullModeFlagBits (internal issue 268). 9276 9277----------------------------------------------------- 9278 9279Change log for April 8, 2016 Vulkan 1.0.9 spec update: 9280 9281 * Bump API patch number and header version number to 9 for this 9282 update. 9283 9284Github Issues: 9285 9286 * Fix memory type preorder definition and clarify example list and source 9287 code for slink:VkMemoryRequirements and slink:VkMemoryHeap (public issue 9288 26). 9289 * Ensure slink:VkAllocationCallbacks are properly defined (public issue 9290 73). 9291 * Clarify the WSI extension language by switching from the fuzzier 9292 "ownership" language to more-consistent "acquire" language (public issue 9293 117). 9294 * Add language allowing allocation and freeing of memory scoped to the 9295 duration of any API command in the <<memory-allocation,Memory 9296 Allocation>> section (public issue 136). 9297 * Clarify the explicit location assignment always overrides the inherited 9298 location in the <<interfaces-iointerfaces-locations,Location 9299 Assignment>> section, even for the first member of a block (public issue 9300 141). 9301 * Fixed references to 9302 slink:VkCommandBufferInheritanceInfo::pname:pipelineStatistics (public 9303 issue 158). 9304 * Fix name of slink:VkBufferCopy::pname:size field in validity language 9305 for flink:vkCmdCopyBuffer (public issue 162). 9306 9307Internal Issues: 9308 9309 * Update GL_KHR_vulkan_glsl specification to clarify disallowance of 9310 spec-const arrays in initializers (internal issue 248). 9311 * Clarify <<interfaces-iointerfaces-matching,Interface Matching>> section 9312 to state that user-defined variable interface must match too (internal 9313 issue 250). 9314 9315----------------------------------------------------- 9316 9317Change log for April 1, 2016 Vulkan 1.0.8 spec update: 9318 9319 * Bump API patch number and header version number to 8 for this 9320 update. 9321 9322Github Issues: 9323 9324 * Specify in the validity language for flink:vkBeginCommandBuffer that 9325 pname:commandBuffer must not currently be pending execution (public 9326 issue 96). 9327 * Describe depth comparison using the correct temporary variable names 9328 in the <<textures-depth-compare-operation,Depth Compare Operation>> 9329 section (public issue 100). 9330 * Clarify the order of descriptor update operations in the 9331 flink:vkUpdateDescriptorSets command (public issue 115). 9332 * Specify in the VK_KHR_swapchain extension that 9333 flink:vkAcquireNextImageKHR's pname:semaphore and pname:fence 9334 parameters cannot both be sname:VK_NULL_HANDLE (partly addresses, 9335 but does not fully close, public issue 117 / internal issue 246). 9336 * Change reference to the "lifetime" of a Vulkan command to 9337 "duration", and define the "duration" term (public issue 135). 9338 * Added valid usage language for slink:VkImageLayout to require both 9339 pname:height and pname:depth to be 1 for 1D images and pname:depth 9340 to be 1 for 2D images (public issue 137). 9341 * Fix SPIR-V example code in the 9342 <<descriptorsets-inputattachment,Input Attachment>> section to 9343 properly decorate the code:InputAttachmentIndex (public issue 139). 9344 * Fix reference to nonexistent pname:imageInfo in the description of 9345 flink:VkWriteDescriptorSet to refer to pname:pImageInfo (public 9346 issue 140). 9347 9348Internal Issues: 9349 9350 * Link to the fixed-function vertex chapter from the drawing chapter 9351 (internal issue 110) 9352 * Fix typo in slink:VkImageCreateInfo validity language: 9353 ptext:maxExtent.sampleCounts -> pname:sampleCounts (internal issue 9354 249). 9355 * Explain why the non-core token etext:VK_IMAGE_LAYOUT_PRESENT_SRC_KHR 9356 is used in the example in the 9357 <<synchronization-semaphores,Semaphores>> section (internal issue 9358 251). 9359 * Attempt to clarify in the VK_KHR_android_surface extension's 9360 <<platformQuerySupport_android,Android Platform Support>> section 9361 that there is no Android-specific WSI query, and why (internal issue 9362 252). 9363 9364Other Commits: 9365 9366 * Add missing language about ename:VK_INCOMPLETE being returned from 9367 array queries when the passed array is too short, in the 9368 VK_KHR_display, VK_KHR_swapchain, and VK_KHR_surface extensions. 9369 9370----------------------------------------------------- 9371 9372Change log for March 25, 2016 Vulkan 1.0.7 spec update: 9373 9374 * Bump API patch number and header version number to 7 for this 9375 update. 9376 9377Github Issues: 9378 9379 * Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict 9380 aliasing issues (public issue 14). 9381 * Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets 9382 validity language (public issue 33). 9383 * Add stub reference pages so xrefs to not-yet-written pages do not 9384 generate 404 errors. However, the actual content of these pages 9385 still needs to be filled in as time allows (public issue 44, but 9386 does not close that issue out). 9387 * Remove incorrect validity statement for 9388 flink:vkGetImageSparseMemoryRequirements (public issue 85). 9389 * Reword the 9390 <<features-limits-bufferImageGranularity,bufferImageGranularity>> 9391 feature in terms of "aliasing", and clarify that it applies to 9392 bindings in the same memory object (public issue 90). 9393 * Clarify the relationship of the slink:VkPhysicalDeviceLimits 9394 pname:maxViewportDimensions and pname:viewportBoundsRange limits 9395 (public issue 92). 9396 * Specify sparse unbound texture replacement in the 9397 <<textures-texel-replacement,Texel Replacement>> section 9398 independently of robust buffer access language (public issue 100). 9399 * Add the <<fundamentals-architecture-model,Architecture Model>> 9400 section to explain architecture constraints Vulkan has chosen to 9401 accept in order to enable portable and performant code (public issue 9402 122). 9403 * State that an object must not be destroyed until *all* (not *any*) 9404 uses of that object have completed (public issue 123). 9405 * Minor editorial cleanup (public issues 129, 134, 146, 148). 9406 * Add validity language for layer and extension names to 9407 slink:VkDeviceCreateInfo matching that used for 9408 slink:VkInstanceCreateInfo (public issue 130). 9409 * Clean up terminology for the case when the bits set in one bitmask 9410 are a subset of the bits set in another bitmask (public issue 138). 9411 * Document that input attachments are UniformConstant not Input, in 9412 the <<interfaces-inputattachment,Fragment Input Attachment 9413 Interface>> section (public glslang bug 169). 9414 9415Internal Issues: 9416 9417 * Add max enum values to "flag bits" enums (internal issue 136). 9418 * Clarify language around the various uses of the term "block" in the 9419 <<appendix-compressedtex-bc,Block Compressed Image Formats>> section 9420 (internal issue 202). 9421 * Removed "expand" dependency from <enums> groups in vk.xml and added 9422 auto-generation code in the scripts to infer it instead, to ensure 9423 consistency. This caused renaming of sname:VkColorSpaceKHR and 9424 sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those 9425 tokens are metadata, not part of the API, and the Vulkan WG is OK 9426 with this change. This change adds ranges to two additional enums 9427 that were missing them due to not defining the "expand" attribute 9428 (internal issue 217). 9429 * Tweak makefile to generate ref page nroff (.3) files in the right 9430 output directory, working around an a2x limitation (internal issue 9431 223). 9432 9433Other Commits: 9434 9435 * Add validity requirements for flink:vkCmdCopyQueryPoolResults 9436 pname:dstBuffer parameter. 9437 * Fix ref page build to generate .3 targets in the right output 9438 directory. 9439 9440----------------------------------------------------- 9441 9442Change log for March 10, 2016 Vulkan 1.0.6 spec update: 9443 9444 * Bump API patch number and header version number to 6 for this 9445 update. 9446 9447Github Issues: 9448 9449 * Define 'invocation group' for compute and graphics shaders. Cleanup 9450 definition and use of 'workgroup', and add glossary entries (public 9451 issue 1). 9452 * Various minor editorial fixes (public issue 33). 9453 * Clarify locations for block members in the 9454 <<interfaces-iointerfaces-locations,Location Assignment>> 9455 section (public issue 45). 9456 * Editorial fixes for <<commandbuffer-allocation,Command Buffer 9457 Allocation>> section (public issues 54, 59). 9458 * Clarify behavior of depth test in the <<fragops-depth,Depth Test>> 9459 section (public issues 80, 81). 9460 * Remove discussion of return codes from 9461 flink:vkGetPhysicalDeviceSparseImageFormatProperties and 9462 flink:vkGetImageSparseMemoryRequirements, which do not return values 9463 (public issue 82). 9464 * Allow flink:vkCmdDrawIndirect and flink:vkCmdDrawIndexedIndirect 9465 pname:drawCount of 0, as well as 1, when the multiDrawIndirect 9466 feature is not supported (public issue 88). 9467 * Remove confusing wording in the <<features-limits,Limits>> 9468 section describing the slink:VkPhysicalDeviceLimits 9469 pname:minTexelBufferOffsetAlignment, 9470 pname:minUniformBufferOffsetAlignment, and 9471 pname:minStorageBufferOffsetAlignment members as both minimums and 9472 maximums (public issue 91). 9473 * Clarified that only the RGB components should be affected in places 9474 where sRGB is referred to in the spec, such as ASTC formats. Minor 9475 re-wording to avoid "color space" when actively incorrect, now that 9476 we refer to the Data Format Spec which actually makes a distinction 9477 between color space and transfer function (public issue 94). 9478 * Treat pname:pPropertyCount == 0 consistently in 9479 flink:vkEnumerateInstanceLayerProperties and 9480 flink:vkEnumerateDeviceLayerProperties (public issue 99) 9481 * Cleanup minor editorial issues in chapters 14-17 (public issue 100). 9482 * Clarify definition of flink:vkEnumerateInstanceExtensionProperties 9483 and flink:vkEnumerateDeviceExtensionProperties (public issue 101). 9484 * Define the flink:vkEnumerateInstanceExtensionProperties and 9485 flink:vkEnumerateDeviceExtensionProperties pname:pLayerName 9486 parameter to be a pointer to a null-terminated UTF-8 string (public 9487 issue 101). 9488 * Rearrange "Missing information" references in mandatory format 9489 tables (public issue 101). 9490 * Clarify that the enumerated extensions returned by 9491 flink:vkEnumerateInstanceExtensionProperties and 9492 flink:vkEnumerateDeviceExtensionProperties will only include 9493 extensions provided by the platform or extensions implemented in 9494 implicitly enabled layers (public issue 101). 9495 * Miscellaneous editorial fixes. Include the Vulkan spec patch number 9496 in the PDF title. Fix label on <<fig-non-strict-lines,Non 9497 strict lines>> diagram. Use more easily distinguished symbols in 9498 tables in the <<features-required-format-support,Required 9499 Format Support>> section. Do not require FQDNs used as layer names be 9500 encoded in lower case if not possible, in the 9501 <<extensions-naming-conventions, Extension and Layer Naming 9502 Conventions>> section (public issues 101, 119, 121). 9503 9504Internal Issues: 9505 9506 * Fixed excessive spacing in tables in XHTML (internal issue 18). 9507 * Clarify that ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT 9508 applies to secondary command buffers. Previously spec only referred 9509 to the members of pname:pCommandBuffers being affected by this bit. 9510 Added a separate slink:VkSubmitInfo Valid Usage restriction 9511 specifying that ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT 9512 also applies to any secondary command buffers that are recorded into 9513 the primary command buffers in pname:pCommandBuffers (internal issue 9514 106). 9515 * Clarify that slink:VkDeviceCreateInfo::pname:pEnabledFeatures can be 9516 NULL (internal issue 117). 9517 * Remove "the value of" where it is redundant (e.g. speaking of an API 9518 parameter, struct member, or SPIR-V variable, but not when speaking 9519 of color components) (internal issue 175). 9520 * Forced patch version to always be 0 in the header. Add a 9521 "VK_API_VERSION_<major>_<minor>" macro for people to use to do the 9522 right thing. Add a VK_HEADER_VERSION which captures the header 9523 release number independent of the spec patch number (internal issue 9524 176). 9525 * Correct description of 9526 slink:VkPipelineShaderStageCreateInfo::pname:pName to "a pointer to 9527 a null-terminated UTF-8 string" (internal issue 197). 9528 9529Other Commits: 9530 9531 * Updated DataFormat spec reference to the new date for revision 5 of 9532 that spec. 9533 * Fixed KEEP option (to retain LaTeX intermediate files) in the 9534 Makefile to be included when edited there, as well as set on the 9535 command line. 9536 * Reserve and add "VK_IMG_filter_cubic" to the registry, and implement 9537 script functionality to add and remove validity from existing 9538 functions. Includes schema and readme changes. 9539 * Update GL_KHR_vulkan_glsl so push_constants do not have descriptor 9540 sets. 9541 9542----------------------------------------------------- 9543 9544Change log for March 4, 2016 Vulkan 1.0.5 spec update: 9545 9546 * Bump API patch number to 5 for this update. 9547 9548Github Issues: 9549 9550 * Correctly describe slink:VkPhysicalDeviceProperties pname:deviceName 9551 member as a string, not a pointer to a string. Also one typo fix for 9552 "hetereogeneous" (public issue 4). 9553 * Replace maynot: macro with may: not, and "may: or maynot:" with 9554 "may:" (public issue 4). 9555 * Clarify that redundantly setting the state of a fence or event has 9556 no effect (public issue 4). 9557 * Minor fixes to ref pages to track descriptions of memory bits that 9558 changed in the core spec. Fix name of a member in the description of 9559 sname:sname:VkPipelineMultisampleStateCreateInfo (public issues 8, 9560 13). 9561 * Remove redundant validity statement for 9562 sname:VkGraphicsPipelineCreateInfo::pname:stageCount (public issue 9563 14). 9564 * Fix typos in chapters 7-9 (public issue 14). 9565 * Clarify the example demonstrating the behavior of 9566 code:OpMemoryBarrier in the 9567 <<shaders-execution-memory-ordering,shader memory acces 9568 ordering>> section (public issue 16). 9569 * Specify that freeing mapped memory implicitly unmaps the memory in 9570 the description of flink:vkFreeMemory (public issue 17). 9571 * Forbid allocation callbacks from calling into the API in the 9572 <<memory-allocation,memory allocation>> section (public issue 9573 20). 9574 * Add missing validity rules about size being greater than 0 and 9575 offset being less than size of object. Fix 9576 flink:VkMappedMemoryRange's misinterpretation of offset (public 9577 issues 27, 31). 9578 * Add validity rule disallowing overlapping source/destination 9579 descriptors in flink:VkCopyDescriptorSet (public issue 32). 9580 * Clarify that array and matrix stride has to be a multiple of the 9581 base alignment of the array or matrix in the 9582 <<interfaces-resources-layout,Offset and Stride Assignment>> 9583 section (public issue 38). 9584 * Correct parenthesis floor nesting error in equation for 9585 <<textures-RGB-sexp,RGB to shared exponent conversion>>. 9586 Clarify case of when exp' is forced to 0, avoiding log2(0) undefined 9587 problem (public issue 40). 9588 * Remove redundant statement from the code:FragDepth description in 9589 the <<interfaces-builtin-variables,Built-In Variables>> 9590 section (public issue 47). 9591 * Define the clamping of the 9592 <<textures-level-of-detail-operation,bias added to the scale 9593 factor>> by linking to the slink:VkPhysicalDevice feature 9594 pname:maxSamplerLodBias (public issue 64). 9595 * Fix typo "optimal linear resources" and clarify the set of resources 9596 <<features-limits-bufferImageGranularity,the 9597 pname:bufferImageGranularity resource>> applies to (public issue 9598 67). 9599 * Replace 'descriptor accessed by a pipeline' language for 9600 sname:VkDescriptorSetAllocateInfo with more precise phrasing about 9601 binding a descriptor set before a command that invokes work using 9602 that set (public issue 69). 9603 * tstripadj.svg contained an Inkscape tag which caused Firefox and IE 9604 11 to fail to render it, and was illegal SVG. Generating Plain SVG 9605 from the Inkscape SVG source fixes this (public issue 70). 9606 * Fix validity for sname:VkVertexInputBindingDescription and 9607 sname:VkVertexInputAttributeDescription numbers (public issue 72). 9608 9609Internal Issues: 9610 9611 * Clarify the meaning of 9612 ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in 9613 elink:VkFormatFeatureFlagBits with respect to depth compare 9614 (internal issue 107). 9615 * Added a note explaining that ename:VK_QUEUE_TRANSFER_BIT may or may 9616 not be reported for a queue family that already supports 9617 ename:VK_QUEUE_GRAPHICS_BIT or ename:VK_QUEUE_COMPUTE_BIT as the 9618 former is a strict subset of the latter ones (internal issue 116). 9619 * Add validity language for sname:VkDescriptorSetAllocateInfo about 9620 exceeding the descriptor pool capacity (internal issue 140). 9621 * Add ename:VK_INCOMPLETE success code for 9622 flink:vkEnumeratePhysicalDevices query (internal issue 163). 9623 9624Other Commits: 9625 9626 * Add the VK_NV_glsl_shader extension definitions to the API. 9627 * Update GL_KHR_vulkan_glsl with 1) origin_upper_left as default 2) 9628 specialization array constant semantics. 9629 * Corrected/updated Data Format Specification date. 9630 9631----------------------------------------------------- 9632 9633Change log for February 25, 2015 Vulkan 1.0.4 spec update: 9634 9635 * Bump API patch number from 3 to 4 for the first public update to the 9636 spec. Add patch number to the spec title (this will be done 9637 automatically from XML, later). 9638 * Fixes for numerous editorial issues. Regularize descriptions of 9639 variable-length array queries. Properly tag enumerants so they come 9640 out in the right font (many were mislabeled in usage tags in vk.xml, 9641 or not tagged). Spelling and markup corrections (public issue 4). 9642 * Fix typos and clearly separate description of different types of 9643 memory areas (public issue 5). 9644 * Use standards-compliant preprocessor guard symbols on headers 9645 (public issue 7). 9646 * Note that Github users cannot currently set labels on issues, and 9647 recommend a fallback approach (public issue 15). 9648 * Use latexmath prefix on len= attributes (public issue 29). 9649 * Make flink:vkCmdUpdateBuffer pname:dataSize limit consistent (public 9650 issue 65). 9651 * Add VK_KHR_mirror_clamp_to_edge extension to core API branch, as an 9652 optional feature not introducing new commands or enums (internal 9653 issue 104). 9654 * Cleanup invariance language inherited from the GL specification to 9655 not refer to nonexistent (GL-specific) state (internal issue 111). 9656 * Modify the flink:vkCmdDrawIndexed pname:vertexOffset definition to 9657 not be the "base offset within the index buffer" but rather the 9658 "value added to the vertex index before indexing into the vertex 9659 buffer" (internal issue 118). 9660 * Fix drawing chapter in the "Programmable Primitive Shading" section 9661 where it described categories of drawing commands. It referenced 9662 flink:vkCmdDrawIndexed twice. Replace the second reference with 9663 flink:vkCmdDrawIndexedIndirect (internal issue 119). 9664 * Typo fixed in <<sparsememory-examples-advanced,Advanced Sparse 9665 Resources>> sparse memory example (internal issue 122). 9666 * Add flink:VkDisplayPlaneAlphaFlagsKHR to <require> section of 9667 VK_KHR_display extension (internal issue 125) 9668 * Add missing optional="false,true" to 9669 flink:vkGetImageSparseMemoryRequirements 9670 pname:pSparseMemoryRequirementCount parameter (internal issue 132) 9671 * Rename ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT to 9672 ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT 9673 (internal issue 133) 9674 * Fix a handful of broken cross-references in the 9675 <<samplers,Samplers>> chapter (internal issue 134). 9676 * Fix "Input Attachement" GLSL example to use correct syntax (internal 9677 issue 135). 9678 * Update XML schema and documentation to accommodate recently added 9679 attributes for validity. Add some introductory material describing 9680 design choices and pointing to the public repository to file issues. 9681 * Put include of validity in the core spec extensions chapter on its 9682 own line, so that asciidoc is happy. 9683 * Fix vertexOffset language to specify that it is the value added to 9684 the vertex index before indexing into the vertex buffer, not the 9685 base offset within the index buffer. 9686 * Fix error in the description of flink:vkCmdNextSubpass. 9687 9688----------------------------------------------------- 9689 9690February 16, 2016 - Vulkan 1.0 initial public release 9691 9692