1Copyright 2016-2024 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"`VU`" as used below is an abbreviation for "`valid usage statement`", which 13appears frequently in the change log. 14 15----------------------------------------------------- 16 17Change log for January 5, 2024 Vulkan 1.3.275 spec update: 18 19Github Issues 20 21 * Update `VK_EXT_image_compression_control` support query example (public 22 PR 2285). 23 * Fix markup issue in extension refpages (public issue 2288). 24 25Internal Issues 26 27 * Add requirements for WIN32 multithreading behavior and HWND handling to 28 flink:vkCreateWin32SurfaceKHR (internal issue 3402). 29 * Link to the appropriate etext:Vk*FlagBits type to improve "`must: be a 30 bit value`" terminology (internal issue 3728). 31 * Editorial and XML dependency updates for 32 apiext:VK_QCOM_render_pass_transform and 33 apiext:VK_QCOM_rotated_copy_commands (internal MR 6353). 34 * Add missing links to <<resources-image-views-identity-mappings,identity 35 swizzle>> in a few places where the term is used (internal MR 6354). 36 * Remove unreachable VU 07008 in flink:vkCmdEndQuery (internal MR 6356). 37 * Fix XML dependencies for apiext:VK_KHR_maintenance6 (internal MR 6361). 38 * Set XML `noautovalidity` attribute on all pipeline create flags 39 (internal MR 6364). 40 * Remove duplicate flink:vkCmdBindDescriptorSets VUID 06754 (internal MR 41 6364). 42 * Remove shader object VU 08401 which was inconsistent with specification 43 language (internal MR 6368). 44 * Editorial fix to use 'must:' normative term in VUs (internal MR 6370). 45 * Update buffer usage flag VUs to factor out common VUs to a new 46 commonvalidity file, and fix typo in 47 slink:VkDescriptorBufferBindingInfoEXT (internal MR 6371). 48 * Add flink:vkGetPrivateData VU requiring pname:objectHandle to be valid 49 (internal MR 6373). 50 * Remove redundant VkGraphicsPipelineCreateInfo VU 06680 and re-word VU 51 06679 to combine them (internal MR 6376). 52 * Fix field name typos for flink:vkGetDescriptorEXT VUs (internal MR 53 6378). 54 * Set `noautovalidity` XML attribute on some slink:VkCudaLaunchInfoNV 55 parameters (internal MR 6382). 56 57 58----------------------------------------------------- 59 60Change log for December 19, 2023 Vulkan 1.3.274 spec update: 61 62Github Issues 63 64 * Remove incorrect `optional` attribute on 65 slink:VkCudaLaunchInfoNV::pParams and pname:pExtras (public PR 2263). 66 * Require identity swizzle for attachments in slink:VkRenderingInfo 67 dynamic rendering VUs (public issue 2275). 68 * Make slink:VkRenderPassStripeBeginInfoARM::pname:pStripeInfos `const` 69 (public PR 2279). 70 71Internal Issues 72 73 * Add a <<introduction-ratified, Ratification>> section to the 74 introduction, to define "`ratified`" (as used in the extension appendix 75 metadata) in terms useful for developers (internal issues 3472, 3709). 76 * Allow fragment shader invocations to be merged for flat shaded 77 primitives in the <<fragops-shader, Fragment Shading>> section (internal 78 issue 3563). 79 * Add alignment VUs to flink:vkCmdDrawIndirectByteCountEXT (internal issue 80 3674). 81 * Fix etext:VK_*_CREATE_PROTECTED_BIT memory requirements reporting in the 82 <<resources-association, Resource Memory Association>> section (internal 83 issue 3694). 84 * Update common pipeline create info VUs for create flags (internal issue 85 3703). 86 * Fix slink:VkRenderingInfo dynamic rendering VUs for 87 slink:VkRenderingAttachmentInfo::pname:resolveImageView structures 88 (internal issue 3711). 89 * Minor changes to slink:VkGraphicsPipelinCreateInfo VUs to consistently 90 allow pname:pMultisampleState to be optional (internal MR 6312). 91 * Update flink:vkGetDescriptorEXT VUs for YCbCr 92 ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER (internal MR 6318). 93 * Specify alignment requirement VUs for slink:VkSparseMemoryBind 94 pname:resourceOffset and pname:memoryOffset values (internal MR 6323). 95 * Clarify slink:VkDescriptorSetLayoutBinding::pname:stageFlags VU 96 (internal MR 6333). 97 * Fix some slink:VkGraphicsPipelineCreateInfo VUs to read properly without 98 some related extensions enabled in the build (internal MR 6335). 99 * Fix code:OutputTriangles -> code:OutputTrianglesNV in the description of 100 code:PrimitiveIndicesNV (internal MR 6338). 101 * Add capture replay VUs to slink:VkAccelerationStructureCreateInfoKHR to 102 ensure that the acceleration structure and buffer are identical and have 103 the same addresses (internal MR 6351). 104 105New Extensions 106 107 * VK_KHR_maintenance6 108 * Video Encode Extensions 109 ** VK_KHR_video_encode_queue (was provisional KHR) 110 ** VK_KHR_video_encode_h264 (promoted from provisional EXT) 111 ** VK_KHR_video_encode_h265 (promoted from provisional EXT) 112 ** VK_KHR_video_maintenance1 113 * VK_NV_per_stage_descriptor_set 114 115----------------------------------------------------- 116 117Change log for December 8, 2023 Vulkan 1.3.273 spec update: 118 119Github Issues 120 121 * Add missing `bitwidth` attribute for 122 elink:VkPhysicalDeviceSchedulingControlsFlagBitsARM (public issue 2277). 123 124Internal Issues 125 126 * Use the new <<glossary-pipeline-trace-ray, pipeline trace ray>> term to 127 refer to trace ray instructions, instead of the too-specific 128 code:OpTraceRayKHR (internal issue 3284). 129 * Improve description of <<pipelines-multiple, multiple pipeline 130 creation>>, refer to it from each ftext:vkCreate*Pipelines command, and 131 add style guide language to follow this pattern for future multiple 132 creation commands (internal issue 3707). 133 * Add common blit image and copy image VU that copying an image with the 134 same subresource must: be ename:VK_IMAGE_LAYOUT_GENERAL or 135 ename:VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR (internal MR 6143). 136 * Markup improvements and correct use of normative must: for 137 flink:vkGetPhysicalDeviceOpticalFlowImageFormatsNV (internal MR 6315). 138 * Refer to "`shader calls`" in the <<memory-model, Memory Model>> chapter 139 refers to them as such, rather than "`invocation repacks`" (internal MR 140 6316). 141 * Make some flink:vkAcquireImageANDROID parameters `optional` in XML 142 (internal MR 6325). 143 144New Extensions 145 146 * apiext:VK_KHR_calibrated_timestamps 147 * apiext:VK_KHR_vertex_attribute_divisor 148 149----------------------------------------------------- 150 151Change log for December 1, 2023 Vulkan 1.3.272 spec update: 152 153Internal Issues 154 155 * Add common trace rays VU for dynamic stack size (internal issue 3687). 156 * Add shading rate function to apiext:VK_HUAWEI_cluster_culling_shader 157 (internal MR 6308). 158 * Consolidate WSI VUs (internal MR 6165). 159 * Relax VkImageCreateInfo VU 02397 to allow slink:VkExternalFormatANDROID 160 images to include input attachment images (internal MR 6196). 161 * Clarify description of promotion in the 162 <<extendingvulkan-extensions-extensiondependencies, Extension 163 Dependencies>> section, and of the XML `promotedto` attribute in the 164 registry schema document, to draw attention to allowed differences 165 between an extension and what it is promoted to (internal MR 6301). 166 * Remove duplicate common draw validity VU 07934 (internal MR 6303). 167 * Update VU for VkSubpassDescription2 to cover sample count constraints 168 for apiext:VK_NV_framebuffer_mixed_samples as well as 169 apiext:VK_AMD_mixed_attachment_samples (internal MR 6306). 170 171New Extensions 172 173 * apiext:VK_EXT_layer_settings 174 * apiext:VK_ARM_render_pass_striped 175 176----------------------------------------------------- 177 178Change log for November 17, 2023 Vulkan 1.3.271 spec update: 179 180Github Issues 181 182 * Add zero stride VU for flink:vkGetQueryPoolResults and 183 flink:vkCmdCopyQueryPoolResults (public issue 2265). 184 * Move pname:timingCount to flink:vkGetLatencyMarkerInfoNV for 185 apiext:VK_NV_low_latency2 (public issue 2269). 186 187Internal Issues 188 189 * Allow vkCmdBeginTransformFeedbackEXT to be called without an active 190 graphics pipeline bound when using shader objects (internal issue 2785). 191 * Autogenerate SPIR-V extension dependencies for extension appendices, and 192 remove explicit dependencies now (or already) generated by the scripts 193 (internal issue 3678). 194 * Consolidate synchronization VUs (internal MR 6164). 195 * Rewrite some spec language for apiext:VK_NV_cuda_kernel_launch to be 196 internally consistent and follow style guidelines (internal MR 6234). 197 * Fix names of apiext:VK_NV_cuda_kernnel_launch enums for use with 198 apiext:VK_EXT_debug_report (internal MR 6235). 199 * Fix common VUs for slink:VkDeviceImageSubresourceInfoKHR to insert 200 correct image parameter name (internal MR 6264). 201 * Document some missing apiext:VK_EXT_multi_draw interactions in the 202 extension appendix (internal MR 6276). 203 * Clarify descriptions of etext:*_MICROMAP_BIT_EXT pipeline flags 204 (internal MR 6277). 205 * Make pname:deviceRenderAreaCount VU language consistent (internal MR 206 6288). 207 * Make slink:VkCuModuleCreateInfoNVX::pname:dataSize `optional` in XML 208 (internal MR 6291). 209 * Add `not` XML `limittype` attribute value for features that are 210 supported when the capability value is false (internal MR 6292). 211 * Mark apiext:VK_EXT_nested_command_buffer as ratified (internal MR 6293). 212 * Add commonvalidity file for query result VUs (internal MR 6295). 213 * Autogenerate "`API Interactions`" section in extension appendices from 214 XML (internal MR 6297). 215 216 217----------------------------------------------------- 218 219Change log for November 9, 2023 Vulkan 1.3.270 spec update: 220 221Github Issues 222 223 * Remove redundant reference to ename:VK_PIPELINE_STAGE_2_HOST_BIT in 224 flink:vkCmdWaitEvents2 VU 03842 (public issue 1986). 225 * Fix typo in <<limits-computeCapabilityMajor>> description (as described 226 in public PR 2260). 227 * Add apiext:VK_KHR_timeline_semaphore dependency for 228 apiext:VK_NV_low_latency2 (public PR 2264). 229 * Restrict cooperative matrix support to compute stages and subgroup scope 230 in slink:VkPhysicalDeviceCooperativeMatrixPropertiesKHR and 231 slink:VkCooperativeMatrixPropertiesKHR (public SPIRV-Registry issue 232 210). 233 * Add additional Vulkan-Hpp headers to the trivial compile test used in CI 234 (public Vulkan-Hpp issue 1721). 235 236Internal Issues 237 238 * Update common draw VU 06179 to only apply when the 239 pname:dynamicRenderingUnusedAttachments feature is not enabled. 240 (internal issue 3645). 241 * Consolidate VUs in many files (internal MRs 6151, 6152, 6158, 6174). 242 * Add slink:VkDescriptorPoolCreateInfo VU requiring 243 slink:VkDescriptorPoolInlineUniformBlockCreateInfo in some situations 244 (internal MR 6186). 245 * Remove redundant apiext:VK_KHR_maintenance5 VUs constraining 246 pname:layerCount in flink:vkCmdCopyMemoryToImageIndirectNV and common 247 image copy / blit / resolve VUs (internal MR 6211). 248 * Clean up Issues section of apiext:VK_KHR_display appendix (internal MR 249 6219). 250 * Remove redundant flink:vkCmdBindPipeline VU 06653 (internal MR 6226). 251 * Update description of `EXT` extensions in style guide (internal MR 252 6236). 253 * Revert removal of flink:vkCmdSetLogicOpEnableEXT VU 07366 (internal MR 254 6240). 255 * Fix typo in <<primsrast-lines-basic, Basic Line Segment Rasterization>> 256 (internal MR 6244). 257 * Add missing `const` to 258 sname:VkDirectDriverLoadingListLUNARG::pname:pNext in `vk.xml` (internal 259 MR 6245). 260 * Add missing slink:VkDescriptorImageInfo VUs (internal MR 6248). 261 * Fix AMD/NV mixed-sample extension VUs that were mistakenly unified in 262 `renderpass.adoc` (internal MR 6249). 263 * Fix typos in apiext:VK_EXT_opacity_micromap appendix (internal MR 6251). 264 * Add guarantees for implementation synchronization in 265 flink:vkSetLatencyMarkerNV and flink:vkSetLatencySleepModeNV (internal 266 MR 6254). 267 * Add texel buffer limits for flink:vkGetDescriptorEXT (internal MR 6255). 268 * Remove redundant slink:VkDescriptorSetAllocateInfo VU 08010 (internal MR 269 6258). 270 * Clean up unreferenced capabilities blocks in 271 `profiles/VP_KHR_roadmap_2022.json` (internal MR 6261). 272 * Remove duplicate slink:VkGraphicsPipelineCreateInfo VU 09041 (internal 273 MR 6266). 274 * Clarify common acceleration structure build VUs for pname:firstVertex 275 and pname:primitiveCount (internal MR 6273). 276 277New Extensions 278 279 * apiext:VK_IMG_relaxed_line_rasterization 280 281----------------------------------------------------- 282 283Change log for October 20, 2023 Vulkan 1.3.269 spec update: 284 285Github Issues 286 287 * Add and correct a couple of `optional` attributes in the XML (public 288 pull request 2252). 289 290Internal Issues 291 292 * Add flink:vkGetQueryPoolResults and flink:vkCmdCopyQueryPoolResults VUs 293 requiring that queries be initialized (internal issue 3638). 294 * Harmonize shader object state VUs with spec language in common draw, 295 common draw vertex binding, slink:VkShaderCreateInfoEXT, and the 296 <<shaders-objects-state, Setting State>> section (internal MR 6128). 297 * Consolidate VUs in many files (internal MRs 6136, 6137, 6140, 6154, 298 6155, 6157). 299 * Fix common blit image, copy image, and resolve image VUs for 300 interactions with ename:VK_REMAINING_ARRAY_LAYERS when built without 301 apiext:VK_KHR_maintenance5 (internal MR 6204). 302 * Remove slink:VkClearAttachment VU 00021 for "`validating`" a union type 303 (internal MR 6222). 304 * Disallow image creation with 305 ename:VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT and any 306 etext:VK_IMAGE_CREATE_SPARSE_*_BIT flags (internal MR 6223). 307 * Combine slink:VkGraphicsPipelineCreateInfo VUs 06575 and 06603 (internal 308 MR 6225). 309 * Markup fixes for apiext:VK_NV_low_latency2 (internal MR 6228). 310 * Add a VU for the 311 slink:VkDecompressMemoryRegionNV::pname:decompressedSize limit, and fix 312 language describing parameters in slink:VkCopyMemoryIndirectCommandNV 313 (internal MR 6230). 314 315New Extensions 316 317 * apiext:VK_ARM_scheduling_controls 318 * apiext:VK_NV_cuda_kernel_launch 319 320----------------------------------------------------- 321 322Change log for October 13, 2023 Vulkan 1.3.268 spec update: 323 324Github Issues 325 326 * Restrict flink:vkCmdSetEvent2 ptext:*stageMask parameters to not include 327 ename:VK_PIPELINE_STAGE_2_HOST_BIT (public issue 1996). 328 * Fix <<formats-non-packed, byte mapping table>> for 329 ename:VK_FORMAT_A8_UNORM_KHR (public issue 2234). 330 * Assign VUIDs to new VUs that were overlooked in the previous spec update 331 (public issue 2244). 332 * Add a spec build test and refactor Makefile to allow using a different 333 repository root directory path, for use with the tests (public PR 2248). 334 335Internal Issues 336 337 * Add VUs to slink:VkCopyMemoryToImageInfoEXT and 338 slink:VkCopyImageToMemoryInfoEXT requiring zero row-length / 339 image-height when doing a host copy with 340 ename:VK_HOST_IMAGE_COPY_MEMCPY_EXT (internal issue 3619). 341 * Clarify that fragment shading rate attachments cannot be cleared in VU 342 for slink:VkRenderPassCreateInfo2 and language for 343 slink:VkAttachmentDescription2KHR (internal issue 3634). 344 * Add VUs to slink:VkSparseImageMemoryBind requiring a non-zero extent 345 (internal issue 3635). 346 * Consolidate VUs in many files (internal MRs 6138, 6141. 6142, 6147, 347 6149, 6153, 6161, 6162, 6167, 6170, 6194, and 6197). 348 * Use title case consistently for chapter and section titles, and add it 349 to the style guide (internal MR 6201). 350 351----------------------------------------------------- 352 353Change log for October 6, 2023 Vulkan 1.3.267 spec update: 354 355Internal Issues 356 357 * Detect old wording of boilerplate pname:pNext description in CI 358 (internal issue 2186). 359 * Clarify ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT with regard 360 to queue submission (internal issue 3627). 361 * Update apiext:VK_NV_low_latency2 pname:pInfo pointers to be `const` 362 (internal issue 3637). 363 * Add slink:VkDescriptorSetLayoutBindingFlagsCreateInfo and 364 slink:VkDescriptorSetAllocateInfo VUs for 365 ename:VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT (internal MR 366 6127). 367 * Consolidate VUs in `access_mask_2_common.adoc` (internal MR 6166). 368 * Fix 369 slink:VkGraphicsPipelineCreateInfo::pname:pColorBlendState->attachmentCount 370 VU to apply only when the blend state is not dynamic (internal MR 6171). 371 * Add missing object types to the <<debugging-object-types, VkObjectType 372 and Vulkan Handle Relationship>> table (internal MR 6175). 373 * Fix typo ("`Non-private`" -> "`Private`") in the description of 374 <<memory-model-non-private, private memory operations obeying program 375 order>> (internal MR 6176). 376 * Add reflow test for list continuation in VUs (internal MR 6177). 377 * Correct type of flink:vkQueueNotifyOutOfBandNV::pname:pQueueTypeInfo 378 (internal MR 6179). 379 * Add XML `len` attribute for slink:VkFrameBoundaryEXT::pname:pTag order>> 380 (internal MR 6180). 381 * Consolidate VUs for apiext:VK_ANDROID_external_format_resolve (internal 382 MR 6183). 383 * Upstream Vulkan SC 1.0.13 changes to this repository (internal vulkansc 384 issue 179). 385 386New Extensions 387 388 * apiext:VK_EXT_nested_command_buffer 389 * apiext:VK_NV_extended_sparse_address_space 390 391 392----------------------------------------------------- 393 394Change log for September 29, 2023 Vulkan 1.3.266 spec update: 395 396Github Issues 397 398 * Fix slink:VkGraphicsPipelineCreateInfo VU to say a valid pipeline layout 399 is always needed without a graphics pipeline library (public issue 400 2168). 401 * Add missing "`not`" to <<spirvenv-module-validation-standalone, 402 Standalone SPIR-V Validation>> VU 04917 (public PR 2229). 403 * Add riscv64 64-bit platform to `vk_platform.h` (public PR 2238). 404 * Add driver ID for AGXV (Asahi) (public PR 2238). 405 406Internal Issues 407 408 * Fix common draw dynamic state VUs to check for pname:stencilTestEnable 409 and pname:depthBoundsTestEnable (internal issue 3486) 410 * Fix stride passed to flink:vkGetQueryPoolResults in example code in 411 apiext:VK_KHR_performance_query appendix (internal MR 6148). 412 413New Extensions 414 415 * apiext:VK_ANDROID_external_format_resolve 416 * apiext:VK_NV_low_latency2 417 418----------------------------------------------------- 419 420Change log for September 22, 2023 Vulkan 1.3.265 spec update: 421 422Github Issues 423 424 * Remove misplaced 425 ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR 426 description from elink:VkPipelineStageFlagBits context (public PR 2210). 427 * Swap NV pipeline stage with promoted KHR stage in XML `syncequivalent` 428 tag (public issue 2211). 429 * Remove redundant slink:VkPipelineShaderStageCreateInfo pname:stage VUs 430 (public issue 2222). 431 * Remove duplicate definition in apiext:VK_AMD_shader_enqueue proposal 432 document (public issue 2225). 433 434Internal Issues 435 436 * Add a common copy image VU to require compressed image-to-image copies 437 to have formats with matching texel block extents (internal issue 3610). 438 * Add `page` field to `validusage.json` for eventual use with Antora 439 (internal issue 3617). 440 * Add missing VUs to flink:vkGetCalibratedTimestampsEXT (internal MR 441 5974). 442 * Attempt to clarify apiext:VK_KHR_fragment_shader_barycentric 443 pname:triStripVertexOrderIndependentOfProvokingVertex description 444 (internal MR 6048). 445 * Add a slink:VkGraphicsPipelineCreateInfo VU restricting 446 ename:VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT 447 (internal MR 6119). 448 * Reword several places to clarify that code:PrimitiveId is reset to `0` 449 between each draw in a multi-draw command (internal issue 3564 ). 450 * Consolidate and simplify VUs in the <<copies, Copy Commands>> chapter 451 (internal MR 6124). 452 * Remove inconsistent `KHR` suffix in 453 slink:VkDeviceImageMemoryRequirements VUIDs (internal MR 6124). 454 455 456----------------------------------------------------- 457 458Change log for September 8, 2023 Vulkan 1.3.264 spec update: 459 460Github Issues 461 462 * Create Roadmap Feedback issue template (github PR 2207). 463 464Internal Issues 465 466 * Fix ename:VK_GEOMETRY_OPAQUE_BIT_KHR flag reference for 467 <<ray-opacity-micromap, Ray Opacity Micromap>> (internal issue 3337). 468 * Clarify slink:VkImageMemoryBarrier color format VU (internal issue 469 3606). 470 * Collapse apiext:VK_EXT_shader_tile_image pipeline barrier common VUs 471 08718 and 06191 (internal MR 6065). 472 * Use consistent language to describe multi-planar aspect masks for some 473 existing VUs (internal MR 6072). 474 * Consolidate VUs in the <<commandbuffers, Command Buffers>> chapter 475 (internal MR 6114). 476 477New Extensions 478 479 * apiext:VK_EXT_frame_boundary 480 * apiext:VK_MSFT_layered_driver 481 482----------------------------------------------------- 483 484Change log for September 2, 2023 Vulkan 1.3.263 spec update: 485 486Github Issues 487 488 * Clarify H.264 / H.265 level indicator values by reference to the ITU-T 489 specifications (public issue 2193). 490 * Explicitly state that VkDeviceOrHostAddressConstKHR is also ignored 491 (public PR 2205). 492 * Fix parameter typo "`coordinates`" and correct markup (public PR 2206). 493 * Cleanup slink:VkGraphicspipelineCreateInfo VUs for code:PointSize in the 494 context of apiext:VK_KHR_maintenance5 (public Vulkan-ValidationLayers 495 issue 6382). 496 497Internal Issues 498 499 * Clarifications for <<framebuffer-dsb, Dual-Source Blending>> in common 500 draw VUs (internal issue 3549). 501 * Ensure slink:VkHostImageLayoutTransitionInfoEXT::pname:oldLayout is the 502 current layout (internal issue 3580). 503 * Link to promoted-from extension proposal docs in extension appendices if 504 no proposal exists for the extension itself (internal issue 3601). 505 * Note that pname:storageInputOutput16 is needed for 16-bit vertex input 506 in the <<fxvertex-attrib-location>> and <<interfaces-iointerfaces-user, 507 User-defined Variable Interface>> sections (internal MR 5989). 508 * Provisional video encode API updates (internal MR 6010). 509 * Move requirement that elements of 510 slink:VkPresentInfoKHR::pname:pSwapchains must be unique to a VU 511 (internal MR 6054). 512 * Fix and add missing shader object VUs in common draw VUs and the 513 <<shaders-objects-state, Setting State>> section (internal MR 6077). 514 * Define slink:VkPipelineColorBlendStateCreateInfo::pname:attachmentCount 515 to ignore explicit, not implicit state settings in the context of 516 apiext:VK_EXT_extended_dynamic_state3 (internal MR 6079). 517 * Fix duplicate VUIDs for apiext:VK_EXT_host_image_copy (internal MR 518 6100). 519 * Use language for 520 slink:VkPipelineColorBlendStateCreateInfo::pname:pAttachments consistent 521 with related parts of the specification (internal MR 6103). 522 523New Extensions 524 525 * apiext:VK_NV_descriptor_pool_overallocation 526 527----------------------------------------------------- 528 529Change log for August 25, 2023 Vulkan 1.3.262 spec update: 530 531Github Issues 532 533 * Remove ename:VK_ACCESS_2_UNIFORM_READ_BIT from 534 ename:VK_ACCESS_SHADER_READ_BIT (public issue 2169). 535 * Fix typo in description of slink:VkPerformanceCounterResultKHR (public 536 issue 2186). 537 * Fix missing vkQueue* row in command properties tables (public PR 2189). 538 * Specify that some <<spirvenv-module-validation-runtime, Runtime SPIR-V 539 Validation>> VUs apply only to compute shaders (public PR 2199). 540 * Misc. markup fixes (public pull request 2200). 541 * Specify when compute pipeline metadata must be saved in language 542 following slink:VkPipelineShaderStageModuleIdentifierCreateInfoEXT 543 (https://github.com/HansKristian-Work/vkd3d-proton/pull/1639, internal 544 MR 6058). 545 546Internal Issues 547 548 * Fix MSRTSS + dynamic sample count + single sampling interactions in 549 common draw VUs (internal issue 3474). 550 * Fixes to block processing and attribute handling when generating 551 `validusage.json` (internal issue 3576). 552 * Generate implicit `-parent` VUs for more distant ancestor relationships 553 if the immediate parent type is not present (internal issue 3582). 554 * Fix ename:VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT interaction with 555 apiext:VK_EXT_extended_dynamic_state3 in VUs for 556 slink:VkGraphicsPipelineCreateInfo (internal issue 3587). 557 * Clarify that synchronization commands do not execute pipeline stages in 558 the <<synchronization-pipeline-stages, Pipeline Stages>> section 559 (internal issue 3592). 560 * VU fixes for apiext:VK_KHR_maintenance5 (internal MR 6032). 561 * Update apiext:VK_KHR_dynamic_rendering proposal document to remove a 562 sentence that should not have been there (internal MR 6047). 563 * Add ray tracing VUs for core synchronization access flags to match the 564 64-bit versions (internal MR 6047). 565 * Add a CI test to check for include:: paths not starting with a 566 recognized path attribute (internal MR 6063). 567 * Make slink:VkBufferCreateInfo::pname:usage `noautovalidity` in XML and 568 allow for elink:VkBufferUsageFlags2KHR flags (internal MR 6066). 569 * Expand CI test checking for missing asciidoctor attributes to the 570 refpage build, catching additional cases (internal MR 6071). 571 * Remove explicit VU for slink:VkImageFormatProperties2 requiring the 572 <<fetaures-hostImageCopy, pname:hostImageCopy>> feature to be enabled if 573 slink:VkHostImageCopyDevicePerformanceQueryEXT is included in a 574 pname:pNext chain (internal MR 6074). 575 576New Extensions 577 578 * apiext:VK_QCOM_filter_cubic_clamp 579 * apiext:VK_QCOM_filter_cubic_weights 580 * apiext:VK_QCOM_image_processing2 581 * apiext:VK_QCOM_ycbcr_degamma 582 583----------------------------------------------------- 584 585Change log for August 4, 2023 Vulkan 1.3.261 spec update: 586 587Github Issues 588 589 * Disallow mixing multi-present-mode swapchains in slink:VkPresentInfoKHR 590 (public issue 2151). 591 * Clarify mapping between wait semaphores and fences for 592 slink:VkSwapchainPresentFenceInfoEXT (public pull request 2152). 593 * Fix incorrect link to `GLSL_EXT_shader_tile_image` extension 594 specification (public pull request 2178). 595 * Fix formatting issues in apiext:VK_KHR_maintenance5 (public pull request 596 2180). 597 * Fix bad explanation of 598 slink:VkBufferUsageFlags2CreateInfoKHR::pname:usage (public pull request 599 2182). 600 * Fix markup to improve short descriptions for some 601 apiext:VK_NV_device_generated_commands_compute command and structure 602 refpages (public issue 2184). 603 * Fix VUs for flink:vkGetQueryPoolResults and 604 flink:vkCmdCopyQueryPoolResults to disallow 605 ename:VK_QUERY_RESULT_WITH_STATUS_BIT_KHR for performance queries 606 (public issue 2185). 607 608Internal Issues 609 610 * Add some VUs for bind buffer and image commands to require that buffers 611 created with the 612 ename:VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT flag 613 must only be bound to device memory that was likewise allocated 614 (internal merge request 5993). 615 * Add slink:VkGraphicsPipelineCreateInfo and common draw vertex binding 616 VUs for 64-bit input component count matching (internal merge request 617 6008). 618 * Remove duplicate mesh shading apiext:VK_EXT_shader_object VUs (internal 619 merge request 6031). 620 * Add missing apiext:SPV_AMDX_shader_enqueue <spirvextension> tag 621 (internal merge request 6043). 622 * Add CI check to `xml_consistency.py` for `_RESERVED_` enums in 623 non-disabled extensions (internal merge request 6044). 624 * Consolidate VUs in the <<clears, Clear Commands>> chapter (internal 625 merge request 6043). 626 * Fix suffixes of incorrectly named flags for apiext:VK_KHR_maintenance5, 627 and update XML extension dependencies for those flags (internal merge 628 request 6050). 629 * Add missing <<features-cooperativeMatrix, cooperativeMatrix>> 630 requirement for apiext:VK_KHR_cooperative_matrix (internal merge request 631 6051). 632 633----------------------------------------------------- 634 635Change log for July 28, 2023 Vulkan 1.3.260 spec update: 636 637Internal Issues 638 639 * Refactor `parse_dependency.py:dependencyLanguage()` into a more useful 640 form for downstream components such as the validation layers (internal 641 issue 3555). 642 * Add CI check to `xml_consistency.py` for API names added by extensions 643 which have suffix inconsistencies (internal issue 3568). 644 * Add notes to flink:vkCreateAccelerationStructureKHR and 645 flink:vkCreateMicromapEXT about data capture/replay (internal merge 646 request 6015). 647 * Add missing explicit common parent VUs for flink:vkCreateImageView and 648 flink:vkGetMicromapBuildSizesEXT (internal merge request 6016). 649 * Add VU to slink:VkCommandBufferBeginInfo requiring the 650 pname:commandBuffer support graphics operations (internal merge request 651 6025). 652 * Unify unavailable query VUs for flink:vkCmdWriteTimestamp and 653 flink:vkCmdWriteTimestamp2 (internal merge request 6027). 654 * Make slink:VkGraphicsPipelineLibraryCreateInfoEXT::pname:pNext a `const` 655 pointer (internal merge request 6028). 656 657New Extensions 658 659 * apiext:VK_KHR_maintenance5 660 * apiext:VK_AMDX_shader_enqueue 661 662----------------------------------------------------- 663 664Change log for July 21, 2023 Vulkan 1.3.259 spec update: 665 666Internal Issues 667 668 * Remove dangling reference to nonexistent 669 `StdVideoH265ShortTermRefPicsSps` in `video.xml` (internal issue 3565). 670 * Rename ftext:vkCmdUpdatePipelineIndirectBuffer to 671 flink:vkCmdUpdatePipelineIndirectBufferNV in the just-released 672 apiext:VK_NV_device_generated_commands_compute extension (internal issue 673 3568). 674 * Add a CI check for undefined attributes in the spec build (internal 675 issue 3567). 676 677----------------------------------------------------- 678 679Change log for July 21, 2023 Vulkan 1.3.258 spec update: 680 681Github Issues 682 683 * Add a note explaining subgroup vs. dynamically uniform to the 684 <<shaders-scope-device, Device>> section (public pull request 2118). 685 * Fix video std headers to respect VK_NO_STDINT_H, 686 involving minor changes to dependencies in `video.xml` as well as the 687 header generator script (public issue 2155). 688 689Internal Issues 690 691 * Add spec language and VUs to allow applications to set various members 692 of slink:VkGraphicsPipelineCreateInfo to be NULL if all the members of 693 the structs they point to are set as dynamic (internal issue 3263). 694 * Ban attachment aliasing and color masks with RGB9E5 format. Changes 695 affect common draw VUs, flink:vkCmdSetColorWriteMaskEXT, 696 slink:VkGraphicsPipelineCreateInfo, slink:VkRenderingInfo, 697 flink:vkCmdBeginRenderPass, and flink:vkCmdBeginRenderPass2 (internal 698 issues 3338, 3538). 699 * Fix typo in structure name for slink:VkSubpassDescription2 VU 06251 700 (internal issue 3483). 701 * Condense buffer memory barrier VUs, pipeline VUs, and a few 702 miscellaneous VUs now that embedded asciidoc conditional markup is 703 allowed within a VU statement (internal issue 3543). 704 * Use explicit structure member initializer syntax instead of comments 705 with the member name consistently in code samples (internal issue 3550). 706 * Fix misuse of etext:VK_API_VERSION* in XML `<spirvcapabilities>` tags, 707 and add a CI test to prevent recurrence (internal issue 3559). 708 * Add VU for slink:VkDescriptorSetLayout sets used by 709 flink:vkCmdSetDescriptorBufferOffsetsEXT (internal issue 3560). 710 * Explicitly say that flink:vkCreateAccelerationStructure does not write 711 to the buffers in the introduction to the <<resources, Resource 712 Creation>> chapter and for flink:vkCreateAccelerationStructureNV, 713 flink:vkCreateAccelerationStructureKHR, and flink:vkCreateMicromapEXT 714 (internal merge request 5914). 715 * Add a NOTE regarding ename:VK_IMAGE_LAYOUT_UNDEFINED to the 716 <<synchronization-image-layout-transitions, Image Layout Transitions>> 717 section (internal merge request 5962). 718 * Fix interpretation of variable descriptor count zero in 719 slink:VkDescriptorSetVariableDescriptorCountLayoutSupport (internal 720 merge request 5983). 721 * Fix slink:VkRenderPassBeginInfo VU to include a clause for 722 slink:VkMultisampledRenderToSingleSampledInfoEXT (internal merge request 723 5996). 724 * Add HLSL spirv-intrinsics mapping for 725 apiext:VK_NV_ray_tracing_invocation_reorder appendix and for the 726 `VK_KHR_ray_tracing_position_fetch` proposal document (internal merge 727 requests 6002, 6005). 728 729New Extensions 730 731 * apiext:VK_EXT_host_image_copy 732 * apiext:VK_NV_device_generated_commands_compute 733 734----------------------------------------------------- 735 736Change log for July 7, 2023 Vulkan 1.3.257 spec update: 737 738Github Issues 739 740 * Clarify flink:vkGetQueryPoolResults with 741 ename:VK_QUERY_RESULT_WITH_AVAILABILITY_BIT and interactions with 742 ename:VK_QUERY_RESULT_64_BIT affecting size of the returned values 743 (public issue 1086). 744 * Fix link markup in one of the proposal documents (public merge request 745 2160). 746 747Internal Issues 748 749 * Attempt to tidy up feedback loop guarantees in common draw VUs, 750 elink:VkPipelineDepthStencilStateCreateFlagBits, 751 elink:VkPipelineColorBlendStateCreateFlagBits, 752 slink:VkRenderingAttachmentInfo, and by reference to the new 753 <<renderpass-load-operations, Render Pass Load Operations>>, 754 <<renderpass-store-operations, Render Pass Store Operations>>, and 755 <<renderpass-resolve-operations, Render Pass Multisample Resolve 756 Operations>> sections (internal issues 3375, 3403, 3517). 757 * Modify boilerplate language for pname:sType structure members to refer 758 to them as elink:VkStructureType values (internal issue 3493). 759 * Describe that the <<interfaces-iointerfaces-builtin, mesh shader output 760 interface>> can have two built-in interface blocks (internal issue 761 3509). 762 * Add slink:VkDeviceGroupRenderPassBeginInfo and slink:VkRenderingInfo VUs 763 for zero-sized pname:renderArea (internal issue 3535). 764 * Generate a warning comment for preprocessor guard definitions in the 765 generated C headers. This will show up in some IDEs and may help prevent 766 e.g. use of `VK_VERSION_1_3` as a parameter to API calls (internal issue 767 3537). 768 * Remove check in reflow.py that did not allow embedded conditionals in VU 769 statement markup (internal issue 3545). 770 * Reduce duplication of spec language in the <<Cooperative Matrices>> 771 section, where the apiext:VK_KHR_cooperative_matrix interfaces are 772 similar to, but not promoted from the apiext:VK_NV_cooperative_matrix 773 interfaces (internal issue 3547). 774 * Fix shader tile image access for depth/stencil images in 775 elink:VkAccessFlagBits2 and elink:VkAccessFlagsBits (internal merge 776 request 5912) 777 * Fix missing VUs for apiext:VK_EXT_depth_bias_control (internal merge 778 request 5967). 779 * Update slink:VkPipelineShaderStageCreateInfo VU 02756 with task and mesh 780 shader interactions (internal merge request 5977). 781 * Add test cases to CI for nested lists and math blocks in VU statements, 782 which are now allowed (internal merge request 5984). 783 * Remove code:CrossWorkgroup from the allowed storage classes in 784 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 785 (internal merge request 5987). 786 * Add missing `<spirvextension>` XML tags for 787 apiext:VK_ARM_shader_core_builtins (internal merge request 5988). 788 * Add more CI checks for preferred orthography and fix problems identified 789 by them (internal merge request 5991). 790 791----------------------------------------------------- 792 793Change log for June 30, 2023 Vulkan 1.3.256 spec update: 794 795GitHub Issues 796 797 * Fix minor typos (public pull requests 2154 and 2157). 798 * Fix XML `<format>` metadata for etext:VK_FORMAT_R64G64* and 799 ename:VK_FORMAT_BC*_SNORM_BLOCK (public pull request 2156). 800 801Internal Issues 802 803 * Specify fragment stage when accessing color attachment via shader tile 804 image reads for ename:VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT and 805 ename:VK_ACCESS_COLOR_ATTACHMENT_READ_BIT (internal merge request 5918). 806 * Clarify in which stages subgroup control flags 807 ename:VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT 808 and ename:VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT, as 809 well as their apiext:VK_EXT_shader_object variants, are allowed to be 810 set (internal issue 3529). 811 * Fix typo to pname:depth in flink:vkCmdBindInvocationMaskHUAWEI VUID 812 04983 (internal merge request 5958). 813 * Rename ename:VK_PIPELINE_STAGE_2_SUBPASS_SHADING_HUAWEI to 814 ename:VK_PIPELINE_STAGE_2_SUBPASS_SHADER_HUAWEI (internal merge request 815 5959). 816 * Modify the VU extraction script to correctly handle content that is not 817 plain text, such as nested bullets or blocks (internal merge request 818 5964). 819 * Add a NOTE to the <<pipelines-cache-header, Pipeline Cache Header>> 820 section and move one related VU statement. Fix handling of queue types 821 with dependencies in generator scripts (internal merge request 5965). 822 * Remove explicit `optional="false"` syntax from the XML schema for 823 command `param` and structure `member` tags (internal merge request 824 5970). 825 * Refactor README.adoc to move Vulkan and VulkanSC-specific language into 826 READMEVK.adoc and READMESC.adoc, respectively (internal merge request 827 5971). 828 * Update registry schema document with a current example of `externsync` 829 for arrays (internal merge request 5975). 830 831----------------------------------------------------- 832 833Change log for June 23, 2023 Vulkan 1.3.255 spec update: 834 835GitHub Issues 836 837 * Fix XML `<format>` metadata for ename:VK_FORMAT_B10G11R11_UFLOAT_PACK32 838 and ename:VK_FORMAT_B5G5R5A1_UNORM_PACK16 (public pull requests 2145, 839 2147). 840 841Internal Issues 842 843 * Only extract VU statements for the currently built specification, 844 allowing placing conditional markup inside VU statements and the 845 simplification or elimination of many VUs that previously had to be 846 replicated for extension-dependent behavior (internal issue 3387). 847 * Add missing Description section to the 848 apiext:VK_EXT_swapchain_colorspace extension appendix (internal issue 849 3463). 850 * Add VU to disable ftext:vkCmdBeginQuery* with micromap queries (internal 851 issue 3511). 852 * Add apiext:VK_EXT_calibrated_timestamps proposal document, and update 853 some of the specification language and notes for 854 flink:vkCmdWriteTimestamp2KHR and flink:vkCmdWriteTimestamp (internal 855 issue 3521). 856 857New Extensions 858 859 * apiext:VK_KHR_cooperative_matrix 860 861----------------------------------------------------- 862 863Change log for June 16, 2023 Vulkan 1.3.254 spec update: 864 865GitHub Issues 866 867 * Clarify discard behavior of dynamic rendering with unused attachments 868 (public issue 2125). 869 870Internal Issues 871 872 * Fix typos in execution modes for fragment depth and stencil writes in 873 the <<fragops, Fragment Operations>> chapter (internal issue 3519). 874 * Add slink:VkDescriptorAddressInfo VUs disallowing descriptors with zero 875 range unless pname:nullDescriptor is enabled (internal merge request 876 5929). 877 * Add asciidoctor conditional mismatch check to spec build (internal merge 878 request 5948). 879 * Remove unused `start` and `end` attributes from `enum` tags in the 880 registry documentation and schema (internal merge request 5951). 881 * Clarify flink:vkEndCommandBuffer error behavior (internal vulkansc issue 882 184). 883 884New Extensions 885 886 * apiext:VK_EXT_depth_bias_control 887 * apiext:VK_QNX_external_memory_screen_buffer 888 889----------------------------------------------------- 890 891Change log for June 9, 2023 Vulkan 1.3.253 spec update: 892 893GitHub Issues 894 895 * Require the pname:accelerationStructure feature for acceleration 896 structure commands (public issue 2134). 897 * Fix slink:VkAccelerationStructureCreateInfoKHR::pname:flags typo to 898 pname:createFlags (public pull request 2140). 899 900Internal Issues 901 902 * Various fixes to the provisional video encode APIs for rate control, 903 capabilities, and other improvements (internal issues 2213, 3013, 3137, 904 3138, 3139, 3386, 3440). 905 * Add XML representation of pipeline stage ordering relationships and use 906 it to generate markup artifacts including stage flag definitions, 907 ordering, and the <<synchronization-pipeline-stages-supported, Supported 908 pipeline stage flags>> table (internal issue 3260). 909 * Clarify <<vkGetPhysicalDeviceVideoFormatPropertiesKHR, video format 910 query interactions>> by reference to a new 911 <<format-feature-dependent-usage-flags, Format Feature Dependent Usage 912 Flags>> section (internal issue 3491). 913 * Add slink:VkGraphicsPipelineCreateInfo and common draw vertex binding 914 VUs for 64-bit input components (internal merge request 5869). 915 * Improve slink:VkImageViewCreateInfo VUs for 916 apiext:VK_NV_linear_color_attachment (internal merge request 5884). 917 * Update precision for code:normalize() instruction in the <<Precision of 918 GLSL.std.450 Instructions>> table (internal merge request 5923). 919 920 921----------------------------------------------------- 922 923Change log for June 1, 2023 Vulkan 1.3.252 spec update: 924 925Internal Issues 926 927 * Merge Vulkan SC build and support scripts into Vulkan repository. This 928 will ease keeping the two repositories closely synchronized (internal 929 merge request 5930). 930 * Update precision for code:degrees() and code:radians() instructions 931 in the <<Precision of GLSL.std.450 Instructions>> table 932 (internal merge request 5922). 933 * Fix definition of code:ulp() in the 934 <<spirvenv-op-prec, Precision of Individual Operations>> 935 section to limit the definition to finite numbers 936 (internal merge request 5924). 937 * Add view mask VU to slink:VkFramebufferCreateInfo for 938 apiext:VK_KHR_fragment_shading_rate (internal merge request 5932). 939 940New Extensions 941 942 * apiext:VK_EXT_external_memory_acquire_unmodified 943 944----------------------------------------------------- 945 946Change log for May 28, 2023 Vulkan 1.3.251 spec update: 947 948GitHub Issues: 949 950 * VUs for graphics pipelines have been reworked regarding state subsets, 951 along with the sections describing those state subsets. VUs that 952 previously ambiguously stated "`If the pipeline is _created with_ <state 953 subset>...`" now instead state "`If the pipeline _requires_ <state 954 subset>...`" Those VUs link to the state subset descriptions, which 955 previously did not actually indicate anything about when they were 956 required, which was instead left to the section on complete subsets. The 957 subset sections now document their own independent requirements for when 958 they are needed, so that the VUs explicitly point to relevant text. 959 Additional VUs have also been added to mirror these updated sections, 960 uncovering a handful of incorrect edge cases and clarifying them. 961 Previous VUs that required a complete pipeline were now redundant, so 962 have been removed. (public issue 1793). 963 * Add missing code:SPV_EXT_opacity_micromap to XML (public pull request 964 2131). 965 * Fix typo in code:SPV_INTEL_shader_integer_functions2 XML (public pull 966 request 2132). 967 968Internal Issues 969 970 * Use "`commands are called *in* a command buffer`" rather than "`*on* a 971 command buffer`", and add this case to the style guide (internal issue 972 3480). 973 * Fix common draw dispatch VU 07753 for the 974 slink:VkImageView::pname:format to match the code:OpTypeImage 975 code:Sampled code:Type (internal issue 3481). 976 * Create common draw and slink:VkGraphicsPipelineCreateInfo VUs for 977 pname:alphaToCoverageEnable (internal merge request 5811). 978 * Add elink:VkDynamicState entry for 979 ename:VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT (internal 980 merge request 5894). 981 * Use consistent wording for VUs referring to external memory handles 982 (internal merge request 5895). 983 * Remove redundant <<spirvenv-module-validation-standalone, Standalone 984 SPIR-V Validation>> VU 04662 (internal merge request 5898). 985 * Revert common draw VU 07620, which was accidentally removed by 986 apiext:VK_EXT_shader_object (internal merge request 5899). 987 * Allow slink:VkVideoDecodeInfoKhr::pname:pReferenceSlots to be `NULL` in 988 its description (internal merge request 5900). 989 * Fix slink:VkGraphicsPipelineCreateInfo pipeline topology VUs when 990 pname:dynamicPrimitiveTopologyUnrestricted is set and the dynamic state 991 is enabled (internal merge request 5916). 992 993New Extensions 994 995 * apiext:VK_EXT_dynamic_rendering_unused_attachments 996 997----------------------------------------------------- 998 999Change log for May 4, 2023 Vulkan 1.3.250 spec update: 1000 1001GitHub Issues: 1002 1003 * Fix common image subresource VUs for fname:vkGetImageSubresourceLayout* 1004 with planar images (public issue 2109). 1005 * Fix URL in BUILD.adoc (public merge request 2116). 1006 * Split up ename:VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT VU for 1007 slink:VkImageCreateInfo (public issue 2117) 1008 1009Internal Issues 1010 1011 * Add some missing VUs for apiext:VK_EXT_shader_object (internal issue 1012 3449). 1013 * Add a <<shaders-binding, Binding Shaders>> section and refer to it from 1014 some apiext:VK_EXT_shader_object VUs, collapsing and simplifying them 1015 (internal issue 3425). 1016 * Fix flink:vkGetImageSubresourceLayout2EXT to refer to the output 1017 structure as undefined for ename:VK_IMAGE_TILING_OPTIMAL, rather than 1018 the input structure (merge request 5870). 1019 * Add ename:VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT to the 1020 slink:VkPipelineColorBlendStateCreateInfo::pname:pAttachments 1021 description (merge request 5873). 1022 * Clarify how to get slink:VkExternalBufferProperties in 1023 slink:VkMemoryAllocateInfo VU 00639 (merge request 5873). 1024 * Replace `~~~~` delimiter for nested open/source blocks with `----`, 1025 using a custom extension to treat the listing block as an open block 1026 where needed for continuations (merge request 5886). 1027 * Fix common stage mask VUIDs 07946, 07947, 07949, and 07950 to 1028 incorporate the stage mask name and avoid duplication (internal merge 1029 request 5886). 1030 1031New Extensions 1032 1033 * apiext:VK_EXT_attachment_feedback_loop_dynamic_state 1034 1035 1036----------------------------------------------------- 1037 1038Change log for April 27, 2023 Vulkan 1.3.249 spec update: 1039 1040GitHub Issues: 1041 1042 * Add a non-normative NOTE on variability in 1043 <<textures-texel-anisotropic-filtering, Texel Anisotropic Filtering>> 1044 implementations, and move the theoretical implementation described in 1045 that section into the NOTE (public issue 1361). 1046 * Fix XML attributes of slink:VkMicromapEXT structure members to allow 1047 `NULL` handles (public issue 2114). 1048 1049Internal Issues 1050 1051 * Clarify common draw VUs for attachment read feedback loops (internal 1052 issue 3439). 1053 * Add flink:vkCmdCopyQueryPoolResults VU requiring queries to have been 1054 made available by prior executed commands (internal issue 3451). 1055 * Relax ptext:*DescriptorSize limits to 256 bytes max in the 1056 <<limits-required, Required Limits>> table (internal issue 3456). 1057 * Mention shader objects in definitions of code:SubgroupLocalInvocationId 1058 and code:SubgroupSize built-ins (internal issue 3459). 1059 * Use numeric format (e.g. etext:*SFLOAT), numeric type (e.g. "`float`"), 1060 and SPIR-V type (e.g. code:OpTypeFloat, width, sign) consistently in the 1061 specification, rather than mixing and matching by accident (internal 1062 merge request 5627). 1063 * Add <<spirvenv-module-validation-runtime, 1064 Runtime SPIR-V Validation>> VUs for Mesh and Task 1065 code:max*Size using the same wording as for 1066 code:maxComputeSharedMemorySize (internal merge request 5804). 1067 * Add missing `const` to 1068 slink:VkVideoDecodeH265PictureInfoKHR::pname:pStdPictureInfo (internal 1069 merge request 5859). 1070 * Convert `scripts/genanchorlinks.py` script into an asciidoctor 1071 extension. 1072 1073New Extensions 1074 1075 * apiext:VK_KHR_ray_tracing_position_fetch 1076 1077----------------------------------------------------- 1078 1079Change log for April 20, 2023 Vulkan 1.3.248 spec update: 1080 1081GitHub Issues: 1082 1083 * Clarify when <<deferred-host-operations-requesting, parameter access for 1084 deferred commands>> can be done (public issue 2092). 1085 * Clarify <<fundamentals-objectmodel-lifetime, object lifetimes for 1086 deferred commands>> (public issue 2100). 1087 * Add missing :refpage: markup to pages that use commonvalidity VUs, so 1088 the API portion of the VUID is rendered correctly (public issue 2104). 1089 1090Internal Issues 1091 1092 * Update slink:VkFragmentShadingRateCombinerOpKHR language to address 1093 differences between Fragment Shading Rate clamping and DX Variable 1094 Shading Rate input sanitization (internal issue 3339). 1095 * Add common VU for slink:VkAttachmentDescription2 and 1096 slink:VkAttachmentReference2KHR, and VU to 1097 slink:VkGraphicsPipelineCreateInfo, to ensure render pass and pipeline 1098 sample counts are valid, and related specification language in 1099 <<renderpass-noattachments>> (internal issue 3422). 1100 * Clarify that <<textures-texel-mipmap-filtering, minmax filtering applies 1101 between mip levels>> (internal issue 3450). 1102 * Add ename:VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT to 1103 slink:VkPipelineColorBlendStateCreateInfo attachment VUs 07353 and 07608 1104 (internal issue 3455). 1105 * Fix "`fragment output interface`" -> "`fragment shader state`" typo in 1106 slink:VkGraphicsPipelineCreateInfo VUs 06485 and 06486 (internal MR 1107 5824). 1108 * Collapse redundancies in dynamic state VUs for 1109 slink:VkGraphicsPipelineCreateInfo and 1110 slink:VkPipelineViewportStateCreateInfo (internal MR 5838). 1111 * Collapse redundancies in dynamic state VUs for 1112 slink:VkGraphicsPipelineCreateInfo and 1113 slink:VkGraphicsPipelineCreateInfo (internal MR 5853). 1114 * Clarify source of the custom border color in a NOTE to 1115 slink:VkSamplerCustomBorderColorCreateInfoEXT and a footnote to the 1116 <<textures-border-replacement-table, Border Texel Components After 1117 Replacement>> table (internal MR 5855). 1118 * Update registry scripts to enable using combined Vulkan and Vulkan SC 1119 registry entries to generate combined headers for use with SC ecosystem 1120 tooling (internal MR 5858). 1121 * Add <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> VU 1122 to require decorations to match between shader stages (internal MR 1123 5861). 1124 1125----------------------------------------------------- 1126 1127Change log for April 12, 2023 Vulkan 1.3.247 spec update: 1128 1129GitHub Issues: 1130 1131 * Fix typo in apiext:VK_EXT_shader_object sample code (public PR 2094). 1132 * Experimental Antora site generator code for Vulkan Documentation Project 1133 demo - see https://github.com/KhronosGroup/Vulkan-Site/ for more 1134 information and links to the live site demo (public PR 2097). 1135 * Fix typo to code:StdVideoDecodeH265ReferenceInfo <<decode-h265, H.265 1136 Decode Operations>> (public PR 2098). 1137 1138Internal Issues 1139 1140 * Improve wording for code:Location VUs 04917 and 04919 (internal issue 1141 2737). 1142 * Add wording about host write guarantees and non-temporal instructions 1143 for flink:vkDeviceWaitIdle (internal issue 3404). 1144 * Clarify undefined values in the <<interfaces-fragmentoutput, Fragment 1145 Output Interface>> section, and improve the explanation of how fragment 1146 shader interfaces work (internal issue 3416). 1147 * Add `ratification` status attribute to <extension> XML and reflect it in 1148 the extension appendix metadata. Add new '-spec ratified' option to 1149 `makeSpec` script (internal issue 3417). 1150 * Add a commonvalidity file `shader_create_spv_common.adoc` for creating 1151 SPIR-V shaders and use it for slink:VkShaderCreateInfoEXT and 1152 slink:VkShaderModuleCreateInfo (internal issue 3426). 1153 * Errata and wording improvements to apiext:VK_EXT_shader_object (internal 1154 issue 3435). 1155 * Restore two missing members that were inadvertently removed from the XML 1156 definition of slink:VkDeviceFaultVendorBinaryHeaderVersionOneEXT. This 1157 is not a functional change to the specification, and is approved by the 1158 implementations of the apiext:VK_EXT_device_fault extension (internal 1159 issue 3443). 1160 * Add VUs for common draw vertex binding and 1161 slink:VkGraphicsPipelineCreateInfo so the vertex input has matching 1162 signed int / unsigned int / float type in both the shader and the 1163 pipeline (internal MR 5627). 1164 * Mention <<pipelines-graphics-subsets-vertex-input, vertex input state>> 1165 in slink:VkGraphicsPipelineCreateInfo VUs 00736 and 00737 (internal MR 1166 5783). 1167 * Cleanup <<spirvenv, SPIR-V Environment>> appendix to use code: markup 1168 consistently on SPIR-V keywords (internal MR 5823). 1169 * Grammar, markup, and typo fixes for the 1170 apiext:VK_HUAWEI_cluster_culling_shader extension (internal MR 5827). 1171 * Use host networking in `scripts/runDocker` (internal MR 5834). 1172 * Clean up apiext:VK_EXT_shader_object language and extension dependencies 1173 when building a spec with just this extension included (internal MR 1174 5837). 1175 * Add <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> VU 1176 to ensure there is a shader output for every shader input slot (internal 1177 MR 5843). 1178 * Fix code:OutputVertices language for apiext:VK_EXT_shader_object in the 1179 <<tessellation, Tessellator>> section to refer to the control stage, not 1180 the evaluation stage (internal MR 5846). 1181 1182----------------------------------------------------- 1183 1184Change log for March 31, 2023 Vulkan 1.3.246 spec update: 1185 1186GitHub Issues: 1187 1188 * Remove redundant "`input attachment`" wording in descriptions of 1189 ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT and 1190 ename:VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT (public issue 1191 2083). 1192 * Add a NOTE describing state of buffers passed in 1193 flink:vkBindBufferMemory2::pname:pBindInfos if the command fails (public 1194 issue 2086). 1195 1196Internal Issues 1197 1198 * Add new <<spirvenv-module-validation-runtime, Runtime SPIR-V VUs>> 1199 restricting code:OpTypeImage multisampling to be consistent the 1200 slink:VkImageCreateInfo::pname:samples its bound image was created with 1201 (internal issue 2426). 1202 * Clarify that <<primsrast-sampleshading, sample interpolation>> enables 1203 sample shading (internal issue 2872). 1204 * Add <<spirvenv-module-validation-standalone, Standalone SPIR-V VUs>> for 1205 multiple code:OpVariable for one code:Location, and use code:Location 1206 and code:Component terminology consistently in related parts of the 1207 specification, rather than informal equivalent terms (internal MR 5630). 1208 * Add a new <<spirvenv-module-validation-runtime, Runtime SPIR-V VUs>> 1209 preventing code:InputAttachmentIndex overlaps (internal MR 5759). 1210 * Move apiext:VK_NV_displacement_micromap interfaces to the provisional 1211 `vulkan_beta.h` header (internal MR 5812). 1212 * Remove redundant common validity VU 07977 for buffer alignment in buffer 1213 <-> image copies (internal MR 5814). 1214 * Remove redundant slink:VkWriteDescriptorSet VU 07729 (internal MR 5815). 1215 * Describe multi-planar aspect masks consistently in VU statements 1216 (internal MR 5816). 1217 * Fix ptext:width -> pname:height typo in slink:VkRenderingInfo VU 07816 1218 (internal MR 5817). 1219 1220New Extensions: 1221 1222 * apiext:VK_EXT_shader_object 1223 * apiext:VK_EXT_shader_tile_image 1224 1225----------------------------------------------------- 1226 1227Change log for March 24, 2023 Vulkan 1.3.245 spec update: 1228 1229GitHub Issues: 1230 1231 * Tighten wording for <<descriptorsets-compatibility, Pipeline Layout 1232 Compatibility>> (public issue 1853). 1233 * Attempt to clarify "`supported`" vs. "`enabled`" in the 1234 <<extendingvulkan-device-extensions, Device Extensions>>, 1235 <<fundamentals-validusage-extensions, Valid Usage for Extensions>>, and 1236 <<extendingvulkan-instanceanddevicefunctionality, Instance and Device 1237 Functionality>> sections (public issue 2035). 1238 * Fix markup typo (public issue 2089). 1239 1240 1241Internal Issues 1242 1243 * Fix slink:VkRayTracingPipelineCreateInfoKHR VU interactions in the 1244 presence of stages and groups (internal issue 3104). 1245 * Fix standalone SPIR-V VU 04924 to clarify components can also be arrays 1246 of scalars or vectors (internal issue 3411). 1247 * Add anchors for all <<interfaces-builtin-variables, Built-In Variables>> 1248 (internal issue 3418). 1249 * Add common image layout transition VUs to prevent inconsistent image 1250 barrier with separate depth/stencil (internal MR 5634). 1251 * Add NOTE of intended use cases for slink:VkDirectDriverLoadingListLUNARG 1252 to the description of slink:VkInstanceCreateInfo (internal MR 5692). 1253 * Update Khronos specification license terms to the latest version 1254 (internal MR 5717). 1255 * Fix slink:VkGraphicsPipelineCreateInfo VU 07725 requirement that 1256 code:PointSize be written to for every vertex emitted (internal MR 1257 5790). 1258 * Set missing `refpage` attribute when including some pipeline common 1259 VUIDs (internal MR 5795). 1260 * Add missing VUs to flink:vkCmdPushDescriptorSetWithTemplateKHR (internal 1261 MR 5798). 1262 * Fix style guide word choice table markup problem that resulted in 1263 off-by-one column errors (internal MR 5808). 1264 * Use style guide preferred form of "`depth/stencil format`" (internal MR 1265 5810). 1266 1267New Extensions: 1268 1269 * apiext:VK_NV_displacement_micromap 1270 1271----------------------------------------------------- 1272 1273Change log for March 17, 2023 Vulkan 1.3.244 spec update: 1274 1275GitHub Issues: 1276 1277 * Fix typo in 1278 slink:VkDeviceGroupRenderPassBeginInfo::pname:deviceRenderAreaCount 1279 (public issue 2078). 1280 1281Internal Issues 1282 1283 * Move copy attribute's pname: to commonvalidity attributes to aid with 1284 VUID generation (internal MR 5781). 1285 * Add a .mailmap file (internal MR 5786). 1286 * Refactor pipeline layout consistency VUs for 1287 slink:VkComputePipelineCreateInfo, slink:VkGraphicsPipelineCreateInfo, 1288 and slink:VkRayTracingPipelineCreateInfoNV into common validity 1289 statements (internal MR 5750). 1290 * Make VUID tag generation prioritize attributes, helping ensure tags are 1291 unique when the same common validity file is included twice in the same 1292 VU block (internal MR 5791). 1293 1294New Extensions: 1295 1296 * apiext:VK_KHR_map_memory2 1297 1298----------------------------------------------------- 1299 1300Change log for March 12, 2023 Vulkan 1.3.243 spec update: 1301 1302GitHub Issues: 1303 1304 * Clarify descriptions of 1305 ename:VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT and 1306 ename:VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT to include missing 1307 operations and properly refer to advanced blend operations (public issue 1308 2047). 1309 * Add specification language for ename:VK_REMAINING_3D_SLICES_EXT (public 1310 issue 2063). 1311 * Fix some out of date cross-references and citations. Update normative 1312 reference sections and cite them appropriately in the specification, 1313 registry schema, and style guide documents (public issue 2069). 1314 * Reverse aliasing of ename:VK_PIPELINE_CACHE_CREATE_READ_ONLY_BIT to a 1315 reserved bit for Vulkan SC (public issue 2070). 1316 * Add Mobileye vendor ID reservation (public pull request 2076). 1317 1318Internal Issues 1319 1320 * Updates to provisional video encode extensions including minor API 1321 changes - see change logs in the apiext:VK_EXT_video_encode_h264, 1322 apiext:VK_EXT_video_encode_h265, and apiext:VK_KHR_video_encode_queue 1323 extension appendices for more details (internal issue 3329). 1324 * Add VU logic for ename:VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT to 1325 common draw, flink:vkCmdBindPipeline, and 1326 slink:VkGraphicsPipelineCreateInfo (internal issue 3355). 1327 * Add to the NOTE in the <<queries-occlusion, Occlusion Queries>> section 1328 describing possible differences in query results between implementations 1329 even when ename:VK_QUERY_CONTROL_PRECISE_BIT is specified (internal 1330 issue 3364). 1331 * Fix a few pname:pNext pointer input-only structure members defined by 1332 apiext:VK_EXT_swapchain_maintenance1 to add `const` qualifiers in XML 1333 (internal issue 3367). 1334 * Clarify why setting the stride with flink:vkCmdBindVertexBuffers2 has 1335 additional restrictions relative to setting the static state, and add a 1336 corresponding issue to the apiext:VK_EXT_extended_dynamic_state appendix 1337 (internal issue 3391). 1338 * Fix reflow script so VUID tag generation / duplicate checking can be 1339 performed independently of text reflowing (internal issue 3394). 1340 * Fix some incorrectly rewritten text that looks like a link, but is not, 1341 in refpage source code blocks (internal issue 3401). 1342 * Add code:Vertex code:Location restrictions when dynamic vertex input 1343 state is enabled to common draw vertex binding and 1344 slink:VkGraphicsPipelineCreateInfo VUs (internal merge request 5541). 1345 * Refactor some common image copy VUs (internal merge request 5659). 1346 * Refactor common image copy VUs not affected by 1347 apiext:VK_QCOM_rotated_copy (internal merge request 5660). 1348 * Update XML `<extension>` dependencies for VulkanSC in cases where an 1349 extension has been promoted to core in that API, but the extension 1350 itself is not supported (internal merge request 5723). 1351 * Call out extension and feature dependencies explicitly in some VUs 1352 (internal merge request 5737). 1353 * Fix typo in asciidoctor conditional markup for 1354 slink:VkPipelineShaderStageCreateInfo VU 06716. (internal merge request 1355 5726). 1356 * Update wording of slink:VkImageViewSlicedCreateInfoEXT specifying when 1357 this structure is ignored (internal merge request 5734). 1358 * Fix wording of slink:VkD3D12FenceSubmitInfoKHR VUs 00079 and 00080 1359 (internal merge request 5742). 1360 * Use "`component`" consistently when referring to pname:format arguments, 1361 replacing "`aspect`" (internal merge request 5746). 1362 * Add missing slink:VkImageViewSlicedCreateInfoEXT VU for pname:viewType 1363 (internal merge request 5749). 1364 * Remove redundant slink:vkCmdClearAttachments dynamic rendering VUs 07882 1365 and 07883 (internal merge request 5751). 1366 * Remove redundant slink:VkGraphicsPipelineCreateInfo code:InputAttachment 1367 dynamic rendering VU 06056 (internal merge request 5752). 1368 * Fix description of mesh shader execution modes in the 1369 apiext:VK_EXT_mesh_shader proposal document (internal merge request 1370 5756). 1371 * Minor updates to apiext:VK_HUAWEI_cluster_culling_shader extension APIs. 1372 These are incompatible changes but the vendor driver release with this 1373 extension has not been published, so there should be no user impact 1374 (internal merge request 5767). 1375 * Restructure <<fundamentals-validusage-enums, Valid Usage for Enumerated 1376 Types>> and <<fundamentals-validusage-flags, Valid Usage for Flags>> 1377 sections to make clear that the rules for enums and flag bits follow the 1378 same formula, and be more precise in defining interactions with 1379 extensions and core versions (internal merge request 5769). 1380 * Make normative text and NOTE in the 1381 <<synchronization-pipeline-stages-masks>> section consistent (internal 1382 merge request 5772). 1383 * Refactor single-sampled requirement of copy commands into common VU 1384 statements (internal merge request 5776). 1385 1386----------------------------------------------------- 1387 1388Change log for February 26, 2023 Vulkan 1.3.242 spec update: 1389 1390GitHub Issues: 1391 1392 * Separate reflow document traversal and internal logic (public pull 1393 request 2042). 1394 * Specify operator evaluation in XML `depends` expressions must be 1395 left-to-right for operators of the same precedence (public pull request 1396 2066). 1397 * Revert to only parenthesizizing formal arguments of VK_DEFINE*HANDLE 1398 macros in the `vulkansc` api, to work around a bug in MSVC (public issue 1399 2067). 1400 1401Internal Issues 1402 1403 * Clarify <<ray-intersection-candidate-determination, ray transform 1404 invariance>> with respect to intersection with multiple instances 1405 (internal issue 3371). 1406 * Fix extraneous `+` sign appearing in dependency section of extension 1407 refpages (internal issue 3382). 1408 * Add draw dispatch common VU for 1409 ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT and new 1410 <<resources-buffer-view-format-features, Buffer View Format Features>> 1411 section (internal merge request 5597). 1412 * Move subpass self-dependency language into slink:VkSubpassDependency and 1413 pipeline barrier common VUs (internal merge request 5687). 1414 * Typo fix for double words ("`the the`") (internal merge request 5739). 1415 * Clarify Vulkan memory model requirements in the <<memory-model, Memory 1416 Model>> appendix (internal cross-api/memory-model issue 157). 1417 * Remove `update_valid_usage_ids.sh` script, which has not worked for a 1418 long time. 1419 1420New Extensions: 1421 1422 * apiext:VK_NV_low_latency 1423 1424----------------------------------------------------- 1425 1426Change log for February 16, 2023 Vulkan 1.3.241 spec update: 1427 1428GitHub Issues: 1429 1430 * Clarify apiext:VK_EXT_debug_utils object support (public issue 1668, 1431 public pull request 2034). 1432 * Fix capitalization typos in a few VUs (public pull request 2050). 1433 * Parameterize asciidoc includes of asciidoc files from `vkspec.adoc` 1434 using `{chapters}` attribute (public pull request 2051). 1435 1436Internal XML Schema Issues: 1437 1438Several needed XML schema changes are introduced in this update which may 1439impact downstream XML users who are doing their own parsing. Users of our 1440Python generator framework are unlikely to be impacted. If you have 1441difficulty adapting to these changes, please open an issue on the 1442Vulkan-Docs GitHub repository. 1443 1444 * Introduce a new `depends` attribute to the XML schema, replacing the 1445 `requires` and `requiresCore` attributes of `<extension>` tags, and the 1446 `features` and `extension` attributes of `<require>` tags. This is an 1447 intentional and unavoidable breaking change, allowing us to correctly 1448 express more complex dependencies. XML users doing their own XML parsing 1449 and needing this information must treat the `depends` attribute as a 1450 boolean expression. This change also adds a description of the different 1451 interpretation of device and instance extension dependencies in a single 1452 place in the new <<extensions, "`Extension Dependencies`">> section at 1453 the start of the extensions appendix, rather than including a 1454 boilerplate comment about "`device-level extensions`" with each relevant 1455 extension dependency described later in the appendix (internal issue 1456 2883). 1457 * Import XML, script, and config file changes from the Vulkan SC spec 1458 repository. This change uses the `api` XML attribute to specialize some 1459 tags for the Vulkan and Vulkan SC APIs. While this is not a new 1460 attribute, it has not been extensively used in this fashion previously 1461 in this repository. XML users doing their own XML parsing must now 1462 filter out tags with `api` attributes not matching the API they are 1463 generating, and must also filter out `<extension>` tags whose 1464 `supported` attribute does not include that API (internal issue 3348). 1465 * Remove some redundancies from refactored XML dependencies (internal 1466 merge request 5713). 1467 * Express correct XML dependencies of apiext:VK_KHR_buffer_device_address, 1468 now that the new `depends` schema supports that (internal merge request 1469 5721). 1470 * Add a new `deprecated` attribute to several tags in XML schema which 1471 provides some guidance as to why an API was deprecated. Remove `comment` 1472 text which some downstream XML parsers were using to infer deprecation, 1473 which was never an intended or supported purpose of the comments (public 1474 ash-rs/ash issue 670, internal merge request 5537). 1475 1476Other Internal Issues 1477 1478 * Expand the definition of <<fundamentals-validusage-enums, "`valid 1479 enumerant value`">> to include whether the extension or core version 1480 defining that enumerant is enabled or supported. This has a global 1481 effect on corresponding VU statements, and the Vulkan Validation Layer 1482 is being updated accordingly (internal issue 2912). 1483 * Update the <<synchronization>> chapter in several places to clarify that 1484 pipeline barriers work only within a single queue (internal issue 3365). 1485 * Add ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR in a 1486 few places it was missing, and update description for copy commands to 1487 specify where it should be used with apiextVK_KHR_synchronization2 1488 rather than 1489 ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR (internal 1490 merge request 5604). 1491 * Fix typos in `proposals/VK_KHR_video_decode_queue.adoc` (internal merge 1492 request 5646). 1493 * Add dynamic state to apiext:VK_EXT_discard_rectangles 1494 (ename:VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT and 1495 ename:VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT) and for 1496 apiext:VK_NV_scissor_exclusive 1497 (ename:VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV) that was overlooked 1498 in apiext:VK_EXT_extended_dynamic_state3. While this is adding 1499 functionality to existing extensions, the implementers of these 1500 extensions have all signed off on this change (internal merge request 1501 5671). 1502 * Disallow ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK in 1503 slink:VkDescriptorGetInfoEXT VU 08018 (internal merge request 5681). 1504 * Rearrange some language in flink:vkGetRayTracingShaderGroupHandlesKHR 1505 and flink:vkGetRayTracingCaptureReplayShaderGroupHandlesKHR to follow 1506 the style guide (internal merge request 5683). 1507 * Update to new Docker image SHA for CI and building specs (internal merge 1508 request 5688). 1509 * Add `SPV_EXT_fragment_fully_covered` to XML `<spirvextensions>` section 1510 (internal merge request 5689). 1511 * Add missing pname:pNext description to 1512 slink:VkVideoDecodeH264DpbSlotInfoKHR (internal merge request 5701). 1513 * Add missing internal links for the term 1514 <<pipelines-graphics-subsets-fragment-shader, fragment shader state>> 1515 (internal merge request 5704). 1516 * Move ename:VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY VU common draw vertex 1517 binding VUs, and word VUs 03420 and 07500 the same, minus the reference 1518 to pname:dynamicPrimitiveTopologyUnrestricted (internal merge request 1519 5708). 1520 * Ban some advanced blend modes from slink:VkColorBlendEquationEXT that 1521 must be set using a different mechanism (internal merge request 5705). 1522 * Update copyright dates to 2023, and add CI check for Khronos-copyright 1523 files (internal merge request 5716). 1524 * Add clarifying NOTE and typo fixes for 1525 apiext:VK_HUAWEI_cluster_culling_shader (internal merge request 5718). 1526 * Add missing XML dependencies on 1527 apiext:VK_KHR_get_physical_device_properties2 to several extensions 1528 (internal merge request 5719). 1529 * Remove flink:vkCmdResolveImage VUs where pname:srcImage is of type 1530 ename:VK_IMAGE_TYPE_3D (internal vulkansc issue 178). 1531 1532New Extensions: 1533 1534 * apiext:VK_EXT_image_sliced_view_of_3d 1535 * apiext:VK_ARM_shader_core_properties 1536 * apiext:VK_QCOM_multiview_per_view_render_areas 1537 1538----------------------------------------------------- 1539 1540Change log for January 26, 2023 Vulkan 1.3.240 spec update: 1541 1542GitHub Issues: 1543 1544 * Fix <<limits-maxPushDescriptors, pname:maxPushDescriptors>> description 1545 (public pull request 2038). 1546 1547Internal Issues: 1548 1549 * Finish banning NULL pipeline layouts in 1550 slink:VkGraphicsPipelineCreateInfo VUs (internal merge request 5673). 1551 * Fix flink:vkCmdDrawIndirectByteCountEXT VU 02289 to refer to the correct 1552 structure name (internal merge request 5674). 1553 * Clarify how to define an inactive acceleration structure instance in the 1554 <<acceleration-structure-update, Acceleration Structure Update Rules>> 1555 (internal merge request 5677). 1556 * Add missing common draw and draw dispatch VUs when setting dynamic state 1557 at draw time (internal merge request 5679). 1558 * Add more information about pname:texelBufferAlignment promotion to core 1559 in the apiext:VK_EXT_texel_buffer_alignment and <<versions-1.3, Version 1560 1.3>> appendix language (internal merge request 5680). 1561 1562New Extensions: 1563 1564 * apiext:VK_EXT_pipeline_library_group_handles 1565 1566----------------------------------------------------- 1567 1568Change log for January 19, 2023 Vulkan 1.3.239 spec update: 1569 1570GitHub Issues: 1571 1572 * Clarify semaphore/fence behavior of flink:vkAcquireNextImageKHR so that 1573 if successful, both semaphore and fence will be signaled (whichever 1574 provided), and if not successful, both are unaffected (public issues 1575 1533, 1776, 2009). 1576 * Update common draw VU 07751 to require that 1577 flink:vkCmdSetDiscardRectangleEXT was called for each discard rectangle 1578 when the corresponding dynamic state is enabled (public issue 1657). 1579 * Add ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR to 1580 access masks VUs (public pull request 1997). 1581 * Fix a typo in flink:vkCmdSetCoverageToColorLocationNV (public pull 1582 request 2000). 1583 * Clarify interpretation of H.265 reference indices 1584 code:RefPicSetStCurrBefore, code:RefPicSetStCurrAfter, and 1585 code:RefPicSetLtCurr (public issue 2010). 1586 * Add missing dimension VUs for slink:VkRenderingInfo (public issue 2015). 1587 * Fix <<formats-mandatory-features-32bit, Mandatory format support: 32-bit 1588 components>> table to support ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT 1589 for ename:VK_FORMAT_R32_SFLOAT without apiext:VK_EXT_shader_atomic_float 1590 (public pull request 2011). 1591 * Fix incorrect link in apiext:VK_KHR_create_renderpass2 appendix (public 1592 pull request 2037). 1593 1594Internal Issues: 1595 1596 * Add `scripts/stripAPI.py` to transform the XML by removing non-matching 1597 `api` elements (internal issue 3281). 1598 * Update introduction of the <<fragops, Fragment Operations>> chapter to 1599 allow the <<fragops-samplemask, sample mask test>> to be performed after 1600 <<fragops-samplecount, sample counting>> (internal issue 3330). 1601 * Add slink:VkImageViewCreateInfo VU to disallow creating image views with 1602 multiple plane bits (internal issue 3332) 1603 * Add a new VU to slink:VkGraphicsPipelineCreateInfo requiring pipeline 1604 layout compatibility in the graphics pipeline library link step 1605 (internal issue 3334). 1606 * Report an error message from generator scripts when an unknown name is 1607 referenced, rather than just failing (internal merge request 5614). 1608 * Document in elink:VkPipelineCreateFlagBits that 1609 ename:VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR 1610 and 1611 ename:VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT 1612 are only needed when combining fragment shading rate or fragment density 1613 maps with dynamic rendering (internal merge request 5616). 1614 * Moved a VU for index offsets when pname:robustBufferAccess2 is not 1615 enabled from flink:vkCmdDrawIndexed to become a common VU for all the 1616 index buffer draw calls (internal merge request 5623). 1617 * Add VUs to slink:VkWriteDescriptorSet and slink:VkDescriptorImageInfo 1618 restricting use of other descriptor types from being a 2D view of a 3D 1619 image (internal merge request 5626). 1620 * Clarify that the tlink:PFN_vkReallocationFunction callback may return 1621 `NULL` (internal merge request 5637). 1622 * Clarify that apiext:VK_KHR_format_feature_flags2 only has to be 1623 supported, not enabled, in the <<resources-image-view-format-features, 1624 Image View Format Features>> section (internal merge request 5651). 1625 * Factor some VUs out of the `copy_bufferimage_to_imagebuffer_common` 1626 common VU file into a new 1627 `copy_bufferimage_to_imagebuffer_buffer_alignment_common` file (internal 1628 merge request 5657). 1629 * Add new driver id ename:VK_DRIVER_ID_IMAGINATION_OPEN_SC (internal merge 1630 request 5658). 1631 * Factor some VUs out of the `image_memory_barrier_common` common VU file 1632 into a new `image_layout_transition_common` file (internal merge request 1633 5662). 1634 * Clarify that format-less buffer views only apply to storage texel 1635 buffers in the <<features-shaderStorageImageReadWithoutFormat>>, 1636 <<features-shaderStorageImageWriteWithoutFormat>>, and 1637 <<formats-without-shader-storage-format, Formats without shader storage 1638 format>>, sections and for elink:VkFormatFeatureFlagBits2 (internal 1639 merge request 5668). 1640 1641New Extensions: 1642 1643 * apiext:VK_HUAWEI_cluster_culling_shader 1644 1645----------------------------------------------------- 1646 1647Change log for December 19, 2022 Vulkan 1.3.238 spec update: 1648 1649Internal Issues: 1650 1651 * Do not require in-bounds index buffers for flink:vkCmdDrawIndexed if 1652 pname:robustBufferAccess2 is enabled (internal issue 3311). 1653 * Only download needed parts of VK-GL-CTS repository for CI test (internal 1654 issue 3315). 1655 * Add a NOTE that etext:FORMAT_FEATURE_*_ATOMIC_BIT 1656 are only advertised for single-component formats 1657 (internal issue 3318). 1658 * Add a common acceleration structure copy VU disallowing src/dst overlap 1659 (internal merge request 5587). 1660 * Add common VUs for EXT mesh draw calls (internal merge request 5588). 1661 * Change validation of flink:vkGetImageSubresourceLayout2EXT to allow 1662 queries of images with ename:VK_IMAGE_TILING_OPTIMAL tiling (internal 1663 merge request 5590). 1664 * Add VUs to flink:vkCmdBuildAccelerationStructureNV and common 1665 acceleration structure copy VUs to require pname:dst to be bound 1666 completely and contiguously (internal merge request 5602). 1667 * Fix typo in member name ptext:presentScaling -> pname:scalingBehavior 1668 for slink:VkSwapchainPresentScalingCreateInfoEXT (internal merge request 1669 5603). 1670 * Remove common copy image sample count VU 07745, which duplicates VU 1671 00136 (internal merge request 5605). 1672 * Fix common image memory barrier layout VU to refer to correct members 1673 instead of nonexist pname:layout (internal merge request 5608). 1674 1675New Extensions: 1676 1677 * Add final (non-provisional) versions of the Vulkan Video Core and Decode 1678 extensions (internal merge request 5351): 1679 ** apiext:VK_KHR_video_queue 1680 ** apiext:VK_KHR_video_decode_queue 1681 ** apiext:VK_KHR_video_decode_h264 (promoted from EXT) 1682 ** apiext:VK_KHR_video_decode_h265 (promoted from EXT) 1683 1684----------------------------------------------------- 1685 1686Change log for December 8, 2022 Vulkan 1.3.237 spec update: 1687 1688Public Issues: 1689 1690 * Fix multiple function pointer type definition problem introduced by 1691 apiext:VK_LUNARG_direct_driver_loading and update CI tests to catch this 1692 type of issue going forward (public issue 1998). 1693 * Fix typo in flink:vkCmdCopyImageToBuffer (public issue 1999). 1694 * Do not require ename:VK_STENCIL_OP_KEEP in 1695 flink:vkCmdSetStencilWriteMask and 1696 slink:VkPipelineDepthStencilStateCreateInfo if both front and back 1697 pname:writeMask values are zero (public Vulkan-ValidationLayers issue 1698 4921). 1699 1700Internal Issues: 1701 1702 * Run Vulkan CTS framework tests as part of CI (internal issue 3274). 1703 * Clarify that <<spirvenv-evaluation-expressions, denorm ops can reorder 1704 without code:NoContract (internal issue 3303). 1705 * Add the <<resources-memory-overlap, Resource Memory Overlap>> section to 1706 clarify that there is no cache line hazard (internal issue 3306). 1707 * Restrict ename:VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT to 1708 three-dimensional images in slink:VkImageCreateInfo and 1709 elink:VkImageCreateFlagBits (internal merge request 5589). 1710 1711New Extensions: 1712 1713 * apiext:VK_EXT_surface_maintenance1 1714 * apiext:VK_EXT_swapchain_maintenance1 1715 1716----------------------------------------------------- 1717 1718Change log for December 1, 2022 Vulkan 1.3.236 spec update: 1719 1720Public Issues: 1721 1722 * Fix Roadmap 2022 JSON by moving pname:lineWidthGranularity and 1723 pname:pointSizeGranularity to the optionals section of the profile 1724 (public Vulkan-Profiles issue 321). 1725 * Expand description of <<devsandqueues-lost-device, Lost Device>> to 1726 describe how to determine which commands may be affected and return 1727 ename:VK_ERROR_DEVICE_LOST (public issue 1968). 1728 * Clarify that input attachment descriptors follow static use rules in the 1729 <<compatibility-inputattachment, Fragment Input Attachment 1730 Compatibility>> section and common drawing VUs (public issue 1979). 1731 * Move WinRT extensions into `vulkan_win32.h` header (public issue 1980). 1732 * Remove `returnedonly` attribute from slink:VkSubresourceLayout in XML 1733 (public issue 1988). 1734 1735Internal Issues: 1736 1737 * Do not use basetype: for external API types without definitions in the 1738 Specification, and make basetype: link to the corresponding API 1739 (internal issue 2703, fixes one sub-issue of public issue 1984). 1740 * Clarify treatment of shared depth/stencil images in depth-only or 1741 stencil-only resolve attachments for slink:VkRenderingAttachmentInfo 1742 (internal issue 3243). 1743 * Clarify language for acceleration structure and micromap scratch access 1744 bits (internal issue 3244). 1745 * Clarify that code:Output variable writes have an effect in 1746 <<shaders-helper-invocations, Helper Invocations>> (internal issue 1747 3270). 1748 * Add missing apiext:VK_EXT_discard_rectangles common drawing VU (internal 1749 issue 3292). 1750 * Add VUs to slink:VkRenderingInfo preventing inconsistent layout usage 1751 (internal issue 3301). 1752 * Change parent of slink:VkSwapchainKHR to slink:VkDevice (internal merge 1753 request 5521). 1754 * Add and tidy up some shared common image copy VUs (internal merge 1755 request 5371). 1756 * Fix apiext:VK_EXT_color_write_enable common drawing VUs (internal merge 1757 request 5548). 1758 * Add missing apiext:VK_EXT_discard_rectangles common drawing VU (internal 1759 merge request 5549). 1760 * Rename slink:VkVideoDecodeH265PictureInfoEXT members ptext:sliceCount -> 1761 pname:sliceSegmentCount and ptext:sliceOffsets -> 1762 pname:sliceSegmentOffsets (internal merge request 5550). 1763 * Clarify <<ray-tracking-capture-replay, Ray Tracing Capture Replay>> 1764 section and related language for 1765 slink:VkRayTracingShaderGroupCreateInfoKHR::pname:pShaderGroupCaptureReplayHandle 1766 and flink:vkGetRayTracingCaptureReplayShaderGroupHandlesKHR (internal 1767 merge request 5555). 1768 * Add shader interface variable type and width constraint VU to 1769 <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> 1770 (internal merge request 5556). 1771 * Clarify that code:PointSize is not always needed for mesh shaders in 1772 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 1773 VU 07728 (internal merge request 5562). 1774 * Fix minor markup consistency typos in feature and limit xrefs (internal 1775 merge request 5563). 1776 * Fix typo in apiext:VK_QCOM_image_processing for required value of 1777 code:unnormalizedCooordinates for the input code:sampler (internal merge 1778 request 5564). 1779 * Fix typo in slink:VkDescriptorDataEXT language (internal merge request 1780 5568). 1781 * Add a NOTE to the apiext:VK_NV_optical_flow appendix and update the 1782 allowed command queues for flink:vkCmdResetQueryPool and 1783 flink:vkVmdWriteTimestamp in the XML to include the optical flow queue 1784 (internal merge request 5570). 1785 * Require Wayland WSI implementations to send code:wl_surface.commit in 1786 flink:vkQueuePresentKHR for all present modes (internal merge request 1787 5574). 1788 * Add missing slink:VkBindImageMemoryInfo VU for 1789 etext:VK_IMAGE_CREATE_DISJOINT_BIT images (internal merge request 5580). 1790 * Fix markup of some common stage mask VUs to prevent duplicate VUIDs 1791 being generated (internal merge request 5581). 1792 * Add a common draw/dispatch VU for image view shader mapping (internal 1793 merge request 5583). 1794 * Update the registry schema document to describe all allowed command 1795 queue types. 1796 1797New Extensions: 1798 1799 * apiext:VK_LUNARG_direct_driver_loading 1800 * apiext:VK_QCOM_multiview_per_view_viewports 1801 1802----------------------------------------------------- 1803 1804Change log for November 17, 2022 Vulkan 1.3.235 spec update: 1805 1806Public Issues: 1807 1808 * Require Vulkan 1.1 for apiext:VK_EXT_mesh_shader in XML (public issue 1809 1976). 1810 * Reserve driver ID for NVK (public pull request 1983). 1811 1812Internal Issues: 1813 1814 * Add VUs for code:PointSize with mesh shaders to 1815 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 1816 and slink:VkGraphicsPipelineCreateInfo (internal issues 681 and 2727). 1817 * Add the <<features-shadingRateImage, pname:shadingRateImage>> for a 1818 slink:VkImageCreateInfo VU (internal merge request 5552). 1819 1820New Extensions: 1821 1822 * apiext:VK_EXT_descriptor_buffer 1823 1824----------------------------------------------------- 1825 1826Change log for November 10, 2022 Vulkan 1.3.234 spec update: 1827 1828Public Issues: 1829 1830 * Add slink:VkGraphicsPipelineCreateInfo VUs for using code:ViewIndex and 1831 for shader interactions, and make phrasing of some other VUs for this 1832 structure consistent (public Vulkan-ValidationLayers issue 1749). 1833 1834Internal Issues: 1835 1836 * Reorder <<synchronization-pipeline-stages-supported, Supported pipeline 1837 stage flags>> table to more closely match the order in 1838 elink:VkPipelineStageFlagBits2, add some missing stages, and group flag 1839 bits representing multiple stages with the individual stages they 1840 represent (internal issue 3260). 1841 * Add an issue to the apiext:VK_KHR_fragment_shading_rate proposal 1842 document clarifying that the default fragment size participates in 1843 combination operations (internal issue 3266). 1844 * Clarify that references in entry point interface lists are not "`Static 1845 Use`" in its glossary definition (internal issue 3287). 1846 * Add VU for flink:vkGetPhysicalDeviceExternalImageFormatPropertiesNV 1847 restricting pname:externalHandleType to at most one bit set (internal 1848 merge request 5528). 1849 * Add missing code:SPV_NV_shader_invocation_reorder `spirvextension` tag 1850 in XML (internal merge request 5529). 1851 * Minor consistency edits to spec language for recently released NV 1852 extensions - array / bitmask / feature requirement wording, reorder 1853 sections so refpages are correctly formatted, remove un-needed 1854 asciidoctor attributes (internal merge request 5530). 1855 * Update Roadmap 2022 JSON to correct the `maxInlineUniformTotalSize` 1856 limit to 256 instead of 4, matching the specification text (internal 1857 merge request 5531). 1858 * Correct "`less than`" to "`less than or equal to`" in VU for mipmap 1859 levels in flink:vkCmdClearColorImage and 1860 flink:vkCmdClearDepthStencilImage (internal merge request 5533). 1861 * Properly conditionalize and markup language for required pipeline state 1862 interactions with apiext:VK_EXT_graphics_pipelin_library (internal merge 1863 request 5535). 1864 * Add a NOTE to flink:vkSetEvent clarifying when to signal events waited 1865 for in a command buffer (internal merge request 5536). 1866 * Add code:HitObjectAttributeNV to 1867 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 1868 VU 06672 (internal merge request 5538). 1869 * Use consistent wording for "`_handle_ is not dlink:VK_NULL_HANDLE`" and 1870 update style guide accordingly. 1871 1872----------------------------------------------------- 1873 1874Change log for November 3, 2022 Vulkan 1.3.233 spec update: 1875 1876Internal Issues: 1877 1878 * Tighten wording around <<descriptor-validity>> and in the 1879 <<descriptor-set-initial-state>> section (internal issue 3248). 1880 * Add VU for code:Component decoration on 64 bit types in 1881 <<spirvenv-module-validation-standalone Standalone SPIR-V Validation>> 1882 (internal merge request 5495). 1883 * Clarify the meaning of "`new image`" in flink:vkWaitForPresentKHR 1884 (internal merge request 5513). 1885 * Fix conditional markup around common VUs for 1886 flink:vkGetPhysicalDeviceSurfaceCapabilities2KHR (internal merge request 1887 5514). 1888 * Unify some image usage VUs for slink:VkSwapchainCreateInfoKHR (internal 1889 merge request 5515). 1890 * Add some missing conditional markup around common draw VUs for 1891 apiext:VK_EXT_extended_dynamic_state3, add its features to the 1892 <<features-requirements, Feature Requirements>> section, and update the 1893 extension proposal document to fix some typos (internal merge request 1894 5517). 1895 * Fix slink:VkCommandBufferInheritanceRenderingInfoKHR VU 06492 along with 1896 minor markup fixes for an extension glossary term (internal merge 1897 request 5518). 1898 * Disallow input attachments being null for 1899 ename:VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT by refactoring 1900 slink:VkWriteDescriptorSet VUs (internal issue 3246). 1901 * Add `SPV_AMD_shader_early_and_late_fragment_tests` to `<spirvextension>` 1902 XML (internal issue 3276). 1903 * Fix Makefile dependencies to avoid rebuilding the HTML targets 1904 unnecessarily, and add a dependency to the `allchecks` Makefile target 1905 to validate links in the HTML specification output, building it if 1906 necessary. Note that the new check should be expected to fail unless 1907 building with `makeSpec -spec all` (internal merge request 5525). 1908 * Tag apiext:VK_IMG_format_pvrtc as deprecated in XML (internal merge 1909 request 5527). 1910 1911New Extensions: 1912 1913 * apiext:VK_NV_memory_decompression 1914 * apiext:VK_NV_ray_tracing_invocation_reorder 1915 * apiext:VK_NV_copy_memory_indirect 1916 1917----------------------------------------------------- 1918 1919Change log for October 27, 2022 Vulkan 1.3.232 spec update: 1920 1921Public Issues: 1922 1923 * Improve code:OpPtrAccessChain code:Base storage class VUs (public 1924 KhronosGroup/SPIRV-Tools pull request 4965). 1925 1926Internal Issues: 1927 1928 * Force applications to specify ename:VK_FORMAT_UNDEFINED for an unused 1929 attachment in both slink:VkPipelineRenderingCreateInfoKHR and 1930 slink:VkCommandBufferInheritanceRenderingInfoKHR. The previous behaviour 1931 of allowing unused attachments to have any format is not supported on 1932 some conformant implementations that have shipped and cannot be updated. 1933 This functionality is intended to be restored via a new extension in the 1934 near future (internal issue 3123). 1935 * Minor VU fixes for apiext:VK_EXT_extended_dynamic_state3 (internal issue 1936 3253). 1937 * Add missing VUs identified during validation layer work for 1938 apiext:VK_EXT_extended_dynamic_state3 (internal issue 3261). 1939 * Fix some minor markup and asciidoctor conditionalization errors causing 1940 dead internal links in some builds of the specification (internal issues 1941 3267, 3269). 1942 * Fix misleading warnings from refpage generation and add a couple of 1943 missing API descriptions it turned up (internal issue 3271). 1944 * Fix missing extension interaction in generated interfaces description 1945 for apiext:VK_EXT_legacy_dithering (internal merge request 5479). 1946 * Clarify how VUs on slink:VkBuffer aliasing for overlapping ranges of 1947 device memory work for flink:vkGetBufferDeviceAddressEXT (internal merge 1948 request 5489). 1949 * Update XML to fix generated VU for 1950 flink:vkCmdSetColorWriteMaskEXT::pname:pColorWriteMasks (internal merge 1951 request 5497). 1952 * Move VU for flink:vkCmdSetAlphaToOneEnableEXT to the right place 1953 (internal merge request 5500). 1954 * Add Khronos Roadmap 2022 JSON profile file under `xml/profiles/`, and 1955 export it to the Vulkan-Headers repository when updating the 1956 specification (internal merge request 5504). 1957 * Minor XML reorganization to work around a CTS code generation error 1958 (internal merge request 5509). 1959 * Add a new limit property to 1960 slink:VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM. The corresponding 1961 extension has not yet been implemented, so this shouldn't cause a 1962 compatibility break (internal merge request 5512). 1963 1964 1965----------------------------------------------------- 1966 1967Change log for October 13, 2022 Vulkan 1.3.231 spec update: 1968 1969Public Issues: 1970 1971 * Add a NOTE about custom border color with combined depth/stencil formats 1972 and rewrite a corresponding valid usage statement (public issue 1950). 1973 * Clarify memory domain operation in slink:VkBufferMemoryBarrier for 1974 ename:VK_ACCESS_HOST_WRITE_BIT and ename:VK_ACCESS_HOST_READ_BIT (public 1975 issue 1958). 1976 * Fix slink:VkDescriptorSetLayoutBinding refpage layout (public issue 1977 1964). 1978 * Clarify apiext:VK_EXT_mesh_shader builtin execution modes in 1979 code:PrimitivePointIndicesEXT, code:PrimitiveLinIndicesEXT, and 1980 code:PrimitiveTriangleIndicesEXT valid usage statements (public pull 1981 request 1965). 1982 1983Internal Issues: 1984 1985 * Clarify behavior of return values when multiple pipelines fail to be 1986 created when using apiext:VK_EXT_pipeline_creation_cache_control 1987 (internal issue 3121). 1988 * Add valid usage statement for flink:vkCmdExecuteCommands clarifying that 1989 only occlusion and pipeline statistics queries can be inherited in 1990 slink:VkCommandBufferInheritanceInfo (internal issue 3142). 1991 * Remove `requiredbitmask` valid usage statement for 1992 slink:VkSubmitInfo::pname:pWaitDstStageMask by adding `optional` 1993 attribute to the corresponding XML (internal issue 3200). 1994 * Clarify <<deferred-host-operations-requesting, allocator expectations 1995 for deferred host operations>> (internal issue 3202). 1996 * Add missing SPIR-V capability code:FragmentFullyCovered for 1997 apiext:VK_EXT_conservative_rasterization in XML and the extension 1998 appendix (internal issue 3221). 1999 * Clarify interaction of apiext:VK_KHR_pipeline_robustness with 2000 apiext:VK_KHR_pipeline_library for 2001 slink:VkPipelineRobustnessCreateInfoEXT (internal issue 3227). 2002 * Clarify that code:OpTypeImage code:MS can be 1 for multisampled 2003 rendering to single samples (internal issue 3231). 2004 * Clarify behavior of 2005 ename:VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT in 2006 slink:VkPipelineRobustnessBufferBehaviorEXT and 2007 slink:VkPipelineRobustnessImageBehaviorEXT (internal issue 3237). 2008 * Fix incorrect structure reference for 2009 ename:VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT in elink:VkDynamicState 2010 (internal issue 3257). 2011 * Standardize definitions within the copies chapter - formal mathematical 2012 definitions for pseudocode buffer/image addressing, remove redundant 2013 YCbCr text, move apiext:VK_QCOM_rotated_copy_commands to the standard 2014 location for buffer/image copies (internal merge request 5372). 2015 * Fix SPV and GLSL links in the apiext:VK_EXT_opacity_micromap appendix 2016 (internal merge request 5461). 2017 * Use "`enabled *on* the device`" consistently in preference to "`enabled 2018 *in* the device`", and add a corresponding style guide rule (internal 2019 merge request 5475). 2020 * Update Docker instructions in `BUILD.adoc` and add a helper script 2021 `scripts/runDocker` to run Docker with the latest Khronos build image 2022 (internal merge request 5483). 2023 2024New Extensions: 2025 2026 * apiext:VK_ARM_shader_core_builtins 2027 2028----------------------------------------------------- 2029 2030Change log for September 29, 2022 Vulkan 1.3.230 spec update: 2031 2032Public Issues: 2033 2034 * Add common valid usage statements for bind buffer and bind image 2035 commands to prevent rebinding resources after slink:vkFreeMemory (public 2036 issue 1937). 2037 2038Internal Issues: 2039 2040 * Add common valid usage statements for drawing commands to prevent 2041 binding an input attachment descriptor with an image view that is not in 2042 the framebuffer (internal issue 3223). 2043 * Fix references to nonexistent 'fragmentShadingRate' feature (internal 2044 issue 3235). 2045 * Add valid usage statement to flink:vkCmdCopyQueryPoolResults disallowing 2046 usage on active queries (internal issue 3236). 2047 * Update structure layouts in `video.xml` for the provisional video 2048 extensions to address alignment issues (internal issue 3242). 2049 * Clarify that slink:VkGraphicsPipelineLibraryCreateInfoEXT::pname:flags 2050 excludes linked libraries (internal merge request 5447). 2051 * Change the type of slink:VkVideoReferenceSlotInfoKHR::pname:slotIndex to 2052 `int32_t` in the provisional video extensions (internal merge request 2053 5452). 2054 2055New Extensions: 2056 2057 * apiext:VK_EXT_device_address_binding_report 2058 * apiext:VK_EXT_device_fault 2059 * apiext:VK_EXT_extended_dynamic_state3 2060 * apiext:VK_EXT_pipeline_protected_access 2061 * apiext:VK_NV_optical_flow 2062 * apiext:VK_NV_present_barrier 2063 2064----------------------------------------------------- 2065 2066Change log for September 22, 2022 Vulkan 1.3.229 spec update: 2067 2068Public Issues: 2069 2070 * Add pname:maxMeshWorkGroup*Count limits when no task shader is used, and 2071 refactor some mesh shader valid usage statements for 2072 slink:VkDrawMeshTasksIndirectCommandEXT and flink:vkCmdDrawMeshTasksEXT 2073 into a common validity block (public merge request 1936). 2074 * Add SPIR-V valid usage statement for the mesh shader output count, and 2075 remove some redundant slink:VkPipelineShaderStageCreateInfo valid usage 2076 statements (public merge request 1938). 2077 * Add a comment to the <<versions-1.2-promotions, Differences relative to 2078 VK_EXT_shader_viewport_index_layer>> section describing how the 2079 code:ShaderViewportIndexLayerEXT capability was split into two 2080 capabilities in Vulkan 1.2 (internal merge request 1951). 2081 2082Internal Issues: 2083 2084 * Be more explicit about floating-point rules in the 2085 <<spirvenv-precision-operation, Precision and Operation of SPIR-V 2086 Instructions>> section (internal issues 2795, 2845). 2087 * Miscellaneous minor phrasing and XML fixes for the H.264 / H.265 2088 provisional video extensions (internal issue 3065). 2089 * Clarifications to the style guide to clarify terminology for EXT 2090 extension process and specify behavior more tightly than before 2091 (internal merge request 5268). 2092 * Add a CI script to check consistency of internal links in HTML output 2093 (internal merge request 5433). 2094 * Updates to provisional video extensions (internal merge request 5434) 2095 including: 2096 ** Remove H.264 MVC support from apiext:VK_EXT_video_decode_h264. 2097 ** Rename parameter set related fields in the provisional video extension 2098 APIs. 2099 ** Rename and clarify miscellaneous parameters in the provisional video 2100 extension APIs. 2101 ** Fix implicit valid usage related markup in `vk.xml` related to the core 2102 and decode video extension APIs. 2103 ** Add previously missing definitions and fix incorrect definitions in the 2104 Video Std headers. 2105 2106----------------------------------------------------- 2107 2108Change log for September 15, 2022 Vulkan 1.3.228 spec update: 2109 2110Public Issues: 2111 2112 * Specify that <<pipelines-graphics-subsets-dynamic-state, dynamic state 2113 for pipeline subsets>> is ignored (public issue 1902). 2114 * Remove un-needed `wayland-client.h` include from `vulkan.h` (public pull 2115 request 1905). 2116 * Add valid usage statement requiring an index buffer be bound for indexed 2117 drawing commands (public issue 1924). 2118 * Miscellaneous markup fixes (public pull request 1946). 2119 2120Internal Issues: 2121 2122 * Clarify that flink:vkCmdWaitEvents must: not execute before a 2123 flink:vkSetEvent it waits on (internal issue 2971). 2124 * Update valid usage statement in the 2125 <<spirvenv-module-validation-standalone, Standalone SPIR-V>> section to 2126 clarify the interaction of *Workgroup* *Scope* with code:ExecutionModel 2127 *TessellationControl* (internal issue 3071). 2128 * Fix 2129 slink:VkMemoryDedicatedRequirementsKHR::pname:requiresDedicatedAllocation 2130 for ename:VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT (internal issue 3074). 2131 * Clarify in elink:VkFormatFeatureFlagBits that 2132 ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT and 2133 ename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT are implied for unextended 2134 Vulkan 1.0 (internal issue 3099). 2135 * Add `tasks` attribute to XML `<command>` tags and tag core, KHR, and EXT 2136 commands (internal issue 3117). 2137 * Add more valid usage statements to prohibit feedback loop layouts when 2138 the pname:attachmentFeedbackLoopLayout feature is not enabled (internal 2139 issue 3189). 2140 * Clarify in the <<fundamentals-floatingpoint, Floating-Point 2141 Computation>> section that Inf and NaN inputs and outputs may: result in 2142 undefined values (internal issue 3208). 2143 * Update common valid usage statements for stage masks to properly 2144 interact with apiext:VK_NV_shading_rate_image and 2145 apiext:VK_KHR_fragment_shading_rate (internal issue 3228). 2146 * Disallow permanent semaphore/fence imports with copy transference in 2147 slink:VkImportFenceFdInfoKHR and slink:VkImportSemaphoreFdInfoKHR 2148 (internal merge request 4930). 2149 * Specify in flink:vkGetPhysicalDeviceSurfacePresentModesKHR and 2150 slink:VkSurfaceCapabilities2KHR that some surface properties are 2151 undefined when apiext:VK_GOOGLE_surfaceless_query is used (internal 2152 merge request 5157). 2153 * Add an Informative section describing the 2154 <<boilerplate-video-std-headers, Video Std Headers>> provided with the 2155 provisional video extensions (internal merge request 5384). 2156 * Clarify Boolean values vs. <<limits-maxComputeSharedMemorySize, 2157 pname:maxComputeSharedMemorySize>> (internal merge request 5386). 2158 * Update markup for the <<boilerplate-wsi-header-table, Window System 2159 Extensions and Headers>> table to render all header files no matter 2160 which extensions the spec is built with (internal merge request 5411). 2161 * Move timestamp example to the correct issue in the 2162 apiext:VK_EXT_calibrated_timestamps extension appendix (internal merge 2163 request 5420). 2164 * Add missing flink:vkCmdPushDescriptorSetWithTemplateKHR valid usage 2165 statements for pname:set (internal merge request 5428). 2166 2167New Extensions: 2168 2169 * apiext:VK_EXT_mutable_descriptor_type (promoted from `VALVE`). 2170 2171----------------------------------------------------- 2172 2173Change log for September 8, 2022 Vulkan 1.3.227 spec update: 2174 2175Public Issues: 2176 2177 * Add interactions for dynamic rendering in flink:vkCmdClearAttachments 2178 (public issue 1835). 2179 * Add code:MinLod clamping rules to <<textures-gather, Texel Gathering>> 2180 and update the <<features-minLod, pname:minLod>> feature and 2181 slink:VkImageViewMinLodCreateInfoEXT to reference that language 2182 (partially resolves public issue 1836). 2183 * Remove `ifdef` from <<spirvenv-module-validation-standalone, Standalone 2184 SPIR-V>> valid usage statement (public pull request 1926). 2185 * Assign VUID 07119 to a <<spirvenv-module-validation-standalone, 2186 Standalone SPIR-V>> valid usage statement that didn't get one in the 2187 last spec update (public issue 1928). 2188 * Add missing <<spirvenv-module-validation-runtime, Runtime SPIR-V>> valid 2189 usage statements for apiext:VK_EXT_mesh_shader (public pull request 2190 1931). 2191 * Fix duplicate 2192 slink:VkGraphicsPipelineCreateInfo::pname:pInputAssemblyState 2193 description (public issue 1934). 2194 2195Internal Issues: 2196 2197 * Add a valid usage statement for 2198 ename:VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR to the common 2199 validity statements for barriers (internal issue 3188). 2200 * A valid usage statements to performance query begin commands requiring 2201 matching queue family index (internal issue 3207). 2202 * Add a `stride` attribute to the XML to annotate arrays passed to 2203 commands where consecutive members are not tightly packed (internal 2204 issue 3205). 2205 * Fix the `limittype` attribute value for 2206 slink:VkPhysicalDeviceVulkan11Features::pname:subgroupSize and 2207 slink:VkPhysicalDeviceSubgroupProperties::pname:subgroupSize (internal 2208 issue 3209). 2209 * Eliminate Asciidoctor warnings about duplicate feature anchors in 2210 `validusage` build target (internal issue 3216). 2211 * Add the Vulkan logo to the specification PDF title page and HTML 2212 document header (internal issue 3217). 2213 * Markup fixes for VkPerformanceCounterResultKHR and 2214 VkPipelineRobustnessCreateInfoEXT (internal issue 3219). 2215 * Add a new section of the <<lexicon, Lexicon>> appendix for 2216 <<lexicon-video-abbreviations, video-specific abbreviations>> (internal 2217 merge request 5345). 2218 * Add <<formats-size-compatibility, size compatible>> definition to the 2219 <<formats, Formats>> chapter and use it to replace the old "`format size 2220 compatibility`" language in the <<copies, Copy Commands>> chapter 2221 (internal merge request 5369). 2222 * Remove the "`blocked image`" definition from and instead distinguish 2223 images with a 1x1x1 <<formats-compatibility-classes, texel block 2224 extent>> from other images. Use this language to simplify valid usage 2225 statements in the <<copies, Copy Commands>> chapter (internal merge 2226 request 5370). 2227 * Add valid usage statement to the 2228 <<spirvenv-module-validation-standalone, Standalone SPIR-V>> section 2229 requiring code:Boolean values to be code:BuiltIn values for code:Input / 2230 code:Output (internal merge request 5387). 2231 * Add and update valid usage statements for drawing commands with 2232 multisampled pipelines and single-sampled attachments when 2233 apiext:VK_EXT_multisampled_render_to_single_sampled is enabled (internal 2234 merge request 5392). 2235 * Remove pname:apiVersion loading requirements for implicit layers from 2236 slink:VkApplicationInfo (internal merge request 5393). 2237 * Minor markup fixes for slink:VkPipelineRobustnessCreateInfoEXT (internal 2238 merge request 5399). 2239 * Refactor style guide markup and use consistent anchor naming scheme 2240 (internal merge request 5400). 2241 * Require apiext:VK_KHR_spirv_1_4 for apiext:VK_EXT_mesh_shader in 2242 `vk.xml` (internal merge request 5401). 2243 * Add the <<shaders-termination, Shader Termination>> section and a 2244 corresponding valid usage statement for draw dispatch commands 2245 (cross-api/memory-model issue #145). 2246 2247New Extensions: 2248 2249 * apiext:VK_EXT_legacy_dithering (internal merge request 5042). 2250 2251----------------------------------------------------- 2252 2253Change log for September 1, 2022 Vulkan 1.3.226 spec update: 2254 2255Public Issues: 2256 2257 * Add missing SPV_KHR_ray_tracing storage class valid usage statement for 2258 code:ShaderRecordBufferKHR (public merge request 1895). 2259 * Add a NOTE to slink:VkAccelerationStructureCreateInfoKHR about 2260 ename:VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR (public issue 1904). 2261 * Add a standalone SPIR-V valid usage statement for code:OpImageWrite 2262 component mismatch (public merge request 1916). 2263 * Generate the "`SPIRV Image Format`" and "`Plane Compatibility Format`" 2264 tables from `vk.xml` (public merge request 1922). 2265 * Add a NOTE to dlink:VK_USE_64_BIT_PTR_DEFINES to define its availability 2266 Vulkan headers starting with VK_HEADER_VERSION 174 (public merge request 2267 1918). 2268 2269Internal Issues: 2270 2271 * Update issue #2 in the apiext:VK_EXT_depth_range_unrestricted appendix 2272 to match core spec text (internal issue 2445). 2273 * Clarify <<shaders-interpolation-decorations, Interpolation decorations>> 2274 in pre-rasterization (internal issue 2721). 2275 * Relax implicit layer disabling requirements in slink:VkApplicationInfo 2276 (internal issue 2856). 2277 * Update <requires> `extension` attribute in XML to support multiple 2278 extensions with AND/OR connectives (internal issue 2922). 2279 * Update provisional video API queries for usage hint and optimized 2280 implementation settings (internal issue 2986). 2281 * Relax slink:VkImageViewCreateInfo valid usage statement 01584 to allow 2282 layers/levels for compressed format views of compressed format images 2283 (internal issue 3063). 2284 * Remove slink:VkImageViewCreateInfo valid usage statement 04739 (internal 2285 issue 3164). 2286 * Specify that addresses returned by flink:vkGetBufferDeviceAddress must 2287 satisfy the alignment requirements of the device (internal issue 3176). 2288 * Update makeSpec script to properly clean OUTDIR when it's explicitly 2289 specified (internal issue 3194). 2290 * Ensure that a mutable type list is provided in 2291 slink:VkDescriptorSetLayoutCreateInfo when required (internal issue 2292 3198). 2293 * Update clarity of the Khronos specification copyright statement 2294 regarding normative references to external specifications and the 2295 Khronos Intellectual Property Rights Policy (internal issue 3203). 2296 * Rename '.txt' -> '.adoc' for all Asciidoctor markup files in the 2297 repository, and update scripts and tools to match (internal issue 3204) 2298 * Tag apiext:VK_ARM_rasterization_order_attachment_access as promoted to 2299 EXT in XML (internal merge request 5364) 2300 * Fix a typo in the "` Color Sample Coverage`" section (internal merge 2301 request 5367) 2302 * Fix apiext:VK_EXT_fragment_density_map2 appendix to include the correct 2303 extension interface information (internal merge request 5368) 2304 * Remove unwieldy and unnecessary list of copy functions from the 2305 introduction of the <<copies, Copy Commands>> chapter (merge request 2306 5373). 2307 * Move Asciidoctor attributes enabling version and extension attributes 2308 into a generated file `specattribs.adoc` (internal merge request 5396). 2309 2310New Extensions 2311 2312 * apiext:VK_EXT_depth_clamp_01 2313 * apiext:VK_EXT_mesh_shader 2314 2315----------------------------------------------------- 2316 2317Change log for August 18, 2022 Vulkan 1.3.225 spec update: 2318 2319 * Update release number to 225 for this update. 2320 2321Public Issues: 2322 2323 * Remove unused code from `spirvcapgenerator.py` (public merge request 2324 1912). 2325 * Remove redundant ftext:vkCmdDraw*Indirect valid usage statements 00478 2326 and 00530, which are already covered by valid usage statements for the 2327 corresponding stext:VkDraw*IndirectCommand (public merge request 1913). 2328 2329Internal Issues: 2330 2331 * Clarify <<renderpass-attachment-contents, attachment preserve behavior>> 2332 when multiview is enabled (internal issue 3031). 2333 * Update apiext:VK_KHR_format_feature_flags2 to version 2, ensuring that 2334 implementations report 2335 slink:VkFormatProperties3KHR::pname:bufferFeatures correctly for storage 2336 reads/writes without format, and replace old valid usage statements 2337 06423 and 06424 for draw dispatch commands with new statements 2338 expressing the constraints accurately (internal issue 3091). 2339 * Make provisional video APIs follow Vulkan API conventions more closely 2340 (internal issue 3141). 2341 * Move valid usage statement 06879 for 2342 slink:VkMultisampledRenderToSingleSampledInfoEXT to the 2343 slink:VkFramebufferCreateInfo and slink:VkRenderPassAttachmentBeginInfo 2344 valid usage blocks, where the information needed to evaluate it is known 2345 (internal issue 3169). 2346 * Change www.khronos.org/registry/ URLs to registry.khronos.org/ following 2347 a recent change to Khronos webservers (internal issue 3175). 2348 * Allow applications to not provide fragment shader via clarifying edits 2349 in the introduction to the <<fragops, Fragment Operations>> chapter and 2350 in valid usage statement 06896 for slink:VkGraphicsPipelineCreateInfo 2351 (internal issue 3178). 2352 * Fix slink:VkRayTracingPipelineCreateInfoKHR valid usage statement 03590 2353 to correctly refer to pname:pLibraryInterface (internal merge request 2354 5333). 2355 * Fix typo in slink:VkPipelineRasterizationLineStateCreateInfoEXT valid 2356 usage statement 02770 to correctly refer to the pname:smoothLines 2357 feature (internal merge request 5349). 2358 * Fix normative language in the conservative rasterization section to use 2359 `may:` instead of `will` (internal merge request 5354). 2360 2361New Extensions: 2362 2363 * apiext:VK_EXT_rasterization_order_attachment_access 2364 2365----------------------------------------------------- 2366 2367Change log for August 4, 2022 Vulkan 1.3.224 spec update: 2368 2369 * Update release number to 224 for this update. 2370 2371Public Issues: 2372 2373 * Add issues to the apiext:VK_KHR_dynamic_rendering proposal document 2374 discussing render area granularity (public issue 1899). 2375 2376Internal Issues: 2377 2378 * Add missing video `queues` attribute values to commands (internal issue 2379 1593). 2380 * Add valid usage statements to enforce render pass scope restrictions on 2381 flink:vkBeginQuery and flink:vkEndQuery pairs (internal issue 3119). 2382 * Remove overly restrictive valid usage statements for Y'CbCr layered 2383 image creation from slink:VkImageViewCreateInfo (internal issue 3180). 2384 * Enable `codespell` tool in CI to prevent many typos. Switch to pulling 2385 the updated `asciidoctor-spec` Docker container image by SHA256 instead 2386 of name, to work around cache pollution problems in Gitlab and GitHub 2387 Actions CI (internal merge request 5318). 2388 * Add "`Description`" sections to the provisional video extension 2389 appendices (internal merge request 5310). 2390 * Fix codec-specific stext:VkVideo{De,En}code*CapabilitiesEXT structure 2391 chaining in XML to refer to the root slink:VkVideoCapabilitiesKHR 2392 structure that is extended (internal merge request 5323). 2393 * Update slink:VkImageViewCreateInfo valid usage statement to not require 2394 a slink:VkSamplerYcbcrConversionInfo structure for non-sampleable image 2395 views requiring sampler Y'CbCr conversion (internal merge request 5324). 2396 2397New Extensions 2398 2399 * apiext:VK_EXT_attachment_feedback_loop_layout 2400 (internal merge request 4469). 2401 * apiext:VK_SEC_amigo_profiling - internal extension used within ANGLE, no 2402 actual spec language exists yet (internal merge request 5332). 2403 2404----------------------------------------------------- 2405 2406Change log for July 28, 2022 Vulkan 1.3.223 spec update: 2407 2408 * Update release number to 223 for this update. 2409 2410Public Issues: 2411 2412 * Clarify external synchronization requirements for 2413 ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT and 2414 ename:VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT 2415 elink:VkDescriptorBindingFlagBits and flink:vkUpdateDescriptorSets 2416 (public issue 1713). 2417 * Add Vulkan 1.0 valid usage statement for *Subgroup* memory scope to 2418 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 2419 (public merge request 1900). 2420 * Move "`Hit Kind`" valid usage statement from standalone to runtime 2421 SPIR-V validation statements (public merge request 1903). 2422 2423Internal Issues: 2424 2425 * Add the `videocoding` attribute to XML tag:command tags to specify if 2426 commands can be issued only inside a video coding scope, only outside, 2427 or both. Update the validity generator script to add a new column to the 2428 "`Command Properties`" table reflecting this attribute (internal issue 2429 2593). 2430 * Terminology improvements and glossary additions for the provisional 2431 video extensions (internal issue 2609). 2432 * Add valid usage statement disallowing Android hardware buffers for 2433 flink:vkGetDeviceImageMemoryRequirements (internal issue 3107). 2434 * Document why some video and ray tracing bits are defined for 2435 elink:VkPipelineStageFlagBits2 but not for 2436 elink:VkPipelineStageFlagBits, and reserve those bits in `vk.xml` 2437 (internal issue 3120). 2438 * Fix minor typos and markup issues in apiext:VK_QCOM_image_processing 2439 (internal issues 3171, 3172). 2440 * Add interaction with apiext:VK_QCOM_tile_properties to 2441 apiext:VK_QCOM_render_pass_transform appendix (internal merge request 2442 5309). 2443 * Partial sync with OpenXR scripts (internal merge request 5312). 2444 * Clarify that flink:vkGetQueryPoolResults may return ename:VK_NOT_READY 2445 (internal merge request 5313). 2446 * Fix typos identified by the "`codespell`" tool (internal merge request 2447 5316). 2448 * Fix XML `limittype` attributes for pname:*subgroupSize members from 2449 `"exact"` to `"min,pot"` 2450 (https://github.com/KhronosGroup/Vulkan-Profiles/issues/226). 2451 2452 2453----------------------------------------------------- 2454 2455Change log for July 21, 2022 Vulkan 1.3.222 spec update: 2456 2457 * Update release number to 222 for this update. 2458 2459Public Issues: 2460 2461 * Use correct feature in 2462 ename:VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT 2463 description (public pull request 1892). 2464 * GitHub CI: Regenerate and build-test Rust Vulkan bindings (Ash crate) 2465 (public pull request 1894). 2466 2467Internal Issues: 2468 2469 * Clarify that flink:vkCmdClearAttachments can only clear layers in the 2470 current render pass instance. (internal issue 3157). 2471 * Clarify that access to code:Function and code:Private memory works in 2472 <<shaders-helper-invocations, Helper Invocations>> (internal issue 2473 3158). 2474 * Add CI check for bullet list items not preceded by exactly two spaces 2475 (internal issue 3162). 2476 * Remove slink:VkGraphicsPipelineCreateInfo valid usage statement 00726, 2477 superseded by 06897 (internal merge request 5295). 2478 * Update CI to cache Rust crates and build intermediates. (internal merge 2479 request 5297). 2480 * Use `noauto` `limittype` attribute values for values that are 2481 identifiers and cannot be compared, such as PCI bus IDs, driver 2482 versions, UUIDs, descriptions, etc. (internal merge request 5299). 2483 * Specify that slink:VkGeneratedCommandsInfoNV::pname:preprocessBuffer 2484 should not be copied for reuse (internal merge request 5301). 2485 * Update contact and contributor information for some vendor extensions 2486 (internal merge request 5304). 2487 * Partial sync with OpenXR scripts (internal merge request 5308). 2488 2489New Extensions: 2490 2491 * `apiext:VK_QCOM_image_processing` 2492 * `apiext:VK_QCOM_tile_properties` 2493 2494----------------------------------------------------- 2495 2496Change log for July 14, 2022 Vulkan 1.3.221 spec update: 2497 2498 * Update release number to 221 for this update. 2499 2500Public Issues: 2501 2502 * Add dependency of apiext:VK_EXT_blend_operation_advanced on 2503 apiext:VK_KHR_get_physical_device_properties2. (public merge request 2504 1887). 2505 * Update xrefs to features so the feature name is used as the link text, 2506 and marked up consistently. Added a section to the style guide on markup 2507 of feature xrefs (public issue 1889). 2508 2509Internal Issues: 2510 2511 * Consolidate and clarify interpolation of fragment inputs in the 2512 <<primsrast-multisampling, Multisampling>>, <<primsrast-lines-basic, 2513 Basic Line Segment Rasterization>>, <<primsrast-polygons-basic, Basic 2514 Polygon Rasterization>>, and <<shaders-interpolation-decorations, 2515 Interpolation Decorations>> sections (internal issue 3108). 2516 * Add gitlab CI step to regenerate and test the Rust "`Ash`" Vulkan 2517 bindings (internal merge request 5216). 2518 * Note that the result of a <<queries-primitives-generated, Primitives 2519 Generated Query>> is similar to 2520 ename:VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, but not 2521 affected by hardware details (internal issue 3131). 2522 * Swap direction of aliasing of enums shared by 2523 apiext:VK_EXT_filter_cubic and apiext:VK_IMG_filter_cubic to be 2524 consistent with other enums aliased by promotion, and add a note to the 2525 registry schema document to help clarify how the `alias` XML attribute 2526 is used (internal merge request 5276). 2527 * Update XML SPIR-V capabilities section so that 2528 code:RayTraversalPrimitiveCullingKHR is also enabled by 2529 apiext:VK_KHR_ray_query (internal issue 3156). 2530 * Remove reference to adding 2531 <<features-vulkanMemoryModelAvailabilityVisibilityChains, 2532 pname:vulkanMemoryModelAvailabilityVisibilityChains>> as a 2533 <<versions-1.3-new-features, new Vulkan 1.3 feature>>, which did not 2534 happen (merge request 5286). 2535 2536New Extensions: 2537 2538 * apiext:VK_EXT_pipeline_robustness 2539 2540----------------------------------------------------- 2541 2542Change log for July 7, 2022 Vulkan 1.3.220 spec update: 2543 2544 * Update release number to 220 for this update. 2545 2546Public Issues: 2547 2548 * Add a note to elink:VkColorSpaceKHR regarding use of 2549 elink:VK_COLOR_SPACE_PASS_THROUGH_EXT for a linear or non-gamma transfer 2550 function color space (public merge request 1729). 2551 * Fix clamp expression for d_{lo} in the 2552 <<textures-level-of-detail-operation, Level-of-Detail Operation>> 2553 section (partial fix for public issue 1836). 2554 * Update <<spirvenv-module-validation-standalone, Standalone SPIR-V 2555 Validation>> to add explicit valid usage statements for code:Uniform 2556 objects being read only, and for code:Block decorations (public merge 2557 request 1879). 2558 * Add an issue to apiext:VK_KHR_fragment_shader_barycentric for 2559 interactions with MSAA (public merge request 1881). 2560 * Fix XML tagging of slink:VkShaderModuleCreateInfo and add an explicit 2561 valid usage statement so this structure can be validated both as an 2562 explicit parameter, and as part of the pname:pNext chain of 2563 slink:VkPipelineShaderStageCreateInfo (public issue 1883, but a broader 2564 fix in the validation scripts for this case will eventually be 2565 required). 2566 2567Internal Issues: 2568 2569 * Refactor and update descriptor / render pass valid usage statements for 2570 slink:VkAttachmentDescription, slink:VkAttachmentDescription2, 2571 slink:VkAttachmentReference, slink:VkAttachmentReference2 2572 slink:VkRenderPassCreateInfo2, slink:VkSubpassDescription, and 2573 slink:VkSubpassDescription2 (internal issue 2559). 2574 * Modify all of the query commands to use synchronization scope language, 2575 in order to better describe how the commands synchronize with each other 2576 (internal issue 3089). 2577 * Add valid usage statements to slink:VkGraphicsPipelineCreateInfo 2578 slink:VkRayTracingPipelineCreateInfoKHR, and 2579 slink:VkRayTracingPipelineCreateInfoNV restricting the allowed shader 2580 stages (internal issue 3132). 2581 * Remove over-constrained list of data types that can be used together 2582 with code:PerVertexKHR in the 2583 <<shaders-interpolation-decorations-pervertexkhr>> section (internal 2584 issue 3134). 2585 * Document for flink:vkGetAccelerationStructureBuildSizesKHR that 2586 slink:VkAccelerationStructureGeometryKHR::pname:flags must be invariant 2587 between the size query and the build (internal issue 3147). 2588 * Update slink:VkShaderModuleValidationCacheCreateInfoEXT XML to mark that 2589 it extends VkPipelineShaderStageCreateInfo (internal merge request 2590 5210). 2591 * Fix <<resources-image-format-features, Image Format Features>> section 2592 discussion of DRM format modifiers, and some related miscellaneous typos 2593 (internal merge request 5255). 2594 * Clarify that code:RelaxedPrecision does not need to match in the 2595 <<interfaces-iointerfaces-matching, Interface Matching>> rules (internal 2596 issue 3053). 2597 2598----------------------------------------------------- 2599 2600Change log for June 30, 2022 Vulkan 1.3.219 spec update: 2601 2602 * Update release number to 219 for this update. 2603 2604Public Issues: 2605 2606 * Update pipeline image to move push constants outside of descriptor sets 2607 (public issue 1867). 2608 * Correct code:StencilRefLessFrontEXT to code:DepthLess in the early depth 2609 test portion of the <<fragops, Fragment Operations>> chapter (public 2610 pull request 1876). 2611 * Add new driver id ename:VK_DRIVER_ID_MESA_DOZEN (public pull request 2612 1877). 2613 * Relax slink:VkRenderPassCreateInfo valid usage statements 02517 and 2614 02518 to allow ename:VK_SUBPASS_EXTERNAL (public pull request 1878). 2615 2616Internal Issues: 2617 2618 * Move validation of read-only depth/stencil layout with respect to 2619 depth/stencil write from slink:VkGraphicsPipelineCreateInfo to draw time 2620 validation (internal issue 3110). 2621 * Clarify buffer view format features by replacing the undefined term 2622 "`formatted load`" (internal issue 3124). 2623 * Clean up markup of feature structures, and add missing boilerplate 2624 pname:sType / pname:pNext member descriptions where still missing 2625 (internal issue 3128). 2626 * Add new XML `limittype` attribute values to better express constraints, 2627 update which structure type's members are allowed to have the attribute, 2628 and update attributes accordingly (internal merge request 5172). 2629 * Disallow more combinations of ray flags in the 2630 <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> 2631 section and corresponding text in the <<ray-traversal, Ray Traversal>>, 2632 chapter as well as better documenting already disallowed cases (internal 2633 merge request 5220). 2634 * Add <<descriptorsets-updates-consecutive, wording for extrapolated 2635 descriptor updates>> on ename:VK_DESCRIPTOR_TYPE_MUTABLE_VALVE (internal 2636 merge request 5251). 2637 * Clarify alignment requirements for device generated commands. in 2638 slink:VkIndirectCommandsLayoutCreateInfoNV and 2639 slink:VkIndirectCommandsLayoutTokenNV (internal merge request 5252). 2640 * Add `validstructs` attribute to XML `param` tags to specify actual valid 2641 structures allowed in cases where an abstract formal parameter type 2642 (slink:VkBaseInStructure or slink:VkBaseOutStructure) is passed, 2643 primarily to support the Ash Rust binding generator (internal merge 2644 request 5253). 2645 * Add guidance on defining feature structures for WSI extensions in the 2646 "`Feature Structures`" section of the style guide (internal merge 2647 request 5266). 2648 2649New Extensions: 2650 2651 * apiext:VK_EXT_multisampled_render_to_single_sampled 2652 * apiext:VK_EXT_shader_module_identifier 2653 2654----------------------------------------------------- 2655 2656Change log for June 16, 2022 Vulkan 1.3.218 spec update: 2657 2658 * Update release number to 218 for this update. 2659 2660Public Issues: 2661 2662 * Add apiext:VK_KHR_maintenance4 relaxed interface valid usage statement 2663 to the <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> 2664 section (public pull request 1860). 2665 * Fix field name in slink:VkRenderingAttachmentInfo valid usage statement 2666 (public pull request 1861). 2667 * Fix typo in slink:VkFramebufferCreateInfo valid usage statements 04533 / 2668 04544 (public pull request 1873). 2669 * Remove duplicate valid usage statement 06060 (public pull request 1874). 2670 * Rework <<fxvertex-input-address-calculation, Vertex Input Address 2671 Calculation>> section (public pull request 1869). 2672 * Split GitHub CI script into individual jobs to decrease run time (public 2673 pull request 1870). 2674 2675Internal Issues: 2676 2677 * Refactor some valid usage statements for drawing commands that depend on 2678 apiext:VK_EXT_color_write_enable (internal issue 2868). 2679 * Refactor description of 2680 flink:vkGetPhysicalDeviceVideoFormatPropertiesKHR and add 2681 video-profile-specific error codes (internal issues 2965 and 2995). 2682 * Add NOTEs regarding Android layer discovery to 2683 flink:vkEnumerateDeviceLayerProperties and 2684 flink:vkEnumerateDeviceExtensionProperties (internal issue 3070). 2685 * Update slink:VkSubpassDependency valid usage statements based on 2686 language in synchronization chapter (internal issue 3075). 2687 * Rename slink:VkQueueFamilyQueryResultStatusProperties2KHR member from 2688 ptext:supported to pname:queryResultStatusSupport for a provisional 2689 video extension (internal issue 3092). 2690 * Expand allowed use of `limittype` XML attribute to additional limit and 2691 property structures, and validate its use (internal issue 3101). 2692 * Update registry schema and the extension metadocumentation generator 2693 script to interpret extension 'requires' attributes as requiring such 2694 extensions be enabled for device level functionality, rather than just 2695 supported (internal issue 3116). 2696 * Replace XML dependency of apiext:VK_KHR_video_queue on 2697 apiext:VK_KHR_sampler_ycbcr_conversion with a dependency on 2698 apiext:VK_KHR_synchronization2 plus Vulkan 1.1 (internal merge request 2699 5217). 2700 * Fix typo in anchor text in the <<clears-inside, Clearing Images Inside A 2701 Render Pass Instance>> section (internal merge request 5241). 2702 * Use feature template include markup for 2703 slink:VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM 2704 (internal merge request 5242). 2705 2706 2707----------------------------------------------------- 2708 2709Change log for June 9, 2022 Vulkan 1.3.217 spec update: 2710 2711 * Update release number to 217 for this update. 2712 2713Public Issues: 2714 2715 * Clarify meaning of "`private data slot`" for apiext:VK_EXT_private_data 2716 (public issue 1675) 2717 * Minor markup fix in the <<spirvenv-module-validation-standalone>> 2718 section (public merge request 1864). 2719 2720Internal Issues: 2721 2722 * Clarify that <<primsrast-sampleshading, Sample Shading>> affects the 2723 number of times the fragment shader is evaluated, rather than dictating 2724 fragment data (internal issue 3003). 2725 * Clarify interaction of the 2726 slink:VkPhysicalDeviceLimits::pname:strictLines limit with 2727 apiext:VK_EXT_line_rasterization in 2728 slink:VkPhysicalDeviceLineRasterizationFeaturesEXT and the 2729 <<line_linear_interpolation>> section (internal issue 3042). 2730 * Clarify that code:EarlyFragmentTests allows for sample counting after 2731 fragment shading and multisample coverage in the introduction to the 2732 <<fragops, Fragment Operations>> chapter (internal issue 3085). 2733 * Update description of ray tracing <<features-requirements, Feature 2734 Requirements>> for consistency and to remove redundancy. Add an issue to 2735 apiext:VK_KHR_ray_tracing_pipeline explaining why 2736 apiext:VK_KHR_pipeline_library is an interaction, rather than a required 2737 dependency. (internal issue 3103). 2738 * Define alignment requirements for matrices in terms of arrays. 2739 in the <<interfaces-alignment-requirements, 2740 Alignment Requirements>> section 2741 (internal issue 3105). 2742 * Add valid usage statements for code:StorageBuffer and code:Uniform 2743 code:PushConstant types to the <<spirvenv-module-validation-standalone, 2744 Standalone SPIR-V Validation>> section (internal merge request 5080). 2745 * Fix conditional markup interaction for 2746 apiext:VK_KHR_depth_stencil_resolve and apiext:VK_KHR_dynamic_rendering 2747 in slink:VkRenderingInfo and slink:VkRenderingAttachmentInfo valid usage 2748 statements, now that apiext:VK_KHR_dynamic_rendering requires 2749 apiext:VK_KHR_depth_stencil_resolve (internal merge request 5224). 2750 * Clarify dependencies and fix broken chapter links for 2751 apiext:VK_ARM_rasterization_order (internal merge request 5229). 2752 * Add a valid usage statement to flink:vkCmdEndRendering to disallow 2753 calling it when transform feedback is active (internal merge request 2754 5230). 2755 * Update reference to a style guide chapter (internal merge request 5231). 2756 * Clarify that slink:VkExportMemoryAllocateInfo::pname:handleTypes can be 2757 zero in spec description, matching XML and other pname:handleType 2758 members (internal merge request 5234). 2759 2760New Extensions: 2761 2762 * apiext:VK_EXT_metal_objects 2763 * apiext:VK_EXT_non_seamless_cube_map 2764 2765----------------------------------------------------- 2766 2767Change log for June 2, 2022 Vulkan 1.3.216 spec update: 2768 2769 * Update release number to 216 for this update. 2770 * Note: most spec updates will occur on Thursdays going forward, not 2771 Tuesdays. 2772 2773Public Issues: 2774 2775 * Make formal names in the <<synchronization-dependencies-execution>> 2776 section more memorable (public pull request 1837). 2777 * Refactor slink:VkPipelinenfoKHR / slink:VkPipelineInfoEXT markup (public 2778 issue 1857). 2779 * Fix conditional markup in the <<shaders-ray-generation-execution Ray 2780 Generation Shader Execution>> section for references to shader binding 2781 tables (public issue 1858). 2782 * Fix "`a`" -> "`an`" typo (public pull request 1865). 2783 2784Internal Issues: 2785 2786 * Clarify that flink:vkCmdClearAttachments is not a drawing command 2787 (internal issue 3055). 2788 * Remove requirements that the boolean 2789 slink:VkPhysicalDeviceTexelBufferAlignmentProperties::pnamestorageTexelBufferOffsetSingleTexelAlignment 2790 and pname:uniformTexelBufferOffsetSingleTexelAlignment limits must: be a 2791 power of two (internal issue 3081). 2792 * Fix the structextends and constness issues in 2793 apiext:VK_EXT_subpass_merge_feedback (this is a breaking API change, but 2794 there is only one known implementation at present) (internal issue 2795 3095). 2796 * Update to latest asciidoctor-chunker.js so links to undefined anchors in 2797 the chunked HTML outputs are rendered with the undefined anchor and CSS 2798 class `"target-missing"`, instead of as `href="undefined"` (internal 2799 merge request 5170). 2800 2801 2802----------------------------------------------------- 2803 2804Change log for May 24, 2022 Vulkan 1.3.215 spec update: 2805 2806 * Update release number to 215 for this update. 2807 2808Public Issues: 2809 2810 * Fix markup error to make slink:VkImageResolve2 appear right after 2811 slink:VkImageResolve, rather than appearing in the next section (public 2812 pull request 1856). 2813 2814Internal Issues: 2815 2816 * Allow slink:VkDescriptorPoolCreateInfo::pname:poolSizeCount to be `0` in 2817 `vk.xml` (internal issue #2974). 2818 * Add valid usage statements to flink:vkCmdExecuteCommands requiring that 2819 the depth or stencil format in 2820 slink:VkCommandBufferInheritanceRenderingInfo must be 2821 ename:VK_FORMAT_UNDEFINED if a `NULL` attachment is used 2822 (internal issue 3016). 2823 * Remove (incomplete) list of SPIR-V decorations from intro of interface 2824 matching chapter (internal issue 3043). 2825 * Add valid usage statement disallowing 2826 VkImageDrmFormatModifierExplicitCreateInfoEXT in the pname:pNext chain 2827 of slink:VkDeviceImageMemoryRequirementsKHR (internal issue #3051). 2828 * Add missing references to flink:vkQueueSubmit2 in the 2829 <<synchronization-fences-signaling>> and 2830 <<synchronization-semaphores-signaling, Semaphore Signaling>> sections 2831 (internal issue #3077). 2832 * Clarify that pipeline libraries can link against other libraries 2833 following the description of slink:VkPipelineLibraryCreateInfoKHR 2834 (internal issue #3083). 2835 * Fix suffix of some SPIR-V tokens to `AMD` for 2836 apiext:VK_AMD_shader_early_and_late_fragment_tests (internal merge 2837 request #5199). 2838 2839New Extensions: 2840 2841 * apiext:VK_KHR_fragment_shader_barycentric 2842 2843----------------------------------------------------- 2844 2845Change log for May 17, 2022 Vulkan 1.3.214 spec update: 2846 2847 * Update release number to 214 for this update. 2848 2849Public Issues: 2850 2851 * Clarify protected queue creation language for slink:VkDeviceCreateInfo, 2852 slink:VkDeviceQueueCreateInfo, 2853 slink:VkDeviceQueueGlobalPriorityCreateInfoKHR, and 2854 slink:VkDeviceQueueInfo2 (public issue 1761, internal issue 2978). 2855 * Add valid usage statements for usage and format features bits for 2856 resolve image commands (public pull request 1826). 2857 * Add apiext:VK_KHR_depth_stencil_resolve dependency to 2858 apiext:VK_KHR_dynamic_rendering (public pull request 1831). 2859 * Make some missing API dependencies explicit in XML (public issue 1840). 2860 * Mark slink:VkSubresourceLayout2EXT as `returnedonly` in XML (public pull 2861 request 1848). 2862 * Replace manual links in VK_KHR_ray_tracing_maintenance1 appendix (public 2863 pull request 1849). 2864 * Add valid usage statement for pname:pipelinePropertiesIdentifier 2865 feature, and change a valid usage statement to refer to the 2866 pname:imageCompressionControlSwapchain feature rather than the related 2867 extension (public pull request 1852). 2868 2869Internal Issues: 2870 2871 * Fix description of parameters defined by 2872 apiext:VK_EXT_depth_clip_control for slink:VkViewport (internal issue 2873 3044) 2874 * Add valid usage statements to slink:VkGraphicsPipelineCreateInfo banning 2875 graphics pipeline libraries having descriptors for other libraries 2876 (internal issue 3080). 2877 * Add valid usage statements to slink:VkGraphicsPipelineCreateInfo and 2878 flink:vkCmdBindDescriptorSets allowing `NULL` set layouts with 2879 non-independent sets (internal issue 3082). 2880 * Set `noautovalidity` attribute in XML for 2881 flink:vkGetPipelinePropertiesEXT::pname:pPipelineProperties (internal 2882 issue 3088). 2883 * Update apiext:VK_NV_device_diagnostics_config to add a new config bit 2884 (internal merge request 5160). 2885 * Clarify unsupported conservative point/line rasterization in 2886 slink:VkPipelineRasterizationConservativeStateCreateInfoEXT and in valid 2887 usage statements for slink:VkGraphicsPipelineCreateInfo (internal merge 2888 request 5169). 2889 * Add missing `limittype` attributes to XML for 2890 slink:VkQueueFamilyProperties* and slink:VkFormatProperties* members 2891 (internal merge requests 5171 and 5175). 2892 * Improve XML `limittype` attribute of 2893 slink:VkPhysicalDeviceFragmentShadingRatePropertiesKHR::pname:maxFragmentShadingRateCoverageSamples 2894 for tool chain usage (internal merge request 5177). 2895 * Change description of slink:VkPipelineLayoutCreateInfo::pname:flags now 2896 that there are flag bits reserved for the underlying type (internal 2897 merge request 5180). 2898 * Fix typos in slink:VkGraphicsPipelineCreateInfo valid usage statements 2899 (internal merge request 5191). 2900 * Move attribute settings used in commonvalidity includes inside valid 2901 usage blocks to generate correct validusage.json text (internal merge 2902 request 5195). 2903 2904New Extensions: 2905 2906 * apiext:VK_AMD_shader_early_and_late_fragment_tests 2907 2908----------------------------------------------------- 2909 2910Change log for May 10, 2022 Vulkan 1.3.213 spec update: 2911 2912 * Update release number to 213 for this update. 2913 2914Public Issues: 2915 2916 * Replace the list of <<formats-packed, Packed Formats>> with a generated 2917 version, and update the format generator script to support conditionals 2918 (public pull request 1823). 2919 * Fix typo in apiext:VK_INTEL_performance_query (public issue 1845). 2920 2921Internal Issues: 2922 2923 * Add valid usage statement limiting 2924 slink:VkDisplaySurfaceCreateInfoKHR::pname:transform to a single, 2925 supported transformation (internal merge request 5166). 2926 * Update sample code for apiext:VK_KHR_ray_query in the extension appendix 2927 (internal issue 3066). 2928 * Fix some `limittype` attributes for 2929 slink:VkPhysicalDeviceTransformFeedbackPropertiesEXT and 2930 slink:VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV members in 2931 `vk.xml` (internal merge requests 5173 and 5174). 2932 2933New Extensions: 2934 2935 * apiext:VK_EXT_image_compression_control 2936 * apiext:VK_EXT_pipeline_properties 2937 * apiext:VK_EXT_subpass_merge_feedback 2938 * apiext:VK_KHR_ray_tracing_maintenance1 2939 2940----------------------------------------------------- 2941 2942Change log for April 21, 2022 Vulkan 1.3.212 spec update: 2943 2944 * Update release number to 212 for this update. 2945 2946Public Issues: 2947 2948 * Add <<attachment-type-imagelayout, layout requirements for resolve 2949 attachments>> (public issue 1777). 2950 * Improve description of and references to elink:VkCompareOp (public pull 2951 request 1805). 2952 * Fix typos in <<fundamentals-api-name-aliases, typo alias example>> 2953 (public pull request 1821). 2954 2955Internal Issues: 2956 2957 * Modify pipeline layout override for 2958 apiext:VK_EXT_graphics_pipeline_library (internal merge request 5164) 2959 * Include graphics pipelines in definition of 2960 ename:VK_PIPELINE_CREATE_LIBRARY_BIT_KHR (internal issue 3068). 2961 * Add cap for B frame as L1 reference, and disable SPS 2962 direct_8x8_inference_flag in provisional apiext:VK_EXT_video_encode_h264 2963 extension (internal issue 3064). 2964 * Add implementor's note for memory type index ambiguity to 2965 slink:VkMemoryAllocateInfo for 2966 apiext:VK_ANDROID_external_memory_android_hardware_buffer (internal 2967 issue 2762). 2968 * Minor editorial fixes for the <<memory, Memory Allocation>> chapter. 2969 2970----------------------------------------------------- 2971 2972Change log for April 5, 2022 Vulkan 1.3.211 spec update: 2973 2974 * Update release number to 211 for this update. 2975 2976Public Issues: 2977 2978 * Clarify dynamic offset with ename:VK_WHOLE_SIZE including new 2979 <<buffer-info-effective-range>> language (public issue 1546). 2980 * Relax depth copy requirement in common copy image valid usage statement 2981 00153 to ename:VK_IMAGE_TYPE_3D only and clarify copying depth slices 2982 for slink:VkImageCopy (public issue 1804). 2983 * Avoid a chain of enumerant aliases in `vk.xml` by aliasing 2984 ename:VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR directly to 2985 ename:VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT (public issue 1814). 2986 * Fix structure name containing pname:compareMask value in 2987 flink:vkCmdSetStencilCompareMask (public pull request 1806). 2988 * Fix miiscellaneous minor markup issues (public pull request 1810). 2989 * Simplify <<fundamentals-api-name-aliases, typo alias example>> to refer 2990 to aliases in the core API rather than extensions (public pull request 2991 1811). 2992 * Fix order of swapchain vs device destruction in 2993 flink:vkCreateSwapchainKHR (public pull request 1817). 2994 * Minor fix for VK_EXT_graphics_pipeline_library proposal vertex shader 2995 sample code (public pull request 1819). 2996 2997Internal Issues: 2998 2999 * Clarify timestamps write when the stage is done for 3000 flink:vkCmdWriteTimestamp and flink:vkCmdWriteTimestamp2 (internal issue 3001 2287). 3002 * Add pname:samplerFilterMinmax feature valid usage statement to 3003 slink:VkSamplerCreateInfo (internal issu 2747). 3004 * Add success and error codes to `vk.xml` for flink:vkWaitForPresentKHR 3005 (internal issue 2822). 3006 * Add footnote to flink:vkGetDeviceProcAddr suggesting, but not requiring 3007 returning `NULL` for core commands beyond the version supported by the 3008 implementation (internal issue 3002). 3009 * Fix valid usage statement for slink:VkImageFormatListCreateInfo when the 3010 image is created with 3011 ename:VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT (internal issue 3012 3032). 3013 * Disallow binding ray tracing pipelines to protected command buffers in 3014 flink:vkCmdBindPipeline (internal issue 3034). 3015 * Update valid usage statements for interaction of 3016 flink:vkGetRayTracingShaderGroupHandlesKHR and 3017 flink:vkGetRayTracingCaptureReplayShaderGroupHandlesKHR with 3018 apiext:VK_KHR_pipeline_library (internal issue 3040). 3019 * Add capability flags to report support to disable transform skip and use 3020 B frame in L1 reference list for the provisional 3021 apiext:VK_EXT_video_encode_h265.txt extension (internal issue 3050). 3022 * Update description of 3023 slink:VkPipelineShaderStageCreateInfo::pname:module and add valid usage 3024 for modules being optional when apiext:VK_EXT_graphics_pipelin_library 3025 is supported (internal issue 3059). 3026 * Remove redundant slink:VkVideoEncodeInfoKHR and 3027 slink:VkVideoDecodeInfoKHR pname:codedOffset / pname:codedExtent 3028 parameters from the provisional video extensions (internal issue 3062). 3029 * Fix "`code:VkDescriptorSetLayout`" typo in 3030 flink:vkCmdBindDescriptorSets. 3031 3032New Extensions: 3033 3034 * apiext:VK_EXT_image_2d_view_of_3d 3035 3036 3037----------------------------------------------------- 3038 3039Change log for March 29, 2022 Vulkan 1.3.210 spec update: 3040 3041 * Update release number to 210 for this update. 3042 3043Public Issues: 3044 3045 * Clarify that descriptors are not referenced for unused 3046 ename:VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT descriptors unless 3047 dynamically used (public issue 1794). 3048 * Remove "`If renderpass is NULL`" from slink:VkFramebufferCreateInfo 3049 valid usage statements (public issue 1800). 3050 3051Internal Issues: 3052 3053 * Add valid usage statements to slink:VkAttachmentDescription and 3054 slink:VkAttachmentDescription2 for the cases when pname:loadOp is or 3055 pname:stencilLoadOp is ename:VK_ATTACHMENT_LOAD_OP_LOAD and 3056 pname:initialLayout is ename:VK_IMAGE_LAYOUT_UNDEFINED, and when 3057 pname:format is ename:VK_FORMAT_UNDEFINED (internal issue 2349). 3058 * Add valid usage statements to slink:VkRenderPassMultiviewCreateInfo and 3059 slink:VkSubpassDescription2 to respect <<limits-maxMultiviewViewCount, 3060 pname:maxMultiviewViewCount>> (internal issue 2511). 3061 * Clarify definition of <<shaders-staticuse, static use instructions>> 3062 (internal issue 2639). 3063 * Fix typo pname:pRanges -> pname:pRegions in common validity statements 3064 for copy image commands (internal issue 3052). 3065 * Update valid usage statement for build acceleration structure common VUs 3066 to allow inactive instances (internal merge request 5116). 3067 * Require <<features-colorWriteEnable, pname:colorWriteEnable>> for 3068 apiext:VK_EXT_color_write_enable in the <<features-requirements, Feature 3069 Requirements>> section. 3070 * Better specify when depth/stencil must be written in 3071 slink:VkPipelineShaderStageCreateInfo valid usage statements. 3072 3073New Extensions: 3074 3075 * apiext:VK_EXT_graphics_pipeline_library 3076 * apiext:VK_EXT_primitives_generated_query 3077 3078----------------------------------------------------- 3079 3080Change log for March 23, 2022 Vulkan 1.3.209 spec update: 3081 3082 * Update release number to 209 for this update. 3083 3084Public Issues: 3085 3086 * Add VU to slink:VkImageViewCreateInfo ensuring 3087 slink:VkImageViewCreateInfo::pname:format and 3088 slink:VkSamplerYcbcrConversionCreateInfo::pname:format are the same when 3089 used together (public issue 1752). 3090 * Add VU to slink:VkMemoryAllocateInfo to limit to one import operation at 3091 a time (public issue 1782). 3092 3093Internal Issues: 3094 3095 * Rephrase some VUs for apiext:VK_EXT_color_write_enable (internal issue 3096 2868). 3097 * Update code:Std* structures in provisional video extensions to remove 3098 SPS and VPS IDs from code:StdVideoDecode*PictureInfo. The implementation 3099 should obtain the IDs indirectly from the associated PPS picture 3100 parameters based on the picture parameter and slice header PPS IDs. 3101 Unify/add STD Encode h.264/265 weight tables (internal issue 2930). 3102 * Many minor updates to versioning and reporting for the provisional video 3103 extensions (internal issue 3019). 3104 * Add VU to slink:VkDeviceCreateInfo to require consistent global 3105 priorities for protected and unprotected queues created from the same 3106 queue family (internal issue 3021). 3107 * Fix some `ifndef::` conditional expression markup (internal issue 3038). 3108 * Remove the "`Common Operation`" section near the start of the <<copies>> 3109 chapter and refactor the bullet points into commonvalidity valid usage 3110 statements, if not already covered by VUs (internal issue 3039). 3111 * Add some valid usage statements to the 3112 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 3113 section that were already being checked by `spirv-val` (internal merge 3114 request 5081). 3115 * Make markup for code:OpImage*Dref* consistent (internal merge request 3116 5091). 3117 * Remove VU 04676, which replicates a statement in the SPIR-V 3118 specification, from <<spirvenv-module-validation-standalone, Standalone 3119 SPIR-V Validation>> (internal merge request 5094). 3120 * Clarify that the pname:finalLayout of an attachment is not ignored in 3121 the <<renderpass-load-store-ops>> section for 3122 slink:VkAttachmentDescription (internal merge request 5101). 3123 * Add VU for ename:VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state to 3124 the common validity statements for drawing commands (internal merge 3125 request 5103). 3126 3127----------------------------------------------------- 3128 3129Change log for March 15, 2022 Vulkan 1.3.208 spec update: 3130 3131 * Update release number to 208 for this update. 3132 3133Internal Issues: 3134 3135 * Change definition of _inactive triangle_ in the 3136 <<acceleration-structure-inactive-prims, Inactive Primitives and 3137 Instances>> section to one for which the first (X) component of _any_ 3138 vertex is NaN (internal issue 3026). 3139 * Add storage image equivalence for code:AHardwareBuffer-backed external 3140 memory in slink:VkMemoryAllocateInfo and the 3141 <<memory-external-android-hardware-buffer-usage, AHardwareBuffer Usage 3142 Equivalence>> table (internal issue 3004). 3143 3144New Extensions: 3145 3146 * apiext:VK_KHR_portability_enumeration 3147 3148----------------------------------------------------- 3149 3150Change log for March 8, 2022 Vulkan 1.3.207 spec update: 3151 3152 * Update release number to 207 for this update. 3153 3154GitHub Issues: 3155 3156 * Rejoin part of flink:vkCreateSwapchainKHR language that had become 3157 dislocated from the start of the description (public pull request 1613). 3158 * Correct the `limittype` attribute for 3159 slink:VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV::pname:maxFragmentShadingRateInvocationCount 3160 (public issue 1767). 3161 * Fix markup typo in 3162 slink:VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR 3163 (public issue 1786). 3164 * Use consistent terminology for variable-sized descriptor bindings, and 3165 add a glossary entry for the term (public issue 1724). 3166 * Specify `optional` attribute correctly for the 3167 pname:pDrmFormatModifierProperties member of 3168 slink:VkDrmFormatModifierPropertiesListEXT and 3169 slink:VkDrmFormatModifierPropertiesList2EXT (public issue 1766). 3170 * Fix `limittype` attribute value for 3171 slink:VkPhysicalDeviceLimits::pname:maxColorAttachments (public issue 3172 1768). 3173 * Add valid usage statements to slink:VkRenderPassMultiviewCreateInfo and 3174 slink:VkSubpassDescription2 to constrain requirements for the 3175 <<features-multiview>> feature on render pass creation (public issue 3176 1774). 3177 * Fix typos in the apiext:VK_KHR_deferred_host_operations appendix (public 3178 issue 1784). 3179 * Fix typo "`unscaled`" -> "`scaled`" in filtering and conversion rules 3180 for flink:vkCmdBlitImage (public merge request 1792). 3181 3182Internal Issues: 3183 3184 * Clarify SPIR-V valid usage statement 04680, and remove 06273, by stating 3185 all possible uses of code:OpTypeRuntimeArray allowed and then removing 3186 the restriction at runtime if <<features-runtimeDescriptorArray, 3187 runtimeDescriptorArray>> is not enabled (internal issue 2408). 3188 * Update <<resources-image-inherited-usage>> and 3189 slink:VkImageViewCreateInfo to remove requirement for a YCbCr sampler 3190 for video image views (internal issue 2688). 3191 * Specify in the <<primsrast-depthbias-computation, Depth Bias 3192 Computation>> section that depth bias only works with polygon topologies 3193 with any polygon mode, but not line and point topologies (internal issue 3194 2793). 3195 * Add slink:VkVideoDecodeCapabilitiesKHR, 3196 elink:VkVideoDecodeCapabilityFlags, and 3197 elink:VkVideoDecodeCapabilityFlagBitsKHR to the provisional 3198 apiext:VK_KHR_video_decode_queue extension (internal issue 2964). 3199 * Clarify which layers of an attachment et automatic layout transitions in 3200 the <<renderpass-layout-transitions>> section (internal issue 3012). 3201 * Make slink:VkDeviceImageMemoryRequirements::pname:planeAspect `optional` 3202 in `vk.xml` (internal issue 3020). 3203 * Make it more obvious that an AS update cannot change active <-> inactive 3204 primitives and instances in the <<acceleration-structure-update, 3205 Acceleration Structure Update Rules>> section (internal issue 3025). 3206 * Clarify when the various ptext:p*State members of 3207 slink:VkGraphicsPipelineCreateInfo members are used (internal issue 3208 3028). 3209 * Fix resolution of issues 1 and 3 for apiext:VK_EXT_depth_clip_control 3210 (internal merge request 5057). 3211 * Add VUs to slink:VkAttachmentDescription2 to avoid specifying stencil 3212 layout twice with depth/stencil attachments. 3213 * Fix markup typo in slink:VkPhysicalDeviceMultiDrawPropertiesEXT that 3214 resulted in the wrong structure name being embedded in common valid 3215 usage statements. 3216 * Fix missing `len` attribute in `vk.xml` for 3217 slink:VkVideoProfilesKHR::pname:pProfiles. 3218 3219New Extensions: 3220 3221 * apiext:VK_VALVE_descriptor_set_host_mapping 3222 3223----------------------------------------------------- 3224 3225Change log for February 17, 2022 Vulkan 1.3.206 spec update: 3226 3227 * Update release number to 206 for this update. 3228 3229GitHub Issues: 3230 3231 * Add valid usage statements common to draw dispatch commands restricting 3232 allowed instructions (public issue 1749). 3233 * Remove unused elink:VkPrivateDataSlotCreateFlagBits type from `vk.xml` 3234 (public issue 1754). 3235 * Clarify that flink:vkGetInstanceProcAddr should return a valid function 3236 pointer when the first argument is either NULL or a valid instance 3237 handle (public issue 1763). 3238 * Add `returnedonly="true"` attribute to 3239 slink:VkPhysicalDeviceShaderIntegerDotProductProperties in `vk.xml` 3240 (public issue 1771). 3241 * Add `objecttype` attribute to 3242 slink:VkDeviceMemoryReportCallbackDataEXT::pname:objectHandle in 3243 `vk.xml` (public issue 1772). 3244 3245Internal Issues: 3246 3247 * Update encoder capability APIs in the provisional video extensions to 3248 align with H.264/H.265 codecs and support a broader range of 3249 implementations (internal issues 1842 / 2842). 3250 * Add `spirvextension` tag to `vk.xml` expressing the relationship between 3251 apiext:VK_INTEL_shader_integer_functions2 and 3252 `SPV_INTEL_shader_integer_functions` (internal issue 2899) 3253 * Add a deprecation note for code:WorkgroupSize (internal issue 2908). 3254 * Align the provisional slink:VkVideoEncodeH264VclFrameInfoEXT structure 3255 to the similar one in apiext:VK_EXT_video_encode_h265 (internal issue 3256 2966). 3257 * Add valid usage statements making code:SkipTrianglesKHR and 3258 code:SkipAABBsKHR mutually exclusive (internal issue 2994). 3259 * Do not include valid usage statements requiring that the 3260 <<features-extendedDynamicState, extendedDynamicState>> feature be 3261 enabled when building Vulkan 1.3 specifications (internal issue 3005). 3262 * Update valid usage statements 06423 and 06424 common to draw dispatch 3263 commands to use "`image view format`" rather than "`image format`" 3264 (internal issue 3008). 3265 * Remove mistaken requirement of 3266 <<features-descriptorBindingUniformBufferUpdateAfterBind, 3267 pname:descriptorBindingUniformBufferUpdateAfterBind>> for the 3268 <<profile-features-roadmap-2022, Roadmap 2022>> profile (internal issue 3269 3017). 3270 * Remove mistaken requirement of 3271 <<features-vulkanMemoryModelAvailabilityVisibilityChains, 3272 pname:vulkanMemoryModelAvailabilityVisibilityChains>> for Vulkan 1.3 in 3273 the <<features-requirements, Feature Requirements>> section. 3274 * Add valid usage statements to 3275 sname:VkCommandBufferInheritanceRenderingInfo, 3276 sname:VkPipelineRenderingCreateInfo, and sname:VkRenderingInfo requiring 3277 that pname:depthAttachmentFormat and pname:stencilAttachmentFormat 3278 include the corresponding aspects. 3279 * Remove references to 3280 slink:VkPhysicalDeviceBufferDeviceAddressFeaturesEXT when 3281 apiext:VK_EXT_buffer_device_address is not present. 3282 * Clarify that excess image write data is discarded in the 3283 <<textures-output-format-conversion, Texel Output Format Conversion>> 3284 section (internal merge request 5053). 3285 3286----------------------------------------------------- 3287 3288Change log for February 4, 2022 Vulkan 1.3.205 spec update: 3289 3290 * Update release number to 205 for this update. 3291 3292GitHub Issues: 3293 3294 * Fix <<renderpass-attachment-nonattachment>> access language. Add related 3295 valid usage statements for flink:vkCmdExecuteCommands and common VUs for 3296 drawing commands, and update the glossary definition of "`Image 3297 Subresources`" to include "`a specific ... set of aspects of an image`" 3298 (public issues 1340, 1345, 1559; internal issues 2152, 2725). 3299 * Fix markup "If" and punctuation issues (public pull request 1725). 3300 * Fix link to incorrect structure for flink:vkCmdSetDepthBias command 3301 (public pull request 1726). 3302 * Improve wording of vkCmdBindDescriptorSets (public pull request 1732). 3303 * Fix mismatching struct member descriptions in 3304 slink:VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV (public issue 3305 1735, 1736). 3306 * Clarify that slink:VkImageCreateInfo::pname:flags is referred to by 3307 slink:VkImageViewCreateInfo valid usage statement 04971 (public issue 3308 1740). 3309 * Add missing `SPV_KHR_device_group` `spirvextension` tag to `vk.xml` 3310 (public issue 1745). 3311 * Reference underlying type instead of promoted type alias in 3312 `structextends` attributes for slink:VkSampleLocationsInfoEXT and 3313 slink:VkCopyCommandTransformInfoQCOM (public pull request 1746). 3314 * Fix typo in <<features-storageBuffer8BitAccess, 3315 storageBuffer8BitAccess>> xref (public pull request 1750). 3316 * Fix formula markup in <<textures-texel-anisotropic-filtering, Texel 3317 Anisotropic Filtering>> section (public pull request 1753). 3318 * Fix typo in `.sType` member for 3319 `proposals/VK_KHR_dynamic_rendering.asciidoc` (public pull request 3320 1762). 3321 * Add missing `len` attribute for 3322 slink:VkImageFormatConstraintsInfoFUCHSIA::pname:pColorSpaces in 3323 `vk.xml` (https://bugs.fuchsia.dev/p/fuchsia/issues/detail?id=91104, 3324 internal merge request 5021). 3325 3326Internal Issues: 3327 3328 * Rename `slice` to 'sliceSegment` in several provisional video extension 3329 APIs (internal issue 2833). 3330 * Fix several valid usage statements for 3331 slink:VkDeviceImageMemoryRequirementsKHR (internal issue 2967). 3332 * XML fixes for slink:VkAttachmentSampleCountInfoAMD members 3333 pname:colorAttachmentCount and pname:pColorAttachmentSamples (internal 3334 issue 2968). 3335 * Remove `const` from pname:pNext member of 3336 slink:VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM 3337 (internal issue 2973). 3338 * Make definition of <<code:RayTminKHR>>, <<code:WorldRayDirectionKHR>>, 3339 and <<code:WorldRayOriginKHR>> values less vague (internal issue 2984). 3340 * Remove `externsync` attribute for slink:VkBuffer and slink:VkImage in 3341 flink:vkQueueBindSparse (internal issue 2989). 3342 * Move the <<roadmap, Vulkan Roadmap Milestones>> title markup up one 3343 level so that this section appears as a separate appendix rather than 3344 accidentally being merged into the previous appendix (internal issue 3345 2990). 3346 * Fix a few places where promotion of APIs to Vulkan 1.3 should have 3347 happened, but didn't, including defining ename:VK_IMAGE_ASPECT_NONE in 3348 `vk.xml` and aliasing ename:VK_IMAGE_ASPECT_NONE_KHR to it (internal 3349 issue 2999). 3350 * Fix link to pipeline dynamic state section (internal merge request 3351 4990). 3352 * Add video codec headers to dependencies in `xml/Makefile` so 'make test' 3353 works (internal merge request 4991). 3354 * Fix caption for <<img-innertri, Inner Triangle Tessellation figure>> 3355 (internal merge request 4994). 3356 * Fix implication of code:EarlyFragmentTests when representative fragment 3357 test is enabled in 3358 slink:VkPipelineRepresentativeFragmentTestStateCreateInfoNV (internal 3359 merge request 5006). 3360 * Set `noautovalidity` attribute for 3361 slink:VkVideoDecodeH264ProfileEXT::pname:pictureLayout to avoid 3362 conflicting valid usage statements (internal issue 2946). 3363 * Specify which structure is extended by 3364 slink:VkQueueFamilyGlobalPriorityPropertiesKHR (internal issue 2982). 3365 * Change a reference from sname:VkImageFormatProperties2 to 3366 slink:VkFormatProperties2 in the <<resources-image-creation-limits>> 3367 section (internal merge request 5016). 3368 * Specify that the <<features-dynamicRendering, pname:dynamicRendering>> 3369 feature is required by Vulkan 1.3 and the 3370 apiext:VK_KHR_dynamic_rendering extension (internal merge request 5017). 3371 * Fix typo in <<features-shaderZeroInitializeWorkgroupMemory, 3372 shaderZeroInitializeWorkgroupMemory>> xref (internal merge request 3373 5020). 3374 * Add `Promotion to Vulkan 1.3` language in the 3375 <<VK_KHR_buffer_device_address>> appendix to specify that 3376 code:bufferDeviceAddress feature support is mandatory, unlike Vulkan 3377 1.2. 3378 * Clarify that state is not inherited from static to dynamic pipelines in 3379 the <<pipelines-dynamic-state, Dynamic State>> section. 3380 3381----------------------------------------------------- 3382 3383Change log for January 25, 2022 Vulkan 1.3.204 spec update: 3384 3385 * Vulkan 1.3 initial release. Update release number to 204 for this 3386 update. The patch number will be used for all Vulkan 1.x spec updates, 3387 and continue to increment continuously from the previous Vulkan 1.2.203 3388 update. 3389 3390GitHub Issues: 3391 3392 * Reserve driver ID ename:VK_DRIVER_ID_MESA_VENUS (public merge request 3393 1733). 3394 3395Internal Issues: 3396 3397 * Update scripts and registry schema document to support multiple API 3398 names in the `api` and `supported` attributes, to allow specializing API 3399 definitions (internal issue 2809). 3400 * Minor updates - update copyright dates to 2022, update release scripts 3401 to generate artifacts for 1.3 as well as earlier specification versions 3402 (internal issue 2969). 3403 3404New Features: 3405 3406 * apiext:VK_KHR_global_priority (internal merge request 4869). 3407 * <<roadmap-2022, `VK_KHR_roadmap_2022`>> ("`Roadmap 2022`") profile 3408 (internal merge request 4797). 3409 3410----------------------------------------------------- 3411 3412Change log for December 20, 2021 Vulkan 1.2.203 spec update: 3413 3414 * Update release number to 203 for this update. 3415 3416GitHub Issues: 3417 3418 * Generate auxiliary `vk_video` headers containing definitions of 3419 `StdVideo*` types from new `xml/video.xml`, rather than including static 3420 copies in the repository (public issue 1505). 3421 * Clarify indexing of 3422 slink:VkPipelineColorBlendStateCreateInfo::pname:pAttachments (public 3423 issue 1656). 3424 * Relocate VUID-VkWriteDescriptorSet-descriptorType-00322 to the commands 3425 to which the structure is passed, and modify constraints in the VU for 3426 flink:vkCmdPushDescriptorSetKHR to account for its behavior with 3427 etext:SAMPLER and etext:COMBINED_IMAGE_SAMPLER descriptor types (public 3428 issue 1686). 3429 * Fix length inputs for optional array parameters in 3430 slink:VkCuLaunchInfoNVX to allow pname:paramCount and pname:extraCount 3431 to be set to zero. (public issue 1709). 3432 * Fix typo pname:ppEnabledExtensions -> pname:ppEnabledExtensionNames 3433 (public issue 1719). 3434 3435Internal Issues: 3436 3437 * Add slink:VkQueueFamilyQueryResultStatusProperties2KHR structure to the 3438 provisional apiext:VK_KHR_video_queue extension to report support (or 3439 lack thereof) for the ename:VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR query 3440 type ename:VK_QUERY_RESULT_WITH_STATUS_BIT_KHR status bit (internal 3441 issue 2927). 3442 * Add language to slink:VkImageCreateInfo, elink:VkImageUsageFlagBits, 3443 tlink:VkImageUsageFlags, and slink:VkImageLayout for how to specify 3444 usage flags when creating images for Vulkan Video implementations 3445 requiring separate decode DPB and output (internal issue 2926). 3446 * Require that newly created video sessions be reset before use in 3447 slink:VkVideoCodingControlInfoKHR and 3448 elink:VkVideoCodingControlFlagBitsKHR (internal issue 2928). 3449 * Fix math <<textures-image-level-selection, describing image level 3450 selection>> with apiext:VK_EXT_image_view_min_lod (internal issue 2943). 3451 * Add temporal layer count field to 3452 slink:VkVideoEncodeH264RateControlInfoEXT and 3453 slink:VkVideoEncodeH265RateControlInfoEXT structures (internal issue 3454 2948). 3455 * Add a <<spirvenv-module-validation-runtime, Runtime SPIR-V valid usage 3456 statement>> to enforce the <<limits-maxComputeSharedMemorySize, 3457 pname:maxComputeSharedMemorySize limit>> (internal merge request 4846). 3458 * Correct etext:VK_FORMAT_ETC2_R8G8B8A8_*_BLOCK block sizes to 128 bits in 3459 the XML format tags (internal merge request 4975). 3460 * Script and schema updates to correctly filter out XML elements with 3461 non-matching 'api' attributes and support 'api' attributes on additional 3462 XML tags (internal merge request 4981). 3463 * Add apiext:VK_KHR_fragment_shading_rate proposal document to 3464 retroactively provide justification and design document overview 3465 (internal merge request 4983). 3466 * Update generator scripts to properly handle <remove> elements containing 3467 non-extending <enums>. 3468 * Restructure some structure descriptions for better adherence to the 3469 style guide and more detailed descriptions of their members. 3470 3471New Extensions: 3472 3473 * apiext:VK_GOOGLE_surfaceless_query (internal merge request 4927). 3474 * apiext:VK_NV_linear_color_attachment (internal merge request 4956). 3475 * apiext:VK_QCOM_fragment_density_map_offset (internal merge request 4824). 3476 3477----------------------------------------------------- 3478 3479Change log for December 7, 2021 Vulkan 1.2.202 spec update: 3480 3481 * Update release number to 202 for this update. 3482 3483GitHub Issues: 3484 3485 * Split some valid usage statements for slink:VkAttachmentDescription 3486 so they can have appropriate conditional protection 3487 (public pull request 1698). 3488 * Clean up links to GLSL and SPIR-V extension documents (public pull 3489 request 1705). 3490 * Fix markup for <<primsrast-polygon-barycentrics, perspective 3491 interpolation>> math (public pull request 1711). 3492 3493Internal Issues: 3494 3495 * Clarify valid usage statements for 3496 flink:vkCmdWriteTimestamp2KHR::pname:stage to accommodate 3497 ename:VK_PIPELINE_STAGE_2_NONE_KHR (internal issue 2867). 3498 * Disallow descriptorset decorations on non-descriptor ray tracing 3499 variables in the <<spirvenv-module-validation-standalone, Standalone 3500 SPIR-V Validation>> section (internal issue 2881). 3501 * Fix sentence describing behavior when 3502 slink:VkRenderingFragmentDensityMapAttachmentInfoEXT is not present in 3503 the slink:VkRenderingInfoKHR::pname:pNext chain (internal issue 2881). 3504 * Require that 3505 slink:VkPhysicalDeviceRayTracingPipelinePropertiesKHR::pname:shaderGroupHandleAlignment 3506 be a power of two (internal merge request 4943). 3507 * Add a new ename:VK_IMAGE_ASPECT_NONE_KHR=0 enum to 3508 slink:VkImageAspectFlagBits in the apiext:VK_KHR_maintenance4 extension 3509 so that pname:planeAspect can be set to zero without having to use a 3510 cast, and fix some typos (internal merge request 4961). 3511 * Add "`must: be a power of two`" to all alignment limits (internal issue 3512 2939). 3513 * Make all limit anchors follow the `[[limit-NAME]]` style (internal merge 3514 request 4969). 3515 * Require render pass to be valid and add missing state subset 3516 dependencies to slink:VkGraphicsPipelineCreateInfo valid usage 3517 statements for apiext:VK_ARM_rasterization_order_attachment_access 3518 (internal merge request 4970). 3519 * Parameterize OpenGL and GLSL extension registry URLs via Asciidoctor 3520 attributes in `config/attribs.txt`, and move the existing SPIR-V 3521 extension registry URL from the Makefile into that file. Use `https:` 3522 prefixes on URLs instead of `http:` where possible. 3523 3524----------------------------------------------------- 3525 3526Change log for November 30, 2021 Vulkan 1.2.201 spec update: 3527 3528 * Update release number to 201 for this update. 3529 3530GitHub Issues: 3531 3532 * Fix typo in refpage description of ename:VK_REMAINING_MIP_LEVELS 3533 (public pull request 1702). 3534 * Add missing structextends attribute for 3535 slink:VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM 3536 (public issue 1703). 3537 * Fixes and clarifications to valid usage statements for 3538 slink:VkRenderPassCreateInfo, 3539 slink:VkRenderPassFragmentDensityMapCreateInfoEXT, and 3540 slink:VkSubpassDescriptionDepthStencilResolve (matching changes in 3541 public Vulkan-ValidationLayers pull request 3571). 3542 3543Internal Issues: 3544 3545 * Changes to the provisional video extension encode rate control API, 3546 including changing some existing structures and adding new structures 3547 and flags (internal issue 1844). 3548 * Update valid usage statements for apiext:VK_NV_mesh_shader (internal 3549 issue 2880). 3550 * Remove valid usage statement IDs 02854 / 02855 / 06081 / 06082, which 3551 are duplicates of 06166 / 06167 (internal issue 2944). 3552 * Add a valid usage statement banning code:OpImage*Dref* instructions on 3553 non-depth views (internal merge request 3889). 3554 * Add CI test for disallowed contractions (internal merge request 4934). 3555 * Generate the <<formats-compatibility, Format Compatibility Class Table>> 3556 from XML tags (internal merge request 4936). 3557 * Clarify that dependent operations of quad-sensitive ops have helpers 3558 (internal merge request 4947). 3559 * Remove redundant valid usage statement for 3560 apiext:VK_QCOM_render_pass_shader_resolve (internal merge request 4950). 3561 * Support `api` attribute fully in XML and scripts (internal merge request 3562 4951). 3563 * Fix pname:planeIndex attribute in format XML for 3564 ename:VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 (internal 3565 merge request 4953). 3566 3567 3568----------------------------------------------------- 3569 3570Change log for November 23, 2021 Vulkan 1.2.200 spec update: 3571 3572 * Update release number to 200 for this update. 3573 3574GitHub Issues: 3575 3576 * Refer to flink:vkCmdPipelineBarrier2KHR::pname:pDependencyInfo as a 3577 pointer, not an array (public issue 1456). 3578 * Fix spelling and add backwards-compatibility aliases for some 3579 elink:VkPipelinCreateFlagBits values (public issue 1676). 3580 * Fix typo in apiext:VK_INTEL_shader_integer_functions2 (public issue 3581 1696). 3582 * Replace usage of {depth, color} buffer with {depth, color} attachment 3583 (public pull request 1701). 3584 * Add restriction to the <<formats-mandatory-features-depth-stencil, 3585 manadatory format support table>> for depth/stencil formats preventing 3586 implementations from advertising those bits in 3587 slink:VkFormatProperties::pname:bufferFeatures (public 3588 Vulkan-ValidationLayers issue 3225). 3589 3590Internal Issues: 3591 3592 * Add an additional guarantee for buffer memory requirements in 3593 slink:VkMemoryRequirements as a minor update to the 3594 apiext:VK_KHR_maintenance4 extension (internal issue 2885). 3595 * Add a <<fundamentals-api-name-aliases, section to the fundamentals 3596 chapter>> describing typo aliases (internal issue 2897). 3597 * Determine extensions dependencies directly from `vk.xml` in the build 3598 scripts, rather than generating an auxiliary `extDependency.py` target 3599 (internal issue 2923). 3600 * Remove redundant SPIR-V `RuntimeSpirv` valid usage statements 04830, 3601 06271, 06374, and 06375 (internal merge requests 4827, 4830). 3602 * Suppress file-not-found `include::` errors for validusage target, using 3603 an IncludeProcessor extension, due to the way in which the validusage 3604 extension processes conditionals. Make all include paths absolute and 3605 require this in the style guide (internal merge request 4925). 3606 * Add missing `optional="true"` attribute to 3607 slink:VkCommandBufferInheritanceRenderingInfoKHR::pname:colorAttachmentCount 3608 (internal merge request 4935). 3609 * Remove references to apiext:VK_KHR_synchronization2 enums when that 3610 extension is not enabled in the specification being built (internal 3611 merge request 4937). 3612 * Minor wording changes for style guide compliance and consistency 3613 (internal merge request 4938). 3614 * Ignore etext:*_EXTENSION_NAME and etext:*_SPEC_VERSION aliases in 3615 `makemanaliases.py` script since there are no corresponding refpages for 3616 these meta-enums. 3617 3618New Extensions: 3619 3620 * apiext:VK_ARM_rasterization_order_attachment_access (internal merge 3621 request 3856). 3622 * apiext:VK_EXT_depth_clip_control (public issues 986 and 1054). 3623 3624----------------------------------------------------- 3625 3626Change log for November 16, 2021 Vulkan 1.2.199 spec update: 3627 3628 * Update release number to 199 for this update. 3629 3630GitHub Issues: 3631 3632 * Add upper bound for stext:AccelerationStructure geometry limits for 3633 slink:VkPhysicalDeviceRayTracingPropertiesNV and 3634 slink:VkPhysicalDeviceAccelerationStructurePropertiesKHR (public issue 3635 1670). 3636 * Trivial typos in proposal documents (public pull request 1682). 3637 * Add missing stage mask common valid usage statements to 3638 slink:VkSubmitInfo, slink:VkSubpassDependency, and 3639 slink:VkSubpassDependency2; remove unused common VU 4098; and add new 3640 stage mask VUs to flink:vkCmdBeginRenderPass, 3641 flink:vkCmdBeginRenderPass2, flink:vkCmdSetEvent, flink:vkCmdResetEvent, 3642 flink:vkCmdWaitEvents, and flink:vkCmdPipelineBarrier (public 3643 Vulkan-ValidationLayers pull request 3331). 3644 3645Internal Issues: 3646 3647 * Fix formatting of <<versions-1.0, Vulkan 1.0>> appendix section headers 3648 (internal issue 2921). 3649 * Fix location of bad conditional `endif::` in SPIR-V environment appendix 3650 VU 06271 (internal issue 2917). 3651 * Use etext:VK_VERSION_m_n instead of etext:VK_API_VERSION_m_n in 3652 `<spirvcapability>` and `<spirvextension>` XML tags for consistency with 3653 other version / extension requirements. Note that there is a possibility 3654 of this change affecting downstream consumers of the XML (internal issue 3655 2896). 3656 * Add refpage cross-reference from slink:VkSwapchainKHR to 3657 flink:vkQueuePresent (internal issue 2823). 3658 * Update apiext:VK_KHR_dynamic_rendering 3659 proposal document to use etext:STORE_OP_DONT_CARE 3660 (internal merge request 4924). 3661 * Fix most remaining dead links in the published specifications and 3662 refpages by adding missing API language for basetype:VkFlags64; 3663 stub reference pages for apiext:VK_NVX_binary_import; and 3664 tag refpage aliases for API constants which were promoted to core 3665 (internal merge request 4921). 3666 * Add description of elink:VkFormats in the new <formats> 3667 tag for `vk.xml`, and corresponding schema and script updates. 3668 (internal issues 1761, 2484, and 2811). 3669 3670New Extensions: 3671 3672 * apiext:VK_EXT_image_view_min_lod (internal merge request 4701). 3673 3674----------------------------------------------------- 3675 3676Change log for November 9, 2021 Vulkan 1.2.198 spec update: 3677 3678 * Update release number to 198 for this update. 3679 3680GitHub Issues: 3681 3682 * Sort dependencies of "`Provided by`" comments in generated API includes, 3683 and remove duplicates (public issue 1483, internal issue 2620). 3684 * Remove max-width attribute from document headers, causing CSS to limit 3685 page width in wide windows (public pull request 1660). 3686 3687Internal Issues: 3688 3689 * Filter out `VK_VERSION_1_x` pages when generating refpage sources for a 3690 build that does not include the corresponding core version (internal 3691 issue 1971). 3692 * Adjust section header level for extension appendix refpages to match 3693 other refpages (internal issue 2151). 3694 * Add and fix protected memory valid usage statements to require queues be 3695 protected if any batch if a protected batch, and restrict indirect 3696 operations when pname:protectedNoFault is supported (internal issues 3697 2169, 2841) 3698 * Generate refpages to SPIR-V builtins, which were marked up in the spec 3699 source but not being extracted and built (internal issue 2395). 3700 * Clarify VUID 04918 regarding use of code:Location decorations (internal 3701 issue 2737). 3702 * Remove redundant nested VK_VERSION_1_1 conditional markup from the 3703 <<initialization>> chapter (internal issue 2851). 3704 * Add code:IdrPicFlag to code:StdVideoDecodeH264PictureInfoFlags for 3705 provisional video extensions (internal issue 2901). 3706 * Fix incorrect example code in apiext:VK_HUAWEI_subpass_shading appendix 3707 sample code (internal merge request 4889). 3708 * Promote ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT and 3709 ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT in a few 3710 places where the etext:KHR suffixes had not been removed (internal merge 3711 request 4902). 3712 * Add missing format properties consistency checks for 3713 slink:VkDrmFormatModifierPropertiesList2EXT and 3714 slink:VkAndroidHardwareBufferFormatProperties2ANDROID. 3715 * Minor editorial markup fixes. 3716 3717----------------------------------------------------- 3718 3719Change log for November 2, 2021 Vulkan 1.2.197 spec update: 3720 3721 * Update release number to 197 for this update. 3722 3723GitHub Issues: 3724 3725 * Align some of the provisional video standard headers enums and bitfields 3726 to have predictable sizes (public issue 1571). 3727 * Remove exporting of D3D memory handles from 3728 slink:VkExportMemoryWin32HandleInfoKHR (public pull request 1612). 3729 * Add language to slink:VkAccelerationStructureBuildGeometryInfoKHR 3730 explicitly stating that source and target acceleration structures are 3731 allowed to be the same or different during an update (public issue 3732 1641). 3733 * Fix typos (public pull request 1662). 3734 * Register remaining newly introduced `vk_video` types in `vk.xml` (public 3735 pull request 1663). 3736 3737Internal Issues: 3738 3739 * Clarify <<resources-external-sharing, ownership transfers on external 3740 resources>> (internal issue 2692). 3741 * Changes to (nearly) eliminate dead internal links and improve scripts: 3742 ** Correctly generate API dependencies on extensions and core versions in 3743 cases where "`spelling aliases`" were present 3744 ** Clean up a few incorrectly marked up links, anchors, and refpage block 3745 alias= attributes 3746 ** Use an API alias map to substitute promoted API names for promoted-to 3747 APIs when an older or restricted spec is being generated and the 3748 promoted-to API is not included 3749 * Tag sname:VkVideo{Encode,Decode}H26{4,5}ProfileEXT structures as 3750 extending slink:VkQueryPoolCreateInfo in `vk.xml` (internal issue 2861). 3751 * Grammar edits to slink:VkAccelerationStructureKHR (internal issue 2887). 3752 * Change the cited title of the <<LoaderInterfaceArchitecture>> document 3753 to "`Architecture of the Vulkan Loader Interfaces`" matching a recent 3754 change in https://github.com/KhronosGroup/Vulkan-Loader/pull/685 3755 (internal merge request 4823). 3756 * Re-remove etext:VkVideoEncodeH265CapabilityFlagBitsEXT, which was 3757 accidentally reintroduced but is still unused (internal merge request 3758 4885). 3759 * Update wording for 3760 ename:VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR since it no 3761 longer contains `"update`" (internal merge request 4886). 3762 * Consistency edits to remove "`instance of`" when referring to a specific 3763 structure, and use "`render pass`" instead of "`renderpass`" as a noun 3764 (internal merge request 4896). 3765 * Add -version option to 'makeSpec' frontend build script. 3766 3767New Extensions 3768 3769 * `<<VK_KHR_dynamic_rendering>>` 3770 3771----------------------------------------------------- 3772 3773Change log for October 13, 2021 Vulkan 1.2.196 spec update: 3774 3775 * Update release number to 196 for this update. 3776 3777GitHub Issues: 3778 3779 * Clarify normative language for 3780 ename:VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT in 3781 elink:VkImageUsageFlagBits, allowing two styles of implementation 3782 (public issue 1616). 3783 * Fix typo in flink:vkCmdSetScissor (public pull request 1659). 3784 * Reorder attributes of elink:VkFormatFeatureFlags2KHR in `vk.xml` for 3785 consistency (public pull request 1653). 3786 3787Internal Issues: 3788 3789 * More cleanup of internal broken links in various builds of the specs. 3790 Fix typos on xrefs and anchors, add stub pages for missing Flags and 3791 FlagBits types, update `spirvcapgenerator.py` to put anchors with the 3792 same table row they belong to, validate `apiext:` macro targets at build 3793 time, and don't generate API requirements for `<type>` tags with no 3794 `category`, eliminating spurious warnings for external types (internal 3795 issues 2864, 2866). 3796 * Update `htmldiff` scripts for Python3. 3797 * Add subsection titles and anchors in the <<fxvertex, Fixed-Function 3798 Vertex Processing>> chapter to make thematic breaks more clear (internal 3799 merge request 4867). 3800 3801New Extensions 3802 3803 * `<<VK_EXT_border_color_swizzle>>` 3804 * `<<VK_EXT_video_encode_h265>>` *provisional* H.265 video encode codec extension 3805 3806----------------------------------------------------- 3807 3808Change log for October 5, 2021 Vulkan 1.2.195 spec update: 3809 3810 * Update release number to 195 for this update. 3811 3812GitHub Issues: 3813 3814 * Add a NOTE to flink:vkDestroyQueryPool clarifying when a query pool can 3815 be destroyed (public issue 1647). 3816 3817Internal Issues: 3818 3819 * Begin cleanup of internal broken links in various builds of the specs, 3820 including generating a Ruby API map to be used by the Asciidoctor macros 3821 to validate their API name arguments; using "nofollow" on GitHub issue 3822 opening links to avoid link-checkers being interpreted as DOS attacks; 3823 improved checker scripts; minor markup fixes; and using the `apiext:` 3824 macro to replace `<<VK_KHR_extension_name>>`-style extension links 3825 everywhere (internal issue 2831). 3826 * Minor editorial cleanups to descriptions of 3827 apiext:VK_FUCHSIA_buffer_collection APIs (internal issue 2836). 3828 * Match `Cull Mask` SPIR-V name to pname:mask parameter name in the 3829 <<acceleration-structure, Acceleration Structures>> chapter (internal 3830 merge request 4844). 3831 * Add pname:minTexelOffset and pname:maxTexelOffset limit valid usage 3832 statements for code:OpImageSample* and code:OpImageFetch* in the 3833 <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> 3834 section (internal merge request 4845). 3835 * Add pname:maxFragmentDualSrcAttachments and 3836 pname:maxFragmentCombinedOutputResources limit valid usage statements 3837 for output and color attachments in the 3838 <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> 3839 section (internal merge request 4847). 3840 3841New Extensions 3842 3843 * `<<VK_KHR_format_feature_flags2>>` 3844 * `<<VK_KHR_maintenance4>>` 3845 * `<<VK_EXT_rgba10x6_formats>>` 3846 3847----------------------------------------------------- 3848 3849Change log for September 28, 2021 Vulkan 1.2.194 spec update: 3850 3851 * Update release number to 194 for this update. 3852 3853GitHub Issues: 3854 3855 * Add missing `len` attribute to 3856 slink:VkCuModuleCreateInfoNVX::pname:pData (public merge request 1646). 3857 * Refer to dynamic state consistently from ftext:vkCmdSet* commands, and 3858 link to the definition of dynamic state (public issue 1428, but with 3859 expanded scope beyond the actual ask in that issue). 3860 3861Internal Issues: 3862 3863 * Fix incorrect member name in slink:VkRenderPassCreateInfo valid usage 3864 statement 02515 (internal issue 2824). 3865 * Fix XML dependency for `<<VK_NV_device_generated_commands>>` (internal 3866 issue 2818). 3867 * Add packed formats from `<<VK_KHR_sampler_ycbcr_conversion>>`` to the 3868 <<formats-packed, table of packed formats>> and improve description of 3869 packed format naming conventions (internal merge request 4798). 3870 3871New Extensions 3872 3873 * `<<VK_FUCHSIA_buffer_collection>>` 3874 3875----------------------------------------------------- 3876 3877Change log for September 21, 2021 Vulkan 1.2.193 spec update: 3878 3879 * Update release number to 193 for this update. 3880 3881GitHub Issues: 3882 3883 * Use consistent `implicitexternsync` language in XML for 3884 flink:vkDestroyDevice (public issue 1482). 3885 * Clarify requirements of flink:vkGetInstanceProcAddr to match that of the 3886 Android loader when attempting to retrieve a global function with a 3887 non-NULL instance parameter (public issue 1605). 3888 * Add new elink:VK_DRIVER_ID reservations for upcoming Mesa drivers 3889 (public pull request 1642). 3890 3891Internal Issues: 3892 3893 * Fix flink:vkCmdEndDebugUtilsLabelEXT to clarify command buffer recording 3894 interactions with debug labels (internal issue 2777). 3895 * Improve NOTE for acceleration structure capture / replay in 3896 slink:VkAccelerationStructureCreateInfoKHR (internal issue 2769). 3897 * Add "`See Also`" crosslinks to extension refpages providing aliased APIs 3898 in API refpages (internal issue 2819). 3899 * Fix markup for core version (`VK_VERSION_1_0`, etc.) refpages - 3900 Asciidoctor doesn't allow section headers here and this affected the 3901 specification appendix rendering (internal issue 2826). 3902 * Use open range notation for slink:VkSamplerCreateInfo 3903 ptext:addressMode[UVW] descriptions (internal issue 2829). 3904 * Replace term "`channel`" with "`component`" when discussing formats, and 3905 update glossary to help clarify formats such as 3906 ename:VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 and 3907 ename:VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 (internal merge 3908 request 4799). 3909 * Fix some primitive_topology_list_restart VUIDs to only apply if 3910 pname:primitiveRestartEnable is ename:VK_TRUE (internal merge request 3911 4818). 3912 * Fix slink:VkPhysicalDeviceShaderCorePropertiesAMD `limittype` attributes 3913 in XML (internal merge request 4819). 3914 * Fix accidentally duplicated VUIDs 06256 due to missing {accessMaskName} 3915 in VUID markup (internal merge request 4829). 3916 * Miscellaneous minor formatting and style fixes (internal merge requests 3917 4832, 4838). 3918 3919----------------------------------------------------- 3920 3921Change log for September 14, 2021 Vulkan 1.2.192 spec update: 3922 3923 * Update release number to 192 for this update. 3924 3925GitHub Issues: 3926 3927 * Correctly describe slink:VkDeviceQueueInfo2::pname:pNext (public issue 3928 1622). 3929 * Improve behavior of contact links from extension metadata generator 3930 (public merge request 1635). 3931 * Require slink:VkDeviceAddress in 1.0 spec conditional markup, matching 3932 XML (public issue 1636). 3933 3934Internal Issues: 3935 3936 * Turn <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> 3937 section into formal Valid Usage statements with assigned valid usage IDs 3938 (internal issue 1598). 3939 * Use `pass:[~~~~]` delimiters for `[source]` blocks inside reference page 3940 `[open]` blocks to bypass logic problem with VUID assignment script 3941 (internal issue 2040). 3942 * Update style guide to incorporate Khronos Inclusive Language document by 3943 reference. Followon changes will apply the suggestions as needed 3944 (internal issue 2293). 3945 * Add clarifications about ray tracing transform matrices to 3946 slink:VkAccelerationStructureGeometryTrianglesDataKHR, 3947 slink:VkAccelerationStructureBuildOffsetInfoKHR, and the 3948 <<ray-intersection-candidate-determination, Ray Intersection Candidate 3949 Determination>> section (internal issue 2709). 3950 * Clarify descriptor requirements for code:Buffer and code:Subpassdata in 3951 the <<interfaces-resources-correspondence, Shader Resource and 3952 Descriptor Type Correspondence>> table (internal issue 2751). 3953 * Add aliases for versioned extensions which don't treat the trailing 3954 version number as a separate word, such as 3955 ename:VK_KHR_MAINTENANCE1_SPEC_VERSION -> 3956 ename:VK_KHR_MAINTENANCE_1_SPEC_VERSION, and add a CI test in 3957 `scripts/xml_consistency.py` to try and detect future occurrences 3958 (internal issue 2810). 3959 * Add missing pname:sType and pname:pNext boilerplate descriptions to spec 3960 language for several elink:*Features structures that were missing it 3961 (though they did have them in the XML definition of the structures) 3962 (internal issue 2815). 3963 * Add extension and version crosslinks to generated reference pages, 3964 expressing the same information in the `Provided by` comments in 3965 generated API includes (internal issue 2816). 3966 * Move the old "`Fragment Shader Execution`" section from the <<shaders>> 3967 chapter to the <<fragops-shader, Fragment Shading>> section of the 3968 <<fragops>> chapter, change anchor names accordingly, and factor out 3969 common related language from several parts of the spec into this section 3970 (internal merge request 4765). 3971 * Allow access to the code:PrimitiveId builtin from shaders declared with 3972 the code:MeshShadingNV capability (internal merge request 4767). 3973 * Make the <<features-primitiveTopologyListRestart, 3974 pname:primitiveTopologyListRestart>> feature mandatory for 3975 `<<VK_EXT_primitive_topology_list_restart>>` (internal merge request 3976 4790). 3977 * Edit <<limits-types, Required Limit Types>> table to add Vulkan 1.2 3978 interactions for pname:filterMinmaxSingleComponentFormats and 3979 pname:filterMinmaxImageComponentMapping limits (internal merge request 3980 4802). 3981 * Add ename:VK_FORMAT_R10X6_UNORM_PACK16 and 3982 ename:VK_FORMAT_R12X4_UNORM_PACK16 to the list of 16-bit packed formats, 3983 and fix formatting of "`wildcard`" enums containing a placeholder _i_ 3984 tag corresponding to supported integers (internal merge request 4803). 3985 * Refactor CI scripts to use the Makefile `allchecks` target as part of CI 3986 instead of multiple separate steps, allowing a quick local check 3987 equivalent to that part of CI, and update that target accordingly 3988 (internal merge request 4807). 3989 * Make slink:VkImageCreateInfo valid usage statement 01572 apply to all 3990 compressed formats (internal merge request 4812). 3991 3992 3993----------------------------------------------------- 3994 3995Change log for September 7, 2021 Vulkan 1.2.191 spec update: 3996 3997 * Update release number to 191 for this update. 3998 3999Internal Issues: 4000 4001 * Update checker scripts to detect extension number conflicts in `vk.xml`, 4002 and run the check in CI (internal issue 2612). 4003 * Minor cleanup for the provisional video extensions, including 4004 documenting a few undocumented enums and structure members and some 4005 language cleanup (internal issue 2705). 4006 * Add a NOTE to flink:vkAllocateMemory.txt about protected memory 4007 allocation count limits (internal issue 2791). 4008 * Use "`cube map`" spelling, and add this case to the style guide 4009 (internal merge request 4794). 4010 4011New Extensions: 4012 4013 * `<<VK_EXT_pageable_device_local_memory>>` 4014 4015----------------------------------------------------- 4016 4017Change log for August 29, 2021 Vulkan 1.2.190 spec update: 4018 4019 * Update release number to 190 for this update. 4020 * Released a few days in advance of the usual Tuesday spec updates due to 4021 holiday meeting schedule. 4022 4023GitHub Issues: 4024 4025 * Make treatment of empty etext:Vk*FlagBits types consistent in `vk.xml` 4026 (public issue 1601 and merge request 1609) 4027 4028Internal Issues: 4029 4030 * Add more descriptive language for transforms in the 4031 <<ray-intersection-candidate-determination, Ray Intersection Candidate 4032 Determination>> section (internal issue 2709). 4033 * Update `-validate` logic in registry scripts to validate the `limittype` 4034 attribute presence and values where required (internal issue 2606). 4035 * Update common validity statements for access masks to allow shader 4036 pipeline bits to be use with ename:VK_ACCELERATION_STRUCTURE_READ_BIT 4037 (internal issue 2782). 4038 * Fix typo in the description of code:CullDistancePerViewNV (internal 4039 merge request 4769). 4040 * Various fixes and simplifications for 4041 <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> valid 4042 usage statements: 4043 ** Flatten markup for VK_KHR_shader_subgroup_extended_types valid usage 4044 statements (internal issue 1598) 4045 ** Flatten markup for VK_EXT_shader_atomic_float valid usage statements 4046 (internal issue 1598). 4047 ** Remove Asciidoctor conditional check for 4048 `VK_KHR_storage_buffer_storage_class`, not needed because the SPIR-V 4049 specification is unified and `spirv-val` will throw an error if trying 4050 to use code:StorageBuffer without the proper extension / version being 4051 set (internal merge request 4779). 4052 4053New Extensions: 4054 4055 * `<<VK_KHR_shader_integer_dot_product>>` 4056 * `<<VK_EXT_primitive_topology_list_restart>>` 4057 4058----------------------------------------------------- 4059 4060Change log for August 17, 2021 Vulkan 1.2.189 spec update: 4061 4062 * Update release number to 189 for this update. 4063 4064GitHub Issues: 4065 4066 * Add parent check valid usage statements to flink:vkUpdateDescriptors 4067 (public issue 1581). 4068 * Document the feature requirement for separate depth/stencil layouts in 4069 the <<resources-image-layouts, Image Layouts>> section (public issue 4070 1583). 4071 * Revert a valid usage statement constraining 4072 slink:VkMemoryAllocateInfo::pname:allocationSize (public issue 1595). 4073 * Remove misleading reference to `z` from the description of image 4074 coordinates for slink:VkSamplerCreateInfo::pname:unnormalizedCoordinates 4075 (public issue 1602). 4076 * Fix typo in <<fxvertex-input-extraction>> section (public pull request 4077 1604). 4078 * Fix comment in example for `<<VK_EXT_debug_utils>>` appendix to 4079 correctly reference pname:objectHandle, not ptext:object (public pull 4080 request 1606). 4081 * Revert `vk_platform.h` path change in `vk.xml` from public pull request 4082 1538, which was causing build issues for some projects. We will revisit 4083 this in the future but did not want to put a problematic change into the 4084 next SDK update (public pull request 1610). 4085 4086Internal Issues: 4087 4088 * Use `hexapdf` for PDF optimization, rather than Ghostscript. This 4089 improves overall PDF generation time about 15-20%, and final PDF size by 4090 about 1/3 (internal issue 2422). 4091 * Improve contrast for better accessibility of HTML outputs, based on 4092 feedback from the ANDI tool. This includes updating the specification 4093 CSS in `config/khronos.css`, switching to the rouge source code 4094 highlighter instead of coderay, and overriding some of the rouge theme 4095 CSS (internal issue 2784). 4096 * Clarify that transforms are consumed only if transformData is non-null 4097 for slink:VkAccelerationStructureBuildRangeInfoKHR.txt (internal issue 4098 2787). 4099 * Make spec language describing bitmasks consistent as 'Bits which can: be 4100 set' (internal merge request 4762). 4101 * Support `optional` attribute in the valid usage statement generator for 4102 union types (internal merge request 4772). 4103 4104----------------------------------------------------- 4105 4106Change log for August 10, 2021 Vulkan 1.2.188 spec update: 4107 4108 * Update release number to 188 for this update. 4109 4110GitHub Issues: 4111 4112 * Add missing `optional="true"` attributes to pname:pNext members. Enable 4113 `scripts/xml_consistency.py` in CI, and add check for this case (public 4114 pull request 1597). 4115 * Add missing markup (setting `refpage` attributes where they were needed 4116 for commonvalidity statements) to fix some broken valid usage ID link 4117 names (public issue 1598). 4118 * Update valid usage statement 02650 to use "`potential format features`" 4119 consistently with other recent changes (discussion on public 4120 Vulkan-ValidationLayers pull request 3139). 4121 4122Internal Issues: 4123 4124 * Clarify the role of <<ray-traversal-culling-face, face winding>> in the 4125 context of ray intersection candidate determination and alias 4126 ename:VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR to 4127 ename:VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR, corresponding 4128 to the clarifications (internal issue 2780). 4129 * Add valid usage statement for flink:vkCmdBeginTransformFeedbackEXT 4130 requiring a valid graphics pipeline be bound (internal issue 2785). 4131 * Use the term <<acceleration-structure-def, "`constructed`">> to refer to 4132 an acceleration structure that was previously built or created by 4133 copying or deserialization of a built acceleration structure (internal 4134 merge request 4727). 4135 * Add explicit valid usage statements to flink:vkWaitForPresentKHR and 4136 slink:VkPresentInfoKHR requiring the corresponding features be enabled 4137 (internal merge request 4754). 4138 * Remove extraneous trailing periods from some valid usage statements 4139 (internal merge request 4759). 4140 4141New Extensions: 4142 4143 * `<<VK_EXT_load_store_op_none>>` 4144 4145----------------------------------------------------- 4146 4147Change log for August 3, 2021 Vulkan 1.2.187 spec update: 4148 4149 * Update release number to 187 for this update. 4150 4151GitHub Issues: 4152 4153 * Add glossary terms for "`pipeline ray tracing instructions`" and "`ray 4154 tracing commands`" (public issue 1578). 4155 * Limit the code:OpTypeImage code:Unknown format restriction to storage 4156 images in the <<spirvenv-module-validation-runtime, Runtime SPIR-V 4157 Validation>> section (public issue 1588). 4158 * Fix slink:VkRect2D::pname:extent in a few places where it was 4159 misreferenced as pname:offset (public pull request 1590). 4160 4161Internal Issues: 4162 4163 * Clarify that depth values outside the range [0,1] become undefined 4164 following the depthClamp stage of the pipeline, by rearranging the 4165 <<fragops-depth, Depth Test>> section and adding a new "`Depth Clamping 4166 and Range Adjustment`" subsection (internal issues 2445, 2753). 4167 * Clarify valid usage statement 01843 for slink:VkDeviceQueueInfo2 to 4168 match similar statement for flink:vkGetDeviceQueue, and split off part 4169 of it into a new VU statement (internal issue 2645). 4170 * Fix a few enumerant and member names in the provisional video extensions 4171 to comply with the spec style guidelinse (internal issue 2710). 4172 * Update the descriptions of flink:vkCmdDrawMultiEXT and 4173 flink:vkCmdDrawMultiIndexedEXT to clarify how they are equivalent to 4174 calling underlying drawing commands multiple times with different 4175 parameters (internal issue 2757). 4176 * Renumber VUIDs which duplicated the numeric portion of another 4177 non-common VUID, and add a duplicate number detection test to CI to 4178 prevent recurrences (internal issue 2764). 4179 * Make code:SubgroupSize command scope uniform in compute dispatches 4180 (internal issue 2773). 4181 * Expand the list of valid image layouts for 4182 <<attachment-type-imagelayout, input attachments>>, 4183 <<descriptorsets-sampleimage, sampled images>>, and 4184 <<descriptorsets-combinedimagesampler, combined image samplers>> to 4185 include DEPTH_READ_ONLY_OPTIMAL and STENCIL_READ_ONLY_OPTIMAL (internal 4186 issue 2774). 4187 * Remove `flowRoot` SVG elements from a few recent image updates, as they 4188 are not supported by the current PDF toolchain (internal issue 2778). 4189 * Update to asciidoctor-chunker 1.0.4, adding support for `aria-label` 4190 accessibility tags on the chunked specification forward/back section 4191 navigation arrows (internal issue 2784). 4192 * Clean up description of flink:vkCmdClearAttachments and remove redundant 4193 information (internal merge request 4717). 4194 * Add a description of each of the 4195 flink:vkCmdWriteAccelerationStructuresPropertiesKHR::pname:queryPool 4196 query types (internal merge request 4728). 4197 * Add new valid usage statement to slink:VkMemoryAllocateInfo when 4198 allocating a memory object larger than the reported limit (internal 4199 merge request 4737). 4200 * Add missing description of pname:layerCount member of 4201 slink:VkFramebufferAttachmentImageInfo (internal merge request 4744). 4202 4203 4204----------------------------------------------------- 4205 4206Change log for July 27, 2021 Vulkan 1.2.186 spec update: 4207 4208 * Update release number to 186 for this update. 4209 4210GitHub Issues: 4211 4212 * Reduce size and increase clarity of some SVG images for the provisional 4213 video extensions (public issue 1537). 4214 * Use a consistent description of pname:stride as "`byte stride`" rather 4215 than "`distance in bytes`" in a few places (public issue 1575) 4216 * Clarify the equivalence of flink:vkQueueWaitIdle to 4217 fence submission (public issue 1579). 4218 * Fix XML capabilities for new code:*Float*Atomic* SPIR-V capabilities to 4219 require slink:VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT rather than 4220 slink:VkPhysicalDeviceShaderAtomicFloatFeaturesEXT (public pull request 4221 1587, although fixed internally first). 4222 4223Internal Issues: 4224 4225 * Refactor Asciidoctor conditionals imbedded within valid usage statements 4226 so they are extracted properly to `validusage.json`, and add a CI check 4227 to prevent this happening in the future (internal issues 1529, 2439). 4228 * Clarify that dynamic vertex buffer object stride of 0 is allowed in 4229 valid usage statement for flink:vkCmdBindVertexBuffers2EXT 4230 (internal issue 2742) 4231 * Add valid usage statement to 4232 ftext:vkGetPhysicalDeviceSurfaceCapabilities{KHR,2EXT,2KHR}, 4233 ftext:vkGetPhysicalDeviceSurfacePresentModes{KHR,2EXT}, and 4234 ftext:vkGetDeviceGroupSurfacePresentModes{KHR,2EXT} requiring surface / 4235 device compatibility (internal issue 2744). 4236 * Clarify the requirements on code:OpTypeImage for input attachments in 4237 the <<spirvenv-module-validation, Validation Rules within a Module>> and 4238 <<interfaces-inputattachment, Fragment Input Attachment Interface>> 4239 sections (internal issue 2752) 4240 * Clarify that stipple parameters are ignored when line stipple is 4241 disabled in slink:VkPipelineRasterizationLineStateCreateInfoEXT 4242 (internal issue 2763) 4243 * Improve wording for the shader interface code:Location limit in the 4244 <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> 4245 section (internal merge request 4693) 4246 4247----------------------------------------------------- 4248 4249Change log for July 20, 2021 Vulkan 1.2.185 spec update: 4250 4251 * Update release number to 185 for this update. 4252 * Going forward we will probably be moving the default day for spec 4253 updates to Tuesday (Pacific time) rather than Monday. 4254 4255GitHub Issues: 4256 4257 * Clarify that only *device* extensions are required to be specified in 4258 valid usage statement for flink:vkCreateDevice (public issue 1567). 4259 * Fix extension dependencies for `<<VK_EXT_calibrated_timestamps>>` to 4260 include `<<VK_KHR_get_physical_device_properties2>>` (public issue 4261 1568). 4262 * Conditionalize xref to VkPhysicalDeviceSubgroupProperties in 4263 `<<VK_KHR_spirv_1_4>>` appendix so it does not show up in a 1.0 spec 4264 build (public issue 1574). 4265 * Relax portability usage of the identity swizzle in 4266 slink:VkImageViewCreateInfo valid usage statement 04465 (public 4267 KhronosGroup/Vulkan-Portability issue 27). 4268 4269Internal Issues: 4270 4271 * Document in the <<extendingvulkan-extensions-extensiondependencies, 4272 Extension Dependencies>> section that instance extensions do not have 4273 dependencies on device extensions, and add a similar requirement to the 4274 description of the `requires` attribute of extension tags in the 4275 registry schema document (internal issue 2387). 4276 * Fix `optional` attribute in XML for 4277 flink:vkCmdBindVertexBuffers2EXT::pname:pBuffers (internal issue 2574). 4278 * Remove redundant valid usage statements from flink:vkCmdPipelineBarrier, 4279 flink:vkCmdSetEvent, and flink:vkCmdResetEvent. Add missing VUs for 4280 slink:VkSubpassDependency and slink:VkSubpassDependency2 (internal issue 4281 2583). 4282 * Clarify that 4283 ename:VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR 4284 must be supported in pname:bufferFeatures (internal issue 2686). 4285 * Clarify that a valid function pointer pname:fp returned from 4286 flink:vkGetInstanceProcAddr must not be `NULL` (internal issue 2720). 4287 * Relax code:Flat, code:NoPerspective, code:Sample, and code:Centroid 4288 storage class restriction in the 4289 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 4290 section (internal issue 2721). 4291 * Clarify forward progress behavior of flink:vkAcquireNextImageKHR and 4292 flink:vkQueuePresentKHR (internal issue 2729). 4293 * Remove duplicated language describing queue submission in the 4294 <<fundamentals-execmodel, Execution Model>> and 4295 <<fundamentals-queueoperation, Queue Operation>> sections (internal 4296 issue 2736). 4297 * Describe the new pipeline stage 4298 ename:VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI in several sections 4299 of the <<synchronization>> chapter where it was missing (internal issue 4300 2745). 4301 * Improve formatting in the <<limits>> chapter, add support for the 4302 missing optionally: normative word macro, and replace most use of 4303 (non-normative) "`optionally`" with normative "`can:`". Update style 4304 guide to add more contractions and remove contractions from the spec. 4305 add a better description of the pname:shaderDrawParameters feature 4306 (internal merge requests 4699, 4708). 4307 * Fix name of parameter 4308 flink:vkGetMemoryRemoteAddressNV::pname:pMemoryGetRemoteAddressInfo to 4309 follow Vulkan conventions (internal merge request 4704). 4310 * Minor fixes for the <<resources-image-views-compatibility, image view 4311 compatibility table>> and related minor spec language fixes elsewhere 4312 (internal merge request 4709). 4313 4314New Extensions: 4315 4316 * `<<VK_EXT_shader_atomic_float2>>` 4317 * `<<VK_HUAWEI_invocation_mask>>` 4318 * `<<VK_KHR_present_id>>` 4319 * `<<VK_KHR_present_wait>>` 4320 4321Miscellany: 4322 4323 * Happy Lunar Landing Day! 4324 4325----------------------------------------------------- 4326 4327Change log for July 5, 2021 Vulkan 1.2.184 spec update: 4328 4329 * Update release number to 184 for this update. 4330 4331GitHub Issues: 4332 4333 * Make description of 4334 slink:VkSparseImageMemoryRequirements::pname:formatProperties.imageGranularity 4335 consistent by replacing the nested structure descriptions with a simple 4336 description of pname:formatProperties (public issue 1444). 4337 * Update `<<VK_HUAWEI_subpass_shading>>` extension to rename 4338 flink:vkGetSubpassShadingMaxWorkgroupSizeHUAWEI to 4339 flink:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI and give it a 4340 dispatchable slink:VkDevice parameter (public issue 1564). 4341 * Fix labelling of "`Resource`" reference block in pipeline block 4342 diagrams (public issue 1582). 4343 4344Internal Issues: 4345 4346 * Replace the old <<resources-image-views-compatibility>> table with a 4347 simplified image type / image view type compatibility table, and move 4348 the parameter compatibility portions of the table into explicit valid 4349 usage statements (internal issue 2586). 4350 * Define the slink:VkPipelinCacheHeaderVersionOne structure in `vk.xml` 4351 instead of the previous "`Layout for pipeline cache header version one`" 4352 table (internal merge request 4011). 4353 * Make the `requires` attribute of the `spirvcapability` XML tag required 4354 when specifying a structure, even if what's required is 4355 `"VK_VERSION_1_0"`, to address a problem in the generated table from 4356 these tags (internal merge request 4689). 4357 4358New Extensions: 4359 4360 * `<<VK_NV_extermal_memory_rdma>>` 4361 4362----------------------------------------------------- 4363 4364Change log for June 28, 2021 Vulkan 1.2.183 spec update: 4365 4366 * Update release number to 183 for this update. 4367 4368GitHub Issues: 4369 4370 * Rewrite and simplify the <<interfaces-iointerfaces-matching, Interface 4371 Matching>> section. Clarify that results are undefined if the size of a 4372 vector mismatches (public issue 666; internal issues 1269, 2059, 2323). 4373 * Remove inappropriate `const` from `void *pNext` members of 4374 `returnedonly` structures in `vk.xml` (public issue 1482, internal issue 4375 2644). 4376 * Add a NOTE to the <<interfaces, Shader Interfaces>> chapter that SPIR-V 4377 execution model keywords with extension suffixes will always be present 4378 in spec builds, even in a build not supporting any extensions, since 4379 these keywords appear in the unified SPIR-V specification without such 4380 qualifiers (public issue 1483, internal issue 2621). 4381 * Modify `vk.xml` to include the Vulkan platform header via the path 4382 `vulkan/vk_platform.h` rather than just `vk_platform.h` 4383 (public pull request 1538). 4384 * Add length annotations for slink:VkCuLaunchInfoNVX (public issue 1548). 4385 * Describe slink:VkSubpassDescription::pname:pDepthStencilAttachment 4386 correctly as a pointer to a structure, not a pointer to an array of 4387 structures (public issue 1561). 4388 * Fix `structextends` attribute of 4389 slink:VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, declare its 4390 pname:pNext member correctly, and fix some typos in the related 4391 extension language (public issue 1565, internal issue 2724). 4392 4393Internal Issues: 4394 4395 * Add explicit valid usage statements for 4396 flink:vkCmdClearColorImage::slink:VkClearColorValue and 4397 slink:VkRenderPassBeginInfo::slink:VkClearValue (internal issue 2490). 4398 * Change the term "`vertex processing {shader} stage`" to 4399 "`pre-rasterization shader stage`" throughout the specification, link to 4400 a single definition, and add "`pre-rasterization`" to the glossary 4401 (internal issue 2634). 4402 * Add an `<implicitexternsync>` constraint for 4403 flink:vkResetCommandBuffers::pname:pool (internal issue 2646). 4404 * Fix typo `vkCmdResetEvent` -> `vkResetEvent` in flink:vkResetEvent valid 4405 usage statements (internal issue 2651). 4406 * Fix wording of scope dependencies for slink:VkMemoryBarrier2KHR, 4407 slink:VkBufferMemoryBarrier2KHR, and slink:VkImageMemoryBarrier2KHR 4408 members pname:srcAccessMask and pname:dstAccessMask (internal issue 4409 2654). 4410 * Require support for pname:shaderInt64 in the <<features-requirements, 4411 Feature Requirements>> section when pname:atomicInt64 features are 4412 supported (internal issue 2660). 4413 * Clarify ray tracing valid usage statements for cases where a parameter 4414 refers to an acceleration structure that must have been built (internal 4415 issue 2715). 4416 * Add a NOTE clarifying shader record buffer uniformity in the 4417 <<shader-binding-table, Shader Binding Table>> section (internal issue 4418 2719). 4419 * Minor clarifications and typo fixes to `<<VK_HUAWEI_subpass_shading>>` 4420 (internal issue 2722). 4421 * Add missing <spirvextension> entry in `vk.xml` to enable 4422 `SPV_KHR_subgroup_uniform_control_flow` 4423 (internal issue 2733). 4424 * Move SPIR-V valid usage statement from the 4425 <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> 4426 section to <<spirvenv-module-validation-standalone]] Standalone SPIR-V 4427 Validation>> (internal merge request 4637). 4428 * Add a new <<spirvenv-image-signedness, Signedness of SPIR-V Image 4429 Accesses>> section to allow the use of unsigned Sampled Types with 4430 code:SignExtend and signed code:Format decorations (internal merge 4431 request 4638). 4432 * Add missing slink:VkDeviceCreateInfo to `structextends` attribute of 4433 slink:VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT (internal merge 4434 request 4652). 4435 * Remove nonexistent pname:minFragmentSize from the <<limits-minmax, Limit 4436 Requirements>> table (internal merge request 4655). 4437 * Fix markup typo for `<<VK_NV_fragment_shader_barycentric>>` ifdef 4438 (internal merge request 4663). 4439 4440----------------------------------------------------- 4441 4442Change log for June 21, 2021 Vulkan 1.2.182 spec update: 4443 4444 * Update release number to 182 for this update. 4445 4446GitHub Issues: 4447 4448 * Add XML attributes & schema updates to link untyped Vulkan object handle 4449 values to corresponding object types (public issue 1536). 4450 4451Internal Issues: 4452 4453 * Automatically generate links to extension proposal documents from 4454 extension appendices (internal issue 2713). 4455 * Clean up wording of flink:vkCmdWriteTimestamp and 4456 flink:vkCmdWriteTimestamp2KHR (internal issue 2425). 4457 * Fix hpp-compile CI stage after recent changes to Vulkan-Headers 4458 repository which generate additional header files. 4459 4460New Extensions: 4461 4462 * `<<VK_EXT_acquire_drm_display>>` (public pull request 1529). 4463 * `<<VK_EXT_multi_draw>>` 4464 * `<<VK_EXT_physical_device_drm>>` (public pull request 1356). 4465 * `<<VK_HUAWEI_subpass_shading>>` 4466 * `<<VK_NV_ray_tracing_motion_blur>>` 4467 4468----------------------------------------------------- 4469 4470Change log for June 14, 2021 Vulkan 1.2.181 spec update: 4471 4472 * Update release number to 181 for this update. 4473 4474GitHub Issues: 4475 4476 * Add stub slink:VkPipelineLayoutCreateFlagBits <enum> type in `vk.xml` to 4477 reduce spurious warnings from XML processing scripts that don't respect 4478 the `supported="disabled"` attribute, and update the registry schema 4479 documentation to make more clear that `extension` tags with this 4480 attribute should not be processed (public issue 1549). 4481 4482Internal Issues: 4483 4484 * Clarify implicit conversions between the vertex input attribute 4485 description format and the shader vertex attribute input type in the 4486 <<fxvertex-attrib-location, Attribute Location and Component 4487 Assignment>> and <<fxvertex-input-extraction>> sections (internal issue 4488 902). 4489 * Add text about the <<interfaces-alignment-requirements, base alignment 4490 of empty structures>> (internal issue 2174). 4491 * Clarify the use of rasterization order <<primsrast-order, 4492 "`operations`">> (internal merge request 4582). 4493 * Allow any pipeline barrier command for queue transfers in the 4494 <<synchronization-queue-transfers, Queue Family Ownership Transfer>> 4495 section (internal merge request 4596). 4496 * Remove potentially confusing reference to 4497 ename:VK_ERROR_INVALID_SHADER_NV in the description of 4498 flink:vkCreateShaderModule (internal merge request 4602). 4499 * Improve visibility of instance creation callbacks by migrating some 4500 language from the `<<VK_EXT_debug_report>>` and `<<VK_EXT_debug_utils>>` 4501 appendix examples to the description of slink:VkInstanceCreateInfo 4502 (internal merge request 4614). 4503 * Fix markup for sparse image atomic requirements in the 4504 <<features-requirements, Feature Requirements>> section and for 4505 slink:VkDeviceCreateInfo valid usage statements (internal merge request 4506 4618). 4507 * Correct the definition of 4508 ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT 4509 to constrain pname:chromaFilter, not pname:minFilter / pname:magFilter 4510 (internal merge request 4623). 4511 * Add level 3 headings in <<pipelines-cache, Pipeline Cache>> section 4512 (internal merge request 4627). 4513 * Clarify flink:vkCmdCopyAccelerationStructureKHR to add details on the 4514 copy command itself, as well as the etext:CLONE and etext:COMPACT copy 4515 modes (internal merge request 4631). 4516 * Remove `<mask>` tags from some SVG images in the provisional video 4517 extensions. These tags are not supported by components of the PDF 4518 toolchain. Removing them removes many warnings from the PDF build and is 4519 a workaround for editing the SVGs to use alternate constructs for the 4520 intended purpose, although it also make these images in the HTML output 4521 show the same artifacts as the PDF output. 4522 4523----------------------------------------------------- 4524 4525Change log for June 7, 2021 Vulkan 1.2.180 spec update: 4526 4527 * Update release number to 180 for this update. 4528 4529GitHub Issues: 4530 4531 * Add more details about zero shader group handles and draw linkage to 4532 etext:VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL* flags (public issue 1487). 4533 * Clarify that semaphore operations don't do work in a specific pipeline 4534 stage in slink:VkSemaphoreSubmitInfoKHR::pname:stageMask (public issue 4535 1501). 4536 * Fix markup in shared valid usage statements 03766 / 03767 (public issue 4537 1528). 4538 4539Internal Issues: 4540 4541 * Grammatical improvements for various ray tracing sections. Add statement 4542 that AABB intersections may be false-positives (internal issue 2597). 4543 * Disambiguate ASTC HDR block error handling in 4544 <<appendix-compressedtex-astc, ASTC Compressed Image Formats>> and the 4545 following "`ASTC decode mode`" section (internal issue 2603). 4546 * Fix some holes in `<<VK_EXT_vertex_input_dynamic_state>>`, including 4547 adding some missing common draw validity statements; an interaction 4548 with VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT; an interaction 4549 with code:nullDescriptor to flink:vkCmdBindVertexBuffers2EXT; and 4550 language to 4551 slink:VkGraphicsPipelineCreateInfo::pname:pVertexInputState (internal 4552 issue 2637, 2684). 4553 * Make elink:VkAccessFlagBits and elink:VkAccessFlagBits2KHR descriptions 4554 consistent and reorganize them in matching order (internal issue 2650). 4555 * Add slink:VkSpecializationInfo::pname:pMapEntries valid usage 4556 statement requiring the pname:constantID values be unique (internal 4557 issue 2668). 4558 * Clarify <<queries-wait-bit-not-set, the cases in which 4559 flink:vkGetQueryPoolResults returns VK_NOT_READY>> (internal issue 4560 2676). 4561 * Add spec language and refpages for API constants. With this change all 4562 APIs should be defined in the spec (internal issue 2698). 4563 * Move some restrictions in the <<interfaces, Shader Interfaces>> chapter 4564 into the <<spirvenv-module-validation-standalone, Standalone SPIR-V 4565 Validation>> section (internal merge request 4537). 4566 * Add missing member descriptions to slink:VkSurfaceCapabilities2EXT 4567 (internal merge request 4544). 4568 * Update glossary definition of "`Aspect`" to accommodate copy commands 4569 which can operate on multiple aspects (internal merge request 4586). 4570 * Add ename:VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHING_EXT 4571 enum to provide a standard way to disable caching of shader validation 4572 results (internal merge request 4589). 4573 * Remove the `pipeline` attribute from `vk.xml`, and the corresponding 4574 "`Pipeline Types`" column from the generated command properties tables. 4575 The `queues` attribute should be used instead (internal merge request 4576 4594). 4577 * Fix typos and improve consistency in the provisional video extension 4578 language (internal merge request 4598). 4579 * Use "`implementation-dependent`" spelling consistently, and update the 4580 style guide to match (internal merge request 4611). 4581 * Update <<ray-intersection-candidate-determination, ray tracing 4582 intersection equation>> for triangles to match other API. This cannot be 4583 distinguished in practice (internal vk-gl-cts issue 2846). 4584 4585New Extensions: 4586 4587 * `<<VK_KHR_shader_subgroup_uniform_control_flow>>` 4588 * `<<VK_EXT_global_priority_query>>` 4589 4590----------------------------------------------------- 4591 4592Change log for May 24, 2021 Vulkan 1.2.179 spec update: 4593 4594 * Update release number to 179 for this update. 4595 4596GitHub Issues: 4597 4598 * Require that the queried 4599 slink:VkPhysicalDeviceExternalMemoryHostPropertiesEXT::pname:minImportedHostPointerAlignment 4600 is a power of two (public issue 1442). 4601 * Fix direction of enum aliasing for fragment shading rate extensions, 4602 so NV tokens don't show up in a KHR-only specification build 4603 (public issue 1482). 4604 * Split the new <<fundamentals-validusage, Valid Usage>> section off from 4605 its previous location within the <<fundamentals-errors, Errors>> section 4606 (public pull request 1503). 4607 * Correct some typos in stage parameter names (public pull request 1507). 4608 * Fix minor markup issues (public pull request 1508). 4609 * Add missing `optional` attribute to 4610 flink:vkGetPhysicalDeviceVideoFormatPropertiesKHR::pname:pVideoFormatPropertyCount 4611 in `vk.xml` (public pull request 1514). 4612 * Add additional header dependencies for external code:Std* types in the 4613 provisional video extensions (public pull request 1515). 4614 * Tagged slink:VkCuModuleCreateInfoNVX::pname:pName as 4615 `len="null-terminated"` in `vk.xml` (public issue 1526). 4616 * Fix `:anchor-prefix:` markup showing up in spec outputs due to 4617 overzealous whitespace removal (public issue 1530). 4618 * Protect use of `__cplusplus` macro in a preprocessor test in the headers 4619 (public Vulkan-Headers issue 4). 4620 4621Internal Issues: 4622 4623 * Rephrase the language describing lifetime of EDID query results for 4624 slink:VkDisplayPropertiesKHR to be more precise (internal issue 695). 4625 * Clarify descriptor pool size aggregation behavior for 4626 slink:VkDescriptorPoolCreateInfo.txt (internal issue 2577). 4627 * Make valid usage statements for slink:VkImportMemoryFdInfoKHR and 4628 slink:VkMemoryGetFdInfoKHR properly enforce the relationship between 4629 pname:fd and pname:handleType (internal issue 2607). 4630 * Add missing common, non-indirect shared valid usage statements for 4631 flink:vkCmdDispatchBase (internal issue 2625). 4632 * Call out precision of pname:subPixelPrecisionBits clearly in the 4633 <<vertexpostproc-viewport, Controlling the Viewport>> section (internal 4634 issue 2635) 4635 * Do not allow code:RayPayloadKHR on any-hit shaders in the 4636 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 4637 section (internal issue 2640). 4638 * Simplify specification language for sname:VkMemoryDedicatedRequirements 4639 (internal issue 2661). 4640 * Remove `optional="true"` attributes from XML for 4641 slink:VkSurfaceCapabilities* members pname:supportedTransforms, 4642 pname:supportedCompositeAlpha, and pname:supportedUsageFlags, matching 4643 descriptions in the specification (internal issue 2666). 4644 * Add a concurrent deferred host operation example to the 4645 `<<VK_KHR_deferred_host_operations>>` appendix (internal issue 2677). 4646 * Add a NOTE to slink:VkAccelerationStructureCompatibilityKHR encouraging 4647 host-cachable memory for host acceleration structure builds (internal 4648 issue 2682). 4649 * Remove redundant language in basetype:VkSampleMask duplicating valid 4650 usage statements for slink:VkGraphicsPipelineCreateInfo (internal issue 4651 2624). 4652 * Allow `<<VK_EXT_shader_image_atomic_int64>>` to enable the 4653 code:shaderImageInt64Atomics SPIR-V feature in `vk.xml` (internal SPIR-V 4654 issue 644). 4655 * Add valid usage statement to fname:vkCmdWriteTimestamp* for the 4656 pname:query index in pname:queryPool (internal merge request 4528). 4657 * Add valid usage statements to flink:vkQueueSubmit2KHR for pname:fence 4658 (internal merge request 4530). 4659 * Add *GlCompute* to the disallowed *Output* storage classes in shared valid 4660 usage statement 04644 for ray tracing functionality (internal merge 4661 request 4532). 4662 * Remove redundant code:Patch decoration shared valid usage statement 04671 4663 (internal merge request 4530). 4664 * Make the code:sparseImage*Atomics features a superset of the corresponding 4665 code:shaderImage*Atomics features, in the slink:VkDeviceCreateInfo valid 4666 usage statements and the <<features-requirements, Feature Requirements>> 4667 section (internal merge request 4561). 4668 * Add `specialuse="glemulation,d3demulation"` attribute to XML for 4669 `<<VK_EXT_custom_border_color>>` (internal merge request 4564). 4670 * Make array count and pointer-to-array parameter / member descriptions 4671 more consistent (internal merge request 4566). 4672 * Add third-level section headings to the <<memory-device, Device Memory>> 4673 section for clarity (internal merge request 4567). 4674 * Use the terminology "`drawing/dispatching command`" consistently, add it 4675 to the style guide, and remove occasional use of "`record`" or "`perform`" 4676 in refpage summaries of ftext:vkCmd* (internal merge request 4569). 4677 * Use Asciidoctor attributes to genericize more instances of header file 4678 names, to enable future variant APIs (internal merge request 4581). 4679 * Fix SVG for some images that render incorrectly in Chrome on MacOS 4680 (internal merge request 4583). 4681 * Move some valid usage statements for 4682 `<<VK_QCOM_render_pass_shader_resolve>>` into 4683 slink:VkGraphicsPipelineCreateInfo, slink:VkRenderPassCreateInfo2, and 4684 the <<spirvenv-module-validation-standalone, Standalone SPIR-V 4685 Validation>> section (internal merge request 4584). 4686 4687----------------------------------------------------- 4688 4689Change log for May 10, 2021 Vulkan 1.2.178 spec update: 4690 4691 * Update release number to 178 for this update. 4692 4693GitHub Issues: 4694 4695 * Add `optional` attribute to pname:pFragmentShadingRateAttachment member 4696 of slink:VkFragmentShadingRateAttachmentInfoKHR, to match specification 4697 text (public issue 1482). 4698 * Lots of minor markup and phrasing fixes (public issue 1482). 4699 * Additional fixes specific to ray tracing extensions, including a few 4700 duplicate valid usage statements, incorrect descriptions of structure 4701 members, and incorrect SPIR-V opcodes (public issue 1483). 4702 * Fix formatting around "`Special Use`" sections in generated refpages 4703 (public issue 1518). 4704 4705Internal Issues: 4706 4707 * Language cleanup including removing contractions, and some wording in 4708 more egregious violation of the style guide. 4709 * Make parameter handling text in the 4710 <<deferred-host-operations-requesting, Requesting Deferral>> section 4711 consistent with the <<fundamentals>> chapter (internal issue 2018). 4712 * Relax slink:VkCopyDescriptorSet valid usage statements to remove some 4713 constraints on copying descriptors from sets residing in host memory 4714 other kinds of sets (internal issue 2610). 4715 * Clarify the definition of "`intersection`" in the 4716 <<ray-intersection-candidate-determination, Ray Intersection Candidate 4717 Determination>> section (internal issue 2623). 4718 * Allow pname:stride to equal buffer size in 4719 slink:VkStridedDeviceAddressRegionKHR (internal issue 2631). 4720 * Fix the ray tracing shader interface table in the 4721 <<interfaces-raypipeline, Ray Tracing Pipeline Interface>> section 4722 (internal issue 2640). 4723 * Try to use consistently-phrased descriptions of etext:*FlagBits* members 4724 and parameters everywhere (internal issue 2656). 4725 * Replace "`optional pointer`" terminology with "`NULL or a pointer`" (and 4726 similar uses), and update the style guide accordingly (internal issue 4727 2662). 4728 * Modify wording of some pipeline creation valid usage statements to tidy 4729 up cases where certain state isn't required (internal merge request 4730 4496). 4731 * Clarify consistent <<descriptorsets-updates-consecutive, consecutive 4732 binding updates>> (internal merge request 4500). 4733 * Clarify that code:scalarBlockLayout is supported on the 4734 code:ShaderRecordBufferKHR storage class in the 4735 <<interfaces-resources-standard-layout, Standard Buffer Layout>> section 4736 (internal merge request 4525). 4737 * Hide boilerplate Features and Properties text where it incorrectly 4738 appeared outside the descriptions of feature and property structures, 4739 respectively (internal merge request 4541). 4740 * Add missing section headers to the 4741 `<<VK_KHR_zero_initialize_workgroup_memory>> appendix (internal merge 4742 request 4553). 4743 * Add missing `R64ui` and `R64i` entries to the SPIR-V 4744 <<spirvenv-format-type-matching tables, image format matching tables>> 4745 for `<<VK_EXT_shader_image_atomic_int64>>` (internal 4746 Tracker/vk-gl-cts#2885). 4747 4748New Extensions: 4749 4750 * `<<VK_NVX_binary_import>>` (only appendix and XML - no spec language 4751 yet). 4752 4753----------------------------------------------------- 4754 4755Change log for April 26, 2021 Vulkan 1.2.177 spec update: 4756 4757 * Update release number to 177 for this update. 4758 4759GitHub Issues: 4760 4761 * Add valid usage statement to flink:vkDestroyImage to prevent destruction 4762 of presentable images acquired from flink:vkGetSwapchainImagesKHR 4763 (public Vulkan-ValidationLayers issue 2718). 4764 4765Internal Issues: 4766 4767 * Add proposal template for new feature development (internal issue 2529). 4768 * Remove valid usage statement 03361 from flink:vkCmdBindVertexBuffers2EXT 4769 (internal issue 2600). 4770 * Finish fixing refpage formatting issues for the new video extensions 4771 (internal issue 2611). 4772 * Invert direction of ray space matrix to correct the 4773 <<ray-intersection-candidate-determination, ray/triangle sidedness 4774 test>> (internal merge request 4480). 4775 * Fix capitalization of etext:*_EXTENSION_NAME and etext:*_SPEC_VERSION 4776 tokens for `<<VK_QCOM_render_pass_store_ops>>` (internal merge request 4777 4490). 4778 * Don't generate etext:*_MAX_ENUM tokens for 64-bit flag types. Note that 4779 these tokens are *explicitly* not part of the Vulkan API and are not 4780 included in the Specification, only in generated headers. They are added 4781 to enumerated types to ensure padding to 32 bits, but are completely 4782 pointless for the 64-bit flag types, which are defined as integer 4783 constants rather than enumerants (internal merge request 4493). 4784 * Remove empty VK_ENABLE_BETA_EXTENSION guards from headers when disabling 4785 extensions (internal merge request 4498). 4786 * Reproduce valid usage statement constraining pname:query from 4787 flink:vkCmdBeginQuery to 4788 flink:vkCmdWriteAccelerationStructuresPropertiesKHR (internal merge 4789 request 4520). 4790 4791New Extensions: 4792 4793 * `<<VK_EXT_provoking_vertex>>` 4794 4795----------------------------------------------------- 4796 4797Change log for April 19, 2021 Vulkan 1.2.176 spec update: 4798 4799 * Update release number to 176 for this update. 4800 4801GitHub Issues: 4802 4803 * Fix many typos (based on public issues 1483 & 1484). 4804 * Fix an error in the definition of dname:VK_NULL_HANDLE which caused a 4805 compilation error with one version of MSVC (public issue 1502). 4806 * Remove duplicate requirement for elink:VkStructureType from 4807 dname:VK_VERSION_1_0 block of `vk.xml` (public merge request 1504). 4808 4809Internal Issues: 4810 4811 * Modify extension metadoc generator to include Contact information in 4812 extension reference pages (internal issue 2611). 4813 * Fix XML consistency checker script to add exceptions to naming patterns 4814 for new extensions (internal merge request 4491). 4815 * Clean up latest revision numbers in some video extension appendices to 4816 be integers, for compatibility with the consistency checker script 4817 (internal merge request 4492). 4818 * Mark slink:VkIndirectCommandsLayoutCreateInfoNV pname:flags member as 4819 `optional` in `vk.xml` (internal merge request 4501). 4820 4821New Extensions: 4822 4823 * `<<VK_EXT_extended_dynamic_state2>>` 4824 4825----------------------------------------------------- 4826 4827Change log for April 13, 2021 Vulkan 1.2.175 spec update: 4828 4829 * Update release number to 175 for this update. 4830 4831GitHub Issues: 4832 4833 * Specify that fragment shader invocations in the same quad scope are also 4834 in the same primitive scope (public issue 1465). 4835 * Fix an incorrect reference to ename:VK_SHARING_MODE_CONCURRENT to the 4836 correct ename:VK_SHARING_MODE_EXCLUSIVE in the queue transfer wording 4837 for slink:VkBufferMemoryBarrier2KHR (public issue 1479). 4838 * Fix description of <<vertexpostproc-clipping, Primitive Clipping>> 4839 (public issues 1480 and 1481). 4840 4841Internal Issues: 4842 4843 * Use consistent language in describing <<features, feature>> and 4844 <<limits, property (limit)>> queries. In particular, a few structures 4845 were described as being usable to query feature support, but not to set 4846 it. This was incorrect. All feature structures which can appear in the 4847 pname:pNext chain of slink:VkPhysicalDeviceFeatures2 can be used to both 4848 query and set (internal issue 2310). 4849 * Add `limittype` attributes to the XML schema and to `vk.xml` for 4850 structure members which are part of physical device property queries, to 4851 annotate how the resulting properties are interpreted and replace some 4852 manual interpretation of these properties (internal issue 2427). 4853 * Improve slink:VkAttachmentDescription2 wording around the use of 4854 slink:VkAttachmentDescriptionStencilLayout for specifying the stencil 4855 aspect layout (internal issue 2496). 4856 * Split the <<extendingvulkan-coreversions-versionnumbers, major version 4857 field>> of a packed pname:apiVersion value, introducing a new `variant` 4858 field. This field allows identification of APIs based on Vulkan, but not 4859 fully compatible with Vulkan applications. Vulkan is variant 0, making 4860 the change backwards compatible with the previous definition of 4861 pname:apiVersion. This change was introduced to enable variants of the 4862 Vulkan API that Khronos may release in the future, in particular the 4863 in-development Vulkan SC API. It is purely a future-proofing measure and 4864 no near-term further use is planned. To support this split, a set of new 4865 macros is introduced: dname:VK_API_VERSION_VARIANT, 4866 dname:VK_API_VERSION_MAJOR, dname:VK_API_VERSION_MINOR, and 4867 dname:VK_API_VERSION_PATCH (internal issue 2531). 4868 * Clarify that the slink:VkRectLayerKHR members of a 4869 slink:VkPresentRegionKHR structure must not be transformed to align with 4870 the swapchain's pname:pTransform. The presentation engine must do this 4871 transform (internal issue 2571). 4872 * Fix minor issues with exposed Asciidoctor markup in spec outputs 4873 (internal issue 2576). 4874 * Tighten up wording around pool entries of mutable descriptor types. for 4875 slink:VkDescriptorPoolCreateInfo (internal issue 2578). 4876 * Expand on wording of code:FPRoundingMode valid usage statement in the 4877 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 4878 section (internal merge request 4298). 4879 * Document interaction with `<<VK_KHR_fragment_shading_rate>>` for 4880 `<<VK_QCOM_render_pass_transform>>` (internal merge request 4221). 4881 * Require compile time constants be explicitly tagged as unsigned or float 4882 in `vk.xml`. Modify the generator scripts and schema documentation to 4883 require `type` attributes for such constants. This allows generating 4884 headers compliant with MISRA section 10.4 requirements, where needed 4885 (internal merge request 4451). 4886 * Minor editorial fixes (internal merge request 4454). 4887 * Disallow code:*Offset* decorations on storage images 4888 in the <<spirvenv-module-validation-standalone, Standalone SPIR-V 4889 Validation>> section (internal merge request 4465). 4890 * Improve the code: macro used in spec markup to allow imbedded wildcards 4891 separating words and a trailing wildcard (internal merge request 4466). 4892 * Modify `vk.xml` `requires` attributes to reorder definitions of 4893 dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE and dname:VK_NULL_HANDLE. This 4894 prevents a corner case where the app overriding the first macro 4895 explicitly would prevent definition of dname:VK_NULL_HANDLE (internal 4896 merge request 4476). 4897 4898New Extensions: 4899 4900 * `<<VK_EXT_color_write_enable>>` 4901 * `<<VK_EXT_vertex_input_dynamic_state>>` 4902 * `<<VK_EXT_ycbcr_2plane_444_format>>` 4903 * `<<VK_NV_inherited_viewport_scissor>>` 4904 * Vulkan video core & codecs provisional extension package, including 4905 ** `<<VK_KHR_video_queue>>` 4906 ** `<<VK_KHR_video_decode_queue>>` 4907 ** `<<VK_KHR_video_encode_queue>>` 4908 ** `<<VK_EXT_video_decode_h264>>` 4909 ** `<<VK_EXT_video_decode_h265>>` 4910 ** `<<VK_EXT_video_encode_h264>>` 4911 4912----------------------------------------------------- 4913 4914Change log for March 29, 2021 Vulkan 1.2.174 spec update: 4915 4916 * Update release number to 174 for this update. 4917 4918GitHub Issues: 4919 4920 * Add a common header macro dname:VK_USE_64_BIT_PTR_DEFINES to specify at 4921 compile time whether non-dispatchable handles are declared using a 4922 64-bit pointer type, or a 64-bit unsigned integer type. NOTE: it is 4923 possible that the complex platform-dependent C preprocessor block will 4924 move from vk.xml into the static (non-generated) vk_platform.h header in 4925 the near future (partially addresses public issue 1431, in addition to 4926 internal needs). 4927 * Clarify code:PatchVertices documentation for tessellation shaders 4928 (public pull request 1475). 4929 4930Internal Issues: 4931 4932 * Add valid usage statements restricting bitfield operations to 32-bit 4933 types in the <<spirvenv-module-validation-standalone, Standalone SPIR-V 4934 Validation>> section (internal issue 2561). 4935 * Update registry documentation to require providing the `type` attribute 4936 of `enum` tags when they are specifying compile time constants, and 4937 change the accepted values of the attribute to a small set of C scalar 4938 type names, instead of schema-specific names. The XML schema itself 4939 would ideally be updated to match, but we don't know how to do that yet 4940 (internal issue 2564). NOTE: it is possible this will affect downstream 4941 consumers of `vk.xml`, although we consider this unlikely. 4942 * Document in the style guide that bits reserved in corresponding 32- and 4943 64-bit bitmasks should be reserved in both types (internal merge issue 4944 2565). 4945 * Add output generator options to generate MISRA-friendly headers, and 4946 check generator scripts to avoid generating etext:RESERVED 64-bit 4947 bitflag names specified by `disabled` extensions in `vk.xml` (internal 4948 merge request 4239, internal issue 2572). 4949 * Clarify that compressed copies need to round up division in the 4950 computation `rowLength` and `imageHeight` in the sample code for the 4951 <<copies-buffers-images-addressing, Buffer and Image Addressing>> 4952 section (internal merge request 4439). 4953 4954----------------------------------------------------- 4955 4956Change log for March 21, 2021 Vulkan 1.2.173 spec update: 4957 4958 * Update release number to 173 for this update. 4959 4960GitHub Issues: 4961 4962 * Fix valid usage statement for flink:vkCmdBeginQueryIndexedEXT to allow 4963 multiple active queries of the same type, as long as their index values 4964 are different (public issue 1357). 4965 * Fix tagging for slink:VkPhysicalDeviceVulkan11Features in `vk.xml` 4966 (public issue 1437). 4967 * Update the <<WSI Swapchain>> chapter's use of "`release`" and 4968 "`present`" terminology (public pull request 1470). 4969 * Migrate from Azure Pipelines to GitHub Actions for CI, and use updated 4970 Khronos Docker image to build (public pull request 1473). 4971 4972Internal Issues: 4973 4974 * Document requirements for extension <<extensions-feature-structures, 4975 Feature Structures>> (internal issue 2503). 4976 * Add missing valid usage statements for slink:VkAttachmentReference2 and 4977 separate depth/stencil layouts (internal issue 2509). 4978 * Clarify interactions between `<<VK_EXT_buffer_device_address>>` and 4979 Vulkan 1.2 in slink:VkDeviceCreateInfo valid usage (internal issue 4980 2530). 4981 * Allow variation in number of acceleration structure handles following a 4982 top-level acceleration structures for 4983 flink:vkCmdCopyAccelerationStructureToMemoryKHR (internal issue 2538). 4984 * Specify implementation requirement for device timestamps in the 4985 description of elink:VkTimeDomainEXT (internal issue 2551). 4986 * Update valid usage ID assignment and extraction scripts to handle IDs 4987 containing function pointer names (internal issue 2557). 4988 * Move some runtime restrictions to 4989 <<spirvenv-module-validation-standalone Standalone SPIR-V>> valid usage 4990 statements (internal merge request 4286). 4991 * Use new version of the HTML asciidoctor-chunker, which runs much faster, 4992 and a new Docker image which omits the old implementation of the chunker 4993 (internal merge request 4391). 4994 * Fix <<devsandqueues-devices, logical device creation language>> for 4995 Vulkan 1.1 (internal merge request 4405). 4996 * Modify scripts to enable platform extensions to be filtered by the 4997 `"supported"` attribute in `vk.xml` (internal merge request 4411). 4998 * Add common valid usage statement for draw/dispatch commands on format 4999 support for mip filters (internal merge request 4413). 5000 * Fix valid usage statement extractor (vu-to-json) to add padding after 5001 inserted list items, so they don't absorb other markup that might come 5002 after in the document (internal merge request 4423). 5003 * Disallow shadow lookups on 3D images in the 5004 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 5005 section. This is not supported on all hardware, and should not have been 5006 allowed (internal merge request 4424). 5007 5008New Extensions: 5009 5010 * `<<VK_FUCHSIA_external_memory>>` 5011 * `<<VK_FUCHSIA_external_semaphore>>` 5012 5013----------------------------------------------------- 5014 5015Change log for March 8, 2021 Vulkan 1.2.172 spec update: 5016 5017 * Update release number to 172 for this update. 5018 5019Internal Issues: 5020 5021 * Remove Asciidoctor conditional markup for extensions from 5022 <<spirvenv-module-validation-standalone, Standalone SPIR-V valid usage 5023 statements>>, and add a note to this effect for future additions 5024 (internal issue 2512). 5025 * Update the descriptions (and related validation rules) of 5026 code:uniformAndStorageBuffer8BitAccess and 5027 code:uniformAndStorageBuffer16BitAccess to only refer to the 5028 code:Uniform storage class; and update the 16-bit storage feature 5029 validation rules to refer to 16-bit floating-point, similarly to the 5030 feature descriptions. These changes are in the 5031 <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> 5032 <<features-requirements, Feature Requirements>> sections (internal issue 5033 2535). 5034 * Ban recursion in tlink:PFN_vkDebugUtilsMessengerCallbackEXT callbacks, 5035 for consistency of `<<VK_EXT_debug_utils_callbacks>>` with 5036 `<<VK_EXT_device_memory_report>>` and the rules for 5037 slink:VkAllocationCallbacks (internal issue 2537). 5038 * Remove dependency on `<<VK_KHR_create_renderpass2>>` from `vk.xml` for 5039 `<<VK_KHR_synchronization2>>` (internal issue 2539). 5040 * Add the transform feedback pipeline stage as valid for 5041 ename:VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT access (internal 5042 merge request 4355). 5043 * Fix typo in `<<VK_EXT_debug_utils>>` examples (internal merge request 5044 4395). 5045 * Fix typo to refer to "`buffer view`" rather than "`image view`" in the 5046 valid usage statements for code:OpImageWrite (internal merge request 5047 4398). 5048 * Fix typo in the mandatory features section related to 5049 `<<VK_KHR_ray_tracing_pipeline>>` (internal merge request 4406). 5050 5051----------------------------------------------------- 5052 5053Change log for March 1, 2021 Vulkan 1.2.171 spec update: 5054 5055 * Update release number to 171 for this update. 5056 5057GitHub Issues: 5058 5059 * Use `strictly increasing` rather than `monotonically increasing` in the 5060 definition of <<glossary, timeline semaphores>> (public issue 1424). 5061 * Add missing raytracing pipeline creation information from 5062 `<<VK_KHR_pipeline_executable_properties>>` to 5063 flink:vkGetPipelineExecutableStatisticsKHR and 5064 flink:vkGetPipelineExecutableInternalRepresentationsKHR valid usage 5065 statements (public issue 1433). 5066 * Add missing `SPV_EXT_shader_atomic_float` to `vk.xml` (public issue 5067 1447). 5068 * Fix ename:VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL to 5069 ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT in synchronization 5070 valid usage statement 03938 (public issue 1458). 5071 * Correct the <<interfaces-resources-setandbinding, DescriptorSet and 5072 Binding Assignment>> "`noteworthy example`" to refer to code:OpTypeImage 5073 code:Samplerd=1, not code:OpTypeSampler code:Sampled=1 (public pull 5074 request 1459). 5075 * Clarify that the value of slink:VkViewport::pname:minDepth is not 5076 restricted relative to pname:maxDepth (Vulkan-Headers public issue 180). 5077 * Add valid usage statement to <<spirvenv-module-validation-standalone, 5078 Standalone SPIR-V Validation>> specifying that push constant array 5079 members must only be accessed with dynamically uniform indices 5080 (SPIRV-Tools public issue 2909) 5081 * Add valid usage statement to <<spirvenv-module-validation-standalone, 5082 Standalone SPIR-V Validation>> specifying when the code:Flat decoration 5083 must be used (SPIRV-Tools public issue 3154) 5084 5085Internal Issues: 5086 5087 * Specify the maximum allowed pname:depthBias unit for 5088 flink:vkCmdSetDepthBias (internal issue 2455). 5089 * Add `"protect"` attribute to provisional extension enumerants, and emit 5090 them with that symbol for runtime conditional inclusion from 5091 `vulkan_core.h`. Update description of ename:VK_ENABLE_BETA_EXTENSIONS 5092 to match (internal issue 2481). 5093 * Add valid usage statement to slink:VkImageViewCreateInfo to ban 3D image 5094 views when the ename:VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT is 5095 set (internal issue 2501). 5096 * Add explicit language for the zero hit group intersection shader to the 5097 <<ray-intersection-confirmation, Ray Intersection Confirmation>> section 5098 (internal issue 2505). 5099 * Add a new <<raytraversal-ray-intersection-candidate-diagram, basic ray 5100 diagram>> (internal issue 2518). 5101 * Clarify that acceptable fragment shading rates are less than *or equal* 5102 to, not just less than, in the description of the 5103 <<primsrast-fragment-shading-rate-combining final combined shading 5104 rate>> (internal issue 2524) 5105 * Refer to correct barycentric coordinates for 5106 <<ray-intersection-candidate-determination, triangle intersection 5107 coordinates>> (internal issue 2525). 5108 * Add valid usage statements to drawing commands to match 5109 pname:rasterizationSamples in the pipeline state and the current 5110 attachments (internal merge request 4332). 5111 * Make use of ename:VK_WHOLE_SIZE consistent with sized flush in valid 5112 usage statement for slink:VkMappedMemoryRange (internal merge request 5113 4373). 5114 * Fix Asciidoctor ifdef markup around 5115 ename:VK_MEMORY_HEAP_MULTI_INSTANCE_BIT (internal merge request 4383). 5116 * Move improperly placed valid usage statements from 5117 slink:VkImageViewCreateInfo to slink:VkImageCreateInfo (internal merge 5118 request 4390). 5119 * Add valid usage statements to <<spirvenv-module-validation-standalone, 5120 Standalone SPIR-V Validation>> for pname:minTexelGatherOffset and 5121 pname:minTexelGatherOffset. 5122 * Make <<spirvenv-module-validation-standalone, Standalone SPIR-V 5123 Validation>> valid usage statement 04681 unconditional, rather than 5124 having two versions when a relevant Vulkan extension is or is not 5125 enabled, since this is *standalone* validation. 5126 5127New Extensions 5128 5129 * `<<VK_QNX_screen_surface>>` (public pull request 1449). 5130 5131----------------------------------------------------- 5132 5133Change log for February 15, 2021 Vulkan 1.2.170 spec update: 5134 5135 * Update release number to 170 for this update. 5136 5137Internal Issues: 5138 5139 * Add missing language for zero hit groups to the <<shader-binding-table, 5140 Shader Binding Table>> section and related valid usage statements 5141 (internal issue 2505). 5142 5143New Extensions: 5144 5145 * `<<VK_KHR_synchronization2>>` 5146 5147----------------------------------------------------- 5148 5149Change log for February 2, 2021 Vulkan 1.2.169 spec update: 5150 5151 * Update release number to 169 for this update. 5152 5153GitHub Issues: 5154 5155 * Fix typos in language in the <<vertexpostproc-renderpass-transform, 5156 Render Pass Transform>> section (public issue 1406). 5157 * Fix case of etext:EXTENSION_NAME and etext:SPEC_VERSION enums in 5158 `vk.xml` for the `<<VK_QCOM_rotated_copy>>` extension (public issue 5159 1427). 5160 * Fix equations in the <<ray-intersection-candidate-determination, Ray 5161 Intersection Candidate Determination>> section (public issue 1427). 5162 * Modify examples in the `<<VK_EXT_debug_utils>>` appendix to use 5163 flink:vkGetInstanceProcAddr (public issue 1432). 5164 * Various typo fixes (public pull request 1434). 5165 5166Internal Issues: 5167 5168 * Add missing query types to the introduction of the <<queries>> chapter 5169 (internal issue 2488). 5170 * Tag use of union types in `vk.xml` as `noautovalidity`, since we don't 5171 generate meaningful valid usage statements or validation layer code at 5172 present. This removes a few nonsensical, and unimplemented valid usage 5173 statements of form 'ptext:param must: be a valid stext:VkUnionType union 5174 (internal issue 2490). 5175 * Flatten inline lists in valid usage statements in the 5176 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 5177 section so the VU extraction script can process them properly (internal 5178 issue 2502). 5179 * Move some common copy buffer / copy image valid usage statements to 5180 `copy_bufferimage_to_imagebuffer_common.txt` so they can be shared 5181 (internal merge request 4344). 5182 * Update copyright dates to 2021 (internal merge request 4345), 5183 * Fix typos in Asciidoctor conditional markup in the 5184 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 5185 section (internal issue 4349). 5186 * Fix typos in SPIR-V capability names 5187 code:WorkgroupMemoryExplicitLayout8BitAccessKHR and 5188 code:WorkgroupMemoryExplicitLayout16BitAccessKHR (internal merge request 5189 4359). 5190 * Fix typo in description of 5191 slink:VkCoarseSampleLocationNV::pname:pSampleLocations (internal merge 5192 request 4365). 5193 5194 5195----------------------------------------------------- 5196 5197Change log for January 25, 2021 Vulkan 1.2.168 spec update: 5198 5199 * Update release number to 168 for this update. 5200 5201Internal Issues: 5202 5203 * Change slink:VkAccelerationStructureNV resource classification to 5204 non-linear, and slink:VkAccelerationStructureKHR is neither linear nor 5205 non-linear. This affects the memory classification for purposes of 5206 <<resources-bufferimagegranularity,bufferImageGranularity>> (internal 5207 issue 2289). 5208 * Specify which storage classes are affected by code:scalarBlockLayout in 5209 the <<interfaces-resources-standard-layout, Standard Buffer Layout>> 5210 section (internal merge request 4280). 5211 * Flatten valid usage statements in the 5212 <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> 5213 section so they are correctly processed by the VU extractor script 5214 (internal merge request 4285). 5215 5216New Extensions: 5217 5218 * `<<VK_KHR_workgroup_memory_explicit_layout>>` 5219 * `<<VK_KHR_zero_initialize_workgroup_memory>>` 5220 5221----------------------------------------------------- 5222 5223Change log for January 19, 2021 Vulkan 1.2.167 spec update: 5224 5225 * Update release number to 167 for this update. 5226 5227GitHub Issues: 5228 5229 * Clarify valid usage statements for slink:VkGraphicsPipelineCreateInfo 5230 interaction with potential format features (public issue 1392). 5231 * Use default PDF theme with a local fallback font, to provide 5232 floor/ceiling symbols (public issue 1400). 5233 * Fix valid usage statements to clarify that 5234 flink:vkCmdWriteAccelerationStructuresPropertiesNV only accepts 5235 ename:VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV (public 5236 Vulkan-ValidationLayers issue 2448). 5237 * Add missing `SPV_KHR_multiview` SPIR-V extension to `vk.xml` (public 5238 Vulkan-ValidationLayers issue 2456). 5239 5240Internal Issues: 5241 5242 * Move Acceleration Structure chapter before Ray Traversal and Ray Tracing 5243 chapters and reorganize Asciidoctor source markup, including inlining 5244 ray tracing sub-chapters (internal issue 2249). 5245 * Clarify the definition of the `optional='true'` XML attribute to allow 5246 its use with scalar types, and use it consistently in the specification 5247 and XML; this removes a few uses of the attribute and simplifies some 5248 valid usage statements (internal issue 2435). 5249 * Clarify that it is not valid to create an image view using a format that 5250 requires YCbCr conversion without passing a 5251 slink:VkSamplerYcbcrConversion in valid usage for 5252 slink:VkImageViewCreateInfo (internal issue 2458). 5253 * Clarify that pipeline flags do not cause the corresponding flags to 5254 appear in code:IncomingRayFlagsKHR variables (internal issue 2470). 5255 * Require that pname:supportedAlpha is never zero in text and valid usage 5256 statements for slink:VkDisplayPlaneCapabilitiesKHR and 5257 slink:VkDisplaySurfaceCreateInfoKHR (internal issue 2471). 5258 * Clarify that Dref values are supposed to be clamped for fixed-point 5259 accesses in the <<textures-depth-compare-operation, Depth Compare 5260 Operation>> section (internal issue 2474). 5261 * Fix typo for a destination stage in an issue in the 5262 `<<VK_EXT_transform_feedback>>` extension appendix (internal issue 5263 2477). 5264 * Restrict code:OpImageQueryLod, code:OpImageQuerySizeLod, and 5265 code:OpImageQueryLevels to require a sampler (not storage image) in the 5266 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 5267 section (internal issue 2478). 5268 * Allow 5269 flink:vkGetAccelerationStructureBuildSizesKHR::pname:pMaxPrimitiveCounts 5270 to be zero by setting the `optional` attribute in the XML (internal 5271 issue 2480). 5272 * Update description of 5273 slink:VkDeviceMemoryReportCallbackDataEXT::pname:objectType for 5274 consistency with description of other parameters (internal issue 2485). 5275 * Add a valid usage statement to slink:VkRayTracingPipelineCreateInfoKHR 5276 requiring that all linked pipelines have the same set of flags specified 5277 from the etext:VK_PIPELINE_CREATE_RAY_TRACING_* bits (internal issue 5278 2489). 5279 * Add valid usage statements to flink:vkCmdBeginQuery / 5280 flink:vkCmdBeginQueryIndexedEXT to disallow use with pools created with 5281 ename:VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR / 5282 ename:VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR types 5283 (internal issue 2493). 5284 * Fix normative language for valid usage statements in the <<spirvenv, 5285 Vulkan Environment for SPIR-V>> appendix (internal merge request 4265). 5286 * Remove a few cases where `_KHR` suffixes were left on promoted 5287 extensions in valid usage statements (internal merge request 4293) 5288 * Update and futureproof a previously hardwired reference to Vulkan 1.1 in 5289 the <<introduction-conventions, Document Conventions>> section (internal 5290 merge request 4295). 5291 * Add code:PhysicalStorageBuffer as a valid atomic storage class in the 5292 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 5293 section (internal merge request 4296). 5294 * Clean up phrasing of valid usage statements in the 5295 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 5296 section (internal merge request 4297). 5297 * Add shared valid usage statement for buffer copy commands requiring 5298 pname:bufferRowLength to fit in a signed 32-bit integer (internal merge 5299 request 4302). 5300 * Add dname:VK_NO_STDDEF_H to allow apps to prevent including 5301 `<stddef.h>`, and document it in the <<boilerplate, API Boilerplate>> 5302 appendix (internal merge request 4312). 5303 * Fix typo `SkipTrianglesKHR` -> `SkipAABBsKHR` in the 5304 <<ray-traversal-culling-primitive, Ray Primitive Culling>> section 5305 (internal merge request 4315). 5306 5307----------------------------------------------------- 5308 5309Change log for January 4, 2021 Vulkan 1.2.166 spec update: 5310 5311 * Update release number to 166 for this update. 5312 5313GitHub Issues: 5314 5315 * Add an Issue to the appendix for `<<VK_EXT_debug_report>>` discussing 5316 how to compare handles returned by the debug report callback to 5317 application handles (public issue 368). 5318 * Specify the purpose of ename:VK_LOD_CLAMP_NONE in the description of 5319 slink:VkSamplerCreateInfo::pname:maxLod (public issue 663). 5320 * Clarify in the <<extendingvulkan-extensions-extensiondependencies, 5321 Extension Dependencies>> section that extensions may depend on both 5322 other extensions, and specific core API versions. Together with previous 5323 changes to this section, this should close out the original issue 5324 (public issue 865). 5325 5326Internal Issues: 5327 5328 * Add descriptions of image queries to the <<textures, Image Operations 5329 Overview>> and <<textures-queries, Image Query Instructions>> sections 5330 (internal issues 2416 and 2423). 5331 * Allow axis swapping to be carried through clamping in the 5332 <<primsrast-fragment-shading-rate-combining, Combining the Fragment 5333 Shading Rates>> section (internal issue 2420). 5334 * Move even-size requirements for planar formats to valid usage statements 5335 for slink:VkImageCreateInfo and slink:VkImageViewCreateInfo, and tweak 5336 descriptions of <<formats-definition, the corresponding formats>> 5337 accordingly (internal issue 2434). 5338 * Remove Asciidoctor conditional macros from markup for 5339 slink:VkSamplerCreateInfo valid usage statement 01079 (internal issue 5340 2440). 5341 * Clarify behavior of the <<features-alphaToOne, pname:alphaToOne>> 5342 feature by linking the enable to the corresponding <<fragops-covg, 5343 Multisample Coverage>> fragment operation language, and specifying in 5344 the introduction to the <<fragops, Fragment Operations>> chapter that 5345 "`replacing`" a fragment shader output occurs whether or not the shader 5346 actually wrote that output (internal issue 2448). 5347 * Modify XML for 5348 slink:VkPipelineViewportShadingRateImageStateCreateInfoNV::pname:viewportCount 5349 to allow pname:viewportCount == 0 (internal issue 2449). 5350 * Remove "`built as`" requirement from valid usage statement 03579 for 5351 slink:VkWriteDescriptorSetAccelerationStructureKHR (internal issue 5352 2466). 5353 * Remove incorrect valid usage statement 03655 for 5354 slink:VkAccelerationStructureGeometryTrianglesDataKHR (internal issue 5355 2467). 5356 * Add location limits for mesh shaders to the 5357 <<interfaces-iointerfaces-limits, Shader Input and Output Locations>> 5358 table (internal merge request 3428). 5359 5360----------------------------------------------------- 5361 5362Change log for December 14, 2020 Vulkan 1.2.165 spec update: 5363 5364 * Update release number to 165 for this update. 5365 5366GitHub Issues: 5367 5368 * Fix interaction between imageless framebuffers and 5369 slink:VkImageViewUsageCreateInfo for slink:VkRenderPassBeginInfo, 5370 elink:VkImageUsageFlagBits, and in the 5371 <<resources-image-inherited-usage>> section (public issue 1391). 5372 * Fix `vk.xml` `optional` / `noautovalidity` attributes and corresponding 5373 explicit valid usage statements for 5374 slink:VkBuildAccelerationStructureModeKHR (public issue 1405). 5375 * Remove redundant / incomplete handle comments from `vk.xml` for 5376 elink:VkObjectType enumerants (public merge request 1412). 5377 5378Internal Issues: 5379 5380 * Create valid usage statements from constraints in the 5381 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 5382 section (internal issue 2394). 5383 * Fix valid usage statement 01256 for slink:VkDisplaySurfaceCreateInfoKHR 5384 (internal issue 2404). 5385 * Expand and clarify the event race condition warning for 5386 flink:vkCmdWaitEvents to include two additional scenarios in which the 5387 effect and/or state of an event becomes undefined without additional 5388 synchronization operations (internal issue 2411). 5389 * Update valid usage statement for flink:vkSetLocalDimmingAMD (internal 5390 issue 2446). 5391 * Recast slink:VkStridedDeviceAddressRegionKHR valid usage statements in 5392 terms of size being non-zero, instead of pname:deviceAddress (internal 5393 issue 2450). 5394 * Add missing ename:VK_SHARING_MODE_CONCURRENT valid usage statement for 5395 flink:vkQueueSubmit (internal merge request 4244). 5396 * Add limits related to local size to the 5397 <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> 5398 section (internal merge request 4255). 5399 * Fix typo in description of 5400 slink:VkDescriptorUpdateTemplateEntry::pname:dstArrayElement (internal 5401 merge request 4260). 5402 * Remove repeated "`all`" from slink:VkGraphicsPipelineCreateInfo valid 5403 usage statements (internal merge request 4266). 5404 * Fix internal xrefs to the SPIR-V capabilities tables, which broke as a 5405 side effect of generating the table instead of handcoding it (internal 5406 merge request 4270). 5407 * Fix normative language for code:WorkgroupSize (internal merge request 5408 4272). 5409 * Restore `len` attribute to `vk.xml` after its recent accidental removal 5410 from slink:VkDescriptorSetAllocateInfo::pname:pSetLayouts (internal 5411 merge request 4275). 5412 * Remove trailing periods from SPIR-V valid usage statements (internal 5413 merge request 4284). 5414 * Base PDF theme on builtin fallback theme, simplifying it and adding 5415 support for some math characters not found in the default theme 5416 (internal merge request 4287). 5417 5418----------------------------------------------------- 5419 5420Change log for December 7, 2020 Vulkan 1.2.164 spec update: 5421 5422 * Update release number to 164 for this update. 5423 5424GitHub Issues: 5425 5426 * Reserve vendor ID for PoCL (public pull request 1411). 5427 5428Internal Issues: 5429 5430 * Add valid usage statements to ray tracing commands requiring they be 5431 given a ray tracing pipeline, and removing support for 5432 ename:ACCELERATION_STRUCTURE_TYPE_GENERIC in 5433 flink:vkCmdBuildAccelerationStructureNV (internal issue 2271). 5434 * Add valid usage statements disallowing the use of protected command 5435 buffers with Ray Tracing Pipelines and Ray Query instructions (internal 5436 issue 2409). 5437 * Move the un-numbered glossary / abbreviations / prefixes pseudo-chapters 5438 into a single appendix, so the table of contents looks cleaner (internal 5439 issue 2437). 5440 * Remove redundant valid usage statement from 5441 slink:VkCommandBufferAllocateInfo (internal merge request 4229). 5442 * Add missing <<features-inlineUniformBlock>> valid usage statement to 5443 slink:VkDescriptorSetLayoutBinding (internal merge request 4246). 5444 * Tweak example of Docker image invocation in `BUILD.adoc` (internal merge 5445 request 4249). 5446 * Capitalize code:LaunchIdKHR the same as in SPIR-V. code:LaunchSizeKHR 5447 and code:LaunchIdKHR are accessible in the code:CallableKHR shader stage 5448 (internal merge request 4252). 5449 * Remove unreachable (redundant) valid usage statements from 5450 flink:vkCmdBeginRenderPass and flink:vkCmdBeginRenderPass2 (internal 5451 merge request 4254). 5452 * Add missing `objtypeenum` attribute to `vk.xml` for slink:VkInstance 5453 (internal merge request 4263). 5454 * Change the chunked HTML target to use a more robust method of inserting 5455 additional Javascript and HTML to support the searchbox. 5456 5457New Extensions: 5458 5459 * `<<VK_NV_acquire_winrt_display>>` 5460 * `<<VK_VALVE_mutable_descriptor_type>>` 5461 5462----------------------------------------------------- 5463 5464Change log for November 30, 2020 Vulkan 1.2.163 spec update: 5465 5466 * Update release number to 163 for this update. 5467 5468GitHub Issues: 5469 5470 * Add XML mapping between VK_OBJECT_TYPE_* names and object type names 5471 (public issue 1379). 5472 * Remove *_READ_BIT from .srcAccessMask in code samples (public issue 5473 1389). 5474 * Fix example code for slink:VkPushConstantRange to take 5475 elink:VkShaderStageFlags, not elink:VkPipelineStageFlags (public pull 5476 request 1393). 5477 * Add missing :refpage: attribute to slink:VkBlitImageInfo2KHR (public 5478 issue 1407). 5479 * Remove extraneous newline from texel block size table (public issue 5480 1409). 5481 5482Internal Issues: 5483 5484 * Update style guide to require `optional="true"` be set on pname:pNext 5485 structure members (internal issue 2428). 5486 * Sort conditionals in ifdef:: output of spirvcapgenerator for stability 5487 (internal issue 2430). 5488 * Fix slink:VkGraphicsPipelineShaderGroupsCreateInfoNV VU 02886 5489 (internal merge request 4225). 5490 5491 5492----------------------------------------------------- 5493 5494Change log for November 23, 2020 Vulkan 1.2.162 spec update: 5495 5496 * Update release number to 162 for this update. 5497 5498GitHub Issues: 5499 5500 * Mark pname:pNext pointers as `optional="true"` in `vk.xml` (public pull 5501 request 1396). 5502 * Make a formerly implicit slink:VkSubpassDescriptionDepthStencilResolve 5503 valid usage statement explicit (public Vulkan-ValidationLayers issue 5504 2311). 5505 5506Internal Issues: 5507 5508 * Clarify lifetime of push constants in the flink:vkCmdPushConstants 5509 description (internal issue 2168). 5510 * Clarify that flink:vkGetDeviceProcAddr is not intended to return 5511 physical device-level commands (internal issue 2344). 5512 * Tweak CI test for SPEC_VERSION to always succeed when the branch name 5513 exists, but the extension is disabled (internal merge request 4219). 5514 5515New Extensions: 5516 5517 * Add final (non-provisional) versions of the Vulkan Ray Tracing 5518 extensions (internal merge request 4143): 5519 ** `<<VK_KHR_acceleration_structure>>` 5520 ** `<<VK_KHR_ray_tracing_pipeline>>` 5521 ** `<<VK_KHR_ray_query>>` 5522 ** `<<VK_KHR_pipeline_library>>` 5523 ** `<<VK_KHR_deferred_host_operations>>` 5524 5525----------------------------------------------------- 5526 5527Change log for November 16, 2020 Vulkan 1.2.161 spec update: 5528 5529 * Update release number to 161 for this update. 5530 5531GitHub Issues: 5532 5533 * Add some missing types to the table of handle type <-> 5534 etext:VK_OBJECT_TYPE_* enums in the debugging chapter (in response to a 5535 comment on public issue 1379). 5536 5537Internal Issues: 5538 5539 * Move copyright statement into its own "`Preamble`" chapter to simplify 5540 preprocessing for chunked HTML target and make PDF / single-page HTML 5541 consistent with the chunked output (internal issue 2384). 5542 * Clarify that slink:VkExternalMemoryBufferCreateInfo::pname:handleTypes 5543 and slink:VkExternalMemoryImageCreateInfo::pname:handleTypes can be 5544 zero, and fix missing `optional` attribute in `vk.xml` for the latter 5545 case (internal issue 2388). 5546 * Make `specialuse` attributes in source markup expand properly in 5547 extension refpages (internal issue 2412). 5548 * Remove as yet unused slink:VkSemaphoreCreateFlagBits type from `vk.xml` 5549 (internal issue 2413). 5550 * Remove unreachable valid usage statements for 5551 slink:VkRenderPassMultiviewCreateInfo::pname:pViewMask in the 5552 slink:VkRenderPassCreateInfo pname:pNext chain, and for 5553 slink:VkRenderPassCreateInfo2::pname:viewMask. These statements cannot 5554 ever be violated given that view masks cannot exceed index 31 and 5555 pname:maxFramebufferLayers exceeds this value (internal merge request 5556 4204). 5557 * Only allow forward pointers for physical storage buffers in the 5558 <<spirvenv-module-validation>> section (internal merge request 4206). 5559 * Fix a variety of minor valid usage statement issues with the 5560 `<<VK_KHR_fragment_shading_rate>>` extension (internal merge request 5561 4207). 5562 5563----------------------------------------------------- 5564 5565Change log for November 9, 2020 Vulkan 1.2.160 spec update: 5566 5567 * Update release number to 160 for this update. 5568 5569GitHub Issues: 5570 5571 * Remove redundant input attachment valid usage statements from 5572 slink:VkAttachmentReference2 (public issue 1378). 5573 5574Internal Issues: 5575 5576 * Restore "`Preamble`" section containing the copyright statement to the 5577 proper place in the chunked specification index (internal issue 2384). 5578 * Add missing valid usage statements for 5579 flink:vkCmdDrawIndirectByteCountEXT (internal issue 2400). 5580 * Move vertex input example from the <<fxvertex>> chapter to the Vulkan 5581 Guide (internal merge request 4162). 5582 * Clarify update-after-bind limits for dynamic buffers in the 5583 <<limits-maxDescriptorSetUpdateAfterBindUniformBuffersDynamic>> and 5584 <<limits-maxDescriptorSetUpdateAfterBindStorageBuffersDynamic>> sections 5585 (internal merge request 4186). 5586 * Clarify slink:VkFramebufferCreateInfo to allow read-only use of depth 5587 images as attachments and non-attachments (internal merge request 4191). 5588 * Remove redundant valid usage statement from slink:VkWriteDescriptorSet 5589 (internal merge request 4196). 5590 * Remove redundant valid usage statement from flink:vkFreeDescriptorSets 5591 (internal merge request 4198). 5592 * Fix typo in slink:VkDisplaySurfaceCreateInfoKHR valid usage statement 5593 (internal merge request 4199). 5594 * Remove redundant pname:firstViewport / pname:firstScissor limit checks 5595 in valid usage statements for flink:vkCmdSetViewportWScalingNV, 5596 flink:vkCmdSetScissor, flink:vkCmdSetExclusiveScissorNV, 5597 flink:vkCmdSetViewportShadingRatePaletteNV, and flink:vkCmdSetViewport 5598 (internal merge request 4200). 5599 5600New Extensions: 5601 5602 * `<<VK_NV_fragment_shading_rate_enums>>` 5603 5604----------------------------------------------------- 5605 5606Change log for November 1, 2020 Vulkan 1.2.159 spec update: 5607 5608 * Update release number to 159 for this update. 5609 5610GitHub Issues: 5611 5612 * Clarify handle uniqueness with private data in the 5613 <<fundamentals-objectmodel-overview, Object Model>> section (public 5614 issue 1349). 5615 * Make ename:VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR 5616 an alias of 5617 ename:VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR 5618 and ename:VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR 5619 an alias of 5620 ename:VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR, 5621 for backwards compatibility while complying with naming conventions 5622 (public issue 1367). 5623 * Make ename:VK_SURFACE_COUNTER_VBLANK_EXT an alias of 5624 ename:VK_SURFACE_COUNTER_VBLANK_BIT_EXT for backwards compatibility 5625 while complying with naming conventions (public issue 1368). 5626 * Add a note to the <<memory-model-synchronizes-with, Synchronizes-With>> 5627 section that fragment shader interlock instructions don't perform 5628 implicit availability or visibility operations (public issue 1383). 5629 5630Internal Issues: 5631 5632 * Dynamically generate SPIR-V <<spirvenv-capabilities-table, 5633 Capabilities>> and <<spirvenv-extensions-table, Extensions>> tables from 5634 new tags in `vk.xml`, exposing this information for other projects 5635 downstream (internal issue 2156). 5636 * Clarify when a <<renderpass-feedbackloop, feedback loop>> creates a data 5637 race (internal issue 2296). 5638 * Remove un-needed `noautovalidity` attributes on pname:pNext structure 5639 members, including a few cases where they were actually suppressing 5640 appropriate autogenerated validity statements (internal issue 2335; 5641 similar purpose to closed public PR 1339). 5642 * Clarify treatment of most-negative signed normalized fixed-point values 5643 in the <<fundamentals-fixedfpconv, Conversion from Normalized 5644 Fixed-Point to Floating-Point>> section (internal issue 2367). 5645 * Clarify that enabling an extension cannot change existing implementation 5646 behavior in the introduction to the <<extendingvulkan-extensions, 5647 Extensions>> chapter (internal issue 2375). 5648 * Add missing valid usage statement to flink:vkCreatePrivateDataSlotEXT 5649 (internal issue 2379). 5650 * Fix a misplaced Asciidoctor `endif::` for flink:vkCreateSwapchainKHR 5651 (internal merge request 4177). 5652 * Add missing pname:aspectMask valid usage statement to 5653 slink:VkSubpassDescription2, matching 5654 slink:VkInputAttachmentAspectReference (internal merge request 4177). 5655 * Clarify <<interfaces, SPIR-V rules on decorations>> (internal 5656 spirv/SPIR-V issue 444). 5657 * Add missing `<<VK_VERSION_1_2>>` to all 5658 `<<VK_EXT_separate_stencil_usage>>` conditional markup (internal 5659 vulkansc/vulkansc issue 58). 5660 5661New Extensions: 5662 5663 * `<<VK_QCOM_rotated_copy_commands>>` (internal merge request 4132). 5664 5665----------------------------------------------------- 5666 5667Change log for October 19, 2020 Vulkan 1.2.158 spec update: 5668 5669 * Update release number to 158 for this update. 5670 5671Internal Issues: 5672 5673 * Clarify that linear filtering can be used with comparison sampling 5674 in valid usage statements for dispatched draw commands 5675 (internal issue 2365). 5676 * Add valid usage statement for flink:vkGetQueryPoolResults requiring 5677 pname:stride to be large enough for a single performance query result 5678 (internal issue 2380). 5679 * Move input attachment imageLayout to valid usage reference section, 5680 and refer to the <<attachment-type-imagelayout>> section 5681 to reduce complexity of valid usage statement 5682 (internal merge request 4117). 5683 * Update issues list for `<<VK_QCOM_render_pass_transform>>` 5684 (internal merge request 4175). 5685 * Add valid usage statement for 5686 slink:VkPipelineColorBlendStateCreateInfo::pname:attachmentCount (public 5687 Vulkan-ValidationLayers issue 2197). 5688 5689New Extensions: 5690 5691 * `<<VK_KHR_fragment_shading_rate>>` 5692 * `<<VK_KHR_shader_terminate_invocation>>` 5693 5694----------------------------------------------------- 5695 5696Change log for October 12, 2020 Vulkan 1.2.157 spec update: 5697 5698 * Update release number to 157 for this update. 5699 5700GitHub Issues: 5701 5702 * Fix `<<VK_KHR_shader_draw_parameters>>` missing as a feature alias 5703 (based on public pull request 1310). 5704 * Remove unnecessary sentence about device extensions implemented by 5705 layers in the flink:vkCreateDevice description (based on public pull 5706 request 1350). 5707 * Fix parenthesis in equation in the 5708 <<textures-texel-anisotropic-filtering, Texel Anisotropic Filtering>> 5709 section (public merge request 1365). 5710 * Add missing types to `vk.xml` for `<<VK_EXT_device_memory_report>>` 5711 (public issue 1374). 5712 * Add slink:VkBufferImageCopy valid usage statement for 5713 ename:VK_IMAGE_ASPECT_DEPTH_BIT and ename:VK_IMAGE_ASPECT_STENCIL_BIT 5714 pname:aspectMask values (public Vulkan-ValidationLayers issue 2113). 5715 5716Internal Issues: 5717 5718 * Remove unused etext:VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT 5719 token 5720 (internal issue 2275). 5721 * Clarify the specific stage requirement for synchronization 5722 between flink:vkCmdResetEvent and flink:vkCmdWaitEvents 5723 (internal merge request 4152). 5724 5725----------------------------------------------------- 5726 5727Change log for October 5, 2020 Vulkan 1.2.156 spec update: 5728 5729 * Update release number to 156 for this update. 5730 5731GitHub Issues: 5732 5733 * Define memory import/export using the glossary term _payload_, rather 5734 than "`the same underlying memory`", for slink:VkFence, 5735 <<synchronization-semaphores-payloads, the semaphore payload section>>, 5736 and many places in the <<memory, Memory Allocation>> chapter (public 5737 issue 1145). 5738 5739New Extensions: 5740 5741 * `<<VK_EXT_device_memory_report>>` 5742 5743----------------------------------------------------- 5744 5745Change log for September 28, 2020 Vulkan 1.2.155 spec update: 5746 5747 * Update release number to 155 for this update. 5748 5749New Extensions: 5750 5751 * `<<VK_EXT_shader_image_atomic_int64>>` 5752 5753----------------------------------------------------- 5754 5755Change log for September 7, 2020 Vulkan 1.2.153 spec update: 5756 5757 * Update release number to 153 for this update. 5758 5759GitHub Issues: 5760 5761 * Specification default branch for updates and PRs is now `main` instead 5762 of `master`. `master` branch still exists, but is frozen at the 1.2.152 5763 level. If you are pulling content from this repository, please switch 5764 from `master` to `main` branch (internal issue 1351). 5765 * Fix slink:VkSubpassDependency2 link from slink:VkRenderPassCreateInfo2 5766 (public issue 1358). 5767 5768Internal Issues: 5769 5770 * Add developer documentation to the appendices for 5771 `<<VK_EXT_memory_budget>>`, `<<VK_KHR_buffer_device_address>>`, 5772 `<<VK_KHR_depth_stencil_resolve>>`, `<<VK_KHR_draw_indirect_count>>`, 5773 `<<VK_KHR_multiview>>`, `<<VK_KHR_sampler_ycbcr_conversion>>` (internal 5774 issue 2109). 5775 * Implement VUID expander treeprocessor plugin to make VUID text visible 5776 and searchable in generated outputs (internal issue 2253, 2258). 5777 * Clarify when acceleration structures can be indexed dynamically in the 5778 <<interfaces-resources-descset, Descriptor Set Interface>> section 5779 (internal issue 2316). 5780 * Add missing valid usage statement for flink:vkImportFenceWin32HandleKHR 5781 (internal merge request 4087). 5782 * Replace badly formatted VUID for `<<VK_AMD_display_native_hdr>>` 5783 (internal merge request 4096). 5784 * Add ray tracing acceleration structures to the lists of objects where 5785 appropriate in the <<fundamentals-objectmodel-lifetime, Object 5786 Lifetime>> section (internal merge request 4100). 5787 * Move GLSL and SPIR-V extension references in the extension appendices 5788 into the "`Interactions and External Dependencies`" sections (internal 5789 merge request 3969). 5790 5791----------------------------------------------------- 5792 5793Change log for August 26, 2020 Vulkan 1.2.152 spec update: 5794 5795 * Update release number to 152 for this update. 5796 5797GitHub Issues: 5798 5799 * Add attachment image layout valid usage statements for 5800 slink:VkSubpassDescription and slink:VkSubpassDescription2 (public issue 5801 1316). 5802 * Clarify and generalize use of "`graphics commands`" in the 5803 <<descriptorsets>> and <<pipelines>> chapters (public issue 1322). 5804 * Fix description of handle returned in slink:VkDeviceQueueInfo2 (public 5805 pull request 1347). 5806 5807Internal Issues: 5808 5809 * Promote valid usage statements requiring multiple parameters of a copy 5810 command from the structure parameter descriptions to the command itself, 5811 significantly restructuring some of the common validity files (internal 5812 issue 2034). 5813 * Add details of clamping and quantization behavior for border colors that 5814 are outside the normal range for slink:VkSamplerCreateInfo and in the 5815 <<textures-operation-validation, Instruction/Sampler/Image View 5816 Validation>> and <<textures-texel-replacement, Texel Replacement>> 5817 sections (internal issue 2281). 5818 * Clarify in the <<spirvenv-module-validation-standalone, Standalone 5819 SPIR-V Validation>> section that the value of code:XfbBuffer cannot 5820 differ for members of the same block (internal issue 2307). 5821 * Add valid usage blocks to the <<interfaces>> chapter where discussing 5822 allowed uses of built-in SPIR-V variables (internal merge requests 3933, 5823 4090). 5824 * Refactor <<spirvenv-module-validation-standalone, Standalone SPIR-V 5825 Validation>> constraints to single statement phrases not using ifdef::ed 5826 Asciidoctor markup, and move some of them down to the 5827 <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> 5828 section (internal merge request 4054). 5829 * Fix XML attributes for some `<<VK_INTEL_performance_query>>` interfaces 5830 (internal merge request 4061). 5831 * Fix the "`Differences relative to `VK_KHR_shader_float16_int8``" 5832 paragraph in the <<versions-1.2, Version 1.2>> appendix (internal merge 5833 request 4062). 5834 * Fix several valid usage statements for 5835 flink:vkCmdBindTransformFeedbackBuffersEXT (public 5836 KhronosGroup/Vulkan-ValidationLayers issue 2105). 5837 * Clarify `shader_read_only` layout restrictions for 5838 slink:VkWriteDescriptorSet and elink:VkImageLayout (internal merge 5839 request 4060). 5840 * Clarify wording for required 4444 and {YCbCr} formats in the 5841 <<formats-mandatory-features-subbyte, Mandatory format support: sub-byte 5842 channels>> and <<formats-requiring-sampler-ycbcr-conversion, Formats 5843 requiring sampler {YCbCr} conversion for ename:VK_IMAGE_ASPECT_COLOR_BIT 5844 image views>> tables (internal merge request 4066). 5845 * Move a feature valid usage statement from flink:vkCmdDrawIndexedIndirect 5846 to its proper home in flink:vkCmdDrawIndexedIndirectCount, matching what 5847 the validation layer already does (internal merge request 4070). 5848 * Split valid usage statement for slink:VkWriteDescriptorSet into one 5849 statement for each descriptor type for image layout requirements 5850 (internal merge request 4071). 5851 * Add the a <<valid-imageview-imageusage>> definition to capture which 5852 elink:VkImageUsageFlagBits must be set when creating a 5853 sname:VkImageView, and use that definition to simplify 5854 slink:VkImageViewCreateInfo valid usage statements (internal merge 5855 request 4073). 5856 * Remove redundant valid usage statement 03269 for slink:VkPresentInfoKHR 5857 (internal merge request 4084). 5858 * Move valid usage statement from slink:VkProtectedSubmitInfo to 5859 slink:VkSubmitInfo (internal merge request 4085). 5860 * Update reference to pname:framebufferIntegerColorSampleCounts from the 5861 description of the <<limits-framebufferColorSampleCounts>> feature if 5862 Vulkan 1.2 is supported (internal merge request 4088). 5863 5864----------------------------------------------------- 5865 5866Change log for August 17, 2020 Vulkan 1.2.151 spec update: 5867 5868 * Update release number to 151 for this update. 5869 5870GitHub Issues: 5871 5872 * Clarify that the <<memory-protected-memory,Protected Memory>> is not 5873 cross-physical device (public issue 1335). 5874 5875Internal Issues: 5876 5877 * Improve the layout of the <<Standard sample locations>> table to avoid 5878 overflow in the HTML output (internal issue 1354). 5879 * Also build core-only HTML spec in internal CI, to try and catch 5880 extension ifdef errors (should probably also do this in Azure CI on 5881 GitHub) (internal issue 1770). 5882 * Add internal CI test for un-tagged uses of "`undefined`", to help make 5883 sure we've carefully considered all such uses (internal issue 2270). 5884 * Add style guide section "`Commands which Return Error Codes`" to give 5885 guidance on assigning error codes and when to use 5886 ename:VK_ERROR_OUT_OF_HOST_MEMORY (internal issue 2290). 5887 * Use the term "`reference monitor`" instead of "`mastering display`" for 5888 the `<<VK_EXT_hdr_metadata>>` extension (internal issue 2291). 5889 * Explicitly state that SPIR-V modules must be valid after specialization 5890 in slink:VkPipelineShaderStageCreateInfo and the 5891 <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> 5892 section (internal issue 2302). 5893 * Add slink:VkShaderModuleCreateInfo valid usage statements to match the 5894 SPIR-V capabilities (internal merge request 4047). 5895 * Add missing features to the <<spirvenv-module-validation-runtime, 5896 Runtime SPIR-V Validation>> section (internal merge request 4048). 5897 * Update slink:VkPhysicalDeviceVulkan11Properties to follow the same 5898 renaming of "`subgroups`" to "`groups`" previously done for 5899 slink:VkPhysicalDeviceSubgroupProperties (internal merge request 4050). 5900 5901----------------------------------------------------- 5902 5903Change log for August 10, 2020 Vulkan 1.2.150 spec update: 5904 5905 * Update release number to 150 for this update. 5906 5907GitHub Issues: 5908 5909 * Remove ename:VK_ERROR_TOO_MANY_OBJECTS as a required error code for 5910 flink:vkAllocateMemory and and flink:vkCreateSampler, and note that 5911 while it may still occur as a historical artifact, exceeding 5912 implementation limits will result in undefined behavior (public issue 5913 1295). 5914 * Allow duplicate slink:VkDebugUtilsMessengerCreateInfoEXT structs in 5915 pname:pNext chain (public issue 1329) 5916 * Fix typo in slink:VkSubmitInfo valid usage statement 04120 (public merge 5917 request 1336). 5918 * Remove `KHR` suffix from some names promoted to core, in the 5919 <<renderpass, Render Pass>> chapter (public merge request 1341). 5920 5921Internal Issues: 5922 5923 * Add ename:VK_ERROR_OUT_OF_HOST_MEMORY to `vk.xml` as a possible error 5924 code for some additional commands returning elink:VkResult, and add a 5925 note to the description of elink:VkResult giving some guidance on which 5926 commands may and may not return that error code (internal issue 2063). 5927 * Make a handful of terminology changes which move this repository closer 5928 to the conventions of the AOSP 5929 https://source.android.com/setup/contribute/respectful-code[Coding with 5930 Respect] document (internal issue 2282). 5931 * Update `<<VK_MVK_ios_surface>>` and `<<VK_MVK_macos_surface>>` 5932 documentation and mark them as deprecated and replaced by 5933 `<<VK_EXT_metal_surface>>` (internal merge request 4024). 5934 * Add a section to the style guide on markup for the copyright and license 5935 block on files in the repository (internal merge request 4036). 5936 * Add ename:VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT to 5937 `<<VK_EXT_validation_features>>` to enable synchronization validation 5938 (internal merge request 4037). 5939 5940----------------------------------------------------- 5941 5942Change log for August 3, 2020 Vulkan 1.2.149 spec update: 5943 5944 * Update release number to 149 for this update. 5945 5946GitHub Issues: 5947 5948 * Fix valid usage statements to clarify interactions between 5949 `<<VK_EXT_extended_dynamic_state>>` and the old viewport related 5950 extensions `<<VK_NV_clip_space_w_scaling>>`, 5951 `<<VK_NV_shading_rate_image>>` (for the palettes), 5952 `<<VK_NV_viewport_swizzle>>`, and `<<VK_NV_scissor_exclusive>>` (public 5953 issue 1296). 5954 5955Internal Issues: 5956 5957 * Clarify wording around non-uniform and non-constant descriptor access in 5958 <<interfaces-resources-descset, Descriptor Set Interface>> (internal 5959 issue 2163). 5960 * Add a missing code:StorageBuffer reference in the <<interface-resources, 5961 Shader Resource Interface>> section (internal issue 2191). 5962 * Refactor common valid usage statements for flink:vkBindBufferMemory, 5963 slink:VkBindBufferMemoryInfo, flink:vkBindImageMemory, and 5964 slink:VkBindImageMemoryInfo (internal issue 2260). 5965 * Copy over import/export behavior for sync file descriptor value `-1` 5966 from slink:VkImportFenceFdInfoKHR to slink:VkImportSemaphoreFdInfoKHR 5967 (internal issue 2274). 5968 * State that a deriviative group is a quad scope instance in the 5969 <<shaders-derivative-operations, Derivative Operations>> section 5970 (internal merge request 4025) 5971 5972New Extensions: 5973 5974 * `<<VK_EXT_4444_formats>>` 5975 5976----------------------------------------------------- 5977 5978Change log for July 19, 2020 Vulkan 1.2.148 spec update: 5979 5980 * Update release number to 148 for this update. 5981 5982GitHub Issues: 5983 5984 * Move description of slink:VkPhysicalDevicePerformanceQueryFeaturesKHR to 5985 the <<features>> chapter (public merge request 1312). 5986 * Fix a few broken internal and external links, and add stub description 5987 of empty elink:VkPipelineCompilerControlFlagsAMD type (public merge 5988 request 1313). 5989 5990Internal Issues: 5991 5992 * Fix a few new places where "`undefined`" was used imprecisely, by 5993 clarifying the difference between undefined results and undefined 5994 behavior (internal issue 543). 5995 * Add valid usage statement to common indirect draw valid usage statements 5996 requiring that the pname:countBufferOffset to the count being used lie 5997 within the pname:countBuffer (internal issue 1309). 5998 * Add <<interfaces-raypipeline, Ray Tracing Pipeline Interface>> section 5999 (internal issues 2094, 2237). 6000 * Add valid usage statement to flink:vkCmdBeginTransformFeedbackEXT to 6001 require that the last vertex processing stage of the bound graphics 6002 pipeline be declared with the code:Xfb execution mode (internal issue 6003 2124). 6004 * Do not allow flink:vkWaitForFences or flink:vkWaitSemaphores to return 6005 timeouts before the period has expired, even though this is valid in 6006 some other synchronisation APIs (internal issue 2146). 6007 * Add elink:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT as an alias 6008 of elink:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT for clarity 6009 when interacting with D3D11 fences (internal issue 2175). 6010 * Ignore slink:VkMemoryAllocateInfo::pname:allocationSize when importing 6011 D3D resources (internal issue 2176). 6012 * Clarify the definition of flink:vkCmdBindVertexBuffers2EXT::pname:pSizes 6013 (internal issue 2262). 6014 * Fix markup error in slink:VkDescriptorSetLayoutBindingFlagsCreateInfo 6015 (internal merge request 3998). 6016 * Remove un-needed dependency of `<<VK_EXT_filter_cubic>>` on 6017 `<<VK_IMG_filter_cubic>>` (internal merge request 4000). 6018 * Minor textual clarifications in ray tracing extensions (internal merge 6019 request 4017). 6020 * Modify the validity generator, so that when generating valid usage for 6021 array lengths with a chain of parameters (e.g. pname:pFoo->bar), 6022 non-zero values are not required if any parameter in the chain is 6023 optional, and consider the last parameter only when deciding the type of 6024 the parameter (internal merge request 4021). 6025 * Fix a typo in the `<<VK_EXT_fragment_density_map2>>` extension appendix 6026 markup that caused refpage build warnings, and modify CI and 6027 `BUILD.adoc` to use `makeSpec` instead of the old `makeAllExts` script 6028 (internal merge request 4023). 6029 6030New Extensions: 6031 6032 * `<<VK_EXT_image_robustness>>` 6033 * `<<VK_EXT_shader_atomic_float>>` 6034 6035----------------------------------------------------- 6036 6037Change log for July 13, 2020 Vulkan 1.2.147 spec update: 6038 6039 * Update release number to 147 for this update. 6040 6041GitHub Issues: 6042 6043 * Allow physical-device-level structures in pname:pNext chains (public 6044 merge request 1303). 6045 * Remove elink:VkRenderPassCreateFlags from dependencies of 6046 `<<VK_QCOM_render_pass_transform>>` (public merge request 1311) 6047 6048Internal Issues: 6049 6050 * Require that variables with code:HitAttributeKHR storage class must: 6051 <<spirvenv-module-validation-standalone, only be written in intersection 6052 shaders>> (internal issue 2103). 6053 * Specify that acceleration structure scratch buffer accesses from 6054 acceleration structure build should be synchronized with the 6055 ename:VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR pipeline 6056 stage and an access mask of 6057 ename:VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR or 6058 ename:VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR (internal issue 6059 2173). 6060 * Improve description of 3D blitting in flink:vkCmdBlitImage (internal 6061 issue 2212). 6062 * Split <<fragops-coverage-reduction, Coverage Reduction>> section into 6063 multiple steps when multi-pixel fragments are involved: first per-pixel 6064 coverage is separated out, then per-sample coverage is generated for 6065 each color sample from per-pixel coverage. Additionally, the definition 6066 of "`color sample mask`" and discussions of it have been removed in 6067 favor of the per-color-sample coverage. (internal merge request 3951). 6068 * Modify slink:VkSamplerYcbcrConversionCreateInfo valid usage statements, 6069 as well as the <<textures-chroma-reconstruction, Chroma Reconstruction>> 6070 section, to make it clear the values of pname:xChromaOffset and 6071 pname:yChromaOffset are only validated when chroma channels are 6072 downsampled (internal merge request 3959). 6073 * Allow flink:vkGetBufferMemoryRequrements and 6074 flink:vkGetBufferMemoryRequrements2 to be called for an Android Hardware 6075 Buffer backed slink:VkBuffer, before it has been bound to memory 6076 (internal merge request 3982). 6077 * Remove *Draft* status from `<<VK_EXT_private_data>>` (internal merge 6078 request 3982). 6079 * Move valid usage statement from slink:VkProtectedSubmitInfo to 6080 slink:VkSubmitInfo (internal merge request 3987). 6081 * Add valid usage statements for protected buffers to 6082 slink:VkBindBufferMemoryInfo and slink:VkBindImageMemoryInfo 6083 (internal merge request 3988). 6084 * Add valid usage statement to slink:VkImageCreateInfo requiring that 6085 images with linear tiling cannot have sparse residency (internal merge 6086 request 3988). 6087 * Clarify that the ptext:maxPerStageDesciptorUpdateAfterBind* 6088 <<limits-required, Required Limits>> must be at least the corresponding 6089 non- ptext:UpdateAfterBind limits (internal merge request 3992). 6090 6091----------------------------------------------------- 6092 6093Change log for July 3, 2020 Vulkan 1.2.146 spec update: 6094 6095 * Update release number to 146 for this update. 6096 6097GitHub Issues: 6098 6099 * Fix valid usage generation script for optional bitmasks in a 6100 non-optional array (public pull request 1228). 6101 * Add lunr to `package.json` and update the locally cached copy (public 6102 pull request 1238). 6103 * Require that newly released extensions have etext:*_SPEC_VERSION `1` 6104 (public issue 1263). 6105 * Add to the NOTE in slink:VkPhysicalDeviceIDProperties, advising 6106 implementations on returning unique pname:deviceUUID values and avoiding 6107 hardwired values, especially 0 (public issue 1273). 6108 * Add noscript fallback for HTML output (public pull request 1289). 6109 * Fix duplicated VUIDs in flink:vkCmdExecuteGeneratedCommandsNV (public 6110 pull request 1304). 6111 * Fix link markup in <<ray-traversal, Ray Traversal>> chapter, nested link 6112 markup, and linear equation markup in 6113 <<textures-unnormalized-to-integer>> (public pull requests 1305, 1306, 6114 1307). 6115 6116Internal Issues: 6117 6118 * Add comments to extending enums in the generated API interfaces showing 6119 which core version and/or extensions provide the enum, matching recent 6120 changes to show this information for commands and structures (internal 6121 issue 1431, public issue 444). 6122 * Only allow code:Invocation memory scope in the 6123 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 6124 section when memory semantics is *None* (internal issue 1782). 6125 * Make reflow script properly handle literal block delimiters and lines 6126 containing only whitespace (internal issues 2039, 2042). 6127 * Clarify definition of <<limits-maxFragmentCombinedOutputResources, 6128 pname:maxFragmentCombinedOutputResources>> (internal issue 2236). 6129 * Add missing `errorcodes=` XML attributes for some 6130 `<<VK_EXT_display_control>>` commands. 6131 * Clarify <<features-extentperimagetype, allowed extent values based on 6132 image type>> and the related <<limits-maxImageDimension1D>>, 6133 <<limits-maxImageDimension2D>>, <<limits-maxImageDimension3D>>, 6134 <<limits-maxImageDimensionCube>> limits (internal merge request 3922). 6135 * Remove redundant valid usage statement 6136 VUID-VkFramebufferCreateInfo-flags-03188 (internal merge request 3934). 6137 * Update style guide to recommend new extension spec language be contained 6138 in existing Asciidoctor files, unless it is of enough scope to create a 6139 new chapter (internal merge request 3955). 6140 6141New Extensions: 6142 6143 * `<<VK_EXT_directfb_surface>>` (public pull requests 1292, 1294). 6144 * `<<VK_EXT_fragment_density_map2>>` (internal merge request 3914). 6145 6146----------------------------------------------------- 6147 6148Change log for June 20, 2020 Vulkan 1.2.145 spec update: 6149 6150 * Update release number to 145 for this update. 6151 6152GitHub Issues: 6153 6154 * Fix `<<VK_EXT_conservative_rasterization>>` interactions with external 6155 SPIR-V and GLSL functionality in the extension appendix (public issue 6156 1288). 6157 6158Internal Issues: 6159 6160 * Break SPIR-V validation into two sections, 6161 <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> 6162 and <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> 6163 (internal issue 1598). 6164 * Add VkFormat enums for ASTC 3D formats to `vk.xml`. These values are 6165 slotted into the reserved, and still disabled extension 289. They will 6166 not appear in the published `vulkan_core.h` header and there is no 6167 published extension utilizing them, but this allows external projects 6168 such as KTX2 to use these values as part of their internal cross-API 6169 formats by generating a header including this disabled extension 6170 (internal merge requests 1662, 2216). 6171 * Clarify that shader binding table accesses from ray tracing 6172 pipelines should be synchronized with the 6173 ename:VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR pipeline stage and 6174 the access mask of ename:VK_ACCESS_SHADER_READ_BIT (internal issue 6175 1749). 6176 * Validate that 3D image views are not used as attachments in 6177 slink:VkFramebufferCreateInfo and slink:VkRenderPassAttachmentBeginInfo 6178 (internal issue 2142). 6179 * Increase the number of conditions recognized as build errors by the 6180 valid usage extraction plugin (internal issue 2215). 6181 * Relax slink:VkImportAndroidHardwareBufferInfoANDROID valid usage 6182 statement 01881 to support external formats (internal issue 2220). 6183 * Clearly define what "`optional capabilities`" means in the 6184 <<spirvenv-capabilities, Capabilities>> section, and specify that if 6185 *any* of the core versions and/or extensions required for a capability 6186 is enabled, then it is valid to use that capability (internal merge 6187 request 3827). 6188 * Add ename:VK_FORMAT_B5G5R5_UNORM_PACK16 and 6189 ename:VK_FORMAT_B5G5R5A1_UNORM_PACK16 to 6190 `<<VK_EXT_custom_border_color>>` as exceptions when 6191 <<features-customBorderColorWithoutFormat, 6192 pname:customBorderColorWithoutFormat>> is enabled (internal merge 6193 request 3833). 6194 * Add new <<spirvenv-format-type-matching, Image Format and Type 6195 Matching>> section and refer to it from elsewhere in the spec, 6196 clarifying rules regarding types for image operations (internal merge 6197 request 3916). 6198 * Fix typo sname:VkImageFormatProperties -> slink:VkFormatProperties 6199 (internal merge request 3921). 6200 * Move <<sparsememory-examples, sparse image examples>> to the Vulkan 6201 Guide (internal merge request 3930). 6202 * Fix typo in slink:VkAccelerationStructureBuildOffsetInfoKHR valid usage 6203 statement 03553 (internal merge request 3938). 6204 * Support <remove> tags for extending enumerants in XML (internal merge 6205 request 3942). 6206 6207New Extensions: 6208 6209 * `<<VK_EXT_extended_dynamic_state>>` 6210 6211----------------------------------------------------- 6212 6213Change log for June 8, 2020 Vulkan 1.2.144 spec update: 6214 6215 * Update release number to 144 for this update. 6216 6217Internal Issues: 6218 6219 * Require `volatile` semantics for loading <<builtin-volatile-semantics, 6220 certain variables used in ray pipeline stages>> in the 6221 <<spirvenv-module-validation, Validation Rules within a Module>> and 6222 also the <<ray-tracing-shader-call, Shader Call Instructions>> section 6223 (internal issue 1924). 6224 * Created new <<potential-format-features, Potential Format Features>> 6225 section and corresponding glossary term, use the new term where 6226 appropriate, and add some related valid usage statements to 6227 flink:vkCmdBeginRenderPass, flink:vkCmdBeginRenderPass2, 6228 slink:VkSubpassDescription, and slink:VkSubpassDescription2 (internal 6229 issue 2031). 6230 * Add interaction with `<<VK_KHR_ray_tracing>>` and corresponding `NV` 6231 extension to flink:vkUpdateDescriptorSetWithTemplate (internal issue 6232 2193). 6233 * Resolve collisions in common VUID names using `{stageMaskName}` 6234 qualifiers as part of the name and make fixes to 6235 `config/vu-to-json/extension.rb` to match (internal issue 2215). 6236 * Replace `shutil.move` operations with `copy` / `remove` in the base 6237 `generator.py` code, working around a problem with bind mounts while 6238 using the Khronos docker build image with `podman` instead of `docker` 6239 (internal merge request 3872). 6240 * Add a new <<spirvenv-extensions, SPIR-V Extensions>> subsection 6241 containing a table showing the corresponding Vulkan extension or core 6242 API required to support each of the SPIR-V extensions, replacing a 6243 harder-to-read list of extensions (internal merge request 3876). 6244 * Remove two redundant valid usage statements from flik:vkCmdResolveImage 6245 (internal merge request 3878). 6246 * Make repository REUSE-compliant, and run the `reuse` license checker as 6247 part of internal CI. While most files now have SPDX license identifier 6248 tags, some licenses are recorded in `.reuse/dep5` instead. Note that 6249 this does not change licenses in the repository (aside from adding some 6250 to files missing them), just ensures that every file *has* an explicit 6251 license (internal merge request 3904). 6252 * Clarify that code:ImageMSArray is supported as part of the 6253 <<features-shaderStorageImageMultisample>> feature (internal merge 6254 request 3905). 6255 * Reorganize some valid usage statements for flink:vkCmdBlitImage, 6256 flink:vkCmdCopyBuffer, flink:vkCmdCopyBufferToImage, 6257 flink:vkCmdCopyImage, flink:vkCmdCopyImageToBuffer, and 6258 flink:vkCmdResolveImage as common valid usage statements, for 6259 future-proofing (internal merge requests 3906, 3907, 3908, 3909, 3910). 6260 * Add two valid usage statements to flink:vkAllocateMemory and 6261 flink:vkCreateSampler for allocation limits of slink:VkDeviceMemory and 6262 elink:VkSamplers, respectively (internal merge request 3923). 6263 6264----------------------------------------------------- 6265 6266Change log for June 8, 2020 Vulkan 1.2.143 spec update: 6267 6268 * Update release number to 143 for this update. 6269 6270GitHub Issues: 6271 6272 * Move `translate_math.js` to the `scripts/` directory (public pull 6273 request 1286). 6274 * Minor cleanup of math markup (public pull request 1287). 6275 6276Internal Issues: 6277 6278 * Reorganize some valid usage statements for slink:VkBufferMemoryBarrier, 6279 and for commands with elink:VkPipelineStageFlags parameters, as common 6280 valid usage statements, for future-proofing (internal merge requests 6281 3863, 3867). 6282 * Misc. licensing updates (internal issue 1017): 6283 ** Replace the "`Exceptions`" clause on `vk.xml` with a dual Apache-2.0 OR 6284 MIT license, with agreement of downstream developers known to be 6285 affected by it. This enables use of `vk.xml` in GPLed projects under a 6286 more widely used licensing scheme. 6287 ** Use `SPDX-License-Identifier` tags in place of longer license text. 6288 This does not change the license terms on files other than `vk.xml`, 6289 but makes license statements in most files more compact. 6290 ** Reorganize repository documentation (README.adoc, COPYING.adoc, 6291 LICENSE.adoc, CONTRIBUTING.adoc, CODE_OF_CONDUCT.adoc, and BUILD.adoc) 6292 with a more widely used split of information; make all of these files 6293 Asciidoctor instead of Markdown format for consistency with the rest of 6294 the repository; describe use of SPDX identifiers; and point to full 6295 license text of the various OSS licenses used in the repository. 6296 * Add new <<resources-image-views-identity-mappings, text describing the 6297 identity swizzle>> incorporating the existing "`Component Mappings 6298 Equivalent To ename:VK_COMPONENT_SWIZZLE_IDENTITY`" table, and refer to 6299 this text in place of explicit references to 6300 ename:VK_COMPONENT_SWIZZLE_IDENTITY in many places (internal merge 6301 request 3399). 6302 * Require code:storageBuffer16BitAccess capability if 6303 `<<VK_KHR_16bit_storage>>` is enabled (internal merge request 3709). 6304 * Added XML schema and generator script extensions to support 64-bit flags 6305 and corresponding bitmasks (internal merge request 3718). 6306 * Correct <<interfaces-resources-standard-layout, Standard Buffer Layout>> 6307 alignment rules (internal merge request 3750). 6308 * Relax non-strict line constraints in the <<primsrast-lines-basic>> and 6309 <<primsrast-lines-bresenham>> sections (internal merge request 3792). 6310 * Add missing `structextends` attribute to the 6311 slink:VkPhysicalDevicePrivateDataFeaturesEXT definition in `vk.xml` 6312 (internal merge request 3873). 6313 * Move slink:VkImageFormatListCreateInfo valid usage statements to 6314 flink:vkCreateImageView (internal merge request 3879). 6315 * Update valid usage statements for slink:VkImageViewASTCDecodeModeEXT to 6316 allow ASTC HDR formats (internal merge request 3881). 6317 * Add missing extension dependency to 6318 `<<VK_KHR_pipeline_executable_properties>>` definition in `vk.xml` 6319 (internal merge request 3882). 6320 * Require the <<features-customBorderColors, pname:customBorderColors>> 6321 feature be enabled when using etext:VK_BORDER_COLOR_* in 6322 slink:VkSamplerCreateInfo (internal merge request 3884). 6323 6324----------------------------------------------------- 6325 6326Change log for June 1, 2020 Vulkan 1.2.142 spec update: 6327 6328 * Update release number to 142 for this update. 6329 6330GitHub Issues: 6331 6332 * Add boilerplate descriptions of reserved bitmask types (public pull 6333 request 1265). 6334 * Move dynamic state valid usage statements from 6335 slink:VkPipelineViewportExclusiveScissorStateCreateInfoNV and 6336 VkPipelineViewportShadingRateImageStateCreateInfoNV to 6337 slink:VkGraphicsPipelineCreateInfo, where they are testable, and make 6338 corresponding tweaks in `vk.xml` (public pull request 1268). 6339 * Add missing flink:vkDestroyPrivateDataSlotEXT explicit valid usage 6340 statement (public pull request 1269). 6341 * Cast arguments of dlink:VK_MAKE_VERSION macro to code:uint32_t to avoid 6342 compiler warnings (public pull request 1279). 6343 6344Internal Issues: 6345 6346 * Update <<fundamentals-validusage-pNext, description of pname:pNext 6347 chains>> to allow structures in the chain to be defined by either core 6348 versions or extensions. Add the new term "`extending structure`" to the 6349 glossary to describe such structures, and use it in place of "`extension 6350 structure`". Update the style guide accordingly (internal issue 1083). 6351 * Add a comment to the beginning of generated API includes showing which 6352 combinations of API core versions and extensions provide that API, based 6353 on the explicit requirements in the API XML. This does not yet document 6354 enumerants introduced by extending a base enum type (internal issue 6355 1431). 6356 * Relax the restriction that slink:VkBufferImageCopy::pname:bufferOffset 6357 must be a multiple of 4 for flink:vkCmdCopyBufferToImage and 6358 flink:vkCmdCopyImageToBuffer when run on graphics or compute queues, but 6359 not on transfer queues (internal issue 1701). 6360 * Document the types of "`special use`" extensions in the new 6361 <<extendingvulkan-compatibility-specialuse, Special Use Extensions>> 6362 section, summarize special uses in the generated metadata for extension 6363 appendices, and link back to the new section from each special use 6364 extension (internal issue 1938). 6365 * Clarify behavior of flink:vkGetDeferredOperationMaxConcurrencyKHR, 6366 allowing it to return zero for completed operations (internal issue 6367 2036). 6368 * Allow flink:vkGetInstanceProcAddr to resolve itself with a `NULL` 6369 pname:instance (internal issue 2057). 6370 * Modify the valid usage statement ID assignment script to track a range 6371 of unused IDs for each extension branch under development, instead of 6372 only allowing VUID assignment in `master` and `devel` branches (internal 6373 issue 2100). 6374 * Add `selector` and `selection` attributes for unions in XML, to enable 6375 automatic generation of validation code (internal issue 2140). 6376 * Fix validity generator for stext:Vk*Flags types that are aliases, 6377 correcting generation of implicit valid usage for 6378 slink:VkAccelerationStructureInfoNV::pname:flags. Remove 6379 `noautovalidity` attribute for this member, as well as the previously 6380 written explicit valid usage (internal issue 2140). 6381 * Fix description of slink:VkTextureLODGatherFormatPropertiesAMD (internal 6382 issue 2189). 6383 * Remove redundant text about variables being explicitly laid out in the 6384 <<interfaces-resources-layout, Offset and Stride Assignment>> section 6385 (internal merge request 3691). 6386 * Fix conflicting slink:VkSamplerYcbcrConversionCreateInfo valid usage 6387 statements (internal merge request 3716). 6388 * Fix use of code:AHARDWAREBUFFER_USAGE_GPU_COLOR_OUTPUT to 6389 code:AHARDWAREBUFFER_USAGE_GPU_FRAMEBUFFER in valid usage statement 6390 02386 for slink:VkMemoryAllocateInfo (internal merge request 3808). 6391 * Add missing `externsync` XML attributes for ftext:vkCmd* commands 6392 (internal merge request 3825). 6393 * Add missing `extends` attribute to 6394 slink:VkDevicePrivateDataCreateInfoEXT XML (internal merge request 6395 3834). 6396 * Add code:RayGeometryIndexKHR to the `<<VK_KHR_ray_tracing>>` list of 6397 built-in variables (internal merge request 3853). 6398 * Restrict slink:VkBufferViewCreateInfo with ename:VK_WHOLE_SIZE, and 6399 round down results of division in calculating the test in the 6400 corresponding valid usage statements (internal merge request 3858). 6401 * Miscellaneous cleanup and reorganization of synchronization language in 6402 multiple places, and add the 6403 <<synchronization-image-barrier-layout-transition-order>> section 6404 (internal merge request 3861). 6405 * Redefine ename:VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT and 6406 ename:VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT as pseudo-stages in multiple 6407 places (internal merge request 3862). 6408 * Reorganize some valid usage statements, especially but not limited to 6409 stage mask parameters for slink:VkImageMemoryBarrier, 6410 slink:VkPipelineStageFlags, flink:vkCmdPipelineBarrier, 6411 flink:vkCmdResetEvent, flink:vkCmdSetEvent, flink:vkCmdWaitEvents, 6412 flink:vkCmdWriteBufferMarkerAMD, and flink:vkCmdWriteTimestamp as common 6413 valid usage statements, for future-proofing (internal merge requests 6414 3864, 3865, 3866, 3867, 3868). 6415 6416----------------------------------------------------- 6417 6418Change log for May 15, 2020 Vulkan 1.2.141 spec update: 6419 6420 * Update release number to 141 for this update. 6421 * *Note*: Using the default build options, specification outputs will now 6422 be created in `gen/out/` instead of `out/`, and header files will be 6423 created in `gen/include/vulkan` instead of `include/vulkan`. This can be 6424 overridden using the `-genpath` option to the frontend scripts like 6425 `makeAllExts` and `makeSpec`, or by specifying `GENERATED=*path*` on the 6426 make command line when invoking it directly. 6427 6428GitHub Issues: 6429 6430 * Assign new elink:VkDriverId and elink:VkVendorId enums for Mesa (public 6431 issue 1256). 6432 6433Internal Issues: 6434 6435 * Fix a typo in the <<fragops-stencil, Stencil Test>> section, removing a 6436 sentence fragment accidentally left over from an earlier merge conflict 6437 resolution (internal issue 2158). 6438 * Typo fixes for flink:vkGetRayTracingShaderGroupHandlesKHR and 6439 flink:vkGetRayTracingCaptureReplayShaderGroupHandlesKHR valid usage 6440 statements (internal merge request 3831). 6441 * Add a `requiredBy` dictionary to the generated `vkapi.py` showing which 6442 core versions or extensions require each API (internal merge request 6443 3832). 6444 * Allow specifying multiple API names for and tags in registry processing 6445 scripts. Update the registry schema documentation accordingly, and 6446 remove the redundant `xml_supported_name_of_api` method from the 6447 VulkanConventions object (internal merge request 3836). 6448 * Consolidate generated intermediate files and output documents into 6449 $(GENERATED) directory, add -genpath option to scripts requiring them, 6450 and modify Makefile accordingly. Add a new `makeSpec` script, which 6451 combines and extends the functionality of the `makeExt`, `makeKHR`, and 6452 `makeAllExts` scripts (internal merge requests 3837, 3838, 3840, 3841). 6453 * Add "`runtime`" to style guide and use that spelling consistently 6454 (internal merge request 3843). 6455 6456----------------------------------------------------- 6457 6458Change log for May 3, 2020 Vulkan 1.2.140 spec update: 6459 6460 * Update release number to 140 for this update. 6461 6462GitHub Issues: 6463 6464 * Add `vk.xml` `noautovalidity` attribute to 6465 flink:vkCmdBindTransformFeedbackBuffersEXT::pname:pSizes to cause change 6466 in the generation of implicit valid usage statement for 6467 pname:bindingCount (public issue 1227). 6468 * Remove the special tokens (not part of the Vulkan API) suffixed with 6469 etext:*_BEGIN_RANGE etext:*_END_RANGE, and etext:*_RANGE_SIZE from the 6470 generated C headers, after consultation with downstream components and 6471 ISVs and advanced warning to the developer community (public issue 1230, 6472 internal issue 872). 6473 6474 *Note* if you absolutely require these tokens for some reason, you can 6475 still build a version of the header which restores them. Edit 6476 `scripts/genvk.py` to add the parameter `genEnumBeginEndRange = True` to 6477 the `CGeneratorOptions` objects for the header file targets you want to 6478 restore. See the version of `genvk.py` in the 1.2.139 spec update for an 6479 example. 6480 * Add valid usage statement to slink:VkApplicationInfo requiring that 6481 pname:apiVersion be greater than or equal to dlink:VK_API_VERSION_1_0 6482 (public pull request 1252). 6483 * Add \<implicitexternsync> tags to `vk.xml` for flink:vkDestroyDevice 6484 slink:VkQueue objects received from pname:device (public pull request 6485 1255). 6486 * Fix typo in slink:VkBufferMemoryBarrier language (public pull request 6487 1257). 6488 6489Internal Issues: 6490 6491 * Automatically generate interface lists for extension appendices from 6492 `vk.xml` using a new interface generator script, and update the style 6493 guide's description of these appendices accordingly (internal issue 6494 977, internal merge request 3819). 6495 * Add transitive language to the <<formats-compatible-planes, Compatible 6496 formats of planes of multi-planar formats>> section to pull in format 6497 compatibility classes as well (internal issue 1615). 6498 * Add valid usage statements to ftext:vkCmdBuildAccelerationStructure*KHR, 6499 flink:vkCmdCopyAccelerationStructureToMemoryKHR, and 6500 flink:vkCmdCopyMemoryToAccelerationStructureKHR for structure builds 6501 bound to device memory (internal issue 2033). 6502 * Don't generate etext:*_MAX_ENUM values in documentation generators, 6503 since they're not part of the API, and only meaningful on compiled 6504 headers (internal issue 2056). 6505 * Remove special lifetime rules for pipelines in the 6506 <<fundamentals-objectmodel-lifetime-cmdbuffers>> section (internal issue 6507 2068). 6508 * Improve valid usage statements for ftext:vkCmdTraceRays*, share more 6509 common VUs between ftext:vkTraceRays*, and add ftext:vkCmdTracerays* VUs 6510 for bound buffers. Improve documentation for the 6511 pname:raygenShaderBindingOffset parameters and fork `NV` and `KHR` valid 6512 usage statements, since the shader binding table is described 6513 differently (internal issues 2075, 2136). 6514 * Clarify lifetime of acceleration structure build inputs for 6515 flink:vkCreateAccelerationStructureKHR (internal issue 2077). 6516 * Add a Note to the <<framebuffer-blending, Blending>> section to stop 6517 claiming that blending is ignored for all integer formats (internal 6518 issue 2098). 6519 * Mark handle parameters of some ftext:vkDestroy* commands as `optional` 6520 and `externsync="true"` in `vk.xml` (internal issue 2129). 6521 * Add missing `:refpage:` attributes for ray tracing common valid usage 6522 statements (internal issue 2141). 6523 * Redefine fragment to include the possibility of it covering multiple 6524 pixels. This affects many parts of the specification including the 6525 <<pipelines, Pipelines>>, <<primsrast, Rasterization>>, and <<fragops, 6526 Fragment Operations>> chapters, the `<<VK_EXT_post_depth_coverage>>` 6527 appendix, the `Coverage*` and `Sample Index` glossary entries, the 6528 code:SampleId and code:SampleMask definitions in the 6529 <<interfaces-builtin-variables, Built-In Variables>> section, and the 6530 <<shaders-fragment-execution, Fragment Shader Execution>>, 6531 <<shaders-fragment-earlytest, Early Fragment Tests>>, and 6532 <<textures-texel-coordinate-systems, Texel Coordinate Systems>> sections 6533 (internal merge request 3568). 6534 * Refactor `scripts/genvk.py` script to specify generator and generator 6535 options to the `Registry` object before loading XML. This allows 6536 generator options to influence behavior such as reparenting enum 6537 elements from feature/extension elmements to the enums they are being 6538 added to, which is desirable for generating complete feature lists for 6539 an extension or core version (internal merge request 3789). 6540 * Raise a fatal error (instead of a warning) in `scripts/generator.py` 6541 when two enumerants that are not aliased have the same value, so that CI 6542 will fail (internal merge request 3807). 6543 * Remove accidentally duplicated slink:VkSubpassDependency2 valid usage 6544 statement 03093 (internal merge request 3826). 6545 6546New Extensions: 6547 6548 * `<<VK_EXT_private_data>>` 6549 * `<<VK_EXT_custom_border_color>>` 6550 6551----------------------------------------------------- 6552 6553Change log for April 26, 2020 Vulkan 1.2.139 spec update: 6554 6555 * Update release number to 139 for this update. 6556 6557GitHub Issues: 6558 6559 * Configure GitHub CI with Azure pipelines and the Khronos Docker build 6560 image (public pull request 1141). 6561 * Move NOTE in flink:vkEnumerateInstanceVersion prior to valid usage 6562 statements (public pull request 1237). 6563 * Add `implicitexternsyncparams` to flink:vkDestroyInstance for 6564 slink:VkPhysicalDevice objects (public pull request 1244). 6565 * Note in the style guide that extension names are used as preprocessor 6566 symbols in all the generated Vulkan headers (public pull request 1245). 6567 * Move NOTE about app use of `switch` statements and Vulkan API enums from 6568 the style guide into the <<fundamentals-validusage-enums, Valid Usage 6569 for Enumerated Types>> section (public pull request 1246). 6570 * Modify generator script to use Unix newlines on all platforms (public 6571 pull request 1250). 6572 6573Internal Issues: 6574 6575 * Allow ename:VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT error to be 6576 generated by flink:vkQueuePresentKHR (internal issue 1932). 6577 * Update references to the SPIR-V Specification to version 1.5.3 (internal 6578 issue 1957). 6579 * Add a \<comment> explaining why the bitfields defined for 6580 slink:VkAccelerationStructureInstanceKHR in `vk.xml` are non-normative 6581 (internal issue 1975). 6582 * Add valid usage statement for flink:vkBindImageMemory2::pname:pBindInfos 6583 to prevent binding disjoint memory twice (internal merge request 3696). 6584 * Add valid usage statements to flink:vkGetBufferMemoryRequirements, 6585 flink:vkGetImageMemoryRequirements, and 6586 slink:VkBufferMemoryRequirementsInfo2 requiring that external Android 6587 hardware buffers be bound to memory (internal merge request 3717). 6588 * Fix implicit valid usage statement generation script for handle 6589 parameters with `optional="false,true"` XML attributes (internal merge 6590 request 3753). 6591 6592New Extensions: 6593 6594 * `<<VK_EXT_robustness2>>` 6595 * `<<VK_QCOM_render_pass_shader_resolve>>` 6596 6597----------------------------------------------------- 6598 6599Change log for April 16, 2020 Vulkan 1.2.138 spec update: 6600 6601 * Update release number to 138 for this update. 6602 6603GitHub Issues: 6604 6605 * Use correctly tagged normative term macros in various places (public 6606 pull request 1217). 6607 * Fix C arrow markup in parameter descriptions (public pull request 1222). 6608 6609Internal Issues: 6610 6611 * Add language to the <<features-requirements, Feature Requirements>> 6612 section, the <<versions, Core Revisions>> appendix, and the applicable 6613 extensions to require major feature bits if the corresponding extension 6614 is supported (internal issue 1961). 6615 * Allow slink:VkAccelerationStructureCreateInfoKHR::pname:maxGeometryCount 6616 = 0, and clarify that exactly one of pname:compactedSize and 6617 pname:maxGeometryCount must: be zero. (internal issue 2079). 6618 * Add `allowduplicate` attribute to XML `type` tags to enable future 6619 structures which can allow multiple copies of a structure in their 6620 pname:pNext chain (internal issue 2090). 6621 * Add the glossary term "`format features`", and make minor clarifications 6622 to uses of this term in several places in the <<resources, Resource 6623 Creation>> chapter and the 6624 <<resources-sampler-ycbcr-conversion-format-features, Sampler Ycbcr 6625 Conversion Format Features>> section (internal merge request 3727). 6626 * Add a constraint to the <<memory-external-android-hardware-buffer, 6627 Android Hardware Buffer>> section requiring that bound slink:VkImage or 6628 slink:VkBuffer objects be created with the 6629 ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID 6630 flag set, and corresponding valid usage statements to 6631 flink:vkBindBufferMemory, slink:VkBindBufferMemoryInfo, 6632 flink:vkBindImageMemory, and slink:VkBindImageMemoryInfo (internal merge 6633 request 3732). 6634 * Fix pname:memoryTypes ordering description for device coherent memory 6635 (ename:VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD) in the 6636 <<memory-device-bitmask-list>> section (internal merge request 3738). 6637 * Replace code:AHARDWAREBUFFER_USAGE_GPU_COLOR_OUTPUT with 6638 code:AHARDWAREBUFFER_USAGE_GPU_FRAMEBUFFER in the 6639 <<memory-external-android-hardware-buffer-usage, AHardwareBuffer Usage 6640 Equivalence>> table, and add 6641 ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT flag for this case 6642 (internal merge request 3741). 6643 * Add more references to `NV` and `KHR` ray tracing pipelines in 6644 discussions of creating pipelines, or generalize text so they need not 6645 all be mentioned by name (internal merge request 3743). 6646 * Allow *ShaderCallKHR* memory scope in ray tracing shaders, in the 6647 <<spirvenv-module-validation, Validation Rules within a Module>> 6648 appendix (internal merge request 3744). 6649 * Use Khronos Dockerhub image for spec builds in internal CI (internal 6650 merge request 3748). 6651 * Add the `<<VK_KHR_dedicated_allocation>>` extension as a dependency of 6652 `<<VK_ANDROID_external_memory_android_hardware_buffer>>` (internal merge 6653 request 3751). 6654 6655----------------------------------------------------- 6656 6657Change log for April 06, 2020 Vulkan 1.2.137 spec update: 6658 6659 * Update release number to 137 for this update. 6660 6661GitHub Issues: 6662 6663 * Incorporate several changes to the specification build process and HTML 6664 load-time scripts which pre-render KaTeX math, pre-fetch fonts, and 6665 perform several other optimizations which can significantly improve load 6666 time for the single-page HTML specification. In our internal evaluation 6667 these changes appear to primarily help when using Chrome or Chromium, 6668 with smaller improvements for Firefox and Safari. Speedups seem more 6669 significant on Linux, Windows, and Android platforms, while MacOS 6670 browsers may benefit less (public pull requests 702, 704, and 708). 6671 * Clarify that code:OpVariable is decorated with code:Location, not 6672 code:OpTypeStruct in the <<interfaces-iointerfaces-locations, Location 6673 Assignment>> section (public issue 1203). 6674 * Add a NOTE about the WSI origin location in the description of 6675 flink:vkQueuePresentKHR (public pull request 1208). 6676 * Add the `null-terminated` attribute to 6677 slink:VkPerformanceValueDataINTEL::pname:valueString in `vk.xml` (public 6678 pull request 1209). 6679 * Mark slink:VkPhysicalDeviceVulkan11Properties and 6680 slink:VkPhysicalDeviceVulkan12Properties structures as `returnedonly` in 6681 `vk.xml` (public pull request 1210). 6682 * Create explicit valid usage statements from text in the description of 6683 slink:VkValidationFeaturesEXT (public pull request 1212). 6684 * Update style guide to add "`user`" to the list of words *not* to use, 6685 instead recommending "`application`" (public pull request 1213). 6686 * Fix typos where `ext:` was used in the style guide instead of the new 6687 `apiext:` Asciidoctor macro (public pull request 1214). 6688 * Miscellaneous minor markup and editing fixes (public pull request 1215). 6689 * Remove etext:KHR from promoted ename:VK_MAX_DRIVER_NAME_SIZE in the 6690 description of slink:VkPhysicalDeviceDriverProperties (public pull 6691 request 1218). 6692 * Correct use of `NULL` to dlink:VK_NULL_HANDLE in the 6693 <<acceleration-structure-inactive-prims, Inactive Primitives and 6694 Instances>> section (public pull request 1219). 6695 * Remove trailing periods on valid usage statement text, as required by 6696 the style guide, and add `scripts/deperiodize_vuids.py` to do this in 6697 the future if needed (public pull request 1220). 6698 6699Internal Issues: 6700 6701 * Provide a warning in the repository `README.adoc` of pending header 6702 changes to remove etext:VK_*_BEGIN_RANGE, etext:VK_*_END_RANGE, and 6703 etext:VK_*_RANGE_SIZE tokens (internal issue 872). 6704 * Describe the meaning of code:Device for the `<<VK_KHR_shader_clock>>` 6705 extension in the <<shaders-scope-device, Device>>, 6706 <<shaders-scope-queue-family, Queue Family>>, and 6707 <<shaders-scope-command, Command>> sections of the shader 6708 <<shaders-scope, Scope>> section (internal issue 1955). 6709 * Allow slink:VkDebugUtilsObjectNameInfoEXT::pname:pObjectName to be 6710 either NULL or an empty string to remove a previously set name (internal 6711 issue #2019). 6712 * Add missing VK_ERROR_OUT_OF_HOST_MEMORY error code in `vk.xml` for 6713 flink:vkEnumerateInstanceVersion (internal issue 2029). 6714 * Require code:R32i or code:R32ui image format for 6715 code:OpImageTexelPointer atomic operations in the 6716 <<spirvenv-module-validation, Validation Rules within a Module>> section 6717 (internal issue 2049). 6718 * Remove the `<pattern>` element from images used in the specification, to 6719 avoid complaints from prawn-svg during PDF spec builds (internal issue 6720 2053). 6721 * Clarify usable sample counts for empty subpasses in the 6722 <<features-variableMultisampleRate>> section and the related 6723 flink:vkCmdBindPipeline valid usage statement, as well as in the 6724 <<limits-framebufferNoAttachmentsSampleCounts>> 6725 <<renderpass-noattachments>> sections (internal issue 2066). 6726 * Clarify pname:aspectMask usage in render passes in 6727 slink:VkGraphicsPipelineCreateInfo valid usage statement 01565 and in 6728 slink:VkAttachmentReference2 (internal merge request 3664). 6729 * Remove unused etext:VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_KHR 6730 token from `vk.xml` and the `<<VK_KHR_ray_tracing>>` appendix 6731 (internal merge request 3680). 6732 * Require <<features-subgroup-extended-types, 6733 pname:shaderSubgroupExtendedTypes>> for Vulkan 1.2 (internal merge 6734 request 3680). 6735 * Generate symlinks from refpage aliases to the API they're aliasing 6736 (internal merge request 3694). 6737 * Add an alias from the old ename:VK_ANDROID_NATIVE_BUFFER_EXTENSION_NAME 6738 token (internal merge request 3697). 6739 * Add `scripts/compImages.sh` to compare all images in two git branches of 6740 the specification (internal merge request 3699). 6741 * Improve valid usage statements for `<<VK_NV_device_generated_commands>>` 6742 in flink:vkCmdExecuteGeneratedCommandsNV, 6743 slink:VkGeneratedCommandsInfoNV, 6744 flink:vkCmdPreprocessGeneratedCommandsNV, 6745 slink:VkIndirectCommandsStreamNV, slink:VkIndirectCommandsLayoutTokenNV 6746 and slink:VkGraphicsPipelineCreateInfo (internal merge request 3702). 6747 * Clarify differences between `<<VK_NV_ray_tracing>>` and 6748 `<<VK_KHR_ray_tracing>>` for 6749 slink:VkPipelineCreationFeedbackCreateInfoEXT pipeline creation, 6750 pname:shaderGroupHandleSize and pname:maxRecursionDepth limit 6751 requirement differences, and detangle `SPV_KHR/NV_ray_tracing` in the 6752 <<spirvenv-capabilities-table, List of SPIR-V Capabilities and enabling 6753 features or extensions>> (internal merge request 3710). 6754 * Add flink:vkGetImageViewAddressNVX and 6755 slink:VkImageViewAddressPropertiesNVX to `<<VK_NVX_image_view_handle>>` 6756 (internal merge request 3710). 6757 * Shorten 'make' output by reducing redundant logging output from refpage 6758 build targets (internal merge request 3729). 6759 * Replace sname: macro with slink: everywhere except language actually 6760 describing the structure in the macro argument (internal merge request 6761 3728). 6762 * Add flink:vkGetBufferMemoryRequirements2 and 6763 flink:vkGetImageMemoryRequirements2 to the commands for which the 6764 implementation makes guarantees about certain properties of the memory 6765 requirements in the <<resources-association, Resource Memory 6766 Association>> section, following the description of 6767 slink:VkMemoryRequirements (internal merge request 3730). 6768 * Add valid usage statements for 6769 `<<VK_ANDROID_external_memory_android_hardware_buffer>>` (internal merge 6770 request 3731). 6771 * Add requirements on the 6772 slink:VkAccelerationStructureMemoryRequirementsInfoKHR acceleration 6773 structure for which memory type bits must be exposed (internal 6774 advisorypanel issue 28). 6775 6776New Extensions: 6777 6778 * `<<VK_QCOM_render_pass_store_ops>>` 6779 6780----------------------------------------------------- 6781 6782Change log for March 24, 2020 Vulkan 1.2.136 spec update: 6783 6784 * Update release number to 136 for this update. 6785 6786GitHub Issues: 6787 6788 * Generate per-extension refpages from the extension appendices in the 6789 specification instead of the old, minimal generated refpages, and update 6790 the registry index to point to these refpages instead of the 6791 specification (public issue 1195, internal issue 1999). 6792 * Rename ename:VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL to 6793 ename:VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL 6794 to match the similar renaming of sname:VkQueryPoolCreateInfoINTEL to 6795 slink:VkQueryPoolPerformanceQueryCreateInfoINTEL (public issue 1207, 6796 internal issue 2048). 6797 6798Internal Issues: 6799 6800 * Add a new <<resources-sampler-ycbcr-conversion-format-features, Sampler 6801 Ycbcr Conversion Format Features>> section, and update 6802 elink:VkFormatFeatureFlagBits and valid usage statements for 6803 slink:VkSamplerCreateInfo and slink:VkSamplerYcbcrConversionCreateInfo 6804 to refer to it (internal issue 1963). 6805 * Comment out reserved but unused ename:VK_ACCESS_RESERVED_31_BIT_KHR to 6806 avoid generator script warnings (internal issue 2016). 6807 * Fix some `<<VK_KHR_ray_tracing>>` valid usage IDs that were broken in 6808 the 1.2.135 update (internal issue 2044). 6809 * Remove `const` qualifier from 6810 sname:VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::pname:pNext 6811 in `vk.xml` (internal issue 2047). 6812 * Remove `flowRoot` elements supported only by Inkscape from some of the 6813 images, and update a couple to 96 DPI from 90 DPI due to current 6814 Inkscape's insistence. This reduces warnings from prawn-svg during PDF 6815 builds (internal issue 2053). 6816 * Remove reference in the <<devsandqueues-lost-device, Lost Device>> 6817 section to a non-existent list of functions returning 6818 ename:VK_ERROR_DEVICE_LOST (internal merge request 3667). 6819 * Add valid usage statements to slink:VkImageViewCreateInfo for cube and 6820 cube array image view (internal merge request 3682). 6821 * Remove redundant valid usage statement 00228 from flink:vkCmdBlitImage 6822 (internal merge request 3684). 6823 * Document the Khronos-provided Docker image, whose use is recommended 6824 when building documents and generated files from this repository 6825 (internal merge request 3686). 6826 * Rename ename:VK_PIPELINE_COMPILE_REQUIRED_EXT from 6827 ename:VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT and add an alias from the 6828 old name, since it is not actually an error code. Add it to the 6829 `successcodes` attributes of appropriate commands in `vk.xml` (internal 6830 merge request 3687). 6831 6832----------------------------------------------------- 6833 6834Change log for March 17, 2020 Vulkan 1.2.135 spec update: 6835 6836 * Update release number to 135 for this update. 6837 6838GitHub Issues: 6839 6840 * Add missing dependencies of slink:VkExportMemoryWin32HandleInfoKHR on 6841 slink:VkExportMemoryAllocateInfo in the slink:VkMemoryAllocateInfo 6842 pname:pNext chain; slink:VkExportFenceWin32HandleInfoKHR on 6843 slink:VkExportFenceCreateInfo in the slink:VkFenceCreateInfo pname:pNext 6844 chain; and slink:VkExportSemaphoreWin32HandleInfoKHR on 6845 slink:VkExportSemaphoreCreateInfo in the slink:VkSemaphoreCreateInfo 6846 pname:pNext chain (public issue 1095). 6847 * Update the <<spirvenv-module-validation, Validation Rules within a 6848 Module>> section of the SPIR-V environment appendix to allow the 6849 code:PhysicalStorageBuffer64 addressing model (public issue 1199). 6850 * Fix markup in parameters section of 6851 flink:vkGetPhysicalDeviceXcbPresentationSupportKHR (public pull request 6852 1201). 6853 * Amend rules in the <<extensions-vendor-id, Registering a Vendor ID with 6854 Khronos>> section of the style guide to allow other Khronos APIs such as 6855 OpenCL to reserve vendor IDs here so they can be shared with those APIs 6856 (public KhronosGroup/OpenCL-Docs pull request 203). 6857 6858Internal Issues: 6859 6860 * Clarify layer loading order for slink:VkInstanceCreateInfo and in the 6861 <<extendingvulkan-layers, Layers>> chapter following the specification 6862 of slink:VkLayerProperties (internal issue 1986). 6863 * Simplify markup for SPIR-V versions required by different Vulkan 6864 versions in the <<spirvenv, Vulkan Environment for SPIR-V>> appendix 6865 (internal issue 2011). 6866 * Rename sname:VkQueryPoolCreateInfoINTEL to 6867 slink:VkQueryPoolPerformanceQueryCreateInfoINTEL in the 6868 `<<VK_INTEL_performance_query>>` extension (internal issue 2022). 6869 * Add ename:VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT to 6870 elink:VkValidationFeatureEnableEXT to specify that layers will process 6871 code:debugPrintfEXT operations (internal issue 2023). 6872 * Fix conflicting language in slink:VkSamplerYcbcrConversionCreateInfo 6873 valid usage statement 01653 (internal merge request 3629). 6874 * Add missing valid usage statement for slink:VkSparseImageMemoryBindInfo 6875 to require slink:VkImage objects created with the 6876 ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag set (internal merge 6877 request 3633). 6878 * Remove redundant valid usage statement 00122 from flink:vkCmdCopyImage 6879 (internal merge request 3643). 6880 * Fix several places where `VULKAN_1_1` was used in Asciidoctor 6881 conditional markup instead of `VK_VULKAN_1_1` (internal merge request 6882 3654). 6883 * Fix conditional markup around slink:VkImageViewCreateInfo valid usage 6884 statement 01018 to ensure it doesn't overlap a similar valid usage 6885 statement written for another combination of enabled extensions and 6886 versions (internal merge request 3655). 6887 * Remove redundant valid usage statement from flink:vkCmdCopyImage that 6888 was already covered by statements for slink:VkImageCopy. Eventually this 6889 will be inverted so the statements are located with flink:vkCmdCopyImage 6890 but that requires more work and is deferred (internal merge request 6891 3656). 6892 * Clarify wording of slink:VkImageMemoryBarrier valid usage statement 6893 01671 and add a missing statement (internal merge request 3657). 6894 * Minor fixes to the style guide to bring it up to date with respect to 6895 the Asciidoctor client, assignment of valid usage ID tags, and proper 6896 placement of valid usage statements (internal merge request 3662). 6897 * Add missing valid usage statements to slink:VkSubpassDescription2 based 6898 on comparable statements for slink:VkSubpassDescription (internal merge 6899 request 3663). 6900 6901New Extensions 6902 6903 * Ray Tracing package of extensions, including 6904 ** `<<VK_KHR_deferred_host_operations>>` 6905 ** `<<VK_KHR_pipeline_library>>` 6906 ** `<<VK_KHR_ray_tracing>>` 6907 * `<<VK_EXT_pipeline_creation_cache_control>>` 6908 * `<<VK_NV_device_diagnostics_config>>` 6909 * `<<VK_NV_device_generated_commands>>` (replacing 6910 `VK_NVX_device_generated_commands`, which was an experimental vendor 6911 extension and has been removed from the Specification and `vk.xml`). 6912 6913----------------------------------------------------- 6914 6915Change log for March 6, 2020 Vulkan 1.2.134 spec update: 6916 6917 * Update release number to 134 for this update. 6918 6919GitHub Issues: 6920 6921 * Fix flink:vkGetPhysicalDeviceToolPropertiesEXT implicit array valid 6922 usage statements, rewrite for consistency, and explicitly state lifetime 6923 of retrieved results (public pull request 1148). 6924 * Change use of "`happens before`" to glossary term "`happens-before`" 6925 (public pull request 1170). 6926 * Use glossary terms "`release operation`" / "`acquire operation`" instead 6927 of similar colloquial language (public pull request 1171). 6928 * Fix minor spelling errors and duplicated words (public pull request 6929 1174). 6930 * Remove duplicate "`to`" word (public pull request 1176). 6931 * Rephrase description of signaling / unsignaling for slink:VkEvent 6932 (public pull request 1179). 6933 * Update Asciidoctor extension handling of C arrow operator to avoid need 6934 for escaping it in custom macros, and corresponding fixes to markup in 6935 the spec and to the style guide (public pull request 1186). 6936 * Move layout transition NOTE in the 6937 <<synchronization-image-layout-transitions, Image Layout Transitions>> 6938 section below the corresponding normative paragraph (public pull request 6939 1190). 6940 * Change the parent handle types of slink:VkDisplayKHR and 6941 slink:VkDisplayModeKHR in `vk.xml` (public pull request 1194). 6942 * Add missing `len` attribute for 6943 flink:vkQueueSignalReleaseImageANDROID::pname:pWaitSemaphores parameter 6944 in `vk.xml` (public pull request 1196). 6945 6946Internal Issues: 6947 6948 * Link to HTML preview of `SPV_KHR_non_semantic_info` link in the 6949 `<<VK_KHR_shader_non_semantic_info>>` appendix, instead of Asciidoctor 6950 source document (internal merge request 3614). 6951 * Improve registry schema documentation description of allowed <enum> tags 6952 inside <remove> tags (internal merge request 3614). 6953 6954 * Clarify behavior when reading or writing image formats with padding 6955 ("`X`" components) in the "`Common Operation`" section of the <<copies>> 6956 chapter, and that padding components are unused in the elink:VkFormat 6957 description of such formats (internal issue 1122). 6958 * Clarify that flink:vkGetDeviceProcAddr can be used for device-level 6959 commands from instance extensions (internal issue 1960). 6960 * Add a note to the <<primsrast-lines-bresenham, Bresenham Line Segment 6961 Rasterization>> section clarifying that line rasterization does not 6962 depend on sample locations (internal issue 1855). 6963 * Add a new header macro dlink:VK_HEADER_VERSION_COMPLETE which provides 6964 the complete version (major, minor, and patch/release) of the Vulkan 6965 headers at compile time, and document the intended use cases for this 6966 macro (internal issue 1990). 6967 * Remove `optional` attribute from 6968 slink:VkDebugUtilsObjectNameInfoEXT::pname:pObjectName in `vk.xml`, 6969 making the string required (internal issue 2002). 6970 * Add a missing `structextends` attribute for 6971 slink:VkQueryPoolCreateInfoINTEL in `vk.xml` (internal merge request 6972 3599). 6973 * Clarify when implicit subpass dependencies are introduced in the 6974 definition of slink:VkSubpassDependency (internal merge request 3603). 6975 * Update several valid usage statements for flink:vkCmdResetQueryPool, 6976 flink:vkCmdBeginQuery, and flink:vkCmdBeginQueryIndexedEXT which 6977 interact with the presence of flink:vkCmdResetQueryPool commands in a 6978 command buffer, and restrict the VUs to performance queries (internal 6979 merge request 3604). 6980 * Simplify a hard-to-parse sentence in the <<textures-RGB-sexp, RGB to 6981 Shared Exponent Conversion>> section (internal merge request 3606). 6982 * Add a `pdfwidth` attribute to markup for images inside tables, to work 6983 around a crash occurring in recent versions of asciidoctor-pdf (internal 6984 merge request 3626). 6985 6986New Extensions 6987 6988 * `<<VK_QCOM_render_pass_transform>>` 6989 6990----------------------------------------------------- 6991 6992Change log for February 15, 2020 Vulkan 1.2.133 spec update: 6993 6994 * Update release number to 133 for this update. 6995 6996GitHub Issues: 6997 6998 * Clarify language describing the <<commandbuffers-lifecycle, command 6999 buffer lifecycle>> (public pull request 1152). 7000 * Add anchor handles to chapters and VUID statements in the HTML outputs 7001 (public pull request 1157). 7002 * Update declaration of flink:vkCmdDrawIndexedIndirectCountAMD to alias 7003 the core function rather than the KHR extension function (public pull 7004 request 1165). 7005 * Remove redundant NOTE discussing 7006 ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT after the description 7007 of slink:VkCommandBufferInheritanceInfo.txt (public pull request 1167). 7008 * Reserved vendor ID for Codeplay (public pull request #1167). 7009 7010Internal Issues: 7011 7012 * Restrict flag bits to bit positions 0..30. Add language to the 7013 <<fundamentals-validusage-flags, Valid Usage for Flags>> section 7014 expressing the restriction; to the registry documentation where the 7015 `bitpos` attribute is defined; and finally, add a test to the generator 7016 scripts that warns of bits 31 and higher being used (internal issue 7017 1945). 7018 * Clarify dynamic indexing of sampler objects in the 7019 <<interfaces-resources-descset, Descriptor Set Interface>> section, to 7020 be controlled by the same feature as sampled images (internal issue 7021 1951). 7022 * Make the effect of query reset commands requiring multiple passes to 7023 complete explicit, by disallowing resets of the same query from the same 7024 primary command buffer in the description of flink:vkCmdResetQueryPool 7025 and the valid usage statements for ftext:vkCmdBeginQuery* (internal 7026 issue 1965). 7027 * Update interaction between elink:VkFormatFeatureFlagBits affecting 7028 slink:VkSamplerYcbcrConversionCreateInfo::pname:forceExplicitReconstruction 7029 (internal merge request 3533). 7030 * Generate implicit pname:sType-unique valid usage statements from 7031 `validitygenerator.py` even for pname:pNext chains with only a single 7032 valid structure type, to enable validation layers work (internal merge 7033 request 3534). 7034 * Clean up wording of some flink:vkBindImageMemory valid usage statements 7035 (internal merge request 3547). 7036 * Mark the `VK_EXT_shader_subgroup_vote` and 7037 `VK_EXT_shader_subgroup_ballot` as deprecated in `vk.xml` (internal 7038 merge request 3558). 7039 * Tighten slink:VkSamplerYcbcrConversionCreateInfo::pname:chromaFilter 7040 valid usage restriction to be ename:VK_FILTER_NEAREST instead of 7041 ename:VK_FILTER_LINAER, now that other filters exist (internal merge 7042 request 3561). 7043 * Add valid usage statements to slink:VkCommandPoolCreateInfo and 7044 slink:VkDeviceQueueCreateInfo requiring that the corresponding 7045 ename:VK_COMMAND_POOL_CREATE_PROTECTED_BIT and 7046 ename:VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT not be set if the protected 7047 memory feature is not enabled. Previously this restriction was described 7048 for the elink:VkCommandPoolCreateFlagBits and 7049 elink:VkDeviceQueueCreateFlagBits types containing those flags, but not 7050 in valid usage statements (internal merge request 3563). 7051 * Fix conditional markup in the <<shaders-scope-device>> and 7052 <<shaders-scope-queue-family>> sections to apply to Vulkan 1.2, as well 7053 as `VK_KHR_vulkan_memory_model` (internal merge request 3570). 7054 * Add performance queries to the list in the introduction of the 7055 <<supported query types, queries>> chapter (internal merge request 7056 3577). 7057 7058New Extensions 7059 7060 * `<<VK_KHR_shader_non_semantic_info>>` 7061 7062----------------------------------------------------- 7063 7064Change log for January 20, 2020 Vulkan 1.2.132 spec update: 7065 7066 * Update release number to 132 for this update. 7067 7068GitHub Issues: 7069 7070 * Move and reword a NOTE in the <<extendingvulkan-extensions, Extensions>> 7071 section (public pull request 1131). 7072 * Change redundant description of application error when using 7073 flink:vkMapMemory into a non-normative NOTE (public pull request 1143). 7074 * Remove redundant valid usage statement for flink:vkCmdExecuteCommands 7075 (public pull request 1151). 7076 * Remove redundant command buffer 7077 ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT language in 7078 flink:vkCmdExecuteCommands valid usage statements (public pull request 7079 1153). 7080 * Add flink:vkBeginCommandBuffer valid usage statement to prevent using a 7081 primary command buffer with both the 7082 ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT and 7083 ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flags (public pull 7084 request 1154). 7085 * Add slink:VkRenderPassBeginInfo valid usage statements for 7086 pname:renderArea (public pull request 1159). 7087 * Add missing valid usage statements for flink:vkCmdBeginRenderPass when 7088 `VK_KHR_separate_depth_stencil_layouts` is enabled (public 7089 KhronosGroup/Vulkan-ValidationLayers issue 1470). 7090 7091Internal Issues: 7092 7093 * Clarify the definition of "`transfer commands`" for 7094 <<synchronization-pipeline-stages-transfer, 7095 ename:VK_PIPELINE_STAGE_TRANSFER_BIT>> (internal issue 816). 7096 * Clarify VK_ATTACHMENT_STORE_OP_DONT_CARE and reorder render pass chapter 7097 (internal issue 1098). 7098 * Clarify that <<pipelines-dynamic-state, Dynamic State>> can be set 7099 before pipeline bind, and update valid usage statements accordingly 7100 (internal issue 1624). 7101 * Clarify the behavior of floating-point divide by zero in the 7102 <<spirvenv-precision-operation, Precision and Operation of SPIR-V 7103 Instructions>> section (internal issue 1669). 7104 * Add a valid usage statement to flink:vkCmdResetQueryPool which allows 7105 not calling flink:vkCmdEndQuery if a prior flink:vmCmdResetQuery command 7106 was called (internal issue 1700). 7107 * Refactor specification of shader scopes into the new <<shaders-scope, 7108 Scope>> section, and modify other references to this language 7109 accordingly. Also describe quad invocation groups properly, with 7110 derivative and quad group operations referencing the description, and 7111 call out helper invocations as being able to become spontaneously 7112 inactive. Simplify parts of the texturing chapter accordingly (internal 7113 issues 1824, 1884, 1885, 1911). 7114 * Stop claiming that semaphore signals are ordered between different queue 7115 commands in the <<synchronization-signal-operation-order>> section 7116 (internal merge request 3542). 7117 * Move a valid usage statement from slink:VkBindImagePlaneMemoryInfo to 7118 flink:vkBindImageMemory2, where it can be determined (internal merge 7119 request 3548). 7120 7121----------------------------------------------------- 7122 7123Change log for January 15, 2020 Vulkan 1.2.131 spec update: 7124 7125 * Vulkan 1.2 initial release. Update release number to 131 for this 7126 update. The patch number will be used for all Vulkan 1.x spec updates, 7127 and continue to increment continuously from the previous Vulkan 1.1.130 7128 update. 7129 7130GitHub Issues: 7131 7132 * Use the attributes {prime}, {YCbCr}, and {RGBprime} for better markup of 7133 prime symbols, and ease of changing the markup for the commonly used 7134 color format names (public issue 636). 7135 * Expand the <<extendingvulkan-extensions-extensiondependencies, Extension 7136 Dependencies>> section to acknowledge that extension dependencies are 7137 usually, but not always satisfied by promoted versions of the 7138 dependencies, and point to the extension and version appendices for more 7139 information (public issue 1085). 7140 * Clarify the <<features-shaderStorageImageExtendedFormats, 7141 pname:shaderStorageImageExtendedFormats>> feature and add corresponding 7142 formats to the <<formats-mandatory-features-2byte>>, 7143 <<formats-mandatory-features-10bit>>, 7144 <<formats-mandatory-features-16bit>>, and 7145 <<formats-mandatory-features-64bit>> tables (public pull request 1098). 7146 * Fix issue 2 wording in the `<<VK_KHR_surface>>` appendix (public pull 7147 request 1100). 7148 * Fix valid usage statements for 7149 slink:VkSwapchainCreateInfoKhr::pname:minImageCount interactions with 7150 `<<VK_KHR_shared_presentable_image>>` (public pull request 1101). 7151 * Change the etext:VK_QUERY_SCOPE_* tokens in the 7152 slink:VkPerformanceCounterScopeKHR to aliases of new 7153 etext:VK_PERFORMANCE_COUNTER_SCOPE_* tokens, following the naming 7154 conventions for enumerants (public issue 1130). 7155 * Move `NV` extension pipe stages in elink:VkShaderStageFlagBits so they 7156 are not included in enmae:VK_SHADER_STAGE_ALL_GRAPHICS (public pull 7157 request 1133). 7158 * Clarify the introduction of the "`Surface Queries`" section of the 7159 <<wsi, Window System Integration>> chapter (public pull request 1135). 7160 * Fix macros that consume codelike text like pname:foo\->bar (public pull 7161 request 1149). 7162 7163Internal Issues: 7164 7165 * Add a new <<fundamentals-errorcodes, error code>>, 7166 ename:VK_ERROR_UNKNOWN, that can be returned by any function that has 7167 error returns (internal issue 1654). 7168 * Remove the `<<VK_EXT_filter_cubic>>` requirement to cubic filter the 7169 formats etext:*USCALED_PACKED32, etext:*SSCALED_PACKED32, 7170 etext:*UINT_PACK32, and etext:*SINT_PACK32 in the 7171 <<features-required-format-support, Required Format Support>> section 7172 (internal issue 1934). 7173 * Add a missing valid usage statement for 7174 `<<VK_KHR_buffer_device_address>>` to slink:VkBindBufferMemoryInfo, 7175 based on a similar statement for flink:vkBindBufferMemory (internal 7176 merge request 3512). 7177 * Fix some 'name:' macros to the correct 'pname:' (internal merge request 7178 3529). 7179 * Changes to script tools to stay relatively aligned with OpenXR scripts 7180 (internal merge request 3530). 7181 7182----------------------------------------------------- 7183 7184Change log for December 9, 2019 Vulkan 1.1.130 spec update: 7185 7186 * Update release number to 130 7187 7188GitHub Issues: 7189 7190 * Mark slink:VkPipelineExecutableInternalRepresentationKHR as 7191 `returnedonly` in `vk.xml` (public pull request 1092). 7192 * Use 'slink:' in autogenerated valid usage statements instead of 'sname:' 7193 (public pull request 1093). 7194 * Split flink:vkGetQueryPoolResults VU statement 00815, which had 7195 disallowed internal Asciidoctor conditionals into two (public issue 7196 1094). 7197 * Minor markup and editing fixes (public pull request 1099). 7198 * Hide outdated valid usage statement when not building with timeline 7199 semaphore extension (public pull request 1121). 7200 * Add `<<VK_NV_glsl_shader>>` deprecation note (public pull request 1125). 7201 * Add SPV and GLSL links to `<<VK_KHR_multiview>>` (public pull request 7202 1128). 7203 7204Internal Issues: 7205 7206 * Clarify and consistently refer to the shader interface matching rules in 7207 the <<interfaces, Shader Interfaces>> chapter (internal issue 1067). 7208 * Clarify that inner array dimensions can't be sized with specialization 7209 constants in the <<spirvenv-module-validation, Validation Rules within a 7210 Module>> section (internal issue 1739). 7211 * Use consistent markup for nested access (members, array references, 7212 pointers) to structure members and function parameters (internal issues 7213 503, 1765). 7214 * Make slink:VkDeviceQueueInfo2::pname:flags optional in `vk.xml` to 7215 remove an inappropriate valid usage statement (internal issue 1805). 7216 * Fix API name assignment for valid usage blocks in `scripts/reflow.py` 7217 (internal issue 1809). 7218 * Make spec language more internally consistent by fixing remaining cases 7219 where the term "`an instance of (structurename)`" was used, and 7220 expanding the style guide rules for describing pname:pNext chains along 7221 with corresponding edits it (internal issue 1814). 7222 * Disallow code:Workgroup memory and execution scope and code:Workgroup 7223 storage class in all but compute, mesh, and task shaders in the 7224 <<spirvenv-module-validation, Validation Rules within a Module>> 7225 section. There is an exception for code:Workgroup execution scope in 7226 tessellation control shaders because we do not have a more appropriate 7227 scope for patch barriers (internal issue 1905). 7228 * Restore 'Promoted to Vulkan 1.1 Core' comments in extension appendices, 7229 which were accidentally removed in spec revision 1.1.129 (internal issue 7230 1914). 7231 * Add some minor markup fixes as well as new valid usage statements for 7232 slink:VkAttachmentDescription, slink:VkAttachmentDescription2KHR, and 7233 slink:VkAttachmentReference2KHR (internal merge request 3493). 7234 7235New Extensions 7236 7237 * `<<VK_EXT_tooling_info>>` 7238 7239----------------------------------------------------- 7240 7241Change log for November 25, 2019 Vulkan 1.1.129 spec update: 7242 7243 * Update release number to 129 7244 7245GitHub Issues: 7246 7247 * Rename "`pixel shaders`" to "`fragment shaders`" (public issue 1082). 7248 * Fix some markup in external semaphore extension (public pull request 7249 1083). 7250 * Fix styleguide em-dash example (public pull request 1088). 7251 * Update `.gitignore` to include some additional static refpages (public 7252 pull request 1089). 7253 * Restructure query language in <<wsi, Window System Integration (WSI)>> 7254 chapter - split into sections, reordered orphaned paragraphs, simplify 7255 language (public pull request 1090). 7256 7257Internal Issues: 7258 7259 * Remove NVIDIA contributors from `<<VK_KHR_performance_query>>` (internal 7260 merge request 3481). 7261 7262New Extensions 7263 7264 * `<<VK_KHR_buffer_device_address>>` 7265 7266----------------------------------------------------- 7267 7268Change log for November 18, 2019 Vulkan 1.1.128 spec update: 7269 7270 * Update release number to 128 7271 7272GitHub Issues: 7273 7274 * Fix valid usage condition for 7275 flink:vkAllocationMemory::pname:pAllocateInfo (public issue 1032). 7276 * Change explicit valid usage statements for queue transfer operations in 7277 flink:vkCmdWaitEvents and flink:vkCmdPipelineBarrier, and corresponding 7278 language in the <<synchronization-queue-transfers-release>> section, to 7279 incorporate access masks and clarify when queue transfer ops occur 7280 (public pull request 1046). 7281 * Ignore disabled bits in valid usage statements (public pull request 7282 1062). 7283 * Fix some broken HTML links (public pull request 1063). 7284 * Change ename:VK_PIPELINE_CREATE_DISPATCH_BASE to an alias of new token 7285 ename:VK_PIPELINE_CREATE_DISPATCH_BASE_BIT, to follow the naming 7286 conventions for bitmasks (public issue 1075). 7287 7288Internal Issues: 7289 7290 * Add valid usage statement to flink:vkQueueSubmit for attempted use of a 7291 resource currently not available for use (internal issue 1751). 7292 * Make it invalid for an implementation to return anything but 7293 ename:VK_SUCCESS for the flink:vkFreeDescriptorSets and 7294 flink:vkResetDescriptorPool commands (internal issue 1781). 7295 * Add a note clarifying the relationship between 7296 code:SubgroupLocalInvocationId and code:LocalInvocationId or 7297 code:LocalInvocationIndex to the <<interfaces-builtin-variables-sgli, 7298 code:SubgroupLocalInvocationId>> description (internal issue 1810). 7299 * Add valid usage statements for scissor regions to 7300 slink:VkPipelineViewportStateCreateInfo based on similar statements for 7301 flink:vkCmdSetScissor, and generalize all these VUs to cover each 7302 element of the pname:pScissors array (internal issue 1861). 7303 * Fix the basis matrix for <<textures-texel-cubic-filtering, Texel Cubic 7304 Filtering>> (internal issue 1878). 7305 * Make the 7306 slink:VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT::pname:pNext 7307 member non-const, like other feature structures (internal issue 1880). 7308 * Document that aggregate load/store may access padding bytes in the 7309 <<memory-model-memory-location, Memory Location>> appendix (internal 7310 cross-api/memory-model issue 113). 7311 * Clarify in the description of elink:VkDescriptorBindingFlagBitsEXT that 7312 ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT descriptors allow 7313 for updating different descriptors in the same set at the same time on 7314 multiple threads (internal merge request 3419). 7315 * Clarify that resolve attachments don't need to be compatible in the 7316 <<renderpass-compatibility, Render Pass Compatibility>> section 7317 (internal merge request 3422). 7318 * Add Visual Studio folders to `.gitignore` (internal merge request 3450). 7319 * Add language to 7320 slink:sname:VkPipelineCoverageModulationStateCreateInfoNV documenting 7321 that coverage modulation has no effect when using the 7322 ename:VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV reduction mode, clarifying 7323 an interaction with `<<VK_NV_coverage_reduction_mode>>` (internal merge 7324 request 3456). 7325 7326New Extensions 7327 7328 * `<<VK_KHR_performance_query>>` 7329 7330----------------------------------------------------- 7331 7332Change log for November 4, 2019 Vulkan 1.1.127 spec update: 7333 7334 * Update release number to 127 7335 7336GitHub Issues: 7337 7338 * Consistently use the feature name pname:pipelineExecutableInfo as found 7339 in `vk.xml` and the generated header files, instead of 7340 pname:pipelineExecutableProperties as sometimes used in the 7341 specification text (public issue 1061). 7342 * Clarify the definition of the code:PrimitiveId returned by a 7343 `<<VK_NV_ray_tracing>>` shader (public issue 1068). 7344 7345Internal Issues: 7346 7347 * Remove unused `draw_renderpass_validation.txt` valid usage text 7348 (internal issue 1869). 7349 * Require <<features-features-timelineSemaphore, pname:timelineSemaphore>> 7350 if the `<<VK_KHR_timeline_semaphore>>` extension is supported (internal 7351 issue 1873). 7352 * Fix typos in slink:VkBindBufferMemoryInfo valid usage statement 02791 7353 and various slink:VkSparseMemoryBind VUs (internal merge request 3411). 7354 * Minor non-semantic markup and diagram fixes (internal merge request 7355 3417). 7356 * Clarify that <<interfaces-iointerfaces-locations, Location>> values are 7357 physical slots, not a virtual table that just imposes an overall maximum 7358 on the number of locations that can be used (internal merge request 7359 3426). 7360 * Add links to GLSL specs from the `<<VK_KHR_shader_clock>>` appendix, as 7361 well as expected mappings for GLSL builtins (internal merge request 7362 3429). 7363 7364New Extensions 7365 7366 * `<<VK_KHR_separate_depth_stencil_layouts>>` 7367 7368----------------------------------------------------- 7369 7370Change log for October 21, 2019 Vulkan 1.1.126 spec update: 7371 7372 * Update release number to 126 7373 7374GitHub Issues: 7375 7376 * Update the elink:VkAccessFlagBits etext:VK_ACCESS_MEMORY_* flags 7377 definition to make clear that ename:VK_ACCESS_MEMORY_READ_BIT and 7378 ename:VK_ACCESS_MEMORY_WRITE_BIT are meant to be equivalent to setting 7379 all applicable etext:READ and etext:WRITE access flags, and update the 7380 <<synchronization-access-types-supported, supported access types>> table 7381 accordingly (public pull request 1014). 7382 * Remove misleading NOTE in the <<synchronization-dependencies-chains>> 7383 section (public pull request 1048). 7384 * Clarify the memory mapping NOTE about invalidation described for 7385 flink:vkInvalidateMappedMemoryRanges (public pull request 1049). 7386 * Fix label for flink:vkCmdWaitEvents VUID 02803 (public pull request 7387 1056). 7388 * Styleguide fixes to several NOTES in the <<synchronization>> chapter 7389 (public pull request 1057). 7390 * Markup fix to <<features-features-timelineSemaphore>> section (public 7391 pull request 1058). 7392 * Convert some external links to `https` protocol (public pull request 7393 1064). 7394 * Remove unsupported nested links inside table captions (public pull 7395 request 1067 + followon tweak to make 'allchecks' target pass). 7396 7397Internal Issues: 7398 7399 * Restrict the SPIR-V code:Invariant decoration to only be used with 7400 code:Output variables in the <<spirvenv-module-validation, Validation 7401 Rules within a Module>> section (internal issue 1832). 7402 * Clarify that the <<features-independentResolve, independentResolve>> 7403 feature implies support for the <<features-independentResolveNone, 7404 independentResolveNone>> feature (internal issue 1848). 7405 * Clarify self-contradictory language for slink:VkSubpassDescription to 7406 say that resolves only happen within the render area (internal issue 7407 1850). 7408 * Add valid usage statements for slink:VkMemoryAllocateInfo and 7409 corresponding language to elink:VkExternalMemoryFeatureFlagBitsKHR to 7410 restrict implementations and applications from using both an external 7411 host memory allocation and dedicated allocation (internal merge request 7412 3375). 7413 7414----------------------------------------------------- 7415 7416Change log for October 13, 2019 Vulkan 1.1.125 spec update: 7417 7418 * Update release number to 125. 7419 7420GitHub Issues: 7421 7422 * Allow slink:VkRenderPassFragmentDensityMapCreateInfoEXT to extend 7423 slink:VkRenderPassCreateInfo2KHR in `vk.xml` (public issue 1027). 7424 * Fix markup in `<<VK_EXT_external_memory_dma_buf>>` appendix (public pull 7425 request 1051). 7426 * Update .gitignore (public pull request 1052). 7427 7428Internal Issues: 7429 7430 * Disallowed slink:VkEvent from participating in queue family ownership 7431 transfers in the <<devsandqueues-index, Queue Family Index>> section 7432 (internal issue 1691). 7433 * Relax language describing default NT handle access rights for 7434 slink:VkExportMemoryWin32HandleInfoKHR and 7435 slink:VkExportSemaphoreWin32HandleInfoKHR (internal issue 1838). 7436 * Fix markup for slink:VkDeviceCreateInfo valid usage statement 00372 to 7437 remove imbedded Asciidoctor conditionals by splitting it into two VUs 7438 (internal issue 1846). 7439 * Clarify lifetime of samplers used as immutable samplers in 7440 slink:VkDescriptorSetLayoutBinding (internal issue 1849). 7441 * Add a valid usage statement prohibiting flink:vkCmdBeginQuery on 7442 timestamp queries (internal issue 1851). 7443 * Correct some <<Precision of GLSL.std.450 Instructions, SPIR-V 7444 instruction precisions>> (internal merge request 3391). 7445 * Fix a typo in flink:vkQueueBindSparse valid usage statement 03245 7446 (internal merge request 3394). 7447 7448New Extensions 7449 7450 * `<<VK_KHR_spirv_1_4>>` 7451 7452----------------------------------------------------- 7453 7454Change log for October 6, 2019 Vulkan 1.1.124 spec update: 7455 7456 * Update release number to 124. 7457 7458GitHub Issues: 7459 7460 * Fix Makefile SPECREMARK macro to work when not building in a git tree 7461 (public issue 992). 7462 * Ignore pname:aspectMask for unused attachments in 7463 slink:VkSubpassDescription2KHR valid usage statements (public pull 7464 request 1028). 7465 * Minor markup / spelling fixes (public pull requests 1035, 1045). 7466 7467Internal Issues: 7468 7469 * Fix markup in Valid Usage statement for slink:VkCreateFramebuffer 7470 (internal issue 1823). 7471 * Add a new <<synchronization-signal-operation-order, _signal operation 7472 order_>> section to the synchronization chapter which describes in 7473 detail the ordering guarantees provided by the API between fence and 7474 semaphore signal operations (internal merge request 3368). 7475 * Move generated `appendix/meta/` files into the Makefile GENERATED 7476 directory (internal merge request 3381). 7477 7478New Extensions 7479 7480 * `<<VK_KHR_shader_clock>>` 7481 * `<<VK_KHR_timeline_semaphore>>` 7482 7483----------------------------------------------------- 7484 7485Change log for September 15, 2019 Vulkan 1.1.123 spec update: 7486 7487 * Update release number to 123. 7488 7489GitHub Issues: 7490 7491 * Add missing aspect mask descriptions to elink:VkImageAspectFlagBits 7492 (public pull request 1029). 7493 * Modify validity generator script to not check validity of ignored values 7494 in same-parent valid usage statements (public pull request 1030). 7495 * Make slink:VkDescriptorUpdateTemplateCreateInfo::pname:descriptorSetLayout 7496 `noautovalidity` in `vk.xml` (public pull request 1031). 7497 * Fix footnote markup in the <<vkGetDeviceProcAddr behavior>> table 7498 (public pull request 1034). 7499 7500Internal Issues: 7501 7502 * Require that <<interfaces-builtin-variables-sgs, code:SubgroupSize>> be 7503 a power of two (internal issue 1499). 7504 * Clarify that shaderFloat64 and shaderInt64 enable all storage classes, 7505 while shaderFloat16, shaderInt8, and shaderInt16 only enable 7506 non-interface storage classes. in the <<features-shaderFloat64>>, 7507 <<features-shaderInt64>>, and <<features-shaderInt16>> descriptions and 7508 for slink:VkPhysicalDeviceShaderFloat16Int8FeaturesKHR (internal issue 7509 1582). 7510 * Fix broken Asciidoctor conditional logic in the 7511 <<spirvenv-module-validation, Validation Rules within a Module>> 7512 section, and add style guide language to help avoid this problem in the 7513 future (internal issue 1808). 7514 * Modify VUID assignment script to use the first API include in a block as 7515 part of the VUID name rather than the last one, so the VUID is based on 7516 the promoted API name (internal issue 1809). 7517 * Cleanup string descriptions to consistently refer to "`null-terminated 7518 UTF-8`" strings (internal issue 1813). 7519 * Clarify the purpose of the 7520 slink:VkPhysicalDeviceLimits::ptext:maxDescriptorSet* limits (internal 7521 merge request 3357). 7522 * Fix the slink:VkPhysicalDeviceRayTracingPropertiesNV limits for 7523 pname:maxGeometryCount, pname:maxInstanceCount, and 7524 pname:maxTriangleCount in the <<limits-required, Required Limits>> 7525 section (internal issue 3372). 7526 * Update SPIR-V image op sign-matching rules in the 7527 <<spirvenv-module-validation, Validation Rules within a Module>> 7528 section, the <<formats-numericformat>> table, and the 7529 <<interfaces-resources-descset, Descriptor Set Interface>> section 7530 (internal spirv/SPIR-V issue 332). 7531 7532New Extensions 7533 7534 * `<<VK_KHR_shader_subgroup_extended_types>>` 7535 * `<<VK_GOOGLE_user_type>>` 7536 7537----------------------------------------------------- 7538 7539Change log for September 8, 2019 Vulkan 1.1.122 spec update: 7540 7541 * Update release number to 122. 7542 7543Internal Issues: 7544 7545 * Add style guide language on not using standalone `+` signs (internal 7546 issue 736); not using leading whitespace for markup (internal issue 7547 747); and on keeping descriptions of a single API in a contiguous block 7548 of markup (internal issue 949), and apply them to the specification. 7549 * Add a glossary definition of "`constant integral expression`", pointing 7550 to the SPIR-V "`constant instruction`" definition (internal issue 1225). 7551 * Many minor edits to improve writing style consistency and capture 7552 additional style guidelines (internal issue 1553). 7553 * Clarify that <<fragops-depth-write, depth writes are not performed>> if 7554 there is no depth framebuffer attachment (internal issue 1771). 7555 * Allow implementations to use rectangular line style of interpolation for 7556 <<primsrast-lines-bresenham, wide Bresenham lines>>, though replicating 7557 attributes is still preferred. Clarify that code:FragCoord is not 7558 replicated (internal issue 1772). 7559 * Resolve a contradiction in valid usage statements for 7560 slink:VkImageCreateInfo and slink:VkImageStencilUsageCreateInfoEXT 7561 (internal issue 1773). 7562 * Add style guide discussion of markup for indented equations, and use 7563 markup workaround for Asciidoctor 2 compatibility (internal issue 1793). 7564 * Deprecate the `<<VK_EXT_validation_flags>>` extension in `vk.xml` and 7565 the extension appendix (internal issue 1801). 7566 * Add a new checker script `scripts/xml_consistency.py`. This is not 7567 currently run as part of internal CI (internal merge request 3285). 7568 * Correct "`an`" -> "`a`" prepositions where needed (internal merge 7569 request 3334). 7570 * Clarify that the <<features-uniformBufferStandardLayout, 7571 pname:uniformBufferStandardLayout>> feature is only required when the 7572 extension defining it is supported (internal merge request 3341). 7573 * Bring scripts into closer sync with OpenXR, mainly through conversion of 7574 comments to docstrings where appropriate, and add gen-scripts-docs.sh 7575 (internal merge request 3324). 7576 * Correct pname:maxDrawMeshTasksCount to 2^16^-1 in the <<limits-required, 7577 Required Limits>> table (internal merge requests 3361). 7578 7579New Extensions 7580 7581 * `<<VK_IMG_format_pvrtc>>` (public issue 512). 7582 7583----------------------------------------------------- 7584 7585Change log for August 25, 2019 Vulkan 1.1.121 spec update: 7586 7587 * Update release number to 121. 7588 7589GitHub Issues: 7590 7591 * Add missing `structextends` attribute in `vk.xml` for 7592 slink:VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR (public 7593 issue 1018). 7594 * Change attributes of flink:vkCmdCopyAccelerationStructureNV, 7595 flink:vkCmdWriteAccelerationStructuresPropertiesNV, 7596 flink:vkCmdBuildAccelerationStructureNV, and flink:vkCmdTraceRaysNV to 7597 require that these commands execute outside renderpasses (public issue 7598 1021). 7599 * Add an issue to the `<<VK_EXT_buffer_device_address>>` appendix 7600 discussing the introduction of new names and aliasing by equivalent old 7601 names (public pull request 1024). 7602 7603Internal Issues: 7604 7605 * Protect the `VK_KHR_sampler_mirror_clamp_to_edge` extension with 7606 Asciidoctor conditionals, and remove it from the core-only specification 7607 builds, where it had previously been force-included in the Makefile. It 7608 is now treated like any other extension (internal issue 1776). 7609 * Edit some Asciidoctor anchor names starting with `features-features-` to 7610 just start with `features-`, since the old chapters was split into 3 7611 pieces. There are still some mild naming inconsistencies with anchors 7612 which may be addressed in the future (internal issue 1792). 7613 * Add `KHR` alias for the non-suffixed extension token 7614 ename:VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE, for compatibility 7615 with naming rules for extensions (internal issue 1796). 7616 * Clarify requirements for external memory in NOTEs for 7617 sname:VkExternalMemoryBufferCreateInfo, and valid usage statements for 7618 flink:vkBindBufferMemory, slink:VkBindBufferMemoryInfo, 7619 flink:vkBindImageMemory, and slink:VkBindImageMemoryInfo (internal merge 7620 request 3301). 7621 * Make extension version numbers in `vk.xml` and extension appendices 7622 consistent. In a few cases, we could not recover history at this 7623 granularity, and left the summary of a version's change undefined 7624 (internal merge request 3323). 7625 * Fix invocation of `CodeInlineMacro` in the Ruby extension backing the 7626 `code:` macro, which was delegating to the wrong base class (internal 7627 merge request 3331). 7628 * Modify `reg.py` to do a better job of recognizing equivalent <enum> 7629 definitions. 7630 * Add a `sortorder` attribute to XML feature and extension tags. 7631 7632New Extensions 7633 7634 * `<<VK_AMD_device_coherent_memory>>` 7635 7636----------------------------------------------------- 7637 7638Change log for August 17, 2019 Vulkan 1.1.120 spec update: 7639 7640 * Update release number to 120. 7641 7642GitHub Issues: 7643 7644 * Add slink:VkAccelerationStructureTypeNV explicitly to extension XML for 7645 `<<VK_NV_ray_tracing>>` (public issue 848). 7646 * Add missing valid usage statements for feature flags in 7647 slink:VkCommandBufferInheritanceInfo (public pull request 1017). 7648 7649Internal Issues: 7650 7651 * Clarify behavior of non-premultiplied destination colors for 7652 `<<VK_EXT_blend_operation_advanced>>` prior to the definition of 7653 slink:VkBlendOverlapEXT (internal issue 1766). 7654 * Fix the confusing phrasing "`no other queue must: be (doing something)`" 7655 for flink:vkQueuePresentKHR, flink:vkQueueSubmit, and 7656 flink:vkQueueBindSparse (internal issue 1774). 7657 * Add `<<VK_EXT_validation_features>>` flag to enable best practices 7658 checks, which will soon be available in the validation layer (internal 7659 issue 1779). 7660 * Specify allowed characters for VUID tag name components in the style 7661 guide (internal issue 1788). 7662 * Update links to SPIR-V extension specifications, and parameterize their 7663 markup in case the URLs change in the future (internal issue 1797). 7664 * Fix an off-by-one error in the valid usage statement for 7665 slink:VkPipelineExecutableInfoKHR (internal merge request 3303). 7666 * Clean up markup indentation not matching the style guide (internal merge 7667 request 3314). 7668 * Minor script updates to allow refpage aliases, generate a dynamic TOC 7669 for refpages, generate Apache rewrite rules for aliases, open external 7670 links from refpages in a new window, and synchronize with the OpenCL 7671 scripts. This will shortly enable a paned navigation setup for refpages, 7672 similar to the OpenCL 2.2 refpages (internal merge request 3322). 7673 * Script updates to add tests to the checker, refactor and reformat code, 7674 generate better text for some valid usage statements, use more Pythonic 7675 idioms, and synchronize with the OpenXR scripts (internal merge request 7676 3239). 7677 * Script updates and minor fixes in spec language to not raise checker 7678 errors for refpage markup of pages not existing in the API, such as 7679 VKAPI_NO_STDINT_H. Remove corresponding suppression of some 7680 check_spec_links.py tests from .gitlab-ci.yml and 'allchecks' target 7681 (internal merge request 3315). 7682 7683----------------------------------------------------- 7684 7685Change log for August 11, 2019 Vulkan 1.1.119 spec update: 7686 7687 * Update release number to 119. 7688 * A new extension was accidentally left out of the 1.1.118 spec update. 7689 This update corrects that oversight. 7690 7691New Extensions: 7692 7693 * `<<VK_KHR_pipeline_executable_properties>>` 7694 7695----------------------------------------------------- 7696 7697Change log for August 11, 2019 Vulkan 1.1.118 spec update: 7698 7699 * Update release number to 118. 7700 7701GitHub Issues: 7702 7703 * Update `BUILD.adoc` to specifically require Asciidoctor 1.5.8, and make 7704 that change to the gitlab CI script (public issue 968). 7705 * Remove redundant slink:VkSubpassDependency and 7706 slink:VkSubpassDependency2KHR valid usage statements 7707 (public pull request 995). 7708 * Clarify the <<vkGetInstanceProcAddr behavior>> and <<vkGetDeviceProcAddr 7709 behavior>> tables (public pull request 1004). 7710 * Fix use of nonexistent 7711 slink:VkSamplerYcbcrConversionImageFormatProperties::pname:maxCombinedImageSamplerDescriptorCount 7712 (public pull request 1010). 7713 * Use compatible pathlib for python2 (public pull request 1012). 7714 7715Internal Issues: 7716 7717 * Mark the <<VK_KHR_vulkan_memory_model>> extension as no longer 7718 provisional in `vk.xml` (internal issue 1369). 7719 * Clarify that use-defined code:Input and code:Output variables cannot be 7720 code:Boolean in the <<interfaces-iointerfaces-user, User-defined 7721 Variable Interface>> section (internal issue 1663). 7722 * Fix naming inconsistencies in 7723 slink:VkPhysicalDevicePerformanceQueryFeaturesKHR, 7724 slink:VkPhysicalDevicePerformanceQueryPropertiesKHR, 7725 slink:VkQueryPoolPerformanceCreateInfoKHR, and associated enumerants 7726 (internal issue 1746). 7727 * Use ACM reference style for normative references (internal merge request 7728 3256). 7729 * Explicitly list the features changed in Vulkan 1.1 in the 7730 <<features-requirements, Feature Requirements>> section and the 7731 <<versions, Core Revisions (Informative)>> appendix (internal merge 7732 request 3274). 7733 * Add the slink:VkPhysicalDeviceSubgroupSizeControlFeaturesEXT structure 7734 to the <<VK_EXT_subgroup_size_control>> extension, which was 7735 accidentally omitted in the initial release of the extension (internal 7736 merge request 3287). 7737 * Add missing slink:VkImageUsageFlag description for 7738 ename:VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT (internal merge 7739 request 3292). 7740 * Add valid usage statements to slink:VkAccelerationStructureInfoNV and 7741 flink:vkGetAccelerationStructureHandleNV to clarify usage of 7742 acceleration structure handle and geometries (internal merge request 7743 3292). 7744 7745New Extensions: 7746 7747 * `<<VK_AMD_shader_core_properties2>>` 7748 * `<<VK_AMD_pipeline_compiler_control>>` 7749 7750----------------------------------------------------- 7751 7752Change log for July 28, 2019 Vulkan 1.1.117 spec update: 7753 7754 * Update release number to 117. 7755 7756GitHub Issues: 7757 7758 * Add ename:VK_STENCIL_FACE_FRONT_AND_BACK for naming consistency, and 7759 alias the old ename:VK_STENCIL_FRONT_AND_BACK for backwards 7760 compatibility (public issue 991). 7761 * Fix minor issues with valid usage statements for 7762 flink:vkCreateFramebuffer, slink:VkFramebufferCreateInfo, and 7763 slink:VkRenderPassBeginInfo when the `<<VK_KHR_imageless_framebuffer>>` 7764 extension is enabled (public issue 998). 7765 * Clarify the subpass dependency requirement in the 7766 <<renderpass-layout-transitions>> section to eliminate the need for a 7767 subpass dependency for either the same or different layouts as long as 7768 they're both read-only (relates to 7769 https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/948). 7770 7771Internal Issues: 7772 7773 * Document that <<extendingvulkan-compatibility-promotion, backwards 7774 compatibility aliases are not promoted>> as part of promoting an 7775 extension (internal issue 1677). 7776 * Update VK_ANDROID_native_buffer extension to spec version 8 (internal 7777 issue 1753). 7778 * Add missing section to the <<VK_KHR_shader_controls_v4_incompatibility, 7779 VK_KHR_shader_float_controls>> extension appendix describing 7780 the reason for the breaking API change in version 4 of the extension, 7781 and correct the version to 4 in `vk.xml` (internal merge request 7782 3275). 7783 * Add valid usage statements to slink:VkAccelerationStructureInfoNV 7784 requiring the ename:VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag for 7785 buffers used in acceleration structure building. 7786 7787New Extensions: 7788 7789 * `<<VK_EXT_line_rasterization>>` 7790 * `<<VK_EXT_texture_compression_astc_hdr>>` 7791 * `<<VK_EXT_index_type_uint8>>` 7792 7793----------------------------------------------------- 7794 7795Change log for July 20, 2019 Vulkan 1.1.116 spec update: 7796 7797 * Happy 50th Lunar Landing Day! 7798 * Update release number to 116. 7799 7800Internal Issues: 7801 7802 * Clarify that flink:vkCmdBeginQuery is the same as 7803 flink:vkCmdBeginQueryIndexEXT with index = 0, and that 7804 flink:vkCmdEndQuery is the same as flink:vkCmdEndQueryIndexEXT with 7805 index = 0 (internal issue 1735). 7806 * Clarify that when copying the depth aspect between buffers and images 7807 via slink:VkBufferImage Copy, the depth values in buffer memory must be 7808 in range if the `<<VK_EXT_depth_range_unrestricted>>` extension is not 7809 enabled (internal issue 1737). 7810 * Minor language tweaks in the <<spirvenv-module-validation, Validation 7811 Rules within a Module>> section (internal issue 1744). 7812 * Change the slink:VkPhysicalDeviceFloatControlsPropertiesKHR structure in 7813 the `<<VK_KHR_shader_controls>>` extension. This is a rare case of 7814 breaking the interface of an existing extension to acknowledge the 7815 reality of divergent vendor implementations that could not be described 7816 properly otherwise, and the breaking change is considered acceptable 7817 given the expected low use of the extension (internal issue 1734). 7818 Specific changes: 7819 ** Added the slink:VkShaderFloatControlsIndependenceKHR enumeration to 7820 describe the three possible behaviors. 7821 ** Renamed pname:separateDenormSettings to 7822 pname:denormBehaviorIndependence. 7823 ** Renamed pname:separateRoundingModeSettings to 7824 pname:roundingModeIndependence 7825 * Add a missing valid usage statement for 7826 slink:VkQueryPoolCreateInfo::pname:queryCount (internal issue 1742). 7827 * Update the `<<VK_NV_shading_rate_image>>` appendix to list all 7828 interfaces defined by the extension. 7829 * Add a valid usage statement to 7830 slink:VkWriteDescriptorSetAccelerationStructureNV to clarify that 7831 acceleration structure descriptors must be top level structures. 7832 7833New Extensions: 7834 7835 * `<<VK_EXT_subgroup_size_control>>` 7836 7837----------------------------------------------------- 7838 7839Change log for July 14, 2019 Vulkan 1.1.115 spec update: 7840 7841 * Update release number to 115. 7842 7843GitHub Issues: 7844 7845 * Add valid usage statements to slink:VkWriteDescriptorSet and 7846 slink:VkCopyDescriptorSet specifying that updating immutable descriptors 7847 with ename:VK_DESCRIPTOR_TYPE_SAMPLER is invalid, and that updating 7848 ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER ignores the update's 7849 samplers (public issue 985). 7850 * Document that the `manhtmlpages` target requires building with all 7851 extensions enabled, in `BUILD.adoc` (public issue 992). 7852 * Fix reference to the wrong subpass in valid usage statement for 7853 slink:VkRenderPassCreateInfo (public pull request 994). 7854 7855Internal Issues: 7856 7857 * Rename slink:VkPhysicalDeviceShaderIntegerFunctions2INTEL and 7858 ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS2_FEATURES_INTEL 7859 for consistency with global naming conventions, and to help code 7860 generation in other projects (internal issue 1685). 7861 * Update valid usage statements for image code:Offset / code:ConstOffset 7862 usage in the <<textures-gather, Texel Gathering>> and 7863 <<spirvenv-module-validation, Validation Rules within a Module>> 7864 sections, and for the <<limits-minTexelGatherOffset>> and 7865 <<limits-maxTexelGatherOffset>> limits (internal issue 1723). 7866 * Require code:code:OpGroupNonUniformBroadcast to take a constant `Id` 7867 operand in the <<spirvenv-module-validation, Validation Rules within a 7868 Module>> sections (internal issue 1726). 7869 * Note that the swapchain specified in slink:VkImageSwapchainCreateInfoKHR 7870 when creating an image must match the one specified in 7871 slink:VkBindImageMemorySwapchainInfoKHR when binding memory to the image 7872 (internal issue 1729). 7873 * Remove stext:KHR suffix from some structure cross-references that were 7874 promoted to Vulkan 1.1 (internal issue 1730). 7875 * Fix structure name in `structextends` attribute for 7876 slink:VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT in `vk.xml` 7877 (internal issue 1740). 7878 * Fix an error in the code:ClipColor() pseudocode for 7879 <<VK_EXT_blend_operation_advanced>> (internal issue 1741). 7880 * Add a row for 7881 ename:VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV to the 7882 description of elink:VkQueryType, and make a few related minor text 7883 cleanups. 7884 * Rename slink:VkPhysicalDeviceFloat16Int8FeaturesKHR to 7885 slink:VkPhysicalDeviceShaderFloat16Int8FeaturesKHR for consistency, 7886 retaining aliases of the old structure name and structure type enum for 7887 backwards compatibility. 7888 7889----------------------------------------------------- 7890 7891Change log for July 7, 2019 Vulkan 1.1.114 spec update: 7892 7893 * Update release number to 114. 7894 7895Internal Issues: 7896 7897 * Fix extension appendix for `<<VK_INTEL_performance_query>>` to remove 7898 duplicate citation of ename:VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL 7899 (internal merge request 3234). 7900 7901New Extensions: 7902 7903 * `<<VK_KHR_imageless_framebuffer>>` 7904 7905----------------------------------------------------- 7906 7907Change log for June 30, 2019 Vulkan 1.1.113 spec update: 7908 7909 * Update release number to 113. 7910 7911GitHub Issues: 7912 7913 * Fix typo in `<<VK_EXT_global_priority>>` appendix (public issue 979). 7914 7915Internal Issues: 7916 7917 * Expand the explanation of 7918 slink:VkSamplerYcbcrConversionImageFormatPropertiesKHR::pname:combinedImageSamplerDescriptorCount, 7919 and explain how it interacts with slink:VkWriteDescriptorSet, 7920 slink:VkDescriptorSetLayoutBinding::pname:descriptorCount, and 7921 slink:VkDescriptorPoolSize::pname:descriptorCount (internal issue 1643). 7922 * Clarify restrictions on components for code:OpImageGather in the 7923 <<spirvenv-module-validation, Validation Rules within a Module>> section 7924 (internal issue 1707). 7925 * Clarify the descriptions of <<limits-computeUnitsPerShaderArray, 7926 pname:computeUnitsPerShaderArray>> and <<limits-wavefrontSize, 7927 pname:wavefrontSize>> fields in 7928 slink:VkPhysicalDeviceShaderCorePropertiesAMD. 7929 7930New Extensions: 7931 7932 * `<<VK_EXT_texel_buffer_alignment>>` 7933 * `<<VK_EXT_shader_demote_to_helper_invocation>>` 7934 7935----------------------------------------------------- 7936 7937Change log for June 23, 2019 Vulkan 1.1.112 spec update: 7938 7939 * Update release number to 112. 7940 7941GitHub Issues: 7942 7943 * Clarify that it is possible to use the <<memory-host, Host Memory>> 7944 pname:pfnReallocation callback to free memory in any case that 7945 pname:pfnFree could be used (public issue 973). 7946 7947Internal Issues: 7948 7949 * Clarify range and precision of code:OpImageQueryLod in the discussion of 7950 scale factor and level-of-detail operation in the 7951 <<textures-normalized-operations, Normalized Texel Coordinate 7952 Operations>> section (internal issues 926, 1719). 7953 * Fix framebuffer layer valid usage statements for 7954 slink:VkRenderPassCreateInfo, slink:VkRenderPassCreateInfo2KHR, and 7955 slink:VkFramebufferCreateInfo (internal issue 1670). 7956 * Refactor common valid usage statements for flink:vkCmdBeginQuery and 7957 flink:vkCmdBeginQueryIndexedEXT (internal issue 1682). 7958 * Prohibit the ename:ename:VK_SAMPLER_YCBCR_RANGE_ITU_NARROW range from 7959 being used in slink:VkSamplerYcbcrConversionCreateInfo for formats with 7960 a bit depth less than 8 (internal issue 1688). 7961 * Add missing interactions with `<<VK_EXT_host_query_reset_usage>>` in the 7962 <<queries, Queries>> chapter (internal issue 1692). 7963 * Clean up error output from the `optimize-pdf` build script on success. 7964 * Fix an internal link to the <<spirvenv-correctly-rounded, Correctly 7965 Rounded>> section in the SPIR-V appendix by adding and referring to that 7966 anchor. 7967 * Fix extension version numbers in `vk.xml` for `VK_EXT_filter_cubic` and 7968 `VK_IMG_filter_cubic`. 7969 * Specify division precision for negative numbers, and remove statement 7970 that trigonometric functions have undefined precision, in the 7971 <<spirvenv-precision-operation, Precision and Operation of SPIR-V 7972 Instructions>> appendix. 7973 7974----------------------------------------------------- 7975 7976Change log for June 10, 2019 Vulkan 1.1.111 spec update: 7977 7978 * Update release number to 111. 7979 7980GitHub Issues: 7981 7982 * Clean up flink:vkGetPhysicalDeviceSurfaceFormatsKHR and 7983 flink:vkGetPhysicalDeviceSurfaceFormats2KHR to drop the 7984 ename:VK_FORMAT_UNDEFINED case, require callers pass a supported 7985 surface, and rearrange some validation-related language (public issue 7986 207). 7987 * Allow dynamic and nonuniform indexing of acceleration structures in the 7988 <<interfaces-resources-descset, Descriptor Set Interface>> section 7989 (public KhronosGroup/glslang issue 1766). 7990 7991Internal Issues: 7992 7993 * Clarify when images require the use of YCbCr samplers for 7994 slink:VkWriteDescriptorSet and slink:VkImageViewCreateInfo (internal 7995 issue 1639). 7996 * Remove the "`block`" language around <<features-robustBufferAccess, 7997 vectorizing and robust buffer access>> (internal issue 1642). 7998 * Allow code:OpTypeImageFormat == code:Unknown for input attachments in 7999 the <<interfaces-resources-descset, Descriptor Set Interface>> section 8000 (internal issue 1645). 8001 * Fix Asciidoctor conditionals around 8002 ename:VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT in the 8003 <<fundamentals-errorcodes>> section (internal issue 1679). 8004 * Remove error codes from `vk.xml` for 8005 flink:vkUninitializePerformanceApiINTEL, which has a `void` return type 8006 (internal issue 1704). 8007 * Various subgroup-related fixes in the <<spirvenv-capabilities, 8008 Capabilities>>, <<shaders-subgroup-arithmetic, Arithmetic Subgroup 8009 Operations>>, <<shaders-subgroup-clustered, Clustered Subgroup 8010 Operations>>, and <<shaders-subgroup-partitioned, Partitioned Subgroup 8011 Operations>> sections (internal merge request 3164). 8012 * Fix Asciidoctor markup affecting math rendering in the <<Precision of 8013 core SPIR-V Instructions>> table (internal merge request 3166). 8014 * Fix incorrect reference to flink:vkGetPhysicalDeviceFeatures2KHR in the 8015 description of slink:VkPhysicalDeviceASTCDecodeFeaturesEXT (internal 8016 merge request 3169). 8017 * Fix a non-sentence in the introduction to the <<textures, Image 8018 Operations Overview>> section (internal merge request 3184). 8019 * Minor markup, grammar, and typo fixes for the 8020 `<<NV_shader_sm_builtins>>` extension spec language (internal merge 8021 request 3189). 8022 * Clarify that 1D and 1D array format support is optional for cubic 8023 filters, immediately following the <<formats-mandatory-features-astc, 8024 Mandatory ASTC LDR format support>> table (internal merge request 3194). 8025 8026----------------------------------------------------- 8027 8028Change log for June 2, 2019 Vulkan 1.1.110 spec update: 8029 8030 * Update release number to 110. 8031 8032GitHub Issues: 8033 8034 * Fix typo (public pull request 972). 8035 * Rename Pastel driver ID to SwiftShader (public pull request 974). 8036 8037New Extensions: 8038 8039 * `<<VK_EXT_fragment_shader_interlock>>` 8040 * `<<VK_NV_shader_sm_builtins>>` 8041 8042----------------------------------------------------- 8043 8044Change log for May 24, 2019 Vulkan 1.1.109 spec update: 8045 8046 * Update release number to 109. 8047 8048GitHub Issues: 8049 8050 * Require matching for physical devices to be in a device group in the 8051 <<devsandqueues-devices, Devices>> section (public issue 695). 8052 * Fix typo in an equation in the <<fragmentdensitymap-fetch-density-value, 8053 Fetch Density Value>> section (public issue 954). 8054 * Fix styleguide links (public pull request 965). 8055 8056Internal Issues: 8057 8058 * Allow <<renderpass-compatibility, compatibility of single-subpass 8059 renderpasses>> with different resolve attachments (internal issue 1464). 8060 * Add some missing empty flags types to API spec so custom refpage 8061 generation doesn't break (internal issue 1607). 8062 * Add a "`SPIR-V Sampled Type`" column to the <<formats-numericformat, 8063 Interpretation of Numeric Formats>> table, and clarify the requirement 8064 that the code:OpTypeImage sampled type match the bound image's numeric 8065 format for slink:VkClearColorValue and in the 8066 <<interfaces-resources-descset, Descriptor Set Interface>> section 8067 (internal issue 1646). 8068 * Fix a typo in the <<tessellation-quad-tessellation, Quad Tessellation>> 8069 section which should refer to rectangles, not triangles (internal issue 8070 1667). 8071 * Clarify the definition of time domains in elink:VkTimeDomainEXT 8072 (internal merge request 3110). 8073 * Add R10X6 and R12X4 formats to the <<formats-mandatory-features-10bit>> 8074 table (internal merge request 3137). 8075 * Don't require extern sync on wait/signal semaphores in `vk.xml` for 8076 flink:vkQueueSubmit and flink:vkQueueBindSparse (internal merge request 8077 3116). 8078 * Improve phrasing of compute and mesh shader size related to 8079 code:LocalSize and code:WorkgroupSize in 8080 slink:VkPhysicalDeviceMeshShaderPropertiesNV and 8081 slink:VkPhysicalDeviceMaintenance3Properties (internal merge request 8082 3156). 8083 * Make the flink:vkCmdBindShadingRateImageNV pname:imageView parameter 8084 optional in `vk.xml` (internal merge request 3157). 8085 8086New Extensions: 8087 8088 * `<<VK_INTEL_performance_query>>` 8089 * `<<VK_INTEL_shader_integer_functions2>>` 8090 8091----------------------------------------------------- 8092 8093Change log for May 13, 2019 Vulkan 1.1.108 spec update: 8094 8095 * Update release number to 108. 8096 8097Internal Issues: 8098 8099 * Clarify that only external resources can be bound to external memory in 8100 valid usage statements for flink:vkBindBufferMemory, 8101 flink:vkBindImageMemory, slink:VkSparseMemoryBind, and 8102 slink:VkSparseImageMemoryBind (internal issue 1496). 8103 * Move all `vk.xml`requirements for 8104 flink:vkGetDeviceGroupSurfacePresentModes2EXT into 8105 `<<VK_EXT_full_screen_exclusive>>` (internal issue 1622). 8106 * Add some missing valid usage statements for 8107 flink:vkCmdEndQueryIndexedEXT (internal issue 1638). 8108 * Specify rules for defining "`New Flags and Bitmask Types`" in that 8109 section of the style guide (internal issue 1649). 8110 * Add a comment to the `vk.xml` extension block for 8111 `VK_ANDROID_native_buffer` explaining why the extension is tagged 8112 `"disabled"` (internal issue 1657). 8113 * Fix typos in the description of slink:VkImageViewCreateInfo (internal 8114 issue 1661). 8115 * Modify valid usage statements for slink:VkImageViewCreateInfo to fix the 8116 description about the restriction for pname:baseArrayLayer and 8117 pname:layerCount from pname:extent.depth to the depth of mipmap level 8118 while creating a 2D array image view on a 3D image. 8119 * Forbid structures that contain opaque types (images or samplers) in the 8120 SPIR-V <<spirvenv-module-validation, Validation Rules within a Module>> 8121 section. 8122 * Minor editorial changes for the `VK_EXT_swapchain_colorspace` extension 8123 in the description of slink:VkColorSpace KHR and `vk.xml`, including: 8124 ** Consistently specify which function (OETF or Inverse-EOTF) is being 8125 defined; 8126 ** Remove the Display P3 EOTF, since no other EOTFs are defined; 8127 ** Include luminance range for the HLG OETF; 8128 ** Remove a duplicated paragraph; and, 8129 ** Rename ename:VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT, leaving the old 8130 ename:VK_COLOR_SPACE_DCI_P3_LINEAR_EXT token as an alias. 8131 8132New Extensions: 8133 8134 * `<<VK_NV_framebuffer_mixed_samples_coverage_reduction_mode>>` 8135 * `<<VK_KHR_uniform_buffer_standard_layout>>` 8136 8137----------------------------------------------------- 8138 8139Change log for April 16, 2019 Vulkan 1.1.107 spec update: 8140 8141 * Update release number to 107. 8142 8143Public Issues: 8144 8145 * Fix revision date for the `<<VK_AMD_gpu_shader_half_float>>` appendix 8146 (public issue 617). 8147 * Make <<synchronization-pipeline-barriers-subpass-self-dependencies, 8148 subpass self-dependencies>> less restrictive (public issue 777). 8149 * Fix the `<<VK_EXT_full_screen_exclusive>>` dependency on 8150 `<<VK_KHR_win32_surface>>` in `vk.xml` (public pull request 849). 8151 * Remove single-page (`apispec.html`) refpage sub-targets from the 8152 Makefile `allman` target and the build instructions. The target is still 8153 present in the Makefile, but we have not been actively maintaining the 8154 single-page document and do not promise it will work. The full 8155 Specification and the individual API reference pages are what we support 8156 and publish at present (public issue 949). 8157 8158Internal Issues: 8159 8160 * De-duplicate common valid usage statements shared by multiple commands 8161 or structures by using Asciidoctor includes and dynamically assigning 8162 part of the valid usage ID based on which command or structure they're 8163 being applied to (internal issue 779). 8164 * Add reference pages for constructs not part of the formal API, such as 8165 platform calling convention macros, and script changes supporting them 8166 This required suppressing some check_spec_links warning classes in order 8167 to pass CI, until a more sophisticated fix can be done (internal issue 8168 888). 8169 * Change math notation for the elink:VkPrimitiveTopology descriptions to 8170 use short forms `v` and `p` instead of `vertex` and `primitive`, 8171 increasing legibility (internal issue 1611). 8172 * Rewrite generated file includes relative to a globally specified path, 8173 fixing some issues with refpage generation (internal issue 1630). 8174 * Update contributor list for `<<VK_EXT_calibrated_timestamps>>`. 8175 * Fix use of pathlin in `scripts/generator.py` so the script will work on 8176 Windows under Python 3.5 (internal merge request 3107). 8177 * Add missing conditionals around the 8178 <<descriptorsets-accelerationstructure, Acceleration Structure>> 8179 section (internal merge request 3108). 8180 * More script synchronization with OpenXR spec repository (internal merge 8181 request 3109). 8182 * Mark the `<<VK_AMD_gpu_shader_half_float>>` and 8183 `<<VK_AMD_gpu_shader_int16>>` extensions as deprecated in `vk.xml` and 8184 the corresponding extension appendices (internal merge request 3112). 8185 8186New Extensions: 8187 8188 * `<<VK_EXT_headless_surface>>` 8189 8190----------------------------------------------------- 8191 8192Change log for April 7, 2019 Vulkan 1.1.106 spec update: 8193 8194 * Update release number to 106. 8195 8196Public Issues: 8197 8198 * Add searchbox and generate search index for the chunked HTML target. 8199 Note that doing this requires several new toolchain components to build 8200 the `chunked` target (public issue 578 / internal issue 1352). 8201 * Remove descriptions of flink:vkCreateSampler sampler constraints which 8202 were repeated in the valid usage statements (public pull request 648). 8203 * Fix sense of conditional around a valid usage statement in the 8204 <<copies>> chapter (public issue 942). 8205 8206Internal Issues: 8207 8208 * Add missing pname:extent.width and pname:extent.height valid usage 8209 statements for flink:vkCmdClearAttachments (internal issue 1583). 8210 * Fix some inconsistencies in structures and corresponding pname:sType 8211 enumerant names by renaming 8212 sname:VkPhysicalDeviceShaderDrawParameterFeatures -> 8213 slink:slink:VkPhysicalDeviceShaderDrawParametersFeatures; 8214 sname:VkPhysicalDeviceVariablePointerFeatures -> 8215 slink:VkPhysicalDeviceVariablePointerFeatures; 8216 sname:VkPhysicalDeviceVariablePointerFeaturesKHR -> 8217 slink:VkPhysicalDeviceVariablePointerFeaturesKHR; 8218 sname:VkPhysicalDeviceBufferAddressFeaturesEXT -> 8219 slink:VkPhysicalDeviceBufferDeviceAddressFeaturesEXT; 8220 etext:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES 8221 -> 8222 ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES; 8223 etext:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES -> 8224 ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES; 8225 etext:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR -> 8226 ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR; 8227 and etext:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT 8228 -> 8229 ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT. 8230 The old names are still available as aliases for backwards 8231 compatibility. This change required introducing valid XML markup which 8232 externally written XML processing scripts may need to be modified to 8233 accommodate, to support multiple aliases of a single command or token 8234 name (internal issue 1592). 8235 * Add slink:VkDevice as the first parameter to flink:vkSetLocalDimmingAMD 8236 (internal issue 1618). 8237 * Improve CI header compilation tests to test all Vulkan platform 8238 includes, using fake platform headers where needed, and change the 8239 `allchecks` Makefile target to use the more comprehensive 8240 `check_spec_links.py` script instead of the retired `checkinc` and 8241 `checklinks` targets. 8242 * Move descriptions of the ASTC compressed texture decode mode from the 8243 <<appendix-compressedtex-astc,appendix>> to the recently updated 8244 external Khronos Data Format Specification. 8245 * Fix minor markup and spelling issues in the `VK_NV_ray_tracing` 8246 extension. 8247 8248----------------------------------------------------- 8249 8250Change log for March 19, 2019 Vulkan 1.1.105 spec update (GDC edition): 8251 8252 * Update release number to 105. 8253 8254Public Issues: 8255 8256 * Fix contractions and other markup issues (public pull request 935). 8257 8258New Extensions: 8259 8260 * Google Games Platform 8261 ** New `ggp` platform and associated header file `vulkan_ggp.h` 8262 ** `VK_GGP_frame_token` 8263 ** `VK_GGP_stream_descriptor_surface` 8264 8265----------------------------------------------------- 8266 8267Change log for March 18, 2019 Vulkan 1.1.104 spec update: 8268 8269 * Update release number to 104. 8270 8271Public Issues: 8272 8273 * Remove the incorrect line from "`Initial`" to "`Invalid`" state in the 8274 <<commandbuffer-lifecycle-diagram, Lifecycle of a command buffer>> 8275 diagram (public issue 881). 8276 * Add Fuchsia platform to <<boilerplate-wsi-header-table, Window System 8277 Extensions and Headers>> table (public pull request 933). 8278 * Change the type of 8279 slink:VkBufferDeviceAddressCreateInfoEXT::pname:deviceAddress from 8280 basetype:VkDeviceSize to basetype:VkDeviceAddress. These are both 8281 typedefs of code:uint64_t, so it is an ABI-compatible change (public 8282 issue 934). 8283 8284Internal Issues: 8285 8286 * Remove generated header files and update the CI tests to build a copy of 8287 the headers for use by the hpp-generate / hpp-compile CI stages. Targets 8288 to generate the headers will not be removed, but keeping these generated 8289 files in the repository increased the frequency of conflicts between 8290 branches when merging to master (internal issue 745). 8291 * Reword "`undefined: behavior if *action*" to "`must: not do *action*`" 8292 in the places the old terminology was used, and add a new 8293 <<writing-undefined, Describing Undefined Behavior>> section of the 8294 style guide to explain how to write such language in the future 8295 (internal issue 1579). 8296 * Move almost all Python scripts into the toplevel `scripts/` directory. 8297 Apply extensive internal edits to clean up and simplify the scripts, and 8298 try to follow PEP8 guidelines. Generalize the scripts with the use of a 8299 Conventions object controlling many aspects of output generation, to 8300 enable their use in other Khronos projects with similar requirements. 8301 Autogenerate extension interface refpages (these are experimental and 8302 may be retired going forward). 8303 8304New Extensions: 8305 8306 * `VK_AMD_display_native_hdr` 8307 * `VK_EXT_full_screen_exclusive` (internal issue 1439) 8308 * `VK_EXT_host_query_reset` 8309 * `VK_EXT_pipeline_creation_feedback` (internal issue 1560) 8310 * `VK_KHR_surface_protected_capabilities` (internal issue 1520) 8311 8312----------------------------------------------------- 8313 8314Change log for March 11, 2019 Vulkan 1.1.103 spec update: 8315 8316 * Update release number to 103. 8317 8318Public Issues: 8319 8320 * Remove (unnecessary) scoped modification order case from the memory 8321 model <<memory-model-location-ordered, location-ordered>> definition 8322 (public pull request 924). 8323 * Add an <<memory-model-acyclicity, acyclicity>> axiom to the memory model 8324 (public pull request 927). 8325 8326Internal Issues: 8327 8328 * Fix reversed logic of slink:VkFormatProperties discussion of multi-plane 8329 formats and ename:VK_FORMAT_FEATURE_DISJOINT_BIT (internal issue 1493). 8330 * Clarify how slink:VkImageStencilUsageCreateInfoEXT works, including new 8331 valid usage statements for flink:vkCmdClearDepthStencilImage, and the 8332 <<copies, Common Operation>> section of the Copy Commands chapter 8333 (internal issue 1565). 8334 * Update <<spirvenv-precision-operation, Precision and Operation of SPIR-V 8335 Instructions>> section to require that denorms be preserved by several 8336 instructions that don't perform any mathematical operations (internal 8337 issue 1584). 8338 * Remove duplicate valid usage statement from flink:vkAcquireNextImageKHR 8339 (internal merge request 3062). 8340 8341----------------------------------------------------- 8342 8343Change log for March 3, 2019 Vulkan 1.1.102 spec update: 8344 8345 * Update release number to 102. 8346 8347Public Issues: 8348 8349 * Simplify flink:vkGetImageMemoryRequirements constraint for 8350 ename:VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT (public pull request 817). 8351 * Fix typo in markup of the <<textures-texel-coordinate-systems-diagrams, 8352 Texel Coordinate Systems, Corner Sampling>> image that was generating 8353 complaints from chunked HTML output generation (public pull request 8354 928). 8355 8356Internal Issues: 8357 8358 * Split the old <<features, Features>> chapter into four chapters: 8359 <<features, Features>>, <<limits, Limits>>, <<formats, Formats>>, and 8360 <<capabilities, Capabilities>>, with minor edits to the introductory 8361 paragraph of each chapter. Anchor names in these chapters were changed, 8362 with corresponding effects to xrefs to these anchors elsewhere in spec 8363 markup . The purpose is to make the chunked HTML spec output load faster 8364 on what was previously a single, gigantic chapter (internal issue 1554). 8365 * Add ename:VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV, to the supported 8366 pipeline stages for ename:VK_ACCESS_UNIFORM_READ, 8367 ename:VK_ACCESS_SHADER_READ, and ename:VK_ACCESS_SHADER_WRITE in the 8368 <<synchronization-access-types-supported>> table. 8369 * Correct legal name of Google, LLC in vk.xml <tags> section and a 8370 copyright statement. 8371 * Clarify that Vulkan treats the Android 8372 code:AHARDWAREBUFFER_FORMAT_R8G8B8X8_UNORM format as RGBA, and the 8373 application is responsible for forcing the X/A component to be read as 8374 1.0, in the <<memory-external-android-hardware-buffer-formats>> table. 8375 * Clarify the vertex order of various primitive topologies, and define the 8376 order of transform feedback vertex capture based on that. This involves 8377 a lot of refactoring and cleanup in the <<drawing-primitive-topologies, 8378 Primitive Topologies>>, <<geometry-input, Geometry Shader Input 8379 Primitives>> sections, and <<vertexpostproc-transform-feedback Transform 8380 Feedback>> sections, and numerous places in the <<tessellation>> 8381 chapter, 8382 8383New Extensions: 8384 8385 * `VK_EXT_metal_surface` 8386 * `VK_EXT_ycbcr_image_arrays` (internal issue 1361). 8387 * `VK_NVX_image_view_handle` 8388 8389----------------------------------------------------- 8390 8391Change log for February 17, 2019 Vulkan 1.1.101 spec update: 8392 8393 * Update release number to 101. 8394 8395Public Issues: 8396 8397 * Make clear that memory types for imported host memory must be host 8398 visible in slink:VkMemoryHostPointerPropertiesEXT.txt (public issue 8399 897). 8400 * Make <<interfaces-resources-layout, WARNING block>> into a NOTE block, 8401 per the styleguide (public pull request 916). 8402 8403Internal Issues: 8404 8405 * Make <<textures-output-format-conversion, computation of derivatives in 8406 non-uniform flow control>> have undefined behavior (internal issue 8407 1367). 8408 * Make behavior, not just values, undefined for 8409 <<textures-layout-validation, reads from inconsistent YCbCr layouts>> 8410 (internal issue 1366). 8411 * Consolidate version and extension behavior documentation in the 8412 <<extended-functionality, Extended Functionality>> appendix, While a 8413 great deal of text was moved from other parts of the Specification into 8414 the appendix, this just serves to simplify and make consistent 8415 discussions of versions and extensions (internal issue 1473). 8416 * Add limits for slink:VkPhysicalDeviceRayTracingPropertiesNV in the 8417 <<features-limits-types, Required Limit Types>> and 8418 <<features-limits-required, Required Limits>> tables (internal issue 8419 1511). 8420 * Disallow <<memory-protected-memory, indirect calls within protected 8421 command buffers>> by adding valid usage statements for the related 8422 indirect dispatch and draw commands (internal issue 1513). 8423 * Add valid usage stataements to slink:VkGraphicsPipelineCreateInfo, 8424 slink:VkSubpassDescription, slink:VkSubpassDescription2KHR, 8425 slink:VkSubpassDescriptionDepthStencilResolveKHR, and 8426 slink:VkImageViewCreateInfo preventing the creation of a renderpass with 8427 attachments in formats that are not supported for rendering (internal 8428 issue 1552). 8429 * Qualify valid usage statements for 8430 slink:VkAttachmentReference::pname:layout parameter so restrictions only 8431 apply if an attachment is ename:VK_ATTACHMENT_UNUSED (internal issue 8432 1561). 8433 * Add valid usage statement for flink:vkCmdDrawIndirectByteCountEXT 8434 restricting pname:vertexStride to be positive (internal issue 1566). 8435 * Make the `VK_EXT_sample_locations` extension depend on 8436 `VK_KHR_get_physical_device_properties2` in `vk.xml`. 8437 * Rearrange and simplify the <<interfaces-resources-layout, block layout 8438 rules>>. 8439 8440New Extensions: 8441 8442 * `VK_NV_cooperative_matrix` 8443 * `VK_EXT_depth_clip_enable` (internal issue 1485). 8444 8445----------------------------------------------------- 8446 8447Change log for February 10, 2019 Vulkan 1.1.100 spec update: 8448 8449 * Update release number to 100. 8450 8451Public Issues: 8452 8453 * Clarify that scoped modification order only relates to 8454 <<memory-model-atomic-operation, atomic writes>> (public pull request 8455 906). 8456 * Remove `readme.txt` reference from `xml/README.adoc` (public pull 8457 request 907). 8458 * Add missing slink:VkShaderResourceUsageAMD to the <<VK_AMD_shader_info>> 8459 appendix (public pull request 908). 8460 * Fix markup for <<VK_EXT_filter_cubic>> appendix (public pull request 8461 911). 8462 * Fix typo "`attachment`" (public pull request 914). 8463 * Alias the enums for `VK_IMG_filter_cubic` properly to the corresponding 8464 `VK_EXT_filter_cubic` enums, so they appear in the corresponding 8465 enumerated types, instead of as #defines (Vulkan-Headers issue 40). 8466 8467Internal Issues: 8468 8469 * Remove nested conditionals in valid usage statements for 8470 slink:VkFramebufferCreateInfo and flink:vkCmdPipelineBarrier by 8471 duplicating statements along ifdef/ifndef paths for 8472 VK_KHR_depth_stencil_resolve (internal issue 1527). 8473 * Clarify allowed values of <<spirv-precision-operation, SPIR-V operations 8474 near infinity>>. For very large results of operations the allowed range 8475 of return values as defined in the spec didn't include the largest 8476 finite number. In some rounding modes (eg. RTZ) the largest finite 8477 number is the correctly rounded result, so it should be allowed. 8478 * Require descriptor types to match in slink:VkCopyDescriptorSet. 8479 8480----------------------------------------------------- 8481 8482Change log for February 3, 2019 Vulkan 1.1.99 spec update: 8483 8484 * Update release number to 99. 8485 8486Public Issues: 8487 8488 * Add missing pname:pMemoryHostPointerProperties description to 8489 flink:vkGetMemoryHostPointerPropertiesEXT.txt (public pull request 896). 8490 * Minor markup fixes (public pull request 900). 8491 * Minor update to `khronos.css` and markup fixes (originally proposed in 8492 public pull request 901, but done via an internal MR). 8493 8494Internal Issues: 8495 8496 * Document restrictions on image queries for {YCbCr} formats in the 8497 <<formats-requiring-sampler-ycbcr-conversion>> table as well as 8498 for slink:sname:VkImageFormatProperties and slink:VkImageCreateInfo 8499 (internal issue 1361). 8500 * Correct type of the code:FragSizeEXT built-in in the 8501 <<interfaces-builtin-variables, Built-In Variables>> section (internal 8502 issue 1526). 8503 * Clean up math in the <<textures, Image Operations>> chapter by 8504 refactoring, using better naming conventions, updating diagrams to use 8505 the correct orientation, etc. (internal merge request 2968). 8506 * Fix minor typos for slink:VkImageCreateInfo and 8507 slink:VkImageStencilUsageCreateInfoEXT. 8508 * Add missing documentation for tlink:VkResolveModeFlagsKHR. 8509 * Fix extension dependency of pname:scalarBlockLayout in the 8510 <<features-features-requirements, Feature Requirements>> section. 8511 * Fix indexing math for shader binding table calculations in the 8512 <<shader-binding-table-indexing-rules, Indexing Rules>> section, and use 8513 spelling "`any-hit`" consistently. 8514 * Reconcile valid usage statement and text for sampled image layouts in 8515 slink:VkWriteDescriptorSet 8516 (https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/551). 8517 * Make SPIR-V code:OpConvertUToPtr and code:OpConvertPtrToU operations 8518 require a 64-bit integer for physical storage buffer pointers in the 8519 <<spirvenv-module-validation, Validation Rules within a Module>> 8520 section. 8521 * Update to KaTeX 10.0. 8522 8523New Extensions: 8524 8525 * `VK_EXT_filter_cubic` 8526 * `VK_NV_dedicated_allocation_image_aliasing` 8527 8528----------------------------------------------------- 8529 8530Change log for January 13, 2019 Vulkan 1.1.98 spec update: 8531 8532 * Update release number to 98. 8533 8534Public Issues: 8535 8536 * Fix missing markup in flink:vkDestroyPipelineLayout valid usage 8537 statement (pull request 882). 8538 * Add missing contributors for `<<VK_EXT_buffer_device_address>>` (public 8539 pull request 891). 8540 8541Internal Issues: 8542 8543 * Detect nested bullet points in valid usage blocks and warn about them 8544 during VUID assignment (internal issue 1382). 8545 * Update the style guide to document the process for reserving new bits in 8546 bitmask types (internal issue 1411). 8547 * Clarify for slink:VkApplicationInfo::pname:apiVersion and in the 8548 <<fundamentals-validusage-versions, Valid Usage for Newer Core 8549 Versions>> section when it is valid for an application to use a certain 8550 version of Vulkan API functionality (for an instance and for a 8551 device/physical device); and when the validation layers must generate an 8552 error (internal issue 1412). 8553 * Add optional <<memory-model-availability-visibility, transitive 8554 availability/visibility operations to the memory model, including a new 8555 pname:vulkanMemoryModelAvailabilityVisibilityChains feature for 8556 slink:VkPhysicalDeviceVulkanMemoryModelFeaturesKHR (internal issue 8557 1460). 8558 * Add the code:StorageBuffer storage class to those in the 8559 <<interfaces-resources-descset, Descriptor Set Interface>> (internal 8560 issue 1480). 8561 * Add missing `returnedonly` tags for a number of returned extension 8562 structures that can be passed in pname:pNext chains (internal issue 8563 1515). 8564 * Clean up and rearrange some spec language for 8565 slink:VkRenderPassCreateInfo and slink:VkAttachmentReference.txt 8566 (internal issue 1522). 8567 * Correctly round the code:OpVectorTimesScalar and 8568 code:OpMatrixTimesScalar SPIR-V operations in the <<Precision of core 8569 SPIR-V Instructions>> table (internal merge request 2996). 8570 * Work around cases in flink:vkCmdBeginTransformFeedbackEXT, 8571 flink:vkCmdEndTransformFeedbackEXT, and 8572 slink:VkPipelineCoverageModulationStateCreateInfoNV where an array 8573 parameter is `optional` but the length is not in `vk.xml`. This is an 8574 interim fix using `noautovalidity` + handcoded VU replacing those that 8575 should be autogenerated (internal issue 2944 and 8576 https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/480). 8577 * Remove redundant capability validation of the code:float16 and code:int8 8578 SPIR-V capabilities from the <<spirvenv-capabilities, Capabilities>> 8579 section, since they are already covered in the preceding table. 8580 * Update check_spec_links script, including validation for reference page 8581 open blocks. Fix errors identified by the script. 8582 8583----------------------------------------------------- 8584 8585Change log for January 05, 2019 Vulkan 1.1.97 spec update: 8586 8587 * Update release number to 97. 8588 8589Public Issues: 8590 8591 * Add a special case to the <<renderpass-compatibility, Render Pass 8592 Compatibility>> rules allowing single-subpass renderpasses to be 8593 compatible even if they have different resolve attachment references 8594 (public issue 835). 8595 * Fix the miss shader binding table record address rule in the 8596 <<shader-binding-table-indexing-rules, Miss Shaders>> section to index 8597 by code:missIndex, not code:sbtOffset (public issue 875). 8598 8599Internal Issues: 8600 8601 * Add a missing anchor to the elink:VkSamplerCreateFlagBits language 8602 (internal issue 1483). 8603 * Add missing implicit valid usage include for slink:VkHdrMetadataEXT and 8604 corresponding `noautovalidity` attributes in `vk.xml` for the 8605 externally-defined metadata properties (internal issue 1514). 8606 * Remove restrictions on the `mask` parameter of SPIR-V's 8607 code:OpGroupNonUniformXor in the <<spirvenv-module-validation, 8608 Validation Rules within a Module>> appendix (internal merge request 8609 2971). 8610 * Restore `noautovalidity` attribute for 8611 slink:VkPipelineViewportWScalingStateCreateInfoNV::pname:pViewportWScalings 8612 in `vk.xml` (internal merge request 2975). 8613 * Update copyright dates on Khronos-copyrighted files to 2019 (internal 8614 merge request 2980). 8615 8616New Extensions: 8617 8618 * `VK_KHR_depth_stencil_resolve` 8619 * `VK_EXT_buffer_device_address` 8620 * `VK_EXT_memory_budget` 8621 * `VK_EXT_memory_priority` 8622 * `VK_EXT_validation_features` 8623 8624----------------------------------------------------- 8625 8626Change log for December 16, 2018 Vulkan 1.1.96 spec update: 8627 8628 * Update release number to 96. 8629 8630Public Issues: 8631 8632 * Fix typo in `vk.xml` for `structextends` attribute of 8633 slink:VkPhysicalDeviceShadingRateImagePropertiesNV (public PR 870). 8634 * Fix links in optimized PDF output (public PR 879). 8635 8636Internal Issues: 8637 8638 * Add a link to GitHub contributors in the <<credits, Other Credits>> 8639 section (internal issue 808). 8640 * Clarify the behavior of command aliases described in the <<versions, 8641 Core Revisions>> and <<initialization-functionpointers, Command Function 8642 Pointers>> sections and the registry schema document with respect to 8643 whether they are or are not the same entry point, and what the behaviour 8644 of the ftext:vkGet*ProcAddr commands is for each alias (internal issue 8645 1462). 8646 * Update slink:VkPipelineShaderStageCreateInfo valid usage statements for 8647 writing to code:Layer and code:viewportIndex to apply to any vertex 8648 processing stage (internal issue 1475). 8649 * Make sparse image creation optional for {YCbCr} formats in the 8650 <<features-required-format-support, Required Format Support>> section 8651 and the <<formats-requiring-sampler-ycbcr-conversion, Formats 8652 requiring sampler {YCbCr} conversion for 8653 ename:VK_IMAGE_ASPECT_COLOR_BIT image views>> table (internal issue 8654 1476). 8655 * Modify the valid usage statement for 8656 flink:vkCmdDrawIndirectByteCountEXT::pname:vertexStride to use the 8657 pname:maxTransformFeedbackBufferDataStride limit rather than the 8658 pname:maxVertexInputBindingStride limit, which is a better match for 8659 transform feedback related operations (internal issue 1487). 8660 * Changed all members of slink:VkPhysicalDevicePCIBusInfoPropertiesEXT to 8661 have the `uint32_t` type. This is an incompatible change to an EXT 8662 that was released very recently; although this is against usual Vulkan WG 8663 policy, we discussed and consider this an acceptable risk, but have 8664 polled the mesa-dev list in case there are use cases we missed (internal 8665 issue 1492). 8666 * Set spec vetsion to 1 for `VK_GOOGLE_hlsl_functionality1` and 8667 `VK_GOOGLE_decorate_string` in `vk.xml` (internal MR 2948). 8668 * Remove redundant valid usage statement `VkImageCreateInfo-pNext-02395` 8669 (internal MR 2950). 8670 * Add `check_spec_links.py` script, use it in Gitlab CI, and fix many 8671 minor markup issues discovered by the script (internal MR 2955). 8672 * Update `BUILD.md` to the current Ruby version (2.5.3), and make some 8673 corresponding updates to per-platform build instructions (internal MR 8674 2956). 8675 * Fix binding numbers and other details in 8676 flink:vkUpdateDescriptorSetWithTemplate.txt example code blocks 8677 (internal MR 2960). 8678 * Remove some nautovalidity="true" in `vk.xml` for NV extensions where 8679 it is clearly wrong (internal MR 2970). 8680 8681----------------------------------------------------- 8682 8683Change log for December 3, 2018 Vulkan 1.1.95 spec update: 8684 8685 * Update release number to 95. 8686 8687Public Issues: 8688 8689 * Fix valid usage and XML issues found in public issues 789 and 790 for 8690 the `VK_EXT_debug_utils` extension (public pull request 794). 8691 * Replace references to `VK_NV_dedicated_allocation` with links to the 8692 corresponding slink:slink:VkMemoryDedicatedRequirements and 8693 slink:slink:VkMemoryDedicatedAllocateInfo structures in the description 8694 of elink:VkExternalMemoryFeatureFlagBits (public issue 801). 8695 * Fix miscellaneous minor markup and spelling issues in 8696 `VK_NV_ray_tracing` extension (public pull request 860). 8697 * Remove "returnedonly" from XML for 8698 slink:VkPhysicalDeviceInlineUniformBlockFeaturesEXT and 8699 slink:VkPhysicalDeviceVulkanMemoryModelFeaturesKHR (public issue 862). 8700 8701Internal Issues: 8702 8703 * Add to the description of the 8704 <<features-limits-maxComputeSharedMemorySize, 8705 pname:maxCompureSharedMemorySize>> feature to state the shared variables 8706 should be packed at least as tightly as std430 (internal issue 1386). 8707 * Fix and clarify various references to image and image view usage in 8708 flink:vkCmdBindShadingRateImageNV, flink:vkCmdBeginRenderPass, and 8709 slink:VkImageStencilUsageCreateInfoEXT (internal issue 1432). 8710 * Require that the slink:VkImage mipmap chain match the Android hardware 8711 buffer mipmap chain for slink:VkMemoryAllocateInfo (internal issue 8712 1479). 8713 * Fix the definition of slink:VkSwapchainCreateInfoKHR valid usage 8714 statement 01778 (Vulkan-ValidationLayers!15) 8715 * Fix descriptions of <<interfaces-builtin-variables-launchid, 8716 code:LaunchIDNV>> and <<interfaces-builtin-variables-launchsize, 8717 code:LaunchSizeNV>> to code:uvec3. 8718 8719New Extensions: 8720 8721 * `VK_KHR_shader_float16_int8` 8722 * `VK_KHR_shader_float_controls` 8723 8724----------------------------------------------------- 8725 8726Change log for November 25, 2018 Vulkan 1.1.94 spec update: 8727 8728 * Update release number to 94. 8729 8730Public Issues: 8731 8732 * Use the terms "`texel block`" and "`texel block size`" instead of "`data 8733 element`" and "`element size`", and define "`element`" as an array slot. 8734 In addition to the terminology changes, retitled the <<texel-block-size, 8735 Representation and Texel Block Size>> section and added texel block size 8736 / no. of texels/block information to the 8737 <<features-formats-compatibility, Compatible Formats>> table. There is 8738 some additional work underway to make sure the compatibility language 8739 makes sense for all of uncompressed, compressed, and multiplanar formats 8740 (public issue 763). 8741 * Cleanup `VK_NV_ray_tracing` language (public issues 858, 859). 8742 8743Internal Issues: 8744 8745 * Specify in <<shaders-invocationgroups, Invocation and Derivative 8746 Groups>> and <<textures-output-format-conversion, Texel Output Format 8747 Conversion>> that derivative groups are quads when code:SubgroupSize >= 8748 4 (internal issue 1390). 8749 * Make the type of slink:VkDescriptorUpdateTemplateCreateInfo::pname:pNext 8750 `const` following pattern for the other stext:Vk*CreateInfo structures 8751 (internal issue 1459). 8752 * Specify that flink:vkCmdClearAttachments executes as a drawing command, 8753 rather than a transfer command (internal issue 1463). 8754 * Update `VK_NV_ray_tracing` to use code:InstanceId instead of 8755 code:InstanceIndex. 8756 8757New Extensions: 8758 8759 * `VK_KHR_swapchain_mutable_format` 8760 * `VK_EXT_fragment_density_map` 8761 8762----------------------------------------------------- 8763 8764Change log for November 18, 2018 Vulkan 1.1.93 spec update: 8765 8766 * Update release number to 93. 8767 8768Public Issues: 8769 8770 * Add spec language for ename:VK_INDEX_TYPE_NONE_NV and fix up 8771 slink:VkAccelerationStructureTypeNV (public issue 848). 8772 * Add missing suffix in description of slink:VkSubpassDescription2KHR 8773 parameters (public pull request 851). 8774 * Fix miscellaneous typos (public pull request 855). 8775 * Add driver ID for Pastel (public pull request 856). 8776 * Add missing include directive for slink:VkMemoryWin32HandlePropertiesKHR 8777 implicit valid usage statements (public pull request 857). 8778 8779Internal Issues: 8780 8781 * Restrict the storage classes permitted for SPIR-V atomics to what is 8782 actually supported, in the <<spirvenv-module-validation, Validation 8783 Rules within a Module>> section (internal issue 1123). 8784 * Add a missing Valid Usage statement to slink:VkRenderPassCreateInfo for 8785 the case pname:stencilLoadOp == ename:VK_LOAD_OP_CLEAR, pname:layout == 8786 ename:VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL (internal issue 8787 1408). 8788 * Modify optimize-pdf script and Makefile to retain non-optimized original 8789 PDF on errors (internal issue 1435). 8790 * Add <<spirvenv-module-validation, SPIR-V validation rules>> stating that 8791 only the listed code:BuiltIn decorations are permitted, and only when 8792 relevante features and extensions are enabled (internal issue 1449). 8793 * Remove some duplicated Valid Usage IDs created via cut & paste error 8794 (internal issue 1455). 8795 * Build HTML output for extension reference pages (internal issue 1461). 8796 ** Improve genRef.py handling of aliases defined inside other refpages. 8797 ** Emit aliases in pygenerator.py. 8798 ** Add XML noautovalidity flag for VkRenderPassCreateFlags until there 8799 are some corresponding FlagBits defined. 8800 ** Corrected types= attribute on some refpage blocks to 'flags' 8801 ** Added refpage blocks for some missing types detected by CI tests. 8802 * Fixed many Valid Usage statement issues in slink:VkRenderPassCreateInfo, 8803 slink:VkSubpassDescription, slink:VkSubpassDescription2KHR, 8804 slink:VkSubpassDependency2KHR, flink:vkCmdBeginRenderPass, 8805 flink:vkCmdBeginRenderPass2KHR, and slink:VkRenderPassBeginInfo 8806 discovered while adding `VK_KHR_create_renderpass2` to the validation 8807 layers. 8808 8809New Extensions: 8810 8811 * `VK_EXT_scalar_block_layout` 8812 * `VK_EXT_separate_stencil_usage` 8813 8814----------------------------------------------------- 8815 8816Change log for November 12, 2018 Vulkan 1.1.92 spec update: 8817 8818 * Update release number to 92. 8819 8820Public Issues: 8821 8822 * Move and modify valid usage statements dealing with pname:aspectMask in 8823 flink:vkCmdClearColorImage, flink:vkCmdClearDepthStencilImage, and 8824 slink:VkClearAttachment, so they are in places where all necessary 8825 information is available (public issue 529). 8826 * Fix math markup in <<textures-texel-anisotropic-filtering, Texel 8827 Anisotropic Filtering>> (public pull request 840). 8828 * Fix misspellings (public pull request 845). 8829 8830Internal Issues: 8831 8832 * Add installation instructions and a Makefile "`chunked`" target for 8833 chunked HTML generation (internal issue 1352). 8834 * Fix pipeline mesh diagram style; also fix a minor bug in the classic 8835 pipeline diagram where vertex/index buffers wrongly fed into the vertex 8836 shader (internal issue 1436). 8837 * Make Asciidoctor ERROR output raise an error, and don't suppress 8838 executed command output from CI make invocation (internal issue 1454). 8839 * Minor typo fixes and clarifications for `VK_NV_raytracing`. 8840 * Cleanup extension-specific properties 8841 ** Remove duplicated documentation for pname:maxDiscardRectangles, 8842 pname:pointClippingBehavior, and pname:maxVertexAttribDivisor (they 8843 shouldn't be documented with the other members of 8844 slink:VkPhysicalDeviceLimits at all). 8845 ** Remove duplicate anchor for pname:maxVertexAttribDivisor 8846 ** Consistently document stext:VkPhysicalDevice<Extension>PropertiesKHR 8847 *** Always document pname:sType/pname:pNext (was inconsistent before) 8848 *** Always mention chaining to slink:VkPhysicalDeviceProperties2 (and not 8849 as slink:VkPhysicalDeviceProperties2KHR) 8850 *** Always include Valid Usage statements last 8851 * Update Makefile 'checklinks' target and associated scripts, and fix 8852 markup problems identified by checkLinks.py, so that we can rely on the 8853 checklinks script as part of Gitlab CI. 8854 8855----------------------------------------------------- 8856 8857Change log for November 4, 2018 Vulkan 1.1.91 spec update: 8858 8859 * Update release number to 91. 8860 8861Public Issues: 8862 8863 * Update Ubuntu subsystem build instructions in `BUILD.adoc` (public pull 8864 request 624). 8865 * Delete the `VK_KHR_mir_surface` extension from the Specification and 8866 XML, due to EOL of the only driver known to have supported it, and 8867 near-EOL of Mir itself (public issue 814). 8868 * Fix options for some figures that were using old ones (public pull 8869 request 841). 8870 * Fix various accidentally repeated words (public pull request 843). 8871 * Use `time.process_time()`, introduced in Python 3.3, in the scripts 8872 instead of `time.clock()`, which will be removed in Python 3.8 (public 8873 pull request 844). 8874 8875Internal Issues: 8876 8877 * Update valid usage statements for 8878 `VK_ANDROID_external_memory_android_hardware_buffer` in 8879 slink:VkMemoryAllocateInfo, 8880 slink:VkImportAndroidHardwareBufferInfoANDROID, and 8881 flink:vkGetAndroidHardwareBufferPropertiesANDROID to actually be 8882 verifiable (internal issue 1419). 8883 * Update valid usage statements for 8884 `VK_ANDROID_external_memory_android_hardware_buffer` in 8885 slink:VkMemoryAllocateInfo, slink:VkImageCreateInfo, and 8886 slink:VkImageViewCreateInfo to move valid usage statements in 8887 doubly-nested bullet points up one level, accommodating limitations of 8888 the valid usage extraction script that creates `validusage.json` 8889 (internal issue 1434). 8890 * Fix typo etext:VK_ACCESS_SHADING_RATE_IMAGE_BIT_NV to the correct 8891 ename:VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV. 8892 * Add missing etext:VK_STRUCTURE_TYPE_* tokens to appendices for 8893 extensions missing them. 8894 8895New Extensions: 8896 8897 * `VK_AMD_memory_overallocation_behavior` 8898 * `VK_NV_ray_tracing`, replacing `VK_NVX_raytracing` 8899 8900----------------------------------------------------- 8901 8902Change log for October 28, 2018 Vulkan 1.1.90 spec update: 8903 8904 * Update release number to 90. 8905 8906Public Issues: 8907 8908 * Tag flink:vkQueueWaitIdle as `externsync` in `vk.xml` (public pull 8909 request 815). 8910 * Update README (public pull request 834). 8911 * `VK_NV_framebuffer_mixed_samples` and `VK_AMD_mixed_attachment_samples` 8912 had confusing and contradictory valid usage statements when read in the 8913 all-extensions spec build. Change them to explicitly mention which 8914 extension each is for (public issue Vulkan-ValidationLayers/issues/353). 8915 8916Internal Issues: 8917 8918 * Update `COPYING.md` to clarify how externally generated Vulkan 8919 Specifications (for translations, annotations, or other reasons) must be 8920 copyrighted, and acknowledge the Exception Clause on the `vk.xml` 8921 license (internal issue 1079). 8922 * Specify that flink:vkGetPhysicalDeviceImageFormatProperties may: return 8923 pname:maxMipLevels 1 if the format is ycbcr (internal issue 1361). 8924 * Clarify previously underspecified language for 8925 flink:vkCmdPushConstants::pname:pStageFlags regarding use of push 8926 constants across multiple pipelines (internal issue 1403). 8927 * Fix typo in XML/headers for 8928 ename:VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT, 8929 which was previously 8930 etext:VK_STRUCTURE_TYPE_IMAGE_EXCPLICIT_DRM_FORMAT_MODIFIER_CREATE_INFO_EXT 8931 (internal issue 1428). 8932 * Fix markup of equations that were sporadically breaking the 8933 `optimize-pdf` step of PDF generation, due (apparently) to inconsistent 8934 treatment of unwrapped multicharacter terms by different LaTeX parsers 8935 (internal issue 1435). 8936 * For the <<memory-model-synchronizes-with synchronizes-with>> memory 8937 model relation cases involving a release barrier plus relaxed atomic 8938 write, treat the atomic as if it were a release atomic and allow the 8939 acquire side to read from its hypothetical release sequence. This is 8940 more consistent with how C++ defines synchronization for release fences 8941 (internal issue cross-api/memory-model#72). 8942 * Minor editorial changes to the <<memory-model, memory model>> appendix 8943 based on external feedback. 8944 8945----------------------------------------------------- 8946 8947Change log for October 21, 2018 Vulkan 1.1.89 spec update: 8948 8949 * Update release number to 89. 8950 8951Public Issues: 8952 8953 * Clarify the reference to <<features-limits-mipmapPrecisionBits, mipmap 8954 precision bits>> in the <<textures-image-level-selection, Image Level(s) 8955 Selection>> section (public issue 660). 8956 * Update <<debugging-object-types,VkObjectType and Vulkan Handle 8957 Relationship>> table with missing types (public pull request 820). 8958 * Miscellaneous minor markup cleanup (public pull request 822). 8959 * Fix copy/paste bugs in the description of how implicit 8960 availability/visibility operations for atomics/barriers are ordered in 8961 the <<memory-model-availability-visibility-semantics, Availability and 8962 Visibility Semantics>> section (public issue 823). 8963 * Add ename:VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV bit missing from 8964 the mesh shading list of the <<synchronization-pipeline-graphics, 8965 graphics pipeline>> (public issue 824). 8966 8967Internal Issues: 8968 8969 * Clarify that only statically used members of a push constant block need 8970 to be in the push constant range, and stop referring to block members as 8971 "`variables`" in the <<interfaces-resources-pushconst, Push Constant 8972 Interface>> section. This is related to 8973 https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/340 8974 (internal issue 1401). 8975 * Clarify interaction between flink:vkCmdSetDeviceMask and render pass 8976 control commands in the slink:VkDeviceGroupRenderPassBeginInfo section 8977 (internal issue 1416). 8978 * Miscellaneous minor markup cleanup. 8979 * Remove types defined by `"disabled"` extensions from 8980 validextensionstructs in the XML processing scripts, so downstream code 8981 generators don't emit them. 8982 8983----------------------------------------------------- 8984 8985Change log for October 13, 2018 Vulkan 1.1.88 spec update: 8986 8987 * Update release number to 88. 8988 8989Public Issues: 8990 8991 * Make clear that 8992 tname:PFN_vkDebugUtilsMessengerCallbackEXT::pname:messageTypes is a 8993 bitmask, and correct a typo in the spelling of 8994 slink:VkDebugUtilsMessengerCreateInfoEXT.txt::pname:messageType (public 8995 pull request 800). 8996 * Make an ABI-compatible change of the type of 8997 slink:VkPhysicalDeviceDriverPropertiesKHR::pname:driverID to use the new 8998 elink:VkDriverIdKHR type (public issue 811). 8999 9000Internal Issues: 9001 9002 * Clarify for the <<features-features-shaderStorageImageExtendedFormats>> 9003 feature and in the <<spirvenv-capabilities-table>> that the feature 9004 means that all of the formats are supported, and that otherwise the 9005 features can be queried per-format (internal issue 1273). 9006 * Clarified interactions of `VK_EXT_external_memory_host` with host cache 9007 management commands and structures flink:vkMapMemory, 9008 flink:vkFlushMappedMemoryRanges, slink:VkMappedMemoryRange, and 9009 flink:vkUnmapMemory using the new glossary term "`Host Mapped Device 9010 Memory`" (internal issue 1385). 9011 * Update the language for flink:vkCreateViSurfaceNN.txt describing the 9012 pname:currentExtent of a VI surface to more accurately reflect current 9013 capabilities, replacing "`undefined`" with more explicit behavior 9014 (internal issue 1410). 9015 9016New Extensions: 9017 9018 * `VK_EXT_calibrated_timestamps` 9019 * `VK_EXT_image_drm_format_modifier` (this extension was previously 9020 disabled in vk.xml, and has now been enabled after some changes to fix 9021 performance issues). 9022 * `VK_EXT_pci_bus_info` 9023 * `VK_EXT_transform_feedback` 9024 * `VK_GOOGLE_hlsl_functionality1`, exposing support for 9025 `SPV_GOOGLE_hlsl_functionality1`. 9026 * `VK_GOOGLE_decorate_string`, exposing support for 9027 `SPV_GOOGLE_decorate_string`. 9028 9029----------------------------------------------------- 9030 9031Change log for October 7, 2018 Vulkan 1.1.87 spec update: 9032 9033 * Update release number to 87. 9034 9035Public Issues: 9036 9037 * Merge flink:vkCmdPipelineBarrier self-dependency barrier VUs referring 9038 to the same subpass dependency (public pull request 756). 9039 * Describe default value of `"optional"` attribute in the registry schema 9040 document (public issue 769) 9041 * Fix links in <<VK_NVX_raytracing>> extension (public pull request 805). 9042 * Mark the <<VK_KHR_mir_surface>> extension obsolete (public issue 814). 9043 * Fix missing endif in Image Creation block (public issue 817). 9044 9045Internal Issues: 9046 9047 * Clarify that the compressed texture formats corresponding to 9048 <<features-features-textureCompressionETC2>>, 9049 <<features-features-textureCompressionASTC_LDR>>, and 9050 <<features-features-textureCompressionBC>> is not contingent on the 9051 feature bits, and may be supported even if the features are not enabled 9052 (internal issue 663). 9053 * Clarify that code:FragStencilRefEXT is output only in the 9054 <<interfaces-builtin-variables, Built-In Variables>> section (internal 9055 issue 1173). 9056 * Identify and correct many overly-aggressive uses of "`undefined`", and 9057 narrow them down, where straightforward to do so. Mark such resolved 9058 uses of "`undefined`" with the custom undefined: macro. Add a new 9059 <<writing-undefined, Describing Undefined Behavior>> section (internal 9060 issue 1267). 9061 * Don't require code:inline_uniform_block descriptors to be populated 9062 before use in the flink:vkAllocateDescriptorSets section (internal issue 9063 1380). 9064 * Allow suppressing inline SVG images by controlling this with an 9065 attribute set in the Makefile, rather than the explicit [%inline] 9066 directive (internal issue 1391). 9067 * Mark 'Khronos' as a registered trademark in several places, now that it 9068 is one. 9069 * Fix typo in the <<VK_KHR_shader_atomic_int64>> appendix using the GLSL 9070 naming of the compare exchange op when referring to the SPIR-V op. 9071 * Specify in the flink:vkGetPhysicalDeviceQueueFamilyProperties section 9072 that all implementations must support at least one queue family, and 9073 that every queue family must contain at least one queue. 9074 * Make slink:VkPipelineDynamicStateCreateInfo::pname:dynamicStateCount, 9075 slink:VkSampleLocationsInfoEXT::pname:sampleLocationsPerPixel, and 9076 slink:VkSampleLocationsInfoEXT::pname:sampleLocationsCount optional, to 9077 fix bogus implicit valid usage checks that were causing failures in the 9078 conformance tests. 9079 * Fix vendor tag in reserved extension 237 constants. Does not affect 9080 anything since it is just a placeholder, but this should avoid further 9081 comments. 9082 * Minor markup fixes in some extension appendices. 9083 9084New Extensions: 9085 9086 * `<<VK_FUCHSIA_imagepipe_surface>>` 9087 9088----------------------------------------------------- 9089 9090Change log for September 29, 2018 Vulkan 1.1.86 spec update: 9091 9092 * Update release number to 86. 9093 9094Internal Issues: 9095 9096 * Add new <<resources-image-creation-limits, Image Creation Limits>> 9097 section and reference that from valid usage statements, reducing 9098 combinatorial complexity of extension-dependent VUs. Also fixes some 9099 underspecified limits (such as pname:maxMipLevels) in the VUs for 9100 slink:VkImageCreateInfo when 9101 slink:VkExternalMemoryImageCreateInfo::pname:externalMemoryHandles 9102 contains multiple bits, and fixes incorrectly (and underspecified) 9103 limits when an Android external format is used (internal issue 1370). 9104 * Remove unused "`Fragment Area Granularity`" glossary entry accidentally 9105 introduced in the 1.1.85 update. 9106 9107New Extensions: 9108 9109 * `VK_KHR_driver_properties` 9110 * `VK_KHR_shader_atomic_int64` 9111 * The specification sources contain text for another extension, 9112 `VK_EXT_image_drm_format_modifier`, but this extension is not yet 9113 complete, and is marked disabled in `vk.xml`. The extension will be 9114 enabled, and become part of the spec, only when the authors decide it is 9115 ready. 9116 9117----------------------------------------------------- 9118 9119Change log for September 19, 2018 Vulkan 1.1.85 spec update: 9120 9121 * Update release number to 85. 9122 9123Public Issues: 9124 9125 * Add self-dependency ename:VK_DEPENDENCY_BY_REGION_BIT valid usage 9126 statements for slink:VkSubpassDependency(public pull request 778). 9127 * Apply fix from pull request 742 to slink:VkSubpassDependency and 9128 slink:VkSubpassDependency2 (public pull request 779). 9129 * Specify the units of slink:VkBufferImageCopy::pname:bufferRowLength and 9130 pname:bufferImageHeight as texels (public pull request 781). 9131 * Better specify promoted parameter mapping in the 9132 `<<VK_KHR_create_renderpass2>>` appendix (public pull request 782). 9133 9134Internal Issues: 9135 9136 * Only include the <<fundamentals-validusage-versions, Valid Usage for 9137 Newer Core Versions>> section in Vulkan 1.1 or later (internal issue 9138 1381). 9139 9140Other Issues: 9141 9142 * Clean up redundant valid usage language for the 9143 `VK_ANDROID_external_memory_android_hardware_buffer` extension 9144 interaction with slink:VkImageCreateInfo. 9145 * Fix error in a flag name within valid usage statements for 9146 slink:VkMemoryAllocateInfo. 9147 * Clarify that memory types are not totally ordered in 9148 slink:VkPhysicalDeviceMemoryProperties. 9149 * For slink:VkWriteDescriptorSetInlineUniformBlockEXT, set 9150 structextends="VkWriteDescriptorSet" in `vk.xml`, and make 9151 slink:VkDescriptorSetLayoutBindingFlagsCreateInfoEXT::pname:pBindingFlags 9152 optional. 9153 * Add documentation of 'provisional' XML attribute to registry.txt. 9154 9155New Extensions: 9156 9157 * `VK_NV_compute_shader_derivatives` 9158 * `VK_NV_corner_sampled_image` 9159 * `VK_NV_fragment_shader_barycentric` 9160 * `VK_NV_mesh_shader` 9161 * `VK_NV_representative_fragment_test` 9162 * `VK_NV_scissor_exclusive` 9163 * `VK_NV_shader_image_footprint` 9164 * `VK_NV_shading_rate_image` 9165 * `VK_NVX_raytracing` 9166 9167----------------------------------------------------- 9168 9169Change log for September 8, 2018 Vulkan 1.1.84 spec update: 9170 9171 * Update release number to 84. 9172 9173Public Issues: 9174 9175 * Fix code sample in the `<<VK_EXT_debug_utils>>` extension (public issue 9176 751). 9177 * Fix misleading comment in `vk.xml` for 9178 slink:VkDescriptorBufferInfo::pname:buffer (public pull request 762). 9179 * Fix formatting of deprecation attributes in schema doc (public pull 9180 request 767). 9181 * Change `can` to `may` in the description of 9182 elink:VkSparseImageFormatFlagBits, which are return values from queries 9183 (public pull request 768). 9184 * Prettify generated contact list in extension appendices, adding logos 9185 and a New Issue link (public pull request 770). 9186 * Enable sRGB conversion based on the image view format, not the image 9187 format, in the <<textures-format-conversion, Format Conversion>> section 9188 (public pull request 773). 9189 * Fix typo in equation in the <<primsrast-lines-basic, Basic Line Segment 9190 Rasterization>> section (public pull request 780). 9191 * Fix special characters in GitHub contacts links (public pull request 9192 783). 9193 * Make clean_pdf target remove pdf folder (public pull request 784). 9194 * Fix styleguide bad markup of block continuation (public pull request 9195 792). 9196 9197Other Issues: 9198 9199 * Allow a zero vertex attribute divisor in the 9200 `<<VK_EXT_vertex_attribute_divisor>>` extension, exposed via the 9201 slink:VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT feature. 9202 * Add missing `structextends="VkDeviceCreateInfo"` to 9203 slink:VkPhysicalDeviceShaderDrawParameterFeatures and 9204 slink:VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT. 9205 9206New Extensions: 9207 9208 * `VK_KHR_memory_model` 9209 * `VK_EXT_astc_decode_mode` 9210 * `VK_EXT_inline_uniform_block` 9211 9212----------------------------------------------------- 9213 9214Change log for August 13, 2018 Vulkan 1.1.83 spec update: 9215 9216 * Update release number to 83. 9217 9218Public Issues: 9219 9220 * Use [%inline] directive for all SVGs to reduce file size (public pull 9221 request 734). 9222 * Convert XML `value` aliases into <alias> tags (public pull request 9223 747). 9224 * Fix metadoc script showing non-selected extensions (public pull request 9225 748). 9226 * Reapply public pull request 742 to make 9227 ename:VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT part of the 9228 graphices pipeline (public pull request 749). 9229 * Fix numerous typos related to accidental duplication of words (public 9230 pull request 760). 9231 * Fix `vk.xml` contact typos (public pull request 761). 9232 9233 9234Internal Issues: 9235 9236 * Add images to the <<Standard sample locations>> table (internal issue 9237 1115). 9238 * Add a definition of "`Inherited from`" precision in the 9239 <<spirvenv-precision-operation, Precision and Operation of SPIR-V 9240 Instructions>> section (internal issue 1314). 9241 * Clarify that both built-in and user-defined variables count against the 9242 location limits for shader interfaces in the 9243 <<interfaces-iointerfaces-locations, Location Assignment>> section 9244 (internal issue 1316). 9245 * Merge "`required`" capabilities into the <<spirvenv-capabilities-table, 9246 list of optional: SPIR-V capabilities>> (internal issue 1320). 9247 * Relax the layout matching rules of descriptors referring to only a 9248 single aspect of a depth/stencil image, by reference to the new 9249 <<resources-image-layouts-matching-rule, Image Layout Matching Rules>> 9250 section (internal issue 1346). 9251 * Revert extension metadoc generator warning about name mismatches to a 9252 diagnostic, due to annoying warnings in build output for conscious 9253 choices we've made (internal issue 1351). 9254 9255Other Issues: 9256 9257 * Reserve bits for pending vendor extensions. 9258 * Make Vulkan consistent with SPIR-V regarding code:DepthReplacing and 9259 code:FragDepth in the <<interfaces-builtin-variables, Built-In 9260 Variables>> section. 9261 * Add missing ChangeLog entries for the previous three spec updates. 9262 9263----------------------------------------------------- 9264 9265Change log for July 30, 2018 Vulkan 1.1.82 spec update: 9266 9267 * Update release number to 82. 9268 9269Public Issues: 9270 9271 * Add flink:vkDestroyPipelineLayout valid usage statement that the layout 9272 must not have been used with command buffers still in the recording 9273 state (public issue 730). 9274 * Correct <unused> tag for elink:VkResult in `vk.xml` (public merge 9275 request 746). 9276 9277Internal Issues: 9278 9279 * Add a valid usage statement to flink:vkQueueSubmit, and similar language 9280 to the definitions of <<synchronization-queue-transfers-acquire, acquire 9281 operations>> requiring that an acquire operation follow a previous 9282 release of the same subresource (internal issue 1290). 9283 * Add <<resources-image-format-features,Image Format Features>> and 9284 <<resources-image-view-format-features,Image View Format Features>> 9285 sections that precisely define the slink:VkFormatFeatures supported by 9286 images and image views, and rewrite valid usage statements to reference 9287 these sections instead of duplicating language (internal issue 1310). 9288 * Reword and consolidate synchronization valid usage statements for 9289 flink:vkCmdPipelineBarrier such that they correctly account for multiple 9290 possible self-dependencies (internal issue 1322). 9291 * Change order of <<Standard sample locations>> for 2xMSAA (internal issue 9292 1347). 9293 * Add definitions of "`<<Correctly Rounded>>`" and "`<<ULP>>`" in the 9294 SPIR-V environment appendix, and "`Units in the Last Place (ULP)`" in 9295 the glossary. 9296 9297New Extensions: 9298 9299 * `VK_NV_device_diagnostic_checkpoints` 9300 9301----------------------------------------------------- 9302 9303Change log for July 23, 2018 Vulkan 1.1.81 spec update: 9304 9305 * Update release number to 81. 9306 9307Public Issues: 9308 9309 * Fix missing "`valid`" phrasing in some obscure cases (public pull 9310 request 605). 9311 * Replace improper use of cannot: referring to the implementation in the 9312 description of the 9313 <<features-limits-maxUpdateAfterBindDescriptorsInAllPools, 9314 pname:maxUpdateAfterBindDescriptorsInAllPools>> limit (public pull 9315 request 738). 9316 * Reorder description of bits in elink:VkPipelineStageFlagBits and the 9317 <<synchronization-pipeline-stages-supported, Supported pipeline stage 9318 flags>> table to match their definition order (public pull request 740). 9319 * Add description of ename:VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT 9320 to elink:VkBufferUsageFlagBits (public pull request 741). 9321 * Fix value usage statement for slink:VkSubpassDependency stage mask 9322 parameters (public pull request 742). 9323 * Fix visible markup in registry schema document (public pull request 9324 #745). 9325 9326Internal Issues: 9327 9328 * Make the <<geometry-invocations, geometry shader invocation 9329 description>> and <<shaders-geometry-execution, Geometry Shader 9330 Execution>> descriptions consistent with other pipeline stages (internal 9331 issue 1325). 9332 * Mark the `VK_NV_glsl_shader` extension as deprecated. 9333 * Adjust the per-instance vertex attribute offset formula specified by 9334 `VK_EXT_vertex_attribute_divisor` for 9335 slink:VkVertexInputBindingDivisorDescriptionEXT so that the interaction 9336 between pname:firstInstance and pname:divisor matches the OpenGL 9337 convention (internal issue 1333). 9338 9339----------------------------------------------------- 9340 9341Change log for July 7, 2018 Vulkan 1.1.80 spec update: 9342 9343 * Update release number to 80. 9344 9345Public Issues: 9346 9347 * Remove unused "`API Order`" term from glossary (public issue 657). 9348 * Dynamically generate the extension appendix includes based on 9349 information in `vk.xml`, including new metadata tags describing 9350 deprecated, obsoleted, and promoted extensions (public pull request 9351 690). 9352 9353Internal Issues: 9354 9355 * Add valid usage statements to flink:vkCmdBindDescriptorSets to keep 9356 offsets + range less than or equal to the buffer size (internal issue 9357 1174). 9358 9359New Extensions: 9360 9361 * `VK_EXT_conditional_render` 9362 * `VK_KHR_create_renderpass2` (public issue 736) 9363 * `VK_KHR_8bit_storage` (public issue 737) 9364 9365----------------------------------------------------- 9366 9367Change log for July 1, 2018 Vulkan 1.1.79 spec update: 9368 9369 * Update release number to 79. 9370 9371Public Issues: 9372 9373 * Add a note to the <<features-required-format-support, Required Format 9374 Support>> section clarifying that the required formats don't depend on 9375 the used flags (public issue 671). 9376 * Add a valid usage statement for flink:vkUpdateDescriptors that was 9377 previously described for slink:VkImageSubresourceRange, but not as a 9378 valid usage statement (public issue 713). 9379 * Modify implicit valid usage generator script to not emit 'must: not be 9380 0' for a parameter that is a pointer to a flags field, such as 9381 pname:pPeerMemoryFeatures (public issue 729). 9382 9383Internal Issues: 9384 9385 * Add definitions of "`obsoleted`" and "`deprecated`", and modify the 9386 definition of "`promoted`" in the <<glossary, Glossary>> (internal issue 9387 988). 9388 * Add language for integer texel output conversions (the conversion is 9389 undefined) to the <<textures-output-format-conversion]] Texel Output 9390 Format Conversion>> section. Simplify and clarify the floating-point 9391 conversion language in the <<fundamentals-general, General 9392 Requirements>> section and the new <<fundamentals-fp-conversion, 9393 Floating-Point Format Conversions>> section, and remove obsolete 9394 language in the format-specific floating-point sections (internal issue 9395 1275). 9396 * Add the elink:VkVendorId enumerated type to the Vulkan API / XML / 9397 header, so reserved Khronos vendor IDs can be referred to symbolically 9398 by clients. Note that only Khronos vendor IDs (e.g. non-PCI vendor IDs) 9399 are defined (internal issue 1299). 9400 * Fix typo in the <<fig-non-strict-lines, Non strict lines>> table 9401 (internal issue 1315). 9402 * Clean up and simplify the 9403 <<formats-requiring-sampler-ycbcr-conversion, YCbCr format 9404 properties>> table and use symbols consistently with other tables. Add a 9405 column for the number of planes. 9406 * Add code:Float16 to the <<spirvenv-capabilities-table, List of optional 9407 SPIR-V capabilities>> for the `VK_AMD_gpu_shader_half_float` extension. 9408 9409----------------------------------------------------- 9410 9411Change log for June 18, 2018 Vulkan 1.1.78 spec update: 9412 9413 * Update release number to 78. 9414 9415Public Issues: 9416 9417 * Change markup so parameter descriptions include links to structures, 9418 instead of just their names (public issue 697). 9419 * Resume publishing updated Vulkan 1.0 with KHR extensions and Vulkan 1.0 9420 with all extensions versions of the specification (public issue 722). 9421 * Reapply fixes from public pull request 698 for 9422 `VK_ANDROID_external_memory_android_hardware_buffer`, which accidentally 9423 were reverted at some point (public pull request 724). 9424 * Fix undefined format valid usage statements for slink:VkImageCreateInfo 9425 in the presence of the 9426 `VK_ANDROID_external_memory_android_hardware_buffer` extension (public 9427 pull request 725). 9428 * Miscellaneous markup consistency fixes (public pull request 728). 9429 9430Internal Issues: 9431 9432 * When building specifications containing vendor extensions, add terms to 9433 the Khronos spec copyright specifying that the result is not a ratified 9434 specification (internal issue 739). 9435 * Change the value of the 9436 pname:maxDescriptorSetUpdateAfterBindUniformBuffers minimum limit to 72 9437 (6 times pname:maxPerStageDescriptorUpdateAfterBindUniformBuffers) in 9438 the <<features-limits-required, Required Limits>> table (internal issue 9439 1300). 9440 9441Other Issues: 9442 9443 * Fix link to resource image view compatibility table in the valid usage 9444 statements for slink:VkImageFormatListCreateInfoKHR (internal pull 9445 request 2711). 9446 9447----------------------------------------------------- 9448 9449Change log for June 10, 2018 Vulkan 1.1.77 spec update: 9450 9451 * Update release number to 77. 9452 9453Public Issues: 9454 9455 * Remove redundant Asciidoctor ifdef in slink:VkDeviceCreateInfo valid 9456 usage statement (public pull request 718). 9457 9458Internal Issues: 9459 9460 * Require that the returned slink:VkMemoryRequirements::pname:alignment 9461 reflect the minimum alignment requirements for the buffer's usages, and 9462 make dynamic offset alignment valid usage more explicit for 9463 flink:vkBindBufferMemory and flink:vkCmdBindDescriptorSets (internal 9464 issue 1170). 9465 * Explicitly state that objects of type code:OpTypeImage, 9466 code:OpTypeSampler, and code:OpTypeSampledImage must not be stored to in 9467 the <<spirvenv-module-validation, Validation Rules within a Module>> 9468 section (internal issue 1262). 9469 * Clarify rules about validating descriptor set/binding against storage 9470 class and descriptor type in the <<spirvenv-module-validation, 9471 Validation Rules within a Module>> section, and add an anchor for and 9472 references to the <<interfaces-resources-storage-class-correspondence, 9473 Shader Resource and Storage Class Correspondence>> table (internal issue 9474 1266). 9475 * Use correct spelling of SPIR-V decoration code:NonWritable in several 9476 places (internal issue 1298). 9477 9478Other Issues: 9479 9480 * Update specification links to files in the old 9481 KhronosGroup/Vulkan-LoaderAndValidationLayers repository with 9482 corresponding links into the new repositories that replace it. 9483 * Move validity requirement for slink:VkSamplerCreateInfo into the valid 9484 usage block instead of the body text, and give it a VUID. 9485 * Use the full name of the "`style guide`" in a reference in the 9486 description of slink:vkGetPhysicalDeviceProperties, update the 9487 <<vulkan-styleguide, link to that document>>, and use the full name 9488 in the registry index page. 9489 9490----------------------------------------------------- 9491 9492Change log for May 25, 2018 Vulkan 1.1.76 spec update: 9493 9494 * Update release number to 76. 9495 9496Internal Issues: 9497 9498 * Add an exception clause to the license on `vk.xml`, enabling its use 9499 with GPL-based projects (internal issue 1017). 9500 * Remove the generated `vulkan_ext.[ch]` files, which are no longer 9501 supported. Add `src/ext_loader/README.md` explaining why, and update 9502 files in `xml/` to not generate them by default (internal issue 1268) 9503 9504Other Issues: 9505 9506 * Fix typos in valid usage statements for the 9507 ftext:vkDrawIndexedIndirectCount* commands, replacing 9508 sizeof(VkDrawIndirectComment) with sizeof(VkDrawIndexedIndirectCommand). 9509 * Modify the <<spirvenv-module-validation, Validation Rules within a 9510 Module>> section to require code:NonReadable or code:NonWriteable in 9511 SPIR-V code for images with an image format of code:Unknown if one of 9512 the requisite code:shaderImageReadWithoutFormat or 9513 code:shaderImageWriteWithoutFormat features is disabled. 9514 9515New Extensions: 9516 9517 * `VK_KHR_get_display_properties2` 9518 * `VK_KHR_draw_indirect_count` 9519 9520----------------------------------------------------- 9521 9522Change log for May 16, 2018 Vulkan 1.1.75 spec update: 9523 9524 * Update release number to 75. 9525 9526GitHub Issues: 9527 9528 * Use GitHub handles (e.g. @handle) for contact information in vk.xml, 9529 when available (partial fix for public issue 630). 9530 * Add size invariance guarantee to slink:VkMemoryRequirements for 9531 buffer/image memory requirements (public issue 661). 9532 * Correct scope (conditional constructs) in valid usage statement for 9533 slink:VkBindImageMemoryInfo (public pull request 684). 9534 * Clean up minor markup issues and typos in the 9535 `VK_ANDROID_external_memory_android_hardware_buffer` extension appendix 9536 (public pull request 698). 9537 * Modify registry processing script to avoid irrelevant warnings of benign 9538 enumerant redefinitions (public pull request 705). 9539 * Fix some duplicate words and some misspelled "`stagess`" (public pull 9540 request 712) 9541 9542Internal Issues: 9543 9544 * Enable continuous integration tests on the internal Khronos gitlab 9545 server by adding a .gitlab-ci.yml file. Note: this does not implement CI 9546 on the public GitHub repository (internal issue 408). 9547 * Add link from description of depth clamping in the <<fragops-depth, 9548 depth test>> section to the 9549 slink:VkPipelineRasterizationStateCreateInfo::pname:depthClampEnable 9550 parameter which enables it, making it easily searchable / findable 9551 (internal issue 1125). 9552 * Clarify that arrays of arrays of descriptors are not allowed in the 9553 <<interfaces-resources-descset, Descriptor Set Interface>> and 9554 <<interfaces-resources-setandbinding, DescriptorSet and Binding 9555 Assignment>> sections (internal issue 1192). 9556 * Comment out some redundant nested Asciidoctor conditionals in the 9557 slink:VkImageViewCreateInfo valid usage block, and explain in all cases 9558 why the redundant conditional exist and are commented out (internal 9559 issue 1231). 9560 * Move a valid usage statement from slink:VkCommandPoolCreateInfo to the 9561 parent flink:vkCreateCommandPool, where the device queue is known 9562 (internal issue 1233). 9563 * Add new slink:VkBaseInStructure and slink:VkBaseOutStructure types which 9564 can be used by extensions and implementations for handling Vulkan 9565 sType/pNext style structures in a more generic way (internal issue 9566 1265). 9567 * Clarify that 9568 slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures 9569 only applies to external-format images. Add references to this in valid 9570 usage statements that previously only referred to 9571 slink:VkFormatProperties (internal issue 1244). 9572 * Fix the description of elink:VkPipelineCreateFlagBits enumerant 9573 ename:VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT to match the 9574 name (internal issue 1279). 9575 * Add a NOTE to the <<interfaces-resources-setandbinding, DescriptorSet 9576 and Binding Assignment>> section making it clear that variables sharing 9577 a storage class may use identical descriptor set and bindings. 9578 Specifically state the sometimes misunderstood ability to have one or 9579 more differently typed image descriptors sharing a descriptor set and 9580 binding (internal SPIR-V issue 264). 9581 * Make DynamicIndexing features and capabilities also control the 9582 uniformity of the descriptor used in memory access instructions in the 9583 <<interfaces-resources-descset, Descriptor Set Interface>> section. This 9584 makes them also apply to variable_pointer usage, which can bypass the 9585 array indexing operation (internal SPIR-V issue 289). 9586 9587Other Issues: 9588 9589 * Correct flink:vkCmdBlitImage limitations on cubic blits to be 2D only, 9590 not 3D. 9591 * Update valid usage statements for slink:VkRenderPassCreateInfo and 9592 slink:VkInputAttachmentAspectReference. 9593 * Move YCbCr-related VU statements from slink:VkDescriptorImageInfo to 9594 slink:VkWriteDescriptorSet, where all needed information is known, and 9595 remove redundant statements. 9596 * Move SPIR-V restriction that images be of either sampled or storage 9597 types from the <<interfaces-resources-descset, Descriptor Set 9598 Interface>> section to the <<spirvenv-module-validation, Validation 9599 Rules within a Module>> section of the SPIR-V appendix. 9600 9601----------------------------------------------------- 9602 9603Change log for April 21, 2018 Vulkan 1.1.74 spec update: 9604 9605 * Update release number to 74. 9606 9607GitHub Issues: 9608 9609 * Clarify which buffer locations are accessed in 9610 flink:vkCmdCopyBufferToImage valid usage statements (public issue 676). 9611 * Refine description of <<extended-functionality-extensions-dependencies, 9612 extension dependencies>>, related NOTE in the 9613 <<extended-functionality-extensions, Extensions>> section, and 9614 "`Required Extensions`" glossary term (public pull request 693). 9615 * Add support for specifying required Vulkan core version in `vk.xml` and 9616 the extension metadoc generator (public issue 696). 9617 * Update .gitignore for directory reorganization (public pull request 9618 699). 9619 * Fix typo (public pull request 703). 9620 9621Internal Issues: 9622 9623 * Update valid usage of slink:VkClearRect::pname:layerCount (internal 9624 issue 1241). 9625 9626Other Issues: 9627 9628 * Fix typo in <<NV_geometry_shader_passthrough>> issues list. 9629 9630----------------------------------------------------- 9631 9632Change log for April 15, 2018 Vulkan 1.1.73 spec update: 9633 9634 * Update release number to 73. 9635 9636GitHub Issues: 9637 9638 * Refine swapchain association with surface for slink:VkSwapchainKHR, with 9639 matching valid usage statements for slink:VkSwapchainCreateInfoKHR and 9640 discussion following the <<swapchain-wsi-image-create-info>> table 9641 (public issue 637). 9642 * Re-remove several valid usage statements from slink:VkImageCreateInfo 9643 that had previously been removed at the time that 9644 ename:VK_IMAGE_CREATE_EXTENDED_USAGE_BIT was introduced. These 9645 statements had incorrectly been restored due to an glitch while merging 9646 from the old `1.0` branch to the current `master` branch (public issue 9647 683). 9648 9649Internal Issues: 9650 9651 * Fix reference page generation and configure build to generate reference 9652 pages 1.1 with all extensions, rather than core only, as was the case 9653 for the 1.0 ref pages (internal issues 484, 1056, 1205). 9654 * Require that 9655 slink:VkMemoryDedicatedRequirements::pname:prefersDedicateAllocation is 9656 ename:VK_TRUE when 9657 slink:VkMemoryDedicatedRequirements::pname:requiresDedicateAllocation is 9658 ename:VK_TRUE (internal issue 1222). 9659 * Fix Ruby extension code so `diff_html` Makefile target works (internal 9660 issue 1230). 9661 * Update `genRelease` script to generate 1.1 + all extensions reference 9662 pages - but not the single-page HTML / PDF versions, which are even 9663 larger than the API spec (internal issue 1245). 9664 9665Other Issues: 9666 9667 * Add missing attributes to `vk.xml` for `VK_ANDROID_native_buffer`. 9668 * Specify that the slink:VkAttachmentDescription::pname:format member is 9669 the format of the image *view* that will be used for the attachment. 9670 * Use core sname:VkPhysicalDeviceFeatures2 in the `structextends` `vk.xml` 9671 attribute for sname:VkPhysicalDeviceDescriptorIndexingFeaturesEXT and 9672 sname:VkPhysicalDeviceDescriptorIndexingPropertiesEXT, rather than the 9673 KHR equivalent it was promoted from. 9674 * Fix the "`Fragment Input Attachment Interface`" glossary entry to match 9675 the specification body. 9676 * Clarify the interaction of sRGB images used as storage or texel buffers 9677 with <<textures-output-format-conversion, Texel Output Format 9678 Conversion>>. 9679 * Moved three valid usage statements from 9680 slink:VkRenderPassMultiviewCreateInfo up to 9681 slink:VkRenderPassCreateInfo, and added a new valid usage statement for 9682 slink:VkRenderPassInputAttachmentAspectCreateInfo. 9683 * Added valid usage statements for slink:VkBufferMemoryBarrier and 9684 slink:VkImageMemoryBarrier reflecting the global requirement that 9685 "`non-sparse resources must be bound to memory before being recorded to 9686 command`". 9687 9688----------------------------------------------------- 9689 9690Change log for April 5, 2018 Vulkan 1.1.72 spec update: 9691 9692 * Update release number to 72. 9693 9694GitHub Issues: 9695 9696 * Restructure the repository to put the specification `Makefile` and 9697 associated spec source material at the top level, `vk.xml` and 9698 associated scripts material in `xml/`, and generated include and source 9699 files in `include/vulkan/` and `src/ext_loader/`, respectively (public 9700 issue 436). 9701 * Add missing bullet point markup to flink:vkCmdCopyImage valid usage 9702 statement, so it gets a VUID assigned (public issue 627). 9703 * Fix broken links in a couple of extension appendices (public pull 9704 request 665). 9705 * Add the <platform> tag to the index in section 4.1 of the registry 9706 schema documentation, and add the protect= attribute of <extension> 9707 tags to the comments in `registry.rnc` (public issues 673, 678). 9708 * Add missing valid usage statements for sparse image interactions to 9709 flink:VkImageCreateInfo (public pull request 675). 9710 * Fix improper usage and grammar of "`can: not`" (public pull request 9711 681). 9712 * Remove duplicate spec language and NOTE on present layout between the 9713 flink:vkAcquireNextImageKHR and flink:vkAcquireNextImage2KHR commands 9714 (public pull request 685). 9715 * Fix some typos and markup issues (public pull request 689; public issues 9716 642, 667, 687). 9717 * Fix typo etext:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT -> 9718 ename:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT in the 9719 <<external-semaphore-handle-types-compatibility, External semaphore 9720 handle types compatibility>> table (public pull request 691). 9721 9722Internal Issues: 9723 9724 * Remove the need for the "`noautovalidity`" attribute on extension 9725 structures in `vk.xml`. It is now implied by the "`structextends`" 9726 attribute instead (internal issue 942). 9727 * Replace uses of "`currently bound`" with "`bound`", since "`currently`" 9728 is redundant and distracting, and add a corresponding rule to the style 9729 guide (internal issue 993). 9730 * Fixed subtle issues with the last updates to flink:vkAcquireNextImageKHR 9731 language that had resulted in ambiguities (internal issue 1178). 9732 * Make it clear that only one query of a given type is allowed at a time 9733 by reordering valid usage statements for flink:vkCmdBeginQuery and 9734 flink:vkCmdEndQuery, and removing redundant ones (internal issue 1213). 9735 * Swapped OL1 and OL3 in `tessparamUL.svg` to match previous version, and 9736 fixed where "`(no edge)`" appears (internal issue 1215). 9737 9738Other Issues: 9739 9740 * Fixed a minor problem with the valid usage statement extraction script, 9741 and corresponding markup in the spec source. 9742 9743New Extensions: 9744 9745 * `VK_AMD_shader_core_properties` 9746 * `VK_EXT_descriptor_indexing` 9747 * `VK_NV_shader_subgroup_partitioned` 9748 9749----------------------------------------------------- 9750 9751Change log for March 16, 2018 Vulkan 1.1.71 spec update: 9752 9753 * First public update for Vulkan 1.1. 9754 9755GitHub Issues: 9756 9757 * Refer to standard sparse image block shape format tables explicitly in 9758 the <<sparsememory-standard-shapes, Standard Sparse Image Block Shapes>> 9759 section (public issue 93). 9760 * Add the missing definition of the code:LocalInvocationIndex decoration 9761 in the <<interfaces-builtin-variables, Built-In Variables>> section 9762 (public issue 532). 9763 * Clarify dynamic state definition in the introduction to the <<pipelines, 9764 Pipelines>> section and the new <<pipelines-dynamic-state, Dynamic 9765 State>> subsection (public issue 620). 9766 * Clarified deprecation statement in the `VK_AMD_negative_viewport_height` 9767 appendix (public issue 674). 9768 * Fix parameter descriptions for flink:vkCreateIndirectCommandsLayoutNVX 9769 (public issue 677). 9770 9771Internal Issues: 9772 9773 * Remove description of <<primsrast-points, rasterization point size>> 9774 being taken from the tessellation control shader, since there are no 9775 circumstances under which you can have TCS without TES (internal issue 9776 522). 9777 * Define <<copies-images-format-size-compatibility, _size-compatible_ 9778 image formats>> for flink:vkCmdCopyImage, add it to the glossary, and 9779 use that definition for slink:VkImageViewCreateInfo (internal issue 9780 771). 9781 * Change brief descriptions of enumerant names, and of parameters which 9782 are enumerants, from "`enum *indicates*`" to "`enum *specifies*`" for 9783 consistency, and add a markup style guide rule (internal issue 862). 9784 * Clarify how execution dependencies interact with 9785 <<synchronization-submission-order, submission order>> at numerous 9786 places in the <<renderpass, Render Pass>> and <<synchronization, 9787 Synchronization>> chapters (internal issue 1062). 9788 * Clarify statement in the <<interfaces-resources-setandbinding, 9789 DescriptorSet and Binding Assignment>> section that only interface 9790 variables statically used by the entry point used in a pipeline must be 9791 present in the descriptor set layout (internal issue 1172). 9792 * Flip sparse image diagrams with partially full mip levels vertically, to 9793 match graph origins of other image diagrams (internal issue 1176). 9794 * Update new SVG diagrams to have consistent style and base font size, 9795 increase consistency of primitive topology diagrams, and add a section 9796 to the style guide on creating and editing images in a consistent style 9797 (internal issue 1177). 9798 * Resolve problems with valid usage statement extraction by fixing 9799 existing VUID tags for interfaces promoted to version 1.1 and fixing 9800 conditional directives around 9801 VUID-VkMemoryDedicatedAllocateInfo-image-01797 (internal issue 1184). 9802 * Strip `KHR` suffixes from a few interfaces promoted to Vulkan 1.1 that 9803 were missed previously (internal issue 1185). 9804 * Restrict code:OpImageQuerySizeLod and code:OpImageQueryLevels to only 9805 work on code:Image operands with their code:Sampled operand set to 1. In 9806 other words, these operations are not defined to work with storage 9807 images (internal issue 1193). 9808 * Recycle extension slot for extension #82 in `vk.xml`. This extension was 9809 never published (internal issue 1195). 9810 * Add an issue to the `VK_KHR_maintenance1` appendix noting that zero 9811 height viewports are allowed when this extension is enabled (internal 9812 issue 1202). 9813 * Fix slink:VkDescriptorSetLayoutBinding description so that shader stages 9814 always use descriptor bindings, not the other way around (internal issue 9815 1206). 9816 * Fix field name for 9817 slink:VkInputAttachmentAspectReference::pname:inputAttachmentIndex 9818 (internal issue 1210). 9819 9820Other Issues: 9821 9822 * Fix a few broken links in the <<versions-1.1, Version 1.1>> appendix. 9823 * Replace a few old refBegin/refEnd tags with open block markup around 9824 interfaces, and remove old KHX VUID tags that were breaking the valid 9825 usage statement extraction. 9826 * Fix error codes accidentally tagged as success codes in `vk.xml` for 9827 flink:vkGetSwapchainCounterEXT. 9828 * Added valid usage statements for ftext:vkBind*Memory2 input structures 9829 stext:VkBind*MemoryInfo, and fix a pname:image -> pname:buffer typo in a 9830 couple of places. 9831 * Fix swapped descriptions of elink:VkDescriptorType enums 9832 ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE and 9833 ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE (reported via tweet). 9834 9835New Extensions: 9836 9837 * `VK_ANDROID_external_memory_android_hardware_buffer` 9838 9839----------------------------------------------------- 9840 9841Change log for March 7, 2018 Vulkan 1.1.70 spec update: 9842 9843 * Vulkan 1.1 initial release. Bump API patch number and header version 9844 number to 70 for this update. The patch number will be used for both 9845 Vulkan 1.1 and Vulkan 1.0 updates, and continues to increment 9846 continuously from the previous Vulkan 1.0.69 update. 9847 9848 NOTE: We are not publishing an updated 1.0.70 specification, or 1.1 9849 reference pages, along with 1.1.70. There are still minor issues to work 9850 out with those build targets. However, we will soon generate all three 9851 types of documents as part of the regular spec update cycle. 9852 9853 NOTE: The GitHub KhronosGroup/Vulkan-Docs repository now maintains the 9854 current specification in the `master` branch. The `1.0` branch is out of 9855 date and will not be maintained, since we will be generating both 1.1 9856 and 1.0 specifications from the `master` branch in the future. 9857 9858GitHub Issues: 9859 9860 * Clarify how mapped memory ranges are flushed in 9861 flink:vkFlushMappedMemoryRanges (public issue 127). 9862 * Specify that <<synchronization-pipeline-stages, Pipeline Stages>> are a 9863 list of tasks that each command performs, rather than necessarily being 9864 discrete pieces of hardware that one task flows through. Add a 9865 "`synchronization command`" pipeline type which all synchronization 9866 command execute (it is just TOP + BOTTOM), with an explanatory note 9867 (public issue 554). 9868 9869Internal Issues: 9870 9871 * Regenerate all images used in the spec in Inkscape with a consistent 9872 look-and-feel, and adjust image size attributes so they're all legible, 9873 and not too large with respect to the spec body text (internal issue 9874 701). 9875 * Document in the <<extensions,extensions>> appendix and in the style 9876 guide that `KHX` extensions are no longer supported or used in the 9877 Vulkan 1.1 timeframe (internal issue 714). 9878 * Remove the leftover equations_temp directory after PDF build completes 9879 (internal issue 925). 9880 * Update the <<credits, Credits (Informative)>> appendix to include 9881 contributors to Vulkan 1.1, and to list them according to the API 9882 version(s) they contributed to (internal issue 987). 9883 * Add a NOTE to the introduction explaining that interfaces defined by 9884 extensions which were promoted to Vulkan 1.1 are now expressed as 9885 aliases of the Vulkan 1.1 type (internal issue 991). 9886 * Instrument spec source conditionals so spec can be built with 1.1 9887 features, extensions promoted to 1.1, or both (internal issues 992, 9888 998). 9889 * Modify the XML schema and tools to support explicit aliasing of types, 9890 structures, and commands, and use this to express the promotion of 1.0 9891 extensions to 1.1 core features, by making the extension interfaces 9892 aliases of the core features they were promoted to. Mark up promoted 9893 interfaces to allow still generating 1.0 + extension specifications 9894 (internal issue 991). 9895 * Platform names, along with corresponding preprocessor symbols to enable 9896 extensions specific to those platforms, are now reserved in vk.xml using 9897 the <platform> tag. Update the registry schema and schema specification 9898 to match (internal issue 1011). 9899 * Updated the <<textures-texel-replacement, Texel Replacement>> section to 9900 clarify that reads from invalid texels for image resources result in 9901 undefined values (internal issue 1014). 9902 * Modify description of patch version so it continues to increment across 9903 minor version changes (internal issue 1033). 9904 * Clarify and unify language describing physical device-level core and 9905 extension functionality in the <<fundamentals-validusage-extensions, 9906 Valid Usage for Extensions>>, <<fundamentals-validusage-versions, Valid 9907 Usage for Newer Core Versions>>, <<initialization-functionpointers 9908 Command Function Pointers>>, <<initialization-phys-dev-extensions, 9909 Extending Physical Device From Device Extensions>> 9910 <<extended-functionality-instance-extensions-and-devices, Instance 9911 Extensions and Device Extensions>> sections and for 9912 flink:vkGetPhysicalDeviceImageFormatProperties2. This documents that 9913 instance-level functionality is tied to the loader, and independent of 9914 the ICD; physical device-level functionality is tied to the ICD, and 9915 associated with device extensions; physical devices are treated more 9916 uniformly between core and extensions; and instance and physical 9917 versions can be different (internal issue 1048). 9918 * Updated the <<commandbuffers-lifecycle, Command Buffer Lifecycle>> 9919 section to clarify the ability for pending command buffers to transition 9920 to the invalid state after submission, and add a command buffer 9921 lifecycle diagram (internal issue 1050). 9922 * Clarify that some flink:VkDescriptorUpdateTemplateCreateInfo parameters 9923 are ignored when push descriptors are not supported (internal issue 9924 1054). 9925 * Specify that flink:vkCreateImage will return an error if the image is 9926 too large, in a NOTE in the slink:VkImageFormatProperties description 9927 (internal issue 1078). 9928 * Remove near-duplicate NOTEs about when to query function pointers 9929 dynamically in the <<initialization, Initialization>> chapter and 9930 replace by extending the NOTE in the <<fundamentals-abi, Application 9931 Binary Interface>> section (internal issue 1085). 9932 * Restore missing references to "`Sparse Resource Features`" in the 9933 flink:VkBufferCreateFlagBits description (internal issue 1086). 9934 * Tidy up definitions of descriptor types in the `GL_KHR_vulkan_glsl` 9935 specification, the <<descriptorsets, Resource Descriptors>> section and 9936 its subsections, and the <<interfaces-resources-descset, Descriptor Set 9937 Interface>> for consistency, reduction of duplicate information, and 9938 removal of GLSL correspondence/examples (internal issue 1090). 9939 * Correctly describe code:PrimitiveId as an Input for tessellation control 9940 and evaluation shaders, not an Output (internal issue 1109). 9941 * Relax the requirements on chroma offsets for nearest filtering in 9942 <<textures-implict-reconstruction, Implicit Reconstruction>> (internal 9943 issue 1116). 9944 9945Other Issues: 9946 9947 * Clarify the intended relationship between specification language and 9948 certain terms defined in the Khronos Intellectual Property Rights 9949 policy. Specific changes include: 9950 ** Rewrote IP/Copyright preamble and introduction to better agree with 9951 normative language both as laid out in the introduction, and the 9952 Khronos IPR policy. 9953 ** Added notion of fully informative sections, which are now tagged with 9954 "`(Informative)`" in their titles. 9955 ** Removed non-normative uses of the phrase "`not required`" 9956 ** Clarified the distinction between terms "`optional`" and "`not 9957 required:`" as they relate to the IPR Policy, and updated specification 9958 text to use terms consistent with the intent. 9959 ** Reduced additions to RFC 2119, and ensured the specification agreed 9960 with the leaner language. 9961 ** Removed the terms "`hardware`", "`software`", "`CPU`", and "`GPU`" from 9962 normative text. 9963 ** Moved several paragraphs that should not have been normative to 9964 informative notes. 9965 ** Clarified a number of definitions in the Glossary. 9966 ** Updated the document writing guide to match new terminology changes. 9967 * Explicitly state in the <<fundamentals-objectmodel-lifetime-acquire, 9968 application memory lifetime>> language that for objects other than 9969 descriptor sets, a slink:VkDescriptorSetLayout object used in the 9970 creation of another object (such as slink:VkPipelineLayout or 9971 slink:VkDescriptorUpdateTemplateKHR) is only in use during the creation 9972 of that object and can be safely destroyed afterwards. 9973 * Updated the <<textures-scale-factor, Scale Factor Operation>> section to 9974 use the ratio of anisotropy, rather than the integer sample rate, to 9975 perform the LOD calculation. The spec still allows use of the sample 9976 rate as the value used to calculate the LOD, but no longer requires it. 9977 * Update `vulkan_ext.c` to include all platform-related definitions from 9978 the Vulkan platform headers, following the split of the headers into 9979 platform-specific and non-platform-specific files. 9980 * Fix bogus anchor name in the <<commandbuffers, Command Buffers>> chapter 9981 which accidentally duplicated an anchor in the pipelines chapter. There 9982 were no reference to this anchor, fortunately. 9983 * Add valid usage statement for slink:VkWriteDescriptorSet and 9984 slink:VkCopyDescriptorSet requiring that the slink:VkDescriptorSetLayout 9985 used to allocate the source and destination sets must not have been 9986 destroyed at the time flink:vkUpdateDescriptorSets is called. 9987 * Document mapping of subgroup barrier functions to SPIR-V, and clarify a 9988 place where subgroupBarrier sounds like it is execution-only in the 9989 standalone `GL_KHR_shader_subgroup` specification. 9990 * Use an HTML stylesheet derived from the Asciidoctor `colony` theme, with 9991 the default Arial font family replaced by the sans-serif Noto font 9992 family. 9993 * Numerous minor updates to README.adoc, build scripts, Makefiles, and 9994 registry and style guide specifications to support Vulkan 1.1 outputs, 9995 use them as defaults, and remove mention of `KHX` extensions, which are 9996 no longer supported. 9997 9998 9999New Extensions: 10000 10001 * `VK_EXT_vertex_attrib_divisor` 10002 10003----------------------------------------------------- 10004 10005Change log for February 19, 2018 Vulkan 1.0.69 spec update: 10006 10007 * Bump API patch number and header version number to 69 for this update. 10008 10009GitHub Issues: 10010 10011 * Clean up description of synchronization for flink:vkAcquireNextImageKHR 10012 (public issue 626). 10013 * Move valid usage statements requiring offset and extent to respect image 10014 transfer granularity requirements of the queue family they are submitted 10015 against from slink:VkImageCopy and slink:VkBufferImageCopy to the 10016 corresponding flink:vkCmdCopyImage, flink:vkCmdCopyBufferToImage, and 10017 flink:vkCmdCopyImageToBuffer commands, where are relevant information is 10018 known (public issue 654). 10019 * Clarify that flink:vkGetDeviceProcAddr only supports device-level 10020 commands (public issue 655). 10021 10022Internal Issues: 10023 10024 * Associate each elink:VkDescriptorType with a type of descriptor, and 10025 link to descriptions of those types (internal issue 860). 10026 * Rework valid usage extraction script to better utilize and respond to 10027 spec markup, and fix some spec markup accordingly (internal issues 846, 10028 909, 945). 10029 * Rephrase flink:vkCmdPushConstants valid usage to allow overlapping push 10030 constant ranges in different shader stages (internal issue 1103). 10031 * Fix problem with diff_html target in extension.rb (internal issue 1104). 10032 * Modify valid usage statements for slink:VkClearDepthStencilValue, 10033 slink:VkGraphicsPipelineCreateInfo, slink:VkViewport, and 10034 flink:vkCmdSetDepthBounds, and the description of vkCmdSetDepthBias, to 10035 clarify that clamping is applied if and only if the 10036 `VK_EXT_depth_range_unrestricted` is not enabled (internal issue 1124), 10037 in versions of the specification built with that extension included. 10038 * Resolve contradictions and use of undefined "`per-sample shading`" term 10039 in the <<primsrast-sampleshading, Sample Shading>> and 10040 <<shaders-fragment-execution, Fragment Shader Execution>> sections; for 10041 the <<features-features-sampleRateShading, sampleRateShading feature>>; 10042 for code:FragCoord, code:SampleId, and code:SamplePosition; and for 10043 slink:sname:VkPipelineMultisampleStateCreateInfo (internal issue 1134). 10044 * Clarify the meaning of the ptext:maxDescriptorSet* limits in footnote 8 10045 of the <<features-limits-required,Required Limits>> table (internal 10046 issue 1139). 10047 * Fix broken NOTE markup in slink:VkSamplerCreateInfo.txt (internal issue 10048 1140). 10049 * Remove extend comparison language from valid usage statement for 10050 slink:VkImageCreateInfo, turning it into a simple validation of 10051 pname:mipLevels against pname:maxMipLevels (internal issue 1151). 10052 * Update valid usage statements for slink:VkImageCopy when the 10053 `VK_KHR_maintenance1` extension is enabled to allow multi-slice 2D <-> 10054 3D copies when the pnaem:extent.depth parameter specifies the number of 10055 layers being copied, and matches the 10056 slink:VkImageSubresourceLayers.layerCount of the 2D image (internal 10057 issue 1152). 10058 * Rephrase memory / control barrier rules in the 10059 <<spirvenv-module-validation, Validation Rules within a Module>> section 10060 to avoid "`not use none`", which could be misconstrued to allow no 10061 synchronization semantics, and only storage class semantics (internal 10062 issue 1154). 10063 10064Other Issues: 10065 10066 * Move GLSL extension specifications to the KhronosGroup/GLSL repository 10067 on GitHub. 10068 * Add missing description of ename:VK_FILTER_CUBIC_IMG enum to 10069 slink:VkFilter. 10070 * Update description of code:PrimitiveId in the 10071 <<interfaces-builtin-variables,Built-In Variables>> section to clarify 10072 its behavior. 10073 * Disallow disjoint images from being used with dedicated-memory images in 10074 slink:VkMemoryDedicatedAllocateInfoKHR. 10075 * Update README to suggest older versions of "mathematical" and 10076 "ruby-gems" packages for use on Cygwin. 10077 * Fix typos 10078 10079New Extensions: 10080 10081 * `VK_AMD_buffer_marker` 10082 10083----------------------------------------------------- 10084 10085Change log for January 15, 2018 Vulkan 1.0.68 spec update: 10086 10087 * Bump API patch number and header version number to 68 for this update. 10088 10089GitHub Issues: 10090 10091 * Added more details in the 10092 <<extended-functionality-extensions-compatibility, Extension 10093 Compatibility>> section, allowing explicit incompatibilities, and 10094 simplify corresponding language in the style guide, which now defers to 10095 the API Specification on this point (public issue 638). 10096 * Fix typo in description of slink:VkCommandBufferLevel::pname:level 10097 (public issue 651). 10098 * Only include extension-dependent valid usage statement for 10099 slink:VkImageSubresourceRange, and note that the extension names for 10100 header files described in the <<boilerplate-wsi-header, Window 10101 System-Specific Header Control>> section are only valid links, when the 10102 specification being viewed is built with the corresponding extensions 10103 enabled (public issue 652). 10104 10105Internal Issues: 10106 10107 * Add language to elink:VkResult specifying that when commands return an 10108 error, output parameter contents are undefined instead of unmodified 10109 (except for pname:sType and pname:pNext). Note that this is a behavior 10110 change. Add notes calling out slink:VkImageFormatProperties as an 10111 exception (internal issue 1118). 10112 * Add "`general-purpose`" to the style guide, and correct existing uses of 10113 "`general purpose`" as an adjective (internal issue 1121). 10114 * Add the ename:VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT token 10115 for the `VK_EXT_validation_cache` extension, following the same naming 10116 pattern as other tokens in the extension, but keep the old 10117 ename:VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT token around for 10118 backwards compatibility (internal issue 1126). 10119 10120Other Issues: 10121 10122 * Specify that flink:vkCmdSetDiscardRectangleEXT does not affect copies or 10123 clears, matching existing language for the scissor rectangle test. 10124 * Move the <<boilerplate-sType, pname:sType>> definition from the 10125 boilerplate appendix to the Fundamentals chapter, putting it together 10126 with the valid usage of pname:sType rather than having the definition 10127 split across two places. 10128 * Inline all of the etext:Vk*Flags definitions, moving each one from the 10129 boilerplate appendix to appear either after the corresponding 10130 etext:Vk*FlagBits value if one is defined, or after the first structure 10131 that includes them if not. 10132 10133----------------------------------------------------- 10134 10135Change log for January 5, 2018 Vulkan 1.0.67 spec update: 10136 10137 * Bump API patch number and header version number to 67 for this update. 10138 * Update copyright dates to 2018 10139 10140GitHub Issues: 10141 10142 * Fix texture lookup functions in `GL_KHR_vulkan_glsl` specification 10143 (public pull request 363). 10144 * Clarify the state waited semaphores are left in when a call to 10145 flink:vkQueuePresentKHR fails (public issue 572). 10146 * Cleanup descriptions of slink:VkObjectTablePushConstantEntryNVX and 10147 slink:VkObjectTableDescriptorSetEntryNVX (public issue 583) 10148 * Remove redundant flink:vkCmdSetDiscardRectangleEXT valid usage 10149 statements (public pull 586). 10150 * Make dynamic state array length valid usage statements implicit for 10151 flink:vkCmdSetViewportWScalingNV, flink:vkCmdSetDiscardRectangleEXT, and 10152 flink:vkCmdSetViewport (public pull 589). 10153 * Clarify meaning of window extent (0,0) in slink:VkSwapchainKHR for the 10154 Windows and X11 platforms, in their respective extensions (public issue 10155 590). 10156 * Allow flink:vkGetPastPresentationTimingGOOGLE to return 10157 ename:VK_INCOMPLETE (public issue 604). 10158 * Add synchronization valid usage statements to flink:vkAcquireNextImage 10159 (public pull 611). 10160 * Fix some broken external links and internal xrefs (public pull 613). 10161 * Clean up slink:VkViewport valid usage statements in the presence or 10162 absence of relevant extensions (public pull 623). 10163 * Remove 10164 ename:VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR 10165 token from VK_KHR_maintenance2 from the non-extension VU path for 10166 slink:VkGraphicsPipelineCreateInfo (public issue 628). 10167 * Miscellaneous minor markup fixes - extension name strings (public pull 10168 631), Notes (pull 633), queue names emitted by generator scripts (pull 10169 634), block formatting in slink:VkDescriptorUpdateTemplateEntryKHR (pull 10170 635), ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG (pull 10171 641), quotes and apostrophes (pull 643), 10172 * Miscellaneous minor grammar fixes (public pull 644). 10173 * Fix markup macros so usage like ptext:*Src* works (public pull 647). 10174 10175Internal Issues: 10176 10177 * Clarify in the `VK_KHR_surface` and `VK_KHR_swapchain` extensions that 10178 parameter combinations which aren't supported for normal images are also 10179 unsupported for presentable images, even if the parameter values are 10180 individually supported as reported by the surface capability queries 10181 (internal issue 1029). 10182 * Fixed XML typo in the valid value field of the pname:sType member of 10183 slink:VkPhysicalDeviceExternalMemoryHostPropertiesEXT (internal issue 10184 1100). 10185 10186Other Issues: 10187 10188 * Add memory semantics validity rules to the <<spirvenv-module-validation, 10189 Validation Rules within a Module>> section of the SPIR-V environment 10190 appendix, and specify that sequentiality consistency is not supported. 10191 This forbids certain cases like "`Load+Release`" that we don't expect to 10192 ever be meaningful. 10193 * Document mapping of OpenGL Shading Language barriers to SPIR-V scope and 10194 semantics in the `GL_KHR_vulkan_glsl` specification. 10195 10196New Extensions: 10197 10198 * `VK_EXT_conservative_rasterization` 10199 10200----------------------------------------------------- 10201 10202Change log for November 27, 2017 Vulkan 1.0.66 spec update: 10203 10204 * Bump API patch number and header version number to 66 for this update. 10205 10206GitHub Issues: 10207 10208 * Clarified how and when ename:VK_ERROR_TOO_MANY_OBJECTS is generated in 10209 flink:vkAllocate Memory, and remove incorrect valid usage statement 10210 about exceeding the API limit (public issue 356). 10211 * Minor clarification of the description of 10212 flink:vkUpdateDescriptorSetWithTemplateKHR::pname:descriptorUpdateTemplate 10213 (public issue 564). 10214 * Minor fixes for flink:vkCmdSetViewportWScalingNV (public pull request 10215 588). 10216 * Fix random name markup issues (public pull request 603). 10217 * Fix code:BuiltIn decoration typo in the <<fxvertex-attrib, Vertex 10218 Attributes>> section (public pull request 606). 10219 * Fix synchronization language following the definition of 10220 flink:vkAcquireNextImageKHR (public issue 607). 10221 * Restore descriptions of several commands and structures missing from the 10222 generated spec due to a mistyped Asciidoctor conditional (public issue 10223 612). 10224 * Fix 1.0.41 changelog to refer to public issues 403/404 (public issue 10225 618). 10226 10227Internal Issues: 10228 10229 * Refactor valid usage statements with internal conditionals in 10230 `copies.txt`, `pipelines.txt`, `renderpass.txt`, and `resources.txt` so 10231 each branch of the conditional appears as a standalone statement which 10232 can contain a separate VUID. This should have no impact on the generated 10233 specs, but is necessary given the present state of the VU extractor and 10234 the validation layer code that consumes them (internal issue 1043). 10235 * Fix VkQueueGlobalPriorityEXT enum values missing _EXT suffix (internal 10236 issue 1045). 10237 * Clarified initial ownership of resources bound to shared memory objects, 10238 (internal issue 1068). 10239 * Fix duplicated valid usage ID tag for flink:vkCmdCopyImage, and make the 10240 required layouts include ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL in 10241 both cases (internal issue 1084). 10242 10243Other Issues: 10244 10245 * Remove the noise functions from GLSL for SPIR-V for Vulkan in the 10246 `GL_KHR_vulkan_glsl.txt` extension. 10247 10248New Extensions: 10249 10250 * `VK_EXT_external_memory_host` 10251 * `VK_EXT_external_memory_dma_buf` 10252 * `VK_EXT_queue_family_foreign` 10253 10254----------------------------------------------------- 10255 10256Change log for October 27, 2017 Vulkan 1.0.65 spec update: 10257 10258 * Bump API patch number and header version number to 65 for this update. 10259 10260GitHub Issues: 10261 10262 * Replaced inaccurate "`pixel`" with "`texel`" or "`compressed texel 10263 block`" as appropriate in the <<sparsememory, Sparse Resources>> chapter 10264 (public issue 86). 10265 * Attempt to clarify security/integrity guarantees in the 10266 <<fundamentals-errors, Errors>> section (public issue 147). 10267 * Update the <<memory-device,Device Memory>> section with clarifications 10268 and markup fixes (public pull request 194). 10269 * Fix typo VkDeviceCreateInfo -> slink:VkDebugMarkerObjectNameInfoEXT in 10270 sample code for `VK_EXT_debug_marker` extension (public pull request 10271 227). 10272 * Clarified slink:VkFramebufferCreateInfo language regarding concurrent 10273 use of attachment resources during a render pass instance (public issue 10274 299). 10275 * Added overlap rules for destination regions in <<copies,copy commands>>. 10276 Also unified the sparse and non-sparse source-destination overlap rules, 10277 since the non-sparse rules were technically inaccurate in the face of 10278 aliasing in flink:vkBindMemory2 - the new rules are true regardless 10279 (public issue 317). 10280 * Clarified the <<features-features-samplerAnisotropy, 10281 pname:samplerAnisotropy feature>> to only affect the 10282 slink:VkSamplerCreateInfo::pname:anisotropyEnable value, and that 10283 pname:maxAnisotropy is ignored when pname:anisotropyEnable is VK_FALSE 10284 (public issue 503). 10285 * Clarify pointer valid usage statements to use "`valid pointer to valid 10286 _object_`" terminology and update the 10287 <<fundamentals-validusage-pointers,Valid Usage for Pointers>> section 10288 accordingly (public pull request 547). 10289 * Some operations that use integer coordinates can also accept a LOD to 10290 sample from. Add a description of that selection and the validity 10291 conditions in the new <<textures-integer-coordinate-operations, Integer 10292 Texel Coordinate Operations>> section (public issue 548). 10293 * Update stext:VkImageSubresource* valid usage statements (public pull 10294 request 550). 10295 * Added text tying ename:VK_OUT_OF_POOL_MEMORY error for 10296 flink:vkAllocateDescriptorSets to the number of descriptor types in the 10297 allocating pool. Removed redundant "`length`" text about number of 10298 descriptors returned (public issue 582). 10299 * Update slink:VkSwapchainCreateInfoKHR descriptions (public pull request 10300 585). 10301 * Update slink:VkPipelineViewportWScalingStateCreateInfoNV and related 10302 structures' valid usage statements (public pull request 587). 10303 * Change some dates to conform to ISO 8601 as specified in the style guide 10304 (public pull request 601). 10305 * Fix some math markup problems and be more consistent in use of asciidoc 10306 math markup (public pull request 602). 10307 10308Internal Issues: 10309 10310 * Clarified that attribute reads from incomplete vertex buffer elements 10311 are considered out of bounds accesses, in the 10312 slink:VkPhysicalDeviceFeatures and flink:vkCmdBindVertexBuffers.txt 10313 sections (internal issue 842). 10314 10315----------------------------------------------------- 10316 10317Change log for October 20, 2017 Vulkan 1.0.64 spec update: 10318 10319 * Bump API patch number and header version number to 64 for this update. 10320 10321GitHub Issues: 10322 10323 * Add chapter name to the PDF page footer (public pull request 458). 10324 * Fix several mistaken references to the nonexistent etext:VK_DEVICE_LOST 10325 status to etext:VK_ERROR_DEVICE_LOST (public pull request 502). 10326 * Fix description of the tlink:PFN_vkDebugReportCallbackEXT debug report 10327 callback function pointer to match the validation layer behavior (public 10328 issue 534). 10329 * Document experimental KHX extensions and alternate vendor author IDs 10330 also ending in X in more detail in the <<extensions, Layers & 10331 Extensions>> appendix, the extensions section of the style guide, and 10332 the registry schema description document (public issues 536, 580). 10333 * Fix references to ptext:pDepthStencil to properly refer to 10334 pname:pDepthStencilState or pname:pRasterizationState as appropriate in 10335 the slink:VkGraphicsPipelineCreateInfo description (public issue 542). 10336 * Fix wrong parameter name in slink:VkPipelineMultisampleStateCreateInfo 10337 valid usage (public pull request 571). 10338 10339Internal Issues: 10340 10341 * Update the style guide to describe how to write LaTeX math expressions 10342 in table cells (internal issue 908). 10343 * Define how framebuffer-local dependencies work between subpasses with 10344 the same or different numbers of samples, in the 10345 slink:VkSubpassDescription and <<synchronization-framebuffer-regions, 10346 Framebuffer Region Dependencies>> sections. This clarifies which samples 10347 in an input attachment you are allowed to access after a 10348 framebuffer-local dependency (internal issue 915). 10349 * Specify which storage classes can have an initializer in the 10350 <<spirvenv-module-validation, Validation Rules within a Module>> section 10351 (internal issue 1023). 10352 * Use "LOD" consistently for "level-of-detail", to eliminate spelling 10353 inconsistencies. The term is already standardized in the Glossary 10354 (internal issue 1027). 10355 10356Other Issues: 10357 10358 * Fix false positives in Makefile dependencies when rules fail, by 10359 deleting partially-made targets. 10360 10361New Extensions: 10362 10363 * `VK_AMD_shader_info` 10364 10365----------------------------------------------------- 10366 10367Change log for October 13, 2017 Vulkan 1.0.63 spec update: 10368 10369 * Bump API patch number and header version number to 63 for this update. 10370 10371GitHub Issues: 10372 10373 * Add missing valid usage statements for ptext:maxDescriptorSets*, 10374 ptext:maxPerStageDescriptorInputAttachments, and 10375 ptext:maxPerStageResources to slink:VkPipelineLayoutCreateInfo.txt, 10376 flink:VkComputePipelineCreateInfo, and 10377 flink:VkGraphicsPipelineCreateInfo (public issue 546). 10378 * Fix typos in ftext:vkCmdDraw*AMD descriptions (public pull request 549). 10379 * Fixed flink:vkCmdWriteTimestamp so it is not unnecessarily restricted to 10380 queues supporting graphics or compute operations (public issue 558). 10381 * Improvements to valid usage generator for output `*Flags` pointer 10382 parameters and for some `void *` parameters (public pull requests 560, 10383 562). 10384 * Document `altlen` attribute in XML schema as valid C99 syntax and tweak 10385 `vk.xml` to match (public pull request 566). 10386 * Clarify when pname:fence is signaled by flink:vkQueueSubmit in a more 10387 obvious place (public issue 577). 10388 10389Internal Issues: 10390 10391 * Specify a list of supported SPIR-V Storage Classes in the 10392 <<spirvenv-module-validation, Validation Rules within a Module>> 10393 appendix (internal SPIR-V issue 166). 10394 * Relax the shared semaphore wait timeout requirement in the 10395 <<synchronization-semaphores-importing, Importing Semaphore Payloads>> 10396 section (internal issue 820). 10397 * Update the <<textures-image-level-selection, Image Level(s) Selection>> 10398 equations so that the parameters returned by the level-of-detail query 10399 appear explicitly, also fixing the issue that linear filtering would 10400 select a level below the base level for magnification (internal issue 10401 926). 10402 * Disallow creation of a swapchain with zero pname:imageExtent in 10403 slink:VkSurfaceCapabilitiesKHR and slink:VkSwapchainCreateInfoKHR 10404 (internal issue 1020). 10405 10406Other Issues: 10407 10408 * Clarify in <<textures-operation-validation,Image View Validation>> that 10409 the layout of subresources in an image view must have a layout that 10410 matches that written into the descriptor, and that this section is about 10411 validating image views, not images. 10412 10413New Extensions: 10414 10415 * `VK_EXT_global_priority` 10416 10417----------------------------------------------------- 10418 10419Change log for October 6, 2017 Vulkan 1.0.62 spec update: 10420 10421 * Bump API patch number and header version number to 62 for this update. 10422 10423GitHub Issues: 10424 10425 * Move asciidoc conditionals for `VK_KHR_maintenance1` in 10426 slink:VkDescriptorSetAllocateInfo so valid usage statements for 10427 `VK_KHR_push_descriptor` aren't accidentally removed when the first 10428 extension isn't enabled (public issue 573). 10429 10430Internal Issues: 10431 10432 * Specify constraints on concurrent access to fences that share payload in 10433 the <<synchronization-fences-importing, Importing Fence Payloads>> and 10434 <<synchronization-semaphores-waiting-state, Semaphore State Requirements 10435 For Wait Operations>> sections (internal issue 820). 10436 * Define the term "`retired swapchain`", reorganize some swapchain 10437 language, and improve language for pname:oldSwapchain in 10438 flink:VkSwapchainCreateInfoKHR, the <<swapchain-wsi-image-create-info>> 10439 table, flink:vkDestroySwapchainKHR, and flink:vkAcquireNextImage2KHX 10440 (internal issue 869). 10441 * Describe in the <<writing-arrays, Describing Properties of Array 10442 Elements>> section of the style guide how and when to use "`each`" and 10443 "`any`" to refer to properties of array elements, and make those uses in 10444 the specification consistent (internal issue 884). 10445 * Clarified that events cannot be used for cross-queue synchronization in 10446 the <<synchronization-events, Events>> section and for 10447 flink:vkCmdWaitEvents (internal issue 970). 10448 * Add success and error codes to +vk.xml+ for 10449 flink:vkCreateValidationCacheEXT (internal issue 995). 10450 * Clarify aspect mask usage for image memory barriers of multi-plane 10451 images in slink:VkImageSubresourceRange, slink:VkImageMemoryBarrier, and 10452 the <<textures-layout-validation, Layout Validation>> section (internal 10453 issue 996). 10454 10455Other Issues: 10456 10457 * Fixed typo in flink:VkRenderPassSampleLocationsBeginInfoEXT (renamed 10458 field pname:pSubpassSampleLocations to 10459 pname:pPostSubpassSampleLocations). 10460 * Add missing buffer usage requirements for indirect draws in 10461 flink:vkCmdDrawIndirect, flink:vkCmdDrawIndirectCountAMD, 10462 flink:vkCmdDrawIndexedIndirect, and 10463 flink:vkCmdDrawIndexedIndirectCountAMD. 10464 * Modify Makefile to allow specification to build in git "`detached HEAD`" 10465 state. 10466 * Update valid usage ID generation script to allow recursively operating 10467 on all `.txt` files in a specified directory, and move the `startVUID` 10468 tracking information into a separate python file that is automatically 10469 updated by the script. 10470 * Fixed errors in API example code for 10471 flink:vkUpdateDescriptorSetWithTemplateKHR and 10472 flink:vkCmdPushDescriptorSetWithTemplateKHR. 10473 10474New Extensions: 10475 10476 * Add +vk.xml+ entries for pending `VK_ANDROID_native_buffer` extension 10477 (note, this extension is not yet enabled). 10478 * `VK_AMD_shader_image_load_store_lod` 10479 10480----------------------------------------------------- 10481 10482Change log for September 15, 2017 Vulkan 1.0.61 spec update: 10483 10484 * Bump API patch number and header version number to 61 for this update. 10485 10486GitHub Issues: 10487 10488 * Provide alternate length attributes (altlen=) in the XML schema, for 10489 those using length attributes to generate code instead of documentation 10490 (public issue 555). 10491 * Fix erroneous references to `latex:` being used for asciidoc math 10492 markup, rather than `latexmath:` (public pull request 556). 10493 * Add author ID to XML for Kazan software renderer (public pull request 10494 557). 10495 10496Internal Issues: 10497 10498 * Add the <<fundamentals-abi,Application Binary Interface>> section 10499 describing platform ABI requirements and recommendations, add examples 10500 of function and function pointer declarations to the 10501 <<boilerplate-platform-specific-calling-conventions, Platform-Specific 10502 Calling Conventions>> section, and remove related language that existed 10503 elsewhere in the specification (internal issue 64). 10504 * Describe where to document valid usage interactions of chained 10505 structures in the style guide, and fix one case now appearing in 10506 slink:VkBufferCreateInfo instead of the child 10507 slink:VkDedicatedAllocationBufferCreateInfoNV structure (internal issue 10508 715). 10509 * Add example to the style guide of describing enumerated types which are 10510 empty when the spec is built without relevant extensions enabled, and 10511 apply it to existing examples for 10512 elink:VkDescriptorSetLayoutCreateFlagBits and 10513 elink:VkSubpassDescriptionFlagBits (internal issue 864). 10514 * Add a note to the <<fundamentals-validusage-enums, Valid Usage for 10515 Enumerated Types>> section that the special values suffixed with 10516 etext:_BEGIN_RANGE, etext:_END_RANGE, etext:_RANGE_SIZE and 10517 etext:_MAX_ENUM are not part of the API and should: not be used by 10518 applications (internal issue 872). 10519 * Added note to flink:vkCmdUpdateBuffers explaining the performance 10520 penalty for copies done in this way, and why the upper copy limit is 10521 what it is (internal issue 952). 10522 * Update `VK_KHX_device_group` to split some functionality into the new 10523 `VK_KHR_bind_memory2` extension, and rename that functionality (internal 10524 issue 969). 10525 * Remove *Status* fields from extension appendices, since they are by 10526 definition published and complete by the time they reach the public 10527 GitHub repository (internal issue 973). 10528 10529Other Issues: 10530 10531 * Update Data Format specification dependency to version 1.2 and change 10532 references to DF sections accordingly. 10533 * Update XML to make the pname:pAllocator parameter of 10534 flink:vkRegisterDeviceEventEXT and flink:vkRegisterDisplayEventEXT in 10535 the `VK_EXT_display_control` extension as optional. 10536 10537New Extensions: 10538 10539 * `VK_KHR_bind_memory2` 10540 * `VK_KHR_image_format_list` 10541 * `VK_KHR_maintenance2` 10542 * `VK_KHR_sampler_ycbcr_conversion` 10543 10544----------------------------------------------------- 10545 10546Change log for September 5, 2017 Vulkan 1.0.60 spec update: 10547 10548 * Bump API patch number and header version number to 60 for this update. 10549 10550GitHub Issues: 10551 10552 * Document that <<queries-timestamps, Timestamp Queries>> can only be 10553 meaningfully compared when they are written from the same queue (public 10554 issue 216). 10555 * Document that the `<extension>` tag `type` attribute is required for 10556 non-disabled extensions (derived from, but does not close public issue 10557 354). 10558 * Clean up registry schema length attribute descriptions to be consistent 10559 and correct (public issue 555). 10560 10561Internal Issues: 10562 10563 * Replace as much of the hand-written extension appendix metadata as 10564 possible with asciidoc includes generated from corresponding attributes 10565 of +vk.xml+, and enhance the style guide to match. This avoids 10566 inconsistencies between +vk.xml+ and the appendices, and produces a more 10567 uniform style (internal issue 137). 10568 * Remove the generated extDependency.{py,sh} files from the tree and 10569 create them dynamically on demand instead, reducing merge conflicts 10570 (internal issue 713). 10571 * Add a prototype tool for generating in-place difference markup for 10572 sections guarded by asciidoc conditionals, and new syntax for open 10573 blocks to support it (internal issue 833). 10574 * Remove unnecessary restriction of etext:*SYNC_FD_BIT_KHR external handle 10575 types to the same physical device in the 10576 slink:VkPhysicalDeviceIDPropertiesKHR, 10577 flink:VkImportMemoryWin32HandleInfoKHR, 10578 slink:VkImportFenceWin32HandleInfoKHR, slink:VkImportFenceFdInfoKHR, 10579 slink:VkImportSemaphoreWin32HandleInfoKHR, 10580 slink:VkImportSemaphoreFdInfoKHR 10581 <<external-memory-handle-types-compatibility, External memory handle 10582 types compatibility>>, <<external-semaphore-handle-types-compatibility, 10583 External semaphore handle types compatibility>>, and 10584 <<external-fence-handle-types-compatibility, External fence handle types 10585 compatibility>> sections (internal issue 956). 10586 10587Other Issues: 10588 10589 * Remove dependency of +VK_KHX_device_group+ on +VK_KHR_swapchain+ (there 10590 is an interaction, but not a strict dependency), and add a new 10591 `extension` attribute to the `<require` XML tag to allow classifying a 10592 subset of interfaces of an extension as requiring another extension. 10593 Update the registry schema and documentation accordingly. 10594 10595New Extensions: 10596 10597 * `VK_AMD_shader_fragment_mask` (and related `GL_AMD_shader_fragment_mask` 10598 GLSL extension) 10599 * `VK_EXT_sample_locations` 10600 * `VK_EXT_validation_cache` 10601 10602----------------------------------------------------- 10603 10604Change log for August 19, 2017 Vulkan 1.0.59 spec update: 10605 10606 * Bump API patch number and header version number to 59 for this update. 10607 10608GitHub Issues: 10609 10610 * Fix a few missing Implicit Valid Usage statements to indicate that a 10611 common parent of two objects is required (public issue 497). 10612 * Clarify render pass synchronization language for 10613 slink:VkSubpassDependency and <<renderpass,render passes>> (public 10614 issue 531). 10615 * Rename ename:VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT to 10616 ename:VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT for consistency, and 10617 add an alias for backwards compatibility (public issue 539). 10618 10619Internal Issues: 10620 10621 * Add an explanation to the <<interfaces-builtin-variables-layer, 10622 code:Layer>> description explaining that writing to invalid layers 10623 results may or may not result in primitives being processed and fragment 10624 shaders being run, and gives undefined results in the framebuffer 10625 (internal issue 614) 10626 * Add valid usage statement for slink:VkDescriptorSetLayoutBinding 10627 requiring that input attachment descriptor bindings must not use 10628 non-fragment stages (internal issue 933). 10629 10630Other Issues: 10631 10632 * Makes description of pname:loadOp and pname:storeOp easier to read in 10633 the <<renderpass-load-store-ops>> section. 10634 10635New Extensions: 10636 10637 * `VK_EXT_shader_stencil_export` 10638 10639----------------------------------------------------- 10640 10641Change log for August 14, 2017 Vulkan 1.0.58 spec update: 10642 10643 * Bump API patch number and header version number to 58 for this update. 10644 10645GitHub Issues: 10646 10647 * Update the <<interfaces-resources-descset,Descriptor Set Interface>> 10648 section to allow multiple variables with the same descriptor set/binding 10649 decorations, and require that all variables that are statically used 10650 must be consistent with the pipeline layout. Allow 10651 ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER to be used with texture 10652 and sampler variables (public issues 522, 524). 10653 10654Internal Issues: 10655 10656 * Replace networkx package used for extension dependency generation with a 10657 homegrown network dependency traverser (internal issue 713). 10658 * Specify in the <<interfaces-fragmentoutput, Fragment Output Interface>> 10659 section that if a fragment shader writes integers that cannot be 10660 represented in the format of the color attachment, then the result is 10661 undefined (internal issue 893). 10662 * Separate malformed valid usage statement for 10663 slink:VkPipelineRasterizationStateCreateInfo into two (internal issue 10664 918). 10665 * Fix cases where the term 'pNext chain' is incorrectly used in reference 10666 to functions, rather than their parameters. Replace 'pNext list' with 10667 'pNext chain'. Fixed typo in the example code of 10668 +VK_KHR_dedicated_allocation+ (internal issue 944). 10669 * Fix typo in elink:VkExternalSemaphoreHandleTypeFlagBitsKHR enum 10670 descriptions, replacing 10671 etext:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT_KHR with 10672 ename:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR, and make the 10673 description more consistent with 10674 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR (internal issue 950). 10675 10676Other Issues: 10677 10678 * Clarify how pipeline stage masks affect 10679 <<synchronization-pipeline-stages-masks, access and synchronization 10680 scopes>>. 10681 * Clarify that dedicated allocations do not allow aliasing in the 10682 flink:vkBindBufferMemory and flink:vkBindImageMemory valid usage 10683 statements. 10684 * Correct specification of pname:dynamicCount for push_constant token in 10685 slink:VkIndirectCommandsLayoutNVX. 10686 10687New Extensions: 10688 10689 * `VK_EXT_shader_viewport_index_layer` 10690 10691----------------------------------------------------- 10692 10693Change log for August 1, 2017 Vulkan 1.0.57 spec update: 10694 10695 * Bump API patch number and header version number to 57 for this update. 10696 10697GitHub Issues: 10698 10699 * Fix error in description of ename:VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK 10700 block size (public issue 342). 10701 * Update documentation of ename:VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT 10702 to explicitly mention both graphics and compute pipelines (public issue 10703 525). 10704 10705Internal Issues: 10706 10707 * Document that 10708 slink:VkPhysicalDeviceLimits::pname:framebufferColorSampleCounts does 10709 not cover integer formats (internal issue 550). 10710 * Add a note under slink:VkImageViewCreateInfo describing how values meant 10711 for one format can be sanitized when used via another format (internal 10712 issue 927). 10713 * Add valid usage statements to ftext:vkCmd* documenting that image 10714 subresources used as attachments must not be accessed as non-attachments 10715 in a render pass (internal issue 929). 10716 * Remove obsolete 'validextensionstructs' attribute from +vk.xml+, the XML 10717 schema, and the schema documentation (internal issue 946). 10718 10719New Extensions: 10720 10721 * `VK_AMD_mixed_attachment_samples` 10722 * `VK_EXT_post_depth_coverage` 10723 * `VK_KHR_relaxed_block_layout` 10724 10725----------------------------------------------------- 10726 10727Change log for July 21, 2017 Vulkan 1.0.56 spec update: 10728 10729 * Bump API patch number and header version number to 56 for this update. 10730 10731GitHub Issues: 10732 10733 * Add valid usage statements for commands introduced by 10734 `VK_EXT_debug_report` and `VK_EXT_debug_marker` extensions, regarding 10735 the valid pname:object and pname:objectType values (public issue 495). 10736 * Modify `GL_KHR_vulkan_glsl` specification to document that uniform and 10737 buffer block arrays each take only a single binding (public issue 514). 10738 * Add `KHX` author tag to +vk.xml+ (public issue 526). 10739 10740Internal Issues: 10741 10742 * Document use of code: macro for non-Vulkan APIs in the style guide 10743 (internal issue 863). 10744 * Document that reference page open block delimiters must not contain 10745 asciidoc section markup in the style guide (internal issue 898). 10746 * Fix <<spirvenv,SPIR-V appendix>> to say 10747 code:VariablePointersStorageBuffer instead of 10748 code:VariablePointersUniformBufferBlock (internal issue 928). 10749 10750Other Commits: 10751 10752 * Add missing extension structures to dependency attributes in +vk.xml+. 10753 10754New Extensions: 10755 10756 * `VK_EXT_depth_range_unrestricted` 10757 10758----------------------------------------------------- 10759 10760Change log for July 15, 2017 Vulkan 1.0.55 spec update: 10761 10762 * Bump API patch number and header version number to 55 for this update. 10763 10764GitHub Issues: 10765 10766 * Removed unintended optional parameter in +vk.xml+ from the 10767 pname:pWaitSemaphores member of slink:VkPresentInfoKHR, which resulted 10768 in the generation of an incorrect implicit valid usage clause allowing 10769 pname:pWaitSemaphores to be NULL even when pname:waitSemaphoreCount is 10770 non-zero (public issue 491). 10771 * Add missing attribute to +vk.xml+ documenting that 10772 slink:VkSwapchainCounterCreateInfoEXT extends 10773 slink:VkSwapchainCreateInfo (public issue 510). 10774 * Add const qualifier for some `VK_EXT_debug_market` extension command 10775 parameters that were missing it (public issue 513). 10776 * Fix definition of q and level~base~ in 10777 <<textures-image-level-selection,Image Level(s) Selection>> (public 10778 issue 515). 10779 * Clarify lifetime requirement for slink:VkRenderPass objects used in 10780 object creation (public issue 516). 10781 * Fix link to floating/normalized fixed-point conversion from 10782 <<interfaces-fragmentoutput,Fragment Output Interface>> (public issue 10783 521). 10784 10785Internal Issues: 10786 10787 * Update the style guide to include the general structure of a Vulkan 10788 command name, the specific rule for using "`Get`" vs. "`Enumerate`" in 10789 names, and a table of verbs commonly used in command names (spinoff of 10790 internal issue 753). 10791 * Clarified the behavior of automatic layout transitions in case of 10792 attachment views that are 2D or 2D array views of 3D images. In 10793 addition, restructured the valid usage clauses corresponding to the 10794 members of the slink:VkImageSubresourceRange structure and added missing 10795 valid usage clauses for its pname:baseMipLevel and pname:baseArrayLayer 10796 members (internal issues 803, 849). 10797 * Modify `GL_KHR_vulkan_glsl` specification to allow explicit std430 on a 10798 push_constant declaration (internal issue 919). 10799 10800Other Commits: 10801 10802 * Modify <<synchronization-framebuffer-regions, Framebuffer Region 10803 Dependencies>> to use synchronization scope terminology. 10804 * Add ename:VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT to the 10805 `VK_EXT_swapchain_colorspace` extension. 10806 * Replace XML comments with `comment` attributes and/or tags, to enable 10807 tools which transform the XML without loss of information. 10808 * Replace `validextensionstructs` with `structextends`, which is tagged in 10809 the child structure instead of the parent. This makes it slightly 10810 simpler to add new structs to the XML, causes fewer merge conflicts, and 10811 the information is kept localized to the extension structures where it 10812 belongs. The old `validextensionstructs` attributes will be retained 10813 until we're certain this doesn't cause problems with known consumers of 10814 +vk.xml+. 10815 10816----------------------------------------------------- 10817 10818Change log for July 13, 2017 Vulkan 1.0.54 spec update: 10819 10820 * Bump API patch number and header version number to 54 for this update. 10821 10822GitHub Issues: 10823 10824Internal Issues: 10825 10826 * Fix tessellation domain to have an upper-left origin in the 10827 <<img-tessellation-topology-ul, tessellation toplogy image>> and related 10828 language. CTS and all implementations were already doing this, it was 10829 just a documentation bug that it was flipped to lower-left (internal 10830 issue 603). 10831 * Add a section to the style guide describing how VUID tags are changed 10832 and removed when the corresponding Valid Usage statements are modified 10833 (internal issue 829). 10834 * Add explicit Valid Usage statement to 10835 slink:VkPipelineDynamicStateCreateInfo to require that members of 10836 pname:pDynamicStates must be unique (internal issue 851). 10837 10838New Extensions: 10839 10840 * `VK_KHR_16bit_storage` 10841 * `VK_KHR_dedicated_allocation` 10842 * `VK_KHR_external_fence` 10843 * `VK_KHR_external_fence_capabilities` 10844 * `VK_KHR_external_fence_fd` 10845 * `VK_KHR_external_fence_win32` 10846 * `VK_KHR_get_memory_requirements2` 10847 * `VK_KHR_storage_buffer_storage_class` 10848 * `VK_KHR_variable_pointers` 10849 10850Extensions Promoted From KHX To KHR Status: 10851 10852 * `VK_KHR_external_memory` 10853 * `VK_KHR_external_memory_capabilities` 10854 * `VK_KHR_external_memory_fd` 10855 * `VK_KHR_external_memory_win32` 10856 * `VK_KHR_external_semaphore` 10857 * `VK_KHR_external_semaphore_capabilities` 10858 * `VK_KHR_external_semaphore_fd` 10859 * `VK_KHR_external_semaphore_win32` 10860 * `VK_KHR_win32_keyed_mutex` 10861 10862----------------------------------------------------- 10863 10864Change log for June 24, 2017 Vulkan 1.0.53 spec update: 10865 10866 * Bump API patch number and header version number to 53 for this update. 10867 10868GitHub Issues: 10869 10870Internal Issues: 10871 10872 * Clarify mappings of coordinates for mutable, compatible image views in 10873 slink:VkImageViewCreateInfo (internal issue 815). 10874 * Make ename:VK_BIND_SFR_BIT require a logical device with multiple 10875 physical devices, so that standard sparse image block dimensions are 10876 only required on systems that support multi-GPU (internal issue 835). 10877 * Convert all files from use of // refBegin .. // refEnd comments to 10878 delimit ref pages, to use of open blocks, and update style guide 10879 accordingly (internal issue 839). 10880 * Add valid usage for slink:VkWriteDescriptorSet when performing updates 10881 to a ename:VK_STORAGE_IMAGE descriptor with layout 10882 ename:VK_IMAGE_LAYOUT_GENERAL. 10883 * Add a hack to the validity generator script to support an odd 10884 interaction between flink:vkCmdFillBuffer and an extension (internal 10885 issue 853). 10886 * Remove redundant text describing slink:VkBufferCreateInfo::pname:usage, 10887 which was already covered by implicit valid usage (internal issue 854). 10888 * Update implicit validity generator script to properly handle the 10889 pname:sType and pname:pNext members of "returnedonly" structures 10890 (internal issue 874). 10891 * Note that slink:VkApplicationInfo::pname:pApplicationName & 10892 slink:VkApplicationInfo::pname:pEngineName are optional, and add missing 10893 implicit valid usage statements for flink:vkDestroyInstance. 10894 * Added missing valid usage for flink:vkCmdWriteTimestamp to require a 10895 timestamp query pool. 10896 * Simplify and/or split "`non-atomic`" valid usage statements. 10897 10898New Extensions: 10899 10900 * `VK_AMD_gpu_shader_int16` 10901 * `VK_EXT_blend_operation_advanced` 10902 * `VK_EXT_sampler_filter_minmax` 10903 * `VK_NV_framebuffer_mixed_samples` 10904 10905----------------------------------------------------- 10906 10907Change log for June 13, 2017 Vulkan 1.0.52 spec update: 10908 10909 * Bump API patch number and header version number to 52 for this update. 10910 10911GitHub Issues: 10912 10913Internal Issues: 10914 10915 * Clarify behavior when non-coherent memory has 10916 <<memory-device-unmap-does-not-flush, not been flushed before being 10917 unmapped>> (internal issue 819). 10918 * Fix description of code:WorkgroupSize builtin to note it decorates an 10919 object, not a variable (internal issue 836). 10920 * Fix asciidoc attributes so that trailing '{plus}' symbols in [eq] style 10921 equations are rendered properly (internal issue 845). 10922 * Add language to the "`Extension Handles, Objects, Enums, and Typedefs`" 10923 section of the Procedures and Conventions document stating that any new 10924 handle type requires a corresponding entry in the elink:VkObjectType 10925 enumerated type (internal issue 856). 10926 * Update style guide to use slink macro for Vulkan handle type names, and 10927 define narrow conditions under which to use the *name and *text macros 10928 instead of *link (internal issue 886). 10929 * Add a dependency of the <<VK_KHX_device_group,VK_KHX_device_group>> 10930 extension on VK_KHX_device_group_creation to +vk.xml+ and the extension 10931 appendix. 10932 * Change the copyright on Vulkan specification asciidoc *source* files to 10933 CC-BY 4.0, and update the proprietary Khronos copyright applied to the 10934 generated *output* formats (internal issue 327). This enables broader 10935 reuse and modification of the Vulkan specification sources, while not 10936 affecting the Reciprocal IP License between Vulkan Adopters and Working 10937 Group Members. 10938 10939New Extensions: 10940 10941 * `VK_NV_fill_rectangle` 10942 * `VK_NV_fragment_coverage_to_color` 10943 10944----------------------------------------------------- 10945 10946Change log for June 4, 2017 Vulkan 1.0.51 spec update: 10947 10948 * Bump API patch number and header version number to 51 for this update. 10949 10950GitHub Issues: 10951 10952 * Add Valid Usage statement to flink:vkCmdResolveImage to require that 10953 source and destination image formats match (public issue 492). 10954 * Specify that a code:char* parameter must: be a valid null-terminated 10955 string in the <<fundamentals-implicit-validity, implicit valid usage>> 10956 section (public issue 494). 10957 * Removed unnecessary VU for slink:VkPhysicalDeviceFeatures which is 10958 covered by ename:VK_ERROR_FEATURE_NOT_PRESENT already (public issue 10959 496). 10960 * Clarify valid usage of pname:pQueueFamilyIndices in 10961 slink:VkBufferCreateInfo, slink:VkImageCreateInfo, and 10962 slink:VkSwapchainCreateInfoKHR (public issue 501). 10963 * Document that dependencies of enabled extensions must also be enabled in 10964 the <<extended-functionality-extensions-dependencies, Extension 10965 Dependencies>> section (public issue 507). 10966 10967Internal Issues: 10968 10969 * Change slink:VkMappedMemoryRange valid usage to allow pname:offset 10970 {plus} pname:size == size of the allocation. Also, if 10971 ename:VK_WHOLE_SIZE is used, require the end of the mapping to be 10972 aligned to a multiple of pname:nonCoherentAtomSize (internal issue 611). 10973 * Add issue to `VK_KHR_win32_surface` about reusing window objects from a 10974 different graphics API or Vulkan ICD (internal issue 639). 10975 * Require locations on user in/out in `GL_KHR_vulkan_glsl` (internal issue 10976 783). 10977 * Added version info to the json validation output, and updated the schema 10978 to match (internal issue 838). 10979 * Restructure enumerated type descriptions separately from the command or 10980 structure they are used in, allowing better reference page generation 10981 (internal issue 841). 10982 * Re-sort extension appendices to be in alphabetical order within each 10983 author ID section. 10984 * Fix enum naming and clarify behavior for 10985 `VK_NVX_device_generated_commands` extension. 10986 10987----------------------------------------------------- 10988 10989Change log for May 20, 2017 Vulkan 1.0.50 spec update: 10990 10991 * Bump API patch number and header version number to 50 for this update. 10992 10993GitHub Issues: 10994 10995 * Fix numerous minor issues with the VK_EXT_debug_report extension (public 10996 issues 478, 483, 486, 489, 490). 10997 10998Internal Issues: 10999 11000 * Update flink:vkAllocateDescriptorSets to specify conditions under which 11001 to return ename:VK_ERROR_FRAGMENTED_POOL or 11002 ename:VK_ERROR_OUT_OF_POOL_MEMORY instead of 11003 out-of-host/out-of-device-memory, and improve the 11004 <<fundamentals-errorcodes, description of those errors (internal issue 11005 654). 11006 * Add a NOTE documenting that flink:vkAcquireNextImageKHR can only signal 11007 a single semaphore, and how to deal with that when multiple physical 11008 devices in a logical device need to wait on it (internal issue 730). 11009 * Improve description of pname:pNext chains of 11010 slink:VkPhysicalDeviceImageFormatInfo2KHR and 11011 slink:VkImageFormatProperties2KHR (internal issue 814). 11012 * Clean up math markup issues in the <<textures, Image Operations>> 11013 chapter (internal issue 818). 11014 * Update validusage target to use more robust code for preprocessing, by 11015 making direct use of Asciidoctor's preprocessor. Added uniqueItems check 11016 to JSON vu schema and add clean_validusage target (internal issue 826). 11017 * Update style guide to prohibit writing non-self-contained (on a single 11018 bullet point) Valid Usage statements, and modify offending Valid Usage 11019 statements in the Specification to match, to assist with automatic 11020 extraction for the validation layers (internal issue 828). 11021 * Add ename:VK_VALIDATION_CHECK_SHADERS_EXT to elink:VkValidationCheckEXT 11022 of the `VK_EXT_validation_flags` extension, to selectively disable 11023 shader validation. 11024 * Remove duplicate valid usage statement for slink:VkImageMemoryBarrier. 11025 * Modify reflow.py script to place VUID tag anchors standalone on a line 11026 following their corresponding bullet point, and reflow the spec text 11027 accordingly (this had been pending since the initial tag deployment). 11028 11029New Extensions: 11030 11031 * `VK_AMD_texture_gather_bias_lod` 11032 11033----------------------------------------------------- 11034 11035Change log for May 12, 2017 Vulkan 1.0.49 spec update: 11036 11037 * Bump API patch number and header version number to 49 for this update. 11038 11039GitHub Issues: 11040 11041 * Modify reference page extraction script to make internal links to spec 11042 anchors refer to the core specification instead of being dangling links 11043 (public issue 455). 11044 * Fix GL_KHR_vulkan_glsl typo and add a nor-normative mapping to the newly 11045 published StorageBuffer class (public issue 466). 11046 * Both flink:vkEnumerateInstanceExtensionProperties and 11047 flink:vkEnumerateDeviceExtensionProperties return 11048 ename:VK_ERROR_LAYER_NOT_PRESENT, which covers the error case of an 11049 application providing a layer name that wasn't returned by 11050 ftext:vkEnumerate{Instance|Device}LayerProperties (public issue 487). 11051 * The specification for flink:VkApplicationInfo::apiVersion says that the 11052 driver must return ename:VK_ERROR_INCOMPATIBLE_DRIVER in the case that 11053 pname:apiVersion specifies a non-supported version. That means that the 11054 valid usage should not also state that, and so the VU statement is 11055 removed. The VU had language about "`an effective substitute`" that 11056 would have been lost, and so it was moved to the pname:apiVersion 11057 description (public issue 488). 11058 11059Internal Issues: 11060 11061 * Modify implicit validity generator script to assign asciidoc anchors to 11062 all valid usage statements it generates, and reflow.py script to insert 11063 Valid Usage ID (VUID) tags into the specification source files for 11064 explicit valid usage statements. This has no semantic effects on the 11065 specification, but will support the validation layer's detection of 11066 valid usage violations and allow it to link into the corresponding part 11067 of the specification (internal issue 583). 11068 * Assign VUID tags to all explicit VU statements and document 11069 the process and tag format in the style guide (internal issue 583). 11070 * Clarify the rules of whether to structure new functionality as instance 11071 extensions, device extensions, or both in the 11072 <<extended-functionality-instance-extensions-and-devices, Instance 11073 Extensions and Device Extensions>> section (internal issue 749). 11074 * Require that SPIR-V run-time arrays are only used with the 11075 code:BufferBlock decoration (internal issue 750). 11076 * Fix implicit and explicit valid usage statements for 11077 slink:VkWriteDescriptorSet::pname:dstSet (internal issue 767) 11078 * Fix SPIR-V code sample for ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER 11079 in the <<descriptorsets-uniformtexelbuffer, Uniform Texel Buffer>> 11080 section (internal issue 770). 11081 * Clarify that disabling depth testing also disables depth writes in the 11082 <<fragops-ds-state, Depth and Stencil Operations>> section (internal 11083 issue 775). 11084 * flink:VkDescriptorImageInfo::pname:imageLayout must match the actual 11085 imageLayout at the time the image is accessed. This was in the spec 11086 text, but needed an associated valid usage statement. 11087 * Note that only 32-bit atomic operations are supported in the 11088 <<spirvenv-module-validation, Validation Rules within a Module>> 11089 section. 11090 * Note that code:UniformConstant variables must not have initializers in 11091 the <<spirvenv-module-validation, Validation Rules within a Module>> 11092 section. 11093 * Add a new elink:VkObjectType enumeration to the core API, promoted from 11094 elink:VkDebugObjectTypeEXT, since it is used for much more than just the 11095 debug_report extension. 11096 11097New Extensions: 11098 11099 * `VK_KHR_get_surface_capabilities2` 11100 * `VK_KHR_shared_presentable_image` 11101 11102----------------------------------------------------- 11103 11104Change log for April 15, 2017 Vulkan 1.0.48 spec update: 11105 11106 * Bump API patch number and header version number to 48 for this update. 11107 11108Internal Issues: 11109 11110 * Add missing VU statements for flink:vkUpdateDescriptorSets (internal 11111 issue 333). 11112 * Correct swapped ifdef/ifndef blocks for `VK_KHR_maintenance1` extension 11113 (internal issue 776). 11114 11115----------------------------------------------------- 11116 11117Change log for April 8, 2017 Vulkan 1.0.47 spec update: 11118 11119 * Bump API patch number and header version number to 47 for this update. 11120 11121GitHub Issues: 11122 11123 * Allow <<synchronization-pipeline-barriers-subpass-self-dependencies, 11124 self-dependencies>> (also described for slink:VkSubpassDependency) to 11125 have earlier stages depend on later stages if all stages are 11126 framebuffer-space (public issue 125). 11127 * Clarify when pipeline state structures are ignored in the 11128 slink:VkGraphicsPipelineCreateInfo structure, when the tessellation 11129 structure must be valid, and remove 'if `NULL`' descriptions from the 11130 valid usage statements (public issue 445). 11131 * Remove the obsolete "validextensionstructs" attribute for 11132 flink:VkPresentRegionsKHR. This caused a pname:pNext valid usage 11133 statement to be generated which wasn't consistent with what is stated in 11134 the spec (public issue 481). 11135 11136Internal Issues: 11137 11138 * Clarify facingness of non-polygon fragments for slink:VkStencilOpState 11139 and in the code:FrontFacing <<interfaces-builtin-variables,built-in 11140 variable description>>. Define 'facingness' of a fragment as a distinct 11141 term from facingness of a polygon (internal issue 662). 11142 * Clarify that the texture compression features (e.g. 11143 pname:textureCompressionBC) means that all formats of that type 11144 (<<features-features-textureCompressionASTC_LDR,ASTC>>, 11145 <<features-features-textureCompressionETC2,ETC2>>, 11146 <<features-features-textureCompressionBC,BC>>) are supported, and that 11147 support for individual formats may: queried separately (internal issue 11148 663). 11149 * Clarify in the valid usage for slink:VkBindImageMemoryInfoKHX that each 11150 SFR rectangle must be a multiple of the sparse block size for each 11151 aspect, e.g. in a depth/stencil image using separate depth/stencil 11152 planes (internal issue 721). 11153 * Re-remove KHX variants of KHR structure types after promotion (internal 11154 issue 762). 11155 11156----------------------------------------------------- 11157 11158Change log for March 31, 2017 Vulkan 1.0.46 spec update: 11159 11160 * Bump API patch number and header version number to 46 for this update. 11161 11162GitHub Issues: 11163 11164 * Add language to the <<fundamentals-validusage-enums, Valid Usage for 11165 Enumerated Types>> section allowing values to be returned from Vulkan 11166 that are not present in extensions explicitly enabled by the 11167 application, similar to existing language for bit flags in the 11168 <<fundamentals-validusage-flags, Valid Usage for Flags>> section (public 11169 issue 442). 11170 * *Important*: run `gem update --pre asciidoctor-pdf` before trying to 11171 build this version of the spec - 1.5.0.alpha15 is required for this 11172 change. Removes the monkey patch currently used to draw valid usage 11173 blocks across multiple pages which had numerous issues. A fixed version 11174 was incorporated into asciidoctor-pdf for the latest release, so the 11175 monkey patch or any variant thereof is no longer required (public issue 11176 465). 11177 11178Internal Issues: 11179 11180 * Add ename:VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT 11181 to `VK_EXT_debug_report` extension 11182 * Fix ptext:pNext member of 11183 slink:VkPhysicalDeviceDiscardRectanglePropertiesEXT to be a non-const 11184 pointer. Properties structures return values, so the chain should be 11185 non-const. 11186 * Explicitly remove gl_NumSamples from the `GL_KHR_vulkan_glsl` extension, 11187 against 1.0 (internal issue 612). 11188 * Add Valid Usage statements requiring that each structure type valid in a 11189 ptext:pNext chain must: not appear more than once in a chain (internal 11190 issue 752). 11191 * Use ename:VK_USE_PLATFORM_WIN32_KHX in the 11192 `VK_KHX_external_memory_win32` extension, rather than etext:_KHR 11193 (internal issue 754). 11194 11195New Extensions: 11196 11197 * `VK_KHR_incremental_present` 11198 11199----------------------------------------------------- 11200 11201Change log for March 24, 2017 Vulkan 1.0.45 spec update: 11202 11203 * Bump API patch number and header version number to 45 for this update. 11204 11205GitHub Issues: 11206 11207 * Defined the lifetime of the memory pointed to by 11208 slink:VkDisplayPropertiesKHR::pname:displayName to be equal to that of 11209 its associated display handle (public issue 460). 11210 * Correct several cases where the sparse memory feature name 11211 pname:residencyNonResidentStrict was written as 11212 pname:sparseResidencyNonResidentStrict (public issue 475). 11213 11214Internal Issues: 11215 11216 * Fix ptext:pNext member of slink:VkPhysicalDeviceGroupPropertiesKHX to be 11217 a non-const pointer. Properties structures return values, so the chain 11218 should be non-const. 11219 * Clarify definition of memory aliasing to consistently use the terms 11220 "linear" and "non-linear" when referring to resources, and define what 11221 those terms mean. 11222 * Modified XML schema and implicit validity scripts to generate language 11223 for all ptext:pNext values in a ptext:pNext chain instead of just the 11224 top level struct, and made `noautovalidity` functional for ptext:sType 11225 and ptext:pNext (internal issue 535). 11226 * Add more detail for BT2020 and scRGB color spaces in 11227 `VK_EXT_swapchain_colorspace` extension (internal issue 632). 11228 * Add naming rules for Extension Structure Names (structures added to the 11229 ptext:pNext chain of a base structure) to the style guide (internal 11230 issue 706). 11231 * Define the glossary term "ptext:pNext chain", and use it consistently in 11232 the spec (internal issue 744). 11233 11234----------------------------------------------------- 11235 11236Change log for March 17, 2017 Vulkan 1.0.44 spec update: 11237 11238 * Bump API patch number and header version number to 44 for this update. 11239 11240GitHub Issues: 11241 11242 * Fix description of <<features-extentperimagetype, Allowed Extent Values 11243 Based On Image Type>> (public issue 290). 11244 * Better specify VK_DEVICE_LOST behavior around flink:vkQueueSubmit, 11245 flink:vkWaitForFences, and flink:vkGetFenceStatus (public issue 423). 11246 * Clarify definition of flink:vkGetQueryPoolResults::pname:queryCount 11247 (public issue 441). 11248 * Simplify and clean up normative language. Remove shall and replace 11249 recommend and variants with should wherever possible (public issue 448). 11250 * Fix all dangling internal cross-references in the 1.0-extensions 11251 specification, and add scripts/checkXrefs to find these in the future 11252 (public issue 456). 11253 * Reverse order of ChangeLog.txt entries so the most recent version is 11254 documented first (public issue 463) 11255 * Removes "become invalid" which clashes with invalid state for command 11256 buffers. (public issue 467) 11257 * Disallowed pending state in spec text for vkResetCommandBuffer, matching 11258 valid usage (public issue 468) 11259 * Removes sentence describing invalid state "like initial state". (public 11260 issue 469) 11261 * Disallows begin command buffer from resetting command buffers in the 11262 "recording" state. (public issue 470) 11263 * Removes mention of state from description of 11264 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT (public issue 471) 11265 * Removed extra valid usage statement in VkSubmitInfo (public issue 472) 11266 11267Internal Issues: 11268 11269 * Clarify description of the pname:imageLayout member of 11270 sname:VkDescriptorImageInfo. 11271 * Fix typos where etext:VK_VIEW_TYPE* was used instead of 11272 etext:VK_IMAGE_VIEW_TYPE. 11273 * Removed the <<VK_KHR_display>> and <<VK_KHR_display_swapchain>> example 11274 code from the specification and noted it has been moved to the Vulkan 11275 SDK cube demo (internal issue 179). 11276 * Reorder VkExternalMemoryHandleTypeFlagBitsNV description (internal issue 11277 480). 11278 * Clarify than an implementation is 11279 <<fundamentals-validusage-flags,permitted to return 'undefined' bit 11280 flags>> in a bitfield (internal issue 640). 11281 * Break Valid Usage statements describing unrelated parameters into 11282 separate statements, and add a style guide entry to follow this approach 11283 (internal issue 685). 11284 * Move valid usage statement for slink:VkImageCreateInfo from spec body to 11285 the explicit valid usage block (internal issue 693). 11286 * Fix typos in the descriptions of slink:VkDisplaySurfaceCreateInfoKHR, 11287 flink:vkCreateDisplayModeKHR, and 11288 flink:vkGetDisplayPlaneSupportedDisplaysKHR in the <<display,Presenting 11289 Directly to Display Devices>> section (internal issue 698, 704, 716). 11290 * Clarified that mandatory depth/stencil formats are only a requirement 11291 for 2D images (internal issue 719). 11292 * Clarify that variables decorated with DeviceIndex/ViewIndex must be in 11293 the Input storage class (internal issue 733). 11294 * Work around generator script problem with removal of Unicode literals 11295 from Python 3.0-3.2 using `future` package (internal issue 737). 11296 * Remove nonexistent structure type enums from vk.xml (internal issue 11297 738). 11298 * Fix validextensionstructs attributes for structures in the pname:pNext 11299 chain for VkPresentInfoKHR, fixing implicit valid usage statements for 11300 those structures (internal issue 740). 11301 11302----------------------------------------------------- 11303 11304Change log for March 10, 2017 Vulkan 1.0.43 spec update: 11305 11306 * Bump API patch number and header version number to 43 for this update. 11307 11308GitHub Issues: 11309 11310 * Make clearer that color write mask is applied regardless of whether 11311 blending is enabled, by referring to the 11312 <<framebuffer-color-write-mask,Color Write Mask>> section (public issue 11313 241). 11314 * Fix public issue 414: 11315 ** Added two new command buffer states (invalid, pending), and an explicit 11316 "command buffer lifecycle" section to explain them. 11317 ** Replaced "pending execution" with "in the pending state". 11318 ** Replaced a bunch of "this will invalidate the command buffer" language 11319 with "this will move the command buffer to the invalid state", and added 11320 validation language for what state those command buffers should be in. 11321 ** Added additional validation language about what state a command buffer 11322 should be in for various commands that affect it. 11323 ** Added invalidation language to destroy commands in the lifetimes section 11324 of fundamentals. 11325 ** Added command buffers to list of objects which must not be deleted 11326 whilst a (primary) command buffer is in the recording or pending state. 11327 * Update `GL_KHR_vulkan_glsl` extension to allow anonymous push constant 11328 blocks (public issue 428). 11329 11330Internal Issues: 11331 11332 * Document rules about extension interactions in the style guide (internal 11333 issue 579). 11334 * Require ename:VK_PRESENT_MODE_MAILBOX_KHR support in queries of surfaces 11335 created with flink:vkCreateWaylandSurfaceKHR using the 11336 VK_KHR_wayland_surface extension (internal issue 666). 11337 * Remove Valid Usage constraints for flink:vkAllocateDescriptorSets when 11338 the `VK_KHR_maintainance1` extension is present (internal issue 686). 11339 * Remove undocumented KHX-variants of vkGetPhysicalDeviceProperties2KHR 11340 and vkGetPhysicalDeviceImageFormatProperties2KHR from the 11341 <<VK_KHX_external_memory_capabilities>> and 11342 <<VK_KHX_external_semaphore_capabilities>> extensions. 11343 11344New Extensions: 11345 11346 * `VK_EXT_hdr_metadata` 11347 * `VK_GOOGLE_display_timing` 11348 11349----------------------------------------------------- 11350 11351Change log for February 27, 2017 Vulkan 1.0.42 spec update: 11352 11353 * Bump API patch number and header version number to 42 for this update 11354 (the first anniversary edition). 11355 11356GitHub Issues: 11357 11358 * Changed Asciidoctor macros so cross-page links in the standalone 11359 reference pages function properly (public issue 462). 11360 11361Internal Issues: 11362 11363 * Clarified host visibility discussion for slink:VkMemoryType, 11364 flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the 11365 <<synchronization-framebuffer-regions,Framebuffer Region Dependencies>> 11366 section, removing duplicated information and adding a central definition 11367 in the access types section (internal issue 552). 11368 * Change description of 11369 slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to 11370 return an array of values, not structures (internal issue 699). 11371 11372New Extensions: 11373 11374 * Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing 11375 the experimental status of `KHX` extensions. 11376 * Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for 11377 release at GDC: 11378 ** VK_KHR_descriptor_update_template 11379 ** VK_KHR_push_descriptor 11380 ** VK_KHX_device_group 11381 ** VK_KHX_device_group_creation 11382 ** VK_KHX_external_memory 11383 ** VK_KHX_external_memory_capabilities 11384 ** VK_KHX_external_memory_fd 11385 ** VK_KHX_external_memory_win32 11386 ** VK_KHX_external_semaphore 11387 ** VK_KHX_external_semaphore_capabilities 11388 ** VK_KHX_external_semaphore_fd 11389 ** VK_KHX_external_semaphore_win32 11390 ** VK_KHX_multiview 11391 ** VK_KHX_win32_keyed_mutex 11392 ** VK_EXT_discard_rectangles 11393 ** VK_MVK_ios_surface 11394 ** VK_MVK_macos_surface 11395 ** VK_NVX_multiview_per_view_attributes 11396 ** VK_NV_clip_space_w_scaling 11397 ** VK_NV_geometry_shader_passthrough 11398 ** VK_NV_sample_mask_override_coverage 11399 ** VK_NV_viewport_array2 11400 ** VK_NV_viewport_swizzle 11401 * Add new GLSL vendor extensions to support new builtin variables: 11402 ** GL_EXT_device_group 11403 ** GL_EXT_multiview 11404 11405----------------------------------------------------- 11406 11407Change log for February 17, 2017 Vulkan 1.0.41 spec update: 11408 11409 * Bump API patch number and header version number to 41 for this update. 11410 11411GitHub Issues: 11412 11413 * Made all uses of `NULL` vs. code:VK_NULL_HANDLE consistent (public issue 11414 276). 11415 * Clarify render pass compatibility in different usage scenarios (public 11416 issues 403 and 404). 11417 * Add valid usage statements to slink:VkFramebufferCreateInfo requiring 11418 that the width, height, and number of layers of the framebuffer all be 11419 nonzero (public issue 432). 11420 * Allow `offset` and `align` in any GLSL version for the 11421 `GL_KHR_vulkan_glsl` extension (public issue 435). 11422 * Specify lifetime of string objects passed to the 11423 tlink:PFN_vkDebugReportCallbackEXT user callback in the 11424 +VK_EXT_debug_report+ extension (public issue 446). 11425 * Fix inter-page links in multi-file reference pages (public issue 454). 11426 11427Internal Issues: 11428 11429 * Update valid usage language for slink:VkImageCreateInfo to disallow 11430 creating images that have ename:VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT 11431 set without other attachment usage bits 11432 (ename:VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, 11433 ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, or 11434 ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) (internal issue 540). 11435 * Disable `VK_EXT_swapchain_colorspace` extension until internal issues 11436 640 and 661 are mutually resolved. 11437 * Allow alternative mipmap level selection when [eq]#lambda == 0.5# during 11438 texture <<textures-image-level-selection,Image Level(s) Selection>> 11439 (internal issue 680). 11440 11441Other Issues: 11442 11443 * Add a clarification to the style guide that the extension revision 11444 number is treated as a patch number, so that changes to published 11445 extensions should only include bug fixes and spec clarifications. 11446 11447----------------------------------------------------- 11448 11449Change log for February 10, 2017 Vulkan 1.0.40 spec update: 11450 11451 * Bump API patch number and header version number to 40 for this update. 11452 * There is a major build change in this release. We are now using the 11453 Ruby-based ``asciidoctor'' implementation, rather than the Python-based 11454 ``asciidoc'' implementation, to process the specification. While the 11455 actual specification markup changes were minimal, this requires a new 11456 set of build tools and a very different installation process, especially 11457 because we now use an experimental direct-to-PDF backend for Asciidoctor 11458 instead of Docbook->dblatex->PDF. It is no longer possible to build the 11459 Specification using asciidoc. See doc/specs/vulkan/README.adoc 11460 for some guidance on installing the new toolchain components. 11461 * There are some minor rendering issues in the PDF output due to teething 11462 problems with the Asciidoctor toolchain, especially with mathematical 11463 equations. We are aware of these and working on them. 11464 11465GitHub Issues: 11466 11467 * Updated sample code for the <<sparsememory-examples-basic,sparse 11468 resource binding example>> (public issue 97). 11469 * Modify line and point clipping behavior in the 11470 <<vertexpostproc-clipping, Primitive Clipping>> section to allow for 11471 pop-free behavior. The ability to check for which behavior is 11472 implemented may be added a future feature or extension (public issue 11473 113). 11474 * Unify the discussions of implicit ordering throughout the spec, in 11475 particular in the new sections <<drawing-primitive-order, Primitive 11476 Order>>, <<primsrast-order, Rasterization Order>>, and 11477 <<synchronization-implicit, Implicit Synchronization Guarantees>>; the 11478 discussion of <<synchronization-submission-order, submission order>>; 11479 and references elsewhere to these sections (public issue 133). 11480 * Clarify <<descriptorsets-compatibility,Pipeline Layout Compatibility>> 11481 language and introduce the term ``identically defined'' (public issue 11482 164). 11483 * Add a dependency to the +VK_EXT_debug_marker+ extension that is needed to 11484 reuse the object type enum from +VK_EXT_debug_report+, and moves the 11485 definition of that enum into +VK_EXT_debug_report+ where it should be 11486 (public issue 409). 11487 * Remove redundant valid usage statement from slink:VkImageBlit (public 11488 issue 421). 11489 * Update GL_KHR_vulkan_glsl to allow the ternary operator to result in a 11490 specialization constant (public issue 424). 11491 * Fix valid usage for flink:VkPipelineShaderStageCreateInfo (public issue 11492 426). 11493 * Correct typo in New Objects list for <<VK_EXT_debug_report>> (public 11494 issue 447). 11495 11496Internal Issues: 11497 11498 * Moved to Asciidoctor for spec builds (internal issue 121). 11499 * Update style guide to describe where to put new extensions-specific 11500 asciidoc files, and what to name them (internal issue 626). 11501 * Add src/spec/indexExt.py to autogenerate registry index entries linking 11502 into the 1.0-extensions specification, instead of maintaining the index 11503 manually. (internal issue 642). 11504 * Autogenerate extension dependencies and lists of all extensions and all 11505 KHR extensions from the "supported" attributes in +vk.xml+. Execute 11506 +make config/extDependency.sh+ from +doc/specs/vulkan+ when a supported 11507 extension is added to vk.xml, to regenerate the dependency script. The 11508 consequence is that specifying a single extension to the +makeExt+ 11509 script will automatically enable all extensions it depends on as well, 11510 and that the +makeAllExts+ and +makeKHR+ scripts do not need to be 11511 updated when a new extension is supported (internal issue 648). 11512 * Put extension appendices all at the same asciidoc section level, so KHR 11513 WSI extensions show up in the HTML index (internal issue 648). 11514 11515Other Issues: 11516 11517 * Imbed images in the generated HTML specs instead of loading them from 11518 the images/ directory. 11519 * Fix missing EXT in extension name 11520 (ename:VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME). 11521 * Add new +VK_EXT_SMPTE_2086_metadata+ extension. 11522 * In the <<platformCreateSurface_xlib,Xlib Surface>> section of the 11523 `VK_KHR_xlib_surface` specification, add language warning users that 11524 they always need to call code:XinitThreads. 11525 * Use the term "presentable image" (rather than "swapchain image") 11526 consistently in `VK_KHR_swapchain` and related extensions, and add a 11527 glossary term defining it. 11528 * Relocate the valid usage for samples of 11529 flink:vkGetPhysicalDeviceSparseImageFormatProperties2KHR::pname:pFormatInfo 11530 to be below the flink:VkPhysicalDeviceSparseImageFormatInfo2KHR 11531 structure. 11532 11533----------------------------------------------------- 11534 11535Change log for January 23, 2017 Vulkan 1.0.39 spec update: 11536 11537 * Bump API patch number and header version number to 39 for this update. 11538 11539GitHub Issues: 11540 11541 * Clarified that only accesses via the specified buffer/image subresource 11542 ranges are included in the access scopes (public issue 306). 11543 * Add missing valid usage statements for flink:vkCreateComputePipelines 11544 and flink:vkCreateGraphicsPipelines (public issue 427). 11545 11546Internal Issues: 11547 11548 * Add a Note to the <<invariance,Invariance>> appendix about a difference 11549 between OpenGL and Vulkan with regards to how primitives derived from 11550 offsets are handled (internal issue 355). 11551 * Add the +<<VK_KHR_get_physical_device_properties2>>+, 11552 +<<VK_KHR_maintenance1>>+, and +<<VK_KHR_shader_draw_parameters>>+ 11553 extensions (internal issue 448). 11554 * Add the +<<VK_EXT_shader_subgroup_vote>>+ and 11555 +<<VK_EXT_shader_subgroup_ballot>>+ extensions (internal issue 449). 11556 * Update the texture level-of-detail equation in the 11557 <<textures-scale-factor,Scale Factor Operation>> section to better 11558 approximate the ellipse major and minor axes (internal issue 547). 11559 * Forbid non-explicitly allowed uses of interface decorations in the 11560 introduction to the <<interfaces,Shader Interfaces>> chapter (internal 11561 issue 607). 11562 * Replace use of MathJax with KaTeX, for improved load-time performance as 11563 well as avoiding the scrolling-and-scrolling behavior due to MathJax 11564 asynchronous rendering when loading at an anchor inside the spec. This 11565 change also requires moving to HTML5 output for the spec instead of 11566 XHTML, and there is a visible difference in that the chapter navigation 11567 index is now in a scrollable sidebar instead of at the top of the 11568 document. We may or may not retain the nav sidebar based on feedback 11569 (internal issue 613). 11570 * Improve consistency of markup and formatting in extension appendices 11571 (internal issue 631). 11572 11573Other Issues: 11574 11575 * Add explicit valid usage statements to slink:VkImageCopy requiring that 11576 the source and destination layer ranges be contained in their respective 11577 source and destination images. 11578 * Add valid usage language for swapchain of flink:vkAcquireNextImage. If 11579 the swapchain has been replaced, then it should not be passed to 11580 flink:vkAcquireNextImage. 11581 * Add a valid usage statement to flink:vkCreateImageView, that the image 11582 must have been created with an appropriate usage bit set. 11583 * Noted that slink:VkDisplayPresentInfoKHR is a valid extension of 11584 slink:VkPresentInfoKHR in the <<wsi_swapchain,WSI Swapchain>> section. 11585 * Update valid usage for flink:vkCmdSetViewport and flink:vkCmdSetScissor 11586 to account for the multiple viewport feature. If the feature is not 11587 enabled, the parameters for these functions have required values that 11588 are defined in the <<features-features-multiViewport,multiple 11589 viewports>> section of the spec but were not reflected in the valid 11590 usage text for these functions. 11591 * Add the +<<VK_EXT_swapchain_colorspace>>+ extension defining common 11592 color spaces. 11593 11594----------------------------------------------------- 11595 11596Change log for December 16, 2016 Vulkan 1.0.38 spec update: 11597 11598 * Bump API patch number and header version number to 38 for this update. 11599 11600GitHub Issues: 11601 11602 * Make ename:VK_PIPELINE_STAGE_HOST_BIT invalid for all stage masks, 11603 except for flink:vkCmdWaitEvents (public issue 261). 11604 11605Internal Issues: 11606 11607 * Added validation language for flink:vkQueueBindSparse, 11608 slink:VkPresentInfoKHR, and slink:VkSubmitInfo, and a note to the 11609 <<synchronization-semaphores-waiting,Semaphore Waiting and Unsignaling>> 11610 section to clarify that semaphores must be signaled and waited on in a 11611 1:1 fashion (internal issue 546). 11612 * Modify valid usage for slink:VkBufferImageCopy to only require 11613 pname:bufferOffset to be a multiple of the image format's element size 11614 when the format is not depth/stencil (internal issue 594). 11615 11616Other Issues: 11617 11618 * Vulkan is now a registered trademark symbol, and this is reflected in 11619 documents and copyright statements. 11620 11621----------------------------------------------------- 11622 11623Change log for December 10, 2016 Vulkan 1.0.37 spec update: 11624 11625 * Bump API patch number and header version number to 37 for this update. 11626 11627GitHub Issues: 11628 11629 * Add usability guarantees on the values returned by 11630 flink:vkGetPhysicalDeviceSurfaceCapabilitiesKHR in the 11631 slink:VkSurfaceCapabilitiesKHR structure and by 11632 flink:vkGetPhysicalDeviceSurfaceFormatsKHR in the 11633 pname:pSurfaceFormatCount parameter (public issue 385). 11634 * Add elink:VkDebugReportObjectTypeEXT enumerants for new object types 11635 introduced by new extensions (public issue 408). 11636 * Add +VK_NVX_device_generated_commands+ etext:ACCESS bits and define how 11637 they are used (public issue 415). 11638 * Fix indentation for slink:VkDebugReportCallbackCreateInfoEXT member 11639 descriptions (public issue 419). 11640 11641Internal Issues: 11642 11643 * Expand requirements memory binding of non-sparse images and buffers from 11644 the <<resources-association,Resource Memory Association>> section into 11645 valid usage statements for all of the applicable API calls (internal 11646 issue 508). 11647 * Explicitly state that valid usage of flink:vkCreateImage requires that 11648 flink:vkGetPhysicalDeviceImageFormatProperties would return 11649 ename:VK_SUCCESS for the requested image configuration (internal issue 11650 598). 11651 11652----------------------------------------------------- 11653 11654Change log for December 1, 2016 Vulkan 1.0.36 spec update: 11655 11656 * Bump API patch number and header version number to 36 for this update. 11657 11658GitHub Issues: 11659 11660 * Fix "recorded with" terminology in the valid usage language for the 11661 flink:vkCmdExecuteCommands::pname:pCommandBuffers parameter (public 11662 issue 390). 11663 * Modify +genvk.py+ to support specifying extensions to remove from output 11664 generators, allowing the extension loader +vulkan_ext.c+ to be created 11665 without WSI extensions which are statically exported by the Vulkan 11666 loader (public issue 412). 11667 * Added validation language for slink:VkSubpassDependency and in the 11668 <<synchronization-access-types-supported,supported access types>> 11669 section to catch access masks that include bits which are not supported 11670 by pipeline stages in the stage masks (partially addresses 11671 github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/issues/1006 ). 11672 11673Internal Issues: 11674 11675 * Added validation language for flink:vkCmdWaitEvents, 11676 flink:vkQueueSubmit, flink:VkRenderPassCreateInfo, and in the 11677 <<synchronization-pipeline-stages-supported>> section to prevent 11678 recording stage dependencies that aren't supported on the queue 11679 (internal issue 516). 11680 * Make a few changes that generalize spec language for use with possible 11681 future extensions by adding glossary terms and generalizing ``feature'' 11682 to ``feature or extension'' where relevant (internal issues 448, 590). 11683 * Added "pipeline type" attribute to +vk.xml+ for relevant commands and 11684 utilize it in automatic generation of the Command Properties table 11685 (internal issue 517). 11686 * Specify that WSI implementations must provide both UNORM and sRGB 11687 formats in the description of slink:VkColorSpaceKHR (internal issue 11688 529). 11689 * Remove nesting of explicit valid usage statements where it is not 11690 meaningful (internal issue 583). 11691 11692Other Issues: 11693 11694 * Add validity language requiring that 11695 slink:VkPushConstantRange::pname:offset be a multiple of 4, as stated in 11696 the spec language. 11697 11698----------------------------------------------------- 11699 11700Change log for November 25, 2016 Vulkan 1.0.35 spec update: 11701 11702 * Bump API patch number and header version number to 35 for this update. 11703 11704GitHub Issues: 11705 11706 * Document in the <<memory-device-hostaccess,Host Access>> section that 11707 mapping and unmapping does not invalidate or flush the mapped memory 11708 (public issues 27, 126). 11709 * Redefine the entire <<synchronization>> chapter in terms of consistent 11710 and well defined terminology, that is called out at the start of the 11711 chapter. This terminology is applied equally to all synchronization 11712 types, including subpass dependencies, submissions, and much of the 11713 implicit ordering stuff dotted around the spec. Key terms are laid out 11714 in the <<synchronization-dependencies,Execution and Memory 11715 Dependencies>> section at the top of the rewritten chapter (public 11716 issues 128, 131, 132, 217, 299, 300, 302, 306, 322, 346, 347, 371, 407). 11717 * Specify order of submission for batches in the 11718 <<vkQueueSubmit,vkQueueSubmit>> and 11719 <<vkQueueBindSparse,vkQueueBindSparse>> commands (public issue 371). 11720 * Add valid usage statements to each of the WSI extension sections 11721 indicating that the WSI-specific structure parameters must be valid, and 11722 remove automatically generated valid usage statements now covered by the 11723 manual sections (public issue 383). 11724 * Clarify render pass compatibility for flink:vkCmdExecuteCommands (public 11725 issue 390). 11726 11727Internal Issues: 11728 11729 * Update +vk.xml+ to make previously explicit valid usage statements for 11730 <<vkDebugReportMessageEXT,vkDebugReportMessageEXT>> implicit instead 11731 (internal issue 553). 11732 * Add valid usage statement for slink:VkCreateImageInfo preventing 11733 creation of 1D sparse images (internal issue 573). 11734 * Fix Python scripts to always read/write files in utf-8 encoding, and a 11735 logic error in reflib.py which could cause a fatal error for 11736 malstructured asciidoc (internal issues 578, 586). 11737 11738----------------------------------------------------- 11739 11740Change log for November 18, 2016 Vulkan 1.0.34 spec update: 11741 11742 * Bump API patch number and header version number to 34 for this update. 11743 11744GitHub Issues: 11745 11746 * Allow vkUpdateDescriptorSets overflow to skip empty bindings. Clarify 11747 that unused bindings have a descriptorCount of zero. Improve some valid 11748 usage for vkUpdateDescriptorSets (public issue 256). 11749 * Require that slink:VkImageSubresourceRange always define a non-empty 11750 range of the resource (public issue 303). 11751 * Added valid usage for slink:VkPresentInfoKHR on the layout of presented 11752 images (public issue 397). 11753 11754Internal Issues: 11755 11756 * Add dependency in src/spec/Makefile so specversion.txt is regenerated 11757 when needed (internal issue 462). 11758 * Shorten the table of contents in the single-page ref page HTML output. 11759 Still working on the PDF (internal issue 536). 11760 11761----------------------------------------------------- 11762 11763Change log for November 11, 2016 Vulkan 1.0.33 spec update: 11764 11765 * Bump API patch number and header version number to 33 for this update. 11766 11767GitHub Issues: 11768 11769 * Added implicit external synchronization parameters to 11770 vkBegin/EndCommandBuffer, and fixed missing command pool host 11771 synchronization from per-command lists (public issue 398). 11772 * Started using git tags including the spec release number, such as 11773 'v1.0.32-core', instead of tags including the date of release, such as 11774 'v1.0-core-20161025' (public issue 405). 11775 11776Internal Issues: 11777 11778 * Add validity constraint for 11779 slink:VkImportMemoryWin32HandleInfoNV::pname:handle (internal issue 11780 #480). 11781 * Add scripts to compare two Vulkan HTML specifications, derived from W3 11782 htmldiff service (internal issue 525). 11783 * Relax requirement that memoryTypeBits can't depend on format, to allow 11784 it to differ only for depth/stencil formats (internal issue 544). 11785 * Add a new generator script to create a simple extension loader for 11786 Vulkan based on +vk.xml+ (internal issue 558). 11787 * Add the overlooked requirement that buffer and image memory 11788 alignment requirements must be a power of two in the 11789 <<resources-association,Resource Memory Association>> section 11790 (internal issue 569). 11791 11792Other Issues: 11793 11794 * Add a naming rule to the style guide for members of extension structures 11795 defining array lengths which are the same as array lengths of the core 11796 structure they are chained from. 11797 * Add a new generator to create a simple extension loader in 11798 +src/ext_loader/vulkan_ext.[ch]+ from +vk.xml+. This code can be 11799 included in your project, and is expected to be packaged in the Vulkan 11800 SDK provided by LunarG in the future. 11801 11802----------------------------------------------------- 11803 11804Change log for October 25, 2016 Vulkan 1.0.32 spec update: 11805 11806 * Bump API patch number and header version number to 32 for this update. 11807 11808GitHub Issues: 11809 11810 * Add automatic visibility operations to the presentation engine when 11811 doing a queue present in flink:vkAcquireNextImageKHR. Removed all 11812 references to MEMORY_READ that referenced WSI - they no longer make 11813 sense (some aspects of public issues 128, 131, 132, 261, and 298). 11814 * Document valid non-boolean +externsync+ attribute values for <param> 11815 tags in +vk.xml+ (public issue 265). 11816 * Add valid usage to slink:VkImageCreateInfo requiring that 11817 pname:arrayLayers be 1 for images of type ename:VK_IMAGE_TYPE_3D 11818 (public issue 319). 11819 * Add missing captions to figures in the <<textures,Image Operations>> 11820 chapter (public issue 334). 11821 * Clarify WSI interaction with exclusive sharing mode (public issue 11822 344). 11823 * Added explicit language clarifying the allowed queue usage of 11824 resources created with ename:VK_SHARING_MODE_CONCURRENT (public 11825 issue 386). 11826 * Require that the 11827 slink:VkDescriptorSetLayoutCreateInfo::pname:binding members of the 11828 pname:pBindings array passed to 11829 flink:vkDescriptorSetLayoutCreateInfo all be distinct (public issue 11830 391). 11831 11832Internal Issues: 11833 11834 * Remove empty validity blocks from +vk.xml+ and suppressed broken 11835 validity statements and added missing statements to explicit 11836 validity. Doesn't affect output, other than some statements 11837 appearing in another block now (internal issue 513). 11838 11839----------------------------------------------------- 11840 11841Change log for October 14, 2016 Vulkan 1.0.31 spec update: 11842 11843 * Bump API patch number and header version number to 31 for this update. 11844 11845GitHub Issues: 11846 11847 * Clarifying wording of slink:VkGraphicsPipelineCreateInfo parameters and 11848 adding Valid Usage statements on render pass compatibility to the 11849 <<drawing,drawing commands>> (public issue 375). 11850 * Replace 'texel size' with 'element size', and add a definition to the 11851 glossary (public issue 382). 11852 * Clarify the description of ename:VK_ERROR_NATIVE_WINDOW_IN_USE_KHR to 11853 make it accurate, but still generic (non-exhaustive). Remove two Valid 11854 Usage statements describing error situations that will return 11855 ename:VK_ERROR_NATIVE_WINDOW_IN_USE_KHR (public issue 387). 11856 * Fix refBegin tag for elink:VkDebugReportFlagBitsEXT (public issue 392). 11857 * The <<interfaces-builtin-variables,built-in variable>> code:PrimitiveId 11858 in a fragment shader needs the code:Input storage class (public issue 11859 393). 11860 11861Internal Issues: 11862 11863 * Unused ({y,z} and {height,depth} for 1D, z and depth for 2D) offsets 11864 must be 0 and unused extents must be 1. Added basic offset and extent 11865 valid usage for slink:VkImageResolve to match that of slink:VkImageCopy 11866 (internal issue 413). 11867 * Describe what flink:vkGetPhysicalDeviceImageFormatProperties returns for 11868 pname:sampleCounts when for pname:usage only includes transfer-related 11869 flags (internal issue 478). 11870 * Remove mention of 11871 slink:VkPhysicalDeviceLimits::pname:maxImageArrayLayers from the valid 11872 usage for slink:VkImageCreateInfo::pname:arrayLayers (internal issue 11873 520). 11874 * Tag usages of ``dynamically uniform'' as glossary terms and add a 11875 glossary entry pointing to the SPIR-V Specification's definition of the 11876 term (internal issue 531). 11877 11878----------------------------------------------------- 11879 11880Change log for October 7, 2016 Vulkan 1.0.30 spec update: 11881 11882 * Bump API patch number and header version number to 30 for this update. 11883 11884GitHub Issues: 11885 11886 * Document missing pname:sType and pname:pNext parameters for 11887 slink:VkCommandBufferInheritanceInfo (public issue 224). 11888 * As promised, we are removing the example code, from the appendix, for 11889 the VK_KHR_surface and VK_KHR_swapchain extensions. The cube demo 11890 (shipped in the official Khronos SDK) has been updated, and is the 11891 example code that we want people to look at for how to use these two 11892 extensions (public issues 279, 308, and 311). 11893 * Clarify the formats for which the slink:VkClearColorValue pname:float32 11894 member is used. Also clean up related language for flink:vkCmdBlitImage 11895 (public issue 369). 11896 * Reword the <<invariance, Invariance>> appendix chapter to better match 11897 Vulkan terminology (public issue 372). 11898 11899Internal Issues: 11900 11901 * Update slink:VkMemoryRequirements to not require a host_visible memory 11902 type exists that can be bound to sparse buffers (internal issue 494). 11903 * Modify the <<features-supported-sample-counts,Supported Sample Counts>> 11904 language to allow multisampled depth-stencil images (internal issue 11905 521). 11906 11907----------------------------------------------------- 11908 11909Change log for September 30, 2016 Vulkan 1.0.29 spec update: 11910 11911 * Bump API patch number and header version number to 29 for this update. 11912 11913GitHub Issues: 11914 11915 * Remove redundant constraint on 11916 slink:VkCommandBufferInheritanceInfo::pname:queryFlags (public issue 11917 224). 11918 * Fix typo and remove link in Note in the 11919 <<extended-functionality-instance-extensions-and-devices, Instance 11920 Extensions and Device Extensions>> section (public issue 359). 11921 * Fix erroneous validation statement for the pname:layout member of 11922 slink:VkComputePipelineCreateInfo (public issue 362). 11923 11924Internal Issues: 11925 11926 * Restore long figure captions using asciidoc sidebar blocks, due to 11927 restrictions of asciidoc syntax (internal issue 101). 11928 * Replace most latexmath equations with comparable markup in straight 11929 asciidoc, which significantly improves time required to fully load and 11930 process the HTML forms of the Specification. There are known minor font 11931 and alignment inconsistencies with MathJax and PDF rendering of 11932 latexmath equations. Please do not file GitHub Issues about these. We 11933 are aware of the inconsistencies and will make refinements over time, 11934 while the performance improvements are compelling in at least some major 11935 browsers (internal issue 313). 11936 * Move handcoded validity statements from +vk.xml+ into the Specification 11937 body, easing work in the single-branch model. Specify the distinction 11938 between these explicit statements, and the implicit validity statements 11939 inferred from vk.xml. Validity statements now appear in two blocks for 11940 each command and structure - handcoded "Valid Usage" and the implicit 11941 "Valid Usage (Implicit)" (internal issue 392). 11942 * Add the +returnedonly="false"+ attribute to WSI output structures, 11943 removing incorrectly generated implicit validity statements for 11944 slink:VkDisplayPropertiesKHR, slink:VkDisplayPlanePropertiesKHR, 11945 slink:VkDisplayModePropertiesKHR, slink:VkDisplayPlaneCapabilitiesKHR, 11946 slink:VkSurfaceCapabilitiesKHR, and slink:VkSurfaceFormatKHR structures 11947 (internal issue 486). 11948 * Update slink:VkImageLayout to require the 11949 ename:VK_IMAGE_USAGE_SAMPLED_BIT be set for sampled depth/stencil images 11950 (internal issue 487). 11951 * Use an explicit format specifier string for the date command invocation 11952 in the +Makefile+ instead of the shorthand -R option, which doesn't work 11953 on BSD and MaxOS X date commands (internal issue 500). 11954 11955Other Issues: 11956 11957 * Use the terms ``allocation scope'' and ``extension scope'' instead of 11958 just ``scope'', and add them to the glossary. 11959 11960----------------------------------------------------- 11961 11962Change log for September 23, 2016 Vulkan 1.0.28 spec update: 11963 11964 * Bump API patch number and header version number to 28 for this update. 11965 11966GitHub Issues: 11967 11968 * Minor spelling and typography cleanup, add definitions of 11969 ename:VK_FALSE and ename:VK_TRUE as just what their names say 11970 (public issues 220, 318, 325, 365; internal issues 451, 496) 11971 * Clarify that the pname:maxDescriptorSet limits in the 11972 <<features-limits-required,Required Limits>> table are n * 11973 maxPerStage limit (where n=number of supported stages) (public issue 11974 254). 11975 * Minor cleanup to <<boilerplate-platform-macros,Platform-Specific 11976 Macro Definitions>> appendix (public issue 314). 11977 * Add valid usage statement to slink:VkPipelineLayoutCreateInfo 11978 disallowing multiple push constant ranges for the same shader stage 11979 (public issue 340). 11980 * Clarify the elink:VkSharingMode description of what executing the 11981 "same" barriers means in case of ownership transfer (public issue 11982 347). 11983 * Rename copyright.txt and add COPYING.md to try and reduce confusion 11984 about applicable copyrights (public issue 350). 11985 * Extend the table in the <<boilerplate-wsi-header, Window System-Specific 11986 Header Control>> section to describe the external headers included when 11987 each etext:VK_USE_PLATFORM_* macro is defined (public issue 376). 11988 11989Internal Issues: 11990 11991 * Add "Revision History" to the PDF outputs following the table of 11992 contents, to match HTML outputs (internal issue 43). 11993 * Clarified that flink:vkMapMemory may fail due to virtual address 11994 space limitations (internal issue 346). 11995 * Add +refBody+ comment markup for ref page autoextraction when required 11996 (internal issue 400). 11997 * Document proper use of "mipmap" and "mip" in the style guide API 11998 naming rules, matching the spelling rules (internal issue 471). 11999 * Tweak the <<extensions,Layers and Extensions>> appendix to note that 12000 the Specification may be built with arbitrary combinations of 12001 extensions (internal issue 483). 12002 * Remove incorrect statement allowing 12003 slink:VkClearAttachment::pname:colorAttachment to be >= 12004 slink:VkSubpassDescription::pname:colorAttachmentCount (internal 12005 issue 488). 12006 * The <<features-limits-viewportboundsrange,viewportBoundsRange>> is 12007 expressed in terms of the pname:maxViewportDimensions but this is 12008 actually two values. Clarify that it is based on the larger of the two 12009 (if they differ) (internal issue 499). 12010 12011Other Issues: 12012 12013 * Reflowed text of the entire spec using the 'reflow' Makefile target, to 12014 (hopefully) reduce future internal git churn as edits are made and 12015 extensions added in return for one-time pain. This has no perceptible 12016 effect on the spec outputs, but considerable changes on the asciidoc 12017 source (internal issue 367). 12018 12019----------------------------------------------------- 12020 12021Change log for September 16, 2016 Vulkan 1.0.27 spec update: 12022 12023 * Bump API patch number and header version number to 27 for this update. 12024 12025GitHub Issues: 12026 12027 * Weaken flink:vkGetPipelineCacheData invariance conditions; previous 12028 conditions were stronger than agreed and can't be guaranteed (public 12029 issue 280). 12030 * Add link to "Vulkan Loader Specification and Architecture Overview" 12031 document to Normative References section (public issue 359). 12032 12033Internal Issues: 12034 12035 * Be more clear in the <<interfaces-resources-layout-std140, uniform 12036 buffer layout>> section that block offsets can be out of order 12037 (internal issue 396). 12038 * Document that extension authors should add support for their extensions 12039 to the validation layers (internal issue 398). 12040 * Clarify that the valid range of depth clear values should be limited 12041 to the 0..1 range and that copies to depth aspect must also be in this 12042 range (internal issue 412). 12043 * Specify ``a'' vs. ``an'' use in the style guide (internal issue 432). 12044 * Increase the maximum pname:nonCoherentAtomSize value in the 12045 <<features-limits-required,Required Limits>> section from 128 to 256 12046 (internal issue 435). 12047 * Fix vk_platform.h for compiler errors on some Android platforms 12048 (internal issue 441). 12049 * Clarify that slink:VkPhysicalDeviceFeatures::pname:pEnabledFeatures == 12050 `NULL` disables all features, including the "required" feature 12051 pname:robustBufferAccess (internal issue 479). 12052 12053Other Issues: 12054 12055 * Expand style guide and make it more self-consistent. 12056 * Use ISO 8601 date format everywhere. 12057 * Emphasise the correct way of using 12058 slink:VkSurfaceCapabilitiesKHR::pname:maxImageCount. 12059 * Added +VK_EXT_validation_flags+ extension for validation flag mechanism. 12060 * Fix an <<credits,author credit>> to include their current employer. 12061 12062----------------------------------------------------- 12063 12064Change log for September 6, 2016 Vulkan 1.0.26 spec update: 12065 12066 * Bump API patch number and header version number to 26 for this update. 12067 12068GitHub Issues: 12069 12070 * Bring sample code in the `VK_KHR_surface` and `VK_KHR_swapchain` 12071 extension summary appendices up to date, and note they will be replaced 12072 with pointers to the LunarG SDK examples in the future (public issue 12073 279). 12074 * Add a new <<fundamentals-commandsyntax-results-lifetime,Lifetime of 12075 Retrieved Results>> section specifying that ftext:vkGet* and 12076 ftext:VkEnumerate* results are invariant unless otherwise specified, and 12077 specify behavior for individual commands which are not invariant (public 12078 issue 280). 12079 * Remove conflicting definition of 12080 slink:VkDisplayPlaneCapabilitiesKHR::pname:maxSrcPosition and clean up 12081 language of the remaining definition (public issue 351). 12082 * Fix many minor spelling errors and add rules to the style guide to 12083 prevent recurrences (public issue 352). 12084 12085Internal Issues: 12086 12087 * Remove redundant descriptions of the etext:VK_USE_PLATFORM_* macros from 12088 the <<wsi,Window System Integration>> chapter in favor of the 12089 description in the <<boilerplate-wsi-header,Window System-Specific 12090 Header Control>> appendix (internal issue 6). 12091 * Replace misleading 'can: be destroyed when not X' with more correct 12092 'must: not be destroyed while X' in the 12093 <<fundamentals-objectmodel-lifetime,Object Lifetime>> section. Disallow 12094 destroying a pipeline layout while a command buffer using it is 12095 recording (internal issue 241). 12096 * Clarify that ename:VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT is valid for 12097 all images used as attachments in elink:VkImageUsageFlagBits and the 12098 slink:VkImageLayout validity language (internal issue 320). 12099 * Note that <<extended-functionality-layers,Layers>> may wrap object 12100 handles, but that this is a generally discouraged. A link to additional 12101 information in the documentation for layer authors is provided (issue 12102 398) 12103 * Replace the mustnot: and shouldnot: macros with equivalent must: not and 12104 should: not to get rid of non-English words while still highlighting 12105 normative language (internal issue 407). 12106 * Disallow creating multisampled images with 12107 ename:VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT in the slink:VkImageLayout 12108 validity language and the <<features-supported-sample-counts,Supported 12109 Sample Counts>> section (internal issue 445). 12110 * Fix typo so that flink:vkCmdDrawIndexedIndirect is defined in terms of 12111 flink:vkCmdDrawIndexed rather than flink:vkCmdDrawIndirect (internal 12112 issue 446). 12113 * Reorganize the per-extension information sections to all be in the 12114 <<extensions,Layers & Extensions>> appendix. Also fix a typo in 12115 +VK_IMG_filter_cubic+ which incorrectly identified it as a +KHR+ 12116 extension (internal issue 461). 12117 12118Other Issues: 12119 12120 * Use asciidoc markup instead of latexmath to simplify diagrams in the 12121 <<features-formats-non-packed,byte mapping tables>> for color formats. 12122 * Fix a markup problem with the wildcarded enumerant names in a NOTE in 12123 the <<textures-texel-replacement,Texel Replacement>> section. 12124 * Fix missing attributes in the XML interface for 12125 elink:VkExternalMemoryHandleTypeFlagBitsNV and 12126 elink:VkExternalMemoryFeatureFlagBitsNV (KhronosGroup/Vulkan-Hpp issue 12127 25) 12128 * Cleanup reference page builds so only core pages are built for releases. 12129 12130----------------------------------------------------- 12131 12132Change log for August 26, 2016 Vulkan 1.0.25 spec update: 12133 12134 * Bump API patch number and header version number to 25 for this update. 12135 * Structurally change the specification so that multiple extensions are 12136 included in the +1.0+ git branch, and specifications will include or not 12137 include those extensions at build time based on options passed to the 12138 Makefile. See +doc/specs/vulkan/README.html+ and the ``Layers and 12139 Extensions'' section of the ``Vulkan Documentation and Extensions'' 12140 document for more information on this change. 12141 * Register and publish new extensions in the single-branch form: 12142 ** +VK_NV_external_memory_capabilities+ 12143 ** +VK_NV_external_memory+ 12144 ** +VK_NV_external_memory_win32+ 12145 ** +VK_NV_win32_keyed_mutex+ 12146 12147GitHub Issues: 12148 12149 * Clarify description of GetInstanceProcAddr and GetDeviceProcAddr (public 12150 issue 212). 12151 * Add SPIR-V <<textures-operation-validation, instruction validation>> for 12152 single-sampled images (public issue 316). 12153 * Fix spelling of ``tesselation'' in a few places and note it as an 12154 exception to the American spelling rules convention (public issue 12155 327). 12156 * Fix Makefile to create output directory for ``styleguide'' 12157 target (public issue 329). 12158 * Fix numerous minor issues with incorrectly tags on enumerant names and 12159 table titles (public issue 330). 12160 * Generate specversion.txt date in UTC time and RFC 2822 format 12161 (public issue 335). 12162 * Convert link to the SPIR-V Specification for 12163 flink:VkShaderModuleCreateInfo into an internal link to the normative 12164 reference (public issue 336). 12165 * Add ename:VK_ERROR_OUT_OF_MEMORY error code to 12166 flink:vkCreateDebugReportCallbackEXT (public issue 337). 12167 12168Internal Issues: 12169 12170 * Update style guide regarding use of code:NULL and dname:VK_NULL_HANDLE 12171 (internal issue 393). 12172 * Change the definition of latexmath:[$q$] in the 12173 <<textures-image-level-selection,texture image level selection>> section 12174 to be the index of the maximum defined level for the view, not the 12175 number of levels in the view (internal issue 406). 12176 * Allow developers to override dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE 12177 with their own binary-compatible definition (internal issue 439). 12178 * Fix +vk_platform.h+ conditional logic causing compile failure with some 12179 Android compilers (internal issue 441). 12180 * Implement the single-branch model as described above (internal issue 12181 461). 12182 12183----------------------------------------------------- 12184 12185Change log for August 12, 2016 Vulkan 1.0.24 spec update: 12186 12187 * Bump API patch number and header version number to 24 for this update. 12188 12189GitHub Issues: 12190 12191 * Fix type mismatch in swapchain image equivalency table (public issue 12192 289). 12193 * Fix a copy-and-paste error in the description of 12194 flink:vkGetSwapchainImagesKHR::pname:pSwapchainImages, that said it 12195 was an array of ``sname:VkSwapchainImageKHR structures'' instead of 12196 an array of ``sname:VkImage handles'' (public issue 292). 12197 * Specify that ename:VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT is only valid 12198 for ename:VK_IMAGE_TYPE_2D images (public issue 293). 12199 * Add a valid usage statement to flink:vkCmdExecuteCommands saying 12200 that when called outside a render pass instance, the secondary 12201 command buffers must not have been created with the 12202 ename:VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT (public issue 12203 297). 12204 * Fix description of +VK_NO_STDINT_H+ in the 12205 <<boilerplate-platform-macros,platform macros>> section (public 12206 issue 314). 12207 12208Internal Issues: 12209 12210 * Normalize the language for the remaining built-in variables in the 12211 <<interfaces-builtin-variables,Built-In Variables>> section. Fix 12212 code:FrontFacing and code:HelperInvocation, as they should be of 12213 code:boolean type rather than code:integer (internal issue 323). 12214 * Clarify that when ename:VK_WHOLE_SIZE is used for a buffer 12215 descriptor range, the effective range must still be within the max 12216 buffer range (internal issue 426). 12217 * Clarify that command buffers and descriptor sets are allocated 12218 rather than created. Also clarify when the recording state of a 12219 command buffer is relevant (internal issue 434). 12220 12221----------------------------------------------------- 12222 12223Change log for August 5, 2016 Vulkan 1.0.23 spec update: 12224 12225 * Bump API patch number and header version number to 23 for this update. 12226 12227GitHub Issues: 12228 12229 * Add explicit valid value attributes to pname:sType members in vk.xml 12230 (public issue 34). 12231 * Clarify usage of flink:vkGetInstanceProcAddr and 12232 flink:vkGetDeviceProcAddr (public issue 225). 12233 * Fix a copy-and-paste error in the description of 12234 pname:pSwapchainImageCount saying that it was the count of ``format 12235 pairs'' instead of ``swapchain images'' (public issue 292). 12236 * flink:vkCmdExecuteCommandBuffers requires all command buffers to be 12237 allocated from command pools created for the same queue family (public 12238 issue 296). 12239 * Remove bogus +optional+ attribute for 12240 flink:vkEnumerateDeviceLayerProperties::pname:physicalDevice from vk.xml 12241 (public issue 301). 12242 * Clean up the <<resources-image-views-compatibility,image and image view 12243 compatibility table>> reference and contents. Use full enumerant names. 12244 Refer to pname:layerCount in the ``view parameters'' column instead of 12245 pname:arrayLayers. Require N >= 1 for the cube array subview row, not 12246 just arrayLayers >= 6 N (public issue 304). 12247 * Modify description of <<resources-memory-aliasing,memory aliasing>> to 12248 be consistent with the description of 12249 <<resources-bufferimagegranularity,buffer image granularity>> (public 12250 issue 307). 12251 12252Internal Issues: 12253 12254 * Describe remaining +vk_platform.h+ macros in the <<boilerplate,API 12255 Boilerplate>> appendix (internal issue 6). 12256 * Clarify 12257 <<features-features-robustBufferAccess, pname:robustBufferAccess>> 12258 feature behavior; what memory can be accessed, how bounds checking is 12259 performed, and allowing for vectorization (internal issue 332). 12260 * Document markup for automatic extraction of reference pages from the 12261 spec sources in the style guide (internal issue 395). 12262 * Allow flink:vkCreateDisplayModeKHR to return 12263 ename:VK_ERROR_INITIALIZAION_FAILED_KHR if the user requests mode 12264 parameters that the specified display does not support (internal issue 12265 411). 12266 * Remove atomic counters (atomic_uint style) from KHR_vulkan_glsl, and 12267 more clearly remove the subroutine keyword alongside it (internal issue 12268 421). 12269 * Clarify behavior of flink:vkCmdBindDescriptorSets for descriptor sets 12270 not contained in the layout (internal issue 427). 12271 12272Other Commits: 12273 12274 * Change the order in which members of sname:VkAttachmentDescription and 12275 sname:VkPipelineInputAssemblyStateCreateInfo are described to match 12276 their order in the structures. 12277 12278----------------------------------------------------- 12279 12280Change log for July 22, 2016 Vulkan 1.0.22 spec update: 12281 12282 * Bump API patch number and header version number to 22 for this update. 12283 12284GitHub Issues: 12285 12286 * Translate the subpass self-dependency language into concrete 12287 validity statements, and added a validity statement about the 12288 restrictions on layout parameters (public issue 267). 12289 * Add validity requirement that 12290 slink:VkAttachmentDescription::pname:finalLayout and 12291 slink:VkAttachmentReference::pname:layout must not be 12292 ename:VK_IMAGE_LAYOUT_UNDEFINED or 12293 ename:VK_IMAGE_LAYOUT_PREINITIALIZED (public issue 268). 12294 * Clarify that slink:VkSubpassDescription::pname:pResolveAttachments 12295 layouts are used. Make language consistent with other attachment 12296 arrays (public issue 270). 12297 * Changed 64-bit definition for 12298 dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE to work for x32 platform in 12299 +vk.xml+ and the resulting +vulkan.h+ (public issue 282). 12300 * Add missing error return code for 12301 flink:vkEnumerateInstanceExtensionProperties and 12302 flink:vkEnumerateDeviceExtensionProperties (public issue 285) 12303 * Fix several cases of stext::VkStructName.memberName markup to 12304 stext::VkStructName::pname:memberName, to match other usage in the 12305 spec, and describe this markup in the style guide (public issue 12306 286). 12307 * Modified validity language generation script to avoid redundant 12308 common ancestor language if covered by generic parent language, and 12309 used `Both' instead of `Each' when appropriate (public issue 288). 12310 12311Internal Issues: 12312 12313 * Add language about behavior of flink:vkAllocateDescriptorSets when 12314 allocation fails due to fragmentation, a new error 12315 ename:VK_ERROR_FRAGMENTED_POOL, and a Note explaining the situation 12316 (internal issue 309). 12317 * For the features of code:PointSize, code:ClipDistance, and 12318 code:CullDistance, the SPIR-V capability is required to be declared 12319 on use (read or write) rather than on decoration (internal issue 12320 359). 12321 * Have desktop versions of GLSL respect precision qualification 12322 (code:mediump and code:lowp) when compiling for Vulkan. These will 12323 get translated to SPIR-V's code:RelaxedPrecision decoration as they 12324 do with OpenGL ES versions of GLSL (ESSL). The default precision of 12325 all types is code:highp when using a desktop version (internal issue 12326 360). 12327 * Add validity statement for slink:VkImageCreateInfo specifying that 12328 multisampled images must be two-dimensional, optimally tiled, and 12329 with a single mipmap level (internal issue 369). 12330 * Add validity statements to slink:VkImageViewCreateInfo disallowing 12331 creation of images or image views with no supported features. Made 12332 some slink:VkImageViewCreateInfo validity statements more precise 12333 and consistent. Added a Note to the <<features,features>> chapter 12334 about formats with no features (internal issue 371). 12335 * Remove +manpages+ from default build targets. Nroff outputs 12336 containing imbedded latexmath will not render properly. Fixing this 12337 is a lot of work for limited use cases (internal issue 401). 12338 12339Other Commits: 12340 12341 * Fix flink:vkRenderPassBeginInfo::pname:clearValueCount validity 12342 statement to be based on attachment indices rather than the number 12343 of cleared attachments 12344 (Vulkan-LoaderAndValidationLayers/issues/601). 12345 * Convert registry documentation from LaTeX to asciidoc source and 12346 rename from +src/spec/readme.tex+ to +src/spec/registry.txt+. 12347 * Fix lack of Oxford commas in validity language. 12348 * Lots of cleanup of generator scripts and Makefiles to move extension 12349 list for generator into the script arguments instead of the body of 12350 genvk.py, and express better dependencies between XML, scripts, and 12351 generated files. 12352 12353----------------------------------------------------- 12354 12355Change log for July 15, 2016 Vulkan 1.0.21 spec update: 12356 12357 * Bump API patch number and header version number to 21 for this update. 12358 12359GitHub Issues: 12360 12361 * Clarify how <<features-supported-sample-counts,sample count queries>> 12362 relate to the limits in slink:VkPhysicalDeviceLimits. (public issue 12363 185). 12364 * Clarify in the <<interfaces-iointerfaces,Shader Input and Output 12365 Interfaces>> section that shader output variables have undefined values 12366 until the shader writes to them (public issue 240). 12367 * Specify the implicit value of image parameters that cannot be set in 12368 slink:VkSwapchainCreateInfo::pname:flags, pname:imageType, 12369 pname:mipLevels, pname:samples, pname:tiling, and pname:initialLayout 12370 (public issue 243). 12371 * Make use of code:NULL and code:VK_NULL_HANDLE consistent in the 12372 VK_KHR_swapchain extension (public issue 276). 12373 12374Internal Issues: 12375 12376 * Clarify that presenting an image to a display surface swapchain applies 12377 the display surface's mode, and that destroying a display surface 12378 swapchain may reset the display's mode, in the VK_KHR_display_swapchain 12379 extension (internal issue 247). 12380 * Better describe what a slink:VkSurfaceKHR is, and that creating one does 12381 not set a mode, in the VK_KHR_display extension. This is a round-about 12382 way of pointing out that mode setting is not covered by the extension, 12383 but rather is performed as a side effect of presentation (internal issue 12384 247). 12385 * Add more valid usage statements to flink:vkQueuePresentKHR command when 12386 the VK_KHR_display_swapchain extension is present (internal issue 12387 247). 12388 * Add more includes to the VK_KHR_swapchain extension to better document 12389 interactions with VK_KHR_display_swapchain (internal issue 247). 12390 * Clarify restrictions on location aliasing in the 12391 <<fxvertex,Fixed-Function Vertex Processing>> section (internal issue 12392 370). 12393 * Add mathematical description of blitting to flink:vkCmdBlitImage, and 12394 link it to the <<textures,Image Operations>> chapter. Use mathematical 12395 notation for ranges of texel coordinates in the <<textures,Image 12396 Operations>> chapter. Fixed miscellaneous validity statements for 12397 flink:vkCmdBlit and slink:VkImageBlit (internal issue 382). 12398 12399Other Commits: 12400 12401 * Added a valid usage rule to flink:VkGraphicsPipelineCreateInfo that the 12402 ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST topology must only be used when 12403 tessellation shaders are used. 12404 * Expand the style guide into a formal "Procedures and Conventions" 12405 document. Add a API Naming Conventions section, move most of the API 12406 Specification Appendix C (Layers and Extensions) content into the new 12407 document, and define the resulting procedures as mandatory (where 12408 relevant). This more clearly separates use vs. specification of Vulkan 12409 APIs. 12410 * Update vk_platform.h to handle 32-bit ARMv8 binaries. 12411 * Various minor cleanups to the Makefile and build process. 12412 12413----------------------------------------------------- 12414 12415Change log for July 8, 2016 Vulkan 1.0.20 spec update: 12416 12417 * Bump API patch number and header version number to 20 for this 12418 update. 12419 12420GitHub Issues: 12421 12422 * Replaced existing reference pages by text automatically extracted from 12423 the specification source, or generated from vk.xml in some cases. This 12424 is not a complete solution for the reference pages, but puts them in a 12425 much better state. The ref pages (only) are now placed under a CC BY 12426 open source license, which is more current than the obsolete license 12427 previously used. Various minor tweaks to the Specification sources were 12428 made to enable this, and a new ``API Boilerplate'' chapter added to 12429 include definitions of all the entities in the API and +vulkan.h+ which 12430 were not already described in some form in the document. 12431 12432 Further improvements to the pages should not edit them directly, but 12433 instead concentrate on the specification source from which the ref pages 12434 are being extracted (public issues 44, 55, 160; internal issue 389). 12435 12436----------------------------------------------------- 12437 12438Change log for July 1, 2016 Vulkan 1.0.19 spec update: 12439 12440 * Bump API patch number and header version number to 19 for this 12441 update. 12442 12443GitHub Issues: 12444 12445 * Clarified how flink:vkGetImageSubresourceLayout interacts with image 12446 layouts (public issue 247). 12447 * Remove ename:VK_IMAGE_LAYOUT_PREINITIALIZED from valid usage rule for 12448 slink:VkImageMemoryBarrier::pname:oldLayout. It is only valid if it is 12449 the current layout (public issue 248). 12450 * Modify valid usage for flink:vkBindBufferMemory so implementations are 12451 free to require a different backing memory size than the buffer size 12452 (public issue 251). 12453 * Clarify that filtering rules for flink:vkCmdBlitImage always apply, and 12454 are usually no-ops if the formats are the same (public issue 253). 12455 * Remove 'non-sparse' from description of 12456 flink:vkGetBufferMemoryRequirements and 12457 flink:vkGetImageMemoryRequirements (public issue 257). 12458 * Remove ename:VK_ERROR_LAYER_NOT_PRESENT error code from 12459 flink:vkCreateDevice (public issue 259). 12460 * Change "must: not" to "should: not" in constraint on when 12461 flink:vkAcquireNextImageKHR is called in the VK_KHR_swapchain branch 12462 (public issue 262). 12463 * Change type of flink:vkCmdUpdateBuffer::pname:pData from 12464 basetype:uint32_t* to basetype:void* (public issue 263). 12465 * Change should: to must: in description of where additional segments are 12466 placed in the <<tessellation-tessellator-spacing,Tessellator Spacing>> 12467 section (public issue 264). 12468 12469Internal Issues: 12470 12471 * Normalize the language of all the compute shader built-ins in the 12472 <<interfaces-builtin-variables,Built-in Variables>> section (internal 12473 issue 323). 12474 * Remove definition of presentation engine internal queue lengths 12475 associated with ename:VK_PRESENT_MODE_FIFO_KHR and 12476 ename:VK_PRESENT_MODE_FIFO_RELAXED_KHR in the <<Window System 12477 Integration,wsi>> chapter (internal issue 374). 12478 * The language of a Note was too broad, and implied that loaders for a 12479 given OS would statically export functions for WSI extensions that 12480 were not relevant to (or supported on) the OS. Also, removed 12481 "Khronos-provided" since the Android loader is not (internal issue 380) 12482 12483Other Commits: 12484 12485 * Add ename:VK_INCOMPLETE to list of return values for 12486 flink:vkGetPipelineCacheData. Spec says this value is returnable, but it 12487 was not listed in the error codes. 12488 * Fix "corresponds" typo in member definitions for 12489 slink:VkSubpassDescription. 12490 12491----------------------------------------------------- 12492 12493Change log for June 24, 2016 Vulkan 1.0.18 spec update: 12494 12495 * Bump API patch number and header version number to 18 for this 12496 update. 12497 12498GitHub Issues: 12499 12500 * Added "queue operation" terminology, and modified spec to actually 12501 use this terminology (public issue 155). The act of submitting a 12502 piece of work to a queue now generates "operations" for the queue to 12503 execute, including operations to wait on/signal semaphores and 12504 fences. Synchronization waits on these operations, making execution 12505 dependency chains more obvious for semaphores and fences (though 12506 additional work is still needed here). These changes include: 12507 ** Overview of "queue submission" commands in chapter 12508 <<devsandqueues-submission>>. 12509 ** Updated descriptions for fence and semaphore waits and signals in 12510 the synchronization chapter <<synchronization-semaphores-waiting>>, 12511 <<synchronization-semaphores-signaling>> and 12512 <<synchronization-fences-waiting>>. 12513 ** Clarifications to semaphore and fence operation within queue 12514 submission functions. 12515 ** New glossary terms. 12516 ** Moved device idle and queue wait idle to synchronization chapter in 12517 order to describe them in terms of other synchronization 12518 primitives. 12519 ** Clarifications to semaphore and fence operation allowed removal of 12520 the "implicit ordering guarantees" section, as this information is 12521 now wholly covered where these primitives are described. 12522 *** The "host writes" section of this is still there for now - in its 12523 own section. This could probably be merged into other sections 12524 later. 12525 *** Modified fundamentals chapter on queue ordering to make sense in 12526 context of the new changes, and avoid duplication. 12527 <<fundamentals-queueoperation>> 12528 * Added "aspect" and "component" definitions to the glossary, and made 12529 sure these terms are referenced correctly (public issue 163). 12530 * Update valid usage for ftext:vkGet*ProcAddr to only include 12531 conditions that must be met to get a valid result. In particular, 12532 it is okay to call flink:vkGetDeviceProcAddr with any string and will 12533 get a code:NULL if that string is not a core Vulkan function or an 12534 enabled extension function (addresses but does not fully close 12535 public issue 214). 12536 * Change the WSI extension dependencies to refer to version 1.0 of the 12537 Vulkan API, instead of the pre-1.0-release internal revisions 12538 numbers (public issue 238). 12539 * Specified that <<interfaces-fragmentoutput,undeclared fragment 12540 shader outputs>> result in undefined values input to the blending 12541 unit or color attachment (public issue 240). 12542 * Fix latexmath:[$\leq$] operators turning into Unicode left arrow symbols 12543 (public issue 245). 12544 12545Internal Issues: 12546 12547 * Better documented that the registry XML "optional" tag for values 12548 only applies when that value is the size of an array (internal issue 12549 335). 12550 * Add a stronger definition for the valid usages of 12551 VkSpecializationMapEntry.size in the 12552 <<pipelines-specialization-constants,Specialization Constants>> 12553 section (internal issue 345). 12554 * Change code:OpName to code:OpDecorate (along with appropriate 12555 syntax) for vertex shader built-ins (internal issue 368). 12556 * Add missing ref pages (those which are not currently stubs) to 12557 apispec.txt for the single-page version of the ref pages (internal 12558 issue 378). 12559 12560Other Commits: 12561 12562 * Fix example in the <<descriptorsets,Descriptor Sets>> section to use 12563 M, N, and I, describing set, binding, and index, consistently 12564 throughout the example code. 12565 12566----------------------------------------------------- 12567 12568Change log for June 17, 2016 Vulkan 1.0.17 spec update: 12569 12570 * Bump API patch number and header version number to 17 for this 12571 update. 12572 12573GitHub Issues: 12574 12575 * Update description of vertex shader reuse in 12576 <<shaders-vertex-execution>> (public issue 106). 12577 * Simplify validity language around pname:ppEnabledExtensionNames and 12578 pname:ppEnabledLayerNames (in the <<initialization-instances>> and 12579 <<devsandqueues-device-creation>> sections) (public issue 214). 12580 * Add missing validity rule to flink:vkCmdBeginRenderPass requiring 12581 compatibility between slink:VkAttachmentDescription pname:initalLayout 12582 members and the corresponding attached framebuffer images (public issue 12583 233). 12584 * Fix Unicode arrows appearing in output instead of relational operators 12585 (public issue 239). 12586 * Correctly describe the required number of elements for 12587 code:TessLevelInner and code:TessLevelOuter arrays in the 12588 <<interfaces-builtin-variables,Built-In Variables>> section as two and 12589 four, respectively, instead of the other way around, and refer to this 12590 section from the <<tessellation,Tessellation>> chapter (public issue 12591 246). 12592 12593Internal Issues: 12594 12595 * Document deprecation of ename:VK_COLORSPACE_SRGB_NONLINEAR_KHR in the 12596 VK_KHR_surface extension, and of 12597 ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT in the 12598 VK_EXT_debug_report extension (internal issue 328). 12599 * Added language to define what a valid usage statement is and should be, 12600 with a note about some apparent weirdnesses this might entail (internal 12601 issue 357). 12602 12603Other Commits: 12604 12605 * Added missing ename:VK_ERROR_DEVICE_LOST error to 12606 flink:vkQueueBindSparse. 12607 12608----------------------------------------------------- 12609 12610Change log for June 10, 2016 Vulkan 1.0.16 spec update: 12611 12612 * Bump API patch number and header version number to 16 for this 12613 update. 12614 12615GitHub Issues: 12616 12617 * Clarify that integer border values are meant to be 0/1, and that 12618 integer texture lookups are sign-extended in the 12619 <<textures-format-conversion,Format Conversion>> and 12620 <<textures-texel-replacement,Texel Replacement>> sections (public 12621 issue 52). 12622 * Add logic to generate spec boilerplate without using the 'git' 12623 command-line client, needed when building from a tarball or another 12624 source of the Vulkan tree rather than a cloned git repo. Remove 12625 boilerplate as part of 'clean' target (public issue 195). 12626 * Document that color writes and clears to unused attachments have no 12627 effect for slink:VkClearAttachment and 12628 elink:VkColorComponentFlagBits (public issue 198). 12629 * Fixed flink:vkCmdExecuteCommands validity statement for 12630 sname:VkCommandBufferInheritanceInfo::pname:framebuffer. If used, it 12631 must match the framebuffer in the current renderpass instance 12632 (public issue 226). 12633 * Added valid usage language to require for all functions that set 12634 dynamic state that the currently bound graphics pipeline has the 12635 corresponding dynamic state enabled (public issue 235). 12636 12637Internal Issues: 12638 12639 * Clarify for flink:vkEnumerateInstanceExtensionProperties, in the 12640 <<extended-functionality-instance-extensions-and-devices, Instance 12641 Extensions and Device Extensions>> section, and in the 12642 <<glossary,Glossary>> section when functionality should be exposed 12643 as an instance extension, as a device extension, or as both 12644 (internal issue 109). 12645 * Place WorkgroupSize in alphabetical order in the 12646 <<interfaces-builtin-variables,Built-in Variables>> section 12647 (internal issue 323). 12648 * Corrects valid usage in vkEndRenderPass to only affect primary 12649 render passes, as secondaries may be entirely within a render pass, 12650 and should be able to be ended (previous language disallowed that) 12651 (internal issue 338). 12652 * Fix relational operator from <= to >= in the 12653 <<features-extentperimagetype,Allowed Extent Values>> section 12654 (internal issue 343). 12655 * Disallow recursion under SPIR-V entry points in the 12656 <<spirvenv-module-validation,Validation Rules within a Module>> 12657 section (internal SPIR-V issue 37). 12658 12659Other Commits: 12660 12661 * Use standard Python ElementTree package instead of lxml.etree in 12662 header / validation layer / include autogeneration from XML, 12663 reducing platform dependencies. 12664 12665----------------------------------------------------- 12666 12667Change log for May 27, 2016 Vulkan 1.0.15 spec update: 12668 12669 * Bump API patch number and header version number to 15 for this 12670 update. 12671 12672GitHub Issues: 12673 12674 * Fixed the <<glossary,Glossary>> entry for Fragment Input Attachment 12675 Interface to specify code:UniformConstant storage class (public issue 12676 156). 12677 * Disallow lazily allocated memory for buffers in the description of 12678 slink:VkMemoryRequirements::pname:memoryTypeBits (public issue 196). 12679 * Add numbered figure captions (public issue 219). 12680 * Fix output variable names in the <<fundamentals-fpfixedconv,Conversion 12681 from Floating-Point to Normalized Fixed-Point>> section and related 12682 minor normative language and markup cleanup (public issue 220). 12683 12684Internal Issues: 12685 12686 * Fix reference to nonexistent etext:VK_IMAGE_LAYOUT_TRANSFER_{SRC,DST}BIT 12687 to the actual etext:VK_IMAGE_LAYOUT{SRC,DST}_OPTIMAL (internal issue 12688 296). 12689 * Update the <<sparsememory-sparse-memory-aliasing,Sparse Resource 12690 Implementation Guidelines>> to refer to the correct feature names 12691 (internal issue 305). 12692 12693----------------------------------------------------- 12694 12695Change log for May 20, 2016 Vulkan 1.0.14 spec update: 12696 12697 * Bump API patch number and header version number to 14 for this 12698 update. 12699 12700GitHub Issues: 12701 12702 * Fix validity language for sname:VkCommandBufferAllocateInfo to 12703 impose range limits on pname:commandBufferCount (public issue 178). 12704 * Fix validity language for flink:vkCmdExecuteCommands to refer to the 12705 correct structure names (public issue 179). 12706 * Fix two copy-and-paste errors in the WSI queries, where the wrong 12707 term was used for what was being returned (public issue 206). 12708 * Add a note in the documentation of 12709 flink:vkGetPhysicalDeviceSurfaceFormatsKHR, about what it means if 12710 ename:VK_FORMAT_UNDEFINED is returned (public issue 207). 12711 12712Internal Issues: 12713 12714 * Clarify the usage and correct the name for the bitmask referenced in 12715 <<queries-pipestats,Pipeline Statistics Queries>> (internal issue 12716 334). 12717 12718Other Commits: 12719 12720 * Fix the names of decorations listed in the 12721 <<interfaces-builtin-variables,Built-in Variables>> section such 12722 that they match the SPIR-V specification. 12723 12724----------------------------------------------------- 12725 12726Change log for May 13, 2016 Vulkan 1.0.13 spec update: 12727 12728 * Bump API patch number and header version number to 13 for this 12729 update. 12730 12731GitHub Issues: 12732 12733 * Improve the description of ename:VK_PRESENT_MODE_FIFO_RELAXED_KHR in the 12734 VK_KHR_surface extension (public issue 174). 12735 * Clarify use of etext:*_SIMULTANEOUS_USE_BIT for secondary command 12736 buffers (public issue 182). 12737 * Fix typos in VK_KHR_wayland_surface extension where code:wl_device was 12738 used instead of code:wl_display (public issue 193). 12739 * Replaced {apiname} with ``Vulkan'' in XML validity statements (public 12740 issue 199). 12741 * Fix dead links for WSI handle types (public issue 200). 12742 * Use "signaled" instead of "signalled" spelling everywhere (public issue 12743 201). 12744 * Move readme.pdf target directory for XML schema documentation into the 12745 target generation directory, instead of leaving it checked into the spec 12746 source tree (public issue 203). 12747 * Fix duplicate 'which which' typo in description of 12748 elink:VkCommandPoolResetFlagBits (public issue 204). 12749 * Move the <<Programmable Primitive Shading>> section up one level, out of 12750 the <<drawing-primitive-topologies,Primitive Topologies>> section 12751 (public issue 209). 12752 12753Internal Issues: 12754 12755 * Clarify in the <<pipelines-cache,Pipeline Cache>> section that 12756 implementations should not manage the size of pipeline cache (internal 12757 issue 192). 12758 * Deprecate the concept of device layers and associated commands (internal 12759 issue 255). 12760 * Remove ename:VK_INCOMPLETE from the list of possible result codes of 12761 flink:vkGetPhysicalDeviceSurfaceCapabilitiesKHR (internal issue 314). 12762 * Add missing std140/std430 rule: the base alignment of a member following 12763 a structure is a multiple of the structure's base alignment (internal 12764 issue 321). 12765 * Fixes naming of the single elink:VkColorSpaceKHR enum from 12766 ename:VK_COLORSPACE_SRGB_NONLINEAR_KHR to 12767 ename:VK_COLOR_SPACE_SRGB_NONLINEAR_KHR in XML/header and the 12768 VK_KHR_swapchain and VK_KHR_surface extensions to match the style of the 12769 typename (space and color are two words, not one) (internal issue 322). 12770 * Make it clear that code:LocalInvocationID should only be applied to an 12771 input variable and normalize the language describing 12772 code:LocalInvocationID to the language for other compute shader 12773 variables in the <<interfaces-builtin-variables,Built-in Variables>> 12774 section, and add normative language (internal issue 323). 12775 * Clarify in the <<fundamentals-returncodes,Return Codes>> section that 12776 the result pointer may be modified for specific commands, even if a 12777 runtime error is returned (internal issue 324). 12778 12779----------------------------------------------------- 12780 12781Change log for April 29, 2016 Vulkan 1.0.12 spec update: 12782 12783 * Bump API patch number and header version number to 12 for this 12784 update. 12785 12786GitHub Issues: 12787 12788 * Change valid usage statements intended to be "sub-points" to 12789 be actual sub-points (public issue 66). 12790 * Replace double negation in description of 12791 slink:VkRenderPassBeginInfo::pname:pClearValues (based on public 12792 merge 142). 12793 * Cleanup minor typos in spec, ref pages and XML, including those 12794 proposed in public pull requests 144, 150, 151, 167, 168, 181, and 12795 186. 12796 * Use *strict subset* in describing the partial order of memory 12797 property types for slink:VkMemoryType, and update the style guide 12798 accordingly (public issue 190). 12799 * Fix various "a image" -> "an image" typos (public issue 191). 12800 * Note in the <<fundamentals-validusage,Valid Usage>> and 12801 <<extensions-interactions,Extension Interactions>> sections that 12802 structures defined by extensions which may be passed in structure 12803 chains using the ptext:pNext member must include initial 12804 ptext:sType and ptext:pNext members (public issue 192). 12805 12806Internal Issues: 12807 12808 * Remove duplicate language from the description of the pname:fence 12809 parameter to flink:vkQueueSubmit and improve validity language 12810 (internal issue 91). 12811 * Added documentation for "optional" attribute to XML readme.tex/pdf 12812 (internal issue 149). 12813 * Clarify the host-side data validity rules and behavior of 12814 flink:vkFlushMappedMemoryRanges and 12815 flink:vkInvalidateMappedMemoryRanges (internal issue 266). 12816 12817Other Commits: 12818 12819 * Added clarification to flink:vkCmdFillBuffer regarding the use of 12820 ename:VK_WHOLE_SIZE. 12821 * Fixed and documented implementation of "validextensionstructs" 12822 attribute. in XML processing scripts and readme.tex/pdf. 12823 * Add missing validity statements to flink:vkResetEvent and 12824 flink:vkCmdResetEvent. 12825 * Fix validity for the 12826 ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag. 12827 Correct all the draw/dispatch commands to mention optimally tiled 12828 images as well as linear tiled images, and say image VIEWS instead 12829 of images. Add validity statement to flink:vkCmdBlitImage 12830 * Replace the {apiname} macro with hardcoded "Vulkan", now that we have 12831 committed to that name. 12832 * Add the VK_AMD_rasterization_order extension to vk.xml. 12833 12834----------------------------------------------------- 12835 12836Change log for April 22, 2016 Vulkan 1.0.11 spec update: 12837 12838 * Bump API patch number and header version number to 11 for this 12839 update. 12840 12841GitHub Issues: 12842 12843 * Clarify the WSI extension language by switching from the fuzzier 12844 "ownership" language to more-consistent "acquire" language (public 12845 issue 117). 12846 * Clarify that memory barriers apply to all commands in the dependency 12847 chains in the flink:vkGetRenderAreaGranularity command and the 12848 <<synchronization-execution-and-memory-dependencies,Execution And 12849 Memory Dependencies>> section (public issue 132). 12850 * Clarify that a queue family is a set of queues in the 12851 <<fundamentals-execmodel,Execution Model>> section (public issue 12852 166). 12853 * Removed requirement from valid usage language that 12854 VkPresentInfoKHR::waitSemaphoreCount must be greater than 0 (public 12855 issue 171). 12856 * Fix broken internal links, describe structures consistently, use 12857 consistent style for SPIR-V codewords, and tag normative terms that 12858 were missing asciidoc tags (public issue 183 and ancillary 12859 markup/normative language fixes). 12860 * Fix typos for slink:VkPhysicalDeviceLimits member names in 12861 slink:VkImageCreateInfo validity language (public issue 184). 12862 12863Internal Issues: 12864 12865 * Document that the requested patch version number specified as part 12866 of slink:VkApplicationInfo::pname:apiVersion is ignored when 12867 creating an instance (internal issue 176). 12868 * Clarify handling of extension structs in the 12869 <<fundamentals-validusageValid Usage>> section (internal issue 254). 12870 * Update required slink:VkImageFormatProperties::pname:maxMipLevels to 12871 be limited to the maximum allowed mipmap pyramid size corresponding 12872 to the actual maximum supported size for the format (internal issue 12873 256). 12874 * Modify the <<features-extentperimagetype,Allowed Extent Values Based 12875 On Image Type>> section so the allowed maximum extent is the maximum 12876 image dimension supported for each dimension of the type of texture 12877 being queried (internal issue 257). 12878 * Clarify in the <<spirvenv-module-validation,Validation Rules within 12879 a Module>> section that at least one of the code:LocalSize execution 12880 mode or code:WorkgroupSize decoration is required for each compute 12881 shader entry point in a shader module (internal issue 279). 12882 * Add validity rules for formats in flink:vkCmdClearColorImage and 12883 flink:vkCmdClearDepthStencilImage (internal issue 283). 12884 * Clarify that slink:VkImageFormatProperties::pname:maxResourceSize is 12885 an upper bound, and that it may not be possible to create an image 12886 anywhere near that size (internal issue 284). 12887 12888Other Commits: 12889 12890 * Fix various minor markup errors reported by validation scripts. 12891 * Change copyright from Khronos Free Use License to Apache 2.0 license 12892 on relevant script/XML/header files. This does not affect the 12893 specification source copyright. 12894 12895----------------------------------------------------- 12896 12897Change log for April 15, 2016 Vulkan 1.0.10 spec update: 12898 12899 * Bump API patch number and header version number to 10 for this 12900 update. 12901 12902GitHub Issues: 12903 12904 * Slightly tweak the <<memory-allocation,Host Memory>> allocator language 12905 so that an application wrapping the standard C alloc/free/realloc 12906 functions is still correct - the previous language was too strong with 12907 regards to freeing memory. Also made certain scenarios clearer - an 12908 implementation may now continue without error if an allocation failed 12909 and it is able to continue correctly (public issue 21). 12910 * Require that etext:VK_*_CREATE_SPARSE_BINDING_BIT is set when the 12911 corresponding etext:VK_*_CREATE_SPARSE_RESIDENCY_BIT is used, in the 12912 <<sparsememory-miptail,Mip Tail Regions>> section and related commands 12913 flink:vkCreateBuffer and flink:vkCreateImage (public issue 84). 12914 * Update the <<features,Features, Limits, and Formats>> chapter to clarify 12915 interactions between optional features and dynamic state for the 12916 pname:depthBiasClamp and pname:wideLines features (public issue 89). 12917 * Describe the code:WorkgroupSize builtin in the 12918 <<interfaces-builtin-variables,Built-In Variables>> section, and update 12919 the <<compute-shaders,Compute Shaders>> section to further clarify how 12920 to set the number of workgroups to execute in a compute shader (public 12921 issue 145). 12922 * Use the term *image subresource* everywhere instead of *subresource*, 12923 except for the special case of *host-accessible subresource*, which may 12924 be either an image subresource or buffer range (public issue 120) 12925 * Add a note to the <<features,Features, Limits, and Formats>> section 12926 about extensibility of structures (Public issue 165). 12927 * Fix return code flink:vkAcquireNextImageKHR when the timeout parameter 12928 is 0 to ename:VK_NOT_READY instead of ename:VK_TIMEOUT (public issue 12929 170). 12930 * Fix typo in slink:VkLayerProperties::pname:apiVersion field (public 12931 issue 172). 12932 12933Internal Issues: 12934 12935 * Fix a few minor internally-detected typos. 12936 * Minor formatting tweaks to pseudocode in the <<resources,Resource 12937 Creation>> chapter (internal issue 179). 12938 * Fix typo in the definition of point sampling for 12939 elink:VkCullModeFlagBits (internal issue 268). 12940 12941----------------------------------------------------- 12942 12943Change log for April 8, 2016 Vulkan 1.0.9 spec update: 12944 12945 * Bump API patch number and header version number to 9 for this 12946 update. 12947 12948GitHub Issues: 12949 12950 * Fix memory type preorder definition and clarify example list and source 12951 code for slink:VkMemoryRequirements and slink:VkMemoryHeap (public issue 12952 26). 12953 * Ensure slink:VkAllocationCallbacks are properly defined (public issue 12954 73). 12955 * Clarify the WSI extension language by switching from the fuzzier 12956 "ownership" language to more-consistent "acquire" language (public issue 12957 117). 12958 * Add language allowing allocation and freeing of memory scoped to the 12959 duration of any API command in the <<memory-allocation,Memory 12960 Allocation>> section (public issue 136). 12961 * Clarify the explicit location assignment always overrides the inherited 12962 location in the <<interfaces-iointerfaces-locations,Location 12963 Assignment>> section, even for the first member of a block (public issue 12964 141). 12965 * Fixed references to 12966 slink:VkCommandBufferInheritanceInfo::pname:pipelineStatistics (public 12967 issue 158). 12968 * Fix name of slink:VkBufferCopy::pname:size field in validity language 12969 for flink:vkCmdCopyBuffer (public issue 162). 12970 12971Internal Issues: 12972 12973 * Update GL_KHR_vulkan_glsl specification to clarify disallowance of 12974 spec-const arrays in initializers (internal issue 248). 12975 * Clarify <<interfaces-iointerfaces-matching,Interface Matching>> section 12976 to state that user-defined variable interface must match too (internal 12977 issue 250). 12978 12979----------------------------------------------------- 12980 12981Change log for April 1, 2016 Vulkan 1.0.8 spec update: 12982 12983 * Bump API patch number and header version number to 8 for this 12984 update. 12985 12986GitHub Issues: 12987 12988 * Specify in the validity language for flink:vkBeginCommandBuffer that 12989 pname:commandBuffer must not currently be pending execution (public 12990 issue 96). 12991 * Describe depth comparison using the correct temporary variable names 12992 in the <<textures-depth-compare-operation,Depth Compare Operation>> 12993 section (public issue 100). 12994 * Clarify the order of descriptor update operations in the 12995 flink:vkUpdateDescriptorSets command (public issue 115). 12996 * Specify in the VK_KHR_swapchain extension that 12997 flink:vkAcquireNextImageKHR's pname:semaphore and pname:fence 12998 parameters cannot both be sname:VK_NULL_HANDLE (partly addresses, 12999 but does not fully close, public issue 117 / internal issue 246). 13000 * Change reference to the "lifetime" of a Vulkan command to 13001 "duration", and define the "duration" term (public issue 135). 13002 * Added valid usage language for slink:VkImageLayout to require both 13003 pname:height and pname:depth to be 1 for 1D images and pname:depth 13004 to be 1 for 2D images (public issue 137). 13005 * Fix SPIR-V example code in the 13006 <<descriptorsets-inputattachment,Input Attachment>> section to 13007 properly decorate the code:InputAttachmentIndex (public issue 139). 13008 * Fix reference to nonexistent pname:imageInfo in the description of 13009 flink:VkWriteDescriptorSet to refer to pname:pImageInfo (public 13010 issue 140). 13011 13012Internal Issues: 13013 13014 * Link to the fixed-function vertex chapter from the drawing chapter 13015 (internal issue 110) 13016 * Fix typo in slink:VkImageCreateInfo validity language: 13017 ptext:maxExtent.sampleCounts -> pname:sampleCounts (internal issue 13018 249). 13019 * Explain why the non-core token etext:VK_IMAGE_LAYOUT_PRESENT_SRC_KHR 13020 is used in the example in the 13021 <<synchronization-semaphores,Semaphores>> section (internal issue 13022 251). 13023 * Attempt to clarify in the VK_KHR_android_surface extension's 13024 <<platformQuerySupport_android,Android Platform Support>> section 13025 that there is no Android-specific WSI query, and why (internal issue 13026 252). 13027 13028Other Commits: 13029 13030 * Add missing language about ename:VK_INCOMPLETE being returned from 13031 array queries when the passed array is too short, in the 13032 VK_KHR_display, VK_KHR_swapchain, and VK_KHR_surface extensions. 13033 13034----------------------------------------------------- 13035 13036Change log for March 25, 2016 Vulkan 1.0.7 spec update: 13037 13038 * Bump API patch number and header version number to 7 for this 13039 update. 13040 13041GitHub Issues: 13042 13043 * Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict 13044 aliasing issues (public issue 14). 13045 * Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets 13046 validity language (public issue 33). 13047 * Add stub reference pages so xrefs to not-yet-written pages do not 13048 generate 404 errors. However, the actual content of these pages 13049 still needs to be filled in as time allows (public issue 44, but 13050 does not close that issue out). 13051 * Remove incorrect validity statement for 13052 flink:vkGetImageSparseMemoryRequirements (public issue 85). 13053 * Reword the 13054 <<features-limits-bufferImageGranularity,bufferImageGranularity>> 13055 feature in terms of "aliasing", and clarify that it applies to 13056 bindings in the same memory object (public issue 90). 13057 * Clarify the relationship of the slink:VkPhysicalDeviceLimits 13058 pname:maxViewportDimensions and pname:viewportBoundsRange limits 13059 (public issue 92). 13060 * Specify sparse unbound texture replacement in the 13061 <<textures-texel-replacement,Texel Replacement>> section 13062 independently of robust buffer access language (public issue 100). 13063 * Add the <<fundamentals-architecture-model,Architecture Model>> 13064 section to explain architecture constraints Vulkan has chosen to 13065 accept in order to enable portable and performant code (public issue 13066 122). 13067 * State that an object must not be destroyed until *all* (not *any*) 13068 uses of that object have completed (public issue 123). 13069 * Minor editorial cleanup (public issues 129, 134, 146, 148). 13070 * Add validity language for layer and extension names to 13071 slink:VkDeviceCreateInfo matching that used for 13072 slink:VkInstanceCreateInfo (public issue 130). 13073 * Clean up terminology for the case when the bits set in one bitmask 13074 are a subset of the bits set in another bitmask (public issue 138). 13075 * Document that input attachments are UniformConstant not Input, in 13076 the <<interfaces-inputattachment,Fragment Input Attachment 13077 Interface>> section (public glslang bug 169). 13078 13079Internal Issues: 13080 13081 * Add max enum values to "flag bits" enums (internal issue 136). 13082 * Clarify language around the various uses of the term "block" in the 13083 <<appendix-compressedtex-bc,Block Compressed Image Formats>> section 13084 (internal issue 202). 13085 * Removed "expand" dependency from <enums> groups in vk.xml and added 13086 auto-generation code in the scripts to infer it instead, to ensure 13087 consistency. This caused renaming of sname:VkColorSpaceKHR and 13088 sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those 13089 tokens are metadata, not part of the API, and the Vulkan WG is OK 13090 with this change. This change adds ranges to two additional enums 13091 that were missing them due to not defining the "expand" attribute 13092 (internal issue 217). 13093 * Tweak makefile to generate ref page nroff (.3) files in the right 13094 output directory, working around an a2x limitation (internal issue 13095 223). 13096 13097Other Commits: 13098 13099 * Add validity requirements for flink:vkCmdCopyQueryPoolResults 13100 pname:dstBuffer parameter. 13101 * Fix ref page build to generate .3 targets in the right output 13102 directory. 13103 13104----------------------------------------------------- 13105 13106Change log for March 10, 2016 Vulkan 1.0.6 spec update: 13107 13108 * Bump API patch number and header version number to 6 for this 13109 update. 13110 13111GitHub Issues: 13112 13113 * Define 'invocation group' for compute and graphics shaders. Cleanup 13114 definition and use of 'workgroup', and add glossary entries (public 13115 issue 1). 13116 * Various minor editorial fixes (public issue 33). 13117 * Clarify locations for block members in the 13118 <<interfaces-iointerfaces-locations,Location Assignment>> 13119 section (public issue 45). 13120 * Editorial fixes for <<commandbuffer-allocation,Command Buffer 13121 Allocation>> section (public issues 54, 59). 13122 * Clarify behavior of depth test in the <<fragops-depth,Depth Test>> 13123 section (public issues 80, 81). 13124 * Remove discussion of return codes from 13125 flink:vkGetPhysicalDeviceSparseImageFormatProperties and 13126 flink:vkGetImageSparseMemoryRequirements, which do not return values 13127 (public issue 82). 13128 * Allow flink:vkCmdDrawIndirect and flink:vkCmdDrawIndexedIndirect 13129 pname:drawCount of 0, as well as 1, when the multiDrawIndirect 13130 feature is not supported (public issue 88). 13131 * Remove confusing wording in the <<features-limits, Limits>> 13132 section describing the slink:VkPhysicalDeviceLimits 13133 pname:minTexelBufferOffsetAlignment, 13134 pname:minUniformBufferOffsetAlignment, and 13135 pname:minStorageBufferOffsetAlignment members as both minimums and 13136 maximums (public issue 91). 13137 * Clarified that only the RGB components should be affected in places 13138 where sRGB is referred to in the spec, such as ASTC formats. Minor 13139 re-wording to avoid "color space" when actively incorrect, now that 13140 we refer to the Data Format Spec which actually makes a distinction 13141 between color space and transfer function (public issue 94). 13142 * Treat pname:pPropertyCount == 0 consistently in 13143 flink:vkEnumerateInstanceLayerProperties and 13144 flink:vkEnumerateDeviceLayerProperties (public issue 99) 13145 * Cleanup minor editorial issues in chapters 14-17 (public issue 100). 13146 * Clarify definition of flink:vkEnumerateInstanceExtensionProperties 13147 and flink:vkEnumerateDeviceExtensionProperties (public issue 101). 13148 * Define the flink:vkEnumerateInstanceExtensionProperties and 13149 flink:vkEnumerateDeviceExtensionProperties pname:pLayerName 13150 parameter to be a pointer to a null-terminated UTF-8 string (public 13151 issue 101). 13152 * Rearrange "Missing information" references in mandatory format 13153 tables (public issue 101). 13154 * Clarify that the enumerated extensions returned by 13155 flink:vkEnumerateInstanceExtensionProperties and 13156 flink:vkEnumerateDeviceExtensionProperties will only include 13157 extensions provided by the platform or extensions implemented in 13158 implicitly enabled layers (public issue 101). 13159 * Miscellaneous editorial fixes. Include the Vulkan spec patch number 13160 in the PDF title. Fix label on <<fig-non-strict-lines,Non 13161 strict lines>> diagram. Use more easily distinguished symbols in 13162 tables in the <<features-required-format-support, Required 13163 Format Support>> section. Do not require FQDNs used as layer names be 13164 encoded in lower case if not possible, in the 13165 <<extensions-naming-conventions, Extension and Layer Naming 13166 Conventions>> section (public issues 101, 119, 121). 13167 13168Internal Issues: 13169 13170 * Fixed excessive spacing in tables in XHTML (internal issue 18). 13171 * Clarify that ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT 13172 applies to secondary command buffers. Previously spec only referred 13173 to the members of pname:pCommandBuffers being affected by this bit. 13174 Added a separate slink:VkSubmitInfo Valid Usage restriction 13175 specifying that ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT 13176 also applies to any secondary command buffers that are recorded into 13177 the primary command buffers in pname:pCommandBuffers (internal issue 13178 106). 13179 * Clarify that slink:VkDeviceCreateInfo::pname:pEnabledFeatures can be 13180 NULL (internal issue 117). 13181 * Remove "the value of" where it is redundant (e.g. speaking of an API 13182 parameter, struct member, or SPIR-V variable, but not when speaking 13183 of color components) (internal issue 175). 13184 * Forced patch version to always be 0 in the header. Add a 13185 "VK_API_VERSION_<major>_<minor>" macro for people to use to do the 13186 right thing. Add a VK_HEADER_VERSION which captures the header 13187 release number independent of the spec patch number (internal issue 13188 176). 13189 * Correct description of 13190 slink:VkPipelineShaderStageCreateInfo::pname:pName to "a pointer to 13191 a null-terminated UTF-8 string" (internal issue 197). 13192 13193Other Commits: 13194 13195 * Updated DataFormat spec reference to the new date for revision 5 of 13196 that spec. 13197 * Fixed KEEP option (to retain LaTeX intermediate files) in the 13198 Makefile to be included when edited there, as well as set on the 13199 command line. 13200 * Reserve and add "VK_IMG_filter_cubic" to the registry, and implement 13201 script functionality to add and remove validity from existing 13202 functions. Includes schema and readme changes. 13203 * Update GL_KHR_vulkan_glsl so push_constants do not have descriptor 13204 sets. 13205 13206----------------------------------------------------- 13207 13208Change log for March 4, 2016 Vulkan 1.0.5 spec update: 13209 13210 * Bump API patch number to 5 for this update. 13211 13212GitHub Issues: 13213 13214 * Correctly describe slink:VkPhysicalDeviceProperties pname:deviceName 13215 member as a string, not a pointer to a string. Also one typo fix for 13216 "hetereogeneous" (public issue 4). 13217 * Replace maynot: macro with may: not, and "may: or maynot:" with 13218 "may:" (public issue 4). 13219 * Clarify that redundantly setting the state of a fence or event has 13220 no effect (public issue 4). 13221 * Minor fixes to ref pages to track descriptions of memory bits that 13222 changed in the core spec. Fix name of a member in the description of 13223 sname:sname:VkPipelineMultisampleStateCreateInfo (public issues 8, 13224 13). 13225 * Remove redundant validity statement for 13226 sname:VkGraphicsPipelineCreateInfo::pname:stageCount (public issue 13227 14). 13228 * Fix typos in chapters 7-9 (public issue 14). 13229 * Clarify the example demonstrating the behavior of 13230 code:OpMemoryBarrier in the 13231 <<shaders-execution-memory-ordering,shader memory access 13232 ordering>> section (public issue 16). 13233 * Specify that freeing mapped memory implicitly unmaps the memory in 13234 the description of flink:vkFreeMemory (public issue 17). 13235 * Forbid allocation callbacks from calling into the API in the 13236 <<memory-allocation,memory allocation>> section (public issue 13237 20). 13238 * Add missing validity rules about size being greater than 0 and 13239 offset being less than size of object. Fix 13240 flink:VkMappedMemoryRange's misinterpretation of offset (public 13241 issues 27, 31). 13242 * Add validity rule disallowing overlapping source/destination 13243 descriptors in flink:VkCopyDescriptorSet (public issue 32). 13244 * Clarify that array and matrix stride has to be a multiple of the 13245 base alignment of the array or matrix in the 13246 <<interfaces-resources-layout,Offset and Stride Assignment>> 13247 section (public issue 38). 13248 * Correct parenthesis floor nesting error in equation for 13249 <<textures-RGB-sexp,RGB to shared exponent conversion>>. 13250 Clarify case of when exp' is forced to 0, avoiding log2(0) undefined 13251 problem (public issue 40). 13252 * Remove redundant statement from the code:FragDepth description in 13253 the <<interfaces-builtin-variables,Built-In Variables>> 13254 section (public issue 47). 13255 * Define the clamping of the 13256 <<textures-level-of-detail-operation,bias added to the scale 13257 factor>> by linking to the slink:VkPhysicalDevice feature 13258 pname:maxSamplerLodBias (public issue 64). 13259 * Fix typo "optimal linear resources" and clarify the set of resources 13260 <<features-limits-bufferImageGranularity,the 13261 pname:bufferImageGranularity resource>> applies to (public issue 13262 67). 13263 * Replace 'descriptor accessed by a pipeline' language for 13264 sname:VkDescriptorSetAllocateInfo with more precise phrasing about 13265 binding a descriptor set before a command that invokes work using 13266 that set (public issue 69). 13267 * tstripadj.svg contained an Inkscape tag which caused Firefox and IE 13268 11 to fail to render it, and was illegal SVG. Generating Plain SVG 13269 from the Inkscape SVG source fixes this (public issue 70). 13270 * Fix validity for sname:VkVertexInputBindingDescription and 13271 sname:VkVertexInputAttributeDescription numbers (public issue 72). 13272 13273Internal Issues: 13274 13275 * Clarify the meaning of 13276 ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in 13277 elink:VkFormatFeatureFlagBits with respect to depth compare 13278 (internal issue 107). 13279 * Added a note explaining that ename:VK_QUEUE_TRANSFER_BIT may or may 13280 not be reported for a queue family that already supports 13281 ename:VK_QUEUE_GRAPHICS_BIT or ename:VK_QUEUE_COMPUTE_BIT as the 13282 former is a strict subset of the latter ones (internal issue 116). 13283 * Add validity language for sname:VkDescriptorSetAllocateInfo about 13284 exceeding the descriptor pool capacity (internal issue 140). 13285 * Add ename:VK_INCOMPLETE success code for 13286 flink:vkEnumeratePhysicalDevices query (internal issue 163). 13287 13288Other Commits: 13289 13290 * Add the VK_NV_glsl_shader extension definitions to the API. 13291 * Update GL_KHR_vulkan_glsl with 1) origin_upper_left as default 2) 13292 specialization array constant semantics. 13293 * Corrected/updated Data Format Specification date. 13294 13295----------------------------------------------------- 13296 13297Change log for February 25, 2015 Vulkan 1.0.4 spec update: 13298 13299 * Bump API patch number from 3 to 4 for the first public update to the 13300 spec. Add patch number to the spec title (this will be done 13301 automatically from XML, later). 13302 * Fixes for numerous editorial issues. Regularize descriptions of 13303 variable-length array queries. Properly tag enumerants so they come 13304 out in the right font (many were mislabeled in usage tags in vk.xml, 13305 or not tagged). Spelling and markup corrections (public issue 4). 13306 * Fix typos and clearly separate description of different types of 13307 memory areas (public issue 5). 13308 * Use standards-compliant preprocessor guard symbols on headers 13309 (public issue 7). 13310 * Note that GitHub users cannot currently set labels on issues, and 13311 recommend a fallback approach (public issue 15). 13312 * Use latexmath prefix on len= attributes (public issue 29). 13313 * Make flink:vkCmdUpdateBuffer pname:dataSize limit consistent (public 13314 issue 65). 13315 * Add VK_KHR_mirror_clamp_to_edge extension to core API branch, as an 13316 optional feature not introducing new commands or enums (internal 13317 issue 104). 13318 * Cleanup invariance language inherited from the GL specification to 13319 not refer to nonexistent (GL-specific) state (internal issue 111). 13320 * Modify the flink:vkCmdDrawIndexed pname:vertexOffset definition to 13321 not be the "base offset within the index buffer" but rather the 13322 "value added to the vertex index before indexing into the vertex 13323 buffer" (internal issue 118). 13324 * Fix drawing chapter in the "Programmable Primitive Shading" section 13325 where it described categories of drawing commands. It referenced 13326 flink:vkCmdDrawIndexed twice. Replace the second reference with 13327 flink:vkCmdDrawIndexedIndirect (internal issue 119). 13328 * Typo fixed in <<sparsememory-examples-advanced,Advanced Sparse 13329 Resources>> sparse memory example (internal issue 122). 13330 * Add flink:VkDisplayPlaneAlphaFlagsKHR to <require> section of 13331 VK_KHR_display extension (internal issue 125) 13332 * Add missing optional="false,true" to 13333 flink:vkGetImageSparseMemoryRequirements 13334 pname:pSparseMemoryRequirementCount parameter (internal issue 132) 13335 * Rename ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT to 13336 ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT 13337 (internal issue 133) 13338 * Fix a handful of broken cross-references in the 13339 <<samplers,Samplers>> chapter (internal issue 134). 13340 * Fix "Input Attachment" GLSL example to use correct syntax (internal 13341 issue 135). 13342 * Update XML schema and documentation to accommodate recently added 13343 attributes for validity. Add some introductory material describing 13344 design choices and pointing to the public repository to file issues. 13345 * Put include of validity in the core spec extensions chapter on its 13346 own line, so that asciidoc is happy. 13347 * Fix vertexOffset language to specify that it is the value added to 13348 the vertex index before indexing into the vertex buffer, not the 13349 base offset within the index buffer. 13350 * Fix error in the description of flink:vkCmdNextSubpass. 13351 13352----------------------------------------------------- 13353 13354February 16, 2016 - Vulkan 1.0 initial public release 13355 13356