* Update release number to 103.
Public Issues:
* Remove (unnecessary) scoped modification order case from the memory
model <<memory-model-location-ordered, location-ordered>> definition
(public pull request 924).
* Add an <<memory-model-acyclicity, acyclicity>> axiom to the memory model
(public pull request 927).
Internal Issues:
* Fix reversed logic of slink:VkFormatProperties discussion of multi-plane
formats and ename:VK_FORMAT_FEATURE_DISJOINT_BIT (internal issue 1493).
* Clarify how slink:VkImageStencilUsageCreateInfoEXT works, including new
valid usage statements for flink:vkCmdClearDepthStencilImage, and the
<<copies, Common Operation>> section of the Copy Commands chapter
(internal issue 1565).
* Update <<spirvenv-precision-operation, Precision and Operation of SPIR-V
Instructions>> section to require that denorms be preserved by several
instructions that don't perform any mathematical operations (internal
issue 1584).
* Remove duplicate valid usage statement from flink:vkAcquireNextImageKHR
(internal merge request 3062).
* Update release number to 102.
Public Issues:
* Simplify flink:vkGetImageMemoryRequirements constraint for
ename:VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT (public pull request 817).
* Fix typo in markup of the <<textures-texel-coordinate-systems-diagrams,
Texel Coordinate Systems, Corner Sampling>> image that was generating
complaints from chunked HTML output generation (public pull request
928).
Internal Issues:
* Split the old <<features, Features>> chapter into four chapters:
<<features, Features>>, <<limits, Limits>>, <<formats, Formats>>, and
<<capabilities, Capabilities>>, with minor edits to the introductory
paragraph of each chapter. Anchor names in these chapters were changed,
with corresponding effects to xrefs to these anchors elsewhere in spec
markup . The purpose is to make the chunked HTML spec output load faster
on what was previously a single, gigantic chapter (internal issue 1554).
* Add ename:VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV, to the supported
pipeline stages for ename:VK_ACCESS_UNIFORM_READ,
ename:VK_ACCESS_SHADER_READ, and ename:VK_ACCESS_SHADER_WRITE in the
<<synchronization-access-types-supported>> table.
* Correct legal name of Google, LLC in vk.xml \<tags> section and a
copyright statement.
* Clarify that Vulkan treats the Android
code:AHARDWAREBUFFER_FORMAT_R8G8B8X8_UNORM format as RGBA, and the
application is responsible for forcing the X/A component to be read as
1.0, in the <<memory-external-android-hardware-buffer-formats>> table.
* Clarify the vertex order of various primitive topologies, and define the
order of transform feedback vertex capture based on that. This involves
a lot of refactoring and cleanup in the <<drawing-primitive-topologies,
Primitive Topologies>>, <<geometry-input, Geometry Shader Input
Primitives>> sections, and <<vertexpostproc-transform-feedback Transform
Feedback>> sections, and numerous places in the <<tessellation>>
chapter,
New Extensions:
* `VK_EXT_metal_surface`
* `VK_EXT_ycbcr_image_arrays` (internal issue 1361).
* `VK_NVX_image_view_handle`
* Update release number to 101.
Public Issues:
* Make clear that memory types for imported host memory must be host
visible in slink:VkMemoryHostPointerPropertiesEXT.txt (public issue
897).
* Make <<interfaces-resources-layout, WARNING block>> into a NOTE block,
per the styleguide (public pull request 916).
Internal Issues:
* Make <<textures-output-format-conversion, computation of derivatives in
non-uniform flow control>> have undefined behavior (internal issue
1367).
* Make behavior, not just values, undefined for
<<textures-layout-validation, reads from inconsistent YCbCr layouts>>
(internal issue 1366).
* Consolidate version and extension behavior documentation in the
<<extended-functionality, Extended Functionality>> appendix, While a
great deal of text was moved from other parts of the Specification into
the appendix, this just serves to simplify and make consistent
discussions of versions and extensions (internal issue 1473).
* Add limits for slink:VkPhysicalDeviceRayTracingPropertiesNV in the
<<features-limits-types, Required Limit Types>> and
<<features-limits-required, Required Limits>> tables (internal issue
1511).
* Disallow <<memory-protected-memory, indirect calls within protected
command buffers>> by adding valid usage statements for the related
indirect dispatch and draw commands (internal issue 1513).
* Add valid usage stataements to slink:VkGraphicsPipelineCreateInfo,
slink:VkSubpassDescription, slink:VkSubpassDescription2KHR,
slink:VkSubpassDescriptionDepthStencilResolveKHR, and
slink:VkImageViewCreateInfo preventing the creation of a renderpass with
attachments in formats that are not supported for rendering (internal
issue 1552).
* Qualify valid usage statements for
slink:VkAttachmentReference::pname:layout parameter so restrictions only
apply if an attachment is ename:VK_ATTACHMENT_UNUSED (internal issue
1561).
* Add valid usage statement for flink:vkCmdDrawIndirectByteCountEXT
restricting pname:vertexStride to be positive (internal issue 1566).
* Make the `VK_EXT_sample_locations` extension depend on
`VK_KHR_get_physical_device_properties2` in `vk.xml`.
* Rearrange and simplify the <<interfaces-resources-layout, block layout
rules>>.
New Extensions:
* `VK_NV_cooperative_matrix`
* `VK_EXT_depth_clip_enable` (internal issue 1485).
* Update release number to 100.
Public Issues:
* Clarify that scoped modification order only relates to
<<memory-model-atomic-operation, atomic writes>> (public pull request
906).
* Remove `readme.txt` reference from `xml/README.adoc` (public pull
request 907).
* Add missing slink:VkShaderResourceUsageAMD to the <<Vk_AMD_shader_info>>
appendix (public pull request 908).
* Fix markup for <<VK_EXT_filter_cubic>> appendix (public pull request
911).
* Fix typo "`attachment`" (public pull request 914).
* Alias the enums for `VK_IMG_filter_cubic` properly to the corresponding
`VK_EXT_filter_cubic` enums, so they appear in the corresponding
enumerated types, instead of as #defines (Vulkan-Headers issue 40).
Internal Issues:
* Remove nested conditionals in valid usage statements for
slink:VkFramebufferCreateInfo and flink:vkCmdPipelineBarrier by
duplicating statements along ifdef/ifndef paths for
VK_KHR_depth_stencil_resolve (internal issue 1527).
* Clarify allowed values of <<spirv-precision-operation, SPIR-V operations
near infinity>>. For very large results of operations the allowed range
of return values as defined in the spec didn't include the largest
finite number. In some rounding modes (eg. RTZ) the largest finite
number is the correctly rounded result, so it should be allowed.
* Require descriptor types to match in slink:VkCopyDescriptorSet.
* Update release number to 99.
Public Issues:
* Add missing pname:pMemoryHostPointerProperties description to
flink:vkGetMemoryHostPointerPropertiesEXT.txt (public pull request 896).
* Minor markup fixes (public pull request 900).
* Minor update to `khronos.css` and markup fixes (originally proposed in
public pull request 901, but done via an internal MR).
Internal Issues:
* Document restrictions on image queries for Y'CbCr formats in the
<<features-formats-requiring-sampler-ycbcr-conversion>> table as well as
for slink:sname:VkImageFormatProperties and slink:VkImageCreateInfo
(internal issue 1361).
* Correct type of the code:FragSizeEXT built-in in the
<<interfaces-builtin-variables, Built-In Variables>> section (internal
issue 1526).
* Clean up math in the <<textures, Image Operations>> chapter by
refactoring, using better naming conventions, updating diagrams to use
the correct orientation, etc. (internal merge request 2968).
* Fix minor typos for slink:VkImageCreateInfo and
slink:VkImageStencilUsageCreateInfoEXT.
* Add missing documentation for tlink:VkResolveModeFlagsKHR.
* Fix extension dependency of pname:scalarBlockLayout in the
<<features-features-requirements, Feature Requirements>> section.
* Fix indexing math for shader binding table calculations in the
<<shader-binding-table-indexing-rules, Indexing Rules>> section, and use
spelling "`any-hit`" consistently.
* Reconcile valid usage statement and text for sampled image layouts in
slink:VkWriteDescriptorSet
(https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/551).
* Make SPIR-V code:OpConvertUToPtr and code:OpConvertPtrToU operations
require a 64-bit integer for physical storage buffer pointers in the
<<spirvenv-module-validation, Validation Rules within a Module>>
section.
* Update to KaTeX 10.0.
New Extensions:
* `VK_EXT_filter_cubic`
* `VK_NV_dedicated_allocation_image_aliasing`
* Update release number to 98.
Public Issues:
* Fix missing markup in flink:vkDestroyPipelineLayout valid usage
statement (pull request 882).
* Add missing contributors for `<<VK_EXT_buffer_device_address>>` (public
pull request 891).
Internal Issues:
* Detect nested bullet points in valid usage blocks and warn about them
during VUID assignment (internal issue 1382).
* Update the style guide to document the process for reserving new bits in
bitmask types (internal issue 1411).
* Clarify for slink:VkApplicationInfo::pname:apiVersion and in the
<<fundamentals-validusage-versions, Valid Usage for Newer Core
Versions>> section when it is valid for an application to use a certain
version of Vulkan API functionality (for an instance and for a
device/physical device); and when the validation layers must generate an
error (internal issue 1412).
* Add optional <<memory-model-availability-visibility, transitive
availability/visibility operations to the memory model, including a new
pname:vulkanMemoryModelAvailabilityVisibilityChains feature for
slink:VkPhysicalDeviceVulkanMemoryModelFeaturesKHR (internal issue
1460).
* Add the code:StorageBuffer storage class to those in the
<<interfaces-resources-descset, Descriptor Set Interface>> (internal
issue 1480).
* Add missing `returnedonly` tags for a number of returned extension
structures that can be passed in pname:pNext chains (internal issue
1515).
* Clean up and rearrange some spec language for
slink:VkRenderPassCreateInfo and slink:VkAttachmentReference.txt
(internal issue 1522).
* Correctly round the code:OpVectorTimesScalar and
code:OpMatrixTimesScalar SPIR-V operations in the <<Precision of core
SPIR-V Instructions>> table (internal merge request 2996).
* Work around cases in flink:vkCmdBeginTransformFeedbackEXT,
flink:vkCmdEndTransformFeedbackEXT, and
slink:VkPipelineCoverageModulationStateCreateInfoNV where an array
parameter is `optional` but the length is not in `vk.xml`. This is an
interim fix using `noautovalidity` + handcoded VU replacing those that
should be autogenerated (internal issue 2944 and
https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/480).
* Remove redundant capability validation of the code:float16 and code:int8
SPIR-V capabilities from the <<spirvenv-capabilities, Capabilities>>
section, since they are already covered in the preceding table.
* Update check_spec_links script, including validation for reference page
open blocks. Fix errors identified by the script.
As a quick workaround, the Python3-specific function time.process_time()
is conditioned to the `timeit` parameter. Indeed, if this parameter is
not set, there is no point in getting the process time anyway.
Unblocks rolling Vulkan dependencies in Google's ANGLE.
Signed-off-by: Shahbaz Youssefi <syoussefi@google.com>
* Update release number to 97.
Public Issues:
* Add a special case to the <<renderpass-compatibility, Render Pass
Compatibility>> rules allowing single-subpass renderpasses to be
compatible even if they have different resolve attachment references
(public issue 835).
* Fix the miss shader binding table record address rule in the
<<shader-binding-table-indexing-rules, Miss Shaders>> section to index
by code:missIndex, not code:sbtOffset (public issue 875).
Internal Issues:
* Add a missing anchor to the elink:VkSamplerCreateFlagBits language
(internal issue 1483).
* Add missing implicit valid usage include for slink:VkHdrMetadataEXT and
corresponding `noautovalidity` attributes in `vk.xml` for the
externally-defined metadata properties (internal issue 1514).
* Remove restrictions on the `mask` parameter of SPIR-V's
code:OpGroupNonUniformXor in the <<spirvenv-module-validation,
Validation Rules within a Module>> appendix (internal merge request
2971).
* Restore `noautovalidity` attribute for
slink:VkPipelineViewportWScalingStateCreateInfoNV::pname:pViewportWScalings
in `vk.xml` (internal merge request 2975).
* Update copyright dates on Khronos-copyrighted files to 2019 (internal
merge request 2980).
New Extensions:
* `VK_KHR_depth_stencil_resolve`
* `VK_EXT_buffer_device_address`
* `VK_EXT_memory_budget`
* `VK_EXT_memory_priority`
* `VK_EXT_validation_features`
* Update release number to 96.
Public Issues:
* Fix typo in `vk.xml` for `structextends` attribute of
slink:VkPhysicalDeviceShadingRateImagePropertiesNV (public PR 870).
* Fix links in optimized PDF output (public PR 879).
Internal Issues:
* Add a link to GitHub contributors in the <<credits, Other Credits>>
section (internal issue 808).
* Clarify the behavior of command aliases described in the <<versions,Core
Revisions>> and <<initialization-functionpointers, Command Function
Pointers>> sections and the registry schema document with respect to
whether they are or are not the same entry point, and what the behaviour
of the ftext:vkGet*ProcAddr commands is for each alias (internal issue
1462).
* Update slink:VkPipelineShaderStageCreateInfo valid usage statements for
writing to code:Layer and code:viewportIndex to apply to any vertex
processing stage (internal issue 1475).
* Make sparse image creation optional for Y'C~B~C~R~ formats in the
<<features-required-format-support, Required Format Support>> section
and the <<features-formats-requiring-sampler-ycbcr-conversion, Formats
requiring sampler Y'C~B~C~R~ conversion for
ename:VK_IMAGE_ASPECT_COLOR_BIT image views>> table (internal issue
1476).
* Modify the valid usage statement for
flink:vkCmdDrawIndirectByteCountEXT::pname:vertexStride to use the
pname:maxTransformFeedbackBufferDataStride limit rather than the
pname:maxVertexInputBindingStride limit, which is a better match for
transform feedback related operations (internal issue 1487).
* Changed all members of slink:VkPhysicalDevicePCIBusInfoPropertiesEXT to
have the `uint32_t` type. This is an imcompatible change to an EXT
that's very recently released; although this is against usual Vulkan WG
policy, we discussed and consider this an acceptable risk, but have
polled the mesa-dev list in case there are use cases we missed (internal
issue 1492).
* Set spec vetsion to 1 for `VK_GOOGLE_hlsl_functionality1` and
`VK_GOOGLE_decorate_string` in `vk.xml` (internal MR 2948).
* Remove redundant valid usage statement `VkImageCreateInfo-pNext-02395`
(internal MR 2950).
* Add `check_spec_links.py` script, use it in Gitlab CI, and fix many
minor markup issues discovered by the script (internal MR 2955).
* Update `BUILD.md` to the current Ruby version (2.5.3), and make some
corresponding updates to per-platform build instructions (internal MR
2956).
* Fix binding numbers and other details in
flink:vkUpdateDescriptorSetWithTemplate.txt example code blocks
(internal MR 2960).
* Remove some nautovalidity="true" in `vk.xml` for NV extensions where
it's clearly wrong (internal MR 2970).
* Update release number to 95.
Public Issues:
* Fix valid usage and XML issues found in public issues 789 and 790 for
the `VK_EXT_debug_utils` extension (public pull request 794).
* Replace references to `VK_NV_dedicated_allocation` with links to the
corresponding slink:slink:VkMemoryDedicatedRequirements and
slink:slink:VkMemoryDedicatedAllocateInfo structures in the description
of elink:VkExternalMemoryFeatureFlagBits (public issue 801).
* Fix miscellaneous minor markup and spelling issues in
`VK_NV_ray_tracing` extension (public pull request 860).
* Remove "returnedonly" from XML for
slink:VkPhysicalDeviceInlineUniformBlockFeaturesEXT and
slink:VkPhysicalDeviceVulkanMemoryModelFeaturesKHR (public issue 862).
Internal Issues:
* Add to the description of the
<<features-limits-maxComputeSharedMemorySize,
pname:maxCompureSharedMemorySize>> feature to state the shared variables
should be packed at least as tightly as std430 (internal issue 1386).
* Fix and clarify various references to image and image view usage in
flink:vkCmdBindShadingRateImageNV, flink:vkCmdBeginRenderPass, and
slink:VkImageStencilUsageCreateInfoEXT (internal issue 1432).
* Require that the slink:VkImage mipmap chain match the Android hardware
buffer mipmap chain for slink:VkMemoryAllocateInfo (internal issue
1479).
* Fix the definition of slink:VkSwapchainCreateInfoKHR valid usage
statement 01778 (Vulkan-ValidationLayers!15)
* Fix descriptions of <<interfaces-builtin-variables-launchid,
code:LaunchIDNV>> and <<interfaces-builtin-variables-launchsize,
code:LaunchSizeNV>> to code:uvec3.
New Extensions:
* `VK_KHR_shader_float16_int8`
* `VK_KHR_shader_float_controls`
Fixing a few items discovered by @krOoze with the EXT_debug_utils
extension spec language validation. Namely in two issues:
Issue #789:
The problem was the manual VUs should have been applied to
the `vkSetDebugUtilsObjectNameEXT` command and not the
general `VkDebugUtilsObjectNameInfoEXT` structure.
Issue #790:
Here, we needed to remove the "noautovalidity" tag on
the XML and add the "optional" tag to `pObjects` and
`objectCount`.
* Update release number to 94.
Public Issues:
* Use the terms "`texel block`" and "`texel block size`" instead of "`data
element`" and "`element size`", and define "`element`" as an array slot.
In addition to the terminology changes, retitled the <<texel-block-size,
Representation and Texel Block Size>> section and added texel block size
/ no. of texels/block information to the
<<features-formats-compatibility, Compatible Formats>> table. There is
some additional work underway to make sure the compatibility language
makes sense for all of uncompressed, compressed, and multiplanar formats
(public issue 763).
* Cleanup `VK_NV_ray_tracing` language (public issues 858, 859).
Internal Issues:
* Specify in <<shaders-invocationgroups, Invocation and Derivative
Groups>> and <<textures-output-format-conversion, Texel Output Format
Conversion>> that derivative groups are quads when code:SubgroupSize >=
4 (internal issue 1390).
* Make the type of slink:VkDescriptorUpdateTemplateCreateInfo::pNext
`const` following pattern for the other stext:Vk*CreateInfo structures
(internal issue 1459).
* Specify that flink:vkCmdClearAttachments executes as a drawing command,
rather than a transfer command (internal issue 1463).
* Update `VK_NV_ray_tracing` to use code:InstanceId instead of
code:InstanceIndex.
New Extensions:
* `VK_KHR_swapchain_mutable_format`
* `VK_EXT_fragment_density_map`
* Update release number to 93.
Public Issues:
* Add spec language for ename:VK_INDEX_TYPE_NONE_NV and fix up
slink:VkAccelerationStructureTypeNV (public issue 848).
* Add missing suffix in description of slink:VkSubpassDescription2KHR
parameters (public pull request 851).
* Fix miscellaneous typos (public pull request 855).
* Add driver ID for Pastel (public pull request 856).
* Add missing include directive for slink:VkMemoryWin32HandlePropertiesKHR
implicit valid usage statements (public pull request 857).
Internal Issues:
* Restrict the storage classes permitted for SPIR-V atomics to what is
actually supported, in the <<spirvenv-module-validation, Validation
Rules within a Module>> section (internal issue 1123).
* Add a missing Valid Usage statement to slink:VkRenderPassCreateInfo for
the case pname:stencilLoadOp == ename:VK_LOAD_OP_CLEAR, pname:layout ==
ename:VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL (internal issue
1408).
* Modify optimize-pdf script and Makefile to retain non-optimized original
PDF on errors (internal issue 1435).
* Add <<spirvenv-module-validation, SPIR-V validation rules>> stating that
only the listed code:BuiltIn decorations are permitted, and only when
relevante features and extensions are enabled (internal issue 1449).
* Remove some duplicated Valid Usage IDs created via cut & paste error
(internal issue 1455).
* Build HTML output for extension reference pages (internal issue 1461).
** Improve genRef.py handling of aliases defined inside other refpages.
** Emit aliases in pygenerator.py.
** Add XML noautovalidity flag for VkRenderPassCreateFlags until there
are some corresponding FlagBits defined.
** Corrected types= attribute on some refpage blocks to 'flags'
** Added refpage blocks for some missing types detected by CI tests.
* Fixed many Valid Usage statement issues in slink:VkRenderPassCreateInfo,
slink:VkSubpassDescription, slink:VkSubpassDescription2KHR,
slink:VkSubpassDependency2KHR, flink:vkCmdBeginRenderPass,
flink:vkCmdBeginRenderPass2KHR, and slink:VkRenderPassBeginInfo
discovered while adding `VK_KHR_create_renderpass2` to the validation
layers.
New Extensions:
* `VK_EXT_scalar_block_layout`
* `VK_EXT_separate_stencil_usage`
* Update release number to 92.
Public Issues:
* Move and modify valid usage statements dealing with pname:aspectMask in
flink:vkCmdClearColorImage, flink:vkCmdClearDepthStencilImage, and
slink:VkClearAttachment, so they are in places where all necessary
information is available (public issue 529).
* Fix math markup in <<textures-texel-anisotropic-filtering, Texel
Anisotropic Filtering>> (public pull request 840).
* Fix misspellings (public pull request 845).
Internal Issues:
* Add installation instructions and a Makefile "`chunked`" target for
chunked HTML generation (internal issue 1352).
* Fix pipeline mesh diagram style; also fix a minor bug in the classic
pipeline diagram where vertex/index buffers wrongly fed into the vertex
shader (internal issue 1436).
* Make asciidoctor ERROR output raise an error, and don't suppress
executed command output from CI make invocation (internal issue 1454).
* Minor typo fixes and clarifications for `VK_NV_raytracing`.
* Cleanup extension-specific properties
** Remove duplicated documentation for pname:maxDiscardRectangles,
pname:pointClippingBehavior, and pname:maxVertexAttribDivisor (they
shouldn't be documented with the other members of
slink:VkPhysicalDeviceLimits at all).
** Remove duplicate anchor for pname:maxVertexAttribDivisor
** Consistently document stext:VkPhysicalDevice<Extension>PropertiesKHR
*** Always document pname:sType/pname:pNext (was inconsistent before)
*** Always mention chaining to slink:VkPhysicalDeviceProperties2 (and not
as slink:VkPhysicalDeviceProperties2KHR)
*** Always include Valid Usage statements last
* Update Makefile 'checklinks' target and associated scripts, and fix
markup problems identified by checkLinks.py, so that we can rely on the
checklinks script as part of Gitlab CI.
* Update release number to 91.
Public Issues:
* Update Ubuntu subsystem build instructions in `BUILD.adoc` (public pull
request 624).
* Delete the `VK_KHR_mir_surface` extension from the Specification and
XML, due to EOL of the only driver known to have supported it, and
near-EOL of Mir itself (public issue 814).
* Fix options for some figures that were using old ones (public pull
request 841).
* Fix various accidentally repeated words (public pull request 843).
* Use `time.process_time()`, introduced in Python 3.3, in the scripts
instead of `time.clock()`, which will be removed in Python 3.8 (public
pull request 844).
Internal Issues:
* Update valid usage statements for
`VK_ANDROID_external_memory_android_hardware_buffer` in
slink:VkMemoryAllocateInfo,
slink:VkImportAndroidHardwareBufferInfoANDROID, and
flink:vkGetAndroidHardwareBufferPropertiesANDROID to actually be
verifiable (internal issue 1419).
* Update valid usage statements for
`VK_ANDROID_external_memory_android_hardware_buffer` in
slink:VkMemoryAllocateInfo, slink:VkImageCreateInfo, and
slink:VkImageViewCreateInfo to move valid usage statements in
doubly-nested bullet points up one level, accomodating limitations of
the valid usage extraction script that creates `validusage.json`
(internal issue 1434).
* Fix typo etext:VK_ACCESS_SHADING_RATE_IMAGE_BIT_NV to the correct
ename:VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV.
* Add missing etext:VK_STRUCTURE_TYPE_* tokens to appendices for
extensions missing them.
New Extensions:
* `VK_AMD_memory_overallocation_behavior`
* `VK_NV_ray_tracing`, replacing `VK_NVX_raytracing`