Quick Introduction to Mesh Shaders (OpenGL and Vulkan)
0 Members and 1 Guest are viewing this topic.
Change log for April 26, 2020 Vulkan 1.2.139 spec update: * Update release number to 139 for this update.Github Issues: * Configure Github CI with Azure pipelines and the Khronos Docker build image (public pull request 1141). * Move NOTE in flink:vkEnumerateInstanceVersion prior to valid usage statements (public pull request 1237). * Add `implicitexternsyncparams` to flink:vkDestroyInstance for slink:VkPhysicalDevice objects (public pull request 1244). * Note in the style guide that extension names are used as preprocessor symbols in all the generated Vulkan headers (public pull request 1245). * Move NOTE about app use of `switch` statements and Vulkan API enums from the style guide into the <<fundamentals-validusage-enums, Valid Usage for Enumerated Types>> section (public pull request 1246). * Modify generator script to use Unix newlines on all platforms (public pull request 1250).Internal Issues: * Allow ename:VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT error to be generated by flink:vkQueuePresentKHR (internal issue 1932). * Update references to the SPIR-V Specification to version 1.5.3 (internal issue 1957). * Add a \<comment> explaining why the bitfields defined for slink:VkAccelerationStructureInstanceKHR in `vk.xml` are non-normative (internal issue 1975). * Add valid usage statement for flink:vkBindImageMemory2::pname:pBindInfos to prevent binding disjoint memory twice (internal merge request 3696). * Add valid usage statements to flink:vkGetBufferMemoryRequirements, flink:vkGetImageMemoryRequirements, and slink:VkBufferMemoryRequirementsInfo2 requiring that external Android hardware buffers be bound to memory (internal merge request 3717). * Fix implicit valid usage statement generation script for handle parameters with `optional="false,true"` XML attributes (internal merge request 3753).New Extensions: * `<<VK_EXT_robustness2>>` * `<<VK_QCOM_render_pass_shader_resolve>>`
Change log for May 3, 2020 Vulkan 1.2.140 spec update: * Update release number to 140 for this update.Github Issues: * Add `vk.xml` `noautovalidity` attribute to flink:vkCmdBindTransformFeedbackBuffersEXT::pname:pSizes to cause change in the generation of implicit valid usage statement for pname:bindingCount (public issue 1227). * Remove the special tokens (not part of the Vulkan API) suffixed with etext:*_BEGIN_RANGE etext:*_END_RANGE, and etext:*_RANGE_SIZE from the generated C headers, after consultation with downstream components and ISVs and advanced warning to the developer community (public issue 1230, internal issue 872). *Note* if you absolutely require these tokens for some reason, you can still build a version of the header which restores them. Edit `scripts/genvk.py` to add the parameter `genEnumBeginEndRange = True` to the `CGeneratorOptions` objects for the header file targets you want to restore. See the version of `genvk.py` in the 1.2.139 spec update for an example. * Add valid usage statement to slink:VkApplicationInfo requiring that pname:apiVersion be greater than or equal to dlink:VK_API_VERSION_1_0 (public pull request 1252). * Add \<implicitexternsync> tags to `vk.xml` for flink:vkDestroyDevice slink:VkQueue objects received from pname:device (public pull request 1255). * Fix typo in slink:VkBufferMemoryBarrier language (public pull request 1257).Internal Issues: * Automatically generate interface lists for extension appendices from `vk.xml` using a new interface generator script, and update the style guide's description of these appendices accordingly (internal issue 977, internal merge request 3819). * Add transitive language to the <<formats-compatible-planes, Compatible formats of planes of multi-planar formats>> section to pull in format compatibility classes as well (internal issue 1615). * Add valid usage statements to ftext:vkCmdBuildAccelerationStructure*KHR, flink:vkCmdCopyAccelerationStructureToMemoryKHR, and flink:vkCmdCopyMemoryToAccelerationStructureKHR for structure builds bound to device memory (internal issue 2033). * Don't generate etext:*_MAX_ENUM values in documentation generators, since they're not part of the API, and only meaningful on compiled headers (internal issue 2056). * Remove special lifetime rules for pipelines in the <<fundamentals-objectmodel-lifetime-cmdbuffers>> section (internal issue 2068). * Improve valid usage statements for ftext:vkCmdTraceRays*, share more common VUs between ftext:vkTraceRays*, and add ftext:vkCmdTracerays* VUs for bound buffers. Improve documentation for the pname:raygenShaderBindingOffset parameters and fork `NV` and `KHR` valid usage statements, since the shader binding table is described differently (internal issues 2075, 2136). * Clarify lifetime of acceleration structure build inputs for flink:vkCreateAccelerationStructureKHR (internal issue 2077). * Add a Note to the <<framebuffer-blending, Blending>> section to stop claiming that blending is ignored for all integer formats (internal issue 2098). * Mark handle parameters of some ftext:vkDestroy* commands as `optional` and `externsync="true"` in `vk.xml` (internal issue 2129). * Add missing `:refpage:` attributes for ray tracing common valid usage statements (internal issue 2141). * Redefine fragment to include the possibility of it covering multiple pixels. This affects many parts of the specification including the <<pipelines, Pipelines>>, <<primsrast, Rasterization>>, and <<fragops, Fragment Operations>> chapters, the `<<VK_EXT_post_depth_coverage>>` appendix, the `Coverage*` and `Sample Index` glossary entries, the code:SampleId and code:SampleMask definitions in the <<interfaces-builtin-variables, Built-In Variables>> section, and the <<shaders-fragment-execution, Fragment Shader Execution>>, <<shaders-fragment-earlytest, Early Fragment Tests>>, and <<textures-texel-coordinate-systems, Texel Coordinate Systems>> sections (internal merge request 3568). * Refactor `scripts/genvk.py` script to specify generator and generator options to the `Registry` object before loading XML. This allows generator options to influence behavior such as reparenting enum elements from feature/extension elmements to the enums they are being added to, which is desirable for generating complete feature lists for an extension or core version (internal merge request 3789). * Raise a fatal error (instead of a warning) in `scripts/generator.py` when two enumerants that are not aliased have the same value, so that CI will fail (internal merge request 3807). * Remove accidentally duplicated slink:VkSubpassDependency2 valid usage statement 03093 (internal merge request 3826).New Extensions: * `<<VK_EXT_private_data>>` * `<<VK_EXT_custom_border_color>>`
The 'VK_EXT_private_data' extension is a device extension which enablesattaching arbitrary payloads to Vulkan objects.It introduces the idea of private data slots as a means of storing a 64-bitunsigned integer of application defined data.Private data slots can be created or destroyed any time an associated deviceis available.
This extension provides cross-vendor functionality to specify a customborder color for use when the sampler address modeename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER is used.
Change log for May 15, 2020 Vulkan 1.2.141 spec update: * Update release number to 141 for this update. * *Note*: Using the default build options, specification outputs will now be created in `gen/out/` instead of `out/`, and header files will be created in `gen/include/vulkan` instead of `include/vulkan`. This can be overridden using the `-genpath` option to the frontend scripts like `makeAllExts` and `makeSpec`, or by specifying `GENERATED=*path*` on the make command line when invoking it directly.Github Issues: * Assign new elink:VkDriverId and elink:VkVendorId enums for Mesa (public issue 1256).Internal Issues: * Fix a typo in the <<fragops-stencil, Stencil Test>> section, removing a sentence fragment accidentally left over from an earlier merge conflict resolution (internal issue 2158). * Typo fixes for flink:vkGetRayTracingShaderGroupHandlesKHR and flink:vkGetRayTracingCaptureReplayShaderGroupHandlesKHR valid usage statements (internal merge request 3831). * Add a `requiredBy` dictionary to the generated `vkapi.py` showing which core versions or extensions require each API (internal merge request 3832). * Allow specifying multiple API names for and tags in registry processing scripts. Update the registry schema documentation accordingly, and remove the redundant `xml_supported_name_of_api` method from the VulkanConventions object (internal merge request 3836). * Consolidate generated intermediate files and output documents into $(GENERATED) directory, add -genpath option to scripts requiring them, and modify Makefile accordingly. Add a new `makeSpec` script which combines and extends the functionality of the `makeExt`, `makeKHR`, and `makeAllExts` scripts (internal merge requests 3837, 3838, 3840, 3841). * Add "`runtime`" to style guide and use that spelling consistently (internal merge request 3843).
Change log for June 1, 2020 Vulkan 1.2.142 spec update: * Update release number to 142 for this update.Github Issues: * Add boilerplate descriptions of reserved bitmask types (public pull request 1265). * Move dynamic state valid usage statements from slink:VkPipelineViewportExclusiveScissorStateCreateInfoNV and VkPipelineViewportShadingRateImageStateCreateInfoNV to slink:VkGraphicsPipelineCreateInfo, where they are testable, and make corresponding tweaks in `vk.xml` (public pull request 1268). * Add missing flink:vkDestroyPrivateDataSlotEXT explicit valid usage statement (public pull request 1269). * Cast arguments of dlink:VK_MAKE_VERSION macro to code:uint32_t to avoid compiler warnings (public pull request 1279).Internal Issues: * Update <<fundamentals-validusage-pNext, description of pname:pNext chains>> to allow structures in the chain to be defined by either core versions or extensions. Add the new term "`extending structure`" to the glossary to describe such structures, and use it in place of "`extension structure`". Update the style guide accordingly (internal issue 1083). * Add a comment to the beginning of generated API includes showing which combinations of API core versions and extensions provide that API, based on the explicit requirements in the API XML. This does not yet document enumerants introduced by extending a base enum type (internal issue 1431). * Relax the restriction that slink:VkBufferImageCopy::pname:bufferOffset must be a multiple of 4 for flink:vkCmdCopyBufferToImage and flink:vkCmdCopyImageToBuffer when run on graphics or compute queues, but not on transfer queues (internal issue 1701). * Document the types of "`special use`" extensions in the new <<extendingvulkan-compatibility-specialuse, Special Use Extensions>> section, summarize special uses in the generated metadata for extension appendices, and link back to the new section from each special use extension (internal issue 1938). * Clarify behavior of flink:vkGetDeferredOperationMaxConcurrencyKHR, allowing it to return zero for competed operations (internal issue 2036). * Allow flink:vkGetInstanceProcAddr to resolve itself with a `NULL` pname:instance (internal issue 2057). * Modify the valid usage statement ID assignment script to track a range of unused IDs for each extension branch under development, instead of only allowing VUID assignment in `master` and `devel` branches (internal issue 2100). * Add `selector` and `selection` attributes for unions in XML, to enable automatic generation of validation code (internal issue 2140). * Fix validity generator for stext:Vk*Flags types that are aliases, correcting generation of implicit valid usage for slink:VkAccelerationStructureInfoNV::pname:flags. Remove `noautovalidity` attribute for this member, as well as the previously written explicit valid usage (internal issue 2140). * Fix description of slink:VkTextureLODGatherFormatPropertiesAMD (internal issue 2189). * Remove redundant text about variables being explicitly laid out in the <<interfaces-resources-layout, Offset and Stride Assignment>> section (internal merge request 3691). * Fix conflicting slink:VkSamplerYcbcrConversionCreateInfo valid usage statements (internal merge request 3716). * Fix use of code:AHARDWAREBUFFER_USAGE_GPU_COLOR_OUTPUT to code:AHARDWAREBUFFER_USAGE_GPU_FRAMEBUFFER in valid usage statement 02386 for slink:VkMemoryAllocateInfo (internal merge request 3808). * Add missing `externsync` XML attributes for ftext:vkCmd* commands (internal merge request 3825). * Add missing `extends` attribute to slink:VkDevicePrivateDataCreateInfoEXT XML (internal merge request 3834). * Add code:RayGeometryIndexKHR to the `<<VK_KHR_ray_tracing>>` list of built-in variables (internal merge request 3853). * Restrict slink:VkBufferViewCreateInfo with ename:VK_WHOLE_SIZE, and round down results of division in calculating the test in the corresponding valid usage statements (internal merge request 3858). * Miscellaneous cleanup and reorganization of synchronization language in multiple places, and add the <<synchronization-image-barrier-layout-transition-order>> section (internal merge request 3861). * Redefine ename:VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT and ename:VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT as pseudo-stages in multiple places (internal merge request 3862). * Reorganize some valid usage statements, especially but not limited to stage mask parameters for slink:VkImageMemoryBarrier, slink:VkPipelineStageFlags, flink:vkCmdPipelineBarrier, flink:vkCmdResetEvent, flink:vkCmdSetEvent, flink:vkCmdWaitEvents, flink:vkCmdWriteBufferMarkerAMD, and flink:vkCmdWriteTimestamp as common valid usage statements, for future-proofing (internal merge requests 3864, 3865, 3866, 3867, 3868).
Change log for June 8, 2020 Vulkan 1.2.143 spec update: * Update release number to 143 for this update. * Reorganize some valid usage statements for slink:VkBufferMemoryBarrier, and for commands with elink:VkPipelineStageFlags parameters, as common valid usage statements, for future-proofing (internal merge requests 3863, 3867).Github Issues: * Move `translate_math.js` to the `scripts/` directory (public pull request 1286). * Minor cleanup of math markup (public pull request 1287).Internal Issues: * Misc. licensing updates (internal issue 1017): ** Replace the "`Exceptions`" clause on `vk.xml` with a dual Apache-2.0 OR MIT license, with agreement of downstream developers known to be affected by it. This enables use of `vk.xml` in GPLed projects under a more widely used licensing scheme. ** Use `SPDX-License-Identifier` tags in place of longer license text. This does not change the license terms on files other than `vk.xml`, but makes license statements in most files more compact. ** Reorganize repository documentation (README.adoc, COPYING.adoc, LICENSE.adoc, CONTRIBUTING.adoc, CODE_OF_CONDUCT.adoc, and BUILD.adoc) with a more widely used split of information; make all of these files Asciidoctor instead of Markdown format for consistency with the rest of the repository; describe use of SPDX identifiers; and point to full license text of the various OSS licenses used in the repository. * Add new <<resources-image-views-identity-mappings, text describing the identity swizzle>> incorporating the existing "`Component Mappings Equivalent To ename:VK_COMPONENT_SWIZZLE_IDENTITY`" table, and refer to this text in place of explicit references to ename:VK_COMPONENT_SWIZZLE_IDENTITY in many places (internal merge request 3399). * Require code:storageBuffer16BitAccess capability if `<<VK_KHR_16bit_storage>>` is enabled (internal merge request 3709). * Added XML schema and generator script extensions to support 64-bit flags and corresponding bitmasks (internal merge request 3718). * Correct <<interfaces-resources-standard-layout, Standard Buffer Layout>> alignment rules (internal merge request 3750). * Relax non-strict line constraints in the <<primsrast-lines-basic>> and <<primsrast-lines-bresenham>> sections (internal merge request 3792). * Add missing `structextends` attribute to the slink:VkPhysicalDevicePrivateDataFeaturesEXT definition in `vk.xml` (internal merge request 3873). * Move slink:VkImageFormatListCreateInfo valid usage statements to flink:vkCreateImageView (internal merge request 3879). * Update valid usage statements for slink:VkImageViewASTCDecodeModeEXT to allow ASTC HDR formats (internal merge request 3881). * Add missing extension dependency to `<<VK_KHR_pipeline_executable_properties>>` definition in `vk.xml` (internal merge request 3882). * Require the <<features-customBorderColors>> feature be enabled when using etext:VK_BORDER_COLOR_* in slink:VkSamplerCreateInfo (internal merge request 3884).
Change log for June 8, 2020 Vulkan 1.2.144 spec update: * Update release number to 144 for this update.Internal Issues: * Require `volatile` semantics for loading <<builtin-volatile-semantics, certain variables used in ray pipeline stages>> in the <<spirvenv-module-validation, Validation Rules within a Module>> and also the <<ray-tracing-shader-call, Shader Call Instructions>> section (internal issue 1924). * Created new <<potential-format-features, Potential Format Features>> section and corresponding glossary term, use the new term where appropriate, and add some related valid usage statements to flink:vkCmdBeginRenderPass, flink:vkCmdBeginRenderPass2, slink:VkSubpassDescription, and slink:VkSubpassDescription2 (internal issue 2031). * Add interaction with `<<VK_KHR_ray_tracing>>` and corresponding `NV` extension to flink:vkUpdateDescriptorSetWithTemplate (internal issue 2193). * Resolve collisions in common VUID names using `{stageMaskName}` qualifiers as part of the name and make fixes to `config/vu-to-json/extension.rb` to match (internal issue 2215). * Replace `shutil.move` operations with `copy` / `remove` in the base `generator.py` code, working around a problem with bind mounts while using the Khronos docker build image with `podman` instead of `docker` (internal merge request 3872). * Add a new <<spirvenv-extensions, SPIR-V Extensions>> subsection containing a table showing the corresponding Vulkan extension or core API required to support each of the SPIR-V extensions, replacing a harder-to-read list of extensions (internal merge request 3876). * Remove two redundant valid usage statements from flik:vkCmdResolveImage (internal merge request 3878). * Make repository REUSE-compliant, and run the `reuse` license checker as part of internal CI. While most files now have SPDX license identifier tags, some licenses are recorded in `.reuse/dep5` instead. Note that this does not change licenses in the repository (aside from adding some to files missing them), just insures that every file *has* an explicit license (internal merge request 3904). * Clarify that code:ImageMSArray is supported as part of the <<features-shaderStorageImageMultisample>> feature (internal merge request 3905). * Reorganize some valid usage statements for flink:vkCmdBlitImage, flink:vkCmdCopyBuffer, flink:vkCmdCopyBufferToImage, flink:vkCmdCopyImage, flink:vkCmdCopyImageToBuffer, and flink:vkCmdResolveImage as common valid usage statements, for future-proofing (internal merge requests 3906, 3907, 3908, 3909, 3910). * Add two valid usage statements to flink:vkAllocateMemory and flink:vkCreateSampler for allocation limits of slink:VkDeviceMemory and elink:VkSamplers, respectively (internal merge request 3923).
Change log for June 20, 2020 Vulkan 1.2.145 spec update: * Update release number to 145 for this update.Github Issues: * Fix `<<VK_EXT_conservative_rasterization>>` interactions with external SPIR-V and GLSL functionality in the extension appendix (public issue 1288).Internal Issues: * Break SPIR-V validation into two sections, <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> and <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> (internal issue 1598). * Add VkFormat enums for ASTC 3D formats to `vk.xml`. These values are slotted into the reserved, and still disabled extension 289. They will not appear in the published `vulkan_core.h` header and there is no published extension utilizing them, but this allows external projects such as KTX2 to use these values as part of their internal cross-API formats by generating a header including this disabled extension (internal merge requests 1662, 2216). * Synchronize that shader binding table accesses from ray tracing pipelines should be synchronized with the ename:VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR pipeline stage and an access mask of ename:VK_ACCESS_SHADER_READ_BIT (internal issue 1749). * Validate that 3D image views are not used as attachments in slink:VkFramebufferCreateInfo and slink:VkRenderPassAttachmentBeginInfo (internal issue 2142). * Increase the number of conditions recognized as build errors by the valid usage extraction plugin (internal issue 2215). * Relax slink:VkImportAndroidHardwareBufferInfoANDROID valid usage statement 01881 to support external formats (internal issue 2220). * Clearly define what "`optional capabilities`" means in the <<spirvenv-capabilities, Capabilities>> section, and specify that if *any* of the required core versions and/or extensions for a capability is enabled, then it is valid to use that capability (internal merge request 3827). * Add ename:VK_FORMAT_B5G5R5_UNORM_PACK16 and ename:VK_FORMAT_B5G5R5A1_UNORM_PACK16 to `<<VK_EXT_custom_border_color>>` as exceptions when <features-customBorderColorWithoutFormat>> is enabled (internal merge request 3833). * Add new <<spirvenv-format-type-matching, Image Format and Type Matching>> section and refer to it from elsewhere in the spec, clarifying rules regarding types for image operations (internal merge request 3916). * Fix typo sname:VkImageFormatProperties -> slink:VkFormatProperties (internal merge request 3921). * Move <<sparsememory-examples, sparse image examples>> to the Vulkan Guide (internal merge request 3930). * Fix typo in slink:VkAccelerationStructureBuildOffsetInfoKHR valid usage statement 03553 (internal merge request 3938). * Support <remove> tags for extending enumerants in XML (internal merge request 3942).New Extensions: * `<<VK_EXT_extended_dynamic_state>>`
Change log for July 3, 2020 Vulkan 1.2.146 spec update: * Update release number to 146 for this update.Github Issues: * Fix valid usage generation script for optional bitmasks in a non-optional array (public pull request 1228). * Add lunr to `package.json` and update the locally cached copy (public pull request 1238). * Require that newly released extensions have etext:*_SPEC_VERSION `1` (public issue 1263). * Add to the NOTE in slink:VkPhysicalDeviceIDProperties, advising implementations on returning unique pname:deviceUUID values and avoiding hardwired values, especially 0 (public issue 1273). * Add noscript fallback for HTML output (public pull request 1289). * Fix duplicated VUIDs in flink:vkCmdExecuteGeneratedCommandsNV (public pull request 1304). * Fix link markup in <<ray-traversal, Ray Traversal>> chapter, nested link markup, and linear equation markup in <<textures-unnormalized-to-integer>> (public pull requests 1305, 1306, 1307).Internal Issues: * Add comments to extending enums in the generated API interfaces showing which core version and/or extensions provide the enum, matching recent changes to show this information for commands and structures (internal issue 1431). * Only allow code:Invocation memory scope in the <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> section when memory semantics is *None* (internal issue 1782). * Make reflow script handle literal block delimiters and lines containing only whitespace properly (internal issues 2039, 2042). * Clarify definition of <<limits-maxFragmentCombinedOutputResources, pname:maxFragmentCombinedOutputResources>> (internal issue 2236). * Add missing `errorcodes=` XML attributes for some `<<VK_EXT_display_control>>` commands. * Clarify <<features-extentperimagetype, allowed extent values based on image type>> and the related <<limits-maxImageDimension1D>>, <<limits-maxImageDimension2D>>, <<limits-maxImageDimension3D>>, <<limits-maxImageDimensionCube>> limits (internal merge request 3922). * Remove redundant valid usage statement VUID-VkFramebufferCreateInfo-flags-03188 (internal merge request 3934). * Update style guide to recommend new extension spec language be contained in existing asciidoctor files, unless it's of enough scope to create a and new chapter (internal merge request 3955).New Extensions: * `<<VK_EXT_directfb_surface>>` (public pull requests 1292, 1294). * `<<VK_EXT_fragment_density_map2>>` (internal merge request 3914).
Change log for July 13, 2020 Vulkan 1.2.147 spec update: * Update release number to 147 for this update.Github Issues: * Allow physical-device-level structures in pname:pNext chains (public merge request 1303). * Remove elink:VkRenderPassCreateFlags from dependencies of `<<VK_QCOM_render_pass_transform>>` (public merge request 1311)Internal Issues: * Require that variables with code:HitAttributeKHR storage class must: <<spirvenv-module-validation-standalone, only be written in intersection shaders>> (internal issue 2103). * Specify that acceleration structure scratch buffer accesses from acceleration structure build should be synchronized with the ename:VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR pipeline stage and an access mask of ename:VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR or ename:VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR (internal issue 2173). * Improve description of 3D blitting in flink:vkCmdBlitImage (internal issue 2212). * Split <<fragops-coverage-reduction, Coverage Reduction>> section into multiple steps when multi-pixel fragments are involved: first per-pixel coverage is separated out, then per-sample coverage is generated for each color sample from per-pixel coverage. dditionally, the definition of "`color sample mask`" and discussions of it have been removed in favour of the per-color-sample coverage. (internal merge request 3951). * Modify slink:VkSamplerYcbcrConversionCreateInfo valid usage statements, as well as the <<textures-chroma-reconstruction, Chroma Reconstruction>> section, to make it clear the values of pname:xChromaOffset and pname:yChromaOffset are only validated when chroma channels are downsampled (internal merge request 3959). * Allow flink:vkGetBufferMemoryRequrements and flink:vkGetBufferMemoryRequrements2 to be called for an Android Hardware Buffer backed slink:VkBuffer, before it is been bound to memory (internal merge request 3982). * Remove *Draft* status from `<<VK_EXT_private_data>>` (internal merge request 3982). * Move valid usage statement from slink:VkProtectedSubmitInfo to slink:VkSubmitInfo (internal merge request 3987). * Add valid usage statements for protected buffers to slink:VkBindBufferMemoryInfo and slink:VkBindImageMemoryInfo (internal merge request 3988). * Add valid usage statement to slink:VkImageCreateInfo requiring that images with linear tiling cannot have sparse residency (internal merge request 3988). * Clarify that the ptext:maxPerStageDesciptorUpdateAfterBind* <<limits-required, Required Limits>> must be at least the corresponding non- ptext:UpdateAfterBind limits (internal merge request 3992).
Change log for July 19, 2020 Vulkan 1.2.148 spec update: * Update release number to 148 for this update.Github Issues: * Move description of slink:VkPhysicalDevicePerformanceQueryFeaturesKHR to the <<features>> chapter (public merge request 1312). * Fix a few broken internal and external links, and add stub description of empty elink:VkPipelineCompilerControlFlagsAMD type (public merge request 1313).Internal Issues: * Fix a few new places where "`undefined`" was used imprecisely, by clarifying the difference between undefined results and undefined behavior (internal issue 543). * Add valid usage statement to common indirect draw valid usage statements requiring that the pname:countBufferOffset to the count being used lie within the pname:countBuffer (internal issue 1309). * Add <<interfaces-raypipeline, Ray Tracing Pipeline Interface>> section (internal issues 2094, 2237). * Add valid usage statement to flink:vkCmdBeginTransformFeedbackEXT to require that the last vertex processing stage of the bound graphics pipeline be declared with the code:Xfb execution mode (internal issue 2124). * Do not allow flink:vkWaitForFences or flink:kWaitSemaphores to return timeouts before the period has expired, even though this is valid in some other synchronisation APIs (internal issue 2146). * Add elink:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT as an alias of elink:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT for clarity when interacting with D3D11 fences (internal issue 2175). * Ignore slink:VkMemoryAllocateInfo::pname:allocationSize when importing D3D resources (internal issue 2176). * Clarify the definition of flink:vkCmdBindVertexBuffers2EXT::pname:pSizes (internal issue 2262). * Fix markup error in slink:VkDescriptorSetLayoutBindingFlagsCreateInfo (internal merge request 3998). * Remove un-needed dependency of `<<VK_EXT_filter_cubic>>` on `<<VK_IMG_filter_cubic>>` (internal merge request 4000). * Minor textual clarifications in ray tracing extensions (internal merge request 4017). * Modify the validity generator so that, when generating valid usage for array lengths with a chain of parameters (e.g. pname:pFoo->bar), don' non-zero values are not required if any parameter in the chain is optional, and consider the last parameter only when deciding the type of the parameter (internal merge request 4021). * Fix a typo in the `<<VK_EXT_fragment_density_map2>>` extension appendix markup that caused refpage build warnings, and modify CI and `BUILD.adoc` to use `makeSpec` instead of the old `makeAllExts` script (internal merge request 4023).New Extensions: * `<<VK_EXT_image_robustness>>` * `<<VK_EXT_shader_atomic_float>>`
Change log for August 3, 2020 Vulkan 1.2.149 spec update: * Update release number to 149 for this update.Github Issues: * Fix valid usage statements to clarify interactions between `<<VK_EXT_extended_dynamic_state>>` and the old viewport related extensions `<<VK_NV_clip_space_w_scaling>>`, `<<VK_NV_shading_rate_image>>` (for the palettes), `<<VK_NV_viewport_swizzle>>`, and `<<VK_NV_scissor_exclusive>>` (public issue 1296).Internal Issues: * Clarify wording around non-uniform and non-constant descriptor access in <<interfaces-resources-descset, Descriptor Set Interface>> (internal issue 2163). * Add a missing code:StorageBuffer reference in the <<interface-resources, Shader Resource Interface>> section (internal issue 2191). * Refactor common valid usage statements for flink:vkBindBufferMemory, slink:VkBindBufferMemoryInfo, flink:vkBindImageMemory, and slink:VkBindImageMemoryInfo (internal issue 2260). * Copy over import/export behavior for sync file descriptor value `-1` from slink:VkImportFenceFdInfoKHR to slink:VkImportSemaphoreFdInfoKHR (internal issue 2274). * State that a deriviative group is a quad scope instance in the <<shaders-derivative-operations, Derivative Operations>> section (internal merge request 4025)New Extensions: * `<<VK_EXT_4444_formats>>`
Change log for August 10, 2020 Vulkan 1.2.150 spec update: * Update release number to 150 for this update.Github Issues: * Remove ename:VK_ERROR_TOO_MANY_OBJECTS as a required error code for flink:vkAllocateMemory and and flink:vkCreateSampler, and note that while it may still occur as a historical artifact, exceeding implementation limits will result in undefined behavior (public issue 1295). * Allow duplicate slink:VkDebugUtilsMessengerCreateInfoEXT structs in pname:pNext chain (public issue 1329) * Fix typo in slink:VkSubmitInfo valid usage statement 04120 (public merge request 1336). * Remove `KHR` suffix from some names promoted to core, in the <<renderpass, Render Pass>> chapter (public merge request 1341).Internal Issues: * Add ename:VK_ERROR_OUT_OF_HOST_MEMORY to `vk.xml` as a possible error code for some additional commands returing elink:VkResult, and add a note to the description of elink:VkResult giving some guidance on which commands may and may not return that error code (internal issue 2063). * Make a handful of terminology changes which move this repository closer to the conventions of the AOSP https://source.android.com/setup/contribute/respectful-code[Coding with Respect] document (internal issue 2282). * Update `<<VK_MVK_ios_surface>>` and `<<VK_MVK_macos_surface>>` documentation and mark them as deprecated and replaced by `<<VK_EXT_metal_surface>>` (internal merge request 4024). * Add a section to the style guide on markup for the copyright and license block on files in the repository (internal merge request 4036). * Add ename:VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT to `<<VK_EXT_validation_features>>` to enable synchronization validation (internal merge request 4037).
Change log for August 17, 2020 Vulkan 1.2.151 spec update: * Update release number to 151 for this update.Github Issues: * Clarify that the <<memory-protected-memory,Protected Memory>> is not cross-physical device (public issue 1335).Internal Issues: * Improve the layout of the <<Standard sample locations>> table to avoid overflow in the HTML output (internal issue 1354). * Also build core-only HTML spec in internal CI, to try and catch extension ifdef errors (should probably also do this in Azure CI on github) (internal issue 1770). * Add internal CI test for un-tagged uses of "`undefined`", to help make sure we've carefully considered all such uses (internal issue 2270). * Add style guide section "`Commands which Return Error Codes`" to give guidance on assigning error codes and when to use ename:VK_ERROR_OUT_OF_HOST_MEMORY (internal issue 2290). * Use the term "`reference monitor`" instead of "`mastering display`" for the `<<VK_EXT_hdr_metadata>>` extension (internal issue 2291). * Explicitly state that SPIR-V modules must be valid after specialization in slink:VkPipelineShaderStageCreateInfo and the <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> section (internal issue 2302). * Add slink:VkShaderModuleCreateInfo valid usage statements to match the SPIR-V capabilities (internal merge request 4047). * Add missing features to the <<[spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> section (internal merge request 4048). * Update slink:VkPhysicalDeviceVulkan11Properties to follow the same renaming of "`subgroups`" to "`groups`" previously done for slink:VkPhysicalDeviceSubgroupProperties (internal merge request 4050).
Change log for August 26, 2020 Vulkan 1.2.152 spec update: * Update release number to 152 for this update.Github Issues: * Add attachment image layout valid usage statements for slink:VkSubpassDescription and slink:VkSubpassDescription2 (public issue 1316). * Clarify and generalize use of "`graphics commands`" in the <<descriptorsets>> and <<pipelines>> chapters (public issue 1322). * Fix description of handle returned in slink:VkDeviceQueueInfo2 (public pull request 1347).Internal Issues: * Promote valid usage statements requiring multiple parameters of a copy command from the structure parameter descriptions to the command itself, significantly restructuring some of the common validity files (internal issue 2034). * Add details of clamping and quantization behavior for border colors that are outside the normal range for slink:VkSamplerCreateInfo and in the <<textures-operation-validation, Instruction/Sampler/Image View Validation>> and <<textures-texel-replacement, Texel Replacement>> sections (internal issue 2281). * Clarify in the <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> section that the value of code:XfbBuffer cannot differ for members of the same block (internal issue 2307). * Add valid usage blocks to the <<interfaces>> chapter where discussing allowed uses of built-in SPIR-V variables (internal merge requests 3933, 4090). * Refactor <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> constraints to single statement phrases not using ifdef::ed asciidoctor markup, and move some of them down to the <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> section (internal merge request 4054). * Fix XML attributes for some `<<VK_INTEL_performance_query>>` interfaces (internal merge request 4061). * Fix the "`Differences relative to `VK_KHR_shader_float16_int8``" paragraph in the <<versions-1.2, Version 1.2>> appendix (internal merge request 4062). * Fix several valid usage statements for flink:vkCmdBindTransformFeedbackBuffersEXT (public KhronosGroup/Vulkan-ValidationLayers issue 2105). * Clarify `shader_read_only` layout restrictions for slink:VkWriteDescriptorSet and elink:VkImageLayout (internal merge request 4060). * Clarify wording for required 4444 and {YCbCr} formats in the <<formats-mandatory-features-subbyte, Mandatory format support: sub-byte channels>> and <<formats-requiring-sampler-ycbcr-conversion, Formats requiring sampler {YCbCr} conversion for ename:VK_IMAGE_ASPECT_COLOR_BIT image views>> tables (internal merge request 4066). * Move a feature valid usage statement from flink:vkCmdDrawIndexedIndirect to its proper home in flink:vkCmdDrawIndexedIndirectCount, matching what the validation layer already does (internal merge request 4070). * Split valid usage statement for slink:VkWriteDescriptorSet into one statement for each descriptor type for image layout requirements (internal merge request 4071). * Add the a <<valid-imageview-imageusage>> definition to capture which elink:VkImageUsageFlagBits must be set when creating a sname:VkImageView, and use that definition to simplify slink:VkImageViewCreateInfo valid usage statements (internal merge request 4073). * Remove redundant valid usage statement 03269 for slink:VkPresentInfoKHR (internal merge request 4084). * Move valid usage statement from slink:VkProtectedSubmitInfo to slink:VkSubmitInfo (internal merge request 4085). * Update reference to pname:framebufferIntegerColorSampleCounts from the description of the <<limits-framebufferColorSampleCounts>> feature if Vulkan 1.2 is supported (internal merge request 4088).
Change log for September 7, 2020 Vulkan 1.2.153 spec update: * Update release number to 153 for this update.Github Issues: * Specification default branch for updates and PRs is now `main` instead of `master`. `master` branch still exists, but is frozen at the 1.2.152 level. If you are pulling content from this repository, please switch from `master` to `main` branch (internal issue 1351). * Fix slink:VkSubpassDependency2 link from slink:VkRenderPassCreateInfo2 (public issue 1358).Internal Issues: * Add developer documentation to the appendices for `<<VK_EXT_memory_budget>>`, `<<VK_KHR_buffer_device_address>>`, `<<VK_KHR_depth_stencil_resolve>>`, `<<VK_KHR_draw_indirect_count>>`, `<<VK_KHR_multiview>>`, `<<VK_KHR_sampler_ycbcr_conversion>>` (internal issue 2109). * Implement VUID expander treeprocessor plugin to make VUID text visible and searchable in generated outputs (internal issue 2253, 2258). * Clarify when acceleration structures can be indexed dynamically in the <<interfaces-resources-descset, Descriptor Set Interface>> section (internal issue 2316). * Add missing valid usage statement for flink:vkImportFenceWin32HandleKHR (internal merge request 4087). * Replace badly formatted VUID for `<<VK_AMD_display_native_hdr>>` (internal merge request 4096). * Add ray tracing acceleration structures to the lists of objects where appropriate in the <<fundamentals-objectmodel-lifetime, Object Lifetime>> section (internal merge request 4100). * Move GLSL and SPIR-V extension references in the extension appendices into the "`Interactions and External Dependencies`" sections (internal merge request 3969).
Change log for September 21, 2020 Vulkan 1.2.154 spec update: * Update release number to 154 for this update.Internal Issues: * Add a new subsection to the <<introduction-conventions, Document Conventions>> section describing how Informative language is tagged, for consistency with the spec copyright language, and update the <<markup-informative-notes, Informative Sections and Notes>> section of the style guide to track actual usage in the spec (internal issue 2195). * Clarify that the Top-Level Acceleration Structure keeps a reference to the Bottom-Level Acceleration Structures (internal issue 2313). * Add a few missing valid usage statements to flink:vkGetImageSubresourceLayout (internal merge request 4075). * Move the definition of elink:VkCullModeFlagBits in `vk.xml` to group with other bitmask types (internal merge request 4106). * Clean up a few valid usage statements for slink:VkImageView (internal merge request 4115).New Extensions: * `<<VK_KHR_copy_commands2>>` * `<<VK_KHR_portability_subset>>`
Change log for September 28, 2020 Vulkan 1.2.155 spec update: * Update release number to 155 for this update.New Extensions: * `<<VK_EXT_shader_image_atomic_int64>>`
Change log for October 5, 2020 Vulkan 1.2.156 spec update: * Update release number to 156 for this update.Github Issues: * Define memory import/export using the glossary term _payload_, rather than "`the same underlying memory`", for slink:VkFence, <<synchronization-semaphores-payloads, the semaphore payload section>>, and many places in the <<memory, Memory Allocation>> chapter (public issue 1145).New Extensions: * `<<VK_EXT_device_memory_report>>`
Change log for October 12, 2020 Vulkan 1.2.157 spec update: * Update release number to 157 for this update.Github Issues: * Fix `<<VK_KHR_shader_draw_parameters>>` missing as a feature alias (based on public pull request 1310). * Remove unnecessary sentence about device extensions implemented by layers in the flink:vkCreateDevice description (based on public pull request 1350). * Fix parenthesis in equation in the <<textures-texel-anisotropic-filtering, Texel Anisotropic Filtering>> section (public merge request 1365). * Add missing types to `vk.xml` for `<<VK_EXT_device_memory_report>>` (public issue 1374). * Add slink:VkBufferImageCopy valid usage statement for ename:VK_IMAGE_ASPECT_DEPTH_BIT and ename:VK_IMAGE_ASPECT_STENCIL_BIT pname:aspectMask values (public issue 2113).Internal Issues: * Remove unused etext:VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT token (internal issue 2275). * Clarify the specific stage requirement for synchronization between flink:vkCmdResetEvent and flink:vkCmdWaitEvents (internal merge request 4152).
Change log for October 19, 2020 Vulkan 1.2.158 spec update: * Update release number to 158 for this update.Internal Issues: * Clarify that linear filtering can be used with comparison sampling in valid usage statements for dispatched draw commands (internal issue 2365). * Add valid usage statement for flink:vkGetQueryPoolResults requiring pname:stride to be large enough for a single performance query result (internal issue 2380). * Move input attachment imageLayout to valid usage reference section, and refer to the <<attachment-type-imagelayout>> section to reduce complexity of valid usage statement (internal merge request 4117). * Update issues list for `<<VK_QCOM_render_pass_transform>>` (internal merge request 4175). * Add valid usage statement for slink:VkPipelineColorBlendStateCreateInfo::pname:attachmentCount (public Vulkan-ValidationLayers issue 2197).New Extensions: * `<<VK_KHR_fragment_shading_rate>>` * `<<VK_KHR_shader_terminate_invocation>>`
This extension adds the ability to change the rate at which fragments are shaded.Rather than the usual single fragment invocation for each pixel covered by a primitive, multiple pixels can be shaded by a single fragment shader invocation.
That SPIR-V extension provides a new instruction,code:OpTerminateInvocation, which causes a shader invocation to immediatelyterminate and sets the coverage of shaded samples to `0`; only previouslyexecuted instructions will have observable effects.