summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Leech <oddhack@sonic.net>2023-11-10 03:36:23 -0800
committerJon Leech <oddhack@sonic.net>2023-11-10 03:36:23 -0800
commitb4792eab92a1d132ef95b56a7681cc6af69b570e (patch)
tree7363f7e3bac2d7ffd203d8a385f4b3a893d66ecf
parent60ff2191347572d218e945e9b8e2c42e9e0b57b7 (diff)
downloadgfxstream-protocols-b4792eab92a1d132ef95b56a7681cc6af69b570e.tar.gz
Change log for November 9, 2023 Vulkan 1.3.270 spec update:
Github Issues * Remove redundant reference to ename:VK_PIPELINE_STAGE_2_HOST_BIT in flink:vkCmdWaitEvents2 VU 03842 (public issue 1986). * Fix typo in <<limits-computeCapabilityMajor>> description (as described in public PR 2260). * Add apiext:VK_KHR_timeline_semaphore dependency for apiext:VK_NV_low_latency2 (public PR 2264). * Restrict cooperative matrix support to compute stages and subgroup scope in slink:VkPhysicalDeviceCooperativeMatrixPropertiesKHR and slink:VkCooperativeMatrixPropertiesKHR (public SPIRV-Registry issue 210). * Add additional Vulkan-Hpp headers to the trivial compile test used in CI (public Vulkan-Hpp issue 1721). Internal Issues * Update common draw VU 06179 to only apply when the pname:dynamicRenderingUnusedAttachments feature is not enabled. (internal issue 3645). * Consolidate VUs in many files (internal MRs 6151, 6152, 6158, 6174). * Add slink:VkDescriptorPoolCreateInfo VU requiring slink:VkDescriptorPoolInlineUniformBlockCreateInfo in some situations (internal MR 6186). * Remove redundant apiext:VK_KHR_maintenance5 VUs constraining pname:layerCount in flink:vkCmdCopyMemoryToImageIndirectNV and common image copy / blit / resolve VUs (internal MR 6211). * Clean up Issues section of apiext:VK_KHR_display appendix (internal MR 6219). * Remove redundant flink:vkCmdBindPipeline VU 06653 (internal MR 6226). * Update description of `EXT` extensions in style guide (internal MR 6236). * Revert removal of flink:vkCmdSetLogicOpEnableEXT VU 07366 (internal MR 6240). * Fix typo in <<primsrast-lines-basic, Basic Line Segment Rasterization>> (internal MR 6244). * Add missing `const` to sname:VkDirectDriverLoadingListLUNARG::pname:pNext in `vk.xml` (internal MR 6245). * Add missing slink:VkDescriptorImageInfo VUs (internal MR 6248). * Fix AMD/NV mixed-sample extension VUs that were mistakenly unified in `renderpass.adoc` (internal MR 6249). * Fix typos in apiext:VK_EXT_opacity_micromap appendix (internal MR 6251). * Add guarantees for implementation synchronization in flink:vkSetLatencyMarkerNV and flink:vkSetLatencySleepModeNV (internal MR 6254). * Add texel buffer limits for flink:vkGetDescriptorEXT (internal MR 6255). * Remove redundant slink:VkDescriptorSetAllocateInfo VU 08010 (internal MR 6258). * Clean up unreferenced capabilities blocks in `profiles/VP_KHR_roadmap_2022.json` (internal MR 6261). * Remove duplicate slink:VkGraphicsPipelineCreateInfo VU 09041 (internal MR 6266). * Clarify common acceleration structure build VUs for pname:firstVertex and pname:primitiveCount (internal MR 6273). New Extensions * apiext:VK_IMG_relaxed_line_rasterization
-rw-r--r--ChangeLog.adoc64
-rw-r--r--Makefile4
-rw-r--r--appendices/VK_EXT_opacity_micromap.adoc6
-rw-r--r--appendices/VK_IMG_relaxed_line_rasterization.adoc38
-rw-r--r--appendices/VK_KHR_display.adoc52
-rw-r--r--chapters/VK_NV_device_generated_commands/generation.adoc6
-rw-r--r--chapters/VK_NV_low_latency2/low_latency2.adoc12
-rw-r--r--chapters/accelstructures.adoc2
-rw-r--r--chapters/cmdbuffers.adoc2
-rw-r--r--chapters/commonvalidity/build_acceleration_structure_common.adoc23
-rw-r--r--chapters/commonvalidity/copy_image_common.adoc4
-rw-r--r--chapters/commonvalidity/draw_common.adoc7
-rw-r--r--chapters/commonvalidity/draw_dispatch_common.adoc3
-rw-r--r--chapters/commonvalidity/draw_index_binding.adoc13
-rw-r--r--chapters/commonvalidity/draw_vertex_binding.adoc44
-rw-r--r--chapters/commonvalidity/image_blit_common.adoc4
-rw-r--r--chapters/commonvalidity/image_resolve_common.adoc4
-rw-r--r--chapters/copies.adoc7
-rw-r--r--chapters/descriptorsets.adoc53
-rw-r--r--chapters/features.adoc34
-rw-r--r--chapters/framebuffer.adoc3
-rw-r--r--chapters/limits.adoc5
-rw-r--r--chapters/pipelines.adoc421
-rw-r--r--chapters/primsrast.adoc32
-rw-r--r--chapters/renderpass.adoc95
-rw-r--r--chapters/resources.adoc69
-rw-r--r--chapters/shaders.adoc2
-rw-r--r--chapters/synchronization.adoc2
-rw-r--r--chapters/vertexpostproc.adoc8
-rwxr-xr-xconfig/makeSubmit.py58
-rw-r--r--proposals/VK_EXT_opacity_micromap.adoc6
-rw-r--r--scripts/docgenerator.py4
-rwxr-xr-xscripts/genRef.py8
-rw-r--r--scripts/reflib.py11
-rw-r--r--scripts/spec_tools/conventions.py7
-rw-r--r--style/extensions.adoc10
-rw-r--r--style/revisions.adoc2
-rw-r--r--tests/hpptest.cpp13
-rw-r--r--tests/htest.c1
-rw-r--r--xml/profiles/VP_KHR_roadmap_2022.json94
-rw-r--r--xml/registry.rnc20
-rw-r--r--xml/vk.xml43
42 files changed, 651 insertions, 645 deletions
diff --git a/ChangeLog.adoc b/ChangeLog.adoc
index a85524a6..e60cf75f 100644
--- a/ChangeLog.adoc
+++ b/ChangeLog.adoc
@@ -14,6 +14,70 @@ appears frequently in the change log.
-----------------------------------------------------
+Change log for November 9, 2023 Vulkan 1.3.270 spec update:
+
+Github Issues
+
+ * Remove redundant reference to ename:VK_PIPELINE_STAGE_2_HOST_BIT in
+ flink:vkCmdWaitEvents2 VU 03842 (public issue 1986).
+ * Fix typo in <<limits-computeCapabilityMajor>> description (as described
+ in public PR 2260).
+ * Add apiext:VK_KHR_timeline_semaphore dependency for
+ apiext:VK_NV_low_latency2 (public PR 2264).
+ * Restrict cooperative matrix support to compute stages and subgroup scope
+ in slink:VkPhysicalDeviceCooperativeMatrixPropertiesKHR and
+ slink:VkCooperativeMatrixPropertiesKHR (public SPIRV-Registry issue
+ 210).
+ * Add additional Vulkan-Hpp headers to the trivial compile test used in CI
+ (public Vulkan-Hpp issue 1721).
+
+Internal Issues
+
+ * Update common draw VU 06179 to only apply when the
+ pname:dynamicRenderingUnusedAttachments feature is not enabled.
+ (internal issue 3645).
+ * Consolidate VUs in many files (internal MRs 6151, 6152, 6158, 6174).
+ * Add slink:VkDescriptorPoolCreateInfo VU requiring
+ slink:VkDescriptorPoolInlineUniformBlockCreateInfo in some situations
+ (internal MR 6186).
+ * Remove redundant apiext:VK_KHR_maintenance5 VUs constraining
+ pname:layerCount in flink:vkCmdCopyMemoryToImageIndirectNV and common
+ image copy / blit / resolve VUs (internal MR 6211).
+ * Clean up Issues section of apiext:VK_KHR_display appendix (internal MR
+ 6219).
+ * Remove redundant flink:vkCmdBindPipeline VU 06653 (internal MR 6226).
+ * Update description of `EXT` extensions in style guide (internal MR
+ 6236).
+ * Revert removal of flink:vkCmdSetLogicOpEnableEXT VU 07366 (internal MR
+ 6240).
+ * Fix typo in <<primsrast-lines-basic, Basic Line Segment Rasterization>>
+ (internal MR 6244).
+ * Add missing `const` to
+ sname:VkDirectDriverLoadingListLUNARG::pname:pNext in `vk.xml` (internal
+ MR 6245).
+ * Add missing slink:VkDescriptorImageInfo VUs (internal MR 6248).
+ * Fix AMD/NV mixed-sample extension VUs that were mistakenly unified in
+ `renderpass.adoc` (internal MR 6249).
+ * Fix typos in apiext:VK_EXT_opacity_micromap appendix (internal MR 6251).
+ * Add guarantees for implementation synchronization in
+ flink:vkSetLatencyMarkerNV and flink:vkSetLatencySleepModeNV (internal
+ MR 6254).
+ * Add texel buffer limits for flink:vkGetDescriptorEXT (internal MR 6255).
+ * Remove redundant slink:VkDescriptorSetAllocateInfo VU 08010 (internal MR
+ 6258).
+ * Clean up unreferenced capabilities blocks in
+ `profiles/VP_KHR_roadmap_2022.json` (internal MR 6261).
+ * Remove duplicate slink:VkGraphicsPipelineCreateInfo VU 09041 (internal
+ MR 6266).
+ * Clarify common acceleration structure build VUs for pname:firstVertex
+ and pname:primitiveCount (internal MR 6273).
+
+New Extensions
+
+ * apiext:VK_IMG_relaxed_line_rasterization
+
+-----------------------------------------------------
+
Change log for October 20, 2023 Vulkan 1.3.269 spec update:
Github Issues
diff --git a/Makefile b/Makefile
index 70284790..d1ca26a7 100644
--- a/Makefile
+++ b/Makefile
@@ -136,7 +136,7 @@ VERBOSE =
# ADOCOPTS options for asciidoc->HTML5 output
NOTEOPTS = -a editing-notes -a implementation-guide
-PATCHVERSION = 269
+PATCHVERSION = 270
BASEOPTS =
ifneq (,$(findstring VKSC_VERSION_1_0,$(VERSIONS)))
@@ -546,7 +546,7 @@ clean_validusage:
MANSOURCES = $(filter-out $(REFPATH)/apispec.adoc, $(wildcard $(REFPATH)/*.adoc))
# Generation of refpage asciidoctor sources by extraction from the
-# specification.
+# specification(s).
#
# Should have a proper dependency causing the man page sources to be
# generated by running genRef (once), but adding $(MANSOURCES) to the
diff --git a/appendices/VK_EXT_opacity_micromap.adoc b/appendices/VK_EXT_opacity_micromap.adoc
index 9ce5dd05..b6a720bf 100644
--- a/appendices/VK_EXT_opacity_micromap.adoc
+++ b/appendices/VK_EXT_opacity_micromap.adoc
@@ -21,9 +21,9 @@ include::{generated}/meta/{refprefix}VK_EXT_opacity_micromap.adoc[]
=== Description
-When adding adding transparency to a ray traced scene, an application can
-choose between further tessellating the geometry or using an any hit shader
-to allow the ray through specific parts of the geometry.
+When adding transparency to a ray traced scene, an application can choose
+between further tessellating the geometry or using an any-hit shader to
+allow the ray through specific parts of the geometry.
These options have the downside of either significantly increasing memory
consumption or adding runtime overhead to run shader code in the middle of
traversal, respectively.
diff --git a/appendices/VK_IMG_relaxed_line_rasterization.adoc b/appendices/VK_IMG_relaxed_line_rasterization.adoc
new file mode 100644
index 00000000..0f10bb94
--- /dev/null
+++ b/appendices/VK_IMG_relaxed_line_rasterization.adoc
@@ -0,0 +1,38 @@
+// Copyright (c) 2022-2023 The Khronos Group Inc.
+//
+// SPDX-License-Identifier: CC-BY-4.0
+
+include::{generated}/meta/{refprefix}VK_IMG_relaxed_line_rasterization.adoc[]
+
+=== Other Extension Metadata
+
+*Last Modified Date*::
+ 2023-10-22
+*IP Status*::
+ No known IP claims.
+
+*Contributors*::
+ - James Fitzpatrick, Imagination
+ - Andrew Garrard, Imagination
+ - Alex Walters, Imagination
+
+=== Description
+
+OpenGL specifies that implementations should rasterize lines using the
+diamond exit rule (a slightly modified version of Bresenham's algorithm).
+To implement OpenGL some implementations have a device-level compatibility
+mode to rasterize lines according to the OpenGL specification.
+
+This extension allows OpenGL emulation layers to enable the OpenGL
+compatible line rasterization mode of such implementations.
+
+include::{generated}/interfaces/VK_IMG_relaxed_line_rasterization.adoc[]
+
+=== Issues
+
+None.
+
+=== Version History
+
+ * Revision 1, 2023-10-22 (James Fitzpatrick)
+ ** Initial version
diff --git a/appendices/VK_KHR_display.adoc b/appendices/VK_KHR_display.adoc
index cd5a6894..6723a3b3 100644
--- a/appendices/VK_KHR_display.adoc
+++ b/appendices/VK_KHR_display.adoc
@@ -31,8 +31,8 @@ double the size of the mode pool to include both stereo and non-stereo
modes? YUV and RGB scanout even if they both take RGB input images? BGR vs.
RGB input? etc.
-*PROPOSED RESOLUTION*: Many modern displays support at most a handful of
-resolutions and timings natively.
+*RESOLVED*: Many modern displays support at most a handful of resolutions
+and timings natively.
Other "`modes`" are expected to be supported using scaling hardware on the
display engine or GPU.
Other properties, such as rotation and mirroring should not require
@@ -55,7 +55,7 @@ Note the resolution of this issue may affect issue 5 as well.
2) What properties of a display itself are useful?
-*PROPOSED RESOLUTION*: This issue is too broad.
+*RESOLVED*: This issue is too broad.
It was meant to prompt general discussion, but resolving this issue amounts
to completing this specification.
All interesting properties should be included.
@@ -64,13 +64,13 @@ to parse existing discussion notes that refer to issues by number.
3) How are multiple overlay planes within a display or mode enumerated?
-*PROPOSED RESOLUTION*: They are referred to by an index.
+*RESOLVED*: They are referred to by an index.
Each display will report the number of overlay planes it contains.
4) Should swapchains be created relative to a mode or a display?
-*PROPOSED RESOLUTION*: When using this extension, swapchains are created
-relative to a mode and a plane.
+*RESOLVED*: When using this extension, swapchains are created relative to a
+mode and a plane.
The mode implies the display object the swapchain will present to.
If the specified mode is not the display's current mode, the new mode will
be applied when the first image is presented to the swapchain, and the
@@ -84,41 +84,41 @@ many support relatively arbitrary scaling, either on the monitor side or in
the GPU display engine, making "`modes`" something of a relic/compatibility
construct).
-*PROPOSED RESOLUTION*: Expose both.
+*RESOLVED*: Expose both.
Display information structures will expose a set of predefined modes, as
well as any attributes necessary to construct a customized mode.
6) Is it fine if we return the display and display mode handles in the
structure used to query their properties?
-*PROPOSED RESOLUTION*: Yes.
+*RESOLVED*: Yes.
7) Is there a possibility that not all displays of a device work with all of
the present queues of a device? If yes, how do we determine which displays
work with which present queues?
-*PROPOSED RESOLUTION*: No known hardware has such limitations, but
-determining such limitations is supported automatically using the existing
+*RESOLVED*: No known hardware has such limitations, but determining such
+limitations is supported automatically using the existing
`apiext:VK_KHR_surface` and `apiext:VK_KHR_swapchain` query mechanisms.
8) Should all presentation need to be done relative to an overlay plane, or
can a display mode + display be used alone to target an output?
-*PROPOSED RESOLUTION*: Require specifying a plane explicitly.
+*RESOLVED*: Require specifying a plane explicitly.
9) Should displays have an associated window system display, such as an
code:HDC or code:Display*?
-*PROPOSED RESOLUTION*: No.
+*RESOLVED*: No.
Displays are independent of any windowing system in use on the system.
Further, neither code:HDC nor code:Display* refer to a physical display
object.
10) Are displays queried from a physical GPU or from a device instance?
-*PROPOSED RESOLUTION*: Developers prefer to query modes directly from the
-physical GPU so they can use display information as an input to their device
-selection algorithms prior to device creation.
+*RESOLVED*: Developers prefer to query modes directly from the physical GPU
+so they can use display information as an input to their device selection
+algorithms prior to device creation.
This avoids the need to create placeholder device instances to enumerate
displays.
@@ -135,26 +135,20 @@ parameter.
There is no performance case against making them dispatchable objects, but
they would be the first extension objects to be dispatchable.
-*PROPOSED RESOLUTION*: Do not make displays or modes dispatchable.
+*RESOLVED*: Do not make displays or modes dispatchable.
They will dispatch based on their associated physical device.
12) Should hardware cursor capabilities be exposed?
-*PROPOSED RESOLUTION*: Defer.
+*RESOLVED*: Defer.
This could be a separate extension on top of the base WSI specs.
-ifdef::editing-notes[]
-[NOTE]
-.editing-note
-====
-There appears to be a missing sentence for the first part of issue 13 here.
-====
-endif::editing-notes[]
-
-if they are one physical display device to an end user, but may internally
-be implemented as two side-by-side displays using the same display engine
-(and sometimes cabling) resources as two physically separate display
-devices.
+13) How many display objects should be enumerated for "tiled" display
+devices? There are ongoing design discussions among lower-level display API
+authors regarding how to expose displays if they are one physical display
+device to an end user, but may internally be implemented as two side-by-side
+displays using the same display engine (and sometimes cabling) resources as
+two physically separate display devices.
*RESOLVED*: Tiled displays will appear as a single display object in this
API.
diff --git a/chapters/VK_NV_device_generated_commands/generation.adoc b/chapters/VK_NV_device_generated_commands/generation.adoc
index 36ac42cf..dcc238ec 100644
--- a/chapters/VK_NV_device_generated_commands/generation.adoc
+++ b/chapters/VK_NV_device_generated_commands/generation.adoc
@@ -97,6 +97,7 @@ Commands>>, an application must: query the pipeline's device address.
To query a compute pipeline's 64-bit device address, call:
include::{generated}/api/protos/vkGetPipelineIndirectDeviceAddressNV.adoc[]
+
* pname:device is the logical device on which the pipeline was created.
* pname:pInfo is a pointer to a
slink:VkPipelineIndirectDeviceAddressInfoNV structure specifying the
@@ -120,6 +121,7 @@ include::{generated}/validity/protos/vkGetPipelineIndirectDeviceAddressNV.adoc[]
The sname:VkPipelineIndirectDeviceAddressInfoNV structure is defined as:
include::{generated}/api/structs/VkPipelineIndirectDeviceAddressInfoNV.adoc[]
+
* pname:sType is a elink:VkStructureType value identifying this structure.
* pname:pNext is `NULL` or a pointer to a structure extending this
structure.
@@ -249,6 +251,10 @@ include::{generated}/validity/protos/vkCmdExecuteGeneratedCommandsNV.adoc[]
[open,refpage='VkGeneratedCommandsInfoNV',desc='Structure specifying parameters for the generation of commands',type='structs']
--
+:refpage:
+
+The sname:VkGeneratedCommandsInfoNV is defined as:
+
include::{generated}/api/structs/VkGeneratedCommandsInfoNV.adoc[]
* pname:sType is a elink:VkStructureType value identifying this structure.
diff --git a/chapters/VK_NV_low_latency2/low_latency2.adoc b/chapters/VK_NV_low_latency2/low_latency2.adoc
index b408fb82..12822ef0 100644
--- a/chapters/VK_NV_low_latency2/low_latency2.adoc
+++ b/chapters/VK_NV_low_latency2/low_latency2.adoc
@@ -24,6 +24,12 @@ If pname:pSleepModeInfo is `NULL`, fname:vkSetLatencySleepModeNV will
disable low latency mode, low latency boost, and set the minimum present
interval previously specified by slink:VkLatencySleepModeInfoNV to zero on
pname:swapchain.
+As an exception to the normal rules for objects which are externally
+synchronized, the swapchain passed to fname:vkSetLatencySleepModeNV may: be
+simultaneously used by other threads in calls to functions other than
+flink:vkDestroySwapchainKHR.
+Access to the swapchain data associated with this extension must: be atomic
+within the implementation.
include::{generated}/validity/protos/vkSetLatencySleepModeNV.adoc[]
--
@@ -122,6 +128,12 @@ called to provide timestamps for the application's reference.
These timestamps are returned with a call to flink:vkGetLatencyTimingsNV
alongside driver provided timestamps at various points of interest with
regards to latency within the application.
+As an exception to the normal rules for objects which are externally
+synchronized, the swapchain passed to fname:vkSetLatencyMarkerNV may: be
+simultaneously used by other threads in calls to functions other than
+flink:vkDestroySwapchainKHR.
+Access to the swapchain data associated with this extension must: be atomic
+within the implementation.
include::{generated}/validity/protos/vkSetLatencyMarkerNV.adoc[]
--
diff --git a/chapters/accelstructures.adoc b/chapters/accelstructures.adoc
index b2c2bacc..722654c9 100644
--- a/chapters/accelstructures.adoc
+++ b/chapters/accelstructures.adoc
@@ -1046,7 +1046,6 @@ or the equivalent
include::{generated}/api/structs/VkAabbPositionsNV.adoc[]
endif::VK_NV_ray_tracing[]
-
* pname:minX is the x position of one opposing corner of a bounding box.
* pname:minY is the y position of one opposing corner of a bounding box.
* pname:minZ is the z position of one opposing corner of a bounding box.
@@ -1688,7 +1687,6 @@ To query acceleration structure size parameters call:
include::{generated}/api/protos/vkCmdWriteAccelerationStructuresPropertiesNV.adoc[]
-
* pname:commandBuffer is the command buffer into which the command will be
recorded.
* pname:accelerationStructureCount is the count of acceleration structures
diff --git a/chapters/cmdbuffers.adoc b/chapters/cmdbuffers.adoc
index 910141ba..f7ea485d 100644
--- a/chapters/cmdbuffers.adoc
+++ b/chapters/cmdbuffers.adoc
@@ -935,7 +935,7 @@ include::{generated}/api/structs/VkCommandBufferBeginInfo.adoc[]
* pname:flags is a bitmask of elink:VkCommandBufferUsageFlagBits
specifying usage behavior for the command buffer.
* pname:pInheritanceInfo is a pointer to a
- sname:VkCommandBufferInheritanceInfo structure, used if
+ slink:VkCommandBufferInheritanceInfo structure, used if
pname:commandBuffer is a secondary command buffer.
If this is a primary command buffer, then this value is ignored.
diff --git a/chapters/commonvalidity/build_acceleration_structure_common.adoc b/chapters/commonvalidity/build_acceleration_structure_common.adoc
index 5b887841..1df7a13d 100644
--- a/chapters/commonvalidity/build_acceleration_structure_common.adoc
+++ b/chapters/commonvalidity/build_acceleration_structure_common.adoc
@@ -192,14 +192,23 @@
corresponding index value when pname:srcAccelerationStructure was last
built
* [[VUID-{refpage}-primitiveCount-03769]]
- For each sname:VkAccelerationStructureBuildRangeInfoKHR referenced by
- this command, its pname:primitiveCount member must: have the same value
- which was specified when pname:srcAccelerationStructure was last built
+ For each element of pname:pInfos, if its pname:mode member is
+ ename:VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each
+ sname:VkAccelerationStructureGeometryKHR structure referred to by its
+ pname:pGeometries or pname:ppGeometries members, the
+ pname:primitiveCount member of its corresponding
+ sname:VkAccelerationStructureBuildRangeInfoKHR structure must: have the
+ same value which was specified when pname:srcAccelerationStructure was
+ last built
* [[VUID-{refpage}-firstVertex-03770]]
- For each sname:VkAccelerationStructureBuildRangeInfoKHR referenced by
- this command, if the corresponding geometry uses indices, its
- pname:firstVertex member must: have the same value which was specified
- when pname:srcAccelerationStructure was last built
+ For each element of pname:pInfos, if its pname:mode member is
+ ename:VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each
+ sname:VkAccelerationStructureGeometryKHR structure referred to by its
+ pname:pGeometries or pname:ppGeometries members, if the geometry uses
+ indices, the pname:firstVertex member of its corresponding
+ sname:VkAccelerationStructureBuildRangeInfoKHR structure must: have the
+ same value which was specified when pname:srcAccelerationStructure was
+ last built
* [[VUID-{refpage}-pInfos-03801]]
For each element of pname:pInfos[i].pname:pGeometries or
pname:pInfos[i].pname:ppGeometries with a pname:geometryType of
diff --git a/chapters/commonvalidity/copy_image_common.adoc b/chapters/commonvalidity/copy_image_common.adoc
index a274403a..4baf459d 100644
--- a/chapters/commonvalidity/copy_image_common.adoc
+++ b/chapters/commonvalidity/copy_image_common.adoc
@@ -216,10 +216,6 @@ endif::VK_KHR_maintenance5[]
the pname:layerCount members of pname:srcSubresource or
pname:dstSubresource must: match
ifdef::VK_KHR_maintenance5[]
- * [[VUID-{refpage}-maintenance5-08792]]
- If the <<features-maintenance5, pname:maintenance5>> feature is not
- enabled, the pname:layerCount member of pname:srcSubresource or
- pname:dstSubresource must: not be ename:VK_REMAINING_ARRAY_LAYERS
* [[VUID-{refpage}-srcImage-08794]]
If pname:srcImage and pname:dstImage have the same elink:VkImageType,
and one of the pname:layerCount members of pname:srcSubresource or
diff --git a/chapters/commonvalidity/draw_common.adoc b/chapters/commonvalidity/draw_common.adoc
index 5e438459..6cccc114 100644
--- a/chapters/commonvalidity/draw_common.adoc
+++ b/chapters/commonvalidity/draw_common.adoc
@@ -800,7 +800,12 @@ endif::VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts[]
slink:VkPipelineRenderingCreateInfo::pname:viewMask equal to
slink:VkRenderingInfo::pname:viewMask
* [[VUID-{refpage}-colorAttachmentCount-06179]]
- If the current render pass instance was begun with
+ If
+ifdef::VK_EXT_dynamic_rendering_unused_attachments[]
+ the <<features-dynamicRenderingUnusedAttachments,
+ pname:dynamicRenderingUnusedAttachments>> feature is not enabled and
+endif::VK_EXT_dynamic_rendering_unused_attachments[]
+ the current render pass instance was begun with
flink:vkCmdBeginRendering, the currently bound graphics pipeline must:
have been created with a
slink:VkPipelineRenderingCreateInfo::pname:colorAttachmentCount equal to
diff --git a/chapters/commonvalidity/draw_dispatch_common.adoc b/chapters/commonvalidity/draw_dispatch_common.adoc
index d4c6f83e..4be62569 100644
--- a/chapters/commonvalidity/draw_dispatch_common.adoc
+++ b/chapters/commonvalidity/draw_dispatch_common.adoc
@@ -79,8 +79,7 @@ ifdef::VK_QCOM_filter_cubic_clamp[]
* [[VUID-{refpage}-cubicRangeClamp-09212]]
If the <<features-filter-cubic-range-clamp, pname:cubicRangeClamp>>
feature is not enabled, then any slink:VkImageView being sampled with
- ename:VK_FILTER_CUBIC_EXT as a result of this command
- must: not have a
+ ename:VK_FILTER_CUBIC_EXT as a result of this command must: not have a
slink:VkSamplerReductionModeCreateInfo::pname:reductionMode equal to
ename:VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
* [[VUID-{refpage}-reductionMode-09213]]
diff --git a/chapters/commonvalidity/draw_index_binding.adoc b/chapters/commonvalidity/draw_index_binding.adoc
index 074def8e..8c98e83f 100644
--- a/chapters/commonvalidity/draw_index_binding.adoc
+++ b/chapters/commonvalidity/draw_index_binding.adoc
@@ -3,8 +3,7 @@
// SPDX-License-Identifier: CC-BY-4.0
// Common Valid Usage
-ifndef::VK_KHR_maintenance5[]
- * [[VUID-{refpage}-robustBufferAccess2-08797]]
+ * [[VUID-{refpage}-robustBufferAccess2-08798]]
If <<features-robustBufferAccess2, pname:robustBufferAccess2>> is not
enabled, [eq]#(code:indexSize {times} (pname:firstIndex {plus}
pname:indexCount) {plus} pname:offset)# must: be less than or equal to
@@ -12,16 +11,8 @@ ifndef::VK_KHR_maintenance5[]
the type specified by pname:indexType, where the index buffer,
pname:indexType, and pname:offset are specified via
fname:vkCmdBindIndexBuffer
-endif::VK_KHR_maintenance5[]
ifdef::VK_KHR_maintenance5[]
- * [[VUID-{refpage}-robustBufferAccess2-08798]]
- If <<features-robustBufferAccess2, pname:robustBufferAccess2>> is not
- enabled, [eq]#(code:indexSize {times} (pname:firstIndex {plus}
- pname:indexCount) {plus} pname:offset)# must: be less than or equal to
- the size of the bound index buffer, with code:indexSize being based on
- the type specified by pname:indexType, where the index buffer,
- pname:indexType, and pname:offset are specified via
- fname:vkCmdBindIndexBuffer or fname:vkCmdBindIndexBuffer2KHR.
+ or fname:vkCmdBindIndexBuffer2KHR.
If fname:vkCmdBindIndexBuffer2KHR is used to bind the index buffer, the
size of the bound index buffer is
flink:vkCmdBindIndexBuffer2KHR::pname:size
diff --git a/chapters/commonvalidity/draw_vertex_binding.adoc b/chapters/commonvalidity/draw_vertex_binding.adoc
index 2305a918..ecaf61f8 100644
--- a/chapters/commonvalidity/draw_vertex_binding.adoc
+++ b/chapters/commonvalidity/draw_vertex_binding.adoc
@@ -31,26 +31,17 @@ ifdef::VK_EXT_vertex_input_dynamic_state[]
endif::VK_EXT_vertex_input_dynamic_state[]
then flink:vkCmdSetPrimitiveTopology must: have been called in the
current command buffer prior to this drawing command
-ifndef::VK_EXT_extended_dynamic_state3[]
- * [[VUID-{refpage}-primitiveTopology-03420]]
- If the bound graphics pipeline state was created with the
- ename:VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled then the
- pname:primitiveTopology parameter of fname:vkCmdSetPrimitiveTopology
- must: be of the same <<drawing-primitive-topology-class, topology
- class>> as the pipeline
- slink:VkPipelineInputAssemblyStateCreateInfo::pname:topology state
-endif::VK_EXT_extended_dynamic_state3[]
-ifdef::VK_EXT_extended_dynamic_state3[]
* [[VUID-{refpage}-dynamicPrimitiveTopologyUnrestricted-07500]]
If the bound graphics pipeline state was created with the
- ename:VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled and the
- <<limits-dynamicPrimitiveTopologyUnrestricted,
- pname:dynamicPrimitiveTopologyUnrestricted>> is ename:VK_FALSE, then the
- pname:primitiveTopology parameter of fname:vkCmdSetPrimitiveTopology
- must: be of the same <<drawing-primitive-topology-class, topology
- class>> as the pipeline
- slink:VkPipelineInputAssemblyStateCreateInfo::pname:topology state
+ ename:VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state enabled
+ifdef::VK_EXT_extended_dynamic_state3[]
+ and the <<limits-dynamicPrimitiveTopologyUnrestricted,
+ pname:dynamicPrimitiveTopologyUnrestricted>> is ename:VK_FALSE,
endif::VK_EXT_extended_dynamic_state3[]
+ then the pname:primitiveTopology parameter of
+ fname:vkCmdSetPrimitiveTopology must: be of the same
+ <<drawing-primitive-topology-class, topology class>> as the pipeline
+ slink:VkPipelineInputAssemblyStateCreateInfo::pname:topology state
ifdef::VK_EXT_vertex_input_dynamic_state[]
* [[VUID-{refpage}-None-04912]]
If the bound graphics pipeline was created with both the
@@ -58,24 +49,19 @@ ifdef::VK_EXT_vertex_input_dynamic_state[]
ename:VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states
enabled, then flink:vkCmdSetVertexInputEXT must: have been called in the
current command buffer prior to this draw command
+endif::VK_EXT_vertex_input_dynamic_state[]
* [[VUID-{refpage}-pStrides-04913]]
If the bound graphics pipeline was created with the
ename:VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state
- enabled, but not the ename:VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic
- state enabled, then flink:vkCmdBindVertexBuffers2EXT must: have been
- called in the current command buffer prior to this draw command, and the
- pname:pStrides parameter of flink:vkCmdBindVertexBuffers2EXT must: not
- be `NULL`
+ enabled,
+ifdef::VK_EXT_vertex_input_dynamic_state[]
+ but without the ename:VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state
+ enabled,
endif::VK_EXT_vertex_input_dynamic_state[]
-ifndef::VK_EXT_vertex_input_dynamic_state[]
- * [[VUID-{refpage}-pStrides-04884]]
- If the bound graphics pipeline was created with the
- ename:VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state
- enabled, then flink:vkCmdBindVertexBuffers2EXT must: have been called in
- the current command buffer prior to this drawing command, and the
+ then flink:vkCmdBindVertexBuffers2EXT must: have been called in the
+ current command buffer prior to this draw command, and the
pname:pStrides parameter of flink:vkCmdBindVertexBuffers2EXT must: not
be `NULL`
-endif::VK_EXT_vertex_input_dynamic_state[]
endif::VK_VERSION_1_3,VK_EXT_extended_dynamic_state[]
ifdef::VK_EXT_vertex_input_dynamic_state,VK_EXT_shader_object[]
* [[VUID-{refpage}-None-04914]]
diff --git a/chapters/commonvalidity/image_blit_common.adoc b/chapters/commonvalidity/image_blit_common.adoc
index 226305a2..4d79cb2e 100644
--- a/chapters/commonvalidity/image_blit_common.adoc
+++ b/chapters/commonvalidity/image_blit_common.adoc
@@ -16,10 +16,6 @@ ifndef::VK_KHR_maintenance5[The]
pname:layerCount members of pname:srcSubresource or pname:dstSubresource
must: match
ifdef::VK_KHR_maintenance5[]
- * [[VUID-{refpage}-maintenance5-08799]]
- If the <<features-maintenance5, pname:maintenance5>> feature is not
- enabled, the pname:layerCount member of pname:srcSubresource or
- pname:dstSubresource must: not be ename:VK_REMAINING_ARRAY_LAYERS
* [[VUID-{refpage}-layerCount-08801]]
If one of the pname:layerCount members of pname:srcSubresource or
pname:dstSubresource is ename:VK_REMAINING_ARRAY_LAYERS, the other
diff --git a/chapters/commonvalidity/image_resolve_common.adoc b/chapters/commonvalidity/image_resolve_common.adoc
index 3caae543..a00c7642 100644
--- a/chapters/commonvalidity/image_resolve_common.adoc
+++ b/chapters/commonvalidity/image_resolve_common.adoc
@@ -16,10 +16,6 @@ ifndef::VK_KHR_maintenance5[The]
pname:layerCount member of pname:srcSubresource and pname:dstSubresource
must: match
ifdef::VK_KHR_maintenance5[]
- * [[VUID-{refpage}-maintenance5-08802]]
- If the <<features-maintenance5, pname:maintenance5>> feature is not
- enabled, the pname:layerCount member of pname:srcSubresource or
- pname:dstSubresource must: not be ename:VK_REMAINING_ARRAY_LAYERS
* [[VUID-{refpage}-layerCount-08804]]
If one of the pname:layerCount members of pname:srcSubresource or
pname:dstSubresource is ename:VK_REMAINING_ARRAY_LAYERS, the other
diff --git a/chapters/copies.adoc b/chapters/copies.adoc
index cec09b1e..66dc6421 100644
--- a/chapters/copies.adoc
+++ b/chapters/copies.adoc
@@ -1262,13 +1262,6 @@ endif::VK_KHR_shared_presentable_image[]
The specified pname:mipLevel of each region must: be less than the
pname:mipLevels specified in slink:VkImageCreateInfo when pname:dstImage
was created
- * [[VUID-vkCmdCopyMemoryToImageIndirectNV-layerCount-09244]]
- {empty}
-ifdef::VK_KHR_maintenance5[]
- If the <<features-maintenance5, pname:maintenance5>> feature is not
- enabled,
-endif::VK_KHR_maintenance5[]
- pname:layerCount must: not be ename:VK_REMAINING_ARRAY_LAYERS
* [[VUID-vkCmdCopyMemoryToImageIndirectNV-layerCount-08764]]
If pname:layerCount is not ename:VK_REMAINING_ARRAY_LAYERS, the
specified pname:baseArrayLayer {plus} pname:layerCount of each region
diff --git a/chapters/descriptorsets.adoc b/chapters/descriptorsets.adoc
index e234776c..21f6ef96 100644
--- a/chapters/descriptorsets.adoc
+++ b/chapters/descriptorsets.adoc
@@ -2585,6 +2585,13 @@ ifdef::VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type[]
ename:VK_DESCRIPTOR_TYPE_MUTABLE_EXT element in pname:pPoolSizes must:
not have sets of supported descriptor types which partially overlap
endif::VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type[]
+ifdef::VK_VERSION_1_3,VK_EXT_inline_uniform_block[]
+ * [[VUID-VkDescriptorPoolCreateInfo-pPoolSizes-09424]]
+ If pname:pPoolSizes contains a pname:descriptorType of
+ ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, the pname:pNext chain
+ must: include a slink:VkDescriptorPoolInlineUniformBlockCreateInfo
+ structure whose pname:maxInlineUniformBlockBindings member is not zero
+endif::VK_VERSION_1_3,VK_EXT_inline_uniform_block[]
****
include::{generated}/validity/structs/VkDescriptorPoolCreateInfo.adoc[]
@@ -3945,6 +3952,27 @@ endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
pname:aspectMask used to create the pname:imageView must: include either
ename:VK_IMAGE_ASPECT_DEPTH_BIT or ename:VK_IMAGE_ASPECT_STENCIL_BIT but
not both
+ * [[VUID-VkDescriptorImageInfo-imageLayout-09425]]
+ If pname:imageLayout is ename:VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
+ then the pname:aspectMask used to create pname:imageView must: not
+ include either ename:VK_IMAGE_ASPECT_DEPTH_BIT or
+ ename:VK_IMAGE_ASPECT_STENCIL_BIT
+ * [[VUID-VkDescriptorImageInfo-imageLayout-09426]]
+ If pname:imageLayout is
+ifdef::VK_VERSION_1_1,VK_KHR_maintenance2[]
+ ename:VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
+ ename:VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
+endif::VK_VERSION_1_1,VK_KHR_maintenance2[]
+ifdef::VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts[]
+ ename:VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
+ ename:VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
+ ename:VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
+ ename:VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
+endif::VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts[]
+ ename:VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or
+ ename:VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, then the
+ pname:aspectMask used to create pname:imageView must: not include
+ ename:VK_IMAGE_ASPECT_COLOR_BIT
* [[VUID-VkDescriptorImageInfo-imageLayout-00344]]
pname:imageLayout must: match the actual elink:VkImageLayout of each
subresource accessible from pname:imageView at the time this descriptor
@@ -4932,12 +4960,6 @@ ifdef::VK_EXT_graphics_pipeline_library[]
endif::VK_EXT_graphics_pipeline_library[]
ifndef::VK_EXT_graphics_pipeline_library[Each]
element of pname:pDescriptorSets must: be a valid slink:VkDescriptorSet
-ifdef::VK_EXT_descriptor_buffer[]
- * [[VUID-vkCmdBindDescriptorSets-pDescriptorSets-08010]]
- Each element of pname:pDescriptorSets must: have been allocated with a
- sname:VkDescriptorSetLayout which was not created with
- ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
-endif::VK_EXT_descriptor_buffer[]
****
include::{generated}/validity/protos/vkCmdBindDescriptorSets.adoc[]
@@ -5708,6 +5730,24 @@ include::{generated}/api/structs/VkDescriptorGetInfoEXT.adoc[]
pname:pStorageBuffer is not `NULL` and pname:pStorageBuffer->address is
not zero, pname:pStorageBuffer->address must be an address within a
slink:VkBuffer created on pname:device
+ * [[VUID-VkDescriptorGetInfoEXT-type-09427]]
+ If pname:type is ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER,
+ pname:pUniformBuffer is not `NULL` , the number of texel buffer elements
+ given by [eq]#({lfloor}pname:pUniformBuffer->range / (texel block
+ size){rfloor} {times} (texels per block))# where texel block size and
+ texels per block are as defined in the <<formats-compatibility,
+ Compatible Formats>> table for pname:pUniformBuffer->format, must: be
+ less than or equal to
+ sname:VkPhysicalDeviceLimits::pname:maxTexelBufferElements
+ * [[VUID-VkDescriptorGetInfoEXT-type-09428]]
+ If pname:type is ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER,
+ pname:pStorageBuffer is not `NULL` , the number of texel buffer elements
+ given by [eq]#({lfloor}pname:pStorageBuffer->range / (texel block
+ size){rfloor} {times} (texels per block))# where texel block size and
+ texels per block are as defined in the <<formats-compatibility,
+ Compatible Formats>> table for pname:pStorageBuffer->format, must: be
+ less than or equal to
+ sname:VkPhysicalDeviceLimits::pname:maxTexelBufferElements
ifdef::VK_KHR_acceleration_structure[]
* [[VUID-VkDescriptorGetInfoEXT-type-08028]]
If pname:type is ename:VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR and
@@ -6111,6 +6151,7 @@ descriptors is passed in a
sname:VkDescriptorBufferBindingPushDescriptorBufferHandleEXT structure:
include::{generated}/api/structs/VkDescriptorBufferBindingPushDescriptorBufferHandleEXT.adoc[]
+
* pname:sType is a elink:VkStructureType value identifying this structure.
* pname:pNext is `NULL` or a pointer to a structure extending this
structure.
diff --git a/chapters/features.adoc b/chapters/features.adoc
index aafd60c2..7f746e94 100644
--- a/chapters/features.adoc
+++ b/chapters/features.adoc
@@ -6221,7 +6221,7 @@ This structure describes the following features:
pname:nestedCommandBufferSimultaneousUse indicates that the
implementation supports nested command buffers with command buffers that
are recorded with ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT.
-
+
:refpage: VkPhysicalDeviceNestedCommandBufferFeaturesEXT
include::{chapters}/features.adoc[tag=features]
@@ -7141,7 +7141,7 @@ This structure describes the following features:
* [[features-cudaKernelLaunchFeatures]] pname:cudaKernelLaunchFeatures is
non-zero if cuda kernel launch is supported.
-
+
:refpage: VkPhysicalDeviceCudaKernelLaunchFeaturesNV
include::{chapters}/features.adoc[tag=features]
@@ -7163,7 +7163,7 @@ include::{generated}/api/structs/VkPhysicalDeviceExternalFormatResolveFeaturesAN
structure.
* [[features-externalFormatResolve]] pname:externalFormatResolve specifies
whether external format resolves are supported.
-
+
:refpage: VkPhysicalDeviceExternalFormatResolveFeaturesANDROID
include::{chapters}/features.adoc[tag=features]
@@ -7192,6 +7192,30 @@ include::{generated}/validity/structs/VkPhysicalDeviceSchedulingControlsFeatures
--
endif::VK_ARM_scheduling_controls[]
+ifdef::VK_IMG_relaxed_line_rasterization[]
+[open,refpage='VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG',desc='Structure describing relaxed line rasterization features that can be supported by an implementation',type='structs']
+--
+The sname:VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG structure is
+defined as:
+
+include::{generated}/api/structs/VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG.adoc[]
+
+This structure describes the following feature:
+
+ * pname:sType is a elink:VkStructureType value identifying this structure.
+ * pname:pNext is `NULL` or a pointer to a structure extending this
+ structure.
+ * [[features-relaxedLineRasterization]] pname:relaxedLineRasterization
+ indicates that the implementation supports relaxed line rasterization
+ control.
+
+:refpage: VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG
+include::{chapters}/features.adoc[tag=features]
+
+include::{generated}/validity/structs/VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG.adoc[]
+--
+endif::VK_IMG_relaxed_line_rasterization[]
+
[[features-requirements]]
== Feature Requirements
@@ -8030,6 +8054,10 @@ ifdef::VK_ARM_scheduling_controls[]
* <<features-schedulingControls,pname:schedulingControls>>, if the
`apiext:VK_ARM_scheduling_controls` extension is supported.
endif::VK_ARM_scheduling_controls[]
+ifdef::VK_IMG_relaxed_line_rasterization[]
+ * <<features-relaxedLineRasterization,pname:relaxedLineRasterization>>, if
+ the `apiext:VK_IMG_relaxed_line_rasterization` extension is supported.
+endif::VK_IMG_relaxed_line_rasterization[]
All other features defined in the Specification are optional:.
diff --git a/chapters/framebuffer.adoc b/chapters/framebuffer.adoc
index 1b006a8d..684ab88a 100644
--- a/chapters/framebuffer.adoc
+++ b/chapters/framebuffer.adoc
@@ -884,6 +884,9 @@ create the currently active pipeline.
.Valid Usage
****
include::{chapters}/commonvalidity/dynamic_state3_feature_common.adoc[]
+ * [[VUID-vkCmdSetLogicOpEnableEXT-logicOp-07366]]
+ If the <<features-logicOp, pname:logicOp>> feature is not enabled,
+ pname:logicOpEnable must: be ename:VK_FALSE
****
include::{generated}/validity/protos/vkCmdSetLogicOpEnableEXT.adoc[]
diff --git a/chapters/limits.adoc b/chapters/limits.adoc
index ee88c744..e705ce03 100644
--- a/chapters/limits.adoc
+++ b/chapters/limits.adoc
@@ -2955,6 +2955,9 @@ include::{generated}/api/structs/VkPhysicalDeviceCooperativeMatrixPropertiesKHR.
ename:VK_SHADER_STAGE_COMPUTE_BIT bit set if any of the physical
device's queues support ename:VK_QUEUE_COMPUTE_BIT.
+pname:cooperativeMatrixSupportedStages must: not have any bits other than
+ename:VK_SHADER_STAGE_COMPUTE_BIT set.
+
:refpage: VkPhysicalDeviceCooperativeMatrixPropertiesKHR
include::{chapters}/limits.adoc[tag=limits_desc]
@@ -4374,7 +4377,7 @@ structure describe the following features:
* [[limits-computeCapabilityMinor]] pname:computeCapabilityMinor indicates
the minor version number of the compute code.
* [[limits-computeCapabilityMajor]] pname:computeCapabilityMajor indicates
- the minor version number of the compute code.
+ the major version number of the compute code.
:refpage: VkPhysicalDeviceCudaKernelLaunchPropertiesNV
include::{chapters}/limits.adoc[tag=limits_desc]
diff --git a/chapters/pipelines.adoc b/chapters/pipelines.adoc
index 1576c22e..4529c6d9 100644
--- a/chapters/pipelines.adoc
+++ b/chapters/pipelines.adoc
@@ -1116,6 +1116,7 @@ pname:pNext chain of slink:VkComputePipelineCreateInfo.
The sname:VkComputePipelineIndirectBufferInfoNV structure is defined as:
include::{generated}/api/structs/VkComputePipelineIndirectBufferInfoNV.adoc[]
+
* pname:sType is a elink:VkStructureType value identifying this structure.
* pname:pNext is `NULL` or a pointer to a structure extending this
structure.
@@ -2034,61 +2035,43 @@ endif::VK_NV_mesh_shader,VK_EXT_mesh_shader[]
pname:pDynamicStates member of pname:pDynamicState is
ename:VK_DYNAMIC_STATE_LINE_WIDTH, the pname:lineWidth member of
pname:pRasterizationState must: be `1.0`
-ifndef::VK_EXT_extended_dynamic_state3[]
- * [[VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00750]]
- If the pipeline requires <<pipelines-graphics-subsets-pre-rasterization,
- pre-rasterization shader state>>, and the pname:rasterizerDiscardEnable
- member of pname:pRasterizationState is ename:VK_FALSE,
- pname:pViewportState must: be a valid pointer to a valid
- slink:VkPipelineViewportStateCreateInfo structure
-endif::VK_EXT_extended_dynamic_state3[]
-ifdef::VK_EXT_extended_dynamic_state3[]
* [[VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-09024]]
If the pipeline requires <<pipelines-graphics-subsets-pre-rasterization,
- pre-rasterization shader state>>, and the
- ename:VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state is
- enabled or the pname:rasterizerDiscardEnable member of
- pname:pRasterizationState is ename:VK_FALSE, and either the
- `apiext:VK_EXT_extended_dynamic_state3` extension is not enabled, or
- either the ename:VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT or
+ pre-rasterization shader state>>, and
+ifdef::VK_VERSION_1_3,VK_EXT_extended_dynamic_state2[]
+ the ename:VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state is
+ enabled or
+endif::VK_VERSION_1_3,VK_EXT_extended_dynamic_state2[]
+ the pname:rasterizerDiscardEnable member of pname:pRasterizationState is
+ ename:VK_FALSE,
+ifdef::VK_EXT_extended_dynamic_state3[]
+ and either the `apiext:VK_EXT_extended_dynamic_state3` extension is not
+ enabled, or either the ename:VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT or
ename:VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic states are not set,
+endif::VK_EXT_extended_dynamic_state3[]
pname:pViewportState must: be a valid pointer to a valid
slink:VkPipelineViewportStateCreateInfo structure
+ifdef::VK_EXT_extended_dynamic_state3[]
* [[VUID-VkGraphicsPipelineCreateInfo-pViewportState-09025]]
If pname:pViewportState is not `NULL` it must: be a valid pointer to a
valid slink:VkPipelineViewportStateCreateInfo structure
endif::VK_EXT_extended_dynamic_state3[]
-ifdef::VK_VERSION_1_3,VK_EXT_extended_dynamic_state2[]
- * [[VUID-VkGraphicsPipelineCreateInfo-pViewportState-04892]]
- If the pipeline requires <<pipelines-graphics-subsets-pre-rasterization,
- pre-rasterization shader state>>, and the graphics pipeline state was
- created with the ename:VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE
- dynamic state enabled, pname:pViewportState must: be a valid pointer to
- a valid slink:VkPipelineViewportStateCreateInfo structure
-endif::VK_VERSION_1_3,VK_EXT_extended_dynamic_state2[]
-ifndef::VK_EXT_extended_dynamic_state3[]
- * [[VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00751]]
- If the pipeline requires <<pipelines-graphics-subsets-fragment-output,
- fragment output interface state>>, pname:pMultisampleState must: be a
- valid pointer to a valid slink:VkPipelineMultisampleStateCreateInfo
- structure
-endif::VK_EXT_extended_dynamic_state3[]
-ifdef::VK_EXT_extended_dynamic_state3[]
* [[VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-09026]]
If the pipeline requires <<pipelines-graphics-subsets-fragment-output,
- fragment output interface state>>, and the
- `apiext:VK_EXT_extended_dynamic_state3` extension is not enabled or any
- of the ename:VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT,
+ fragment output interface state>>,
+ifdef::VK_EXT_extended_dynamic_state3[]
+ and the `apiext:VK_EXT_extended_dynamic_state3` extension is not enabled
+ or any of the ename:VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT,
ename:VK_DYNAMIC_STATE_SAMPLE_MASK_EXT, or
ename:VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic states is
not set, or <<features-alphaToOne,alphaToOne>> is enabled on the device
and ename:VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT is not set,
+endif::VK_EXT_extended_dynamic_state3[]
pname:pMultisampleState must: be a valid pointer to a valid
slink:VkPipelineMultisampleStateCreateInfo structure
* [[VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-09027]]
If pname:pMultisampleState is not `NULL` is must: be a valid pointer to
a valid slink:VkPipelineMultisampleStateCreateInfo structure
-endif::VK_EXT_extended_dynamic_state3[]
* [[VUID-VkGraphicsPipelineCreateInfo-alphaToCoverageEnable-08891]]
If the pipeline is being created with
<<pipelines-graphics-subsets-fragment-shader, fragment shader state>>,
@@ -2098,19 +2081,11 @@ endif::VK_EXT_extended_dynamic_state3[]
<<interfaces-fragmentoutput, Fragment Output Interface>> must: contain a
variable for the alpha code:Component word in code:Location 0 at
code:Index 0
-ifndef::VK_EXT_extended_dynamic_state3[]
- * [[VUID-VkGraphicsPipelineCreateInfo-renderPass-06043]]
- If pname:renderPass is not dlink:VK_NULL_HANDLE, the pipeline is being
- created with <<pipelines-graphics-subsets-fragment-shader, fragment
- shader state>>, and pname:subpass uses a depth/stencil attachment,
- pname:pDepthStencilState must: be a valid pointer to a valid
- slink:VkPipelineDepthStencilStateCreateInfo structure
-endif::VK_EXT_extended_dynamic_state3[]
-ifdef::VK_EXT_extended_dynamic_state3[]
* [[VUID-VkGraphicsPipelineCreateInfo-renderPass-09028]]
If pname:renderPass is not dlink:VK_NULL_HANDLE, the pipeline is being
created with <<pipelines-graphics-subsets-fragment-shader, fragment
shader state>>, and pname:subpass uses a depth/stencil attachment, and
+ifdef::VK_EXT_extended_dynamic_state3[]
the `apiext:VK_EXT_extended_dynamic_state3` extension is not enabled or,
any of the ename:VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE,
ename:VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE,
@@ -2119,35 +2094,27 @@ ifdef::VK_EXT_extended_dynamic_state3[]
ename:VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE,
ename:VK_DYNAMIC_STATE_STENCIL_OP, or
ename:VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic states are not set,
+endif::VK_EXT_extended_dynamic_state3[]
pname:pDepthStencilState must: be a valid pointer to a valid
slink:VkPipelineDepthStencilStateCreateInfo structure
* [[VUID-VkGraphicsPipelineCreateInfo-pDepthStencilState-09029]]
If pname:pDepthStencilState is not `NULL` it must: be a valid pointer to
a valid slink:VkPipelineDepthStencilStateCreateInfo structure
-endif::VK_EXT_extended_dynamic_state3[]
-ifndef::VK_EXT_extended_dynamic_state3[]
- * [[VUID-VkGraphicsPipelineCreateInfo-renderPass-06044]]
+ * [[VUID-VkGraphicsPipelineCreateInfo-renderPass-09030]]
If pname:renderPass is not dlink:VK_NULL_HANDLE, the pipeline is being
created with <<pipelines-graphics-subsets-fragment-output, fragment
output interface state>>, and pname:subpass uses color attachments,
- pname:pColorBlendState must: be a valid pointer to a valid
- slink:VkPipelineColorBlendStateCreateInfo structure
-endif::VK_EXT_extended_dynamic_state3[]
ifdef::VK_EXT_extended_dynamic_state3[]
- * [[VUID-VkGraphicsPipelineCreateInfo-renderPass-09030]]
- If pname:renderPass is not dlink:VK_NULL_HANDLE, the pipeline is being
- created with <<pipelines-graphics-subsets-fragment-output, fragment
- output interface state>>, and pname:subpass uses color attachments, and
- `apiext:VK_EXT_extended_dynamic_state3` extension is not enabled, or any
- of the ename:VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT,
+ and `apiext:VK_EXT_extended_dynamic_state3` extension is not enabled, or
+ any of the ename:VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT,
ename:VK_DYNAMIC_STATE_LOGIC_OP_EXT,
ename:VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT,
ename:VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT,
ename:VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, or
ename:VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic states are not set,
+endif::VK_EXT_extended_dynamic_state3[]
pname:pColorBlendState must: be a valid pointer to a valid
slink:VkPipelineColorBlendStateCreateInfo structure
-endif::VK_EXT_extended_dynamic_state3[]
* [[VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00754]]
If the pipeline requires <<pipelines-graphics-subsets-pre-rasterization,
pre-rasterization shader state>>, the <<features-depthBiasClamp,
@@ -2156,27 +2123,17 @@ endif::VK_EXT_extended_dynamic_state3[]
ename:VK_DYNAMIC_STATE_DEPTH_BIAS, and the pname:depthBiasEnable member
of pname:pRasterizationState is ename:VK_TRUE, the pname:depthBiasClamp
member of pname:pRasterizationState must: be `0.0`
-ifndef::VK_EXT_depth_range_unrestricted[]
- * [[VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00755]]
- If the pipeline requires <<pipelines-graphics-subsets-fragment-shader,
- fragment shader state>>, and no element of the pname:pDynamicStates
- member of pname:pDynamicState is ename:VK_DYNAMIC_STATE_DEPTH_BOUNDS,
- and the pname:depthBoundsTestEnable member of pname:pDepthStencilState
- is ename:VK_TRUE, the pname:minDepthBounds and pname:maxDepthBounds
- members of pname:pDepthStencilState must: be between `0.0` and `1.0`,
- inclusive
-endif::VK_EXT_depth_range_unrestricted[]
-ifdef::VK_EXT_depth_range_unrestricted[]
* [[VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-02510]]
If the pipeline requires <<pipelines-graphics-subsets-fragment-shader,
- fragment shader state>>, and the
- `apiext:VK_EXT_depth_range_unrestricted` extension is not enabled and no
- element of the pname:pDynamicStates member of pname:pDynamicState is
- ename:VK_DYNAMIC_STATE_DEPTH_BOUNDS, and the pname:depthBoundsTestEnable
- member of pname:pDepthStencilState is ename:VK_TRUE, the
- pname:minDepthBounds and pname:maxDepthBounds members of
- pname:pDepthStencilState must: be between `0.0` and `1.0`, inclusive
+ fragment shader state>>,
+ifdef::VK_EXT_depth_range_unrestricted[]
+ the `apiext:VK_EXT_depth_range_unrestricted` extension is not enabled
endif::VK_EXT_depth_range_unrestricted[]
+ and no element of the pname:pDynamicStates member of pname:pDynamicState
+ is ename:VK_DYNAMIC_STATE_DEPTH_BOUNDS, and the
+ pname:depthBoundsTestEnable member of pname:pDepthStencilState is
+ ename:VK_TRUE, the pname:minDepthBounds and pname:maxDepthBounds members
+ of pname:pDepthStencilState must: be between `0.0` and `1.0`, inclusive
ifdef::VK_EXT_sample_locations[]
* [[VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07610]]
If the pipeline requires <<pipelines-graphics-subsets-fragment-shader,
@@ -2463,27 +2420,21 @@ endif::VK_EXT_discard_rectangles[]
component, then all code:Input variables at the corresponding
code:Location in the code:Vertex {ExecutionModel} code:OpEntryPoint
must: not use components that are not present in the format
-ifndef::VK_EXT_extended_dynamic_state3[]
- * [[VUID-VkGraphicsPipelineCreateInfo-pStages-02098]]
- If the pipeline requires <<pipelines-graphics-subsets-vertex-input,
- vertex input state>>, pname:pInputAssemblyState must: be a valid pointer
- to a valid slink:VkPipelineInputAssemblyStateCreateInfo structure
-endif::VK_EXT_extended_dynamic_state3[]
-ifdef::VK_EXT_extended_dynamic_state3[]
* [[VUID-VkGraphicsPipelineCreateInfo-dynamicPrimitiveTopologyUnrestricted-09031]]
If the pipeline requires <<pipelines-graphics-subsets-vertex-input,
- vertex input state>>, and the `apiext:VK_EXT_extended_dynamic_state3`
- extension is not enabled, or either
- ename:VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE, or
+ vertex input state>>,
+ifdef::VK_EXT_extended_dynamic_state3[]
+ and the `apiext:VK_EXT_extended_dynamic_state3` extension is not
+ enabled, or either ename:VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE, or
ename:VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic states are not set, or
<<limits-dynamicPrimitiveTopologyUnrestricted,
pname:dynamicPrimitiveTopologyUnrestricted>> is ename:VK_FALSE,
+endif::VK_EXT_extended_dynamic_state3[]
pname:pInputAssemblyState must: be a valid pointer to a valid
slink:VkPipelineInputAssemblyStateCreateInfo structure
* [[VUID-VkGraphicsPipelineCreateInfo-pInputAssemblyState-09032]]
If pname:pInputAssemblyState is not `NULL` it must: be a valid pointer
to a valid slink:VkPipelineInputAssemblyStateCreateInfo structure
-endif::VK_EXT_extended_dynamic_state3[]
ifdef::VK_EXT_transform_feedback[]
* [[VUID-VkGraphicsPipelineCreateInfo-pStages-02317]]
If the pipeline requires <<pipelines-graphics-subsets-pre-rasterization,
@@ -2554,12 +2505,6 @@ ifdef::VK_EXT_line_rasterization[]
slink:VkPipelineRasterizationLineStateCreateInfoEXT must: be in the
range [eq]#[1,256]#
endif::VK_EXT_line_rasterization[]
-ifdef::VK_KHR_pipeline_library[]
-ifndef::VK_EXT_graphics_pipeline_library[]
- * [[VUID-VkGraphicsPipelineCreateInfo-flags-03371]]
- pname:flags must: not include ename:VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
-endif::VK_EXT_graphics_pipeline_library[]
-endif::VK_KHR_pipeline_library[]
ifdef::VK_KHR_ray_tracing_pipeline[]
* [[VUID-VkGraphicsPipelineCreateInfo-flags-03372]]
pname:flags must: not include
@@ -3021,14 +2966,6 @@ ifdef::VK_QCOM_render_pass_shader_resolve[]
pname:pResolveAttachments is not `NULL`, then each resolve attachment
must: be ename:VK_ATTACHMENT_UNUSED
endif::VK_QCOM_render_pass_shader_resolve[]
-ifndef::VK_VERSION_1_3,VK_KHR_dynamic_rendering[]
- * [[VUID-VkGraphicsPipelineCreateInfo-renderPass-06574]]
- If the pipeline requires <<pipelines-graphics-subsets-pre-rasterization,
- pre-rasterization shader state>>,
- <<pipelines-graphics-subsets-fragment-shader, fragment shader state>>,
- or <<pipelines-graphics-subsets-fragment-output, fragment output
- interface state>>, pname:renderPass must: be a valid render pass object
-endif::VK_VERSION_1_3,VK_KHR_dynamic_rendering[]
ifdef::VK_VERSION_1_3,VK_KHR_dynamic_rendering[]
* [[VUID-VkGraphicsPipelineCreateInfo-dynamicRendering-06576]]
If the <<features-dynamicRendering, pname:dynamicRendering>> feature is
@@ -3069,8 +3006,7 @@ ifdef::VK_VERSION_1_3,VK_KHR_dynamic_rendering[]
dlink:VK_NULL_HANDLE, each element of
slink:VkPipelineRenderingCreateInfo::pname:pColorAttachmentFormats must:
be a valid elink:VkFormat value
-ifndef::VK_NV_linear_color_attachment[]
- * [[VUID-VkGraphicsPipelineCreateInfo-renderPass-06581]]
+ * [[VUID-VkGraphicsPipelineCreateInfo-renderPass-06582]]
If the pipeline requires <<pipelines-graphics-subsets-fragment-output,
fragment output interface state>>, pname:renderPass is
dlink:VK_NULL_HANDLE, and any element of
@@ -3078,17 +3014,8 @@ ifndef::VK_NV_linear_color_attachment[]
not ename:VK_FORMAT_UNDEFINED, that format must: be a format with
<<potential-format-features, potential format features>> that include
ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
-endif::VK_NV_linear_color_attachment[]
ifdef::VK_NV_linear_color_attachment[]
- * [[VUID-VkGraphicsPipelineCreateInfo-renderPass-06582]]
- If the pipeline requires <<pipelines-graphics-subsets-fragment-output,
- fragment output interface state>>, pname:renderPass is
- dlink:VK_NULL_HANDLE, and any element of
- slink:VkPipelineRenderingCreateInfo::pname:pColorAttachmentFormats is
- not ename:VK_FORMAT_UNDEFINED, that format must: be a format with
- <<potential-format-features, potential format features>> that include
- ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or
- ename:VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
+ or ename:VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
endif::VK_NV_linear_color_attachment[]
* [[VUID-VkGraphicsPipelineCreateInfo-renderPass-06583]]
If the pipeline requires <<pipelines-graphics-subsets-fragment-output,
@@ -3141,18 +3068,6 @@ endif::VK_NV_linear_color_attachment[]
slink:VkPipelineRenderingCreateInfo::pname:stencilAttachmentFormat is
not ename:VK_FORMAT_UNDEFINED, pname:depthAttachmentFormat must: equal
pname:stencilAttachmentFormat
-ifndef::VK_EXT_extended_dynamic_state3[]
- * [[VUID-VkGraphicsPipelineCreateInfo-renderPass-06053]]
- If pname:renderPass is dlink:VK_NULL_HANDLE, the pipeline is being
- created with <<pipelines-graphics-subsets-fragment-shader, fragment
- shader state>> and <<pipelines-graphics-subsets-fragment-output,
- fragment output interface state>>, and either of
- slink:VkPipelineRenderingCreateInfo::pname:depthAttachmentFormat or
- slink:VkPipelineRenderingCreateInfo::pname:stencilAttachmentFormat are
- not ename:VK_FORMAT_UNDEFINED, pname:pDepthStencilState must: be a valid
- pointer to a valid slink:VkPipelineDepthStencilStateCreateInfo structure
-endif::VK_EXT_extended_dynamic_state3[]
-ifdef::VK_EXT_extended_dynamic_state3[]
* [[VUID-VkGraphicsPipelineCreateInfo-renderPass-09033]]
If pname:renderPass is dlink:VK_NULL_HANDLE, the pipeline is being
created with <<pipelines-graphics-subsets-fragment-shader, fragment
@@ -3160,81 +3075,64 @@ ifdef::VK_EXT_extended_dynamic_state3[]
fragment output interface state>>, and either of
slink:VkPipelineRenderingCreateInfo::pname:depthAttachmentFormat or
slink:VkPipelineRenderingCreateInfo::pname:stencilAttachmentFormat are
- not ename:VK_FORMAT_UNDEFINED, and the
- `apiext:VK_EXT_extended_dynamic_state3` extension is not enabled or any
- of the ename:VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE,
+ not ename:VK_FORMAT_UNDEFINED,
+ifdef::VK_EXT_extended_dynamic_state3[]
+ and the `apiext:VK_EXT_extended_dynamic_state3` extension is not enabled
+ or any of the ename:VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE,
ename:VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE,
ename:VK_DYNAMIC_STATE_DEPTH_COMPARE_OP,
ename:VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE,
ename:VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE,
ename:VK_DYNAMIC_STATE_STENCIL_OP, or
ename:VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic states are not set,
+endif::VK_EXT_extended_dynamic_state3[]
pname:pDepthStencilState must: be a valid pointer to a valid
slink:VkPipelineDepthStencilStateCreateInfo structure
* [[VUID-VkGraphicsPipelineCreateInfo-pDepthStencilState-09034]]
If pname:pDepthStencilState is not `NULL` it must: be a valid pointer to
a valid slink:VkPipelineDepthStencilStateCreateInfo structure
-endif::VK_EXT_extended_dynamic_state3[]
ifdef::VK_EXT_graphics_pipeline_library[]
-ifndef::VK_EXT_extended_dynamic_state3[]
- * [[VUID-VkGraphicsPipelineCreateInfo-renderPass-06590]]
- If pname:renderPass is dlink:VK_NULL_HANDLE and the pipeline is being
- created with <<pipelines-graphics-subsets-fragment-shader, fragment
- shader state>> but not <<pipelines-graphics-subsets-fragment-output,
- fragment output interface state>>, pname:pDepthStencilState must: be a
- valid pointer to a valid slink:VkPipelineDepthStencilStateCreateInfo
- structure
-endif::VK_EXT_extended_dynamic_state3[]
-ifdef::VK_EXT_extended_dynamic_state3[]
* [[VUID-VkGraphicsPipelineCreateInfo-renderPass-09035]]
If pname:renderPass is dlink:VK_NULL_HANDLE and the pipeline is being
created with <<pipelines-graphics-subsets-fragment-shader, fragment
shader state>> but not <<pipelines-graphics-subsets-fragment-output,
- fragment output interface state>>, and the
- `apiext:VK_EXT_extended_dynamic_state3` extension is not enabled, or any
- of the ename:VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE,
+ fragment output interface state>>,
+ifdef::VK_EXT_extended_dynamic_state3[]
+ and the `apiext:VK_EXT_extended_dynamic_state3` extension is not
+ enabled, or any of the ename:VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE,
ename:VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE,
ename:VK_DYNAMIC_STATE_DEPTH_COMPARE_OP,
ename:VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE,
ename:VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE,
ename:VK_DYNAMIC_STATE_STENCIL_OP, or
ename:VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic states are not set,
+endif::VK_EXT_extended_dynamic_state3[]
pname:pDepthStencilState must: be a valid pointer to a valid
slink:VkPipelineDepthStencilStateCreateInfo structure
* [[VUID-VkGraphicsPipelineCreateInfo-pDepthStencilState-09036]]
If pname:pDepthStencilState is not `NULL` it must: be a valid pointer to
a valid slink:VkPipelineDepthStencilStateCreateInfo structure
-endif::VK_EXT_extended_dynamic_state3[]
endif::VK_EXT_graphics_pipeline_library[]
-ifndef::VK_EXT_extended_dynamic_state3[]
- * [[VUID-VkGraphicsPipelineCreateInfo-renderPass-06054]]
- If pname:renderPass is dlink:VK_NULL_HANDLE, the pipeline is being
- created with <<pipelines-graphics-subsets-fragment-output, fragment
- output interface state>>, and
- slink:VkPipelineRenderingCreateInfo::pname:colorAttachmentCount is not
- equal to `0`, pname:pColorBlendState must: be a valid pointer to a valid
- slink:VkPipelineColorBlendStateCreateInfo structure
-endif::VK_EXT_extended_dynamic_state3[]
-ifdef::VK_EXT_extended_dynamic_state3[]
* [[VUID-VkGraphicsPipelineCreateInfo-renderPass-09037]]
If pname:renderPass is dlink:VK_NULL_HANDLE, the pipeline is being
created with <<pipelines-graphics-subsets-fragment-output, fragment
output interface state>>, and
slink:VkPipelineRenderingCreateInfo::pname:colorAttachmentCount is not
- equal to `0`, and the `apiext:VK_EXT_extended_dynamic_state3` extension
- is not enabled, or any of the
- ename:VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT,
+ equal to `0`,
+ifdef::VK_EXT_extended_dynamic_state3[]
+ and the `apiext:VK_EXT_extended_dynamic_state3` extension is not
+ enabled, or any of the ename:VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT,
ename:VK_DYNAMIC_STATE_LOGIC_OP_EXT,
ename:VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT,
ename:VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT,
ename:VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, or
ename:VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic states are not set,
+endif::VK_EXT_extended_dynamic_state3[]
pname:pColorBlendState must: be a valid pointer to a valid
slink:VkPipelineColorBlendStateCreateInfo structure
* [[VUID-VkGraphicsPipelineCreateInfo-pColorBlendState-09038]]
If pname:pColorBlendState is not `NULL` it must: be a valid pointer to a
valid slink:VkPipelineColorBlendStateCreateInfo structure
-endif::VK_EXT_extended_dynamic_state3[]
* [[VUID-VkGraphicsPipelineCreateInfo-renderPass-06055]]
If pname:renderPass is dlink:VK_NULL_HANDLE, pname:pColorBlendState is
not dynamic, and the pipeline is being created with
@@ -3452,8 +3350,14 @@ ifndef::VK_EXT_extended_dynamic_state3[]
endif::VK_EXT_extended_dynamic_state3[]
ifdef::VK_EXT_extended_dynamic_state3[]
* [[VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09039]]
- If the `apiext:VK_EXT_extended_dynamic_state3` extension is not enabled,
- or any of the ename:VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT,
+ If
+ifdef::VK_EXT_graphics_pipeline_library[]
+ slink:VkGraphicsPipelineLibraryCreateInfoEXT::pname:flags includes
+ ename:VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT,
+ and
+endif::VK_EXT_graphics_pipeline_library[]
+ the `apiext:VK_EXT_extended_dynamic_state3` extension is not enabled, or
+ any of the ename:VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT,
ename:VK_DYNAMIC_STATE_SAMPLE_MASK_EXT, or
ename:VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic states are
not set, or <<features-alphaToOne,alphaToOne>> is enabled on the device
@@ -3483,11 +3387,13 @@ endif::VK_VERSION_1_3,VK_KHR_dynamic_rendering[]
pre-rasterization shader state>> or
<<pipelines-graphics-subsets-fragment-shader, fragment shader state>>,
pname:stageCount must: be greater than `0`
-ifdef::VK_EXT_graphics_pipeline_library[]
* [[VUID-VkGraphicsPipelineCreateInfo-graphicsPipelineLibrary-06606]]
+ifdef::VK_EXT_graphics_pipeline_library[]
If the <<features-graphicsPipelineLibrary,
- pname:graphicsPipelineLibrary>> feature is not enabled, pname:flags
- must: not include ename:VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
+ pname:graphicsPipelineLibrary>> feature is not enabled,
+endif::VK_EXT_graphics_pipeline_library[]
+ pname:flags must: not include ename:VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
+ifdef::VK_EXT_graphics_pipeline_library[]
* [[VUID-VkGraphicsPipelineCreateInfo-flags-06608]]
If the pipeline defines, or includes as libraries, all the state subsets
required for a <<pipelines-graphics-subsets-complete, complete graphics
@@ -3770,16 +3676,14 @@ endif::VK_VERSION_1_3,VK_KHR_dynamic_rendering[]
fragment shader state>> pname:pMultisampleState must: be `NULL` or a
valid pointer to a valid slink:VkPipelineMultisampleStateCreateInfo
structure
-ifndef::VK_VERSION_1_3,VK_KHR_dynamic_rendering[]
- * [[VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-06630]]
+ * [[VUID-VkGraphicsPipelineCreateInfo-renderpass-06631]]
If the pipeline requires <<pipelines-graphics-subsets-fragment-shader,
- fragment shader state>> pname:pMultisampleState must: not be `NULL`
+ fragment shader state>>
+ifdef::VK_VERSION_1_3,VK_KHR_dynamic_rendering[]
+ and pname:renderpass is not dlink:VK_NULL_HANDLE, then
endif::VK_VERSION_1_3,VK_KHR_dynamic_rendering[]
+ pname:pMultisampleState must: not be `NULL`
ifdef::VK_VERSION_1_3,VK_KHR_dynamic_rendering[]
- * [[VUID-VkGraphicsPipelineCreateInfo-renderpass-06631]]
- If the pipeline requires <<pipelines-graphics-subsets-fragment-shader,
- fragment shader state>> and pname:renderpass is not
- dlink:VK_NULL_HANDLE, then pname:pMultisampleState must: not be `NULL`
* [[VUID-VkGraphicsPipelineCreateInfo-Input-06632]]
If the pipeline requires <<pipelines-graphics-subsets-fragment-shader,
fragment shader state>> with a fragment shader that either enables
@@ -3864,22 +3768,6 @@ ifndef::VK_EXT_extended_dynamic_state3[]
pname:pRasterizationState must: be a valid pointer to a valid
slink:VkPipelineRasterizationStateCreateInfo structure
endif::VK_EXT_extended_dynamic_state3[]
-ifdef::VK_EXT_extended_dynamic_state3[]
- * [[VUID-VkGraphicsPipelineCreateInfo-flags-09041]]
- If slink:VkGraphicsPipelineLibraryCreateInfoEXT::pname:flags includes
- ename:VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT,
- and the `apiext:VK_EXT_extended_dynamic_state3` extension is not
- enabled, or any of the ename:VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT,
- ename:VK_DYNAMIC_STATE_SAMPLE_MASK_EXT, or
- ename:VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic states are
- not set, or <<features-alphaToOne,alphaToOne>> is enabled on the device
- and ename:VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT is not set,
- pname:pMultisampleState must: be a valid pointer to a valid
- slink:VkPipelineMultisampleStateCreateInfo structure
- * [[VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09042]]
- If pname:pRasterizationState is not `NULL` it must: be a valid pointer
- to a valid slink:VkPipelineRasterizationStateCreateInfo structure
-endif::VK_EXT_extended_dynamic_state3[]
* [[VUID-VkGraphicsPipelineCreateInfo-flags-06642]]
If slink:VkGraphicsPipelineLibraryCreateInfoEXT::pname:flags includes
ename:VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or
@@ -3953,22 +3841,6 @@ endif::VK_KHR_pipeline_executable_properties[]
the union of the libraries' pipeline layouts
endif::VK_EXT_graphics_pipeline_library[]
ifdef::VK_EXT_conservative_rasterization[]
-ifndef::VK_EXT_extended_dynamic_state3[]
- * [[VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-06759]]
- If <<limits-conservativePointAndLineRasterization,
- pname:conservativePointAndLineRasterization>> is not supported; the
- pipeline requires <<pipelines-graphics-subsets-vertex-input, vertex
- input state>> and <<pipelines-graphics-subsets-pre-rasterization,
- pre-rasterization shader state>>; the pipeline does not include a
- geometry shader; and the value of
- slink:VkPipelineInputAssemblyStateCreateInfo::pname:topology is
- ename:VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
- ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST, or
- ename:VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, then
- slink:VkPipelineRasterizationConservativeStateCreateInfoEXT::pname:conservativeRasterizationMode
- must: be ename:VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
-endif::VK_EXT_extended_dynamic_state3[]
-ifdef::VK_EXT_extended_dynamic_state3[]
* [[VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-08892]]
If <<limits-conservativePointAndLineRasterization,
pname:conservativePointAndLineRasterization>> is not supported; the
@@ -3979,14 +3851,16 @@ ifdef::VK_EXT_extended_dynamic_state3[]
of slink:VkPipelineInputAssemblyStateCreateInfo::pname:topology is
ename:VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST, or
- ename:VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, and either
- ename:VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state is not enabled
- or
+ ename:VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,
+ifdef::VK_EXT_extended_dynamic_state3[]
+ and either ename:VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state is
+ not enabled or
<<limits-dynamicPrimitiveTopologyUnrestricted,pname:dynamicPrimitiveTopologyUnrestricted>>
- is ename:VK_FALSE, then
+ is ename:VK_FALSE,
+endif::VK_EXT_extended_dynamic_state3[]
+ then
slink:VkPipelineRasterizationConservativeStateCreateInfoEXT::pname:conservativeRasterizationMode
must: be ename:VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
-endif::VK_EXT_extended_dynamic_state3[]
* [[VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-06760]]
If <<limits-conservativePointAndLineRasterization,
pname:conservativePointAndLineRasterization>> is not supported, the
@@ -4288,24 +4162,17 @@ ifndef::VK_EXT_graphics_pipeline_library[]
If pname:pStages includes a vertex shader stage, the pipeline must: be
created with <<pipelines-graphics-subsets-vertex-input, vertex input
state>>
-ifndef::VK_EXT_extended_dynamic_state3,VK_VERSION_1_3[]
- * [[VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-08895]]
- If pname:pRasterizationState->rasterizerDiscardEnable is ename:VK_FALSE,
- the pipeline must: be created with
- <<pipelines-graphics-subsets-fragment-shader, fragment shader state>>
- and <<pipelines-graphics-subsets-fragment-output,fragment output
- interface state>>
-endif::VK_EXT_extended_dynamic_state3,VK_VERSION_1_3[]
-ifdef::VK_EXT_extended_dynamic_state3,VK_VERSION_1_3[]
* [[VUID-VkGraphicsPipelineCreateInfo-pDynamicState-08896]]
- If pname:pDynamicState->pDynamicStates includes
+ If
+ifdef::VK_EXT_extended_dynamic_state2,VK_VERSION_1_3[]
+ pname:pDynamicState->pDynamicStates includes
ename:VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE, or if it does not and
+endif::VK_EXT_extended_dynamic_state2,VK_VERSION_1_3[]
pname:pRasterizationState->rasterizerDiscardEnable is ename:VK_FALSE,
the pipeline must: be created with
<<pipelines-graphics-subsets-fragment-shader, fragment shader state>>
and <<pipelines-graphics-subsets-fragment-output,fragment output
interface state>>
-endif::VK_EXT_extended_dynamic_state3,VK_VERSION_1_3[]
endif::VK_EXT_graphics_pipeline_library[]
ifdef::VK_EXT_graphics_pipeline_library[]
* [[VUID-VkGraphicsPipelineCreateInfo-flags-08897]]
@@ -4343,62 +4210,39 @@ ifdef::VK_EXT_graphics_pipeline_library[]
ename:VK_PIPELINE_CREATE_LIBRARY_BIT_KHR, the pipeline must: either
define <<pipelines-graphics-subsets-pre-rasterization, pre-rasterization
shader state>> or include that state in a linked pipeline library
-ifndef::VK_EXT_extended_dynamic_state3,VK_VERSION_1_3[]
- * [[VUID-VkGraphicsPipelineCreateInfo-flags-08902]]
- If slink:VkGraphicsPipelineLibraryCreateInfoEXT::pname:flags includes
- ename:VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT,
- <<pipelines-graphics-subsets-pre-rasterization, pre-rasterization shader
- state>> is specified either in a library or by the inclusion of
- ename:VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT,
- and that state has pname:pRasterizationState->rasterizerDiscardEnable
- set to ename:VK_FALSE, the pipeline must: define
- <<pipelines-graphics-subsets-fragment-shader, fragment shader state>>
-endif::VK_EXT_extended_dynamic_state3,VK_VERSION_1_3[]
-ifdef::VK_EXT_extended_dynamic_state3,VK_VERSION_1_3[]
* [[VUID-VkGraphicsPipelineCreateInfo-flags-08903]]
If slink:VkGraphicsPipelineLibraryCreateInfoEXT::pname:flags includes
ename:VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT,
<<pipelines-graphics-subsets-pre-rasterization, pre-rasterization shader
state>> is specified either in a library or by the inclusion of
ename:VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT,
- and that state either includes
- ename:VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE or has
- pname:pRasterizationState->rasterizerDiscardEnable set to
+ and that state
+ifdef::VK_EXT_extended_dynamic_state2,VK_VERSION_1_3[]
+ either includes ename:VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE or
+endif::VK_EXT_extended_dynamic_state2,VK_VERSION_1_3[]
+ has pname:pRasterizationState->rasterizerDiscardEnable set to
ename:VK_FALSE, the pipeline must: define
<<pipelines-graphics-subsets-fragment-shader, fragment shader state>>
-endif::VK_EXT_extended_dynamic_state3,VK_VERSION_1_3[]
* [[VUID-VkGraphicsPipelineCreateInfo-flags-08904]]
If slink:VkGraphicsPipelineLibraryCreateInfoEXT::pname:flags includes
ename:VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and
<<pipelines-graphics-subsets-pre-rasterization, pre-rasterization shader
state>> is not specified, the pipeline must: define
<<pipelines-graphics-subsets-fragment-shader, fragment shader state>>
-ifndef::VK_EXT_extended_dynamic_state3,VK_VERSION_1_3[]
- * [[VUID-VkGraphicsPipelineCreateInfo-flags-08905]]
- If slink:VkGraphicsPipelineLibraryCreateInfoEXT::pname:flags includes
- ename:VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT,
- <<pipelines-graphics-subsets-pre-rasterization, pre-rasterization shader
- state>> is specified either in a library or by the inclusion of
- ename:VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT,
- and that state has pname:pRasterizationState->rasterizerDiscardEnable
- set to ename:VK_FALSE, the pipeline must: define
- <<pipelines-graphics-subsets-fragment-output,fragment output interface
- state>>
-endif::VK_EXT_extended_dynamic_state3,VK_VERSION_1_3[]
-ifdef::VK_EXT_extended_dynamic_state3,VK_VERSION_1_3[]
* [[VUID-VkGraphicsPipelineCreateInfo-flags-08906]]
If slink:VkGraphicsPipelineLibraryCreateInfoEXT::pname:flags includes
ename:VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT,
<<pipelines-graphics-subsets-pre-rasterization, pre-rasterization shader
state>> is specified either in a library or by the inclusion of
ename:VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT,
- and that state either includes
- ename:VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE or has
- pname:pRasterizationState->rasterizerDiscardEnable set to
+ and that state
+ifdef::VK_EXT_extended_dynamic_state2,VK_VERSION_1_3[]
+ either includes ename:VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE or
+endif::VK_EXT_extended_dynamic_state2,VK_VERSION_1_3[]
+ has pname:pRasterizationState->rasterizerDiscardEnable set to
ename:VK_FALSE, the pipeline must: define
<<pipelines-graphics-subsets-fragment-output,fragment output interface
state>>
-endif::VK_EXT_extended_dynamic_state3,VK_VERSION_1_3[]
* [[VUID-VkGraphicsPipelineCreateInfo-flags-08907]]
If slink:VkGraphicsPipelineLibraryCreateInfoEXT::pname:flags includes
ename:VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and
@@ -4406,34 +4250,21 @@ endif::VK_EXT_extended_dynamic_state3,VK_VERSION_1_3[]
state>> is not specified, the pipeline must: define
<<pipelines-graphics-subsets-fragment-output,fragment output interface
state>>
-ifndef::VK_EXT_extended_dynamic_state3,VK_VERSION_1_3[]
- * [[VUID-VkGraphicsPipelineCreateInfo-flags-08908]]
- If pname:flags does not include
- ename:VK_PIPELINE_CREATE_LIBRARY_BIT_KHR,
- <<pipelines-graphics-subsets-pre-rasterization, pre-rasterization shader
- state>> is specified either in a library or by the inclusion of
- ename:VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT,
- and that state has pname:pRasterizationState->rasterizerDiscardEnable
- set to ename:VK_FALSE, the pipeline must: define
- <<pipelines-graphics-subsets-fragment-output,fragment output interface
- state>> and <<pipelines-graphics-subsets-fragment-shader, fragment
- shader state>> or include those states in linked pipeline libraries
-endif::VK_EXT_extended_dynamic_state3,VK_VERSION_1_3[]
-ifndef::VK_EXT_extended_dynamic_state3,VK_VERSION_1_3[]
* [[VUID-VkGraphicsPipelineCreateInfo-flags-08909]]
If pname:flags does not include
ename:VK_PIPELINE_CREATE_LIBRARY_BIT_KHR,
<<pipelines-graphics-subsets-pre-rasterization, pre-rasterization shader
state>> is specified either in a library or by the inclusion of
ename:VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT,
- and that state either includes
- ename:VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE or has
- pname:pRasterizationState->rasterizerDiscardEnable set to
+ and that state
+ifdef::VK_EXT_extended_dynamic_state2,VK_VERSION_1_3[]
+ either includes ename:VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE or
+endif::VK_EXT_extended_dynamic_state2,VK_VERSION_1_3[]
+ has pname:pRasterizationState->rasterizerDiscardEnable set to
ename:VK_FALSE, the pipeline must: define
<<pipelines-graphics-subsets-fragment-output,fragment output interface
state>> and <<pipelines-graphics-subsets-fragment-shader, fragment
shader state>> or include those states in linked pipeline libraries
-endif::VK_EXT_extended_dynamic_state3,VK_VERSION_1_3[]
endif::VK_EXT_graphics_pipeline_library[]
* [[VUID-VkGraphicsPipelineCreateInfo-None-09043]]
If
@@ -5265,25 +5096,19 @@ include::{generated}/api/enums/VkDynamicState.adoc[]
state in slink:VkPipelineRasterizationStateCreateInfo will be ignored
and must: be set dynamically with flink:vkCmdSetLineWidth before any
drawing commands that generate line primitives for the rasterizer.
+ * ename:VK_DYNAMIC_STATE_DEPTH_BIAS specifies that
ifdef::VK_EXT_depth_bias_control[]
- * ename:VK_DYNAMIC_STATE_DEPTH_BIAS specifies that any instance of
- slink:VkDepthBiasRepresentationInfoEXT included in the pname:pNext chain
- of slink:VkPipelineRasterizationStateCreateInfo as well as the
- pname:depthBiasConstantFactor, pname:depthBiasClamp and
- pname:depthBiasSlopeFactor states in
- slink:VkPipelineRasterizationStateCreateInfo will be ignored and must:
- be set dynamically with either flink:vkCmdSetDepthBias or
- flink:vkCmdSetDepthBias2EXT before any draws are performed with
- <<primsrast-depthbias-enable, depth bias enabled>>.
+ any instance of slink:VkDepthBiasRepresentationInfoEXT included in the
+ pname:pNext chain of slink:VkPipelineRasterizationStateCreateInfo as
+ well as
endif::VK_EXT_depth_bias_control[]
-ifndef::VK_EXT_depth_bias_control[]
- * ename:VK_DYNAMIC_STATE_DEPTH_BIAS specifies that the
- pname:depthBiasConstantFactor, pname:depthBiasClamp and
+ the pname:depthBiasConstantFactor, pname:depthBiasClamp and
pname:depthBiasSlopeFactor states in
slink:VkPipelineRasterizationStateCreateInfo will be ignored and must:
- be set dynamically with flink:vkCmdSetDepthBias before any draws are
- performed with <<primsrast-depthbias-enable, depth bias enabled>>.
-endif::VK_EXT_depth_bias_control[]
+ be set dynamically with either flink:vkCmdSetDepthBias
+ifdef::VK_EXT_depth_bias_control[or flink:vkCmdSetDepthBias2EXT]
+ before any draws are performed with <<primsrast-depthbias-enable, depth
+ bias enabled>>.
* ename:VK_DYNAMIC_STATE_BLEND_CONSTANTS specifies that the
pname:blendConstants state in slink:VkPipelineColorBlendStateCreateInfo
will be ignored and must: be set dynamically with
@@ -5859,16 +5684,14 @@ based on the pipelines that make use of them.
* [[VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02882]]
Each element of pname:pGroups must: in combination with the rest of the
pipeline state yield a valid state configuration
-ifndef::VK_NV_mesh_shader,VK_EXT_mesh_shader[]
- * [[VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02883]]
+ * [[VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02884]]
All elements of pname:pGroups must: use the same shader stage
combinations
+ifdef::VK_NV_mesh_shader,VK_EXT_mesh_shader[]
+ unless any mesh shader stage is used, then either combination of task
+ and mesh or just mesh shader is valid
endif::VK_NV_mesh_shader,VK_EXT_mesh_shader[]
ifdef::VK_NV_mesh_shader,VK_EXT_mesh_shader[]
- * [[VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02884]]
- All elements of pname:pGroups must: use the same shader stage
- combinations unless any mesh shader stage is used, then either
- combination of task and mesh or just mesh shader is valid
* [[VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02885]]
Mesh and regular primitive shading stages cannot be mixed across
pname:pGroups
@@ -6846,18 +6669,14 @@ endif::VK_EXT_pipeline_library_group_handles[]
[eq]#slink:VkPhysicalDeviceRayTracingPipelinePropertiesKHR::pname:shaderGroupHandleSize
{times} pname:groupCount#
ifdef::VK_KHR_pipeline_library[]
-ifdef::VK_EXT_pipeline_library_group_handles[]
* [[VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-07828]]
+ifdef::VK_EXT_pipeline_library_group_handles[]
If the
<<features-pipelineLibraryGroupHandles,pipelineLibraryGroupHandles>>
- feature is not enabled, pname:pipeline must: not have been created with
- ename:VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
+ feature is not enabled,
endif::VK_EXT_pipeline_library_group_handles[]
-ifndef::VK_EXT_pipeline_library_group_handles[]
- * [[VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-03482]]
pname:pipeline must: not have been created with
ename:VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
-endif::VK_EXT_pipeline_library_group_handles[]
endif::VK_KHR_pipeline_library[]
****
@@ -6923,18 +6742,14 @@ endif::VK_EXT_pipeline_library_group_handles[]
pname:pipeline must: have been created with a pname:flags that included
ename:VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR
ifdef::VK_KHR_pipeline_library[]
-ifdef::VK_EXT_pipeline_library_group_handles[]
* [[VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-07829]]
+ifdef::VK_EXT_pipeline_library_group_handles[]
If the
<<features-pipelineLibraryGroupHandles,pipelineLibraryGroupHandles>>
- feature is not enabled, pname:pipeline must: not have been created with
- ename:VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
+ feature is not enabled,
endif::VK_EXT_pipeline_library_group_handles[]
-ifndef::VK_EXT_pipeline_library_group_handles[]
- * [[VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-07830]]
pname:pipeline must: not have been created with
ename:VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
-endif::VK_EXT_pipeline_library_group_handles[]
endif::VK_KHR_pipeline_library[]
****
@@ -8562,12 +8377,6 @@ ifdef::VK_HUAWEI_subpass_shading[]
ename:VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI, pname:pipeline
must: be a subpass shading pipeline
endif::VK_HUAWEI_subpass_shading[]
-ifdef::VK_EXT_graphics_pipeline_library[]
- * [[VUID-vkCmdBindPipeline-pipelineBindPoint-06653]]
- If pname:pipelineBindPoint is ename:VK_PIPELINE_BIND_POINT_GRAPHICS,
- pname:pipeline must: have been created without
- ename:VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
-endif::VK_EXT_graphics_pipeline_library[]
****
include::{generated}/validity/protos/vkCmdBindPipeline.adoc[]
diff --git a/chapters/primsrast.adoc b/chapters/primsrast.adoc
index d7bdee44..1a4146af 100644
--- a/chapters/primsrast.adoc
+++ b/chapters/primsrast.adoc
@@ -2955,6 +2955,10 @@ ifdef::VK_KHR_maintenance5[]
By default, when
endif::VK_KHR_maintenance5[]
pname:strictLines is ename:VK_FALSE,
+ifdef::VK_IMG_relaxed_line_rasterization[]
+or the <<features-relaxedLineRasterization, pname:relaxedLineRasterization>>
+feature is enabled,
+endif::VK_IMG_relaxed_line_rasterization[]
ifdef::VK_EXT_line_rasterization[]
and when the pname:lineRasterizationMode is
ename:VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT,
@@ -2983,8 +2987,19 @@ attributes.
[[fig-non-strict-lines]]
image::{images}/non_strict_lines.svg[align="center",title="Non strict lines",opts="{imageopts}"]
-Only when pname:strictLines is ename:VK_FALSE implementations may: deviate
-from the non-strict line algorithm described above in the following ways:
+ifndef::VK_IMG_relaxed_line_rasterization[Only when]
+ifdef::VK_IMG_relaxed_line_rasterization[When]
+pname:strictLines is ename:VK_FALSE
+ifdef::VK_IMG_relaxed_line_rasterization[]
+or when the <<features-relaxedLineRasterization,
+pname:relaxedLineRasterization>> feature is enabled,
+ifdef::VK_EXT_line_rasterization[]
+and pname:lineRasterizationMode is
+ename:VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT
+endif::VK_EXT_line_rasterization[]
+endif::VK_IMG_relaxed_line_rasterization[]
+implementations may: deviate from the non-strict line algorithm described
+above in the following ways:
* Implementations may: instead interpolate each fragment according to the
formula in <<primsrast-lines-basic, Basic Line Segment Rasterization>>
@@ -3031,6 +3046,17 @@ endif::VK_EXT_line_rasterization[]
Non-strict lines may: also follow these rasterization rules for
non-antialiased lines.
+ifdef::VK_IMG_relaxed_line_rasterization[]
+If the <<features-relaxedLineRasterization, pname:relaxedLineRasterization>>
+feature is enabled,
+ifdef::VK_EXT_line_rasterization[]
+and pname:lineRasterizationMode is
+ename:VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT
+endif::VK_EXT_line_rasterization[]
+implementations must: follow these rasterization rules for non-antialised
+lines of width 1.0.
+endif::VK_IMG_relaxed_line_rasterization[]
+
Line segment rasterization begins by characterizing the segment as either
_x-major_ or _y-major_.
x-major line segments have slope in the closed interval [eq]#[-1,1]#; all
@@ -3086,7 +3112,7 @@ subject to the following rules:
deviate by more than one unit in either x or y framebuffer coordinates
from a corresponding fragment produced by the diamond-exit rule.
* The total number of fragments produced by the algorithm must: not differ
- from that produced by the diamond-exit rule by no more than one.
+ from that produced by the diamond-exit rule by more than one.
* For an x-major line, two fragments that lie in the same
framebuffer-coordinate column must: not be produced (for a y-major line,
two fragments that lie in the same framebuffer-coordinate row must: not
diff --git a/chapters/renderpass.adoc b/chapters/renderpass.adoc
index 4a71b472..82512b5a 100644
--- a/chapters/renderpass.adoc
+++ b/chapters/renderpass.adoc
@@ -128,14 +128,31 @@ writes to the corresponding location by a fragment are discarded.
* [[VUID-VkRenderingInfo-viewMask-06069]]
If pname:viewMask is `0`, pname:layerCount must: not be `0`
* [[VUID-VkRenderingInfo-multisampledRenderToSingleSampled-06857]]
- If none of the `apiext:VK_AMD_mixed_attachment_samples` extension, the
- `apiext:VK_NV_framebuffer_mixed_samples` extension, or the
- <<features-multisampledRenderToSingleSampled,
- pname:multisampledRenderToSingleSampled>> feature are enabled,
pname:imageView members of pname:pDepthAttachment,
pname:pStencilAttachment, and elements of pname:pColorAttachments that
are not dlink:VK_NULL_HANDLE must: have been created with the same
pname:sampleCount
+ifdef::VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples,VK_EXT_multisampled_render_to_single_sampled[]
+ , if none of the following are enabled:
+ifdef::VK_AMD_mixed_attachment_samples[]
+ ** The `apiext:VK_AMD_mixed_attachment_samples` extension
+endif::VK_AMD_mixed_attachment_samples[]
+ifdef::VK_NV_framebuffer_mixed_samples[]
+ ** The `apiext:VK_NV_framebuffer_mixed_samples` extension
+endif::VK_NV_framebuffer_mixed_samples[]
+ifdef::VK_EXT_multisampled_render_to_single_sampled[]
+ ** The <<features-multisampledRenderToSingleSampled,
+ pname:multisampledRenderToSingleSampled>> feature,
+endif::VK_EXT_multisampled_render_to_single_sampled[]
+endif::VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples,VK_EXT_multisampled_render_to_single_sampled[]
+ * [[VUID-VkRenderingInfo-imageView-09429]]
+ pname:imageView members of elements of pname:pColorAttachments that are
+ not dlink:VK_NULL_HANDLE must: have been created with the same
+ pname:sampleCount
+ifdef::VK_EXT_multisampled_render_to_single_sampled[]
+ , if the <<features-multisampledRenderToSingleSampled,
+ pname:multisampledRenderToSingleSampled>> feature is not enabled
+endif::VK_EXT_multisampled_render_to_single_sampled[]
* [[VUID-VkRenderingInfo-None-08994]]
ifdef::VK_VERSION_1_1,VK_KHR_device_group[]
If slink:VkDeviceGroupRenderPassBeginInfo::pname:deviceRenderAreaCount
@@ -2317,10 +2334,8 @@ endif::VK_HUAWEI_subpass_shading[]
If pname:pResolveAttachments is not `NULL`, each resolve attachment that
is not ename:VK_ATTACHMENT_UNUSED must: have the same elink:VkFormat as
its corresponding color attachment
- * [[VUID-VkSubpassDescription-pColorAttachments-06868]]
- If neither the `apiext:VK_AMD_mixed_attachment_samples` extension nor
- the `apiext:VK_NV_framebuffer_mixed_samples` extension is enabled, all
- attachments in pname:pColorAttachments that are not
+ * [[VUID-VkSubpassDescription-pColorAttachments-09430]]
+ All attachments in pname:pColorAttachments that are not
ename:VK_ATTACHMENT_UNUSED must: have the same sample count
* [[VUID-VkSubpassDescription-pInputAttachments-02647]]
All attachments in pname:pInputAttachments that are not
@@ -2367,20 +2382,35 @@ ifdef::VK_NV_linear_color_attachment[]
features>> must: contain
ename:VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
endif::VK_NV_linear_color_attachment[]
+ifdef::VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples[]
+ * [[VUID-VkSubpassDescription-None-09431]]
+ If either of the following is enabled:
ifdef::VK_AMD_mixed_attachment_samples[]
- * [[VUID-VkSubpassDescription-pColorAttachments-01506]]
- If the `apiext:VK_AMD_mixed_attachment_samples` extension is enabled,
- all attachments in pname:pColorAttachments that are not
- ename:VK_ATTACHMENT_UNUSED must: have a sample count that is smaller
- than or equal to the sample count of pname:pDepthStencilAttachment if it
- is not ename:VK_ATTACHMENT_UNUSED
+ ** The `apiext:VK_AMD_mixed_attachment_samples` extension
endif::VK_AMD_mixed_attachment_samples[]
+ifdef::VK_NV_framebuffer_mixed_samples[]
+ ** The `apiext:VK_NV_framebuffer_mixed_samples` extension
+endif::VK_NV_framebuffer_mixed_samples[]
+
++
+all attachments in pname:pColorAttachments that are not
+ename:VK_ATTACHMENT_UNUSED must: have a sample count that is smaller than or
+equal to the sample count of pname:pDepthStencilAttachment if it is not
+ename:VK_ATTACHMENT_UNUSED
+endif::VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples[]
* [[VUID-VkSubpassDescription-pDepthStencilAttachment-01418]]
- If neither the `apiext:VK_AMD_mixed_attachment_samples` nor the
- `apiext:VK_NV_framebuffer_mixed_samples` extensions are enabled, and if
- pname:pDepthStencilAttachment is not ename:VK_ATTACHMENT_UNUSED and any
- attachments in pname:pColorAttachments are not
+ If pname:pDepthStencilAttachment is not ename:VK_ATTACHMENT_UNUSED and
+ any attachments in pname:pColorAttachments are not
ename:VK_ATTACHMENT_UNUSED, they must: have the same sample count
+ifdef::VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples[]
+ , if none of the following are enabled:
+ifdef::VK_AMD_mixed_attachment_samples[]
+ ** The `apiext:VK_AMD_mixed_attachment_samples` extension
+endif::VK_AMD_mixed_attachment_samples[]
+ifdef::VK_NV_framebuffer_mixed_samples[]
+ ** The `apiext:VK_NV_framebuffer_mixed_samples` extension
+endif::VK_NV_framebuffer_mixed_samples[]
+endif::VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples[]
* [[VUID-VkSubpassDescription-attachment-00853]]
Each element of pname:pPreserveAttachments must: not be
ename:VK_ATTACHMENT_UNUSED
@@ -3716,10 +3746,8 @@ ifdef::VK_ANDROID_external_format_resolve[]
endif::VK_ANDROID_external_format_resolve[]
ifdef::VK_EXT_multisampled_render_to_single_sampled[]
* [[VUID-VkSubpassDescription2-multisampledRenderToSingleSampled-06869]]
- If none of the `apiext:VK_AMD_mixed_attachment_samples` extension, the
- `apiext:VK_NV_framebuffer_mixed_samples` extension, or the
- <<features-multisampledRenderToSingleSampled,
- pname:multisampledRenderToSingleSampled>> feature are enabled, all
+ If the <<features-multisampledRenderToSingleSampled,
+ pname:multisampledRenderToSingleSampled>> feature is not enabled, all
attachments in pname:pColorAttachments that are not
ename:VK_ATTACHMENT_UNUSED must: have the same sample count
endif::VK_EXT_multisampled_render_to_single_sampled[]
@@ -3820,12 +3848,22 @@ ifdef::VK_EXT_multisampled_render_to_single_sampled[]
value ename:VK_ATTACHMENT_UNUSED
endif::VK_EXT_multisampled_render_to_single_sampled[]
* [[VUID-VkSubpassDescription2-multisampledRenderToSingleSampled-06872]]
- If none of the `apiext:VK_AMD_mixed_attachment_samples` extension, the
- `apiext:VK_NV_framebuffer_mixed_samples` extension, or the
- <<features-multisampledRenderToSingleSampled,
- pname:multisampledRenderToSingleSampled>> feature are enabled, all
- attachments in pname:pDepthStencilAttachment or pname:pColorAttachments
- that are not ename:VK_ATTACHMENT_UNUSED must: have the same sample count
+ All attachments in pname:pDepthStencilAttachment or
+ pname:pColorAttachments that are not ename:VK_ATTACHMENT_UNUSED must:
+ have the same sample count
+ifdef::VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples,VK_EXT_multisampled_render_to_single_sampled[]
+ , if none of the following are enabled:
+ifdef::VK_AMD_mixed_attachment_samples[]
+ ** The `apiext:VK_AMD_mixed_attachment_samples` extension
+endif::VK_AMD_mixed_attachment_samples[]
+ifdef::VK_NV_framebuffer_mixed_samples[]
+ ** The `apiext:VK_NV_framebuffer_mixed_samples` extension
+endif::VK_NV_framebuffer_mixed_samples[]
+ifdef::VK_EXT_multisampled_render_to_single_sampled[]
+ ** The <<features-multisampledRenderToSingleSampled,
+ pname:multisampledRenderToSingleSampled>> feature,
+endif::VK_EXT_multisampled_render_to_single_sampled[]
+endif::VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples,VK_EXT_multisampled_render_to_single_sampled[]
* [[VUID-VkSubpassDescription2-attachment-03073]]
Each element of pname:pPreserveAttachments must: not be
ename:VK_ATTACHMENT_UNUSED
@@ -5084,7 +5122,6 @@ or the equivalent
include::{generated}/api/structs/VkFramebufferAttachmentImageInfoKHR.adoc[]
endif::VK_KHR_imageless_framebuffer[]
-
* pname:sType is a elink:VkStructureType value identifying this structure.
* pname:pNext is `NULL` or a pointer to a structure extending this
structure.
diff --git a/chapters/resources.adoc b/chapters/resources.adoc
index 549692ab..dd361f5d 100644
--- a/chapters/resources.adoc
+++ b/chapters/resources.adoc
@@ -152,47 +152,40 @@ endif::VK_KHR_maintenance5[]
* [[VUID-VkBufferCreateInfo-sharingMode-00914]]
If pname:sharingMode is ename:VK_SHARING_MODE_CONCURRENT,
pname:queueFamilyIndexCount must: be greater than `1`
-ifndef::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
- * [[VUID-VkBufferCreateInfo-sharingMode-01391]]
+ * [[VUID-VkBufferCreateInfo-sharingMode-01419]]
If pname:sharingMode is ename:VK_SHARING_MODE_CONCURRENT, each element
of pname:pQueueFamilyIndices must: be unique and must: be less than
pname:pQueueFamilyPropertyCount returned by
- flink:vkGetPhysicalDeviceQueueFamilyProperties for the
- pname:physicalDevice that was used to create pname:device
-endif::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
ifdef::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
- * [[VUID-VkBufferCreateInfo-sharingMode-01419]]
- If pname:sharingMode is ename:VK_SHARING_MODE_CONCURRENT, each element
- of pname:pQueueFamilyIndices must: be unique and must: be less than
- pname:pQueueFamilyPropertyCount returned by either
- flink:vkGetPhysicalDeviceQueueFamilyProperties or
- flink:vkGetPhysicalDeviceQueueFamilyProperties2 for the
- pname:physicalDevice that was used to create pname:device
+ either flink:vkGetPhysicalDeviceQueueFamilyProperties2 or
endif::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
-ifndef::VKSC_VERSION_1_0[]
+ flink:vkGetPhysicalDeviceQueueFamilyProperties for the
+ pname:physicalDevice that was used to create pname:device
* [[VUID-VkBufferCreateInfo-flags-00915]]
+ifndef::VKSC_VERSION_1_0[]
If the <<features-sparseBinding, pname:sparseBinding>> feature is not
- enabled, pname:flags must: not contain
- ename:VK_BUFFER_CREATE_SPARSE_BINDING_BIT
+ enabled,
+endif::VKSC_VERSION_1_0[]
+ pname:flags must: not contain ename:VK_BUFFER_CREATE_SPARSE_BINDING_BIT
* [[VUID-VkBufferCreateInfo-flags-00916]]
+ifndef::VKSC_VERSION_1_0[]
If the <<features-sparseResidencyBuffer, pname:sparseResidencyBuffer>>
- feature is not enabled, pname:flags must: not contain
+ feature is not enabled,
+endif::VKSC_VERSION_1_0[]
+ pname:flags must: not contain
ename:VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT
* [[VUID-VkBufferCreateInfo-flags-00917]]
+ifndef::VKSC_VERSION_1_0[]
If the <<features-sparseResidencyAliased, pname:sparseResidencyAliased>>
- feature is not enabled, pname:flags must: not contain
- ename:VK_BUFFER_CREATE_SPARSE_ALIASED_BIT
+ feature is not enabled,
+endif::VKSC_VERSION_1_0[]
+ pname:flags must: not contain ename:VK_BUFFER_CREATE_SPARSE_ALIASED_BIT
+ifndef::VKSC_VERSION_1_0[]
* [[VUID-VkBufferCreateInfo-flags-00918]]
If pname:flags contains ename:VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT or
ename:VK_BUFFER_CREATE_SPARSE_ALIASED_BIT, it must: also contain
ename:VK_BUFFER_CREATE_SPARSE_BINDING_BIT
endif::VKSC_VERSION_1_0[]
-ifdef::VKSC_VERSION_1_0[]
- * [[VUID-VkBufferCreateInfo-flags-05061]]
- pname:flags must: not contain ename:VK_BUFFER_CREATE_SPARSE_BINDING_BIT,
- ename:VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT, or
- ename:VK_BUFFER_CREATE_SPARSE_ALIASED_BIT
-endif::VKSC_VERSION_1_0[]
ifdef::VK_VERSION_1_1,VK_KHR_external_memory[]
* [[VUID-VkBufferCreateInfo-pNext-00920]]
If the pname:pNext chain includes a
@@ -241,22 +234,18 @@ ifdef::VK_VERSION_1_2,VK_KHR_buffer_device_address[]
is not zero, pname:flags must: include
ename:VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT
endif::VK_VERSION_1_2,VK_KHR_buffer_device_address[]
-ifdef::VK_EXT_buffer_device_address[]
* [[VUID-VkBufferCreateInfo-flags-03338]]
If pname:flags includes
ename:VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, the
- <<features-bufferDeviceAddressCaptureReplay,
- pname:bufferDeviceAddressCaptureReplay>> or
- <<features-bufferDeviceAddressCaptureReplayEXT,
- pname:bufferDeviceAddressCaptureReplayEXT>> feature must: be enabled
-endif::VK_EXT_buffer_device_address[]
ifndef::VK_EXT_buffer_device_address[]
- * [[VUID-VkBufferCreateInfo-flags-06549]]
- If pname:flags includes
- ename:VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, the
<<features-bufferDeviceAddressCaptureReplay,
- pname:bufferDeviceAddressCaptureReplay>> feature must: be enabled
+ pname:bufferDeviceAddressCaptureReplay>> feature
endif::VK_EXT_buffer_device_address[]
+ifdef::VK_EXT_buffer_device_address[]
+ <<features-bufferDeviceAddressCaptureReplayEXT,
+ pname:bufferDeviceAddressCaptureReplay>> feature
+endif::VK_EXT_buffer_device_address[]
+ must: be enabled
endif::VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address[]
ifdef::VK_KHR_video_decode_queue[]
* [[VUID-VkBufferCreateInfo-usage-04813]]
@@ -1024,11 +1013,6 @@ pname:buffer.
****
* [[VUID-VkBufferViewCreateInfo-offset-00925]]
pname:offset must: be less than the size of pname:buffer
-ifndef::VK_VERSION_1_3,VK_EXT_texel_buffer_alignment[]
- * [[VUID-VkBufferViewCreateInfo-offset-00926]]
- pname:offset must: be a multiple of
- sname:VkPhysicalDeviceLimits::pname:minTexelBufferOffsetAlignment
-endif::VK_VERSION_1_3,VK_EXT_texel_buffer_alignment[]
* [[VUID-VkBufferViewCreateInfo-range-00928]]
If pname:range is not equal to ename:VK_WHOLE_SIZE, pname:range must: be
greater than `0`
@@ -1073,11 +1057,14 @@ endif::VK_VERSION_1_3,VK_EXT_texel_buffer_alignment[]
* [[VUID-VkBufferViewCreateInfo-buffer-00935]]
If pname:buffer is non-sparse then it must: be bound completely and
contiguously to a single sname:VkDeviceMemory object
-ifdef::VK_VERSION_1_3,VK_EXT_texel_buffer_alignment[]
* [[VUID-VkBufferViewCreateInfo-offset-02749]]
+ifdef::VK_VERSION_1_3,VK_EXT_texel_buffer_alignment[]
If the <<features-texelBufferAlignment, pname:texelBufferAlignment>>
- feature is not enabled, pname:offset must: be a multiple of
+ feature is not enabled,
+endif::VK_VERSION_1_3,VK_EXT_texel_buffer_alignment[]
+ pname:offset must: be a multiple of
sname:VkPhysicalDeviceLimits::pname:minTexelBufferOffsetAlignment
+ifdef::VK_VERSION_1_3,VK_EXT_texel_buffer_alignment[]
* [[VUID-VkBufferViewCreateInfo-buffer-02750]]
If the <<features-texelBufferAlignment, pname:texelBufferAlignment>>
feature is enabled and if pname:buffer was created with pname:usage
diff --git a/chapters/shaders.adoc b/chapters/shaders.adoc
index ef03b53d..80087073 100644
--- a/chapters/shaders.adoc
+++ b/chapters/shaders.adoc
@@ -3252,6 +3252,8 @@ flink:vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR.
At least one entry in the list must: have power of two values for all of
pname:MSize, pname:KSize, and pname:NSize.
+pname:scope must: be ename:VK_SCOPE_SUBGROUP_KHR.
+
include::{generated}/validity/structs/VkCooperativeMatrixPropertiesKHR.adoc[]
--
endif::VK_KHR_cooperative_matrix[]
diff --git a/chapters/synchronization.adoc b/chapters/synchronization.adoc
index 3496ee1d..67d003ed 100644
--- a/chapters/synchronization.adoc
+++ b/chapters/synchronization.adoc
@@ -6035,7 +6035,7 @@ condition.
pname:pImageMemoryBarriers members of pname:pDependencyInfos must:
either include only pipeline stages valid for the queue family that was
used to create the command pool that pname:commandBuffer was allocated
- from, or include only ename:VK_PIPELINE_STAGE_2_HOST_BIT
+ from
* [[VUID-vkCmdWaitEvents2-dstStageMask-03843]]
The pname:dstStageMask member of any element of the
pname:pMemoryBarriers, pname:pBufferMemoryBarriers, or
diff --git a/chapters/vertexpostproc.adoc b/chapters/vertexpostproc.adoc
index 4e22f79c..2c39ffa2 100644
--- a/chapters/vertexpostproc.adoc
+++ b/chapters/vertexpostproc.adoc
@@ -106,8 +106,8 @@ order defined as follows:
are appended according to the winding order described by the
<<drawing-primitive-topologies, primitive topology>> defined by the
<<drawing-point-lists, code:OutputPoints>>, <<drawing-line-strips,
- code:OutputLineStrips>>, or <<drawing-triangle-strips,
- code:OutputTriangleStrips>> execution mode.
+ code:OutputLineStrip>>, or <<drawing-triangle-strips,
+ code:OutputTriangleStrip>> execution mode.
* If <<tessellation,tessellation shading>> is active but
<<geometry,geometry shading>> is not, vertices within a primitive are
appended according to the winding order defined by
@@ -632,8 +632,8 @@ endif::VK_EXT_mesh_shader[]
If <<geometry,geometry shading>> is active, the provoking vertex is
determined by the <<drawing-primitive-topologies, primitive topology>>
defined by the <<drawing-point-lists, code:OutputPoints>>,
-<<drawing-line-strips, code:OutputLineStrips>>, or
-<<drawing-triangle-strips, code:OutputTriangleStrips>> execution mode.
+<<drawing-line-strips, code:OutputLineStrip>>, or <<drawing-triangle-strips,
+code:OutputTriangleStrip>> execution mode.
If <<tessellation,tessellation shading>> is active but <<geometry,geometry
shading>> is not, the provoking vertex may: be any of the vertices in each
diff --git a/config/makeSubmit.py b/config/makeSubmit.py
index 54273a0a..48970b34 100755
--- a/config/makeSubmit.py
+++ b/config/makeSubmit.py
@@ -1,16 +1,32 @@
#!/usr/bin/env python3
#
# Copyright 2016-2023 The Khronos Group Inc.
-#
# SPDX-License-Identifier: Apache-2.0
# Build Promoter submission package for a specified extension or extensions.
# This consists of one spec with the extension(s) and all dependencies,
# one with just the dependencies, and an htmldiff of them.
#
-# This script lives in config/, but is executed from the parent directory.
+# This script generates a bash script as output, which must be executed
+# in the spec repository root directory to build the submission.
+#
+# usage: makeSubmit.py [-h] [-extension EXTENSION] [-extradepend EXTRADEPEND]
+# [-title TITLE] [-outdir OUTDIR] [-registry REGISTRY]
+# [-apiname APINAME]
#
-# Usage: makeSubmit extension targets
+# optional arguments:
+# -h, --help show this help message and exit
+# -extension EXTENSION Specify a required extension or extensions to add to
+# targets
+# -extradepend EXTRADEPEND
+# Specify an extension that is a dependency of the
+# required extension(s), but not discovered
+# automatically
+# -title TITLE Set the document title
+# -outdir OUTDIR Path to generated specs
+# -registry REGISTRY Path to API XML registry file specifying version and
+# extension dependencies
+# -apiname APINAME API name to generate
import argparse, copy, io, os, pdb, re, string, subprocess, sys
@@ -18,10 +34,10 @@ import argparse, copy, io, os, pdb, re, string, subprocess, sys
#
# outDir - where to generate intermediate and final documents
# extensions - list of extensions to include
-# submitName - base name of final HTML file
+# submitFileName - base name of final HTML file
# title - document title
# target - default 'html'
-def makeTarget(outDir, extensions, submitName, title, target):
+def makeTarget(outDir, extensions, submitFileName, title, target):
ws = ' '
print('make clean_generated')
@@ -32,25 +48,31 @@ def makeTarget(outDir, extensions, submitName, title, target):
f'APITITLE="{title}"',
target)
# Rename into submission directory
- outFile = f'{outDir}/html/{submitName}.html'.replace(' ', '_')
+ outFile = f'{outDir}/html/{submitFileName}.html'
print('mv', f'"{outDir}/html/vkspec.html"', f'"{outFile}"')
return outFile
# Make submission for a list of required extension names
-def makeSubmit(outDir, submitName, required, apideps, target='html'):
+def makeSubmit(outDir, submitName, required, extradepend, apideps, target='html'):
"""outDir - path to output directory for generated specs.
submitName - the base document title, usually the name of the
extension being submitted unless there is more than one of them.
required - a list of one or more extension names comprising the
submission.
+ extradepend - a list of zero or more extension names which are
+ dependencies not derivable from the XML
apideps - extension dependencies from which to determine other
extensions which must be included."""
+ # submitName may contain spaces, which are replaced by '_' in generated
+ # file names.
+ submitFileName = submitName.replace(' ', '_')
+
# Convert required list to a set
required = set(required)
- extraexts = set()
+ extraexts = set(extradepend)
for name in required:
for depname in apideps.children(name):
if depname not in required:
@@ -65,13 +87,16 @@ def makeSubmit(outDir, submitName, required, apideps, target='html'):
print('mkdir -p', outDir)
# Generate spec with required extensions + dependencies
- newSpec = makeTarget(outDir, required.union(extraexts), submitName,
- submitName, target)
+ newSpec = makeTarget(outDir, required.union(extraexts),
+ submitFileName=submitFileName,
+ title=submitName,
+ target=target)
# Generate base spec with just dependencies
- baseSpec = makeTarget(outDir, extraexts, 'deps-' + submitName,
- '(with only dependencies of ' + submitName + ')',
- target)
+ baseSpec = makeTarget(outDir, extraexts,
+ submitFileName='deps-' + submitFileName,
+ title='(with only dependencies of ' + submitName + ')',
+ target=target)
# # Reorganize and rename them, and generate the diff spec
print('')
@@ -80,7 +105,7 @@ def makeSubmit(outDir, submitName, required, apideps, target='html'):
f'"{baseSpec}"',
f'"{newSpec}"',
'>',
- f'"{outDir}/html/diff-{submitName}.html"')
+ f'"{outDir}/html/diff-{submitFileName}.html"')
print('cd ../../')
if __name__ == '__main__':
@@ -89,6 +114,9 @@ if __name__ == '__main__':
parser.add_argument('-extension', action='append',
default=[],
help='Specify a required extension or extensions to add to targets')
+ parser.add_argument('-extradepend', action='append',
+ default=[],
+ help='Specify an extension that is a dependency of the required extension(s), but not discovered automatically')
parser.add_argument('-title', action='store',
default='vkspec-tmp',
help='Set the document title')
@@ -113,4 +141,4 @@ if __name__ == '__main__':
apideps = ApiDependencies(results.registry, results.apiname)
results.outdir = os.path.abspath(results.outdir)
- makeSubmit(results.outdir, results.title, results.extension, apideps)
+ makeSubmit(results.outdir, results.title, results.extension, results.extradepend, apideps)
diff --git a/proposals/VK_EXT_opacity_micromap.adoc b/proposals/VK_EXT_opacity_micromap.adoc
index 90f6bd7f..ec816cdf 100644
--- a/proposals/VK_EXT_opacity_micromap.adoc
+++ b/proposals/VK_EXT_opacity_micromap.adoc
@@ -9,14 +9,14 @@
VK_EXT_opacity_micromap adds a micromap object to associate micro-geometry information with geometry in an acceleration
structure as well as a specific application of an opacity micromap to acceleration sub-triangle opacity without
-having to call a user any hit shader.
+having to call a user any-hit shader.
== Problem Statement
Geometry in an acceleration structure in the basic ray tracing extensions contains either geometric information or
bounds for custom geometry. There are some applications where having a more compact representation of sub-triangle
level information can be useful. One specific application is handling opacity information more efficiently at traversal
-time than having to return to an application-provided any hit shader.
+time than having to return to an application-provided any-hit shader.
== Solution Space
@@ -85,5 +85,5 @@ All of the issues are in the spec documents.
== Further Functionality
- . A flag to give an implementation more flexibility in conservatively calling any hit shaders may be interesting. During EXT discussion,
+ . A flag to give an implementation more flexibility in conservatively calling any-hit shaders may be interesting. During EXT discussion,
it was decided that it was not ready and postponed for a possible extension to the extension.
diff --git a/scripts/docgenerator.py b/scripts/docgenerator.py
index c1cf9062..3ddd478c 100644
--- a/scripts/docgenerator.py
+++ b/scripts/docgenerator.py
@@ -255,7 +255,7 @@ class DocOutputGenerator(OutputGenerator):
index_term = basename
write('indexterm:[{}]'.format(index_term), file=fp)
- write('[source,c++]', file=fp)
+ write(f'[source,{self.conventions.docgen_language}]', file=fp)
write('----', file=fp)
write(contents, file=fp)
write('----', file=fp)
@@ -270,7 +270,7 @@ class DocOutputGenerator(OutputGenerator):
# Asciidoc anchor
write(self.genOpts.conventions.warning_comment, file=fp)
write('// Include this no-xref version without cross reference id for multiple includes of same file', file=fp)
- write('[source,c++]', file=fp)
+ write(f'[source,{self.conventions.docgen_language}]', file=fp)
write('----', file=fp)
write(contents, file=fp)
write('----', file=fp)
diff --git a/scripts/genRef.py b/scripts/genRef.py
index 953ec6b3..f879ac36 100755
--- a/scripts/genRef.py
+++ b/scripts/genRef.py
@@ -446,8 +446,12 @@ def emitPage(baseDir, specDir, pi, file):
logWarn('emitPage:', pageName, 'INCLUDE is None, no page generated')
return
- # Specification text
- lines = remapIncludes(file[pi.begin:pi.include + 1], baseDir, specDir)
+ # Specification text from beginning to just before the parameter
+ # section. This covers the description, the prototype, the version
+ # note, and any additional version note text. If a parameter section
+ # is absent then go a line beyond the include.
+ remap_end = pi.include + 1 if pi.param is None else pi.param
+ lines = remapIncludes(file[pi.begin:remap_end], baseDir, specDir)
specText = ''.join(lines)
if pi.param is not None:
diff --git a/scripts/reflib.py b/scripts/reflib.py
index db9353de..0a015640 100644
--- a/scripts/reflib.py
+++ b/scripts/reflib.py
@@ -405,12 +405,13 @@ bodyPat = re.compile(r'^// *refBody')
errorPat = re.compile(r'^// *refError')
# This regex transplanted from check_spec_links
-# It looks for either OpenXR or Vulkan generated file conventions, and for
-# the api/validity include (generated_type), protos/struct/etc path
-# (category), and API name (entity_name). It could be put into the API
-# conventions object.
+# It looks for various generated file conventions, and for the api/validity
+# include (generated_type), protos/struct/etc path (category), and API name
+# (entity_name).
+# It could be put into the API conventions object, instead of being
+# generalized for all the different specs.
INCLUDE = re.compile(
- r'include::(?P<directory_traverse>((../){1,4}|\{generated\}/)(generated/)?)(?P<generated_type>[\w]+)/(?P<category>\w+)/(?P<entity_name>[^./]+).adoc[\[][\]]')
+ r'include::(?P<directory_traverse>((../){1,4}|\{generated\}/)(generated/)?)(?P<generated_type>[\w]+)/(?P<category>\w+)/(?P<entity_name>[^./]+)\.(adoc|txt)[\[][\]]')
def findRefs(file, filename):
"""Identify reference pages in a list of strings, returning a dictionary of
diff --git a/scripts/spec_tools/conventions.py b/scripts/spec_tools/conventions.py
index faca3a27..00d2b81d 100644
--- a/scripts/spec_tools/conventions.py
+++ b/scripts/spec_tools/conventions.py
@@ -452,3 +452,10 @@ class ConventionsBase(abc.ABC):
"""Return True if name is an API version name."""
return API_VERSION_NAME_RE.match(name) is not None
+
+ @property
+ def docgen_language(self):
+ """Return the language to be used in docgenerator [source]
+ blocks."""
+
+ return 'c++'
diff --git a/style/extensions.adoc b/style/extensions.adoc
index 4e90f1da..06748ac7 100644
--- a/style/extensions.adoc
+++ b/style/extensions.adoc
@@ -170,8 +170,10 @@ Khronos has registered some author IDs for specific uses:
* KHR is used for Khronos-ratified extensions.
* EXT is used for multi-vendor extensions.
- These are extensions that have not been ratified, but are intended to be
- exposed by implementations from multiple vendors.
+ These are extensions intended to be exposed by implementations from
+ multiple vendors.
+ Historically these extensions were not ratified, but Khronos has begun
+ retroactively ratifying selected `EXT` extensions.
[NOTE]
.Note
@@ -431,8 +433,8 @@ conditionals.
The changes are only visible in generated documentation when the
Specification is built with an asciidoctor attribute of that name defined.
Khronos publishes three forms of the Vulkan Specification: the core API
-(e.g. versions 1.x) only; core API with all registered `KHR` extensions; and
-core API with all registered extensions.
+(e.g. versions 1.x) only; core API with all registered `KHR` and `EXT`
+extensions; and core API with all registered extensions.
[[extensions-documenting-extensions]]
diff --git a/style/revisions.adoc b/style/revisions.adoc
index f2f31748..988e611a 100644
--- a/style/revisions.adoc
+++ b/style/revisions.adoc
@@ -5,6 +5,8 @@
[[revisions]]
= Revision History
+* 2023-10-22 - Update <<extensions-naming-author-IDs, description of `EXT`
+ extensions>>, since some are now being ratified.
* 2023-10-11 - Add rules for <<writing-titlecase, writing chapter and
section titles>>.
* 2023-10-05 - Mention that <<extensions-reserving-bitmask-values, bit
diff --git a/tests/hpptest.cpp b/tests/hpptest.cpp
index 67f91713..511f20c0 100644
--- a/tests/hpptest.cpp
+++ b/tests/hpptest.cpp
@@ -1,11 +1,18 @@
// Copyright 2019-2023 The Khronos Group Inc.
-//
// SPDX-License-Identifier: Apache-2.0
#include <vulkan/vulkan.hpp>
+#include <vulkan/vulkan_video.hpp>
+#include <vulkan/vulkan_extension_inspection.hpp>
+#include <vulkan/vulkan_format_traits.hpp>
+#include <vulkan/vulkan_hash.hpp>
+#include <vulkan/vulkan_raii.hpp>
+#include <vulkan/vulkan_shared.hpp>
+#include <vulkan/vulkan_static_assertions.hpp>
+
int main()
{
auto const instance_info = vk::InstanceCreateInfo();
- vk::Instance instance;
- vk::createInstance(&instance_info, nullptr, &instance);
+ vk::Instance instance = vk::createInstance(instance_info);
+ (void)instance;
}
diff --git a/tests/htest.c b/tests/htest.c
index 9268c1f0..b2f65ab9 100644
--- a/tests/htest.c
+++ b/tests/htest.c
@@ -1,7 +1,6 @@
//% gcc -c -Wall -I. -I../include htest.c
// Copyright 2019-2023 The Khronos Group Inc.
-//
// SPDX-License-Identifier: Apache-2.0
// Simple compilation test for Vulkan headers, including all platform
diff --git a/xml/profiles/VP_KHR_roadmap_2022.json b/xml/profiles/VP_KHR_roadmap_2022.json
index b528ecac..d950e774 100644
--- a/xml/profiles/VP_KHR_roadmap_2022.json
+++ b/xml/profiles/VP_KHR_roadmap_2022.json
@@ -202,83 +202,6 @@
}
}
},
- "vulkan13requirements_1_2": {
- "extensions": {
- "VK_EXT_image_robustness": 1,
- "VK_KHR_shader_non_semantic_info": 1,
- "VK_KHR_shader_terminate_invocation": 1,
- "VK_KHR_format_feature_flags2": 1,
- "VK_KHR_zero_initialize_workgroup_memory": 1,
- "VK_KHR_synchronization2": 1,
- "VK_KHR_shader_integer_dot_product": 1,
- "VK_KHR_maintenance4": 1,
- "VK_EXT_4444_formats": 1,
- "VK_EXT_extended_dynamic_state": 1,
- "VK_EXT_extended_dynamic_state2": 1,
- "VK_EXT_pipeline_creation_cache_control": 1,
- "VK_EXT_subgroup_size_control": 1,
- "VK_EXT_shader_demote_to_helper_invocation": 1,
- "VK_EXT_inline_uniform_block": 1,
- "VK_EXT_pipeline_creation_feedback": 1,
- "VK_EXT_texel_buffer_alignment": 1,
- "VK_EXT_ycbcr_2plane_444_formats": 1,
- "VK_EXT_texture_compression_astc_hdr": 1,
- "VK_EXT_tooling_info": 1,
- "VK_EXT_private_data": 1,
- "VK_KHR_dynamic_rendering": 1
- },
- "features": {
- "VkPhysicalDeviceVulkan12Features": {
- "vulkanMemoryModel": true,
- "vulkanMemoryModelDeviceScope": true,
- "vulkanMemoryModelAvailabilityVisibilityChains": true,
- "bufferDeviceAddress": true
- },
- "VkPhysicalDeviceImageRobustnessFeaturesEXT": {
- "robustImageAccess": true
- },
- "VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR": {
- "shaderTerminateInvocation": true
- },
- "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR": {
- "shaderZeroInitializeWorkgroupMemory": true
- },
- "VkPhysicalDeviceSynchronization2FeaturesKHR": {
- "synchronization2": true
- },
- "VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR": {
- "shaderIntegerDotProduct": true
- },
- "VkPhysicalDeviceMaintenance4FeaturesKHR": {
- "maintenance4": true
- },
- "VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT": {
- "pipelineCreationCacheControl": true
- },
- "VkPhysicalDeviceSubgroupSizeControlFeaturesEXT": {
- "subgroupSizeControl": true,
- "computeFullSubgroups": true
- },
- "VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT": {
- "shaderDemoteToHelperInvocation": true
- },
- "VkPhysicalDeviceInlineUniformBlockFeaturesEXT": {
- "inlineUniformBlock": true
- }
- },
- "properties": {
- "VkPhysicalDeviceMaintenance4PropertiesKHR": {
- "maxBufferSize": 1073741824
- },
- "VkPhysicalDeviceInlineUniformBlockPropertiesEXT": {
- "maxInlineUniformBlockSize": 256,
- "maxPerStageDescriptorInlineUniformBlocks": 4,
- "maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks": 4,
- "maxDescriptorSetInlineUniformBlocks": 4,
- "maxDescriptorSetUpdateAfterBindInlineUniformBlocks": 4
- }
- }
- },
"vulkan13requirements_roadmap2022": {
"extensions": {
"VK_KHR_global_priority": 1
@@ -288,17 +211,6 @@
"descriptorBindingInlineUniformBlockUpdateAfterBind": true
}
}
- },
- "vulkan13requirements_roadmap2022_1_2": {
- "extensions": {
- "VK_EXT_global_priority": 1,
- "VK_EXT_inline_uniform_block": 1
- },
- "features": {
- "VkPhysicalDeviceInlineUniformBlockFeaturesEXT": {
- "descriptorBindingInlineUniformBlockUpdateAfterBind": true
- }
- }
}
},
"profiles": {
@@ -321,6 +233,12 @@
},
"history": [
{
+ "revision": 8,
+ "date": "2023-11-02",
+ "author": "Christophe Riccio",
+ "comment": "Remove unreferenced capabilities blocks that were written against Vulkan 1.2 for testing before Vulkan 1.3 was released"
+ },
+ {
"revision": 7,
"date": "2022-11-16",
"author": "Christophe Riccio",
diff --git a/xml/registry.rnc b/xml/registry.rnc
index 906f1fcc..21efce80 100644
--- a/xml/registry.rnc
+++ b/xml/registry.rnc
@@ -1,10 +1,7 @@
# Copyright 2013-2023 The Khronos Group Inc.
-#
# SPDX-License-Identifier: Apache-2.0
-# Relax NG schema for Khronos Vulkan API Registry XML
-#
-# See https://www.khronos.org/vulkan/
+# Relax NG schema for Khronos API Registry XML
#
# This definition is subject to change (mostly in the form of additions)
@@ -78,7 +75,6 @@ Types = element types {
# requires - name of another type definition required by this one
# bitvalues - for a *Flags type, name of an enum definition that
# defines the valid values for parameters of that type
-# name - name of the type being defined
# category - if present, 'enum' indicates a matching <enums>
# block to generate an enumerated type for, and 'struct'
# causes special interpretation of the contents of the type
@@ -465,22 +461,20 @@ Extensions = element extensions {
# author - name of the author (usually a company or project name)
# contact - contact responsible for the tag (name and contact information)
# type - 'device' or 'instance', if present
-# requires - commas-separated list of extension names required by this
-# extension
-# requiresCore - core version of Vulkan required by the extension, e.g.
-# "1.1". Defaults to "1.0".
+# depends - boolean expression of API and/or extension names
+# upon which this extension depends.
# supported - comma-separated list of API name(s) supporting this extension,
# e.g. 'vulkan', or 'disabled' to never generate output.
# ratified - comma-separated list of API name(s) for which this extension
# has been ratified by Khronos. Defaults to "" if not specified.
-# promotedto - Vulkan version or a name of an extension that this
+# promotedto - API version or a name of an extension that this
# extension was promoted to; e.g. 'VK_VERSION_1_1', or
# 'VK_KHR_draw_indirect_county'
-# deprecatedby - Vulkan version or a name of an extension that deprecates
-# this extension. It may be empty string.
+# deprecatedby - API version or a name of an extension that deprecates
+# this extension. It may be an empty string.
# e.g. 'VK_VERSION_1_1', or 'VK_EXT_debug_utils', or ''
# obsoletedby - Vulkan version or a name of an extension that obsoletes
-# this extension. It may be empty string.
+# this extension. It may be an empty string.
# e.g. 'VK_VERSION_1_1', or 'VK_EXT_debug_utils', or ''
# provisional - 'true' if this extension is released provisionally
# specialuse - contains one or more tokens separated by commas, indicating
diff --git a/xml/vk.xml b/xml/vk.xml
index 9930c411..f365b71e 100644
--- a/xml/vk.xml
+++ b/xml/vk.xml
@@ -175,7 +175,7 @@ branch of the member gitlab server.
#define <name>VKSC_API_VERSION_1_0</name> <type>VK_MAKE_API_VERSION</type>(VKSC_API_VARIANT, 1, 0, 0)// Patch version should always be set to 0</type>
<type api="vulkan" category="define">// Version of this file
-#define <name>VK_HEADER_VERSION</name> 269</type>
+#define <name>VK_HEADER_VERSION</name> 270</type>
<type api="vulkan" category="define" requires="VK_HEADER_VERSION">// Complete version of this file
#define <name>VK_HEADER_VERSION_COMPLETE</name> <type>VK_MAKE_API_VERSION</type>(0, 1, 3, VK_HEADER_VERSION)</type>
<type api="vulkansc" category="define">// Version of this file
@@ -8470,7 +8470,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
</type>
<type category="struct" name="VkDirectDriverLoadingListLUNARG" structextends="VkInstanceCreateInfo">
<member values="VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
+ <member optional="true" noautovalidity="true">const <type>void</type>* <name>pNext</name></member>
<member><type>VkDirectDriverLoadingModeLUNARG</type> <name>mode</name></member>
<member><type>uint32_t</type> <name>driverCount</name></member>
<member len="driverCount">const <type>VkDirectDriverLoadingInfoLUNARG</type>* <name>pDrivers</name></member>
@@ -8837,6 +8837,11 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member optional="true"><type>void</type>* <name>pNext</name></member>
<member><type>VkPhysicalDeviceSchedulingControlsFlagsARM</type> <name>schedulingControlsFlags</name></member>
</type>
+ <type category="struct" name="VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+ <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG"><type>VkStructureType</type> <name>sType</name></member>
+ <member optional="true"><type>void</type>* <name>pNext</name></member>
+ <member><type>VkBool32</type> <name>relaxedLineRasterization</name></member>
+ </type>
</types>
@@ -17925,7 +17930,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkPipelineViewportSwizzleStateCreateFlagsNV"/>
</require>
</extension>
- <extension name="VK_EXT_discard_rectangles" number="100" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="NV" contact="Piers Daniell @pdaniell-nv" supported="vulkan,vulkansc">
+ <extension name="VK_EXT_discard_rectangles" number="100" type="device" depends="VK_KHR_get_physical_device_properties2,VK_VERSION_1_1" author="NV" contact="Piers Daniell @pdaniell-nv" supported="vulkan,vulkansc" ratified="vulkan">
<require>
<enum value="2" name="VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_discard_rectangles&quot;" name="VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME"/>
@@ -18061,10 +18066,12 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkSubpassEndInfoKHR"/>
</require>
</extension>
- <extension name="VK_IMG_extension_111" number="111" author="IMG" contact="Michael Worcester @michaelworcester" supported="disabled">
+ <extension name="VK_IMG_relaxed_line_rasterization" number="111" type="device" depends="(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)" author="IMG" contact="James Fitzpatrick @jamesfitzpatrick" supported="vulkan" specialuse="glemulation">
<require>
- <enum value="0" name="VK_IMG_EXTENSION_111_SPEC_VERSION"/>
- <enum value="&quot;VK_IMG_extension_111&quot;" name="VK_IMG_EXTENSION_111_EXTENSION_NAME"/>
+ <enum value="1" name="VK_IMG_RELAXED_LINE_RASTERIZATION_SPEC_VERSION"/>
+ <enum value="&quot;VK_IMG_relaxed_line_rasterization&quot;" name="VK_IMG_RELAXED_LINE_RASTERIZATION_EXTENSION_NAME"/>
+ <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG"/>
+ <type name="VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG"/>
</require>
</extension>
<extension name="VK_KHR_shared_presentable_image" number="112" type="device" depends="VK_KHR_swapchain+VK_KHR_get_surface_capabilities2+(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)" author="KHR" contact="Alon Or-bach @alonorbach" supported="vulkan,vulkansc" ratified="vulkan,vulkansc">
@@ -21341,7 +21348,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<command name="vkGetImageSubresourceLayout2EXT"/>
</require>
</extension>
- <extension name="VK_EXT_attachment_feedback_loop_layout" number="340" type="device" depends="VK_KHR_get_physical_device_properties2" author="EXT" contact="Joshua Ashton @Joshua-Ashton" supported="vulkan">
+ <extension name="VK_EXT_attachment_feedback_loop_layout" number="340" type="device" depends="VK_KHR_get_physical_device_properties2" author="EXT" contact="Joshua Ashton @Joshua-Ashton" supported="vulkan" ratified="vulkan">
<require>
<enum value="2" name="VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_attachment_feedback_loop_layout&quot;" name="VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME"/>
@@ -21960,7 +21967,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkPhysicalDeviceShaderTileImagePropertiesEXT"/>
</require>
</extension>
- <extension name="VK_EXT_opacity_micromap" number="397" type="device" depends="VK_KHR_acceleration_structure+VK_KHR_synchronization2" author="EXT" contact="Christoph Kubisch @pixeljetstream, Eric Werness" supported="vulkan">
+ <extension name="VK_EXT_opacity_micromap" number="397" type="device" depends="VK_KHR_acceleration_structure+VK_KHR_synchronization2" author="EXT" contact="Christoph Kubisch @pixeljetstream, Eric Werness" supported="vulkan" ratified="vulkan">
<require>
<enum value="2" name="VK_EXT_OPACITY_MICROMAP_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_opacity_micromap&quot;" name="VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME"/>
@@ -22523,7 +22530,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="&quot;VK_GOOGLE_extension_455&quot;" name="VK_GOOGLE_EXTENSION_455_EXTENSION_NAME"/>
</require>
</extension>
- <extension name="VK_EXT_extended_dynamic_state3" number="456" type="device" depends="VK_KHR_get_physical_device_properties2" author="NV" contact="Piers Daniell @pdaniell-nv" supported="vulkan">
+ <extension name="VK_EXT_extended_dynamic_state3" number="456" type="device" depends="VK_KHR_get_physical_device_properties2" author="NV" contact="Piers Daniell @pdaniell-nv" supported="vulkan" ratified="vulkan">
<require>
<enum value="2" name="VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_extended_dynamic_state3&quot;" name="VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME"/>
@@ -23678,6 +23685,24 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="&quot;VK_NV_extension_551&quot;" name="VK_NV_EXTENSION_551_EXTENSION_NAME"/>
</require>
</extension>
+ <extension name="VK_NV_extension_552" number="552" author="NV" contact="Russell Chou @russellcnv" supported="disabled">
+ <require>
+ <enum value="0" name="VK_NV_EXTENSION_552_SPEC_VERSION"/>
+ <enum value="&quot;VK_NV_extension_552&quot;" name="VK_NV_EXTENSION_552_EXTENSION_NAME"/>
+ </require>
+ </extension>
+ <extension name="VK_KHR_extension_553" number="553" author="KHR" contact="Ahmed Abdelkhalek @aabdelkh" type="device" supported="disabled">
+ <require>
+ <enum value="0" name="VK_KHR_EXTENSION_553_SPEC_VERSION"/>
+ <enum value="&quot;VK_KHR_extension_553&quot;" name="VK_KHR_EXTENSION_553_EXTENSION_NAME"/>
+ </require>
+ </extension>
+ <extension name="VK_KHR_extension_554" number="554" author="KHR" contact="Ahmed Abdelkhalek @aabdelkh" type="device" supported="disabled">
+ <require>
+ <enum value="0" name="VK_KHR_EXTENSION_554_SPEC_VERSION"/>
+ <enum value="&quot;VK_KHR_extension_554&quot;" name="VK_KHR_EXTENSION_554_EXTENSION_NAME"/>
+ </require>
+ </extension>
</extensions>
<formats>
<format name="VK_FORMAT_R4G4_UNORM_PACK8" class="8-bit" blockSize="1" texelsPerBlock="1" packed="8">