Skip to content

Commit

Permalink
Change log for October 25, 2024 Vulkan 1.3.300 spec update:
Browse files Browse the repository at this point in the history
Github Issues

  * Add SHADY author ID (public PR 2448).
  * Migrate antora/Makefile targets into top-level Makefile (public PR
    2450).

Internal Issues

  * Update XML feature schema and generators to express more dependency
    cases, allowing replacing more hand-written feature specification
    language (internal issues 3949, 3947, 3950):
  ** Allows multiple versions of the same feature to be required in the xml
     (e.g. the same feature in two structs), without duplicating
     autogenerated text in the feature requirements section of the spec.
  ** Allows definition of "this or that feature" as a requirement.
  ** Adds features to depends attributes on require/remove blocks with
     features in them, enabling more complex feature dependencies.
  ** Enables more complex dependencies for feature requirements (and/or
     lists with no parentheses).
  * Fix typo in common draw dispatch validity VU 08607 (internal issue
    4056).
  * Clarify device-host concurrent resource access language for
    vkFlushMappedMemoryRanges and the <<resources-memory-overlap, Resource
    Memory Overlap>> section (internal MR 5771).
  * Improve readability of the <<features, Features>> chapter introduction
    (internal MR 6888).
  * Fix typo in VkGeneratedCommandsInfoEXT VU 11072 (internal MR 6904).
  * Move VkRayTracingPipelineCreateInfoNV VU 11008 from the common ray
    tracking pipeline create info validity section to be specific to that
    structure (internal MR 6905).
  * Add missing VkGeneratedCommandsInfoEXT VU mirroring
    VkGeneratedCommandsMemoryRequirementsInfoEXT VU 11011 (internal MR
    6948).
  * Remove duplicate VkSwapchainCreateInfoKHR VU 10156 (internal MR 6942).
  * Combine common draw validity discard rectangle VUs for
    vkCmdSetDiscardRectangleEnableEXT and vkCmdSetDiscardRectangleModeEXT
    (internal MR 6953).
  * Combine common draw validity sample location VUs for
    VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT and
    vkCmdSetSampleLocationsEnableEXT (internal MR 6955).
  * Combine common draw validity line stipple dynamic state VUs for shader
    objects and pipelines (internal MR 6956).
  * Remove vkCmdDrawMeshTasksIndirectCountNV,
    vkCmdDrawMeshTasksIndirectCountEXT, vkCmdDrawIndirectCount, and
    vkCmdDrawIndexedIndirectCount VUs since drawCount is already capped by
    maxDrawCount (internal MR 6969).
  * Fix typo in description of vkCmdCopyMemoryToMicromapEXT::pInfo (internal
    MR 6974).

New Extensions

  * VK_NV_cooperative_matrix2
  • Loading branch information
oddhack committed Oct 25, 2024
1 parent f3a114c commit c9304f8
Show file tree
Hide file tree
Showing 28 changed files with 1,159 additions and 402 deletions.
57 changes: 57 additions & 0 deletions ChangeLog.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,63 @@ appears frequently in the change log.

