summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--include/vulkan/vulkan.hpp60
-rw-r--r--include/vulkan/vulkan_core.h22
-rw-r--r--include/vulkan/vulkan_enums.hpp6
-rw-r--r--include/vulkan/vulkan_extension_inspection.hpp8
-rw-r--r--include/vulkan/vulkan_funcs.hpp10
-rw-r--r--include/vulkan/vulkan_handles.hpp9
-rw-r--r--include/vulkan/vulkan_hash.hpp14
-rw-r--r--include/vulkan/vulkan_raii.hpp22
-rw-r--r--include/vulkan/vulkan_static_assertions.hpp10
-rw-r--r--include/vulkan/vulkan_structs.hpp102
-rw-r--r--include/vulkan/vulkan_to_string.hpp2
-rw-r--r--registry/validusage.json2304
-rw-r--r--registry/vk.xml40
13 files changed, 1528 insertions, 1081 deletions
diff --git a/include/vulkan/vulkan.hpp b/include/vulkan/vulkan.hpp
index b6a0705..21d280d 100644
--- a/include/vulkan/vulkan.hpp
+++ b/include/vulkan/vulkan.hpp
@@ -114,7 +114,7 @@ extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE h
# include <span>
#endif
-static_assert( VK_HEADER_VERSION == 249, "Wrong VK_HEADER_VERSION!" );
+static_assert( VK_HEADER_VERSION == 250, "Wrong VK_HEADER_VERSION!" );
// 32-bit vulkan is not typesafe for non-dispatchable handles, so don't allow copy constructors on this platform by default.
// To enable this feature on 32-bit platforms please define VULKAN_HPP_TYPESAFE_CONVERSION
@@ -5895,6 +5895,13 @@ namespace VULKAN_HPP_NAMESPACE
{
return ::vkGetDynamicRenderingTilePropertiesQCOM( device, pRenderingInfo, pProperties );
}
+
+ //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
+
+ void vkCmdSetAttachmentFeedbackLoopEnableEXT( VkCommandBuffer commandBuffer, VkImageAspectFlags aspectMask ) const VULKAN_HPP_NOEXCEPT
+ {
+ return ::vkCmdSetAttachmentFeedbackLoopEnableEXT( commandBuffer, aspectMask );
+ }
};
#endif
@@ -5994,6 +6001,10 @@ namespace VULKAN_HPP_NAMESPACE
{
return m_allocationCallbacks;
}
+ Dispatch const & getDispatch() const VULKAN_HPP_NOEXCEPT
+ {
+ return *m_dispatch;
+ }
protected:
template <typename T>
@@ -6028,6 +6039,10 @@ namespace VULKAN_HPP_NAMESPACE
{
return m_allocationCallbacks;
}
+ Dispatch const & getDispatch() const VULKAN_HPP_NOEXCEPT
+ {
+ return *m_dispatch;
+ }
protected:
template <typename T>
@@ -6067,6 +6082,11 @@ namespace VULKAN_HPP_NAMESPACE
return m_allocationCallbacks;
}
+ Dispatch const & getDispatch() const VULKAN_HPP_NOEXCEPT
+ {
+ return *m_dispatch;
+ }
+
protected:
template <typename T>
void destroy( T t ) VULKAN_HPP_NOEXCEPT
@@ -6098,6 +6118,11 @@ namespace VULKAN_HPP_NAMESPACE
return m_owner;
}
+ Dispatch const & getDispatch() const VULKAN_HPP_NOEXCEPT
+ {
+ return *m_dispatch;
+ }
+
protected:
template <typename T>
void destroy( T t ) VULKAN_HPP_NOEXCEPT
@@ -6132,6 +6157,10 @@ namespace VULKAN_HPP_NAMESPACE
{
return m_pool;
}
+ Dispatch const & getDispatch() const VULKAN_HPP_NOEXCEPT
+ {
+ return *m_dispatch;
+ }
protected:
template <typename T>
@@ -12698,6 +12727,24 @@ namespace VULKAN_HPP_NAMESPACE
};
};
+ //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
+ template <>
+ struct StructExtends<PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT, PhysicalDeviceFeatures2>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+ template <>
+ struct StructExtends<PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT, DeviceCreateInfo>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+
#endif // VULKAN_HPP_DISABLE_ENHANCED_MODE
#if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
@@ -13843,6 +13890,9 @@ namespace VULKAN_HPP_NAMESPACE
PFN_vkGetFramebufferTilePropertiesQCOM vkGetFramebufferTilePropertiesQCOM = 0;
PFN_vkGetDynamicRenderingTilePropertiesQCOM vkGetDynamicRenderingTilePropertiesQCOM = 0;
+ //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
+ PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT vkCmdSetAttachmentFeedbackLoopEnableEXT = 0;
+
public:
DispatchLoaderDynamic() VULKAN_HPP_NOEXCEPT = default;
DispatchLoaderDynamic( DispatchLoaderDynamic const & rhs ) VULKAN_HPP_NOEXCEPT = default;
@@ -15131,6 +15181,10 @@ namespace VULKAN_HPP_NAMESPACE
vkGetFramebufferTilePropertiesQCOM = PFN_vkGetFramebufferTilePropertiesQCOM( vkGetInstanceProcAddr( instance, "vkGetFramebufferTilePropertiesQCOM" ) );
vkGetDynamicRenderingTilePropertiesQCOM =
PFN_vkGetDynamicRenderingTilePropertiesQCOM( vkGetInstanceProcAddr( instance, "vkGetDynamicRenderingTilePropertiesQCOM" ) );
+
+ //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
+ vkCmdSetAttachmentFeedbackLoopEnableEXT =
+ PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetAttachmentFeedbackLoopEnableEXT" ) );
}
void init( VULKAN_HPP_NAMESPACE::Device deviceCpp ) VULKAN_HPP_NOEXCEPT
@@ -16088,6 +16142,10 @@ namespace VULKAN_HPP_NAMESPACE
vkGetFramebufferTilePropertiesQCOM = PFN_vkGetFramebufferTilePropertiesQCOM( vkGetDeviceProcAddr( device, "vkGetFramebufferTilePropertiesQCOM" ) );
vkGetDynamicRenderingTilePropertiesQCOM =
PFN_vkGetDynamicRenderingTilePropertiesQCOM( vkGetDeviceProcAddr( device, "vkGetDynamicRenderingTilePropertiesQCOM" ) );
+
+ //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
+ vkCmdSetAttachmentFeedbackLoopEnableEXT =
+ PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetAttachmentFeedbackLoopEnableEXT" ) );
}
template <typename DynamicLoader>
diff --git a/include/vulkan/vulkan_core.h b/include/vulkan/vulkan_core.h
index 22cb091..a2e7ed3 100644
--- a/include/vulkan/vulkan_core.h
+++ b/include/vulkan/vulkan_core.h
@@ -68,7 +68,7 @@ extern "C" {
#define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
// Version of this file
-#define VK_HEADER_VERSION 249
+#define VK_HEADER_VERSION 250
// Complete version of this file
#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION)
@@ -1020,6 +1020,7 @@ typedef enum VkStructureType {
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM = 1000510000,
VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM = 1000510001,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT = 1000524000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
@@ -1872,6 +1873,7 @@ typedef enum VkDynamicState {
VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030,
VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031,
VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032,
+ VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT = 1000524000,
VK_DYNAMIC_STATE_CULL_MODE_EXT = VK_DYNAMIC_STATE_CULL_MODE,
VK_DYNAMIC_STATE_FRONT_FACE_EXT = VK_DYNAMIC_STATE_FRONT_FACE,
VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY,
@@ -16682,6 +16684,24 @@ typedef struct VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {
+#define VK_EXT_attachment_feedback_loop_dynamic_state 1
+#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION 1
+#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_dynamic_state"
+typedef struct VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {
+ VkStructureType sType;
+ void* pNext;
+ VkBool32 attachmentFeedbackLoopDynamicState;
+} VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
+
+typedef void (VKAPI_PTR *PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)(VkCommandBuffer commandBuffer, VkImageAspectFlags aspectMask);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR void VKAPI_CALL vkCmdSetAttachmentFeedbackLoopEnableEXT(
+ VkCommandBuffer commandBuffer,
+ VkImageAspectFlags aspectMask);
+#endif
+
+
#define VK_KHR_acceleration_structure 1
#define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13
#define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure"
diff --git a/include/vulkan/vulkan_enums.hpp b/include/vulkan/vulkan_enums.hpp
index 42af052..70523a6 100644
--- a/include/vulkan/vulkan_enums.hpp
+++ b/include/vulkan/vulkan_enums.hpp
@@ -1076,7 +1076,8 @@ namespace VULKAN_HPP_NAMESPACE
ePhysicalDeviceShaderCoreBuiltinsPropertiesARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM,
ePhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT,
ePhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM,
- eMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM = VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM
+ eMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM = VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM,
+ ePhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT
};
enum class PipelineCacheHeaderVersion
@@ -2450,7 +2451,8 @@ namespace VULKAN_HPP_NAMESPACE
eCoverageModulationTableNV = VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV,
eShadingRateImageEnableNV = VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV,
eRepresentativeFragmentTestEnableNV = VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV,
- eCoverageReductionModeNV = VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV
+ eCoverageReductionModeNV = VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV,
+ eAttachmentFeedbackLoopEnableEXT = VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT
};
enum class FrontFace
diff --git a/include/vulkan/vulkan_extension_inspection.hpp b/include/vulkan/vulkan_extension_inspection.hpp
index 7d867d0..e8b4c9d 100644
--- a/include/vulkan/vulkan_extension_inspection.hpp
+++ b/include/vulkan/vulkan_extension_inspection.hpp
@@ -384,7 +384,8 @@ namespace VULKAN_HPP_NAMESPACE
"VK_EXT_mutable_descriptor_type",
"VK_ARM_shader_core_builtins",
"VK_EXT_pipeline_library_group_handles",
-"VK_QCOM_multiview_per_view_render_areas" };
+"VK_QCOM_multiview_per_view_render_areas",
+"VK_EXT_attachment_feedback_loop_dynamic_state" };
return deviceExtensions;
}
@@ -767,7 +768,8 @@ namespace VULKAN_HPP_NAMESPACE
{ "VK_NV_ray_tracing_invocation_reorder", { { "VK_VERSION_1_0", { "VK_KHR_ray_tracing_pipeline" } } } },
{ "VK_EXT_mutable_descriptor_type", { { "VK_VERSION_1_0", { "VK_KHR_maintenance3" } } } },
{ "VK_ARM_shader_core_builtins", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-{ "VK_EXT_pipeline_library_group_handles", { { "VK_VERSION_1_0", { "VK_KHR_ray_tracing_pipeline", "VK_KHR_pipeline_library" } } } } };
+{ "VK_EXT_pipeline_library_group_handles", { { "VK_VERSION_1_0", { "VK_KHR_ray_tracing_pipeline", "VK_KHR_pipeline_library" } } } },
+{ "VK_EXT_attachment_feedback_loop_dynamic_state", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2", "VK_EXT_attachment_feedback_loop_layout" } } } } };
auto depIt = dependencies.find( extension );
return ( depIt != dependencies.end() ) ? depIt->second : noDependencies;
}
@@ -1472,7 +1474,7 @@ namespace VULKAN_HPP_NAMESPACE
( extension == "VK_SEC_amigo_profiling" ) || ( extension == "VK_QCOM_multiview_per_view_viewports" ) ||
( extension == "VK_NV_ray_tracing_invocation_reorder" ) || ( extension == "VK_EXT_mutable_descriptor_type" ) ||
( extension == "VK_ARM_shader_core_builtins" ) || ( extension == "VK_EXT_pipeline_library_group_handles" ) ||
- ( extension == "VK_QCOM_multiview_per_view_render_areas" );
+ ( extension == "VK_QCOM_multiview_per_view_render_areas" ) || ( extension == "VK_EXT_attachment_feedback_loop_dynamic_state" );
}
VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 bool isInstanceExtension( std::string const & extension )
diff --git a/include/vulkan/vulkan_funcs.hpp b/include/vulkan/vulkan_funcs.hpp
index 05b472c..3f47e10 100644
--- a/include/vulkan/vulkan_funcs.hpp
+++ b/include/vulkan/vulkan_funcs.hpp
@@ -21935,5 +21935,15 @@ namespace VULKAN_HPP_NAMESPACE
}
#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+ //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
+
+ template <typename Dispatch>
+ VULKAN_HPP_INLINE void CommandBuffer::setAttachmentFeedbackLoopEnableEXT( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask,
+ Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+ {
+ VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+ d.vkCmdSetAttachmentFeedbackLoopEnableEXT( m_commandBuffer, static_cast<VkImageAspectFlags>( aspectMask ) );
+ }
+
} // namespace VULKAN_HPP_NAMESPACE
#endif
diff --git a/include/vulkan/vulkan_handles.hpp b/include/vulkan/vulkan_handles.hpp
index c9861b6..ca79928 100644
--- a/include/vulkan/vulkan_handles.hpp
+++ b/include/vulkan/vulkan_handles.hpp
@@ -1599,6 +1599,9 @@ namespace VULKAN_HPP_NAMESPACE
struct PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
struct MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
+ //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
+ struct PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
+
//===================================
//=== HANDLE forward declarations ===
//===================================
@@ -6096,6 +6099,12 @@ namespace VULKAN_HPP_NAMESPACE
Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS;
#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+ //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
+
+ template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+ void setAttachmentFeedbackLoopEnableEXT( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask,
+ Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+
operator VkCommandBuffer() const VULKAN_HPP_NOEXCEPT
{
return m_commandBuffer;
diff --git a/include/vulkan/vulkan_hash.hpp b/include/vulkan/vulkan_hash.hpp
index 374e230..2c06c67 100644
--- a/include/vulkan/vulkan_hash.hpp
+++ b/include/vulkan/vulkan_hash.hpp
@@ -6809,6 +6809,20 @@ namespace std
};
template <>
+ struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT>
+ {
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const &
+ physicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
+ {
+ std::size_t seed = 0;
+ VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT.sType );
+ VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT.pNext );
+ VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT.attachmentFeedbackLoopDynamicState );
+ return seed;
+ }
+ };
+
+ template <>
struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT>
{
std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const &
diff --git a/include/vulkan/vulkan_raii.hpp b/include/vulkan/vulkan_raii.hpp
index 8174be5..39cc4f9 100644
--- a/include/vulkan/vulkan_raii.hpp
+++ b/include/vulkan/vulkan_raii.hpp
@@ -1603,6 +1603,10 @@ namespace VULKAN_HPP_NAMESPACE
vkGetFramebufferTilePropertiesQCOM = PFN_vkGetFramebufferTilePropertiesQCOM( vkGetDeviceProcAddr( device, "vkGetFramebufferTilePropertiesQCOM" ) );
vkGetDynamicRenderingTilePropertiesQCOM =
PFN_vkGetDynamicRenderingTilePropertiesQCOM( vkGetDeviceProcAddr( device, "vkGetDynamicRenderingTilePropertiesQCOM" ) );
+
+ //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
+ vkCmdSetAttachmentFeedbackLoopEnableEXT =
+ PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetAttachmentFeedbackLoopEnableEXT" ) );
}
public:
@@ -2399,6 +2403,9 @@ namespace VULKAN_HPP_NAMESPACE
//=== VK_QCOM_tile_properties ===
PFN_vkGetFramebufferTilePropertiesQCOM vkGetFramebufferTilePropertiesQCOM = 0;
PFN_vkGetDynamicRenderingTilePropertiesQCOM vkGetDynamicRenderingTilePropertiesQCOM = 0;
+
+ //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
+ PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT vkCmdSetAttachmentFeedbackLoopEnableEXT = 0;
};
//========================================
@@ -5889,6 +5896,10 @@ namespace VULKAN_HPP_NAMESPACE
void bindShadersEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderStageFlagBits> const & stages,
VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderEXT> const & shaders ) const;
+ //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
+
+ void setAttachmentFeedbackLoopEnableEXT( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask ) const VULKAN_HPP_NOEXCEPT;
+
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::CommandPool m_commandPool = {};
@@ -19984,6 +19995,17 @@ namespace VULKAN_HPP_NAMESPACE
return properties;
}
+ //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
+
+ VULKAN_HPP_INLINE void CommandBuffer::setAttachmentFeedbackLoopEnableEXT( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask ) const VULKAN_HPP_NOEXCEPT
+ {
+ VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetAttachmentFeedbackLoopEnableEXT &&
+ "Function <vkCmdSetAttachmentFeedbackLoopEnableEXT> requires <VK_EXT_attachment_feedback_loop_dynamic_state>" );
+
+ getDispatcher()->vkCmdSetAttachmentFeedbackLoopEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
+ static_cast<VkImageAspectFlags>( aspectMask ) );
+ }
+
} // namespace VULKAN_HPP_RAII_NAMESPACE
} // namespace VULKAN_HPP_NAMESPACE
#endif
diff --git a/include/vulkan/vulkan_static_assertions.hpp b/include/vulkan/vulkan_static_assertions.hpp
index f4c4ab1..630e43b 100644
--- a/include/vulkan/vulkan_static_assertions.hpp
+++ b/include/vulkan/vulkan_static_assertions.hpp
@@ -6497,4 +6497,14 @@ VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::Multivie
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM>::value,
"MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM is not nothrow_move_constructible!" );
+//=== VK_EXT_attachment_feedback_loop_dynamic_state ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT ) ==
+ sizeof( VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT ),
+ "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT>::value,
+ "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT>::value,
+ "PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT is not nothrow_move_constructible!" );
+
#endif
diff --git a/include/vulkan/vulkan_structs.hpp b/include/vulkan/vulkan_structs.hpp
index 8c78b2e..bbf4c4f 100644
--- a/include/vulkan/vulkan_structs.hpp
+++ b/include/vulkan/vulkan_structs.hpp
@@ -51549,6 +51549,108 @@ namespace VULKAN_HPP_NAMESPACE
using Type = PhysicalDeviceAmigoProfilingFeaturesSEC;
};
+ struct PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT
+ {
+ using NativeType = VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
+
+ static const bool allowDuplicate = false;
+ static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 attachmentFeedbackLoopDynamicState_ = {},
+ void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+ : pNext( pNext_ )
+ , attachmentFeedbackLoopDynamicState( attachmentFeedbackLoopDynamicState_ )
+ {
+ }
+
+ VULKAN_HPP_CONSTEXPR PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT( PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const & rhs )
+ VULKAN_HPP_NOEXCEPT = default;
+
+ PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT( VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ : PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT(
+ *reinterpret_cast<PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const *>( &rhs ) )
+ {
+ }
+
+ PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT &
+ operator=( PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+ PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT &
+ operator=( VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const *>( &rhs );
+ return *this;
+ }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+ VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT &
+ setAttachmentFeedbackLoopDynamicState( VULKAN_HPP_NAMESPACE::Bool32 attachmentFeedbackLoopDynamicState_ ) VULKAN_HPP_NOEXCEPT
+ {
+ attachmentFeedbackLoopDynamicState = attachmentFeedbackLoopDynamicState_;
+ return *this;
+ }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+ operator VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT *>( this );
+ }
+
+ operator VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT *>( this );
+ }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+# if 14 <= VULKAN_HPP_CPP_VERSION
+ auto
+# else
+ std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+# endif
+ reflect() const VULKAN_HPP_NOEXCEPT
+ {
+ return std::tie( sType, pNext, attachmentFeedbackLoopDynamicState );
+ }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const & ) const = default;
+#else
+ bool operator==( PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+# if defined( VULKAN_HPP_USE_REFLECT )
+ return this->reflect() == rhs.reflect();
+# else
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( attachmentFeedbackLoopDynamicState == rhs.attachmentFeedbackLoopDynamicState );
+# endif
+ }
+
+ bool operator!=( PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+#endif
+
+ public:
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
+ void * pNext = {};
+ VULKAN_HPP_NAMESPACE::Bool32 attachmentFeedbackLoopDynamicState = {};
+ };
+
+ template <>
+ struct CppType<StructureType, StructureType::ePhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT>
+ {
+ using Type = PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
+ };
+
struct PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT
{
using NativeType = VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
diff --git a/include/vulkan/vulkan_to_string.hpp b/include/vulkan/vulkan_to_string.hpp
index b543145..1770b52 100644
--- a/include/vulkan/vulkan_to_string.hpp
+++ b/include/vulkan/vulkan_to_string.hpp
@@ -4129,6 +4129,7 @@ namespace VULKAN_HPP_NAMESPACE
case StructureType::ePhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT: return "PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT";
case StructureType::ePhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM: return "PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM";
case StructureType::eMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM: return "MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM";
+ case StructureType::ePhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT: return "PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT";
default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
}
}
@@ -5221,6 +5222,7 @@ namespace VULKAN_HPP_NAMESPACE
case DynamicState::eShadingRateImageEnableNV: return "ShadingRateImageEnableNV";
case DynamicState::eRepresentativeFragmentTestEnableNV: return "RepresentativeFragmentTestEnableNV";
case DynamicState::eCoverageReductionModeNV: return "CoverageReductionModeNV";
+ case DynamicState::eAttachmentFeedbackLoopEnableEXT: return "AttachmentFeedbackLoopEnableEXT";
default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
}
}
diff --git a/registry/validusage.json b/registry/validusage.json
index e21e77b..5a01100 100644
--- a/registry/validusage.json
+++ b/registry/validusage.json
@@ -1,9 +1,9 @@
{
"version info": {
"schema version": 2,
- "api version": "1.3.249",
- "comment": "from git branch: github-main commit: 58e747b4b453a787c1043f30fbf6669b3ba29e0e",
- "date": "2023-04-27 09:47:27Z"
+ "api version": "1.3.250",
+ "comment": "from git branch: github-main commit: 8f2ca84561db97d13717827dc26d600e1c2ac719",
+ "date": "2023-05-04 07:48:43Z"
},
"validation": {
"vkGetInstanceProcAddr": {
@@ -738,7 +738,7 @@
},
{
"vuid": "VUID-VkDeviceCreateInfo-pNext-pNext",
- "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceDeviceMemoryReportCreateInfoEXT\">VkDeviceDeviceMemoryReportCreateInfoEXT</a>, <a href=\"#VkDeviceDiagnosticsConfigCreateInfoNV\">VkDeviceDiagnosticsConfigCreateInfoNV</a>, <a href=\"#VkDeviceGroupDeviceCreateInfo\">VkDeviceGroupDeviceCreateInfo</a>, <a href=\"#VkDeviceMemoryOverallocationCreateInfoAMD\">VkDeviceMemoryOverallocationCreateInfoAMD</a>, <a href=\"#VkDevicePrivateDataCreateInfo\">VkDevicePrivateDataCreateInfo</a>, <a href=\"#VkPhysicalDevice16BitStorageFeatures\">VkPhysicalDevice16BitStorageFeatures</a>, <a href=\"#VkPhysicalDevice4444FormatsFeaturesEXT\">VkPhysicalDevice4444FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDevice8BitStorageFeatures\">VkPhysicalDevice8BitStorageFeatures</a>, <a href=\"#VkPhysicalDeviceASTCDecodeFeaturesEXT\">VkPhysicalDeviceASTCDecodeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAccelerationStructureFeaturesKHR\">VkPhysicalDeviceAccelerationStructureFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceAddressBindingReportFeaturesEXT\">VkPhysicalDeviceAddressBindingReportFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAmigoProfilingFeaturesSEC\">VkPhysicalDeviceAmigoProfilingFeaturesSEC</a>, <a href=\"#VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT\">VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT\">VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBorderColorSwizzleFeaturesEXT\">VkPhysicalDeviceBorderColorSwizzleFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeatures\">VkPhysicalDeviceBufferDeviceAddressFeatures</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeaturesEXT\">VkPhysicalDeviceBufferDeviceAddressFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI\">VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceCoherentMemoryFeaturesAMD\">VkPhysicalDeviceCoherentMemoryFeaturesAMD</a>, <a href=\"#VkPhysicalDeviceColorWriteEnableFeaturesEXT\">VkPhysicalDeviceColorWriteEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceComputeShaderDerivativesFeaturesNV\">VkPhysicalDeviceComputeShaderDerivativesFeaturesNV</a>, <a href=\"#VkPhysicalDeviceConditionalRenderingFeaturesEXT\">VkPhysicalDeviceConditionalRenderingFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixFeaturesNV\">VkPhysicalDeviceCooperativeMatrixFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCopyMemoryIndirectFeaturesNV\">VkPhysicalDeviceCopyMemoryIndirectFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCornerSampledImageFeaturesNV\">VkPhysicalDeviceCornerSampledImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCoverageReductionModeFeaturesNV\">VkPhysicalDeviceCoverageReductionModeFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorFeaturesEXT\">VkPhysicalDeviceCustomBorderColorFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV\">VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDepthClampZeroOneFeaturesEXT\">VkPhysicalDeviceDepthClampZeroOneFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClipControlFeaturesEXT\">VkPhysicalDeviceDepthClipControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClipEnableFeaturesEXT\">VkPhysicalDeviceDepthClipEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferFeaturesEXT\">VkPhysicalDeviceDescriptorBufferFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>, <a href=\"#VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE\">VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV\">VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDeviceMemoryReportFeaturesEXT\">VkPhysicalDeviceDeviceMemoryReportFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDiagnosticsConfigFeaturesNV\">VkPhysicalDeviceDiagnosticsConfigFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDisplacementMicromapFeaturesNV\">VkPhysicalDeviceDisplacementMicromapFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDynamicRenderingFeatures\">VkPhysicalDeviceDynamicRenderingFeatures</a>, <a href=\"#VkPhysicalDeviceExclusiveScissorFeaturesNV\">VkPhysicalDeviceExclusiveScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState2FeaturesEXT\">VkPhysicalDeviceExtendedDynamicState2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState3FeaturesEXT\">VkPhysicalDeviceExtendedDynamicState3FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicStateFeaturesEXT\">VkPhysicalDeviceExtendedDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExternalMemoryRDMAFeaturesNV\">VkPhysicalDeviceExternalMemoryRDMAFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFaultFeaturesEXT\">VkPhysicalDeviceFaultFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFeatures2\">VkPhysicalDeviceFeatures2</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMap2FeaturesEXT\">VkPhysicalDeviceFragmentDensityMap2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapFeaturesEXT\">VkPhysicalDeviceFragmentDensityMapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM\">VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR\">VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT\">VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV\">VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateFeaturesKHR\">VkPhysicalDeviceFragmentShadingRateFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR\">VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT\">VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceHostQueryResetFeatures\">VkPhysicalDeviceHostQueryResetFeatures</a>, <a href=\"#VkPhysicalDeviceImage2DViewOf3DFeaturesEXT\">VkPhysicalDeviceImage2DViewOf3DFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageCompressionControlFeaturesEXT\">VkPhysicalDeviceImageCompressionControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT\">VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageProcessingFeaturesQCOM\">VkPhysicalDeviceImageProcessingFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceImageRobustnessFeatures\">VkPhysicalDeviceImageRobustnessFeatures</a>, <a href=\"#VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT\">VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageViewMinLodFeaturesEXT\">VkPhysicalDeviceImageViewMinLodFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImagelessFramebufferFeatures\">VkPhysicalDeviceImagelessFramebufferFeatures</a>, <a href=\"#VkPhysicalDeviceIndexTypeUint8FeaturesEXT\">VkPhysicalDeviceIndexTypeUint8FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceInheritedViewportScissorFeaturesNV\">VkPhysicalDeviceInheritedViewportScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockFeatures\">VkPhysicalDeviceInlineUniformBlockFeatures</a>, <a href=\"#VkPhysicalDeviceInvocationMaskFeaturesHUAWEI\">VkPhysicalDeviceInvocationMaskFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceLegacyDitheringFeaturesEXT\">VkPhysicalDeviceLegacyDitheringFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceLineRasterizationFeaturesEXT\">VkPhysicalDeviceLineRasterizationFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceLinearColorAttachmentFeaturesNV\">VkPhysicalDeviceLinearColorAttachmentFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMaintenance4Features\">VkPhysicalDeviceMaintenance4Features</a>, <a href=\"#VkPhysicalDeviceMemoryDecompressionFeaturesNV\">VkPhysicalDeviceMemoryDecompressionFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMemoryPriorityFeaturesEXT\">VkPhysicalDeviceMemoryPriorityFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderFeaturesEXT\">VkPhysicalDeviceMeshShaderFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderFeaturesNV\">VkPhysicalDeviceMeshShaderFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMultiDrawFeaturesEXT\">VkPhysicalDeviceMultiDrawFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT\">VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMultiviewFeatures\">VkPhysicalDeviceMultiviewFeatures</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM\">VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM\">VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT\">VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT\">VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceOpacityMicromapFeaturesEXT\">VkPhysicalDeviceOpacityMicromapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceOpticalFlowFeaturesNV\">VkPhysicalDeviceOpticalFlowFeaturesNV</a>, <a href=\"#VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT\">VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePerformanceQueryFeaturesKHR\">VkPhysicalDevicePerformanceQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePipelineCreationCacheControlFeatures\">VkPhysicalDevicePipelineCreationCacheControlFeatures</a>, <a href=\"#VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR\">VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT\">VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelinePropertiesFeaturesEXT\">VkPhysicalDevicePipelinePropertiesFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelineProtectedAccessFeaturesEXT\">VkPhysicalDevicePipelineProtectedAccessFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelineRobustnessFeaturesEXT\">VkPhysicalDevicePipelineRobustnessFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePresentBarrierFeaturesNV\">VkPhysicalDevicePresentBarrierFeaturesNV</a>, <a href=\"#VkPhysicalDevicePresentIdFeaturesKHR\">VkPhysicalDevicePresentIdFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePresentWaitFeaturesKHR\">VkPhysicalDevicePresentWaitFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT\">VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT\">VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePrivateDataFeatures\">VkPhysicalDevicePrivateDataFeatures</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryFeatures\">VkPhysicalDeviceProtectedMemoryFeatures</a>, <a href=\"#VkPhysicalDeviceProvokingVertexFeaturesEXT\">VkPhysicalDeviceProvokingVertexFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT\">VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT\">VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRayQueryFeaturesKHR\">VkPhysicalDeviceRayQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV\">VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR\">VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingMotionBlurFeaturesNV\">VkPhysicalDeviceRayTracingMotionBlurFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingPipelineFeaturesKHR\">VkPhysicalDeviceRayTracingPipelineFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR\">VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV\">VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRobustness2FeaturesEXT\">VkPhysicalDeviceRobustness2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerYcbcrConversionFeatures\">VkPhysicalDeviceSamplerYcbcrConversionFeatures</a>, <a href=\"#VkPhysicalDeviceScalarBlockLayoutFeatures\">VkPhysicalDeviceScalarBlockLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures\">VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT\">VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloatFeaturesEXT\">VkPhysicalDeviceShaderAtomicFloatFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderAtomicInt64Features\">VkPhysicalDeviceShaderAtomicInt64Features</a>, <a href=\"#VkPhysicalDeviceShaderClockFeaturesKHR\">VkPhysicalDeviceShaderClockFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM\">VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM</a>, <a href=\"#VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures\">VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures</a>, <a href=\"#VkPhysicalDeviceShaderDrawParametersFeatures\">VkPhysicalDeviceShaderDrawParametersFeatures</a>, <a href=\"#VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD\">VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD</a>, <a href=\"#VkPhysicalDeviceShaderFloat16Int8Features\">VkPhysicalDeviceShaderFloat16Int8Features</a>, <a href=\"#VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT\">VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderImageFootprintFeaturesNV\">VkPhysicalDeviceShaderImageFootprintFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderIntegerDotProductFeatures\">VkPhysicalDeviceShaderIntegerDotProductFeatures</a>, <a href=\"#VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL\">VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL</a>, <a href=\"#VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT\">VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderObjectFeaturesEXT\">VkPhysicalDeviceShaderObjectFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderSMBuiltinsFeaturesNV\">VkPhysicalDeviceShaderSMBuiltinsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures\">VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR\">VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderTerminateInvocationFeatures\">VkPhysicalDeviceShaderTerminateInvocationFeatures</a>, <a href=\"#VkPhysicalDeviceShaderTileImageFeaturesEXT\">VkPhysicalDeviceShaderTileImageFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShadingRateImageFeaturesNV\">VkPhysicalDeviceShadingRateImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlFeatures\">VkPhysicalDeviceSubgroupSizeControlFeatures</a>, <a href=\"#VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT\">VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSubpassShadingFeaturesHUAWEI\">VkPhysicalDeviceSubpassShadingFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT\">VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSynchronization2Features\">VkPhysicalDeviceSynchronization2Features</a>, <a href=\"#VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT\">VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceTextureCompressionASTCHDRFeatures\">VkPhysicalDeviceTextureCompressionASTCHDRFeatures</a>, <a href=\"#VkPhysicalDeviceTilePropertiesFeaturesQCOM\">VkPhysicalDeviceTilePropertiesFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreFeatures\">VkPhysicalDeviceTimelineSemaphoreFeatures</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackFeaturesEXT\">VkPhysicalDeviceTransformFeedbackFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceUniformBufferStandardLayoutFeatures\">VkPhysicalDeviceUniformBufferStandardLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceVariablePointersFeatures\">VkPhysicalDeviceVariablePointersFeatures</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT\">VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT\">VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceVulkan11Features\">VkPhysicalDeviceVulkan11Features</a>, <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a>, <a href=\"#VkPhysicalDeviceVulkan13Features\">VkPhysicalDeviceVulkan13Features</a>, <a href=\"#VkPhysicalDeviceVulkanMemoryModelFeatures\">VkPhysicalDeviceVulkanMemoryModelFeatures</a>, <a href=\"#VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR\">VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT\">VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceYcbcrImageArraysFeaturesEXT\">VkPhysicalDeviceYcbcrImageArraysFeaturesEXT</a>, or <a href=\"#VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures\">VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures</a>"
+ "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceDeviceMemoryReportCreateInfoEXT\">VkDeviceDeviceMemoryReportCreateInfoEXT</a>, <a href=\"#VkDeviceDiagnosticsConfigCreateInfoNV\">VkDeviceDiagnosticsConfigCreateInfoNV</a>, <a href=\"#VkDeviceGroupDeviceCreateInfo\">VkDeviceGroupDeviceCreateInfo</a>, <a href=\"#VkDeviceMemoryOverallocationCreateInfoAMD\">VkDeviceMemoryOverallocationCreateInfoAMD</a>, <a href=\"#VkDevicePrivateDataCreateInfo\">VkDevicePrivateDataCreateInfo</a>, <a href=\"#VkPhysicalDevice16BitStorageFeatures\">VkPhysicalDevice16BitStorageFeatures</a>, <a href=\"#VkPhysicalDevice4444FormatsFeaturesEXT\">VkPhysicalDevice4444FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDevice8BitStorageFeatures\">VkPhysicalDevice8BitStorageFeatures</a>, <a href=\"#VkPhysicalDeviceASTCDecodeFeaturesEXT\">VkPhysicalDeviceASTCDecodeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAccelerationStructureFeaturesKHR\">VkPhysicalDeviceAccelerationStructureFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceAddressBindingReportFeaturesEXT\">VkPhysicalDeviceAddressBindingReportFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAmigoProfilingFeaturesSEC\">VkPhysicalDeviceAmigoProfilingFeaturesSEC</a>, <a href=\"#VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT\">VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT\">VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT\">VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBorderColorSwizzleFeaturesEXT\">VkPhysicalDeviceBorderColorSwizzleFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeatures\">VkPhysicalDeviceBufferDeviceAddressFeatures</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeaturesEXT\">VkPhysicalDeviceBufferDeviceAddressFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI\">VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceCoherentMemoryFeaturesAMD\">VkPhysicalDeviceCoherentMemoryFeaturesAMD</a>, <a href=\"#VkPhysicalDeviceColorWriteEnableFeaturesEXT\">VkPhysicalDeviceColorWriteEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceComputeShaderDerivativesFeaturesNV\">VkPhysicalDeviceComputeShaderDerivativesFeaturesNV</a>, <a href=\"#VkPhysicalDeviceConditionalRenderingFeaturesEXT\">VkPhysicalDeviceConditionalRenderingFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixFeaturesNV\">VkPhysicalDeviceCooperativeMatrixFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCopyMemoryIndirectFeaturesNV\">VkPhysicalDeviceCopyMemoryIndirectFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCornerSampledImageFeaturesNV\">VkPhysicalDeviceCornerSampledImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCoverageReductionModeFeaturesNV\">VkPhysicalDeviceCoverageReductionModeFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorFeaturesEXT\">VkPhysicalDeviceCustomBorderColorFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV\">VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDepthClampZeroOneFeaturesEXT\">VkPhysicalDeviceDepthClampZeroOneFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClipControlFeaturesEXT\">VkPhysicalDeviceDepthClipControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClipEnableFeaturesEXT\">VkPhysicalDeviceDepthClipEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferFeaturesEXT\">VkPhysicalDeviceDescriptorBufferFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>, <a href=\"#VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE\">VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV\">VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDeviceMemoryReportFeaturesEXT\">VkPhysicalDeviceDeviceMemoryReportFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDiagnosticsConfigFeaturesNV\">VkPhysicalDeviceDiagnosticsConfigFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDisplacementMicromapFeaturesNV\">VkPhysicalDeviceDisplacementMicromapFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDynamicRenderingFeatures\">VkPhysicalDeviceDynamicRenderingFeatures</a>, <a href=\"#VkPhysicalDeviceExclusiveScissorFeaturesNV\">VkPhysicalDeviceExclusiveScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState2FeaturesEXT\">VkPhysicalDeviceExtendedDynamicState2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState3FeaturesEXT\">VkPhysicalDeviceExtendedDynamicState3FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicStateFeaturesEXT\">VkPhysicalDeviceExtendedDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExternalMemoryRDMAFeaturesNV\">VkPhysicalDeviceExternalMemoryRDMAFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFaultFeaturesEXT\">VkPhysicalDeviceFaultFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFeatures2\">VkPhysicalDeviceFeatures2</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMap2FeaturesEXT\">VkPhysicalDeviceFragmentDensityMap2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapFeaturesEXT\">VkPhysicalDeviceFragmentDensityMapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM\">VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR\">VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT\">VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV\">VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateFeaturesKHR\">VkPhysicalDeviceFragmentShadingRateFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR\">VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT\">VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceHostQueryResetFeatures\">VkPhysicalDeviceHostQueryResetFeatures</a>, <a href=\"#VkPhysicalDeviceImage2DViewOf3DFeaturesEXT\">VkPhysicalDeviceImage2DViewOf3DFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageCompressionControlFeaturesEXT\">VkPhysicalDeviceImageCompressionControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT\">VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageProcessingFeaturesQCOM\">VkPhysicalDeviceImageProcessingFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceImageRobustnessFeatures\">VkPhysicalDeviceImageRobustnessFeatures</a>, <a href=\"#VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT\">VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageViewMinLodFeaturesEXT\">VkPhysicalDeviceImageViewMinLodFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImagelessFramebufferFeatures\">VkPhysicalDeviceImagelessFramebufferFeatures</a>, <a href=\"#VkPhysicalDeviceIndexTypeUint8FeaturesEXT\">VkPhysicalDeviceIndexTypeUint8FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceInheritedViewportScissorFeaturesNV\">VkPhysicalDeviceInheritedViewportScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockFeatures\">VkPhysicalDeviceInlineUniformBlockFeatures</a>, <a href=\"#VkPhysicalDeviceInvocationMaskFeaturesHUAWEI\">VkPhysicalDeviceInvocationMaskFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceLegacyDitheringFeaturesEXT\">VkPhysicalDeviceLegacyDitheringFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceLineRasterizationFeaturesEXT\">VkPhysicalDeviceLineRasterizationFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceLinearColorAttachmentFeaturesNV\">VkPhysicalDeviceLinearColorAttachmentFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMaintenance4Features\">VkPhysicalDeviceMaintenance4Features</a>, <a href=\"#VkPhysicalDeviceMemoryDecompressionFeaturesNV\">VkPhysicalDeviceMemoryDecompressionFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMemoryPriorityFeaturesEXT\">VkPhysicalDeviceMemoryPriorityFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderFeaturesEXT\">VkPhysicalDeviceMeshShaderFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderFeaturesNV\">VkPhysicalDeviceMeshShaderFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMultiDrawFeaturesEXT\">VkPhysicalDeviceMultiDrawFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT\">VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMultiviewFeatures\">VkPhysicalDeviceMultiviewFeatures</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM\">VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM\">VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT\">VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT\">VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceOpacityMicromapFeaturesEXT\">VkPhysicalDeviceOpacityMicromapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceOpticalFlowFeaturesNV\">VkPhysicalDeviceOpticalFlowFeaturesNV</a>, <a href=\"#VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT\">VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePerformanceQueryFeaturesKHR\">VkPhysicalDevicePerformanceQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePipelineCreationCacheControlFeatures\">VkPhysicalDevicePipelineCreationCacheControlFeatures</a>, <a href=\"#VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR\">VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT\">VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelinePropertiesFeaturesEXT\">VkPhysicalDevicePipelinePropertiesFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelineProtectedAccessFeaturesEXT\">VkPhysicalDevicePipelineProtectedAccessFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelineRobustnessFeaturesEXT\">VkPhysicalDevicePipelineRobustnessFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePresentBarrierFeaturesNV\">VkPhysicalDevicePresentBarrierFeaturesNV</a>, <a href=\"#VkPhysicalDevicePresentIdFeaturesKHR\">VkPhysicalDevicePresentIdFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePresentWaitFeaturesKHR\">VkPhysicalDevicePresentWaitFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT\">VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT\">VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePrivateDataFeatures\">VkPhysicalDevicePrivateDataFeatures</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryFeatures\">VkPhysicalDeviceProtectedMemoryFeatures</a>, <a href=\"#VkPhysicalDeviceProvokingVertexFeaturesEXT\">VkPhysicalDeviceProvokingVertexFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT\">VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT\">VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRayQueryFeaturesKHR\">VkPhysicalDeviceRayQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV\">VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR\">VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingMotionBlurFeaturesNV\">VkPhysicalDeviceRayTracingMotionBlurFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingPipelineFeaturesKHR\">VkPhysicalDeviceRayTracingPipelineFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR\">VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV\">VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRobustness2FeaturesEXT\">VkPhysicalDeviceRobustness2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerYcbcrConversionFeatures\">VkPhysicalDeviceSamplerYcbcrConversionFeatures</a>, <a href=\"#VkPhysicalDeviceScalarBlockLayoutFeatures\">VkPhysicalDeviceScalarBlockLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures\">VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT\">VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloatFeaturesEXT\">VkPhysicalDeviceShaderAtomicFloatFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderAtomicInt64Features\">VkPhysicalDeviceShaderAtomicInt64Features</a>, <a href=\"#VkPhysicalDeviceShaderClockFeaturesKHR\">VkPhysicalDeviceShaderClockFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM\">VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM</a>, <a href=\"#VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures\">VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures</a>, <a href=\"#VkPhysicalDeviceShaderDrawParametersFeatures\">VkPhysicalDeviceShaderDrawParametersFeatures</a>, <a href=\"#VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD\">VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD</a>, <a href=\"#VkPhysicalDeviceShaderFloat16Int8Features\">VkPhysicalDeviceShaderFloat16Int8Features</a>, <a href=\"#VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT\">VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderImageFootprintFeaturesNV\">VkPhysicalDeviceShaderImageFootprintFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderIntegerDotProductFeatures\">VkPhysicalDeviceShaderIntegerDotProductFeatures</a>, <a href=\"#VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL\">VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL</a>, <a href=\"#VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT\">VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderObjectFeaturesEXT\">VkPhysicalDeviceShaderObjectFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderSMBuiltinsFeaturesNV\">VkPhysicalDeviceShaderSMBuiltinsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures\">VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR\">VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderTerminateInvocationFeatures\">VkPhysicalDeviceShaderTerminateInvocationFeatures</a>, <a href=\"#VkPhysicalDeviceShaderTileImageFeaturesEXT\">VkPhysicalDeviceShaderTileImageFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShadingRateImageFeaturesNV\">VkPhysicalDeviceShadingRateImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlFeatures\">VkPhysicalDeviceSubgroupSizeControlFeatures</a>, <a href=\"#VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT\">VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSubpassShadingFeaturesHUAWEI\">VkPhysicalDeviceSubpassShadingFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT\">VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSynchronization2Features\">VkPhysicalDeviceSynchronization2Features</a>, <a href=\"#VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT\">VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceTextureCompressionASTCHDRFeatures\">VkPhysicalDeviceTextureCompressionASTCHDRFeatures</a>, <a href=\"#VkPhysicalDeviceTilePropertiesFeaturesQCOM\">VkPhysicalDeviceTilePropertiesFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreFeatures\">VkPhysicalDeviceTimelineSemaphoreFeatures</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackFeaturesEXT\">VkPhysicalDeviceTransformFeedbackFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceUniformBufferStandardLayoutFeatures\">VkPhysicalDeviceUniformBufferStandardLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceVariablePointersFeatures\">VkPhysicalDeviceVariablePointersFeatures</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT\">VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT\">VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceVulkan11Features\">VkPhysicalDeviceVulkan11Features</a>, <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a>, <a href=\"#VkPhysicalDeviceVulkan13Features\">VkPhysicalDeviceVulkan13Features</a>, <a href=\"#VkPhysicalDeviceVulkanMemoryModelFeatures\">VkPhysicalDeviceVulkanMemoryModelFeatures</a>, <a href=\"#VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR\">VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT\">VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceYcbcrImageArraysFeaturesEXT\">VkPhysicalDeviceYcbcrImageArraysFeaturesEXT</a>, or <a href=\"#VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures\">VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures</a>"
},
{
"vuid": "VUID-VkDeviceCreateInfo-sType-unique",
@@ -1813,13 +1813,13 @@
],
"(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
{
- "vuid": "VUID-VkSemaphoreSubmitInfo-rayTracingPipeline-07946",
+ "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-07946",
"text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
}
],
"(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
{
- "vuid": "VUID-VkSemaphoreSubmitInfo-rayTracingPipeline-07947",
+ "vuid": "VUID-VkSemaphoreSubmitInfo-stageMask-07947",
"text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
}
],
@@ -2073,13 +2073,13 @@
],
"(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
{
- "vuid": "VUID-VkSubmitInfo-rayTracingPipeline-07949",
+ "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-07949",
"text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:pWaitDstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
}
],
"(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
{
- "vuid": "VUID-VkSubmitInfo-rayTracingPipeline-07950",
+ "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-07950",
"text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:pWaitDstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
}
],
@@ -4061,13 +4061,13 @@
],
"(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
{
- "vuid": "VUID-vkCmdSetEvent-rayTracingPipeline-07949",
+ "vuid": "VUID-vkCmdSetEvent-stageMask-07949",
"text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
}
],
"(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
{
- "vuid": "VUID-vkCmdSetEvent-rayTracingPipeline-07950",
+ "vuid": "VUID-vkCmdSetEvent-stageMask-07950",
"text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
}
],
@@ -4199,13 +4199,13 @@
],
"(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
{
- "vuid": "VUID-vkCmdResetEvent2-rayTracingPipeline-07946",
+ "vuid": "VUID-vkCmdResetEvent2-stageMask-07946",
"text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
}
],
"(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
{
- "vuid": "VUID-vkCmdResetEvent2-rayTracingPipeline-07947",
+ "vuid": "VUID-vkCmdResetEvent2-stageMask-07947",
"text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
}
],
@@ -4337,13 +4337,13 @@
],
"(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
{
- "vuid": "VUID-vkCmdResetEvent-rayTracingPipeline-07949",
+ "vuid": "VUID-vkCmdResetEvent-stageMask-07949",
"text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
}
],
"(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
{
- "vuid": "VUID-vkCmdResetEvent-rayTracingPipeline-07950",
+ "vuid": "VUID-vkCmdResetEvent-stageMask-07950",
"text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:stageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
}
],
@@ -4647,21 +4647,21 @@
],
"(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
{
- "vuid": "VUID-vkCmdWaitEvents-rayTracingPipeline-07949",
+ "vuid": "VUID-vkCmdWaitEvents-srcStageMask-07949",
"text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
},
{
- "vuid": "VUID-vkCmdWaitEvents-rayTracingPipeline-07949",
+ "vuid": "VUID-vkCmdWaitEvents-dstStageMask-07949",
"text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
}
],
"(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
{
- "vuid": "VUID-vkCmdWaitEvents-rayTracingPipeline-07950",
+ "vuid": "VUID-vkCmdWaitEvents-srcStageMask-07950",
"text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
},
{
- "vuid": "VUID-vkCmdWaitEvents-rayTracingPipeline-07950",
+ "vuid": "VUID-vkCmdWaitEvents-dstStageMask-07950",
"text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
}
],
@@ -4995,21 +4995,21 @@
],
"(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
{
- "vuid": "VUID-vkCmdPipelineBarrier-rayTracingPipeline-07949",
+ "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-07949",
"text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
},
{
- "vuid": "VUID-vkCmdPipelineBarrier-rayTracingPipeline-07949",
+ "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-07949",
"text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
}
],
"(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
{
- "vuid": "VUID-vkCmdPipelineBarrier-rayTracingPipeline-07950",
+ "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-07950",
"text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
},
{
- "vuid": "VUID-vkCmdPipelineBarrier-rayTracingPipeline-07950",
+ "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-07950",
"text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
}
],
@@ -5385,21 +5385,21 @@
],
"(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
{
- "vuid": "VUID-VkMemoryBarrier2-rayTracingPipeline-07946",
+ "vuid": "VUID-VkMemoryBarrier2-srcStageMask-07946",
"text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
},
{
- "vuid": "VUID-VkMemoryBarrier2-rayTracingPipeline-07946",
+ "vuid": "VUID-VkMemoryBarrier2-dstStageMask-07946",
"text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
}
],
"(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
{
- "vuid": "VUID-VkMemoryBarrier2-rayTracingPipeline-07947",
+ "vuid": "VUID-VkMemoryBarrier2-srcStageMask-07947",
"text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
},
{
- "vuid": "VUID-VkMemoryBarrier2-rayTracingPipeline-07947",
+ "vuid": "VUID-VkMemoryBarrier2-dstStageMask-07947",
"text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
}
],
@@ -5991,21 +5991,21 @@
],
"(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
{
- "vuid": "VUID-VkBufferMemoryBarrier2-rayTracingPipeline-07946",
+ "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-07946",
"text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
},
{
- "vuid": "VUID-VkBufferMemoryBarrier2-rayTracingPipeline-07946",
+ "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-07946",
"text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
}
],
"(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
{
- "vuid": "VUID-VkBufferMemoryBarrier2-rayTracingPipeline-07947",
+ "vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-07947",
"text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
},
{
- "vuid": "VUID-VkBufferMemoryBarrier2-rayTracingPipeline-07947",
+ "vuid": "VUID-VkBufferMemoryBarrier2-dstStageMask-07947",
"text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
}
],
@@ -6729,21 +6729,21 @@
],
"(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
{
- "vuid": "VUID-VkImageMemoryBarrier2-rayTracingPipeline-07946",
+ "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-07946",
"text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
},
{
- "vuid": "VUID-VkImageMemoryBarrier2-rayTracingPipeline-07946",
+ "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-07946",
"text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
}
],
"(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
{
- "vuid": "VUID-VkImageMemoryBarrier2-rayTracingPipeline-07947",
+ "vuid": "VUID-VkImageMemoryBarrier2-srcStageMask-07947",
"text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
},
{
- "vuid": "VUID-VkImageMemoryBarrier2-rayTracingPipeline-07947",
+ "vuid": "VUID-VkImageMemoryBarrier2-dstStageMask-07947",
"text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
}
],
@@ -8925,21 +8925,21 @@
],
"(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
{
- "vuid": "VUID-VkSubpassDependency-rayTracingPipeline-07949",
+ "vuid": "VUID-VkSubpassDependency-srcStageMask-07949",
"text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
},
{
- "vuid": "VUID-VkSubpassDependency-rayTracingPipeline-07949",
+ "vuid": "VUID-VkSubpassDependency-dstStageMask-07949",
"text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
}
],
"(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
{
- "vuid": "VUID-VkSubpassDependency-rayTracingPipeline-07950",
+ "vuid": "VUID-VkSubpassDependency-srcStageMask-07950",
"text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
},
{
- "vuid": "VUID-VkSubpassDependency-rayTracingPipeline-07950",
+ "vuid": "VUID-VkSubpassDependency-dstStageMask-07950",
"text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
}
],
@@ -8958,6 +8958,46 @@
}
]
},
+ "vkCmdSetAttachmentFeedbackLoopEnableEXT": {
+ "(VK_EXT_attachment_feedback_loop_layout)+(VK_EXT_attachment_feedback_loop_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-attachmentFeedbackLoopDynamicState-08862",
+ "text": " The <a href=\"#features-attachmentFeedbackLoopDynamicState\"><code>attachmentFeedbackLoopDynamicState</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+ },
+ {
+ "vuid": "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-aspectMask-08863",
+ "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> only include <code>VK_IMAGE_ASPECT_NONE</code>, <code>VK_IMAGE_ASPECT_COLOR_BIT</code>, <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>, and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-attachmentFeedbackLoopLayout-08864",
+ "text": " If the <a href=\"#features-attachmentFeedbackLoopLayout\"><code>attachmentFeedbackLoopLayout</code></a> feature is not enabled, <code>aspectMask</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_NONE</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-parameter",
+ "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle"
+ },
+ {
+ "vuid": "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-aspectMask-parameter",
+ "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkImageAspectFlagBits\">VkImageAspectFlagBits</a> values"
+ },
+ {
+ "vuid": "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-aspectMask-requiredbitmask",
+ "text": " <code>aspectMask</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-recording",
+ "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+ },
+ {
+ "vuid": "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-cmdpool",
+ "text": " The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics operations"
+ },
+ {
+ "vuid": "VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-videocoding",
+ "text": " This command <strong class=\"purple\">must</strong> only be called outside of a video coding scope"
+ }
+ ]
+ },
"vkCreateRenderPass2": {
"(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [
{
@@ -9997,21 +10037,21 @@
],
"(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
{
- "vuid": "VUID-VkSubpassDependency2-rayTracingPipeline-07949",
+ "vuid": "VUID-VkSubpassDependency2-srcStageMask-07949",
"text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
},
{
- "vuid": "VUID-VkSubpassDependency2-rayTracingPipeline-07949",
+ "vuid": "VUID-VkSubpassDependency2-dstStageMask-07949",
"text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
}
],
"(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
{
- "vuid": "VUID-VkSubpassDependency2-rayTracingPipeline-07950",
+ "vuid": "VUID-VkSubpassDependency2-srcStageMask-07950",
"text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:srcStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
},
{
- "vuid": "VUID-VkSubpassDependency2-rayTracingPipeline-07950",
+ "vuid": "VUID-VkSubpassDependency2-dstStageMask-07950",
"text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:dstStageMask <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR</code>"
}
]
@@ -11311,6 +11351,26 @@
"text": " The <code>codeType</code> member of all elements of <code>pCreateInfos</code> whose <code>flags</code> member includes <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> <strong class=\"purple\">must</strong> be the same"
},
{
+ "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08867",
+ "text": " If <code>pCreateInfos</code> contains elements with both <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> and <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, both elements' <code>flags</code> include <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code>, both elements' <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and the <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> stage&#8217;s <code>pCode</code> contains an <code>OpExecutionMode</code> instruction specifying the type of subdivision, it <strong class=\"purple\">must</strong> match the subdivision type specified in the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage"
+ },
+ {
+ "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08868",
+ "text": " If <code>pCreateInfos</code> contains elements with both <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> and <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, both elements' <code>flags</code> include <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code>, both elements' <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and the <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> stage&#8217;s <code>pCode</code> contains an <code>OpExecutionMode</code> instruction specifying the orientation of triangles, it <strong class=\"purple\">must</strong> match the triangle orientation specified in the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage"
+ },
+ {
+ "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08869",
+ "text": " If <code>pCreateInfos</code> contains elements with both <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> and <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, both elements' <code>flags</code> include <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code>, both elements' <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and the <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> stage&#8217;s <code>pCode</code> contains an <code>OpExecutionMode</code> instruction specifying <code>PointMode</code>, the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage <strong class=\"purple\">must</strong> also contain an <code>OpExecutionMode</code> instruction specifying <code>PointMode</code>"
+ },
+ {
+ "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08870",
+ "text": " If <code>pCreateInfos</code> contains elements with both <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> and <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, both elements' <code>flags</code> include <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code>, both elements' <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and the <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> stage&#8217;s <code>pCode</code> contains an <code>OpExecutionMode</code> instruction specifying the spacing of segments on the edges of tessellated primitives, it <strong class=\"purple\">must</strong> match the segment spacing specified in the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage"
+ },
+ {
+ "vuid": "VUID-vkCreateShadersEXT-pCreateInfos-08871",
+ "text": " If <code>pCreateInfos</code> contains elements with both <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> and <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, both elements' <code>flags</code> include <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code>, both elements' <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and the <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> stage&#8217;s <code>pCode</code> contains an <code>OpExecutionMode</code> instruction specifying the output patch size, it <strong class=\"purple\">must</strong> match the output patch size specified in the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage"
+ },
+ {
"vuid": "VUID-vkCreateShadersEXT-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
},
@@ -11443,6 +11503,14 @@
"text": " If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, <code>pName</code> <strong class=\"purple\">must</strong> be the name of an <code>OpEntryPoint</code> in <code>pCode</code> with an execution model that matches <code>stage</code>"
},
{
+ "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08492",
+ "text": " If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_BINARY_EXT</code>, <code>pCode</code> <strong class=\"purple\">must</strong> be aligned to <code>16</code> bytes"
+ },
+ {
+ "vuid": "VUID-VkShaderCreateInfoEXT-pCode-08493",
+ "text": " If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, <code>pCode</code> <strong class=\"purple\">must</strong> be aligned to <code>4</code> bytes"
+ },
+ {
"vuid": "VUID-VkShaderCreateInfoEXT-pCode-08448",
"text": " If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and the identified entry point includes any variable in its interface that is declared with the <code>ClipDistance</code> <code>BuiltIn</code> decoration, that variable <strong class=\"purple\">must</strong> not have an array size greater than <code>VkPhysicalDeviceLimits</code>::<code>maxClipDistances</code>"
},
@@ -11495,6 +11563,22 @@
"text": " If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, the shader code in <code>pCode</code> <strong class=\"purple\">must</strong> be valid as described by the <a href=\"#spirv-spec\">Khronos SPIR-V Specification</a> after applying the specializations provided in <code>pSpecializationInfo</code>, if any, and then converting all specialization constants into fixed constants"
},
{
+ "vuid": "VUID-VkShaderCreateInfoEXT-codeType-08872",
+ "text": " If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and <code>stage</code> is <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, <code>pCode</code> <strong class=\"purple\">must</strong> contain an <code>OpExecutionMode</code> instruction specifying the type of subdivision"
+ },
+ {
+ "vuid": "VUID-VkShaderCreateInfoEXT-codeType-08873",
+ "text": " If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and <code>stage</code> is <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, <code>pCode</code> <strong class=\"purple\">must</strong> contain an <code>OpExecutionMode</code> instruction specifying the orientation of triangles generated by the tessellator"
+ },
+ {
+ "vuid": "VUID-VkShaderCreateInfoEXT-codeType-08874",
+ "text": " If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and <code>stage</code> is <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, <code>pCode</code> <strong class=\"purple\">must</strong> contain an <code>OpExecutionMode</code> instruction specifying the spacing of segments on the edges of tessellated primitives"
+ },
+ {
+ "vuid": "VUID-VkShaderCreateInfoEXT-codeType-08875",
+ "text": " If <code>codeType</code> is <code>VK_SHADER_CODE_TYPE_SPIRV_EXT</code>, and <code>stage</code> is <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code>, <code>pCode</code> <strong class=\"purple\">must</strong> contain an <code>OpExecutionMode</code> instruction specifying the output patch size"
+ },
+ {
"vuid": "VUID-VkShaderCreateInfoEXT-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT</code>"
},
@@ -11651,6 +11735,10 @@
"text": " The <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature <strong class=\"purple\">must</strong> be enabled"
},
{
+ "vuid": "VUID-vkGetShaderBinaryDataEXT-None-08499",
+ "text": " If <code>pData</code> is not <code>NULL</code>, it <strong class=\"purple\">must</strong> be aligned to <code>16</code> bytes"
+ },
+ {
"vuid": "VUID-vkGetShaderBinaryDataEXT-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
},
@@ -16074,7 +16162,7 @@
"(VK_KHR_external_memory)+(VK_KHR_dedicated_allocation,VK_NV_dedicated_allocation)": [
{
"vuid": "VUID-VkMemoryAllocateInfo-pNext-00639",
- "text": " If the <code>pNext</code> chain includes a <code>VkExportMemoryAllocateInfo</code> structure, and any of the handle types specified in <code>VkExportMemoryAllocateInfo</code>::<code>handleTypes</code> require a dedicated allocation, as reported by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a> in <code>VkExternalImageFormatProperties</code>::<code>externalMemoryProperties.externalMemoryFeatures</code> or <code>VkExternalBufferProperties</code>::<code>externalMemoryProperties.externalMemoryFeatures</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <code>VkMemoryDedicatedAllocateInfo</code> or <code>VkDedicatedAllocationMemoryAllocateInfoNV</code> structure with either its <code>image</code> or <code>buffer</code> member set to a value other than <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+ "text": " If the <code>pNext</code> chain includes a <code>VkExportMemoryAllocateInfo</code> structure, and any of the handle types specified in <code>VkExportMemoryAllocateInfo</code>::<code>handleTypes</code> require a dedicated allocation, as reported by <a href=\"#vkGetPhysicalDeviceImageFormatProperties2\">vkGetPhysicalDeviceImageFormatProperties2</a> in <code>VkExternalImageFormatProperties</code>::<code>externalMemoryProperties.externalMemoryFeatures</code>, or by <a href=\"#vkGetPhysicalDeviceExternalBufferProperties\">vkGetPhysicalDeviceExternalBufferProperties</a> in <code>VkExternalBufferProperties</code>::<code>externalMemoryProperties.externalMemoryFeatures</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <code>VkMemoryDedicatedAllocateInfo</code> or <code>VkDedicatedAllocationMemoryAllocateInfoNV</code> structure with either its <code>image</code> or <code>buffer</code> member set to a value other than <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
}
],
"(VK_KHR_external_memory)+(VK_NV_external_memory)": [
@@ -18223,6 +18311,14 @@
"text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT</code>, <code>imageType</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>"
},
{
+ "vuid": "VUID-VkImageCreateInfo-flags-08865",
+ "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT</code>, <code>extent.width</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be equal"
+ },
+ {
+ "vuid": "VUID-VkImageCreateInfo-flags-08866",
+ "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT</code>, <code>arrayLayers</code> <strong class=\"purple\">must</strong> be greater than or equal to 6"
+ },
+ {
"vuid": "VUID-VkImageCreateInfo-extent-02252",
"text": " <code>extent.width</code> <strong class=\"purple\">must</strong> be less than or equal to <code>imageCreateMaxExtent.width</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>)"
},
@@ -18235,10 +18331,6 @@
"text": " <code>extent.depth</code> <strong class=\"purple\">must</strong> be less than or equal to <code>imageCreateMaxExtent.depth</code> (as defined in <a href=\"#resources-image-creation-limits\">Image Creation Limits</a>)"
},
{
- "vuid": "VUID-VkImageCreateInfo-imageType-00954",
- "text": " If <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code> and <code>flags</code> contains <code>VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT</code>, <code>extent.width</code> and <code>extent.height</code> <strong class=\"purple\">must</strong> be equal and <code>arrayLayers</code> <strong class=\"purple\">must</strong> be greater than or equal to 6"
- },
- {
"vuid": "VUID-VkImageCreateInfo-imageType-00956",
"text": " If <code>imageType</code> is <code>VK_IMAGE_TYPE_1D</code>, both <code>extent.height</code> and <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
},
@@ -18995,20 +19087,16 @@
"text": " The <code>arrayLayer</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
},
{
- "vuid": "VUID-vkGetImageSubresourceLayout-format-04461",
- "text": " If <code>format</code> is a color format, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
- },
- {
"vuid": "VUID-vkGetImageSubresourceLayout-format-04462",
- "text": " If <code>format</code> has a depth component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
+ "text": " If <code>format</code> of the <code>image</code> has a depth component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
},
{
"vuid": "VUID-vkGetImageSubresourceLayout-format-04463",
- "text": " If <code>format</code> has a stencil component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
+ "text": " If <code>format</code> of the <code>image</code> has a stencil component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
},
{
"vuid": "VUID-vkGetImageSubresourceLayout-format-04464",
- "text": " If <code>format</code> does not contain a stencil or depth component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
+ "text": " If <code>format</code> of the <code>image</code> does not contain a stencil or depth component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
},
{
"vuid": "VUID-vkGetImageSubresourceLayout-device-parameter",
@@ -19033,10 +19121,20 @@
],
"(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
+ "vuid": "VUID-vkGetImageSubresourceLayout-format-08886",
+ "text": " If <code>format</code> of the <code>image</code> is a color format, <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_LINEAR</code> or <code>VK_IMAGE_TILING_OPTIMAL</code>, and does not have a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
+ },
+ {
"vuid": "VUID-vkGetImageSubresourceLayout-tiling-08717",
"text": " If the <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_LINEAR</code> and has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, then the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be a single valid <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a>"
}
],
+ "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+ {
+ "vuid": "VUID-vkGetImageSubresourceLayout-format-08887",
+ "text": " If <code>format</code> of the <code>image</code> is a color format and <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_LINEAR</code> or <code>VK_IMAGE_TILING_OPTIMAL</code>, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
+ }
+ ],
"(VK_ANDROID_external_memory_android_hardware_buffer)": [
{
"vuid": "VUID-vkGetImageSubresourceLayout-image-01895",
@@ -19071,20 +19169,16 @@
"text": " The <code>arrayLayer</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
},
{
- "vuid": "VUID-vkGetImageSubresourceLayout2EXT-format-04461",
- "text": " If <code>format</code> is a color format, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
- },
- {
"vuid": "VUID-vkGetImageSubresourceLayout2EXT-format-04462",
- "text": " If <code>format</code> has a depth component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
+ "text": " If <code>format</code> of the <code>image</code> has a depth component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>"
},
{
"vuid": "VUID-vkGetImageSubresourceLayout2EXT-format-04463",
- "text": " If <code>format</code> has a stencil component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
+ "text": " If <code>format</code> of the <code>image</code> has a stencil component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
},
{
"vuid": "VUID-vkGetImageSubresourceLayout2EXT-format-04464",
- "text": " If <code>format</code> does not contain a stencil or depth component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
+ "text": " If <code>format</code> of the <code>image</code> does not contain a stencil or depth component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>"
},
{
"vuid": "VUID-vkGetImageSubresourceLayout2EXT-device-parameter",
@@ -19109,10 +19203,20 @@
],
"(VK_EXT_image_compression_control)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
+ "vuid": "VUID-vkGetImageSubresourceLayout2EXT-format-08886",
+ "text": " If <code>format</code> of the <code>image</code> is a color format, <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_LINEAR</code> or <code>VK_IMAGE_TILING_OPTIMAL</code>, and does not have a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
+ },
+ {
"vuid": "VUID-vkGetImageSubresourceLayout2EXT-tiling-08717",
"text": " If the <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_LINEAR</code> and has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, then the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be a single valid <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a>"
}
],
+ "(VK_EXT_image_compression_control)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+ {
+ "vuid": "VUID-vkGetImageSubresourceLayout2EXT-format-08887",
+ "text": " If <code>format</code> of the <code>image</code> is a color format and <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_LINEAR</code> or <code>VK_IMAGE_TILING_OPTIMAL</code>, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>"
+ }
+ ],
"(VK_EXT_image_compression_control)+(VK_ANDROID_external_memory_android_hardware_buffer)": [
{
"vuid": "VUID-vkGetImageSubresourceLayout2EXT-image-01895",
@@ -20200,7 +20304,7 @@
"(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)": [
{
"vuid": "VUID-VkAccelerationStructureCreateInfoKHR-flags-04954",
- "text": " If <code>VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV</code> is set in <code>flags</code> and <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code>, one member of the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a pointer to a valid instance of <a href=\"#VkAccelerationStructureMotionInfoNV\">VkAccelerationStructureMotionInfoNV</a>"
+ "text": " If <code>VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV</code> is set in <code>flags</code> and <code>type</code> is <code>VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR</code>, one member of the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a pointer to a valid instance of <a href=\"#VkAccelerationStructureMotionInfoNV\">VkAccelerationStructureMotionInfoNV</a>"
},
{
"vuid": "VUID-VkAccelerationStructureCreateInfoKHR-flags-04955",
@@ -28729,13 +28833,13 @@
],
"(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
{
- "vuid": "VUID-vkCmdWriteTimestamp2-rayTracingPipeline-07946",
+ "vuid": "VUID-vkCmdWriteTimestamp2-stage-07946",
"text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
}
],
"(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
{
- "vuid": "VUID-vkCmdWriteTimestamp2-rayTracingPipeline-07947",
+ "vuid": "VUID-vkCmdWriteTimestamp2-stage-07947",
"text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
}
],
@@ -33461,13 +33565,13 @@
],
"(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
{
- "vuid": "VUID-vkCmdWriteBufferMarker2AMD-rayTracingPipeline-07946",
+ "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-07946",
"text": " If neither the <a href=\"#VK_NV_ray_tracing\">VK_NV_ray_tracing</a> extension or <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> are enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
}
],
"(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_ray_tracing_pipeline)+!(VK_NV_ray_tracing)": [
{
- "vuid": "VUID-vkCmdWriteBufferMarker2AMD-rayTracingPipeline-07947",
+ "vuid": "VUID-vkCmdWriteBufferMarker2AMD-stage-07947",
"text": " If the <a href=\"#features-rayTracingPipeline\"><code>rayTracingPipeline</code> feature</a> is not enabled, pname:stage <strong class=\"purple\">must</strong> not contain <code>VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR</code>"
}
]
@@ -34004,11 +34108,11 @@
"!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDraw-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDraw-None-02698",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDraw-None-02700",
@@ -34034,11 +34138,11 @@
"(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDraw-None-08600",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDraw-None-08601",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDraw-None-08606",
@@ -34139,30 +34243,48 @@
{
"vuid": "VUID-vkCmdDraw-None-08699",
"text": " If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound"
+ },
+ {
+ "vuid": "VUID-vkCmdDraw-None-08878",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges"
+ },
+ {
+ "vuid": "VUID-vkCmdDraw-None-08879",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts"
+ },
+ {
+ "vuid": "VUID-vkCmdDraw-None-08881",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDraw-None-08882",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDraw-None-08883",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage, then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDraw-rasterizerDiscardEnable-08884",
+ "text": " If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
}
],
"(VK_VERSION_1_3,VK_KHR_maintenance4)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDraw-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDraw-maintenance4-08602",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
- "!(VK_EXT_descriptor_buffer)+!(VK_EXT_shader_object)": [
+ "!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDraw-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
- }
- ],
- "!(VK_EXT_descriptor_buffer)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDraw-None-08603",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by <a href=\"#shaders-binding\">a bound shader</a>"
}
],
"(VK_EXT_descriptor_buffer)": [
@@ -34217,36 +34339,28 @@
"text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
- "(VK_VERSION_1_1)+!(VK_EXT_shader_object)": [
+ "(VK_VERSION_1_1)": [
{
"vuid": "VUID-vkCmdDraw-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_VERSION_1_1)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDraw-commandBuffer-08614",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> object bound to a stage corresponding to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_shader_object)": [
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource"
+ },
{
- "vuid": "VUID-vkCmdDraw-None-06550",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "vuid": "VUID-vkCmdDraw-commandBuffer-02712",
+ "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource"
},
{
- "vuid": "VUID-vkCmdDraw-ConstOffset-06551",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "vuid": "VUID-vkCmdDraw-commandBuffer-02713",
+ "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource"
}
],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_shader_object)": [
+ "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
- "vuid": "VUID-vkCmdDraw-None-08615",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "vuid": "VUID-vkCmdDraw-None-06550",
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
- "vuid": "VUID-vkCmdDraw-ConstOffset-08616",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "vuid": "VUID-vkCmdDraw-ConstOffset-06551",
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_EXT_shader_image_atomic_int64)": [
@@ -34565,6 +34679,12 @@
"text": " If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the current command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the same as the number of samples for the current render pass color and/or depth/stencil attachments"
}
],
+ "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_shader_object)": [
+ {
+ "vuid": "VUID-vkCmdDraw-None-08876",
+ "text": " If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
+ }
+ ],
"(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdDraw-imageView-06172",
@@ -35227,6 +35347,16 @@
"text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
}
],
+ "(VK_EXT_attachment_feedback_loop_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDraw-None-08877",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer to indicate which attachment types used by the render pass instance <strong class=\"purple\">can</strong> use feedback loops"
+ },
+ {
+ "vuid": "VUID-vkCmdDraw-None-08880",
+ "text": " If there is no bound graphics pipeline and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop <strong class=\"purple\">can</strong> be active"
+ }
+ ],
"(VK_NV_inherited_viewport_scissor)": [
{
"vuid": "VUID-vkCmdDraw-None-07850",
@@ -35285,16 +35415,6 @@
"text": " If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpStencilAttachmentReadEXT</code>, the <code>writeMask</code> parameter in the last call to <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> be <code>0</code>"
}
],
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdDraw-commandBuffer-02712",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource"
- },
- {
- "vuid": "VUID-vkCmdDraw-commandBuffer-02713",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource"
- }
- ],
"(VK_VERSION_1_1)+(VK_KHR_ray_query)": [
{
"vuid": "VUID-vkCmdDraw-commandBuffer-04617",
@@ -35354,6 +35474,12 @@
"vuid": "VUID-vkCmdDraw-stage-06481",
"text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>"
}
+ ],
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_shader_object)": [
+ {
+ "vuid": "VUID-vkCmdDraw-None-08885",
+ "text": " There <strong class=\"purple\">must</strong> be no shader object bound to either of the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages"
+ }
]
},
"vkCmdDrawIndexed": {
@@ -35570,11 +35696,11 @@
"!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawIndexed-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndexed-None-02698",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndexed-None-02700",
@@ -35600,11 +35726,11 @@
"(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawIndexed-None-08600",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndexed-None-08601",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndexed-None-08606",
@@ -35705,30 +35831,48 @@
{
"vuid": "VUID-vkCmdDrawIndexed-None-08699",
"text": " If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexed-None-08878",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexed-None-08879",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexed-None-08881",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexed-None-08882",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexed-None-08883",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage, then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-08884",
+ "text": " If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
}
],
"(VK_VERSION_1_3,VK_KHR_maintenance4)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawIndexed-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawIndexed-maintenance4-08602",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
- "!(VK_EXT_descriptor_buffer)+!(VK_EXT_shader_object)": [
+ "!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawIndexed-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
- }
- ],
- "!(VK_EXT_descriptor_buffer)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-08603",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by <a href=\"#shaders-binding\">a bound shader</a>"
}
],
"(VK_EXT_descriptor_buffer)": [
@@ -35783,36 +35927,28 @@
"text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
- "(VK_VERSION_1_1)+!(VK_EXT_shader_object)": [
+ "(VK_VERSION_1_1)": [
{
"vuid": "VUID-vkCmdDrawIndexed-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_VERSION_1_1)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-08614",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> object bound to a stage corresponding to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_shader_object)": [
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource"
+ },
{
- "vuid": "VUID-vkCmdDrawIndexed-None-06550",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-02712",
+ "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource"
},
{
- "vuid": "VUID-vkCmdDrawIndexed-ConstOffset-06551",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-02713",
+ "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource"
}
],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_shader_object)": [
+ "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
- "vuid": "VUID-vkCmdDrawIndexed-None-08615",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "vuid": "VUID-vkCmdDrawIndexed-None-06550",
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
- "vuid": "VUID-vkCmdDrawIndexed-ConstOffset-08616",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "vuid": "VUID-vkCmdDrawIndexed-ConstOffset-06551",
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_EXT_shader_image_atomic_int64)": [
@@ -36131,6 +36267,12 @@
"text": " If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the current command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the same as the number of samples for the current render pass color and/or depth/stencil attachments"
}
],
+ "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_shader_object)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndexed-None-08876",
+ "text": " If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
+ }
+ ],
"(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdDrawIndexed-imageView-06172",
@@ -36793,6 +36935,16 @@
"text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
}
],
+ "(VK_EXT_attachment_feedback_loop_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndexed-None-08877",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer to indicate which attachment types used by the render pass instance <strong class=\"purple\">can</strong> use feedback loops"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexed-None-08880",
+ "text": " If there is no bound graphics pipeline and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop <strong class=\"purple\">can</strong> be active"
+ }
+ ],
"(VK_NV_inherited_viewport_scissor)": [
{
"vuid": "VUID-vkCmdDrawIndexed-None-07850",
@@ -36851,16 +37003,6 @@
"text": " If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpStencilAttachmentReadEXT</code>, the <code>writeMask</code> parameter in the last call to <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> be <code>0</code>"
}
],
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-02712",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-02713",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource"
- }
- ],
"(VK_VERSION_1_1)+(VK_KHR_ray_query)": [
{
"vuid": "VUID-vkCmdDrawIndexed-commandBuffer-04617",
@@ -36920,6 +37062,12 @@
"vuid": "VUID-vkCmdDrawIndexed-stage-06481",
"text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>"
}
+ ],
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_shader_object)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndexed-None-08885",
+ "text": " There <strong class=\"purple\">must</strong> be no shader object bound to either of the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages"
+ }
]
},
"vkCmdDrawMultiEXT": {
@@ -37144,11 +37292,11 @@
"(VK_EXT_multi_draw)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-02698",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-02700",
@@ -37174,11 +37322,11 @@
"(VK_EXT_multi_draw)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-08600",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-08601",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-08606",
@@ -37279,30 +37427,48 @@
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-08699",
"text": " If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiEXT-None-08878",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiEXT-None-08879",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiEXT-None-08881",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiEXT-None-08882",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiEXT-None-08883",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage, then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-08884",
+ "text": " If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
}
],
"(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_maintenance4)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMultiEXT-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMultiEXT-maintenance4-08602",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
- "(VK_EXT_multi_draw)+!(VK_EXT_descriptor_buffer)+!(VK_EXT_shader_object)": [
+ "(VK_EXT_multi_draw)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
- }
- ],
- "(VK_EXT_multi_draw)+!(VK_EXT_descriptor_buffer)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-08603",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by <a href=\"#shaders-binding\">a bound shader</a>"
}
],
"(VK_EXT_multi_draw)+(VK_EXT_descriptor_buffer)": [
@@ -37357,36 +37523,28 @@
"text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_1)+!(VK_EXT_shader_object)": [
+ "(VK_EXT_multi_draw)+(VK_VERSION_1_1)": [
{
"vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_1)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-08614",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> object bound to a stage corresponding to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_shader_object)": [
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource"
+ },
{
- "vuid": "VUID-vkCmdDrawMultiEXT-None-06550",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-02712",
+ "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource"
},
{
- "vuid": "VUID-vkCmdDrawMultiEXT-ConstOffset-06551",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-02713",
+ "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource"
}
],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_shader_object)": [
+ "(VK_EXT_multi_draw)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
- "vuid": "VUID-vkCmdDrawMultiEXT-None-08615",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "vuid": "VUID-vkCmdDrawMultiEXT-None-06550",
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
- "vuid": "VUID-vkCmdDrawMultiEXT-ConstOffset-08616",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "vuid": "VUID-vkCmdDrawMultiEXT-ConstOffset-06551",
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_EXT_multi_draw)+(VK_EXT_shader_image_atomic_int64)": [
@@ -37705,6 +37863,12 @@
"text": " If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the current command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the same as the number of samples for the current render pass color and/or depth/stencil attachments"
}
],
+ "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_shader_object)": [
+ {
+ "vuid": "VUID-vkCmdDrawMultiEXT-None-08876",
+ "text": " If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
+ }
+ ],
"(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdDrawMultiEXT-imageView-06172",
@@ -38367,6 +38531,16 @@
"text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
}
],
+ "(VK_EXT_multi_draw)+(VK_EXT_attachment_feedback_loop_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawMultiEXT-None-08877",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer to indicate which attachment types used by the render pass instance <strong class=\"purple\">can</strong> use feedback loops"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiEXT-None-08880",
+ "text": " If there is no bound graphics pipeline and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop <strong class=\"purple\">can</strong> be active"
+ }
+ ],
"(VK_EXT_multi_draw)+(VK_NV_inherited_viewport_scissor)": [
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-07850",
@@ -38425,16 +38599,6 @@
"text": " If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpStencilAttachmentReadEXT</code>, the <code>writeMask</code> parameter in the last call to <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> be <code>0</code>"
}
],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-02712",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-02713",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource"
- }
- ],
"(VK_EXT_multi_draw)+(VK_VERSION_1_1)+(VK_KHR_ray_query)": [
{
"vuid": "VUID-vkCmdDrawMultiEXT-commandBuffer-04617",
@@ -38494,6 +38658,12 @@
"vuid": "VUID-vkCmdDrawMultiEXT-stage-06481",
"text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>"
}
+ ],
+ "(VK_EXT_multi_draw)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_shader_object)": [
+ {
+ "vuid": "VUID-vkCmdDrawMultiEXT-None-08885",
+ "text": " There <strong class=\"purple\">must</strong> be no shader object bound to either of the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages"
+ }
]
},
"vkCmdDrawMultiIndexedEXT": {
@@ -38730,11 +38900,11 @@
"(VK_EXT_multi_draw)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02698",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02700",
@@ -38760,11 +38930,11 @@
"(VK_EXT_multi_draw)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08600",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08601",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08606",
@@ -38865,30 +39035,48 @@
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08699",
"text": " If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08878",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08879",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08881",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08882",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08883",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage, then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-08884",
+ "text": " If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
}
],
"(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_maintenance4)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-maintenance4-08602",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
- "(VK_EXT_multi_draw)+!(VK_EXT_descriptor_buffer)+!(VK_EXT_shader_object)": [
+ "(VK_EXT_multi_draw)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
- }
- ],
- "(VK_EXT_multi_draw)+!(VK_EXT_descriptor_buffer)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08603",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by <a href=\"#shaders-binding\">a bound shader</a>"
}
],
"(VK_EXT_multi_draw)+(VK_EXT_descriptor_buffer)": [
@@ -38943,36 +39131,28 @@
"text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_1)+!(VK_EXT_shader_object)": [
+ "(VK_EXT_multi_draw)+(VK_VERSION_1_1)": [
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_1)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-08614",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> object bound to a stage corresponding to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_shader_object)": [
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource"
+ },
{
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06550",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02712",
+ "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource"
},
{
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-ConstOffset-06551",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02713",
+ "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource"
}
],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_shader_object)": [
+ "(VK_EXT_multi_draw)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08615",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06550",
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-ConstOffset-08616",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-ConstOffset-06551",
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_EXT_multi_draw)+(VK_EXT_shader_image_atomic_int64)": [
@@ -39291,6 +39471,12 @@
"text": " If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the current command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the same as the number of samples for the current render pass color and/or depth/stencil attachments"
}
],
+ "(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_shader_object)": [
+ {
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08876",
+ "text": " If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
+ }
+ ],
"(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-imageView-06172",
@@ -39953,6 +40139,16 @@
"text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
}
],
+ "(VK_EXT_multi_draw)+(VK_EXT_attachment_feedback_loop_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08877",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer to indicate which attachment types used by the render pass instance <strong class=\"purple\">can</strong> use feedback loops"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08880",
+ "text": " If there is no bound graphics pipeline and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop <strong class=\"purple\">can</strong> be active"
+ }
+ ],
"(VK_EXT_multi_draw)+(VK_NV_inherited_viewport_scissor)": [
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07850",
@@ -40011,16 +40207,6 @@
"text": " If the bound graphics pipeline state includes a fragment shader stage, was created with <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> set in <a href=\"#VkPipelineDynamicStateCreateInfo\">VkPipelineDynamicStateCreateInfo</a>::<code>pDynamicStates</code>, and the fragment shader declares the <code>EarlyFragmentTests</code> execution mode and uses <code>OpStencilAttachmentReadEXT</code>, the <code>writeMask</code> parameter in the last call to <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> be <code>0</code>"
}
],
- "(VK_EXT_multi_draw)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02712",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02713",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource"
- }
- ],
"(VK_EXT_multi_draw)+(VK_VERSION_1_1)+(VK_KHR_ray_query)": [
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-04617",
@@ -40080,6 +40266,12 @@
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-stage-06481",
"text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>"
}
+ ],
+ "(VK_EXT_multi_draw)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_shader_object)": [
+ {
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08885",
+ "text": " There <strong class=\"purple\">must</strong> be no shader object bound to either of the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages"
+ }
]
},
"vkCmdDrawIndirect": {
@@ -40328,11 +40520,11 @@
"!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawIndirect-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndirect-None-02698",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndirect-None-02700",
@@ -40358,11 +40550,11 @@
"(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawIndirect-None-08600",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndirect-None-08601",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndirect-None-08606",
@@ -40463,30 +40655,48 @@
{
"vuid": "VUID-vkCmdDrawIndirect-None-08699",
"text": " If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirect-None-08878",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirect-None-08879",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirect-None-08881",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirect-None-08882",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirect-None-08883",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage, then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-08884",
+ "text": " If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
}
],
"(VK_VERSION_1_3,VK_KHR_maintenance4)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawIndirect-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawIndirect-maintenance4-08602",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
- "!(VK_EXT_descriptor_buffer)+!(VK_EXT_shader_object)": [
+ "!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawIndirect-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
- }
- ],
- "!(VK_EXT_descriptor_buffer)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-08603",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by <a href=\"#shaders-binding\">a bound shader</a>"
}
],
"(VK_EXT_descriptor_buffer)": [
@@ -40541,36 +40751,24 @@
"text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
- "(VK_VERSION_1_1)+!(VK_EXT_shader_object)": [
+ "(VK_VERSION_1_1)": [
{
"vuid": "VUID-vkCmdDrawIndirect-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_VERSION_1_1)+(VK_EXT_shader_object)": [
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource"
+ },
{
- "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-08614",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> object bound to a stage corresponding to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+ "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-02711",
+ "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
}
],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_shader_object)": [
+ "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDrawIndirect-None-06550",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDrawIndirect-ConstOffset-06551",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-08615",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-ConstOffset-08616",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_EXT_shader_image_atomic_int64)": [
@@ -40889,6 +41087,12 @@
"text": " If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the current command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the same as the number of samples for the current render pass color and/or depth/stencil attachments"
}
],
+ "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_shader_object)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndirect-None-08876",
+ "text": " If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
+ }
+ ],
"(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdDrawIndirect-imageView-06172",
@@ -41551,6 +41755,16 @@
"text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
}
],
+ "(VK_EXT_attachment_feedback_loop_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndirect-None-08877",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer to indicate which attachment types used by the render pass instance <strong class=\"purple\">can</strong> use feedback loops"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirect-None-08880",
+ "text": " If there is no bound graphics pipeline and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop <strong class=\"purple\">can</strong> be active"
+ }
+ ],
"(VK_NV_inherited_viewport_scissor)": [
{
"vuid": "VUID-vkCmdDrawIndirect-None-07850",
@@ -41663,10 +41877,10 @@
"text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>"
}
],
- "(VK_VERSION_1_1)": [
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_shader_object)": [
{
- "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-02711",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
+ "vuid": "VUID-vkCmdDrawIndirect-None-08885",
+ "text": " There <strong class=\"purple\">must</strong> be no shader object bound to either of the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages"
}
]
},
@@ -41948,11 +42162,11 @@
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-02698",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-02700",
@@ -41978,11 +42192,11 @@
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-08600",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-08601",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-08606",
@@ -42083,30 +42297,48 @@
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-08699",
"text": " If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectCount-None-08878",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectCount-None-08879",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectCount-None-08881",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectCount-None-08882",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectCount-None-08883",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage, then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-08884",
+ "text": " If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_maintenance4)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawIndirectCount-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawIndirectCount-maintenance4-08602",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_EXT_descriptor_buffer)+!(VK_EXT_shader_object)": [
+ "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_EXT_descriptor_buffer)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-08603",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by <a href=\"#shaders-binding\">a bound shader</a>"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_descriptor_buffer)": [
@@ -42161,36 +42393,24 @@
"text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1)+!(VK_EXT_shader_object)": [
+ "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1)": [
{
"vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1)+(VK_EXT_shader_object)": [
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource"
+ },
{
- "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-08614",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> object bound to a stage corresponding to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+ "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-02711",
+ "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
}
],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_shader_object)": [
+ "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-06550",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDrawIndirectCount-ConstOffset-06551",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-08615",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-ConstOffset-08616",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_shader_image_atomic_int64)": [
@@ -42509,6 +42729,12 @@
"text": " If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the current command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the same as the number of samples for the current render pass color and/or depth/stencil attachments"
}
],
+ "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_shader_object)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndirectCount-None-08876",
+ "text": " If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
+ }
+ ],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdDrawIndirectCount-imageView-06172",
@@ -43171,6 +43397,16 @@
"text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
}
],
+ "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_attachment_feedback_loop_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndirectCount-None-08877",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer to indicate which attachment types used by the render pass instance <strong class=\"purple\">can</strong> use feedback loops"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectCount-None-08880",
+ "text": " If there is no bound graphics pipeline and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop <strong class=\"purple\">can</strong> be active"
+ }
+ ],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_NV_inherited_viewport_scissor)": [
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-07850",
@@ -43283,10 +43519,10 @@
"text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>"
}
],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1)": [
+ "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_shader_object)": [
{
- "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-02711",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
+ "vuid": "VUID-vkCmdDrawIndirectCount-None-08885",
+ "text": " There <strong class=\"purple\">must</strong> be no shader object bound to either of the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_2)": [
@@ -43550,11 +43786,11 @@
"!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-02698",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-02700",
@@ -43580,11 +43816,11 @@
"(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-08600",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-08601",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-08606",
@@ -43685,30 +43921,48 @@
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-08699",
"text": " If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08878",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08879",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08881",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08882",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08883",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage, then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-08884",
+ "text": " If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
}
],
"(VK_VERSION_1_3,VK_KHR_maintenance4)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-maintenance4-08602",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
- "!(VK_EXT_descriptor_buffer)+!(VK_EXT_shader_object)": [
+ "!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
- }
- ],
- "!(VK_EXT_descriptor_buffer)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08603",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by <a href=\"#shaders-binding\">a bound shader</a>"
}
],
"(VK_EXT_descriptor_buffer)": [
@@ -43763,36 +44017,24 @@
"text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
- "(VK_VERSION_1_1)+!(VK_EXT_shader_object)": [
+ "(VK_VERSION_1_1)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_VERSION_1_1)+(VK_EXT_shader_object)": [
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource"
+ },
{
- "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-08614",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> object bound to a stage corresponding to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+ "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02711",
+ "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
}
],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_shader_object)": [
+ "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-06550",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-ConstOffset-06551",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08615",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-ConstOffset-08616",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_EXT_shader_image_atomic_int64)": [
@@ -44111,6 +44353,12 @@
"text": " If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the current command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the same as the number of samples for the current render pass color and/or depth/stencil attachments"
}
],
+ "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_shader_object)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08876",
+ "text": " If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
+ }
+ ],
"(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-imageView-06172",
@@ -44773,6 +45021,16 @@
"text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
}
],
+ "(VK_EXT_attachment_feedback_loop_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08877",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer to indicate which attachment types used by the render pass instance <strong class=\"purple\">can</strong> use feedback loops"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08880",
+ "text": " If there is no bound graphics pipeline and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop <strong class=\"purple\">can</strong> be active"
+ }
+ ],
"(VK_NV_inherited_viewport_scissor)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-07850",
@@ -44885,10 +45143,10 @@
"text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>"
}
],
- "(VK_VERSION_1_1)": [
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_shader_object)": [
{
- "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02711",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
+ "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08885",
+ "text": " There <strong class=\"purple\">must</strong> be no shader object bound to either of the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages"
}
]
},
@@ -45178,11 +45436,11 @@
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02698",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02700",
@@ -45208,11 +45466,11 @@
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08600",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08601",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08606",
@@ -45313,30 +45571,48 @@
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08699",
"text": " If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08878",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08879",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08881",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08882",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08883",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage, then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-08884",
+ "text": " If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_maintenance4)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-maintenance4-08602",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_EXT_descriptor_buffer)+!(VK_EXT_shader_object)": [
+ "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_EXT_descriptor_buffer)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08603",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by <a href=\"#shaders-binding\">a bound shader</a>"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_descriptor_buffer)": [
@@ -45391,36 +45667,24 @@
"text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1)+!(VK_EXT_shader_object)": [
+ "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1)+(VK_EXT_shader_object)": [
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource"
+ },
{
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-08614",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> object bound to a stage corresponding to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+ "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02711",
+ "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
}
],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_shader_object)": [
+ "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-06550",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-ConstOffset-06551",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08615",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-ConstOffset-08616",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_shader_image_atomic_int64)": [
@@ -45739,6 +46003,12 @@
"text": " If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the current command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the same as the number of samples for the current render pass color and/or depth/stencil attachments"
}
],
+ "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_shader_object)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08876",
+ "text": " If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
+ }
+ ],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-imageView-06172",
@@ -46401,6 +46671,16 @@
"text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
}
],
+ "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_attachment_feedback_loop_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08877",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer to indicate which attachment types used by the render pass instance <strong class=\"purple\">can</strong> use feedback loops"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08880",
+ "text": " If there is no bound graphics pipeline and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop <strong class=\"purple\">can</strong> be active"
+ }
+ ],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_NV_inherited_viewport_scissor)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07850",
@@ -46513,10 +46793,10 @@
"text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>"
}
],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1)": [
+ "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_shader_object)": [
{
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02711",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
+ "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08885",
+ "text": " There <strong class=\"purple\">must</strong> be no shader object bound to either of the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages"
}
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_2)": [
@@ -46764,11 +47044,11 @@
"(VK_EXT_transform_feedback)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02698",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02700",
@@ -46794,11 +47074,11 @@
"(VK_EXT_transform_feedback)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08600",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08601",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08606",
@@ -46899,30 +47179,48 @@
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08699",
"text": " If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08878",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08879",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08881",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08882",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08883",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage, then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-08884",
+ "text": " If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
}
],
"(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_maintenance4)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-maintenance4-08602",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
- "(VK_EXT_transform_feedback)+!(VK_EXT_descriptor_buffer)+!(VK_EXT_shader_object)": [
+ "(VK_EXT_transform_feedback)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
- }
- ],
- "(VK_EXT_transform_feedback)+!(VK_EXT_descriptor_buffer)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08603",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by <a href=\"#shaders-binding\">a bound shader</a>"
}
],
"(VK_EXT_transform_feedback)+(VK_EXT_descriptor_buffer)": [
@@ -46977,36 +47275,24 @@
"text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
- "(VK_EXT_transform_feedback)+(VK_VERSION_1_1)+!(VK_EXT_shader_object)": [
+ "(VK_EXT_transform_feedback)+(VK_VERSION_1_1)": [
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_VERSION_1_1)+(VK_EXT_shader_object)": [
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource"
+ },
{
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-08614",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> object bound to a stage corresponding to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+ "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02646",
+ "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
}
],
- "(VK_EXT_transform_feedback)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_shader_object)": [
+ "(VK_EXT_transform_feedback)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-06550",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-ConstOffset-06551",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08615",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-ConstOffset-08616",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_EXT_transform_feedback)+(VK_EXT_shader_image_atomic_int64)": [
@@ -47325,6 +47611,12 @@
"text": " If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the current command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the same as the number of samples for the current render pass color and/or depth/stencil attachments"
}
],
+ "(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_shader_object)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08876",
+ "text": " If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
+ }
+ ],
"(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06172",
@@ -47987,6 +48279,16 @@
"text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
}
],
+ "(VK_EXT_transform_feedback)+(VK_EXT_attachment_feedback_loop_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08877",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer to indicate which attachment types used by the render pass instance <strong class=\"purple\">can</strong> use feedback loops"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08880",
+ "text": " If there is no bound graphics pipeline and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop <strong class=\"purple\">can</strong> be active"
+ }
+ ],
"(VK_EXT_transform_feedback)+(VK_NV_inherited_viewport_scissor)": [
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07850",
@@ -48099,10 +48401,10 @@
"text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>"
}
],
- "(VK_EXT_transform_feedback)+(VK_VERSION_1_1)": [
+ "(VK_EXT_transform_feedback)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_shader_object)": [
{
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02646",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
+ "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08885",
+ "text": " There <strong class=\"purple\">must</strong> be no shader object bound to either of the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages"
}
]
},
@@ -48404,11 +48706,11 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-02698",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-02700",
@@ -48434,11 +48736,11 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-08600",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-08601",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-08606",
@@ -48539,30 +48841,32 @@
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-08699",
"text": " If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08878",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08879",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-maintenance4-08602",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_descriptor_buffer)+!(VK_EXT_shader_object)": [
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
- }
- ],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_descriptor_buffer)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08603",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by <a href=\"#shaders-binding\">a bound shader</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_descriptor_buffer)": [
@@ -48617,36 +48921,20 @@
"text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1)+!(VK_EXT_shader_object)": [
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-08614",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> object bound to a stage corresponding to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource"
}
],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_shader_object)": [
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-06550",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-ConstOffset-06551",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08615",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-ConstOffset-08616",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)": [
@@ -48957,6 +49245,12 @@
"text": " If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the current command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the same as the number of samples for the current render pass color and/or depth/stencil attachments"
}
],
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_shader_object)": [
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08876",
+ "text": " If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
+ }
+ ],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-imageView-06172",
@@ -49619,6 +49913,16 @@
"text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
}
],
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_attachment_feedback_loop_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08877",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer to indicate which attachment types used by the render pass instance <strong class=\"purple\">can</strong> use feedback loops"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08880",
+ "text": " If there is no bound graphics pipeline and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop <strong class=\"purple\">can</strong> be active"
+ }
+ ],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_inherited_viewport_scissor)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-07850",
@@ -49938,11 +50242,11 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02698",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02700",
@@ -49968,11 +50272,11 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08600",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08601",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08606",
@@ -50073,30 +50377,32 @@
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08699",
"text": " If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08878",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08879",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-maintenance4-08602",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_descriptor_buffer)+!(VK_EXT_shader_object)": [
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
- }
- ],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_descriptor_buffer)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08603",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by <a href=\"#shaders-binding\">a bound shader</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_descriptor_buffer)": [
@@ -50151,36 +50457,24 @@
"text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1)+!(VK_EXT_shader_object)": [
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1)+(VK_EXT_shader_object)": [
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource"
+ },
{
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-08614",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> object bound to a stage corresponding to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02711",
+ "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
}
],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_shader_object)": [
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-06550",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-ConstOffset-06551",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08615",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-ConstOffset-08616",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)": [
@@ -50491,6 +50785,12 @@
"text": " If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the current command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the same as the number of samples for the current render pass color and/or depth/stencil attachments"
}
],
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_shader_object)": [
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08876",
+ "text": " If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
+ }
+ ],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06172",
@@ -51153,6 +51453,16 @@
"text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
}
],
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_attachment_feedback_loop_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08877",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer to indicate which attachment types used by the render pass instance <strong class=\"purple\">can</strong> use feedback loops"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08880",
+ "text": " If there is no bound graphics pipeline and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop <strong class=\"purple\">can</strong> be active"
+ }
+ ],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_inherited_viewport_scissor)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07850",
@@ -51232,12 +51542,6 @@
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07075",
"text": " <a href=\"#queries-primitives-generated\">Primitives Generated Queries</a> <strong class=\"purple\">must</strong> not be active"
}
- ],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02711",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- }
]
},
"VkDrawMeshTasksIndirectCommandNV": {
@@ -51506,11 +51810,11 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02698",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02700",
@@ -51536,11 +51840,11 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08600",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08601",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08606",
@@ -51641,30 +51945,32 @@
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08699",
"text": " If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08878",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08879",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-maintenance4-08602",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_descriptor_buffer)+!(VK_EXT_shader_object)": [
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
- }
- ],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_descriptor_buffer)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08603",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by <a href=\"#shaders-binding\">a bound shader</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_descriptor_buffer)": [
@@ -51719,36 +52025,24 @@
"text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1)+!(VK_EXT_shader_object)": [
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1)+(VK_EXT_shader_object)": [
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource"
+ },
{
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-08614",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> object bound to a stage corresponding to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02711",
+ "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
}
],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_shader_object)": [
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06550",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-ConstOffset-06551",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08615",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-ConstOffset-08616",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)": [
@@ -52059,6 +52353,12 @@
"text": " If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the current command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the same as the number of samples for the current render pass color and/or depth/stencil attachments"
}
],
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_shader_object)": [
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08876",
+ "text": " If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
+ }
+ ],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06172",
@@ -52721,6 +53021,16 @@
"text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
}
],
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_attachment_feedback_loop_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08877",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer to indicate which attachment types used by the render pass instance <strong class=\"purple\">can</strong> use feedback loops"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08880",
+ "text": " If there is no bound graphics pipeline and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop <strong class=\"purple\">can</strong> be active"
+ }
+ ],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_inherited_viewport_scissor)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07850",
@@ -52801,12 +53111,6 @@
"text": " <a href=\"#queries-primitives-generated\">Primitives Generated Queries</a> <strong class=\"purple\">must</strong> not be active"
}
],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02711",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- }
- ],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_2)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04445",
@@ -53044,11 +53348,11 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02698",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02700",
@@ -53074,11 +53378,11 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08600",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08601",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08606",
@@ -53179,30 +53483,32 @@
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08699",
"text": " If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08878",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08879",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-maintenance4-08602",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_descriptor_buffer)+!(VK_EXT_shader_object)": [
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
- }
- ],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_descriptor_buffer)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08603",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by <a href=\"#shaders-binding\">a bound shader</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_descriptor_buffer)": [
@@ -53257,36 +53563,20 @@
"text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1)+!(VK_EXT_shader_object)": [
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksEXT-commandBuffer-08614",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> object bound to a stage corresponding to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource"
}
],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_shader_object)": [
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-06550",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-ConstOffset-06551",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08615",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksEXT-ConstOffset-08616",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_image_atomic_int64)": [
@@ -53597,6 +53887,12 @@
"text": " If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the current command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the same as the number of samples for the current render pass color and/or depth/stencil attachments"
}
],
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_shader_object)": [
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08876",
+ "text": " If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
+ }
+ ],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-imageView-06172",
@@ -54259,6 +54555,16 @@
"text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
}
],
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_attachment_feedback_loop_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08877",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer to indicate which attachment types used by the render pass instance <strong class=\"purple\">can</strong> use feedback loops"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08880",
+ "text": " If there is no bound graphics pipeline and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop <strong class=\"purple\">can</strong> be active"
+ }
+ ],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_NV_inherited_viewport_scissor)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07850",
@@ -54578,11 +54884,11 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02698",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02700",
@@ -54608,11 +54914,11 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08600",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08601",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08606",
@@ -54713,30 +55019,32 @@
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08699",
"text": " If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08878",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08879",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-maintenance4-08602",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_descriptor_buffer)+!(VK_EXT_shader_object)": [
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
- }
- ],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_descriptor_buffer)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08603",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by <a href=\"#shaders-binding\">a bound shader</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_descriptor_buffer)": [
@@ -54791,36 +55099,24 @@
"text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1)+!(VK_EXT_shader_object)": [
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1)+(VK_EXT_shader_object)": [
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource"
+ },
{
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-08614",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> object bound to a stage corresponding to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-02711",
+ "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
}
],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_shader_object)": [
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-06550",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-ConstOffset-06551",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08615",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-ConstOffset-08616",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_image_atomic_int64)": [
@@ -55131,6 +55427,12 @@
"text": " If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the current command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the same as the number of samples for the current render pass color and/or depth/stencil attachments"
}
],
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_shader_object)": [
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08876",
+ "text": " If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
+ }
+ ],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06172",
@@ -55793,6 +56095,16 @@
"text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
}
],
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_attachment_feedback_loop_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08877",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer to indicate which attachment types used by the render pass instance <strong class=\"purple\">can</strong> use feedback loops"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08880",
+ "text": " If there is no bound graphics pipeline and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop <strong class=\"purple\">can</strong> be active"
+ }
+ ],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_NV_inherited_viewport_scissor)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07850",
@@ -55872,12 +56184,6 @@
"vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07075",
"text": " <a href=\"#queries-primitives-generated\">Primitives Generated Queries</a> <strong class=\"purple\">must</strong> not be active"
}
- ],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-02711",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- }
]
},
"VkDrawMeshTasksIndirectCommandEXT": {
@@ -56174,11 +56480,11 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02698",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02700",
@@ -56204,11 +56510,11 @@
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08600",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08601",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08606",
@@ -56309,30 +56615,32 @@
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08699",
"text": " If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08878",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08879",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-maintenance4-08602",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_descriptor_buffer)+!(VK_EXT_shader_object)": [
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
- }
- ],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_descriptor_buffer)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08603",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by <a href=\"#shaders-binding\">a bound shader</a>"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_descriptor_buffer)": [
@@ -56387,36 +56695,24 @@
"text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1)+!(VK_EXT_shader_object)": [
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1)+(VK_EXT_shader_object)": [
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource"
+ },
{
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-08614",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> object bound to a stage corresponding to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-02711",
+ "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
}
],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_shader_object)": [
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06550",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-ConstOffset-06551",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08615",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-ConstOffset-08616",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_image_atomic_int64)": [
@@ -56727,6 +57023,12 @@
"text": " If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the current command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the same as the number of samples for the current render pass color and/or depth/stencil attachments"
}
],
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_shader_object)": [
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08876",
+ "text": " If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
+ }
+ ],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06172",
@@ -57389,6 +57691,16 @@
"text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
}
],
+ "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_attachment_feedback_loop_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08877",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer to indicate which attachment types used by the render pass instance <strong class=\"purple\">can</strong> use feedback loops"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08880",
+ "text": " If there is no bound graphics pipeline and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop <strong class=\"purple\">can</strong> be active"
+ }
+ ],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_NV_inherited_viewport_scissor)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07850",
@@ -57469,12 +57781,6 @@
"text": " <a href=\"#queries-primitives-generated\">Primitives Generated Queries</a> <strong class=\"purple\">must</strong> not be active"
}
],
- "(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-02711",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- }
- ],
"(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_2)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04445",
@@ -57692,11 +57998,11 @@
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-02698",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-02700",
@@ -57722,11 +58028,11 @@
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08600",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08601",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08606",
@@ -57827,30 +58133,32 @@
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08699",
"text": " If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08878",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08879",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-maintenance4-08602",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
- "(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+!(VK_EXT_descriptor_buffer)+!(VK_EXT_shader_object)": [
+ "(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
- }
- ],
- "(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+!(VK_EXT_descriptor_buffer)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08603",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by <a href=\"#shaders-binding\">a bound shader</a>"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_EXT_descriptor_buffer)": [
@@ -57905,36 +58213,20 @@
"text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
- "(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_1)+!(VK_EXT_shader_object)": [
+ "(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_1)": [
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource"
}
],
- "(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_1)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawClusterHUAWEI-commandBuffer-08614",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> object bound to a stage corresponding to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_shader_object)": [
+ "(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-06550",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-ConstOffset-06551",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08615",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdDrawClusterHUAWEI-ConstOffset-08616",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_EXT_shader_image_atomic_int64)": [
@@ -58245,6 +58537,12 @@
"text": " If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the current command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the same as the number of samples for the current render pass color and/or depth/stencil attachments"
}
],
+ "(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_shader_object)": [
+ {
+ "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08876",
+ "text": " If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
+ }
+ ],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-imageView-06172",
@@ -58907,6 +59205,16 @@
"text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
}
],
+ "(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_EXT_attachment_feedback_loop_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08877",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer to indicate which attachment types used by the render pass instance <strong class=\"purple\">can</strong> use feedback loops"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08880",
+ "text": " If there is no bound graphics pipeline and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop <strong class=\"purple\">can</strong> be active"
+ }
+ ],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_NV_inherited_viewport_scissor)": [
{
"vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07850",
@@ -59210,11 +59518,11 @@
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-02698",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-02700",
@@ -59240,11 +59548,11 @@
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08600",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08601",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08606",
@@ -59345,30 +59653,32 @@
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08699",
"text": " If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08878",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08879",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-maintenance4-08602",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
- "(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+!(VK_EXT_descriptor_buffer)+!(VK_EXT_shader_object)": [
+ "(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
- }
- ],
- "(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+!(VK_EXT_descriptor_buffer)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08603",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by <a href=\"#shaders-binding\">a bound shader</a>"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_EXT_descriptor_buffer)": [
@@ -59423,36 +59733,20 @@
"text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
- "(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_1)+!(VK_EXT_shader_object)": [
+ "(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_1)": [
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_1)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-08614",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> object bound to a stage corresponding to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource"
}
],
- "(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_shader_object)": [
+ "(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-06550",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-ConstOffset-06551",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08615",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-ConstOffset-08616",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_EXT_shader_image_atomic_int64)": [
@@ -59763,6 +60057,12 @@
"text": " If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the current command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the same as the number of samples for the current render pass color and/or depth/stencil attachments"
}
],
+ "(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_shader_object)": [
+ {
+ "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08876",
+ "text": " If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
+ }
+ ],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06172",
@@ -60425,6 +60725,16 @@
"text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
}
],
+ "(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_EXT_attachment_feedback_loop_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08877",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer to indicate which attachment types used by the render pass instance <strong class=\"purple\">can</strong> use feedback loops"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08880",
+ "text": " If there is no bound graphics pipeline and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop <strong class=\"purple\">can</strong> be active"
+ }
+ ],
"(VK_HUAWEI_cluster_culling_shader)+(VK_HUAWEI_cluster_culling_shader)+(VK_NV_inherited_viewport_scissor)": [
{
"vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07850",
@@ -65246,11 +65556,11 @@
"!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDispatch-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDispatch-None-02698",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDispatch-None-02700",
@@ -65276,11 +65586,11 @@
"(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDispatch-None-08600",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDispatch-None-08601",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDispatch-None-08606",
@@ -65318,25 +65628,19 @@
"(VK_VERSION_1_3,VK_KHR_maintenance4)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDispatch-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDispatch-maintenance4-08602",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
- "!(VK_EXT_descriptor_buffer)+!(VK_EXT_shader_object)": [
+ "!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDispatch-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
- }
- ],
- "!(VK_EXT_descriptor_buffer)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDispatch-None-08603",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by <a href=\"#shaders-binding\">a bound shader</a>"
}
],
"(VK_EXT_descriptor_buffer)": [
@@ -65391,36 +65695,28 @@
"text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
- "(VK_VERSION_1_1)+!(VK_EXT_shader_object)": [
+ "(VK_VERSION_1_1)": [
{
"vuid": "VUID-vkCmdDispatch-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_VERSION_1_1)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDispatch-commandBuffer-08614",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> object bound to a stage corresponding to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_shader_object)": [
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource"
+ },
{
- "vuid": "VUID-vkCmdDispatch-None-06550",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "vuid": "VUID-vkCmdDispatch-commandBuffer-02712",
+ "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource"
},
{
- "vuid": "VUID-vkCmdDispatch-ConstOffset-06551",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "vuid": "VUID-vkCmdDispatch-commandBuffer-02713",
+ "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource"
}
],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_shader_object)": [
+ "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
- "vuid": "VUID-vkCmdDispatch-None-08615",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "vuid": "VUID-vkCmdDispatch-None-06550",
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
- "vuid": "VUID-vkCmdDispatch-ConstOffset-08616",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "vuid": "VUID-vkCmdDispatch-ConstOffset-06551",
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_EXT_shader_image_atomic_int64)": [
@@ -65483,16 +65779,6 @@
"text": " If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
}
],
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdDispatch-commandBuffer-02712",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource"
- },
- {
- "vuid": "VUID-vkCmdDispatch-commandBuffer-02713",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource"
- }
- ],
"(VK_VERSION_1_1)+(VK_KHR_ray_query)": [
{
"vuid": "VUID-vkCmdDispatch-commandBuffer-04617",
@@ -65642,11 +65928,11 @@
"!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDispatchIndirect-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDispatchIndirect-None-02698",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDispatchIndirect-None-02700",
@@ -65672,11 +65958,11 @@
"(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDispatchIndirect-None-08600",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDispatchIndirect-None-08601",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDispatchIndirect-None-08606",
@@ -65714,25 +66000,19 @@
"(VK_VERSION_1_3,VK_KHR_maintenance4)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDispatchIndirect-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDispatchIndirect-maintenance4-08602",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
- "!(VK_EXT_descriptor_buffer)+!(VK_EXT_shader_object)": [
+ "!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDispatchIndirect-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
- }
- ],
- "!(VK_EXT_descriptor_buffer)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDispatchIndirect-None-08603",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by <a href=\"#shaders-binding\">a bound shader</a>"
}
],
"(VK_EXT_descriptor_buffer)": [
@@ -65787,36 +66067,24 @@
"text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
- "(VK_VERSION_1_1)+!(VK_EXT_shader_object)": [
+ "(VK_VERSION_1_1)": [
{
"vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_VERSION_1_1)+(VK_EXT_shader_object)": [
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource"
+ },
{
- "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-08614",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> object bound to a stage corresponding to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+ "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-02711",
+ "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
}
],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_shader_object)": [
+ "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdDispatchIndirect-None-06550",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdDispatchIndirect-ConstOffset-06551",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDispatchIndirect-None-08615",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-ConstOffset-08616",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_EXT_shader_image_atomic_int64)": [
@@ -65878,12 +66146,6 @@
"vuid": "VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06978",
"text": " If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
}
- ],
- "(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-02711",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
- }
]
},
"VkDispatchIndirectCommand": {
@@ -66048,11 +66310,11 @@
"(VK_VERSION_1_1,VK_KHR_device_group)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDispatchBase-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDispatchBase-None-02698",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDispatchBase-None-02700",
@@ -66078,11 +66340,11 @@
"(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDispatchBase-None-08600",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDispatchBase-None-08601",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdDispatchBase-None-08606",
@@ -66120,25 +66382,19 @@
"(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_3,VK_KHR_maintenance4)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDispatchBase-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdDispatchBase-maintenance4-08602",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
- "(VK_VERSION_1_1,VK_KHR_device_group)+!(VK_EXT_descriptor_buffer)+!(VK_EXT_shader_object)": [
+ "(VK_VERSION_1_1,VK_KHR_device_group)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdDispatchBase-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_device_group)+!(VK_EXT_descriptor_buffer)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDispatchBase-None-08603",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by <a href=\"#shaders-binding\">a bound shader</a>"
}
],
"(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_descriptor_buffer)": [
@@ -66193,36 +66449,28 @@
"text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
- "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_1)+!(VK_EXT_shader_object)": [
+ "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_1)": [
{
"vuid": "VUID-vkCmdDispatchBase-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_1)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdDispatchBase-commandBuffer-08614",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> object bound to a stage corresponding to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_shader_object)": [
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource"
+ },
{
- "vuid": "VUID-vkCmdDispatchBase-None-06550",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "vuid": "VUID-vkCmdDispatchBase-commandBuffer-02712",
+ "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource"
},
{
- "vuid": "VUID-vkCmdDispatchBase-ConstOffset-06551",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "vuid": "VUID-vkCmdDispatchBase-commandBuffer-02713",
+ "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource"
}
],
- "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_shader_object)": [
+ "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
- "vuid": "VUID-vkCmdDispatchBase-None-08615",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "vuid": "VUID-vkCmdDispatchBase-None-06550",
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
- "vuid": "VUID-vkCmdDispatchBase-ConstOffset-08616",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "vuid": "VUID-vkCmdDispatchBase-ConstOffset-06551",
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_shader_image_atomic_int64)": [
@@ -66285,16 +66533,6 @@
"text": " If any command other than <code>OpImageWeightedSampleQCOM</code>, <code>OpImageBoxFilterQCOM</code>, <code>OpImageBlockMatchSSDQCOM</code>, or <code>OpImageBlockMatchSADQCOM</code> uses a <a href=\"#VkSampler\">VkSampler</a> as a result of this command, then the sampler <strong class=\"purple\">must</strong> not have been created with <code>VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM</code>"
}
],
- "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_1)": [
- {
- "vuid": "VUID-vkCmdDispatchBase-commandBuffer-02712",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource written to by the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be an unprotected resource"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-commandBuffer-02713",
- "text": " If <code>commandBuffer</code> is a protected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, pipeline stages other than the framebuffer-space and compute stages in the <code>VkPipeline</code> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not write to any resource"
- }
- ],
"(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_1)+(VK_KHR_ray_query)": [
{
"vuid": "VUID-vkCmdDispatchBase-commandBuffer-04617",
@@ -66424,11 +66662,11 @@
"(VK_HUAWEI_subpass_shading)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02698",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02700",
@@ -66454,11 +66692,11 @@
"(VK_HUAWEI_subpass_shading)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08600",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08601",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08606",
@@ -66496,25 +66734,19 @@
"(VK_HUAWEI_subpass_shading)+(VK_VERSION_1_3,VK_KHR_maintenance4)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_HUAWEI_subpass_shading)+(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-maintenance4-08602",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
- "(VK_HUAWEI_subpass_shading)+!(VK_EXT_descriptor_buffer)+!(VK_EXT_shader_object)": [
+ "(VK_HUAWEI_subpass_shading)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
- }
- ],
- "(VK_HUAWEI_subpass_shading)+!(VK_EXT_descriptor_buffer)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08603",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by <a href=\"#shaders-binding\">a bound shader</a>"
}
],
"(VK_HUAWEI_subpass_shading)+(VK_EXT_descriptor_buffer)": [
@@ -66569,36 +66801,20 @@
"text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
- "(VK_HUAWEI_subpass_shading)+(VK_VERSION_1_1)+!(VK_EXT_shader_object)": [
+ "(VK_HUAWEI_subpass_shading)+(VK_VERSION_1_1)": [
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource"
}
],
- "(VK_HUAWEI_subpass_shading)+(VK_VERSION_1_1)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-08614",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> object bound to a stage corresponding to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_HUAWEI_subpass_shading)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_shader_object)": [
+ "(VK_HUAWEI_subpass_shading)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-06550",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-ConstOffset-06551",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_HUAWEI_subpass_shading)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-08615",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-ConstOffset-08616",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_HUAWEI_subpass_shading)+(VK_EXT_shader_image_atomic_int64)": [
@@ -67212,11 +67428,11 @@
"(VK_NV_device_generated_commands)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02698",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02700",
@@ -67242,11 +67458,11 @@
"(VK_NV_device_generated_commands)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08600",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08601",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08606",
@@ -67347,30 +67563,48 @@
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08699",
"text": " If any graphics shader is bound which was created with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag, any stages in between stages whose shaders which did not create a shader with the <code>VK_SHADER_CREATE_LINK_STAGE_BIT_EXT</code> flag as part of the same <a href=\"#vkCreateShadersEXT\">vkCreateShadersEXT</a> call <strong class=\"purple\">must</strong> not have any <code>VkShaderEXT</code> bound"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08878",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined push constant ranges"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08879",
+ "text": " All bound graphics shader objects <strong class=\"purple\">must</strong> have been created with identical or identically defined arrays of descriptor set layouts"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08881",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, then <a href=\"#vkCmdSetPrimitiveTopology\">vkCmdSetPrimitiveTopology</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08882",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code> stage, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08883",
+ "text": " If a shader object is bound to the <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> stage, then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-08884",
+ "text": " If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, <a href=\"#vkCmdSetPrimitiveRestartEnable\">vkCmdSetPrimitiveRestartEnable</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
}
],
"(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_maintenance4)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-maintenance4-08602",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
- "(VK_NV_device_generated_commands)+!(VK_EXT_descriptor_buffer)+!(VK_EXT_shader_object)": [
+ "(VK_NV_device_generated_commands)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
- }
- ],
- "(VK_NV_device_generated_commands)+!(VK_EXT_descriptor_buffer)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08603",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by <a href=\"#shaders-binding\">a bound shader</a>"
}
],
"(VK_NV_device_generated_commands)+(VK_EXT_descriptor_buffer)": [
@@ -67425,36 +67659,24 @@
"text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
- "(VK_NV_device_generated_commands)+(VK_VERSION_1_1)+!(VK_EXT_shader_object)": [
+ "(VK_NV_device_generated_commands)+(VK_VERSION_1_1)": [
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_VERSION_1_1)+(VK_EXT_shader_object)": [
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource"
+ },
{
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-08614",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> object bound to a stage corresponding to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02970",
+ "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
}
],
- "(VK_NV_device_generated_commands)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_shader_object)": [
+ "(VK_NV_device_generated_commands)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06550",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-ConstOffset-06551",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08615",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-ConstOffset-08616",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_NV_device_generated_commands)+(VK_EXT_shader_image_atomic_int64)": [
@@ -67773,6 +67995,12 @@
"text": " If a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and neither the <code><a href=\"#VK_AMD_mixed_attachment_samples\">VK_AMD_mixed_attachment_samples</a></code> nor the <code><a href=\"#VK_NV_framebuffer_mixed_samples\">VK_NV_framebuffer_mixed_samples</a></code> extensions are enabled, then the most recent call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> in the current command buffer <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to be the same as the number of samples for the current render pass color and/or depth/stencil attachments"
}
],
+ "(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_shader_object)": [
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08876",
+ "text": " If a shader object is bound to any graphics stage, the current render pass instance <strong class=\"purple\">must</strong> have been begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>"
+ }
+ ],
"(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06172",
@@ -68435,6 +68663,16 @@
"text": " If the currently bound pipeline was created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>, then <a href=\"#queries-mesh-shader\">Mesh Shader Queries</a> must not be active"
}
],
+ "(VK_NV_device_generated_commands)+(VK_EXT_attachment_feedback_loop_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08877",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT</code> dynamic state <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer to indicate which attachment types used by the render pass instance <strong class=\"purple\">can</strong> use feedback loops"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08880",
+ "text": " If there is no bound graphics pipeline and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, <a href=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called on the current command buffer for each image aspect corresponding to an attachment type used by the render pass instance for which a feedback loop <strong class=\"purple\">can</strong> be active"
+ }
+ ],
"(VK_NV_device_generated_commands)+(VK_NV_inherited_viewport_scissor)": [
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07850",
@@ -68547,10 +68785,10 @@
"text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>"
}
],
- "(VK_NV_device_generated_commands)+(VK_VERSION_1_1)": [
+ "(VK_NV_device_generated_commands)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_shader_object)": [
{
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02970",
- "text": " <code>commandBuffer</code> <strong class=\"purple\">must</strong> not be a protected command buffer"
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08885",
+ "text": " There <strong class=\"purple\">must</strong> be no shader object bound to either of the <code>VK_SHADER_STAGE_TASK_BIT_EXT</code> or <code>VK_SHADER_STAGE_MESH_BIT_EXT</code> stages"
}
],
"(VK_NV_device_generated_commands)+(VK_EXT_transform_feedback)": [
@@ -75622,11 +75860,11 @@
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdTraceRaysNV-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdTraceRaysNV-None-02698",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdTraceRaysNV-None-02700",
@@ -75652,11 +75890,11 @@
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdTraceRaysNV-None-08600",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdTraceRaysNV-None-08601",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdTraceRaysNV-None-08606",
@@ -75694,25 +75932,19 @@
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_3,VK_KHR_maintenance4)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdTraceRaysNV-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdTraceRaysNV-maintenance4-08602",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+!(VK_EXT_descriptor_buffer)+!(VK_EXT_shader_object)": [
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdTraceRaysNV-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+!(VK_EXT_descriptor_buffer)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdTraceRaysNV-None-08603",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by <a href=\"#shaders-binding\">a bound shader</a>"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_EXT_descriptor_buffer)": [
@@ -75767,36 +75999,20 @@
"text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_1)+!(VK_EXT_shader_object)": [
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_1)": [
{
"vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_1)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-08614",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> object bound to a stage corresponding to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource"
}
],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_shader_object)": [
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdTraceRaysNV-None-06550",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdTraceRaysNV-ConstOffset-06551",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdTraceRaysNV-None-08615",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-ConstOffset-08616",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_EXT_shader_image_atomic_int64)": [
@@ -76130,11 +76346,11 @@
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdTraceRaysKHR-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdTraceRaysKHR-None-02698",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdTraceRaysKHR-None-02700",
@@ -76160,11 +76376,11 @@
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdTraceRaysKHR-None-08600",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdTraceRaysKHR-None-08601",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdTraceRaysKHR-None-08606",
@@ -76202,25 +76418,19 @@
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_KHR_maintenance4)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdTraceRaysKHR-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdTraceRaysKHR-maintenance4-08602",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_EXT_descriptor_buffer)+!(VK_EXT_shader_object)": [
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdTraceRaysKHR-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_EXT_descriptor_buffer)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-None-08603",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by <a href=\"#shaders-binding\">a bound shader</a>"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_descriptor_buffer)": [
@@ -76275,36 +76485,20 @@
"text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1)+!(VK_EXT_shader_object)": [
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1)": [
{
"vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource"
}
],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-08614",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> object bound to a stage corresponding to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_shader_object)": [
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdTraceRaysKHR-None-06550",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdTraceRaysKHR-ConstOffset-06551",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-None-08615",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-ConstOffset-08616",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_shader_image_atomic_int64)": [
@@ -76722,11 +76916,11 @@
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02698",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02700",
@@ -76752,11 +76946,11 @@
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08600",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08601",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08606",
@@ -76794,25 +76988,19 @@
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_KHR_maintenance4)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-maintenance4-08602",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_EXT_descriptor_buffer)+!(VK_EXT_shader_object)": [
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_EXT_descriptor_buffer)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08603",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by <a href=\"#shaders-binding\">a bound shader</a>"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_descriptor_buffer)": [
@@ -76867,36 +77055,20 @@
"text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1)+!(VK_EXT_shader_object)": [
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource"
}
],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-08614",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> object bound to a stage corresponding to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_shader_object)": [
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-06550",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-ConstOffset-06551",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-08615",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-ConstOffset-08616",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_shader_image_atomic_int64)": [
@@ -77136,11 +77308,11 @@
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02697",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02698",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02700",
@@ -77166,11 +77338,11 @@
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08600",
- "text": " For each set <em>n</em> that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each set <em>n</em> that is statically used <a href=\"#shaders-binding\">a bound shader</a>, a descriptor set <strong class=\"purple\">must</strong> have been bound to <em>n</em> at the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for set <em>n</em>, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> array that was used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08601",
- "text": " For each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " For each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08606",
@@ -77208,25 +77380,19 @@
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_VERSION_1_3,VK_KHR_maintenance4)+!(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-maintenance4-06425",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> used to create the current <a href=\"#VkPipeline\">VkPipeline</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_shader_object)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-maintenance4-08602",
- "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
+ "text": " If the <a href=\"#features-maintenance4\"><code>maintenance4</code></a> feature is not enabled, then for each push constant that is statically used by <a href=\"#shaders-binding\">a bound shader</a>, a push constant value <strong class=\"purple\">must</strong> have been set for the same pipeline bind point, with a <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> that is compatible for push constants, with the <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> or <a href=\"#VkDescriptorSetLayout\">VkDescriptorSetLayout</a> and <a href=\"#VkPushConstantRange\">VkPushConstantRange</a> arrays used to create the current <a href=\"#VkPipeline\">VkPipeline</a> or <a href=\"#VkShaderEXT\">VkShaderEXT</a>, as described in <a href=\"#descriptorsets-compatibility\">Pipeline Layout Compatibility</a>"
}
],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+!(VK_EXT_descriptor_buffer)+!(VK_EXT_shader_object)": [
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+!(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-02699",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+!(VK_EXT_descriptor_buffer)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08603",
- "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by the <a href=\"#VkPipeline\">VkPipeline</a> bound to the pipeline bind point used by this command, or by any of the <a href=\"#VkShaderEXT\">VkShaderEXT</a> objects bound to stages corresponding to the pipeline bind point used by this command"
+ "text": " Descriptors in each bound descriptor set, specified via <a href=\"#vkCmdBindDescriptorSets\">vkCmdBindDescriptorSets</a>, <strong class=\"purple\">must</strong> be valid as described by <a href=\"#descriptor-validity\">descriptor validity</a> if they are statically used by <a href=\"#shaders-binding\">a bound shader</a>"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_EXT_descriptor_buffer)": [
@@ -77281,36 +77447,20 @@
"text": " If any stage of the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT</code> or <code>VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT</code> for <code>storageBuffers</code>, and the <a href=\"#features-robustBufferAccess\"><code>robustBufferAccess</code></a> feature is not enabled, that stage <strong class=\"purple\">must</strong> not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point"
}
],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_VERSION_1_1)+!(VK_EXT_shader_object)": [
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_VERSION_1_1)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-02707",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_VERSION_1_1)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-08614",
- "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> object bound to a stage corresponding to the pipeline bind point used by this command <strong class=\"purple\">must</strong> not be a protected resource"
+ "text": " If <code>commandBuffer</code> is an unprotected command buffer and <a href=\"#limits-protectedNoFault\"><code>protectedNoFault</code></a> is not supported, any resource accessed by <a href=\"#shaders-binding\">bound shaders</a> <strong class=\"purple\">must</strong> not be a protected resource"
}
],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_shader_object)": [
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-06550",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
},
{
"vuid": "VUID-vkCmdTraceRaysIndirect2KHR-ConstOffset-06551",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_shader_object)": [
- {
- "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-08615",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> only be used with <code>OpImageSample*</code> or <code>OpImageSparseSample*</code> instructions"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-ConstOffset-08616",
- "text": " If the <a href=\"#VkPipeline\">VkPipeline</a> object bound to the pipeline bind point used by this command or any <a href=\"#VkShaderEXT\">VkShaderEXT</a> bound to a stage corresponding to the pipeline bind point used by this command accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
+ "text": " If <a href=\"#shaders-binding\">a bound shader</a> accesses a <a href=\"#VkSampler\">VkSampler</a> or <a href=\"#VkImageView\">VkImageView</a> object that enables <a href=\"#samplers-YCbCr-conversion\">sampler {YCbCr} conversion</a>, that object <strong class=\"purple\">must</strong> not use the <code>ConstOffset</code> and <code>Offset</code> operands"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_EXT_shader_image_atomic_int64)": [
@@ -80626,6 +80776,14 @@
}
]
},
+ "VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT": {
+ "(VK_EXT_attachment_feedback_loop_dynamic_state)": [
+ {
+ "vuid": "VUID-VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT-sType-sType",
+ "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT</code>"
+ }
+ ]
+ },
"VkPhysicalDeviceTextureCompressionASTCHDRFeatures": {
"(VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr)": [
{
@@ -83920,19 +84078,19 @@
},
{
"vuid": "VUID-RuntimeSpirv-Offset-06344",
- "text": " The first element of the <code>Offset</code> operand of <code>InterpolateAtOffset</code> <strong class=\"purple\">must</strong> be greater than or equal to:"
+ "text": " The first element of the <code>Offset</code> operand of <code>InterpolateAtOffset</code> <strong class=\"purple\">must</strong> be greater than or equal to:<br> <span class=\"eq\">frag<sub>width</sub> {times} <a href=\"#limits-minInterpolationOffset\"><code>minInterpolationOffset</code></a></span><br> where <span class=\"eq\">frag<sub>width</sub></span> is the width of the current fragment in pixels"
},
{
"vuid": "VUID-RuntimeSpirv-Offset-06345",
- "text": " The first element of the <code>Offset</code> operand of <code>InterpolateAtOffset</code> <strong class=\"purple\">must</strong> be less than or equal to:"
+ "text": " The first element of the <code>Offset</code> operand of <code>InterpolateAtOffset</code> <strong class=\"purple\">must</strong> be less than or equal to<br> <span class=\"eq\">frag<sub>width</sub> {times} (<a href=\"#limits-maxInterpolationOffset\"><code>maxInterpolationOffset</code></a> &#43; ULP ) - ULP</span><br> where <span class=\"eq\">frag<sub>width</sub></span> is the width of the current fragment in pixels and <span class=\"eq\">ULP = 1 / 2^<a href=\"#limits-subPixelInterpolationOffsetBits\"><code>subPixelInterpolationOffsetBits</code></a>^</span>"
},
{
"vuid": "VUID-RuntimeSpirv-Offset-06346",
- "text": " The second element of the <code>Offset</code> operand of <code>InterpolateAtOffset</code> <strong class=\"purple\">must</strong> be greater than or equal to:"
+ "text": " The second element of the <code>Offset</code> operand of <code>InterpolateAtOffset</code> <strong class=\"purple\">must</strong> be greater than or equal to<br> <span class=\"eq\">frag<sub>height</sub> {times} <a href=\"#limits-minInterpolationOffset\"><code>minInterpolationOffset</code></a></span><br> where <span class=\"eq\">frag<sub>height</sub></span> is the height of the current fragment in pixels"
},
{
"vuid": "VUID-RuntimeSpirv-Offset-06347",
- "text": " The second element of the <code>Offset</code> operand of <code>InterpolateAtOffset</code> <strong class=\"purple\">must</strong> be less than or equal to:"
+ "text": " The second element of the <code>Offset</code> operand of <code>InterpolateAtOffset</code> <strong class=\"purple\">must</strong> be less than or equal to<br> <span class=\"eq\">frag<sub>height</sub> {times} (<a href=\"#limits-maxInterpolationOffset\"><code>maxInterpolationOffset</code></a> &#43; ULP ) - ULP</span><br> where <span class=\"eq\">frag<sub>height</sub></span> is the height of the current fragment in pixels and <span class=\"eq\">ULP = 1 / 2^<a href=\"#limits-subPixelInterpolationOffsetBits\"><code>subPixelInterpolationOffsetBits</code></a>^</span>."
},
{
"vuid": "VUID-RuntimeSpirv-x-06429",
@@ -84690,11 +84848,11 @@
},
{
"vuid": "VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06986",
- "text": " If an <code>OpImageBlockMatchSSDQCOM</code> or <code>OpImageBlockMatchSADQCOM</code> operation is used, then <code>target</code> <code>sampled</code> <code>image</code> and <code>reference</code> <code>sampled</code> <code>image</code> parameters <strong class=\"purple\">must</strong> have been created with sampler object with <code>unnormalizeCordinates</code> equal to <code>VK_TRUE</code>"
+ "text": " If an <code>OpImageBlockMatchSSDQCOM</code> or <code>OpImageBlockMatchSADQCOM</code> operation is used, then <code>target</code> <code>sampled</code> <code>image</code> and <code>reference</code> <code>sampled</code> <code>image</code> parameters <strong class=\"purple\">must</strong> have been created with sampler object with <code>unnormalizeCordinates</code> equal to <code>VK_TRUE</code>"
},
{
"vuid": "VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06987",
- "text": " If an <code>OpImageBlockMatchSSDQCOM</code> or <code>OpImageBlockMatchSADQCOM</code> operation is used, then <code>target</code> <code>sampled</code> <code>image</code> and <code>reference</code> <code>sampled</code> <code>image</code> parameters <strong class=\"purple\">must</strong> have been created with sampler object with <code>unnormalizeCordinates</code> equal to <code>VK_TRUE</code>"
+ "text": " If an <code>OpImageBlockMatchSSDQCOM</code> or <code>OpImageBlockMatchSADQCOM</code> operation is used, then <code>target</code> <code>sampled</code> <code>image</code> and <code>reference</code> <code>sampled</code> <code>image</code> parameters <strong class=\"purple\">must</strong> have been created with sampler object with <code>unnormalizeCordinates</code> equal to <code>VK_TRUE</code>"
},
{
"vuid": "VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06988",
diff --git a/registry/vk.xml b/registry/vk.xml
index b6f3ad0..fb40a48 100644
--- a/registry/vk.xml
+++ b/registry/vk.xml
@@ -173,7 +173,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> 249</type>
+#define <name>VK_HEADER_VERSION</name> 250</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
@@ -6116,6 +6116,11 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
<member><type>VkBool32</type> <name>imageSlicedViewOf3D</name></member>
</type>
+ <type category="struct" name="VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+ <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
+ <member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
+ <member><type>VkBool32</type> <name>attachmentFeedbackLoopDynamicState</name></member>
+ </type>
<type category="struct" name="VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
@@ -10897,6 +10902,11 @@ typedef void* <name>MTLSharedEvent_id</name>;
<param><type>VkPipeline</type> <name>pipeline</name></param>
</command>
<command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary" tasks="state">
+ <proto><type>void</type> <name>vkCmdSetAttachmentFeedbackLoopEnableEXT</name></proto>
+ <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
+ <param><type>VkImageAspectFlags</type> <name>aspectMask</name></param>
+ </command>
+ <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary" tasks="state">
<proto><type>void</type> <name>vkCmdSetViewport</name></proto>
<param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
<param><type>uint32_t</type> <name>firstViewport</name></param>
@@ -22127,6 +22137,34 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="&quot;VK_EXT_extension_524&quot;" name="VK_EXT_EXTENSION_524_EXTENSION_NAME"/>
</require>
</extension>
+ <extension name="VK_EXT_attachment_feedback_loop_dynamic_state" number="525" type="device" author="EXT" depends="VK_KHR_get_physical_device_properties2+VK_EXT_attachment_feedback_loop_layout" contact="Mike Blumenkrantz @zmike" supported="vulkan">
+ <require>
+ <enum value="1" name="VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION"/>
+ <enum value="&quot;VK_EXT_attachment_feedback_loop_dynamic_state&quot;" name="VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME"/>
+ <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT"/>
+ <enum offset="0" extends="VkDynamicState" name="VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT"/>
+ <type name="VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT"/>
+ <command name="vkCmdSetAttachmentFeedbackLoopEnableEXT"/>
+ </require>
+ </extension>
+ <extension name="VK_EXT_extension_526" number="526" author="EXT" contact="Shahbaz Youssefi @syoussefi" supported="disabled">
+ <require>
+ <enum value="0" name="VK_EXT_EXTENSION_526_SPEC_VERSION"/>
+ <enum value="&quot;VK_EXT_extension_526&quot;" name="VK_EXT_EXTENSION_526_EXTENSION_NAME"/>
+ </require>
+ </extension>
+ <extension name="VK_EXT_extension_527" number="527" author="EXT" contact="Shahbaz Youssefi @syoussefi" supported="disabled">
+ <require>
+ <enum value="0" name="VK_EXT_EXTENSION_527_SPEC_VERSION"/>
+ <enum value="&quot;VK_EXT_extension_527&quot;" name="VK_EXT_EXTENSION_527_EXTENSION_NAME"/>
+ </require>
+ </extension>
+ <extension name="VK_EXT_extension_528" number="528" author="EXT" contact="Shahbaz Youssefi @syoussefi" supported="disabled">
+ <require>
+ <enum value="0" name="VK_EXT_EXTENSION_528_SPEC_VERSION"/>
+ <enum value="&quot;VK_EXT_extension_528&quot;" name="VK_EXT_EXTENSION_528_EXTENSION_NAME"/>
+ </require>
+ </extension>
</extensions>
<formats>
<format name="VK_FORMAT_R4G4_UNORM_PACK8" class="8-bit" blockSize="1" texelsPerBlock="1" packed="8">