Apple Mac mini M1 Quick Test (OpenGL)
0 Members and 2 Guests are viewing this topic.
Change log for November 1, 2020 Vulkan 1.2.159 spec update: * Update release number to 159 for this update.Github Issues: * Clarify handle uniqueness with private data in the <<fundamentals-objectmodel-overview, Object Model>> section (public issue 1349). * Make ename:VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR an alias of ename:VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR and ename:VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR an alias of ename:VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR, for backwards compatibility while complying with naming conventions (public issue 1367). * Make ename:VK_SURFACE_COUNTER_VBLANK_EXT an alias of ename:VK_SURFACE_COUNTER_VBLANK_BIT_EXT for backwards compatibility while complying with naming conventions (public issue 1368). * Add a note to the <<memory-model-synchronizes-with, Synchronizes-With>> section that fragment shader interlock instructions don't perform implicit availability or visibility operations (public issue 1383).Internal Issues: * Dynamically generate SPIR-V <<spirvenv-capabilities-table, Capabilities>> and <<spirvenv-extensions-table, Extensions>> tables from new tags in `vk.xml`, exposing this information for other projects downstream (internal issue 2156). * Clarify when a <<renderpass-feedbackloop, feedback loop>> creates a data race (internal issue 2296). * Remove un-needed `noautovalidity` attributes on pname:pNext structure members, including a few cases where they were actually suppressing appropriate autogenerated validity statements (internal issue 2335; similar purpose to closed public PR 1339). * Clarify treatment of most-negative signed normalized fixed-point values in the <<fundamentals-fixedfpconv, Conversion from Normalized Fixed-Point to Floating-Point>> section (internal issue 2367). * Clarify that enabling an extension cannot change existing implementation behavior in the introduction to the <<extendingvulkan-extensions, Extensions>> chapter (internal issue 2375). * Add missing valid usage statement to flink:vkCreatePrivateDataSlotEXT (internal issue 2379). * Fix a misplaced asciidoctor `endif::` for flink:vkCreateSwapchainKHR (internal merge request 4177). * Add missing pname:aspectMask valid usage statement to slink:VkSubpassDescription2, matching slink:VkInputAttachmentAspectReference (internal merge request 4177). * Clarify <<interfaces, SPIR-V rules on decorations>> (internal spirv/SPIR-V issue 444). * Add missing `<<VK_VERSION_1_2>>` to all `<<VK_EXT_separate_stencil_usage>>` conditional markup (internal vulkansc/vulkansc issue 58).New Extensions: * `<<VK_QCOM_rotated_copy_commands>>` (internal merge request 4132).
Change log for November 9, 2020 Vulkan 1.2.160 spec update: * Update release number to 160 for this update.Github Issues: * Remove redundant input attachment valid usage statements from slink:VkAttachmentReference2 (public issue 1378).Internal Issues: * Restore "`Preamble`" section containing the copyright statement to the proper place in the chunked specification index (internal issue 2384). * Add missing valid usage statements for flink:vkCmdDrawIndirectByteCountEXT (internal issue 2400). * Move vertex input example from the <<fxvertex>> chapter to the Vulkan Guide (internal merge request 4162). * Clarify update-after-bind limits for dynamic buffers in the <<limits-maxDescriptorSetUpdateAfterBindUniformBuffersDynamic>> and <<limits-maxDescriptorSetUpdateAfterBindStorageBuffersDynamic>> sections (internal merge request 4186). * Clarify slink:VkFramebufferCreateInfo to allow read-only use of depth images as attachments and non-attachments (internal merge request 4191). * Remove redundant valid usage statement from slink:VkWriteDescriptorSet (internal merge request 4196). * Remove redundant valid usage statement from flink:vkFreeDescriptorSets (internal merge request 4198). * Fix typo in slink:VkDisplaySurfaceCreateInfoKHR valid usage statement (internal merge request 4199). * Remove redundant pname:firstViewport / pname:firstScissor limit checks in valid usage statements for flink:vkCmdSetViewportWScalingNV, flink:vkCmdSetScissor, flink:vkCmdSetExclusiveScissorNV, flink:vkCmdSetViewportShadingRatePaletteNV, and flink:vkCmdSetViewport (internal merge request 4200).New Extensions: * `<<VK_NV_fragment_shading_rate_enums>>`
This extension builds on the fragment shading rate functionality provided bythe VK_KHR_fragment_shading_rate extension, adding support for "supersample"fragment shading rates that trigger multiple fragment shader invocations perpixel as well as a "no invocations" shading rate that discards any portionsof a primitive that would use that shading rate.
Change log for November 16, 2020 Vulkan 1.2.161 spec update: * Update release number to 161 for this update.Github Issues: * Add some missing types to the table of handle type <-> etext:VK_OBJECT_TYPE_* enums in the debugging chapter (in response to a comment on public issue 1379).Internal Issues: * Move copyright statement into its own "`Preamble`" chapter to simplify preprocessing for chunked HTML target and make PDF / single-page HTML consistent with the chunked output (internal issue 2384). * Clarify that slink:VkExternalMemoryBufferCreateInfo::pname:handleTypes and slink:VkExternalMemoryImageCreateInfo::pname:handleTypes can be zero, and fix missing `optional` attribute in `vk.xml` for the latter case (internal issue 2388). * Make `specialuse` attributes in source markup expand properly in extension refpages (internal issue 2412). * Remove as yet unused slink:VkSemaphoreCreateFlagBits type from `vk.xml` (internal issue 2413). * Remove unreachable valid usage statements for slink:VkRenderPassMultiviewCreateInfo::pname:pViewMask in the slink:VkRenderPassCreateInfo pname:pNext chain, and for slink:VkRenderPassCreateInfo2::pname:viewMask. These statements cannot ever be violated given that view masks cannot exceed index 31 and pname:maxFramebufferLayers exceeds this value (internal merge request 4204). * Only allow forward pointers for physical storage buffers in the <<spirvenv-module-validation>> section (internal merge request 4206). * Fix a variety of minor valid usage statement issues with the `<<VK_KHR_fragment_shading_rate>>` extension (internal merge request 4207).
Change log for November 23, 2020 Vulkan 1.2.162 spec update: * Update release number to 162 for this update.Github Issues: * Mark pname:pNext pointers as `optional="true"` in `vk.xml` (public pull request 1396). * Make a formerly implicit slink:VkSubpassDescriptionDepthStencilResolve valid usage statement explicit (public Vulkan-ValidationLayers issue 2311).Internal Issues: * Clarify lifetime of push constants in the flink:vkCmdPushConstants description (internal issue 2168). * Clarify that flink:vkGetDeviceProcAddr is not intended to return physical device-level commands (internal issue 2344). * Tweak CI test for SPEC_VERSION to always succeed when the branch name exists, but the extension is disabled (internal merge request 4219).New Extensions: * Add final (non-provisional) versions of the Vulkan Ray Tracing extensions (internal merge request 4143): ** `<<VK_KHR_acceleration_structure>>` ** `<<VK_KHR_ray_tracing_pipeline>>` ** `<<VK_KHR_ray_query>>` ** `<<VK_KHR_pipeline_library>>` ** `<<VK_KHR_deferred_host_operations>>`
In order to be efficient, rendering techniques such as ray tracing need aquick way to identify which primitives may be intersected by a raytraversing the geometries.Acceleration structures are the most common way to represent the geometryspatially sorted, in order to quickly identify such potential intersections.
Rasterization has been the dominant method to produce interactive graphics,but increasing performance of graphics hardware has made ray tracing aviable option for interactive rendering.Being able to integrate ray tracing with traditional rasterization makes iteasier for applications to incrementally add ray traced effects to existingapplications or to do hybrid approaches with rasterization for primaryvisibility and ray tracing for secondary queries.To enable ray tracing, this extension adds a few different categories of newfunctionality: * A new ray tracing pipeline type with new shader domains: ray generation, intersection, any-hit, closest hit, miss, and callable * A shader binding indirection table to link shader groups with acceleration structure items * Trace ray commands which initiates the ray pipeline traversal and invocation of the various new shader domains depending on which traversal conditions are met
Rasterization has been the dominant method to produce interactive graphics,but increasing performance of graphics hardware has made ray tracing aviable option for interactive rendering.Being able to integrate ray tracing with traditional rasterization makes iteasier for applications to incrementally add ray traced effects to existingapplications or to do hybrid approaches with rasterization for primaryvisibility and ray tracing for secondary queries.Ray queries are available to all shader types, including graphics, computeand ray tracing pipelines.Ray queries are not able to launch additional shaders, instead returningtraversal results to the calling shader.
A pipeline library is a special pipeline that cannot be bound, instead itdefines a set of shaders and shader groups which can be linked into otherpipelines.This extension defines the infrastructure for pipeline libraries, but doesnot specify the creation or usage of pipeline libraries.This is left to additional dependent extensions.
The VK_KHR_deferred_host_operations extension defines the infrastructureand usage patterns for deferrable commands, but does not specify anycommands as deferrable.
Change log for November 30, 2020 Vulkan 1.2.163 spec update: * Update release number to 163 for this update.Github Issues: * Add XML mapping between VK_OBJECT_TYPE_* names and object type names (public issue 1379). * Remove *_READ_BIT from .srcAccessMask in code samples (public issue 1389). * Fix example code for slink:VkPushConstantRange to take elink:VkShaderStageFlags, not elink:VkPipelineStageFlags (public pull request 1393). * Add missing :refpage: attribute to slink:VkBlitImageInfo2KHR (public issue 1407). * Remove extraneous newline from texel block size table (public issue 1409).Internal Issues: * Update style guide to require `optional="true"` be set on pname:pNext structure members (internal issue 2428). * Sort conditionals in ifdef:: output of spirvcapgenerator for stability (internal issue 2430). * Fix slink:VkGraphicsPipelineShaderGroupsCreateInfoNV VU 02886 (internal merge request 4225).
Change log for December 7, 2020 Vulkan 1.2.164 spec update: * Update release number to 164 for this update.Github Issues: * Reserve vendor ID for PoCL (public pull request 1411).Internal Issues: * Add valid usage statements to ray tracing commands requiring they be given a ray tracing pipeline, and removing support for ename:ACCELERATION_STRUCTURE_TYPE_GENERIC in flink:vkCmdBuildAccelerationStructureNV (internal issue 2271). * Add valid usage statements disallowing the use of protected command buffers with Ray Tracing Pipelines and Ray Query instructions (internal issue 2409). * Move the un-numbered glossary / abbreviations / prefixes pseudo-chapters into a single appendix, so the table of contents looks cleaner (internal issue 2437). * Remove redundant valid usage statement from slink:VkCommandBufferAllocateInfo (internal merge request 4229). * Add missing <<features-inlineUniformBlock>> valid usage statement to slink:VkDescriptorSetLayoutBinding (internal merge request 4246). * Tweak example of Docker image invocation in `BUILD.adoc` (internal merge request 4249). * Capitalize code:LaunchIdKHR the same as in SPIR-V. code:LaunchSizeKHR and code:LaunchIdKHR are accessible in the code:CallableKHR shader stage (internal merge request 4252). * Remove unreachable (redundant) valid usage statements from flink:vkCmdBeginRenderPass and flink:vkCmdBeginRenderPass2 (internal merge request 4254). * Add missing `objtypeenum` attribute to `vk.xml` for slink:VkInstance (internal merge request 4263). * Change the chunked HTML target to use a more robust method of inserting additional Javascript and HTML to support the searchbox.New Extensions: * `<<VK_NV_acquire_winrt_display>>` * `<<VK_VALVE_mutable_descriptor_type>>`
This extension allows an application to take exclusive control of a displayon Windows 10 provided that the display is not already controlled by acompositor.When control is acquired the application has exclusive access to the displayuntil control is released or the application terminates.An application's attempt to acquire is denied if a different application hasalready acquired the display.
This extension allows applications to reduce descriptor memory footprint byallowing a descriptor to be able to mutate to a given list of descriptortypes depending on which descriptor types are written into, or copied into adescriptor set.
Change log for December 14, 2020 Vulkan 1.2.165 spec update: * Update release number to 165 for this update.Github Issues: * Fix interaction between imageless framebuffers and slink:VkImageViewUsageCreateInfo for slink:VkRenderPassBeginInfo, elink:VkImageUsageFlagBits, and in the <<resources-image-inherited-usage>> section (public issue 1391). * Fix `vk.xml` `optional` / `noautovalidity` attributes and corresponding explicit valid usage statements for slink:VkBuildAccelerationStructureModeKHR (public issue 1405). * Remove redundant / incomplete handle comments from `vk.xml` for elink:VkObjectType enumerants (public merge request 1412).Internal Issues: * Create valid usage statements from constraints in the <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> section (internal issue 2394). * Fix valid usage staement 01256 for slink:VkDisplaySurfaceCreateInfoKHR (internal issue 2404). * Expand and clarify the event race condition warning for flink:vkCmdWaitEvents to include two additional scenarios in which the effect and/or state of an event becomes undefined without additional synchronization operations (internal issue 2411). * Update valid usage statement for flink:vkSetLocalDimmingAMD (internal issue 2446). * Recast slink:VkStridedDeviceAddressRegionKHR valid usage statements in terms of size being non-zero, instead of pname:deviceAddress (internal issue 2450). * Add missing ename:VK_SHARING_MODE_CONCURRENT valid usage statement for flink:vkQueueSubmit (internal merge request 4244). * Add limits related to local size to the <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> section (internal merge request 4255). * Fix typo in description of slink:VkDescriptorUpdateTemplateEntry::pname:dstArrayElement (internal merge request 4260). * Remove repeated "`all`" from slink:VkGraphicsPipelineCreateInfo valid usage statements (internal merge request 4266). * Fix internal xrefs to the SPIR-V capabilities tables, which broke as a side effect of generating the table instead of handcoding it (internal merge request 4270). * Fix normative language for code:WorkgroupSize (internal merge request 4272). * Restore `len` attribute to `vk.xml` after its recent accidental removal from slink:VkDescriptorSetAllocateInfo::pname:pSetLayouts (internal merge request 4275). * Remove trailing periods from SPIR-V valid usage statements (internal merge request 4284). * Base PDF theme on builtin fallback theme, simplifying it and adding support for some math characters not found in the default theme (internal merge request 4287).
Change log for January 4, 2021 Vulkan 1.2.166 spec update: * Update release number to 166 for this update.Github Issues: * Add an Issue to the appendix for `<<VK_EXT_debug_report>>` discussing how to compare handles returned by the debug report callback to application handles (public issue 368). * Specify the purpose of ename:VK_LOD_CLAMP_NONE in the description of slink:VkSamplerCreateInfo::pname:maxLod (public issue 663). * Clarify in the <<extendingvulkan-extensions-extensiondependencies, Extension Dependencies>> section that extensions may depend on both other extensions, and specific core API versions. Together with previous changes to this section, this should close out the original issue (public issue 865).Internal Issues: * Add descriptions of image queries to the <<textures, Image Operations Overview>> and <<textures-queries, Image Query Instructions>> sections (internal issues 2416 and 2423). * Allow axis swapping to be carried through clamping in the <<primsrast-fragment-shading-rate-combining, Combining the Fragment Shading Rates>> section (internal issue 2420). * Move even-size requirements for planar formats to valid usage statements for slink:VkImageCreateInfo and slink:VkImageViewCreateInfo, and tweak descriptions of <<formats-definition, the corresponding formats>> accordingly (internal issue 2434). * Remove asciidoctor conditional macros from markup for slink:VkSamplerCreateInfo valid usage statement 01079 (internal issue 2440). * Clarify behavior of the <<features-alphaToOne, pname:alphaToOne>> feature by linking the enable to the corresponding <<fragops-covg, Multisample Coverage>> fragment operation language, and specifying in the introduction to the <<fragops, Fragment Operations>> chapter that "`replacing`" a fragment shader output occurs whether or not the shader actually wrote that output (internal issue 2448). * Modify XML for slink:VkPipelineViewportShadingRateImageStateCreateInfoNV::pname:viewportCount to allow pname:viewportCount == 0 (internal issue 2449). * Remove "`built as`" requirement from valid usage statement 03579 for slink:VkWriteDescriptorSetAccelerationStructureKHR (internal issue 2466). * Remove incorrect valid usage statement 03655 for slink:VkAccelerationStructureGeometryTrianglesDataKHR (internal issue 2467). * Add location limits for mesh shaders to the <<interfaces-iointerfaces-limits, Shader Input and Output Locations>> table (internal merge request 3428).
Change log for January 19, 2021 Vulkan 1.2.167 spec update: * Update release number to 167 for this update.Github Issues: * Clarify valid usage statements for slink:VkGraphicsPipelineCreateInfo interaction with potential format features (public issue 1392). * Use default PDF theme with a local fallback font, to provide floor/ceiling symbols (public issue 1400). * Fix valid usage statements to clarify that flink:vkCmdWriteAccelerationStructuresPropertiesNV only accepts ename:VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV (public Vulkan-ValidationLayers issue 2448). * Add missing `SPV_KHR_multiview` SPIR-V extension to `vk.xml` (public Vulkan-ValidationLayers issue 2456).Internal Issues: * Move Acceleration Structure chapter before Ray Traversal and Ray Tracing chapters and reorganize asciidoctor source markup, including inlining ray tracing sub-chapters (internal issue 2249). * Clarify the definition of the `optional='true'` XML attribute to allow its use with scalar types, and use it consistently in the specification and XML; this removes a few uses of the attribute and simplifies some valid usage statements (internal issue 2435). * Clarify that it is not valid to create an image view using a format that requires YCbCr conversion without passing a slink:VkSamplerYcbcrConversion in valid usage for slink:VkImageViewCreateInfo (internal issue 2458). * Clarify that pipeline flags do not cause the corresponding flags to appear in code:IncomingRayFlagsKHR variables (internal issue 2470). * Require that pname:supportedAlpha is never zero in text and valid usage statements for slink:VkDisplayPlaneCapabilitiesKHR and slink:VkDisplaySurfaceCreateInfoKHR (internal issue 2471). * Clarify that Dref values are supposed to be clamped for fixed-point accesses in the <<textures-depth-compare-operation, Depth Compare Operation>> section (internal issue 2474). * Fix typo for a destination stage in an issue in the `<<VK_EXT_transform_feedback>>` extension appendix (internal issue 2477). * Restrict code:OpImageQueryLod, code:OpImageQuerySizeLod, and code:OpImageQueryLevels to require a sampler (not storage image) in the <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> section (internal issue 2478). * Allow flink:vkGetAccelerationStructureBuildSizesKHR::pname:pMaxPrimitiveCounts to be zero by setting the `optional` attribute in the XML (internal issue 2480). * Update description of slink:VkDeviceMemoryReportCallbackDataEXT::pname:objectType for consistency with description of other parameters (internal issue 2485). * Add a valid usage statement to slink:VkRayTracingPipelineCreateInfoKHR requiring that all linked pipelines have the same set of flags specified from the etext:VK_PIPELINE_CREATE_RAY_TRACING_* bits (internal issue 2489). * Add valid usage statements to flink:vkCmdBeginQuery / flink:vkCmdBeginQueryIndexedEXT to disallow use with pools created with ename:VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR / ename:VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR types (internal issue 2493). * Fix normative language for valid usage statements in the <<spirvenv, Vulkan Environment for SPIR-V>> appendix (internal merge request 4265). * Remove a few cases where `_KHR` suffixes were left on promoted extensions in valid usage statements (internal merge request 4293) * Update and futureproof a previously hardwired reference to Vulkan 1.1 in the <<introduction-conventions, Document Conventions>> section (internal merge request 4295). * Add code:PhysicalStorageBuffer as a valid atomic storage class in the <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> section (internal merge request 4296). * Clean up phrasing of valid usage statements in the <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> section (internal merge request 4297). * Add shared valid usage statement for buffer copy commands requiring pname:bufferRowLength to fit in a signed 32-bit integer (internal merge request 4302). * Add dname:VK_NO_STDDEF_H to allow apps to prevent including `<stddef.h>`, and document it in the <<boilerplate, API Boilerplate>> appendix (internal merge request 4312). * Fix typo `SkipTrianglesKHR` -> `SkipAABBsKHR` in the <<ray-traversal-culling-primitive, Ray Primitive Culling>> section (internal merge request 4315).
Change log for January 25, 2021 Vulkan 1.2.168 spec update: * Update release number to 168 for this update.Internal Issues: * Change slink:VkAccelerationStructureNV resource classification to non-linear, and slink:VkAccelerationStructureKHR is neither linear nor non-linear. This affects the memory classification for purposes of <<resources-bufferimagegranularity,bufferImageGranularity>> (internal issue 2289). * Specify which storage classes are affected by code:scalarBlockLayout in the <<interfaces-resources-standard-layout, Standard Buffer Layout>> section (internal merge request 4280). * Flatten valid usage statements in the <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> section so they are correctly processed by the VU extractor script (internal merge request 4285).New Extensions: * `<<VK_KHR_workgroup_memory_explicit_layout>>` * `<<VK_KHR_zero_initialize_workgroup_memory>>`
This extension adds Vulkan support for the{spirv}/KHR/SPV_KHR_workgroup_memory_explicit_layout.html[`SPV_KHR_workgroup_memory_explicit_layout`]SPIR-V extension, which allows shaders to explicitly define the layout ofcode:Workgroup storage class memory and create aliases between variablesfrom that storage class in a compute shader.The aliasing feature allows different "views" on the same data, so theshader can bulk copy data from another storage class using one type (e.g. anarray of large vectors), and then use the data with a more specific type.It also enables reducing the amount of workgroup memory consumed by allowingthe shader to alias data whose lifetimes don't overlap.The explicit layout support and some form of aliasing is also required forlayering OpenCL on top of Vulkan.
This extension allows the use of a null constant initializer on shaderWorkgroup memory variables, allowing implementations to expose any specialhardware or instructions they may have.Zero initialization is commonly used by applications running untrustedcontent (e.g. web browsers) as way of defeating memory-scraping attacks.
Change log for February 2, 2021 Vulkan 1.2.169 spec update: * Update release number to 169 for this update.Github Issues: * Fix typos in language in the <<vertexpostproc-renderpass-transform, Render Pass Transform>> section (public issue 1406). * Fix case of etext:EXTENSION_NAME and etext:SPEC_VERSION enums in `vk.xml` for the `<<VK_QCOM_rotated_copy>>` extension (public issue 1427). * Fix equations in the <<ray-intersection-candidate-determination, Ray Intersection Candidate Determination>> section (public issue 1427). * Modify examples in the `<<VK_EXT_debug_utils>>` appendix to use flink:vkGetInstanceProcAddr (public issue 1432). * Various typo fixes (public pull request 1434).Internal Issues: * Add missing query types to the the introduction of the <<queries>> chapter (internal issue 2488). * Tag use of union types in `vk.xml` as `noautovalidity`, since we don't generate meaningful valid usage statements or validation layer code at present. This removes a few nonsensical, and unimplemented valid usage statements of form 'ptext:param must: be a valid stext:VkUnionType union (internal issue 2490). * Flatten inline lists in valid usage statements in the <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> section so the VU extraction script can process them properly (internal issue 2502). * Move some common copy buffer / copy image valid usage statements to `copy_bufferimage_to_imagebuffer_common.txt` so they can be shared (internal merge request 4344). * Update copyright dates to 2021 (internal merge request 4345), * Fix typos in asciidoctor conditional markup in the <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> section (internal issue 4349). * Fix typos in SPIR-V capability names code:WorkgroupMemoryExplicitLayout8BitAccessKHR and code:WorkgroupMemoryExplicitLayout16BitAccessKHR (internal merge request 4359). * Fix typo in description of slink:VkCoarseSampleLocationNV::pname:pSampleLocations (internal merge request 4365).
Change log for February 15, 2021 Vulkan 1.2.170 spec update: * Update release number to 170 for this update.Internal Issues: * Add missing language for zero hit groups to the <<shader-binding-table, Shader Binding Table>> section and related valid usage statements (internal issue 2505).New Extensions: * `<<VK_KHR_synchronization2>>`
This extension modifies the original core synchronization APIs to simplifythe interface and improve usability of these APIs.It also adds new pipeline stage and access flag types that extend into the64-bit range, as we have run out within the 32-bit range.The new flags are identical to the old values within the 32-bit range, withnew stages and bits beyond that.
Change log for March 1, 2021 Vulkan 1.2.171 spec update: * Update release number to 171 for this update.Github Issues: * Use `strictly increasing` rather than `monotonically increasing` in the definition of <<glossary, timeline semaphores>> (public issue 1424). * Add missing raytracing pipeline creation information from `<<VK_KHR_pipeline_executable_properties>>` to flink:vkGetPipelineExecutableStatisticsKHR and flink:vkGetPipelineExecutableInternalRepresentationsKHR valid usage statements (public issue 1433). * Add missing `SPV_EXT_shader_atomic_float` to `vk.xml` (public issue 1447). * Fix ename:VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL to ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT in synchronization valid usage statement 03938 (public issue 1458). * Correct the <<interfaces-resources-setandbinding, DescriptorSet and Binding Assignment>> "`noteworthy example`" to refer to code:OpTypeImage code:Samplerd=1, not code:OpTypeSampler code:Sampled=1 (public pull request 1459). * Clarify that the value of slink:VkViewport::pname:minDepth is not restricted relative to pname:maxDepth (Vulkan-Headers public issue 180). * Add valid usage statement to <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> specifying that push constant array members must only be accessed with dynamically uniform indices (SPIRV-Tools public issue 2909) * Add valid usage statement to <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> specifying when the code:Flat decoration must be used (SPIRV-Tools public issue 3154)Internal Issues: * Specifiy the maximum allowed pname:depthBias unit for flink:vkCmdSetDepthBias (internal issue 2455). * Add `"protect"` attribute to provisional extension enumerants, and emit them with that symbol for runtime conditional inclusion from `vulkan_core.h`. Update description of ename:VK_ENABLE_BETA_EXTENSIONS to match (internal issue 2481). * Add valid usage statement to slink:VkImageViewCreateInfo to ban 3D image views when the ename:VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT is set (internal issue 2501). * Add explicit language for the zero hit group intersection shader to the <<ray-intersection-confirmation, Ray Intersection Confirmation>> section (internal issue 2505). * Add a new <<raytraversal-ray-intersection-candidate-diagram, basic ray diagram>> (internal issue 2518). * Clarify that acceptable fragment shading rates are less than *or equal* to, not just less than, in the description of the <<primsrast-fragment-shading-rate-combining final combined shading rate>> (internal issue 2524) * Refer to correct barycentric coordinates for <<ray-intersection-candidate-determination, triangle intersection coordinates>> (internal issue 2525). * Add valid usage statements to drawing commands to match pname:rasterizationSamples in the pipeline state and the current attachments (internal merge request 4332). * Make use of ename:VK_WHOLE_SIZE consistent with sized flush in valid usage statement for slink:VkMappedMemoryRange (internal merge request 4373). * Fix asciidoctor ifdef markup around ename:VK_MEMORY_HEAP_MULTI_INSTANCE_BIT (internal merge request 4383). * Move improperly placed valid usage statements from slink:VkImageViewCreateInfo to slink:VkImageCreateInfo (internal merge request 4390). * Add valid usage statements to <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> for pname:minTexelGatherOffset and pname:minTexelGatherOffset. * Make <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> valid usage statement 04681 unconditional, rather than having two versions when a relevant Vulkan extension is or is not enabled, since this is *standalone* validation.New Extensions * `<<VK_QNX_screen_surface>>` (public pull request 1449).
The `VK_QNX_screen_surface` extension is an instance extension.It provides a mechanism to create a slink:VkSurfaceKHR object (defined bythe `<<VK_KHR_surface>>` extension) that refers to a QNX Screen code:window,as well as a query to determine support for rendering to a QNX Screencompositor.
Change log for March 8, 2021 Vulkan 1.2.172 spec update: * Update release number to 172 for this update.Internal Issues: * Remove asciidoctor conditional markup for extensions from <<spirvenv-module-validation-standalone, Standalone SPIR-V valid usage statements>>, and add a note to this effect for future additions (internal issue 2512). * Update the descriptions (and related validation rules) of code:uniformAndStorageBuffer8BitAccess and code:uniformAndStorageBuffer16BitAccess to only refer to the code:Uniform storage class; and update the 16-bit storage feature validation rules to refer to 16-bit floating-point, similarly to the feature descriptions. These changes are in the <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> <<features-requirements, Feature Requirements>> sections (internal issue 2535). * Ban recursion in tlink:PFN_vkDebugUtilsMessengerCallbackEXT callbacks, for consistency of `<<VK_EXT_debug_utils_callbacks>>` with `<<VK_EXT_device_memory_report>>` and the rules for slink:VkAllocationCallbacks (internal issue 2537). * Remove dependency on `<<VK_KHR_create_renderpass2>>` from `vk.xml` for `<<VK_KHR_synchronization2>>` (internal issue 2539). * Add the transform feedback pipeline stage as valid for ename:VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT access (internal merge request 4355). * Fix typo in `<<VK_EXT_debug_utils>>` examples (internal merge request 4395). * Fix typo to refer to "`buffer view`" rather than "`image view`" in the valid usage statements for code:OpImageWrite (internal merge request 4398). * Fix typo in the mandatory features section related to `<<VK_KHR_ray_tracing_pipeline>>` (internal merge request 4406).
Change log for March 21, 2021 Vulkan 1.2.173 spec update: * Update release number to 173 for this update.Github Issues: * Fix valid usage statement for flink:vkCmdBeginQueryIndexedEXT to allow multiple active queries of the same type, as long as their index values are different (public issue 1357). * Fix tagging for slink:VkPhysicalDeviceVulkan11Features in `vk.xml` (public issue 1437). * Update the <<WSI Swapchain>> chapter's use of "`release`" and "`present`" terminology (public pull request 1470). * Migrate from Azure Pipelines to Github Actions for CI, and use updated Khronos Docker image to build (public pull request 1473).Internal Issues: * Document requirements for extension <<extensions-feature-structures, Feature Structures>> (internal issue 2503). * Add missing valid usage statements for slink:VkAttachmentReference2 and separate depth/stencil layouts (internal issue 2509). * Clarify interactions between `<<VK_EXT_buffer_device_address>>` and Vulkan 1.2 in slink:VkDeviceCreateInfo valid usage (internal issue 2530). * Allow variation in number of acceleration structure handles following a top-level acceleration structures for flink:vkCmdCopyAccelerationStructureToMemoryKHR (internal issue 2538). * Specify implementation requirement for device timestamps in the description of elink:VkTimeDomainEXT (internal issue 2551). * Update valid usage ID assignment and extraction scripts to handle IDs containing function pointer names (internal issue 2557). * Move some runtime restrictions to <<spirvenv-module-validation-standalone Standalone SPIR-V>> valid usage statements (internal merge request 4286). * Use new version of the HTML asciidoctor-chunker, which runs much faster, and a new Docker image which omits the old implementation of the chunker (internal merge request 4391). * Fix <<devsandqueues-devices, logical device creation language>> for Vulkan 1.1 (internal merge request 4405). * Modify scripts to enable platform extensions to be filtered by the `"supported"` attribute in `vk.xml` (internal merge request 4411). * Add common valid usage statement for draw/dispatch commands on format support for mip filters (internal merge request 4413). * Fix valid usage statement extractor (vu-to-json) to add padding after inserted list items, so they don't absorb other markup that might come after in the document (internal merge request 4423). * Disallow shadow lookups on 3D images in the <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> section. This is not supported on all hardware, and should not have been allowed (internal merge request 4424).New Extensions: * `<<VK_FUCHSIA_external_memory>>` * `<<VK_FUCHSIA_external_semaphore>>`
Vulkan apps may wish to export or import device memory handles to or fromother logical devices, instances or APIs.This memory sharing can eliminate copies of memory buffers when differentsubsystems need to interoperate on them.Sharing memory buffers may also facilitate a better distribution ofprocessing workload for more complex memory manipulation pipelines.
An application using external memory may wish to synchronize access to thatmemory using semaphores.This extension enables an application to export semaphore payload to andimport semaphore payload from Zircon event handles.
Change log for March 29, 2021 Vulkan 1.2.174 spec update: * Update release number to 174 for this update.Github Issues: * Add a common header macro dname:VK_USE_64_BIT_PTR_DEFINES to specify at compile time whether non-dispatchable handles are declared using a 64-bit pointer type, or a 64-bit unsigned interger type. NOTE: it is possible that the complex platform-dependent C preprocessor block will move from vk.xml into the static (non-generated) vk_platform.h header in the near future (partially addresses public issue 1431, in addition to internal needs). * Clarify code:PatchVertices documentation for tessellation shaders (public pull request 1475).Internal Issues: * Add valid usage statements restricting bitfield operations to 32-bit types in the <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> section (internal issue 2561). * Update registry documentation to require providing the `type` attribute of `enum` tags when they are specifying compile-time constants, and change the accepted values of the attribute to a small set of C scalar type names, instead of schema-specific names. The XML schema itself would ideally be updated to match, but we don't know how to do that yet (internal issue 2564). NOTE: it is possible this will affect downstream consumers of `vk.xml`, although we consider this unlikely. * Document in the style guide that bits reserved in corresponding 32- and 64-bit bitmasks should be reserved in both types (internal merge issue 2565). * Add output generator options to generate MISRA-friendly headers, and check generator scripts to avoid generating etext:RESERVED 64-bit bitflag names specified by `disabled` extensions in `vk.xml` (internal merge request 4239, internal issue 2572). * Clarify that compressed copies need to round up division in the computation `rowLength` and `imageHeight` in the sample code for the <<copies-buffers-images-addressing, Buffer and Image Addressing>> section (internal merge request 4439).
Change log for April 13, 2021 Vulkan 1.2.175 spec update: * Update release number to 175 for this update.Github Issues: * Specify that fragment shader invocations in the same quad scope are also in the same primitive scope (public issue 1465). * Fix an incorrect reference to ename:VK_SHARING_MODE_CONCURRENT to the correct ename:VK_SHARING_MODE_EXCLUSIVE in the queue transfer wording for slink:VkBufferMemoryBarrier2KHR (public issue 1479). * Fix description of <<vertexpostproc-clipping, Primitive Clipping>> (public issues 1480 and 1481).Internal Issues: * Use consistent language in describing <<features, feature>> and <<limits, property (limit)>> queries. In particular, a few structures were described as being usable to query feature support, but not to set it. This was incorrect. All feature structures which can appear in the pname:pNext chain of slink:VkPhysicalDeviceFeatures2 can be used to both query and set (internal issue 2310). * Add `limittype` attributes to the XML schema and to `vk.xml` for structure members which are part of physical device property queries, to annotate how the resulting properties are interpreted and replace some manual interpretation of these properties (internal issue 2427). * Improve slink:VkAttachmentDescription2 wording around the use of slink:VkAttachmentDescriptionStencilLayout for specifying the stencil aspect layout (internal issue 2496). * Split the <<extendingvulkan-coreversions-versionnumbers, major version field>> of a packed pname:apiVersion value, introducing a new `variant` field. This field allows identification of APIs based on Vulkan, but not fully compatible with Vulkan applications. Vulkan is variant 0, making the change backwards compatible with the previous definition of pname:apiVersion. This change was introduced to enable variants of the Vulkan API that Khronos may release in the future, in particular the in-development Vulkan SC API. It is purely a future-proofing measure and no near-term further use is planned. To support this split, a set of new macros is introduced: dname:VK_API_VERSION_VARIANT, dname:VK_API_VERSION_MAJOR, dname:VK_API_VERSION_MINOR, and dname:VK_API_VERSION_PATCH (internal issue 2531). * Clarify that the slink:VkRectLayerKHR members of a slink:VkPresentRegionKHR structure must not be transformed to align with the swapchain's pname:pTransform. The presentation engine must do this transform (internal issue 2571). * Fix minor issues with exposed asciidoctor markup in spec outputs (internal issue 2576). * Tighten up wording around pool entries of mutable descriptor types. for slink:VkDescriptorPoolCreateInfo (internal issue 2578). * Expand on wording of code:FPRoundingMode valid usage statement in the <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> section (internal merge request 4298). * Document interaction with `<<VK_KHR_fragment_shading_rate>>` for `<<VK_QCOM_render_pass_transform>>` (internal merge request 4221). * Require compile-time constants be explicitly tagged as unsigned or float in `vk.xml`. Modify the generator scripts and schema documentation to require `type` attributes for such constants. This allows generating headers compliant with MISRA section 10.4 requirements, where needed (internal merge request 4451). * Minor editorial fixes (internal merge request 4454). * Disallow code:*Offset* decorations on storage images in the <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>> section (internal merge request 4465). * Improve the code: macro used in spec markup to allow imbedded wildcards separating words and a trailing wildcard (internal merge request 4466). * Modify `vk.xml` `requires` attributes to reorder definitions of dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE and dname:VK_NULL_HANDLE. This prevents a corner case where the app overriding the first macro explicitly would prevent definition of dname:VK_NULL_HANDLE (internal merge request 4476).New Extensions: * `<<VK_EXT_color_write_enable>>` * `<<VK_EXT_vertex_input_dynamic_state>>` * `<<VK_EXT_ycbcr_2plane_444_format>>` * `<<VK_NV_inherited_viewport_scissor>>` * Vulkan video core & codecs provisional extension package, including ** `<<VK_KHR_video_queue>>` ** `<<VK_KHR_video_decode_queue>>` ** `<<VK_KHR_video_encode_queue>>` ** `<<VK_EXT_video_decode_h264>>` ** `<<VK_EXT_video_decode_h265>>` ** `<<VK_EXT_video_encode_h264>>`
This extension allows for selectively enabling and disabling writes tooutput color attachments via a pipeline dynamic state.The intended use cases for this new state are mostly identical to those ofcolorWriteMask, such as selectively disabling writes to avoid feedback loopsbetween subpasses or bandwidth savings for unused outputs.By making the state dynamic, one additional benefit is the ability to reducepipeline counts and pipeline switching via shaders that write a superset ofthe desired data of which subsets are selected dynamically.The reason for a new state, colorWriteEnable, rather than makingcolorWriteMask dynamic is that, on many implementations, the more flexibleper-channel semantics of the colorWriteMask state cannot be made dynamic ina performant manner.
One of the states that contributes to the combinatorial explosion ofpipeline state objects that need to be created, is the vertex input bindingand attribute descriptions.By allowing them to be dynamic applications may reduce the number ofpipeline objects they need to create.This extension adds dynamic state support for what is normally static statein slink:VkPipelineVertexInputStateCreateInfo.
This extension adds some {YCbCr} formats that are in common use for videoencode and decode, but were not part of the<<VK_KHR_sampler_ycbcr_conversion>> extension.
This extension adds the ability for a secondary command buffer to inheritthe dynamic viewport and scissor state from a primary command buffer, or aprevious secondary command buffer executed within the sameflink:vkCmdExecuteCommands call.It addresses a frequent scenario in applications that deal with windowresizing and want to improve utilization of re-usable secondary commandbuffers.The functionality is provided throughslink:VkCommandBufferInheritanceViewportScissorInfoNV.Viewport inheritance is effectively limited to the 2D rectangle; secondarycommand buffers must re-specify the inherited depth range values.