'''

Change log for October 25, 2024 Vulkan 1.3.300 spec update:

Github Issues

* Add SHADY author ID (public PR 2448).
* Migrate antora/Makefile targets into top-level Makefile (public PR
2450).

Internal Issues

* Update XML feature schema and generators to express more dependency
cases, allowing replacing more hand-written feature specification
language (internal issues 3949, 3947, 3950):
** Allows multiple versions of the same feature to be required in the xml
(e.g. the same feature in two structs), without duplicating
autogenerated text in the feature requirements section of the spec.
** Allows definition of "this or that feature" as a requirement.
** Adds features to depends attributes on require/remove blocks with
features in them, enabling more complex feature dependencies.
** Enables more complex dependencies for feature requirements (and/or
lists with no parentheses).
* Fix typo in common draw dispatch validity VU 08607 (internal issue
4056).
* Clarify device-host concurrent resource access language for
vkFlushMappedMemoryRanges and the <<resources-memory-overlap, Resource
Memory Overlap>> section (internal MR 5771).
* Improve readability of the <<features, Features>> chapter introduction
(internal MR 6888).
* Fix typo in VkGeneratedCommandsInfoEXT VU 11072 (internal MR 6904).
* Move VkRayTracingPipelineCreateInfoNV VU 11008 from the common ray
tracking pipeline create info validity section to be specific to that
structure (internal MR 6905).
* Add missing VkGeneratedCommandsInfoEXT VU mirroring
VkGeneratedCommandsMemoryRequirementsInfoEXT VU 11011 (internal MR
6948).
* Remove duplicate VkSwapchainCreateInfoKHR VU 10156 (internal MR 6942).
* Combine common draw validity discard rectangle VUs for
vkCmdSetDiscardRectangleEnableEXT and vkCmdSetDiscardRectangleModeEXT
(internal MR 6953).
* Combine common draw validity sample location VUs for
VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT and
vkCmdSetSampleLocationsEnableEXT (internal MR 6955).
* Combine common draw validity line stipple dynamic state VUs for shader
objects and pipelines (internal MR 6956).
* Remove vkCmdDrawMeshTasksIndirectCountNV,
vkCmdDrawMeshTasksIndirectCountEXT, vkCmdDrawIndirectCount, and
vkCmdDrawIndexedIndirectCount VUs since drawCount is already capped by
maxDrawCount (internal MR 6969).
* Fix typo in description of vkCmdCopyMemoryToMicromapEXT::pInfo (internal
MR 6974).

New Extensions

* VK_NV_cooperative_matrix2

'''

Change log for October 18, 2024 Vulkan 1.3.299 spec update:

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

NOTEOPTS = -a editing-notes -a implementation-guide
PATCHVERSION = 299
PATCHVERSION = 300
BASEOPTS =

ifneq (,$(findstring VKSC_VERSION_1_0,$(VERSIONS)))
Expand Down
56 changes: 56 additions & 0 deletions appendices/VK_NV_cooperative_matrix2.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
// Copyright 2024 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_NV_cooperative_matrix2.adoc[]

=== Other Extension Metadata

*Last Modified Date*::
2024-08-01
*Interactions and External Dependencies*::
- This extension provides API support for
{GLSLregistry}/nv/GLSL_NV_cooperative_matrix2.txt[`GLSL_NV_cooperative_matrix2`]
*Contributors*::
- Jeff Bolz, NVIDIA
- Karthik Vaidyanathan, NVIDIA

=== Description

This extension adds several new features building on the cooperative matrix
types added in VK_KHR_cooperative_matrix.
The goal is to add and accelerate features beyond just simple GEMM kernels,
including adding support for type/use conversions, reductions, per-element
operations, and tensor addressing, and also to improve usability and
out-of-the-box performance by adding support for more flexible matrix sizes,
and workgroup scope matrices with compiler-managed staging through shared
memory.

The new functionality is defined by the
{spirv}/NV/SPV_NV_tensor_addressing.html[`SPV_NV_tensor_addressing`] and
{spirv}/NV/SPV_NV_cooperative_matrix2.html[`SPV_NV_cooperative_matrix2`]
SPIR-V extensions and can be used with the
{GLSLregistry}/nv/GLSL_NV_cooperative_matrix2.txt[`GLSL_NV_cooperative_matrix2`]
GLSL extension.

This extension includes support for enumerating the matrix types and
dimensions that are supported by the implementation, and which specific
features are supported.

include::{generated}/interfaces/VK_NV_cooperative_matrix2.adoc[]

=== New SPIR-V Capabilities

