Skip to content

Commit

Permalink
Change log for July 26, 2024 Vulkan 1.3.292 spec update:
Browse files Browse the repository at this point in the history
Internal Issues

  * Add missing <<spirvenv-precision-operation, bit-preserving operations>>
    (internal issue 3902).
  * Add <<spirvenv-precision-core-table, precision of some SPIR-V
    operations>> (internal issue 3902).
  * Require OpIsNan and OpIsInf to allow <<spirvenv-precision-operation,
    preserving Nan and Inf>> (internal issue 3902).
  * Remove 'requires="VkVideoEncodeFlagBitsKHR"' from VkVideoEncodeFlagsKHR
    (internal issue 3934).
  * Add common pipeline create info VU and add VkShaderCreateInfoEXT VUs to
    match pipeline VUs (internal MR 6684).
  * Add common draw dispatch VU to validate sampler/image array access
    (internal MR 6793).
  * Split vkAcquireNextImage fence state VUs into separate VUs for
    independently testable clauses (internal MR 6802).
  * Remove "`either`" typo from vkCmdWaitEvents2 VU 03842 (internal MR
    6803).
  * Make pNext pointers in VkDescriptorBufferBindingInfoEXT and
    VkDescriptorBufferBindingPushDescriptorBufferHandleEXT `const` (internal
    MR 6804).
  * Update generated "`Extension and Version Dependencies`" link to API
    version language to include the API name (Vulkan or Vulkan SC) (internal
    MR 6805).
  * Fix bug in video codec test generator script (internal MR 6807).
  • Loading branch information
oddhack committed Jul 27, 2024
1 parent 4b01c38 commit e090b10
Show file tree
Hide file tree
Showing 19 changed files with 143 additions and 52 deletions.
14 changes: 7 additions & 7 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ jobs:
runs-on: ubuntu-latest
# We now refer to the container by its SHA instead of the name, to prevent
# caching problems when updating the image.
# container: khronosgroup/docker-images:asciidoctor-spec.20240702
container: khronosgroup/docker-images@sha256:4aab96a03ef292439c9bd0f972adfa29cdf838d0909b1cb4ec2a6d7b2d14a37f
# container: khronosgroup/docker-images:asciidoctor-spec.20240726
container: khronosgroup/docker-images@sha256:5e021da240f12121f064d2135e06320c021ac231c9ae8abbf6205b6130deb58b

steps:
- uses: actions/checkout@v4
Expand All @@ -32,7 +32,7 @@ jobs:
terminology-check:
name: Run various checker scripts on the spec and XML sources
runs-on: ubuntu-latest
container: khronosgroup/docker-images@sha256:4aab96a03ef292439c9bd0f972adfa29cdf838d0909b1cb4ec2a6d7b2d14a37f
container: khronosgroup/docker-images@sha256:5e021da240f12121f064d2135e06320c021ac231c9ae8abbf6205b6130deb58b

steps:
- uses: actions/checkout@v4
Expand All @@ -48,7 +48,7 @@ jobs:
spec-toolchain:
name: Build a test spec and check against expectation, to make sure the spec toolchain works as expected
runs-on: ubuntu-latest
container: khronosgroup/docker-images@sha256:4aab96a03ef292439c9bd0f972adfa29cdf838d0909b1cb4ec2a6d7b2d14a37f
container: khronosgroup/docker-images@sha256:5e021da240f12121f064d2135e06320c021ac231c9ae8abbf6205b6130deb58b

steps:
- uses: actions/checkout@v4
Expand All @@ -57,7 +57,7 @@ jobs:
spec-core:
name: Build the core-only spec, to try and catch ifdef errors in extension markup
runs-on: ubuntu-latest
container: khronosgroup/docker-images@sha256:4aab96a03ef292439c9bd0f972adfa29cdf838d0909b1cb4ec2a6d7b2d14a37f
container: khronosgroup/docker-images@sha256:5e021da240f12121f064d2135e06320c021ac231c9ae8abbf6205b6130deb58b