* <<spirvenv-capabilities-table-TensorAddressingNV,TensorAddressingNV>>
* <<spirvenv-capabilities-table-CooperativeMatrixReductionsNV,CooperativeMatrixReductionsNV>>
* <<spirvenv-capabilities-table-CooperativeMatrixConversionsNV,CooperativeMatrixConversionsNV>>
* <<spirvenv-capabilities-table-CooperativeMatrixPerElementOperationsNV,CooperativeMatrixPerElementOperationsNV>>
* <<spirvenv-capabilities-table-CooperativeMatrixTensorAddressingNV,CooperativeMatrixTensorAddressingNV>>
* <<spirvenv-capabilities-table-CooperativeMatrixBlockLoadsNV,CooperativeMatrixBlockLoadsNV>>

=== Issues

=== Version History

* Revision 1, 2024-08-01 (Jeff Bolz)
** Initial revision
2 changes: 2 additions & 0 deletions appendices/memorymodel.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -1189,13 +1189,15 @@ ifdef::VK_NV_cooperative_matrix,VK_KHR_cooperative_matrix[]
For each dynamic instance of a cooperative matrix load instruction
(code:OpCooperativeMatrixLoadKHR
ifdef::VK_NV_cooperative_matrix[, code:OpCooperativeMatrixLoadNV]
ifdef::VK_NV_cooperative_matrix2[, code:OpCooperativeMatrixLoadTensorNV]
), some implementation-dependent invocation(s) within the instance of the
matrix's scope perform a non-atomic load from each memory location that is
defined to be accessed by the instruction.

For each memory location accessed by a dynamic instance of a cooperative
matrix store instruction (code:OpCooperativeMatrixStoreKHR
ifdef::VK_NV_cooperative_matrix[, code:OpCooperativeMatrixStoreNV]
ifdef::VK_NV_cooperative_matrix2[, code:OpCooperativeMatrixStoreTensorNV]
), a single implementation-dependent invocation within the instance of the
matrix's scope performs a non-atomic store to that memory location.
endif::VK_NV_cooperative_matrix,VK_KHR_cooperative_matrix[]
151 changes: 143 additions & 8 deletions appendices/spirvenv.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -1328,13 +1328,39 @@ ifdef::VK_NV_cooperative_matrix[]
slink:VkPhysicalDeviceCooperativeMatrixPropertiesNV::pname:cooperativeMatrixSupportedStages
endif::VK_NV_cooperative_matrix[]
ifdef::VK_KHR_cooperative_matrix[]
* [[VUID-{refpage}-OpTypeCooperativeMatrixKHR-08974]]
For code:OpTypeCooperativeMatrixKHR, the component type, scope, number
of rows, and number of columns must: match one of the matrices in any of
the supported slink:VkCooperativeMatrixPropertiesKHR
* [[VUID-{refpage}-OpTypeCooperativeMatrixKHR-10163]]
For code:OpTypeCooperativeMatrixKHR,
ifdef::VK_NV_cooperative_matrix2[]
if <<features-cooperativeMatrixFlexibleDimensions,
pname:cooperativeMatrixFlexibleDimensions>> is not enabled,
endif::VK_NV_cooperative_matrix2[]
the component type, scope, number of rows, and number of columns must:
match one of the matrices in any of the supported
slink:VkCooperativeMatrixPropertiesKHR, where
** for code:Use of code:MatrixA, the number of rows must match
slink:VkCooperativeMatrixPropertiesKHR::pname:MSize and the number of
columns must match slink:VkCooperativeMatrixPropertiesKHR::pname:KSize
and the type must: match
slink:VkCooperativeMatrixPropertiesKHR::pname:AType
** for code:Use of code:MatrixB, the number of rows must match
slink:VkCooperativeMatrixPropertiesKHR::pname:KSize and the number of
columns must match slink:VkCooperativeMatrixPropertiesKHR::pname:NSize
and the type must: match
slink:VkCooperativeMatrixPropertiesKHR::pname:BType
** for code:Use of code:MatrixAccumulator, the number of rows must match
slink:VkCooperativeMatrixPropertiesKHR::pname:MSize and the number of
columns must match slink:VkCooperativeMatrixPropertiesKHR::pname:NSize
and the type must: match
slink:VkCooperativeMatrixPropertiesKHR::pname:CType or
slink:VkCooperativeMatrixPropertiesKHR::pname:ResultType
* [[VUID-{refpage}-OpCooperativeMatrixMulAddKHR-10060]]
For code:OpCooperativeMatrixMulAddKHR, the operands must: match a
supported slink:VkCooperativeMatrixPropertiesKHR, such that:
For code:OpCooperativeMatrixMulAddKHR,
ifdef::VK_NV_cooperative_matrix2[]
if <<features-cooperativeMatrixFlexibleDimensions,
pname:cooperativeMatrixFlexibleDimensions>> is not enabled,
endif::VK_NV_cooperative_matrix2[]
the operands must: match a supported
slink:VkCooperativeMatrixPropertiesKHR, such that:
** The type of code:A must: have code:Rows match
slink:VkCooperativeMatrixPropertiesKHR::pname:MSize, code:Columns match
slink:VkCooperativeMatrixPropertiesKHR::pname:KSize, code:Use be
Expand Down Expand Up @@ -1370,8 +1396,113 @@ ifdef::VK_KHR_cooperative_matrix[]
** If and only if
slink:VkCooperativeMatrixPropertiesKHR::pname:saturatingAccumulation is
ename:VK_FALSE, code:SaturatingAccumulationKHR must: not be used.
** The scope of all cooperative matrix operands must: be
elink:VkScopeKHR::ename:VK_SCOPE_SUBGROUP_KHR
** The scope of all cooperative matrix operands must: match
slink:VkCooperativeMatrixPropertiesKHR::pname:scope.
ifdef::VK_NV_cooperative_matrix2[]
* [[VUID-{refpage}-cooperativeMatrixWorkgroupScope-10164]]
If <<features-cooperativeMatrixWorkgroupScope,
pname:cooperativeMatrixWorkgroupScope>> is not enabled, the scope of all
code:OpTypeCooperativeMatrixKHR must: not be
elink:VkScopeKHR::ename:VK_SCOPE_WORKGROUP_KHR
* [[VUID-{refpage}-cooperativeMatrixFlexibleDimensions-10165]]
For code:OpTypeCooperativeMatrixKHR, if
<<features-cooperativeMatrixFlexibleDimensions,
pname:cooperativeMatrixFlexibleDimensions>> is enabled, the component
type, scope, number of rows, and number of columns must: match either
one of the matrices in one of the supported
slink:VkCooperativeMatrixPropertiesKHR as described above, or one of the
supported slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV, where
** for code:MatrixA, the number of rows must be a multiple of
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:MGranularity
and the number of columns must be a multiple of
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:KGranularity
and the type must: match
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:AType
** for code:MatrixB, the number of rows must be a multiple of
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:KGranularity
and the number of columns must be a multiple of
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:NGranularity
and the type must: match
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:BType
** for code:MatrixAccumulator, the number of rows must be a multiple of
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:MGranularity
and the number of columns must be a multiple of
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:NGranularity
and the type must: match
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:CType or
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:ResultType
** if the scope is ename:VK_SCOPE_WORKGROUP_KHR, the number of invocations
in the local workgroup must: match
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:workgroupInvocations
* [[VUID-{refpage}-cooperativeMatrixFlexibleDimensions-10166]]
For code:OpCooperativeMatrixMulAddKHR, if
<<features-cooperativeMatrixFlexibleDimensions,
pname:cooperativeMatrixFlexibleDimensions>> is enabled, the operands
must: match either one of the supported
slink:VkCooperativeMatrixPropertiesKHR as described above, or one of the
supported slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV, such
that:
** The type of code:A must: have code:Rows be a multiple of
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:MGranularity,
code:Columns be a multiple of
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:KGranularity,
code:Use be code:MatrixAKHR, and code:ComponentType match
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:AType.
** The type of code:B must: have code:Rows be a multiple of
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:KGranularity,
code:Columns be a multiple of
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:NGranularity,
code:Use be code:MatrixBKHR, and code:ComponentType match
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:BType.
** The type of code:C must: have code:Rows be a multiple of
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:MGranularity,
code:Columns be a multiple of
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:NGranularity,
code:Use be code:MatrixAccumulatorKHR, and code:ComponentType match
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:CType.
** The type of code:Result must: have code:Rows be a multiple of
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:MGranularity,
code:Columns be a multiple of
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:NGranularity,
code:Use be code:MatrixAccumulatorKHR, and code:ComponentType match
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:ResultType.
** If and only if
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:AType is
a signed integer type, code:MatrixASignedComponents must: be used.
** If and only if
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:BType is
a signed integer type, code:MatrixBSignedComponents must: be used.
** If and only if
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:CType is
a signed integer type, code:MatrixCSignedComponents must: be used.
** If and only if
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:ResultType
is a signed integer type, code:MatrixResultSignedComponents must: be
used.
** If and only if
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:saturatingAccumulation
is ename:VK_TRUE, code:SaturatingAccumulationKHR must: be used.
** If and only if
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:saturatingAccumulation
is ename:VK_FALSE, code:SaturatingAccumulationKHR must: not be used.
** The scope of all cooperative matrix operands must: match
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:scope.
** If the scope is ename:VK_SCOPE_WORKGROUP_KHR, the number of invocations
in the local workgroup must: match
slink:VkCooperativeMatrixFlexibleDimensionsPropertiesNV::pname:workgroupInvocations
* [[VUID-{refpage}-cooperativeMatrixFlexibleDimensionsMaxDimension-10167]]
All code:OpTypeCooperativeMatrixKHR dimensions must: be less than or
equal to
<<limits-cooperativeMatrixFlexibleDimensionsMaxDimension,pname:cooperativeMatrixFlexibleDimensionsMaxDimension>>
* [[VUID-{refpage}-maxComputeSharedMemorySize-10168]]
If the module uses code:OpTypeCooperativeMatrixKHR with code:Scope equal
to code:Workgroup, the sum of size in bytes for variables and
<<workgroup-padding, padding>> in the code:Workgroup {StorageClass} in
the code:GLCompute {ExecutionModel} must: be less than or equal to
<<limits-maxComputeSharedMemorySize, pname:maxComputeSharedMemorySize>>
minus
<<limits-cooperativeMatrixWorkgroupScopeReservedSharedMemory,pname:cooperativeMatrixWorkgroupScopeReservedSharedMemory>>
endif::VK_NV_cooperative_matrix2[]
* [[VUID-{refpage}-cooperativeMatrixSupportedStages-08985]]
code:OpTypeCooperativeMatrixKHR and code:OpCooperativeMatrix*
instructions must: not be used in shader stages not included in
Expand Down Expand Up @@ -2317,6 +2448,10 @@ endif::VK_KHR_cooperative_matrix[]
ifdef::VK_NV_cooperative_matrix[]
code:OpCooperativeMatrixLoadNV, code:OpCooperativeMatrixStoreNV,
endif::VK_NV_cooperative_matrix[]
ifdef::VK_NV_cooperative_matrix2[]
code:OpCooperativeMatrixLoadTensorNV,
code:OpCooperativeMatrixStoreTensorNV,
endif::VK_NV_cooperative_matrix2[]
code:OpAtomicLoad, code:OpAtomicStore, code:OpAtomicExchange,
code:OpStore, and code:OpLoad are referred to as _bit-preserving
operations_.
Expand Down
2 changes: 1 addition & 1 deletion chapters/VK_EXT_opacity_micromap/micromaps.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -667,7 +667,7 @@ include::{generated}/api/protos/vkCmdCopyMemoryToMicromapEXT.adoc[]