steps:
- uses: actions/checkout@v4
Expand All @@ -66,7 +66,7 @@ jobs:
spec-generate:
name: Build the vulkan specification and generate any associated files (such as vulkan.h)
runs-on: ubuntu-latest
container: khronosgroup/docker-images@sha256:4aab96a03ef292439c9bd0f972adfa29cdf838d0909b1cb4ec2a6d7b2d14a37f
container: khronosgroup/docker-images@sha256:5e021da240f12121f064d2135e06320c021ac231c9ae8abbf6205b6130deb58b

steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -194,7 +194,7 @@ jobs:
cts-framework-tests:
name: Run Vulkan CTS framework tests to validate against XML changes
runs-on: ubuntu-latest
container: khronosgroup/docker-images@sha256:4aab96a03ef292439c9bd0f972adfa29cdf838d0909b1cb4ec2a6d7b2d14a37f
container: khronosgroup/docker-images@sha256:5e021da240f12121f064d2135e06320c021ac231c9ae8abbf6205b6130deb58b
continue-on-error: true

steps:
Expand Down
4 changes: 2 additions & 2 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
# All stages use the same Docker image, so there are no prerequisites
# Refer to the container by its SHA instead of the name, to prevent
# caching problems when updating the image.
# image: khronosgroup/docker-images:asciidoctor-spec.20240702
image: khronosgroup/docker-images@sha256:4aab96a03ef292439c9bd0f972adfa29cdf838d0909b1cb4ec2a6d7b2d14a37f
# image: khronosgroup/docker-images:asciidoctor-spec.20240726
image: khronosgroup/docker-images@sha256:5e021da240f12121f064d2135e06320c021ac231c9ae8abbf6205b6130deb58b

# Specify which gitlab runner to use
default:
Expand Down
2 changes: 1 addition & 1 deletion BUILD.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -423,7 +423,7 @@ image name. The SHA256 can be determined from

which will print a line like

image: khronosgroup/docker-images@sha256:4aab96a03ef292439c9bd0f972adfa29cdf838d0909b1cb4ec2a6d7b2d14a37f
image: khronosgroup/docker-images@sha256:5e021da240f12121f064d2135e06320c021ac231c9ae8abbf6205b6130deb58b

Everything following `image: ` is the <imagename> to use. The first time you
try to run a container with this <imagename>, as is done by the `runDocker`
Expand Down
30 changes: 30 additions & 0 deletions ChangeLog.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,36 @@ appears frequently in the change log.

'''

Change log for July 26, 2024 Vulkan 1.3.292 spec update:

Internal Issues

* Add missing <<spirvenv-precision-operation, bit-preserving operations>>
(internal issue 3902).
* Add <<spirvenv-precision-core-table, precision of some SPIR-V
operations>> (internal issue 3902).
* Require OpIsNan and OpIsInf to allow <<spirvenv-precision-operation,
preserving Nan and Inf>> (internal issue 3902).
* Remove 'requires="VkVideoEncodeFlagBitsKHR"' from VkVideoEncodeFlagsKHR
(internal issue 3934).
* Add common pipeline create info VU and add VkShaderCreateInfoEXT VUs to
match pipeline VUs (internal MR 6684).
* Add common draw dispatch VU to validate sampler/image array access
(internal MR 6793).
* Split vkAcquireNextImage fence state VUs into separate VUs for
independently testable clauses (internal MR 6802).
* Remove "`either`" typo from vkCmdWaitEvents2 VU 03842 (internal MR
6803).
* Make pNext pointers in VkDescriptorBufferBindingInfoEXT and
VkDescriptorBufferBindingPushDescriptorBufferHandleEXT `const` (internal
MR 6804).
* Update generated "`Extension and Version Dependencies`" link to API
version language to include the API name (Vulkan or Vulkan SC) (internal
MR 6805).
* Fix bug in video codec test generator script (internal MR 6807).

'''

Change log for July 19, 2024 Vulkan 1.3.291 spec update:

GitHub Issues
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ VERBOSE =
# ADOCOPTS options for asciidoc->HTML5 output

NOTEOPTS = -a editing-notes -a implementation-guide
PATCHVERSION = 291
PATCHVERSION = 292
BASEOPTS =

ifneq (,$(findstring VKSC_VERSION_1_0,$(VERSIONS)))
Expand Down
45 changes: 40 additions & 5 deletions appendices/spirvenv.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2122,8 +2122,28 @@ floating-point instructions:
code:OpVectorInsertDynamic, code:OpVectorShuffle,
code:OpCompositeConstruct, code:OpCompositeExtract,
code:OpCompositeInsert, code:OpTranspose, code:OpCopyObject,
code:OpCopyMemory, code:OpStore, and code:OpLoad are referred to as
_bit-preserving operations_.
code:OpCopyLogical, code:OpCopyMemory,
ifdef::VK_VERSION_1_1[]
code:OpGroupNonUniformBroadcast, code:OpGroupNonUniformBroadcastFirst,
code:OpGroupNonUniformShuffle, code:OpGroupNonUniformShuffleXor,
code:OpGroupNonUniformShuffleUp, code:OpGroupNonUniformShuffleDown,
code:OpGroupNonUniformQuadBroadcast, code:OpGroupNonUniformQuadSwap,
endif::VK_VERSION_1_1[]
ifdef::VK_EXT_shader_subgroup_ballot[]
code:OpSubgroupReadInvocationKHR, code:OpSubgroupFirstInvocationKHR,
endif::VK_EXT_shader_subgroup_ballot[]
ifdef::VK_KHR_shader_subgroup_rotate[]
code:OpGroupNonUniformRotateKHR,
endif::VK_KHR_shader_subgroup_rotate[]
ifdef::VK_KHR_cooperative_matrix[]
code:OpCooperativeMatrixLoadKHR, code:OpCooperativeMatrixStoreKHR,
endif::VK_KHR_cooperative_matrix[]
ifdef::VK_NV_cooperative_matrix[]
code:OpCooperativeMatrixLoadNV, code:OpCooperativeMatrixStoreNV,
endif::VK_NV_cooperative_matrix[]
code:OpAtomicLoad, code:OpAtomicStore, code:OpAtomicExchange,
code:OpStore, and code:OpLoad are referred to as _bit-preserving
operations_.
ifdef::VK_KHR_shader_float_controls2[]
* The floating-point environment used for an instruction can be determined
as follows:
Expand All @@ -2140,8 +2160,8 @@ ifdef::VK_KHR_shader_float_controls2[]
code:SignedZeroInfNanPreserve with a bit-width corresponding to one
of the operands or to the result type.
**** The operation is not a bit-preserving operation and is not one of
code:OpFConvert, code:OpFNegate, code:OpFAdd, code:OpFSub, or
code:OpFMul.
code:OpFConvert, code:OpFNegate, code:OpFAdd, code:OpFSub,
code:OpFMul, code:OpIsNan, or code:OpIsInf.
**** The operation is an code:OpLoad from the code:Input {StorageClass} in
the fragment shader stage.
endif::VK_KHR_shader_float_controls2[]
Expand All @@ -2159,7 +2179,8 @@ ifdef::VK_VERSION_1_2,VK_KHR_shader_float_controls[]
code:SignedZeroInfNanPreserve {ExecutionMode}.
** The following core SPIR-V instructions must: respect the
code:SignedZeroInfNanPreserve {ExecutionMode}: code:OpFConvert,
code:OpFNegate, code:OpFAdd, code:OpFSub, and code:OpFMul.
code:OpFNegate, code:OpFAdd, code:OpFSub, code:OpFMul, code:OpIsNan,
and code:OpIsInf.
endif::VK_VERSION_1_2,VK_KHR_shader_float_controls[]
endif::VK_KHR_shader_float_controls2[]
* All bit-preserving operations and the following instructions must: not
Expand Down Expand Up @@ -2362,16 +2383,30 @@ endif::VK_VERSION_1_2,VK_KHR_shader_float16_int8[]
|====
| Instruction
| Single precision, unless decorated with RelaxedPrecision | Half precision
| code:OpFNegate
2+| Correct result.
| code:OpFAdd
2+| Correctly rounded.
| code:OpFSub
2+| Correctly rounded.
| code:OpFMul, code:OpVectorTimesScalar, code:OpMatrixTimesScalar
2+| Correctly rounded.
| code:OpMatrixTimesVector
2+a| Inherited from latexmath:[\sum_{j = 0}^{n - 1} M_{ij} \times v_{j}].
| code:OpVectorTimesMatrix
2+a| Inherited from latexmath:[\sum_{j = 0}^{n - 1} v_{j} \times M_{ji}].
| code:OpMatrixTimesMatrix
2+a| Inherited from latexmath:[\sum_{k = 0}^{n - 1} M_{ik} \times N_{kj}].
| code:OpOuterProduct
2+| Correctly rounded.
| code:OpDot(x, y)
2+a| Inherited from latexmath:[\sum_{i = 0}^{n - 1} x_{i} \times y_{i}].
| code:OpIsNan, code:OpIsInf
2+| Correct Result.
| code:OpFOrdEqual, code:OpFUnordEqual
2+| Correct result.
| code:OpFOrdNotEqual, code:OpFUnordNotEqual
2+| Correct result.
| code:OpFOrdLessThan, code:OpFUnordLessThan
2+| Correct result.
| code:OpFOrdGreaterThan, code:OpFUnordGreaterThan
Expand Down
8 changes: 4 additions & 4 deletions appendices/versions.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ ifdef::VKSC_VERSION_1_0[:promoted: {appendices}/sc_static]