* pname:commandBuffer is the command buffer into which the command will be
recorded.
* pname:pInfo is a pointer to a slink:VkCopyMicromapToMemoryInfoEXT
* pname:pInfo is a pointer to a slink:VkCopyMemoryToMicromapInfoEXT
structure defining the copy operation.

Accesses to pname:pInfo->dst must: be <<synchronization-dependencies,
Expand Down
5 changes: 1 addition & 4 deletions chapters/VK_KHR_swapchain/wsi.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -403,11 +403,8 @@ ifdef::VK_EXT_swapchain_maintenance1[]
If the <<features-swapchainMaintenance1,pname:swapchainMaintenance1>>
feature is not enabled, then the pname:pNext chain must: not include a
slink:VkSwapchainPresentModesCreateInfoEXT structure
* [[VUID-VkSwapchainCreateInfoKHR-swapchainMaintenance1-10156]]
If the <<features-swapchainMaintenance1,pname:swapchainMaintenance1>>
feature is not enabled, then the pname:pNext chain must: not include a
slink:VkSwapchainPresentScalingCreateInfoEXT structure
endif::VK_EXT_swapchain_maintenance1[]
* [[VUID-VkSwapchainCreateInfoKHR-presentMode-02839]]
ifdef::VK_KHR_shared_presentable_image[]
If pname:presentMode is not
ename:VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR nor
Expand Down
20 changes: 0 additions & 20 deletions chapters/VK_NV_mesh_shader/drawing.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -165,16 +165,6 @@ include::{chapters}/commonvalidity/draw_indirect_count_common.adoc[]
[eq]#(pname:stride {times} (pname:maxDrawCount - 1) {plus} pname:offset
{plus} code:sizeof(sname:VkDrawMeshTasksIndirectCommandNV))# must: be
less than or equal to the size of pname:buffer
* [[VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02191]]
If the count stored in pname:countBuffer is equal to `1`,
[eq]#(pname:offset {plus}
code:sizeof(sname:VkDrawMeshTasksIndirectCommandNV))# must: be less than
or equal to the size of pname:buffer
* [[VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02192]]
If the count stored in pname:countBuffer is greater than `1`,
[eq]#(pname:stride {times} (pname:drawCount - 1) {plus} pname:offset
{plus} code:sizeof(sname:VkDrawMeshTasksIndirectCommandNV))# must: be
less than or equal to the size of pname:buffer
* [[VUID-vkCmdDrawMeshTasksIndirectCountNV-MeshNV-07082]]
The current pipeline bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS
must: contain a shader stage using the code:MeshNV {ExecutionModel}
Expand Down Expand Up @@ -343,16 +333,6 @@ include::{chapters}/commonvalidity/draw_indirect_count_common.adoc[]
[eq]#(pname:stride {times} (pname:maxDrawCount - 1) {plus} pname:offset
{plus} code:sizeof(sname:VkDrawMeshTasksIndirectCommandEXT))# must: be
less than or equal to the size of pname:buffer
* [[VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-07098]]
If the count stored in pname:countBuffer is equal to `1`,
[eq]#(pname:offset {plus}
code:sizeof(sname:VkDrawMeshTasksIndirectCommandEXT))# must: be less
than or equal to the size of pname:buffer
* [[VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-07099]]
If the count stored in pname:countBuffer is greater than `1`,
[eq]#(pname:stride {times} (pname:drawCount - 1) {plus} pname:offset
{plus} code:sizeof(sname:VkDrawMeshTasksIndirectCommandEXT))# must: be
less than or equal to the size of pname:buffer
* [[VUID-vkCmdDrawMeshTasksIndirectCountEXT-MeshEXT-07100]]
The current pipeline bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS
must: contain a shader stage using the code:MeshEXT {ExecutionModel}
Expand Down
Loading

0 comments on commit c9304f8

Please sign in to comment.