ifdef::VK_VERSION_1_3[]
[[versions-1.3]]
== Version 1.3
== Vulkan Version 1.3

// Unfortunately we cannot include titles in an open refpage block, so this
// is a refpage-specific alternate form of the section.
Expand Down Expand Up @@ -141,7 +141,7 @@ endif::VK_VERSION_1_3[]

ifdef::VK_VERSION_1_2[]
[[versions-1.2]]
== Version 1.2
== Vulkan Version 1.2

// Unfortunately we cannot include titles in an open refpage block, so this
// is a refpage-specific alternate form of the section.
Expand Down Expand Up @@ -335,7 +335,7 @@ endif::VK_VERSION_1_2[]

ifdef::VK_VERSION_1_1[]
[[versions-1.1]]
== Version 1.1
== Vulkan Version 1.1

// Unfortunately we cannot include titles in an open refpage block, so this
// is a refpage-specific alternate form of the section.
Expand Down Expand Up @@ -445,7 +445,7 @@ endif::VK_VERSION_1_1[]


[[versions-1.0]]
== Version 1.0
== Vulkan Version 1.0

// Unfortunately we cannot include titles in an open refpage block, so this
// is a refpage-specific alternate form of the section.
Expand Down
4 changes: 2 additions & 2 deletions build_tests/expectations/all-1.0.html
Original file line number Diff line number Diff line change
Expand Up @@ -1068,13 +1068,13 @@ <h3 id="VK_EXT_host_image_copy"><a class="anchor" href="#VK_EXT_host_image_copy"
<div class="paragraph">
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="#VK_KHR_get_physical_device_properties2">VK_KHR_get_physical_device_properties2</a><br>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; or<br>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="#versions-1.1">Version 1.1</a><br>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="#versions-1.1">Vulkan Version 1.1</a><br>
&#160;&#160;&#160;&#160; and<br>
&#160;&#160;&#160;&#160; <a href="#VK_KHR_copy_commands2">VK_KHR_copy_commands2</a><br>
&#160;&#160;&#160;&#160; and<br>
&#160;&#160;&#160;&#160; <a href="#VK_KHR_format_feature_flags2">VK_KHR_format_feature_flags2</a><br>
or<br>
<a href="#versions-1.3">Version 1.3</a><br></p>
<a href="#versions-1.3">Vulkan Version 1.3</a><br></p>
</div>
</div>
</div>
Expand Down
4 changes: 2 additions & 2 deletions build_tests/expectations/all.html
Original file line number Diff line number Diff line change
Expand Up @@ -1102,13 +1102,13 @@ <h3 id="VK_EXT_host_image_copy"><a class="anchor" href="#VK_EXT_host_image_copy"
<div class="paragraph">
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="#VK_KHR_get_physical_device_properties2">VK_KHR_get_physical_device_properties2</a><br>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; or<br>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="#versions-1.1">Version 1.1</a><br>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="#versions-1.1">Vulkan Version 1.1</a><br>
&#160;&#160;&#160;&#160; and<br>
&#160;&#160;&#160;&#160; <a href="#VK_KHR_copy_commands2">VK_KHR_copy_commands2</a><br>
&#160;&#160;&#160;&#160; and<br>
&#160;&#160;&#160;&#160; <a href="#VK_KHR_format_feature_flags2">VK_KHR_format_feature_flags2</a><br>
or<br>
<a href="#versions-1.3">Version 1.3</a><br></p>
<a href="#versions-1.3">Vulkan Version 1.3</a><br></p>
</div>
</div>
</div>
Expand Down
4 changes: 2 additions & 2 deletions build_tests/expectations/hic-1.0.html
Original file line number Diff line number Diff line change
Expand Up @@ -1029,13 +1029,13 @@ <h3 id="VK_EXT_host_image_copy"><a class="anchor" href="#VK_EXT_host_image_copy"
<div class="paragraph">
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="#VK_KHR_get_physical_device_properties2">VK_KHR_get_physical_device_properties2</a><br>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; or<br>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="#versions-1.1">Version 1.1</a><br>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="#versions-1.1">Vulkan Version 1.1</a><br>
&#160;&#160;&#160;&#160; and<br>
&#160;&#160;&#160;&#160; <a href="#VK_KHR_copy_commands2">VK_KHR_copy_commands2</a><br>
&#160;&#160;&#160;&#160; and<br>
&#160;&#160;&#160;&#160; <a href="#VK_KHR_format_feature_flags2">VK_KHR_format_feature_flags2</a><br>
or<br>
<a href="#versions-1.3">Version 1.3</a><br></p>
<a href="#versions-1.3">Vulkan Version 1.3</a><br></p>
</div>
</div>
</div>
Expand Down
4 changes: 2 additions & 2 deletions build_tests/expectations/hic.html
Original file line number Diff line number Diff line change
Expand Up @@ -1065,13 +1065,13 @@ <h3 id="VK_EXT_host_image_copy"><a class="anchor" href="#VK_EXT_host_image_copy"
<div class="paragraph">
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="#VK_KHR_get_physical_device_properties2">VK_KHR_get_physical_device_properties2</a><br>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; or<br>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="#versions-1.1">Version 1.1</a><br>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="#versions-1.1">Vulkan Version 1.1</a><br>
&#160;&#160;&#160;&#160; and<br>
&#160;&#160;&#160;&#160; <a href="#VK_KHR_copy_commands2">VK_KHR_copy_commands2</a><br>
&#160;&#160;&#160;&#160; and<br>
&#160;&#160;&#160;&#160; <a href="#VK_KHR_format_feature_flags2">VK_KHR_format_feature_flags2</a><br>
or<br>
<a href="#versions-1.3">Version 1.3</a><br></p>
<a href="#versions-1.3">Vulkan Version 1.3</a><br></p>
</div>
</div>
</div>
Expand Down
26 changes: 16 additions & 10 deletions chapters/VK_KHR_swapchain/wsi.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -928,14 +928,17 @@ include::{chapters}/commonvalidity/no_dynamic_allocations_common.adoc[]
* [[VUID-vkAcquireNextImageKHR-swapchain-01285]]
pname:swapchain must: not be in the retired state
* [[VUID-vkAcquireNextImageKHR-semaphore-01286]]
If pname:semaphore is not dlink:VK_NULL_HANDLE it must: be unsignaled
If pname:semaphore is not dlink:VK_NULL_HANDLE, it must: be unsignaled
* [[VUID-vkAcquireNextImageKHR-semaphore-01779]]
If pname:semaphore is not dlink:VK_NULL_HANDLE it must: not have any
If pname:semaphore is not dlink:VK_NULL_HANDLE, it must: not have any
uncompleted signal or wait operations pending
* [[VUID-vkAcquireNextImageKHR-fence-01287]]
If pname:fence is not dlink:VK_NULL_HANDLE it must: be unsignaled and
must: not be associated with any other queue command that has not yet
completed execution on that queue
If pname:fence is not dlink:VK_NULL_HANDLE, pname:fence must: be
unsignaled
* [[VUID-vkAcquireNextImageKHR-fence-10066]]
If pname:fence is not dlink:VK_NULL_HANDLE, pname:fence must: not be
associated with any other queue command that has not yet completed
execution on that queue
* [[VUID-vkAcquireNextImageKHR-semaphore-01780]]
pname:semaphore and pname:fence must: not both be equal to
dlink:VK_NULL_HANDLE
Expand Down Expand Up @@ -1241,14 +1244,17 @@ succeeds, which the other physical device(s) can: wait upon.
* [[VUID-VkAcquireNextImageInfoKHR-swapchain-01675]]
pname:swapchain must: not be in the retired state
* [[VUID-VkAcquireNextImageInfoKHR-semaphore-01288]]
If pname:semaphore is not dlink:VK_NULL_HANDLE it must: be unsignaled
If pname:semaphore is not dlink:VK_NULL_HANDLE, it must: be unsignaled
* [[VUID-VkAcquireNextImageInfoKHR-semaphore-01781]]
If pname:semaphore is not dlink:VK_NULL_HANDLE it must: not have any
If pname:semaphore is not dlink:VK_NULL_HANDLE, it must: not have any
uncompleted signal or wait operations pending
* [[VUID-VkAcquireNextImageInfoKHR-fence-01289]]
If pname:fence is not dlink:VK_NULL_HANDLE it must: be unsignaled and
must: not be associated with any other queue command that has not yet
completed execution on that queue
If pname:fence is not dlink:VK_NULL_HANDLE, pname:fence must: be
unsignaled
* [[VUID-VkAcquireNextImageInfoKHR-fence-10067]]
If pname:fence is not dlink:VK_NULL_HANDLE, pname:fence must: not be
associated with any other queue command that has not yet completed
execution on that queue
* [[VUID-VkAcquireNextImageInfoKHR-semaphore-01782]]
pname:semaphore and pname:fence must: not both be equal to
dlink:VK_NULL_HANDLE
Expand Down
5 changes: 5 additions & 0 deletions chapters/commonvalidity/draw_dispatch_common.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,11 @@ ifdef::VK_EXT_shader_object[]
slink:VkShaderEXT
endif::VK_EXT_shader_object[]
, as described in <<descriptorsets-compatibility>>
* [[VUID-{refpage}-None-10068]]
For each array of resources that is used by <<shaders-binding,a bound
shader>>, the indices used to access members of the array must: be less
than the descriptor count for the identified binding in the descriptor
sets used by this command
ifdef::VK_VERSION_1_3,VK_KHR_maintenance4[]
* [[VUID-{refpage}-maintenance4-08602]]
If the <<features-maintenance4, pname:maintenance4>> feature is not
Expand Down
6 changes: 5 additions & 1 deletion chapters/commonvalidity/pipeline_create_info_common.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,11 @@ ifdef::VKSC_VERSION_1_0[]
endif::VKSC_VERSION_1_0[]
* [[VUID-{refpage}-layout-07987]]
If a push constant block is declared in a shader, a push constant range
in pname:layout must: match both the shader stage and range
in pname:layout must: match the shader stage
* [[VUID-{refpage}-layout-10069]]
If a push constant block is declared in a shader, the block must be
contained inside the push constant range in pname:layout that matches
the stage
* [[VUID-{refpage}-layout-07988]]
If a <<interfaces-resources,resource variables>> is declared in a
shader, a descriptor slot in pname:layout must: match the shader stage
Expand Down
11 changes: 11 additions & 0 deletions chapters/shaders.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -532,6 +532,17 @@ endif::VK_NV_mesh_shader,VK_EXT_mesh_shader[]
pname:stage is ename:VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,
pname:pCode must: contain an code:OpExecutionMode instruction specifying
the output patch size
* [[VUID-VkShaderCreateInfoEXT-pPushConstantRanges-10063]]
Any two elements of pname:pPushConstantRanges must: not include the same
stage in pname:stageFlags
* [[VUID-VkShaderCreateInfoEXT-codeType-10064]]
If pname:codeType is ename:VK_SHADER_CODE_TYPE_SPIRV_EXT, and if a push
constant block is declared in a shader, then an element of
pname:pPushConstantRanges::pname:stageFlags must: match pname::stage
* [[VUID-VkShaderCreateInfoEXT-codeType-10065]]
If pname:codeType is ename:VK_SHADER_CODE_TYPE_SPIRV_EXT, and if a push
constant block is declared in a shader, the block must be contained
inside the element of pname:pPushConstantRanges that matches the stage
****

include::{generated}/validity/structs/VkShaderCreateInfoEXT.adoc[]
Expand Down
Loading

0 comments on commit e090b10

Please sign in to comment.