diff options
author | Jon Leech <[email protected]> | 2023-09-29 02:43:21 -0700 |
---|---|---|
committer | Jon Leech <[email protected]> | 2023-09-29 02:57:03 -0700 |
commit | 7e691380166fb1cd9b193ac9db896bc23a4ea9ad (patch) | |
tree | f2c708e6962c53b97b60901c3c23d7fccf48fe70 | |
parent | df60f0316899460eeaaefa06d2dd7e4e300c1604 (diff) | |
download | Vulkan-Headers-1.3.266.tar.gz Vulkan-Headers-1.3.266.zip |
Update for Vulkan-Docs 1.3.266v1.3.266
-rw-r--r-- | include/vulkan/vulkan.cppm | 22 | ||||
-rw-r--r-- | include/vulkan/vulkan.hpp | 147 | ||||
-rw-r--r-- | include/vulkan/vulkan_android.h | 26 | ||||
-rw-r--r-- | include/vulkan/vulkan_core.h | 150 | ||||
-rw-r--r-- | include/vulkan/vulkan_enums.hpp | 54 | ||||
-rw-r--r-- | include/vulkan/vulkan_extension_inspection.hpp | 28 | ||||
-rw-r--r-- | include/vulkan/vulkan_funcs.hpp | 111 | ||||
-rw-r--r-- | include/vulkan/vulkan_handles.hpp | 68 | ||||
-rw-r--r-- | include/vulkan/vulkan_hash.hpp | 187 | ||||
-rw-r--r-- | include/vulkan/vulkan_raii.hpp | 88 | ||||
-rw-r--r-- | include/vulkan/vulkan_static_assertions.hpp | 83 | ||||
-rw-r--r-- | include/vulkan/vulkan_structs.hpp | 1378 | ||||
-rw-r--r-- | include/vulkan/vulkan_to_string.hpp | 54 | ||||
-rwxr-xr-x | registry/genvk.py | 3 | ||||
-rw-r--r-- | registry/validusage.json | 1719 | ||||
-rw-r--r-- | registry/vk.xml | 186 |
16 files changed, 4163 insertions, 141 deletions
diff --git a/include/vulkan/vulkan.cppm b/include/vulkan/vulkan.cppm index 93b248c..cdcd1be 100644 --- a/include/vulkan/vulkan.cppm +++ b/include/vulkan/vulkan.cppm @@ -826,6 +826,10 @@ export namespace VULKAN_HPP_NAMESPACE //=== VK_NV_ray_tracing_invocation_reorder === using VULKAN_HPP_NAMESPACE::RayTracingInvocationReorderModeNV; + //=== VK_NV_low_latency2 === + using VULKAN_HPP_NAMESPACE::LatencyMarkerNV; + using VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV; + //=== VK_KHR_cooperative_matrix === using VULKAN_HPP_NAMESPACE::ComponentTypeKHR; using VULKAN_HPP_NAMESPACE::ComponentTypeNV; @@ -2611,6 +2615,13 @@ export namespace VULKAN_HPP_NAMESPACE //=== VK_EXT_pipeline_protected_access === using VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineProtectedAccessFeaturesEXT; +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + //=== VK_ANDROID_external_format_resolve === + using VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatResolvePropertiesANDROID; + using VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID; + using VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolvePropertiesANDROID; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + //=== VK_KHR_maintenance5 === using VULKAN_HPP_NAMESPACE::BufferUsageFlags2CreateInfoKHR; using VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR; @@ -2664,6 +2675,17 @@ export namespace VULKAN_HPP_NAMESPACE //=== VK_EXT_dynamic_rendering_unused_attachments === using VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT; + //=== VK_NV_low_latency2 === + using VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV; + using VULKAN_HPP_NAMESPACE::LatencySleepInfoNV; + using VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV; + using VULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV; + using VULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV; + using VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV; + using VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV; + using VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV; + using VULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV; + //=== VK_KHR_cooperative_matrix === using VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR; using VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesKHR; diff --git a/include/vulkan/vulkan.hpp b/include/vulkan/vulkan.hpp index bc91035..796ef40 100644 --- a/include/vulkan/vulkan.hpp +++ b/include/vulkan/vulkan.hpp @@ -55,7 +55,7 @@ extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE h # include <span> #endif -static_assert( VK_HEADER_VERSION == 265, "Wrong VK_HEADER_VERSION!" ); +static_assert( VK_HEADER_VERSION == 266, "Wrong VK_HEADER_VERSION!" ); // <tuple> includes <sys/sysmacros.h> through some other header // this results in major(x) being resolved to gnu_dev_major(x) @@ -5711,6 +5711,36 @@ namespace VULKAN_HPP_NAMESPACE return ::vkGetDynamicRenderingTilePropertiesQCOM( device, pRenderingInfo, pProperties ); } + //=== VK_NV_low_latency2 === + + VkResult vkSetLatencySleepModeNV( VkDevice device, VkSwapchainKHR swapchain, VkLatencySleepModeInfoNV * pSleepModeInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkSetLatencySleepModeNV( device, swapchain, pSleepModeInfo ); + } + + VkResult vkLatencySleepNV( VkDevice device, VkSwapchainKHR swapchain, VkLatencySleepInfoNV * pSleepInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkLatencySleepNV( device, swapchain, pSleepInfo ); + } + + void vkSetLatencyMarkerNV( VkDevice device, VkSwapchainKHR swapchain, VkSetLatencyMarkerInfoNV * pLatencyMarkerInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkSetLatencyMarkerNV( device, swapchain, pLatencyMarkerInfo ); + } + + void vkGetLatencyTimingsNV( VkDevice device, + VkSwapchainKHR swapchain, + uint32_t * pTimingCount, + VkGetLatencyMarkerInfoNV * pLatencyMarkerInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetLatencyTimingsNV( device, swapchain, pTimingCount, pLatencyMarkerInfo ); + } + + void vkQueueNotifyOutOfBandNV( VkQueue queue, VkOutOfBandQueueTypeInfoNV pQueueTypeInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkQueueNotifyOutOfBandNV( queue, pQueueTypeInfo ); + } + //=== VK_KHR_cooperative_matrix === VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR( VkPhysicalDevice physicalDevice, @@ -9062,6 +9092,30 @@ namespace VULKAN_HPP_NAMESPACE }; }; template <> + struct StructExtends<ExternalFormatANDROID, AttachmentDescription2> + { + enum + { + value = true + }; + }; + template <> + struct StructExtends<ExternalFormatANDROID, GraphicsPipelineCreateInfo> + { + enum + { + value = true + }; + }; + template <> + struct StructExtends<ExternalFormatANDROID, CommandBufferInheritanceInfo> + { + enum + { + value = true + }; + }; + template <> struct StructExtends<AndroidHardwareBufferFormatProperties2ANDROID, AndroidHardwareBufferPropertiesANDROID> { enum @@ -12733,6 +12787,42 @@ namespace VULKAN_HPP_NAMESPACE }; }; +# if defined( VK_USE_PLATFORM_ANDROID_KHR ) + //=== VK_ANDROID_external_format_resolve === + template <> + struct StructExtends<PhysicalDeviceExternalFormatResolveFeaturesANDROID, PhysicalDeviceFeatures2> + { + enum + { + value = true + }; + }; + template <> + struct StructExtends<PhysicalDeviceExternalFormatResolveFeaturesANDROID, DeviceCreateInfo> + { + enum + { + value = true + }; + }; + template <> + struct StructExtends<PhysicalDeviceExternalFormatResolvePropertiesANDROID, PhysicalDeviceProperties2> + { + enum + { + value = true + }; + }; + template <> + struct StructExtends<AndroidHardwareBufferFormatResolvePropertiesANDROID, AndroidHardwareBufferPropertiesANDROID> + { + enum + { + value = true + }; + }; +# endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + //=== VK_KHR_maintenance5 === template <> struct StructExtends<PhysicalDeviceMaintenance5FeaturesKHR, PhysicalDeviceFeatures2> @@ -13051,6 +13141,40 @@ namespace VULKAN_HPP_NAMESPACE }; }; + //=== VK_NV_low_latency2 === + template <> + struct StructExtends<LatencySubmissionPresentIdNV, SubmitInfo> + { + enum + { + value = true + }; + }; + template <> + struct StructExtends<LatencySubmissionPresentIdNV, SubmitInfo2> + { + enum + { + value = true + }; + }; + template <> + struct StructExtends<SwapchainLatencyCreateInfoNV, SwapchainCreateInfoKHR> + { + enum + { + value = true + }; + }; + template <> + struct StructExtends<LatencySurfaceCapabilitiesNV, SurfaceCapabilities2KHR> + { + enum + { + value = true + }; + }; + //=== VK_KHR_cooperative_matrix === template <> struct StructExtends<PhysicalDeviceCooperativeMatrixFeaturesKHR, PhysicalDeviceFeatures2> @@ -14507,6 +14631,13 @@ namespace VULKAN_HPP_NAMESPACE PFN_vkGetFramebufferTilePropertiesQCOM vkGetFramebufferTilePropertiesQCOM = 0; PFN_vkGetDynamicRenderingTilePropertiesQCOM vkGetDynamicRenderingTilePropertiesQCOM = 0; + //=== VK_NV_low_latency2 === + PFN_vkSetLatencySleepModeNV vkSetLatencySleepModeNV = 0; + PFN_vkLatencySleepNV vkLatencySleepNV = 0; + PFN_vkSetLatencyMarkerNV vkSetLatencyMarkerNV = 0; + PFN_vkGetLatencyTimingsNV vkGetLatencyTimingsNV = 0; + PFN_vkQueueNotifyOutOfBandNV vkQueueNotifyOutOfBandNV = 0; + //=== VK_KHR_cooperative_matrix === PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR = 0; @@ -15868,6 +15999,13 @@ namespace VULKAN_HPP_NAMESPACE vkGetDynamicRenderingTilePropertiesQCOM = PFN_vkGetDynamicRenderingTilePropertiesQCOM( vkGetInstanceProcAddr( instance, "vkGetDynamicRenderingTilePropertiesQCOM" ) ); + //=== VK_NV_low_latency2 === + vkSetLatencySleepModeNV = PFN_vkSetLatencySleepModeNV( vkGetInstanceProcAddr( instance, "vkSetLatencySleepModeNV" ) ); + vkLatencySleepNV = PFN_vkLatencySleepNV( vkGetInstanceProcAddr( instance, "vkLatencySleepNV" ) ); + vkSetLatencyMarkerNV = PFN_vkSetLatencyMarkerNV( vkGetInstanceProcAddr( instance, "vkSetLatencyMarkerNV" ) ); + vkGetLatencyTimingsNV = PFN_vkGetLatencyTimingsNV( vkGetInstanceProcAddr( instance, "vkGetLatencyTimingsNV" ) ); + vkQueueNotifyOutOfBandNV = PFN_vkQueueNotifyOutOfBandNV( vkGetInstanceProcAddr( instance, "vkQueueNotifyOutOfBandNV" ) ); + //=== VK_KHR_cooperative_matrix === vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR = PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR" ) ); @@ -16875,6 +17013,13 @@ namespace VULKAN_HPP_NAMESPACE vkGetDynamicRenderingTilePropertiesQCOM = PFN_vkGetDynamicRenderingTilePropertiesQCOM( vkGetDeviceProcAddr( device, "vkGetDynamicRenderingTilePropertiesQCOM" ) ); + //=== VK_NV_low_latency2 === + vkSetLatencySleepModeNV = PFN_vkSetLatencySleepModeNV( vkGetDeviceProcAddr( device, "vkSetLatencySleepModeNV" ) ); + vkLatencySleepNV = PFN_vkLatencySleepNV( vkGetDeviceProcAddr( device, "vkLatencySleepNV" ) ); + vkSetLatencyMarkerNV = PFN_vkSetLatencyMarkerNV( vkGetDeviceProcAddr( device, "vkSetLatencyMarkerNV" ) ); + vkGetLatencyTimingsNV = PFN_vkGetLatencyTimingsNV( vkGetDeviceProcAddr( device, "vkGetLatencyTimingsNV" ) ); + vkQueueNotifyOutOfBandNV = PFN_vkQueueNotifyOutOfBandNV( vkGetDeviceProcAddr( device, "vkQueueNotifyOutOfBandNV" ) ); + //=== VK_EXT_attachment_feedback_loop_dynamic_state === vkCmdSetAttachmentFeedbackLoopEnableEXT = PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetAttachmentFeedbackLoopEnableEXT" ) ); diff --git a/include/vulkan/vulkan_android.h b/include/vulkan/vulkan_android.h index d86f43f..40b3c67 100644 --- a/include/vulkan/vulkan_android.h +++ b/include/vulkan/vulkan_android.h @@ -120,6 +120,32 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryAndroidHardwareBufferANDROID( struct AHardwareBuffer** pBuffer); #endif + +// VK_ANDROID_external_format_resolve is a preprocessor guard. Do not pass it to API calls. +#define VK_ANDROID_external_format_resolve 1 +#define VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION 1 +#define VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_EXTENSION_NAME "VK_ANDROID_external_format_resolve" +typedef struct VkPhysicalDeviceExternalFormatResolveFeaturesANDROID { + VkStructureType sType; + void* pNext; + VkBool32 externalFormatResolve; +} VkPhysicalDeviceExternalFormatResolveFeaturesANDROID; + +typedef struct VkPhysicalDeviceExternalFormatResolvePropertiesANDROID { + VkStructureType sType; + void* pNext; + VkBool32 nullColorAttachmentWithExternalFormatResolve; + VkChromaLocation externalFormatResolveChromaOffsetX; + VkChromaLocation externalFormatResolveChromaOffsetY; +} VkPhysicalDeviceExternalFormatResolvePropertiesANDROID; + +typedef struct VkAndroidHardwareBufferFormatResolvePropertiesANDROID { + VkStructureType sType; + void* pNext; + VkFormat colorAttachmentFormat; +} VkAndroidHardwareBufferFormatResolvePropertiesANDROID; + + #ifdef __cplusplus } #endif diff --git a/include/vulkan/vulkan_core.h b/include/vulkan/vulkan_core.h index 1fef88d..c6e8aab 100644 --- a/include/vulkan/vulkan_core.h +++ b/include/vulkan/vulkan_core.h @@ -27,7 +27,7 @@ extern "C" { #ifndef VK_USE_64_BIT_PTR_DEFINES - #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) + #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) || (defined(__riscv) && __riscv_xlen == 64) #define VK_USE_64_BIT_PTR_DEFINES 1 #else #define VK_USE_64_BIT_PTR_DEFINES 0 @@ -69,7 +69,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 265 +#define VK_HEADER_VERSION 266 // Complete version of this file #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) @@ -1080,6 +1080,9 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = 1000466000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID = 1000468000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468001, + VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR = 1000470000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR = 1000470001, VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR = 1000470003, @@ -1105,6 +1108,15 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT = 1000499000, + VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV = 1000505000, + VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV = 1000505001, + VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV = 1000505002, + VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV = 1000505003, + VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV = 1000505004, + VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV = 1000505005, + VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV = 1000505006, + VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV = 1000505007, + VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV = 1000505008, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR = 1000506000, VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506002, @@ -5799,6 +5811,7 @@ typedef enum VkDriverId { VK_DRIVER_ID_MESA_DOZEN = 23, VK_DRIVER_ID_MESA_NVK = 24, VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25, + VK_DRIVER_ID_MESA_AGXV = 26, VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY, VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE, VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV, @@ -5849,6 +5862,7 @@ typedef enum VkResolveModeFlagBits { VK_RESOLVE_MODE_AVERAGE_BIT = 0x00000002, VK_RESOLVE_MODE_MIN_BIT = 0x00000004, VK_RESOLVE_MODE_MAX_BIT = 0x00000008, + VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID = 0x00000010, VK_RESOLVE_MODE_NONE_KHR = VK_RESOLVE_MODE_NONE, VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT, VK_RESOLVE_MODE_AVERAGE_BIT_KHR = VK_RESOLVE_MODE_AVERAGE_BIT, @@ -17581,6 +17595,138 @@ typedef struct VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT { +// VK_NV_low_latency2 is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_low_latency2 1 +#define VK_NV_LOW_LATENCY_2_SPEC_VERSION 1 +#define VK_NV_LOW_LATENCY_2_EXTENSION_NAME "VK_NV_low_latency2" + +typedef enum VkLatencyMarkerNV { + VK_LATENCY_MARKER_SIMULATION_START_NV = 0, + VK_LATENCY_MARKER_SIMULATION_END_NV = 1, + VK_LATENCY_MARKER_RENDERSUBMIT_START_NV = 2, + VK_LATENCY_MARKER_RENDERSUBMIT_END_NV = 3, + VK_LATENCY_MARKER_PRESENT_START_NV = 4, + VK_LATENCY_MARKER_PRESENT_END_NV = 5, + VK_LATENCY_MARKER_INPUT_SAMPLE_NV = 6, + VK_LATENCY_MARKER_TRIGGER_FLASH_NV = 7, + VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV = 8, + VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV = 9, + VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV = 10, + VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV = 11, + VK_LATENCY_MARKER_MAX_ENUM_NV = 0x7FFFFFFF +} VkLatencyMarkerNV; + +typedef enum VkOutOfBandQueueTypeNV { + VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV = 0, + VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV = 1, + VK_OUT_OF_BAND_QUEUE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF +} VkOutOfBandQueueTypeNV; +typedef struct VkLatencySleepModeInfoNV { + VkStructureType sType; + const void* pNext; + VkBool32 lowLatencyMode; + VkBool32 lowLatencyBoost; + uint32_t minimumIntervalUs; +} VkLatencySleepModeInfoNV; + +typedef struct VkLatencySleepInfoNV { + VkStructureType sType; + const void* pNext; + VkSemaphore signalSemaphore; + uint64_t value; +} VkLatencySleepInfoNV; + +typedef struct VkSetLatencyMarkerInfoNV { + VkStructureType sType; + const void* pNext; + uint64_t presentID; + VkLatencyMarkerNV marker; +} VkSetLatencyMarkerInfoNV; + +typedef struct VkLatencyTimingsFrameReportNV { + VkStructureType sType; + const void* pNext; + uint64_t presentID; + uint64_t inputSampleTimeUs; + uint64_t simStartTimeUs; + uint64_t simEndTimeUs; + uint64_t renderSubmitStartTimeUs; + uint64_t renderSubmitEndTimeUs; + uint64_t presentStartTimeUs; + uint64_t presentEndTimeUs; + uint64_t driverStartTimeUs; + uint64_t driverEndTimeUs; + uint64_t osRenderQueueStartTimeUs; + uint64_t osRenderQueueEndTimeUs; + uint64_t gpuRenderStartTimeUs; + uint64_t gpuRenderEndTimeUs; +} VkLatencyTimingsFrameReportNV; + +typedef struct VkGetLatencyMarkerInfoNV { + VkStructureType sType; + const void* pNext; + VkLatencyTimingsFrameReportNV* pTimings; +} VkGetLatencyMarkerInfoNV; + +typedef struct VkLatencySubmissionPresentIdNV { + VkStructureType sType; + const void* pNext; + uint64_t presentID; +} VkLatencySubmissionPresentIdNV; + +typedef struct VkSwapchainLatencyCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkBool32 latencyModeEnable; +} VkSwapchainLatencyCreateInfoNV; + +typedef struct VkOutOfBandQueueTypeInfoNV { + VkStructureType sType; + const void* pNext; + VkOutOfBandQueueTypeNV queueType; +} VkOutOfBandQueueTypeInfoNV; + +typedef struct VkLatencySurfaceCapabilitiesNV { + VkStructureType sType; + const void* pNext; + uint32_t presentModeCount; + VkPresentModeKHR* pPresentModes; +} VkLatencySurfaceCapabilitiesNV; + +typedef VkResult (VKAPI_PTR *PFN_vkSetLatencySleepModeNV)(VkDevice device, VkSwapchainKHR swapchain, VkLatencySleepModeInfoNV* pSleepModeInfo); +typedef VkResult (VKAPI_PTR *PFN_vkLatencySleepNV)(VkDevice device, VkSwapchainKHR swapchain, VkLatencySleepInfoNV* pSleepInfo); +typedef void (VKAPI_PTR *PFN_vkSetLatencyMarkerNV)(VkDevice device, VkSwapchainKHR swapchain, VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo); +typedef void (VKAPI_PTR *PFN_vkGetLatencyTimingsNV)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pTimingCount, VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo); +typedef void (VKAPI_PTR *PFN_vkQueueNotifyOutOfBandNV)(VkQueue queue, VkOutOfBandQueueTypeInfoNV pQueueTypeInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkSetLatencySleepModeNV( + VkDevice device, + VkSwapchainKHR swapchain, + VkLatencySleepModeInfoNV* pSleepModeInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkLatencySleepNV( + VkDevice device, + VkSwapchainKHR swapchain, + VkLatencySleepInfoNV* pSleepInfo); + +VKAPI_ATTR void VKAPI_CALL vkSetLatencyMarkerNV( + VkDevice device, + VkSwapchainKHR swapchain, + VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo); + +VKAPI_ATTR void VKAPI_CALL vkGetLatencyTimingsNV( + VkDevice device, + VkSwapchainKHR swapchain, + uint32_t* pTimingCount, + VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo); + +VKAPI_ATTR void VKAPI_CALL vkQueueNotifyOutOfBandNV( + VkQueue queue, + VkOutOfBandQueueTypeInfoNV pQueueTypeInfo); +#endif + + // VK_QCOM_multiview_per_view_render_areas is a preprocessor guard. Do not pass it to API calls. #define VK_QCOM_multiview_per_view_render_areas 1 #define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_SPEC_VERSION 1 diff --git a/include/vulkan/vulkan_enums.hpp b/include/vulkan/vulkan_enums.hpp index fd5f5b3..283db66 100644 --- a/include/vulkan/vulkan_enums.hpp +++ b/include/vulkan/vulkan_enums.hpp @@ -1305,6 +1305,11 @@ namespace VULKAN_HPP_NAMESPACE eOpticalFlowSessionCreatePrivateDataInfoNV = VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV, ePhysicalDeviceLegacyDitheringFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT, ePhysicalDevicePipelineProtectedAccessFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT, +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + ePhysicalDeviceExternalFormatResolveFeaturesANDROID = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID, + ePhysicalDeviceExternalFormatResolvePropertiesANDROID = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID, + eAndroidHardwareBufferFormatResolvePropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID, +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ ePhysicalDeviceMaintenance5FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR, ePhysicalDeviceMaintenance5PropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR, eRenderingAreaInfoKHR = VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR, @@ -1331,6 +1336,15 @@ 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, ePhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT, + eLatencySleepModeInfoNV = VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV, + eLatencySleepInfoNV = VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV, + eSetLatencyMarkerInfoNV = VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV, + eGetLatencyMarkerInfoNV = VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV, + eLatencyTimingsFrameReportNV = VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV, + eLatencySubmissionPresentIdNV = VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV, + eOutOfBandQueueTypeInfoNV = VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV, + eSwapchainLatencyCreateInfoNV = VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV, + eLatencySurfaceCapabilitiesNV = VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV, ePhysicalDeviceCooperativeMatrixFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR, eCooperativeMatrixPropertiesKHR = VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR, ePhysicalDeviceCooperativeMatrixPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR, @@ -3827,7 +3841,8 @@ namespace VULKAN_HPP_NAMESPACE eMesaVenus = VK_DRIVER_ID_MESA_VENUS, eMesaDozen = VK_DRIVER_ID_MESA_DOZEN, eMesaNvk = VK_DRIVER_ID_MESA_NVK, - eImaginationOpenSourceMESA = VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA + eImaginationOpenSourceMESA = VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA, + eMesaAgxv = VK_DRIVER_ID_MESA_AGXV }; using DriverIdKHR = DriverId; @@ -3866,7 +3881,10 @@ namespace VULKAN_HPP_NAMESPACE eSampleZero = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT, eAverage = VK_RESOLVE_MODE_AVERAGE_BIT, eMin = VK_RESOLVE_MODE_MIN_BIT, - eMax = VK_RESOLVE_MODE_MAX_BIT + eMax = VK_RESOLVE_MODE_MAX_BIT, +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + eExternalFormatDownsampleANDROID = VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ }; using ResolveModeFlagBitsKHR = ResolveModeFlagBits; @@ -3877,8 +3895,12 @@ namespace VULKAN_HPP_NAMESPACE struct FlagTraits<ResolveModeFlagBits> { static VULKAN_HPP_CONST_OR_CONSTEXPR bool isBitmask = true; - static VULKAN_HPP_CONST_OR_CONSTEXPR ResolveModeFlags allFlags = - ResolveModeFlagBits::eNone | ResolveModeFlagBits::eSampleZero | ResolveModeFlagBits::eAverage | ResolveModeFlagBits::eMin | ResolveModeFlagBits::eMax; + static VULKAN_HPP_CONST_OR_CONSTEXPR ResolveModeFlags allFlags = ResolveModeFlagBits::eNone | ResolveModeFlagBits::eSampleZero | + ResolveModeFlagBits::eAverage | ResolveModeFlagBits::eMin | ResolveModeFlagBits::eMax +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + | ResolveModeFlagBits::eExternalFormatDownsampleANDROID +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + ; }; enum class SamplerReductionMode @@ -7043,6 +7065,30 @@ namespace VULKAN_HPP_NAMESPACE eReorder = VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV }; + //=== VK_NV_low_latency2 === + + enum class LatencyMarkerNV + { + eSimulationStart = VK_LATENCY_MARKER_SIMULATION_START_NV, + eSimulationEnd = VK_LATENCY_MARKER_SIMULATION_END_NV, + eRendersubmitStart = VK_LATENCY_MARKER_RENDERSUBMIT_START_NV, + eRendersubmitEnd = VK_LATENCY_MARKER_RENDERSUBMIT_END_NV, + ePresentStart = VK_LATENCY_MARKER_PRESENT_START_NV, + ePresentEnd = VK_LATENCY_MARKER_PRESENT_END_NV, + eInputSample = VK_LATENCY_MARKER_INPUT_SAMPLE_NV, + eTriggerFlash = VK_LATENCY_MARKER_TRIGGER_FLASH_NV, + eOutOfBandRendersubmitStart = VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV, + eOutOfBandRendersubmitEnd = VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV, + eOutOfBandPresentStart = VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV, + eOutOfBandPresentEnd = VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV + }; + + enum class OutOfBandQueueTypeNV + { + eRender = VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV, + ePresent = VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV + }; + //=== VK_KHR_cooperative_matrix === enum class ScopeKHR diff --git a/include/vulkan/vulkan_extension_inspection.hpp b/include/vulkan/vulkan_extension_inspection.hpp index 4610c23..d9cc0e8 100644 --- a/include/vulkan/vulkan_extension_inspection.hpp +++ b/include/vulkan/vulkan_extension_inspection.hpp @@ -382,7 +382,10 @@ namespace VULKAN_HPP_NAMESPACE "VK_EXT_rasterization_order_attachment_access", "VK_NV_optical_flow", "VK_EXT_legacy_dithering", -"VK_EXT_pipeline_protected_access", +"VK_EXT_pipeline_protected_access", +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) +"VK_ANDROID_external_format_resolve", +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ "VK_KHR_maintenance5", "VK_KHR_ray_tracing_position_fetch", "VK_EXT_shader_object", @@ -394,6 +397,7 @@ namespace VULKAN_HPP_NAMESPACE "VK_ARM_shader_core_builtins", "VK_EXT_pipeline_library_group_handles", "VK_EXT_dynamic_rendering_unused_attachments", +"VK_NV_low_latency2", "VK_KHR_cooperative_matrix", "VK_QCOM_multiview_per_view_render_areas", "VK_QCOM_image_processing2", @@ -786,7 +790,10 @@ namespace VULKAN_HPP_NAMESPACE { "VK_EXT_rasterization_order_attachment_access", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", } } } } }, { "VK_NV_optical_flow", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", "VK_KHR_format_feature_flags2", "VK_KHR_synchronization2", } } } } }, { "VK_EXT_legacy_dithering", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", } } } } }, -{ "VK_EXT_pipeline_protected_access", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", } } } } }, +{ "VK_EXT_pipeline_protected_access", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", } } } } }, +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) +{ "VK_ANDROID_external_format_resolve", { { "VK_VERSION_1_0", { { "VK_ANDROID_external_memory_android_hardware_buffer", } } } } }, +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ { "VK_KHR_maintenance5", { { "VK_VERSION_1_1", { { "VK_KHR_dynamic_rendering", } } } } }, { "VK_KHR_ray_tracing_position_fetch", { { "VK_VERSION_1_0", { { "VK_KHR_acceleration_structure", } } } } }, { "VK_EXT_shader_object", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", "VK_KHR_dynamic_rendering", } } }, { "VK_VERSION_1_1", { { "VK_KHR_dynamic_rendering", } } }, { "VK_VERSION_1_3", { { } } } } }, @@ -1516,15 +1523,18 @@ namespace VULKAN_HPP_NAMESPACE ( extension == "VK_EXT_external_memory_acquire_unmodified" ) || ( extension == "VK_EXT_extended_dynamic_state3" ) || ( extension == "VK_EXT_subpass_merge_feedback" ) || ( extension == "VK_EXT_shader_module_identifier" ) || ( extension == "VK_EXT_rasterization_order_attachment_access" ) || ( extension == "VK_NV_optical_flow" ) || - ( extension == "VK_EXT_legacy_dithering" ) || ( extension == "VK_EXT_pipeline_protected_access" ) || ( extension == "VK_KHR_maintenance5" ) || - ( extension == "VK_KHR_ray_tracing_position_fetch" ) || ( extension == "VK_EXT_shader_object" ) || ( extension == "VK_QCOM_tile_properties" ) || - ( extension == "VK_SEC_amigo_profiling" ) || ( extension == "VK_QCOM_multiview_per_view_viewports" ) || + ( extension == "VK_EXT_legacy_dithering" ) || ( extension == "VK_EXT_pipeline_protected_access" ) +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + || ( extension == "VK_ANDROID_external_format_resolve" ) +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + || ( extension == "VK_KHR_maintenance5" ) || ( extension == "VK_KHR_ray_tracing_position_fetch" ) || ( extension == "VK_EXT_shader_object" ) || + ( extension == "VK_QCOM_tile_properties" ) || ( 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_EXT_dynamic_rendering_unused_attachments" ) || ( extension == "VK_KHR_cooperative_matrix" ) || - ( extension == "VK_QCOM_multiview_per_view_render_areas" ) || ( extension == "VK_QCOM_image_processing2" ) || - ( extension == "VK_QCOM_filter_cubic_weights" ) || ( extension == "VK_QCOM_ycbcr_degamma" ) || ( extension == "VK_QCOM_filter_cubic_clamp" ) || - ( extension == "VK_EXT_attachment_feedback_loop_dynamic_state" ) + ( extension == "VK_EXT_dynamic_rendering_unused_attachments" ) || ( extension == "VK_NV_low_latency2" ) || + ( extension == "VK_KHR_cooperative_matrix" ) || ( extension == "VK_QCOM_multiview_per_view_render_areas" ) || + ( extension == "VK_QCOM_image_processing2" ) || ( extension == "VK_QCOM_filter_cubic_weights" ) || ( extension == "VK_QCOM_ycbcr_degamma" ) || + ( extension == "VK_QCOM_filter_cubic_clamp" ) || ( extension == "VK_EXT_attachment_feedback_loop_dynamic_state" ) #if defined( VK_USE_PLATFORM_SCREEN_QNX ) || ( extension == "VK_QNX_external_memory_screen_buffer" ) #endif /*VK_USE_PLATFORM_SCREEN_QNX*/ diff --git a/include/vulkan/vulkan_funcs.hpp b/include/vulkan/vulkan_funcs.hpp index 1ab8736..137c80c 100644 --- a/include/vulkan/vulkan_funcs.hpp +++ b/include/vulkan/vulkan_funcs.hpp @@ -22786,6 +22786,117 @@ namespace VULKAN_HPP_NAMESPACE } #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + //=== VK_NV_low_latency2 === + + template <typename Dispatch> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setLatencySleepModeNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV * pSleepModeInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + return static_cast<Result>( + d.vkSetLatencySleepModeNV( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkLatencySleepModeInfoNV *>( pSleepModeInfo ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template <typename Dispatch> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV>::type + Device::setLatencySleepModeNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + + VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV sleepModeInfo; + VkResult result = + d.vkSetLatencySleepModeNV( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkLatencySleepModeInfoNV *>( &sleepModeInfo ) ); + resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::setLatencySleepModeNV" ); + + return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), sleepModeInfo ); + } +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + template <typename Dispatch> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::latencySleepNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + VULKAN_HPP_NAMESPACE::LatencySleepInfoNV * pSleepInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + return static_cast<Result>( + d.vkLatencySleepNV( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkLatencySleepInfoNV *>( pSleepInfo ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template <typename Dispatch> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::LatencySleepInfoNV>::type + Device::latencySleepNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + + VULKAN_HPP_NAMESPACE::LatencySleepInfoNV sleepInfo; + VkResult result = d.vkLatencySleepNV( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkLatencySleepInfoNV *>( &sleepInfo ) ); + resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::Device::latencySleepNV" ); + + return createResultValueType( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), sleepInfo ); + } +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + template <typename Dispatch> + VULKAN_HPP_INLINE void Device::setLatencyMarkerNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV * pLatencyMarkerInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + d.vkSetLatencyMarkerNV( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkSetLatencyMarkerInfoNV *>( pLatencyMarkerInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template <typename Dispatch> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV Device::setLatencyMarkerNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + + VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV latencyMarkerInfo; + d.vkSetLatencyMarkerNV( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkSetLatencyMarkerInfoNV *>( &latencyMarkerInfo ) ); + + return latencyMarkerInfo; + } +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + template <typename Dispatch> + VULKAN_HPP_INLINE void Device::getLatencyTimingsNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + uint32_t * pTimingCount, + VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV * pLatencyMarkerInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + d.vkGetLatencyTimingsNV( + m_device, static_cast<VkSwapchainKHR>( swapchain ), pTimingCount, reinterpret_cast<VkGetLatencyMarkerInfoNV *>( pLatencyMarkerInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template <typename Dispatch> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<uint32_t, VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV> + Device::getLatencyTimingsNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + + std::pair<uint32_t, VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV> data_; + uint32_t & timingCount = data_.first; + VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV & latencyMarkerInfo = data_.second; + d.vkGetLatencyTimingsNV( + m_device, static_cast<VkSwapchainKHR>( swapchain ), &timingCount, reinterpret_cast<VkGetLatencyMarkerInfoNV *>( &latencyMarkerInfo ) ); + + return data_; + } +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + template <typename Dispatch> + VULKAN_HPP_INLINE void Queue::notifyOutOfBandNV( VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV pQueueTypeInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + d.vkQueueNotifyOutOfBandNV( m_queue, static_cast<VkOutOfBandQueueTypeInfoNV>( pQueueTypeInfo ) ); + } + //=== VK_KHR_cooperative_matrix === template <typename Dispatch> diff --git a/include/vulkan/vulkan_handles.hpp b/include/vulkan/vulkan_handles.hpp index be31059..b76b87a 100644 --- a/include/vulkan/vulkan_handles.hpp +++ b/include/vulkan/vulkan_handles.hpp @@ -1612,6 +1612,13 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_EXT_pipeline_protected_access === struct PhysicalDevicePipelineProtectedAccessFeaturesEXT; +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + //=== VK_ANDROID_external_format_resolve === + struct PhysicalDeviceExternalFormatResolveFeaturesANDROID; + struct PhysicalDeviceExternalFormatResolvePropertiesANDROID; + struct AndroidHardwareBufferFormatResolvePropertiesANDROID; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + //=== VK_KHR_maintenance5 === struct PhysicalDeviceMaintenance5FeaturesKHR; struct PhysicalDeviceMaintenance5PropertiesKHR; @@ -1665,6 +1672,17 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_EXT_dynamic_rendering_unused_attachments === struct PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT; + //=== VK_NV_low_latency2 === + struct LatencySleepModeInfoNV; + struct LatencySleepInfoNV; + struct SetLatencyMarkerInfoNV; + struct GetLatencyMarkerInfoNV; + struct LatencyTimingsFrameReportNV; + struct LatencySubmissionPresentIdNV; + struct SwapchainLatencyCreateInfoNV; + struct OutOfBandQueueTypeInfoNV; + struct LatencySurfaceCapabilitiesNV; + //=== VK_KHR_cooperative_matrix === struct CooperativeMatrixPropertiesKHR; struct PhysicalDeviceCooperativeMatrixFeaturesKHR; @@ -8200,6 +8218,12 @@ namespace VULKAN_HPP_NAMESPACE getCheckpointData2NV( CheckpointData2NVAllocator & checkpointData2NVAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + //=== VK_NV_low_latency2 === + + template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + void notifyOutOfBandNV( VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV pQueueTypeInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + operator VkQueue() const VULKAN_HPP_NOEXCEPT { return m_queue; @@ -13144,6 +13168,50 @@ namespace VULKAN_HPP_NAMESPACE Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + //=== VK_NV_low_latency2 === + + template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD Result setLatencySleepModeNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV * pSleepModeInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD typename ResultValueType<VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV>::type + setLatencySleepModeNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD Result latencySleepNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + VULKAN_HPP_NAMESPACE::LatencySleepInfoNV * pSleepInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD typename ResultValueType<VULKAN_HPP_NAMESPACE::LatencySleepInfoNV>::type + latencySleepNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + void setLatencyMarkerNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV * pLatencyMarkerInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV + setLatencyMarkerNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + void getLatencyTimingsNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + uint32_t * pTimingCount, + VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV * pLatencyMarkerInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD std::pair<uint32_t, VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV> + getLatencyTimingsNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + #if defined( VK_USE_PLATFORM_SCREEN_QNX ) //=== VK_QNX_external_memory_screen_buffer === diff --git a/include/vulkan/vulkan_hash.hpp b/include/vulkan/vulkan_hash.hpp index 8f7e849..b1428a0 100644 --- a/include/vulkan/vulkan_hash.hpp +++ b/include/vulkan/vulkan_hash.hpp @@ -977,6 +977,23 @@ namespace std # if defined( VK_USE_PLATFORM_ANDROID_KHR ) template <> + struct hash<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatResolvePropertiesANDROID> + { + std::size_t + operator()( VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatResolvePropertiesANDROID const & androidHardwareBufferFormatResolvePropertiesANDROID ) const + VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatResolvePropertiesANDROID.sType ); + VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatResolvePropertiesANDROID.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatResolvePropertiesANDROID.colorAttachmentFormat ); + return seed; + } + }; +# endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + +# if defined( VK_USE_PLATFORM_ANDROID_KHR ) + template <> struct hash<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID> { std::size_t @@ -5044,6 +5061,45 @@ namespace std }; template <> + struct hash<VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV> + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV const & latencyTimingsFrameReportNV ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.sType ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.presentID ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.inputSampleTimeUs ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.simStartTimeUs ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.simEndTimeUs ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.renderSubmitStartTimeUs ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.renderSubmitEndTimeUs ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.presentStartTimeUs ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.presentEndTimeUs ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.driverStartTimeUs ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.driverEndTimeUs ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.osRenderQueueStartTimeUs ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.osRenderQueueEndTimeUs ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.gpuRenderStartTimeUs ); + VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.gpuRenderEndTimeUs ); + return seed; + } + }; + + template <> + struct hash<VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV> + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV const & getLatencyMarkerInfoNV ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, getLatencyMarkerInfoNV.sType ); + VULKAN_HPP_HASH_COMBINE( seed, getLatencyMarkerInfoNV.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, getLatencyMarkerInfoNV.pTimings ); + return seed; + } + }; + + template <> struct hash<VULKAN_HPP_NAMESPACE::VertexInputBindingDescription> { std::size_t operator()( VULKAN_HPP_NAMESPACE::VertexInputBindingDescription const & vertexInputBindingDescription ) const VULKAN_HPP_NOEXCEPT @@ -6272,6 +6328,62 @@ namespace std }; template <> + struct hash<VULKAN_HPP_NAMESPACE::LatencySleepInfoNV> + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::LatencySleepInfoNV const & latencySleepInfoNV ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, latencySleepInfoNV.sType ); + VULKAN_HPP_HASH_COMBINE( seed, latencySleepInfoNV.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, latencySleepInfoNV.signalSemaphore ); + VULKAN_HPP_HASH_COMBINE( seed, latencySleepInfoNV.value ); + return seed; + } + }; + + template <> + struct hash<VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV> + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV const & latencySleepModeInfoNV ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, latencySleepModeInfoNV.sType ); + VULKAN_HPP_HASH_COMBINE( seed, latencySleepModeInfoNV.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, latencySleepModeInfoNV.lowLatencyMode ); + VULKAN_HPP_HASH_COMBINE( seed, latencySleepModeInfoNV.lowLatencyBoost ); + VULKAN_HPP_HASH_COMBINE( seed, latencySleepModeInfoNV.minimumIntervalUs ); + return seed; + } + }; + + template <> + struct hash<VULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV> + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV const & latencySubmissionPresentIdNV ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, latencySubmissionPresentIdNV.sType ); + VULKAN_HPP_HASH_COMBINE( seed, latencySubmissionPresentIdNV.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, latencySubmissionPresentIdNV.presentID ); + return seed; + } + }; + + template <> + struct hash<VULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV> + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV const & latencySurfaceCapabilitiesNV ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, latencySurfaceCapabilitiesNV.sType ); + VULKAN_HPP_HASH_COMBINE( seed, latencySurfaceCapabilitiesNV.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, latencySurfaceCapabilitiesNV.presentModeCount ); + VULKAN_HPP_HASH_COMBINE( seed, latencySurfaceCapabilitiesNV.pPresentModes ); + return seed; + } + }; + + template <> struct hash<VULKAN_HPP_NAMESPACE::LayerProperties> { std::size_t operator()( VULKAN_HPP_NAMESPACE::LayerProperties const & layerProperties ) const VULKAN_HPP_NOEXCEPT @@ -6908,6 +7020,19 @@ namespace std }; template <> + struct hash<VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV> + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV const & outOfBandQueueTypeInfoNV ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, outOfBandQueueTypeInfoNV.sType ); + VULKAN_HPP_HASH_COMBINE( seed, outOfBandQueueTypeInfoNV.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, outOfBandQueueTypeInfoNV.queueType ); + return seed; + } + }; + + template <> struct hash<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE> { std::size_t operator()( VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE const & pastPresentationTimingGOOGLE ) const VULKAN_HPP_NOEXCEPT @@ -8145,6 +8270,41 @@ namespace std } }; +# if defined( VK_USE_PLATFORM_ANDROID_KHR ) + template <> + struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID> + { + std::size_t + operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID const & physicalDeviceExternalFormatResolveFeaturesANDROID ) const + VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolveFeaturesANDROID.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolveFeaturesANDROID.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolveFeaturesANDROID.externalFormatResolve ); + return seed; + } + }; +# endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + +# if defined( VK_USE_PLATFORM_ANDROID_KHR ) + template <> + struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolvePropertiesANDROID> + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolvePropertiesANDROID const & + physicalDeviceExternalFormatResolvePropertiesANDROID ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolvePropertiesANDROID.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolvePropertiesANDROID.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolvePropertiesANDROID.nullColorAttachmentWithExternalFormatResolve ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolvePropertiesANDROID.externalFormatResolveChromaOffsetX ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolvePropertiesANDROID.externalFormatResolveChromaOffsetY ); + return seed; + } + }; +# endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + template <> struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo> { @@ -13600,6 +13760,20 @@ namespace std }; template <> + struct hash<VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV> + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV const & setLatencyMarkerInfoNV ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, setLatencyMarkerInfoNV.sType ); + VULKAN_HPP_HASH_COMBINE( seed, setLatencyMarkerInfoNV.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, setLatencyMarkerInfoNV.presentID ); + VULKAN_HPP_HASH_COMBINE( seed, setLatencyMarkerInfoNV.marker ); + return seed; + } + }; + + template <> struct hash<VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV> { std::size_t operator()( VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV const & setStateFlagsIndirectCommandNV ) const VULKAN_HPP_NOEXCEPT @@ -14216,6 +14390,19 @@ namespace std }; template <> + struct hash<VULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV> + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV const & swapchainLatencyCreateInfoNV ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, swapchainLatencyCreateInfoNV.sType ); + VULKAN_HPP_HASH_COMBINE( seed, swapchainLatencyCreateInfoNV.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, swapchainLatencyCreateInfoNV.latencyModeEnable ); + return seed; + } + }; + + template <> struct hash<VULKAN_HPP_NAMESPACE::SwapchainPresentBarrierCreateInfoNV> { std::size_t operator()( VULKAN_HPP_NAMESPACE::SwapchainPresentBarrierCreateInfoNV const & swapchainPresentBarrierCreateInfoNV ) const VULKAN_HPP_NOEXCEPT diff --git a/include/vulkan/vulkan_raii.hpp b/include/vulkan/vulkan_raii.hpp index f065519..754f07e 100644 --- a/include/vulkan/vulkan_raii.hpp +++ b/include/vulkan/vulkan_raii.hpp @@ -1663,6 +1663,13 @@ namespace VULKAN_HPP_NAMESPACE vkGetDynamicRenderingTilePropertiesQCOM = PFN_vkGetDynamicRenderingTilePropertiesQCOM( vkGetDeviceProcAddr( device, "vkGetDynamicRenderingTilePropertiesQCOM" ) ); + //=== VK_NV_low_latency2 === + vkSetLatencySleepModeNV = PFN_vkSetLatencySleepModeNV( vkGetDeviceProcAddr( device, "vkSetLatencySleepModeNV" ) ); + vkLatencySleepNV = PFN_vkLatencySleepNV( vkGetDeviceProcAddr( device, "vkLatencySleepNV" ) ); + vkSetLatencyMarkerNV = PFN_vkSetLatencyMarkerNV( vkGetDeviceProcAddr( device, "vkSetLatencyMarkerNV" ) ); + vkGetLatencyTimingsNV = PFN_vkGetLatencyTimingsNV( vkGetDeviceProcAddr( device, "vkGetLatencyTimingsNV" ) ); + vkQueueNotifyOutOfBandNV = PFN_vkQueueNotifyOutOfBandNV( vkGetDeviceProcAddr( device, "vkQueueNotifyOutOfBandNV" ) ); + //=== VK_EXT_attachment_feedback_loop_dynamic_state === vkCmdSetAttachmentFeedbackLoopEnableEXT = PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetAttachmentFeedbackLoopEnableEXT" ) ); @@ -2507,6 +2514,13 @@ namespace VULKAN_HPP_NAMESPACE PFN_vkGetFramebufferTilePropertiesQCOM vkGetFramebufferTilePropertiesQCOM = 0; PFN_vkGetDynamicRenderingTilePropertiesQCOM vkGetDynamicRenderingTilePropertiesQCOM = 0; + //=== VK_NV_low_latency2 === + PFN_vkSetLatencySleepModeNV vkSetLatencySleepModeNV = 0; + PFN_vkLatencySleepNV vkLatencySleepNV = 0; + PFN_vkSetLatencyMarkerNV vkSetLatencyMarkerNV = 0; + PFN_vkGetLatencyTimingsNV vkGetLatencyTimingsNV = 0; + PFN_vkQueueNotifyOutOfBandNV vkQueueNotifyOutOfBandNV = 0; + //=== VK_EXT_attachment_feedback_loop_dynamic_state === PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT vkCmdSetAttachmentFeedbackLoopEnableEXT = 0; @@ -9929,6 +9943,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::CheckpointData2NV> getCheckpointData2NV() const; + //=== VK_NV_low_latency2 === + + void notifyOutOfBandNV( VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV pQueueTypeInfo ) const VULKAN_HPP_NOEXCEPT; + private: VULKAN_HPP_NAMESPACE::Queue m_queue = {}; VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; @@ -11278,6 +11296,16 @@ namespace VULKAN_HPP_NAMESPACE void releaseFullScreenExclusiveModeEXT() const; # endif /*VK_USE_PLATFORM_WIN32_KHR*/ + //=== VK_NV_low_latency2 === + + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV setLatencySleepModeNV() const; + + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::LatencySleepInfoNV latencySleepNV() const; + + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV setLatencyMarkerNV() const VULKAN_HPP_NOEXCEPT; + + VULKAN_HPP_NODISCARD std::pair<uint32_t, VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV> getLatencyTimingsNV() const VULKAN_HPP_NOEXCEPT; + private: VULKAN_HPP_NAMESPACE::Device m_device = {}; VULKAN_HPP_NAMESPACE::SwapchainKHR m_swapchain = {}; @@ -20639,6 +20667,66 @@ namespace VULKAN_HPP_NAMESPACE return properties; } + //=== VK_NV_low_latency2 === + + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV SwapchainKHR::setLatencySleepModeNV() const + { + VULKAN_HPP_ASSERT( getDispatcher()->vkSetLatencySleepModeNV && "Function <vkSetLatencySleepModeNV> requires <VK_NV_low_latency2>" ); + + VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV sleepModeInfo; + VkResult result = getDispatcher()->vkSetLatencySleepModeNV( + static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ), reinterpret_cast<VkLatencySleepModeInfoNV *>( &sleepModeInfo ) ); + resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::setLatencySleepModeNV" ); + + return sleepModeInfo; + } + + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::LatencySleepInfoNV SwapchainKHR::latencySleepNV() const + { + VULKAN_HPP_ASSERT( getDispatcher()->vkLatencySleepNV && "Function <vkLatencySleepNV> requires <VK_NV_low_latency2>" ); + + VULKAN_HPP_NAMESPACE::LatencySleepInfoNV sleepInfo; + VkResult result = getDispatcher()->vkLatencySleepNV( + static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ), reinterpret_cast<VkLatencySleepInfoNV *>( &sleepInfo ) ); + resultCheck( static_cast<VULKAN_HPP_NAMESPACE::Result>( result ), VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::latencySleepNV" ); + + return sleepInfo; + } + + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV SwapchainKHR::setLatencyMarkerNV() const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( getDispatcher()->vkSetLatencyMarkerNV && "Function <vkSetLatencyMarkerNV> requires <VK_NV_low_latency2>" ); + + VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV latencyMarkerInfo; + getDispatcher()->vkSetLatencyMarkerNV( + static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ), reinterpret_cast<VkSetLatencyMarkerInfoNV *>( &latencyMarkerInfo ) ); + + return latencyMarkerInfo; + } + + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<uint32_t, VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV> + SwapchainKHR::getLatencyTimingsNV() const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( getDispatcher()->vkGetLatencyTimingsNV && "Function <vkGetLatencyTimingsNV> requires <VK_NV_low_latency2>" ); + + std::pair<uint32_t, VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV> data_; + uint32_t & timingCount = data_.first; + VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV & latencyMarkerInfo = data_.second; + getDispatcher()->vkGetLatencyTimingsNV( static_cast<VkDevice>( m_device ), + static_cast<VkSwapchainKHR>( m_swapchain ), + &timingCount, + reinterpret_cast<VkGetLatencyMarkerInfoNV *>( &latencyMarkerInfo ) ); + + return data_; + } + + VULKAN_HPP_INLINE void Queue::notifyOutOfBandNV( VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV pQueueTypeInfo ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( getDispatcher()->vkQueueNotifyOutOfBandNV && "Function <vkQueueNotifyOutOfBandNV> requires <VK_NV_low_latency2>" ); + + getDispatcher()->vkQueueNotifyOutOfBandNV( static_cast<VkQueue>( m_queue ), static_cast<VkOutOfBandQueueTypeInfoNV>( pQueueTypeInfo ) ); + } + //=== VK_KHR_cooperative_matrix === VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR> diff --git a/include/vulkan/vulkan_static_assertions.hpp b/include/vulkan/vulkan_static_assertions.hpp index aaf7069..c467447 100644 --- a/include/vulkan/vulkan_static_assertions.hpp +++ b/include/vulkan/vulkan_static_assertions.hpp @@ -6627,6 +6627,34 @@ VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::Physical VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineProtectedAccessFeaturesEXT>::value, "PhysicalDevicePipelineProtectedAccessFeaturesEXT is not nothrow_move_constructible!" ); +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) +//=== VK_ANDROID_external_format_resolve === + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID ) == + sizeof( VkPhysicalDeviceExternalFormatResolveFeaturesANDROID ), + "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID>::value, + "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID>::value, + "PhysicalDeviceExternalFormatResolveFeaturesANDROID is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolvePropertiesANDROID ) == + sizeof( VkPhysicalDeviceExternalFormatResolvePropertiesANDROID ), + "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolvePropertiesANDROID>::value, + "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolvePropertiesANDROID>::value, + "PhysicalDeviceExternalFormatResolvePropertiesANDROID is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatResolvePropertiesANDROID ) == + sizeof( VkAndroidHardwareBufferFormatResolvePropertiesANDROID ), + "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatResolvePropertiesANDROID>::value, + "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatResolvePropertiesANDROID>::value, + "AndroidHardwareBufferFormatResolvePropertiesANDROID is not nothrow_move_constructible!" ); +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + //=== VK_KHR_maintenance5 === VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5FeaturesKHR ) == sizeof( VkPhysicalDeviceMaintenance5FeaturesKHR ), @@ -6829,6 +6857,61 @@ VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::Physical VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT>::value, "PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT is not nothrow_move_constructible!" ); +//=== VK_NV_low_latency2 === + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV ) == sizeof( VkLatencySleepModeInfoNV ), + "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV>::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV>::value, + "LatencySleepModeInfoNV is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::LatencySleepInfoNV ) == sizeof( VkLatencySleepInfoNV ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::LatencySleepInfoNV>::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::LatencySleepInfoNV>::value, + "LatencySleepInfoNV is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV ) == sizeof( VkSetLatencyMarkerInfoNV ), + "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV>::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV>::value, + "SetLatencyMarkerInfoNV is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV ) == sizeof( VkGetLatencyMarkerInfoNV ), + "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV>::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV>::value, + "GetLatencyMarkerInfoNV is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV ) == sizeof( VkLatencyTimingsFrameReportNV ), + "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV>::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV>::value, + "LatencyTimingsFrameReportNV is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV ) == sizeof( VkLatencySubmissionPresentIdNV ), + "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV>::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV>::value, + "LatencySubmissionPresentIdNV is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV ) == sizeof( VkSwapchainLatencyCreateInfoNV ), + "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV>::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV>::value, + "SwapchainLatencyCreateInfoNV is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV ) == sizeof( VkOutOfBandQueueTypeInfoNV ), + "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV>::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV>::value, + "OutOfBandQueueTypeInfoNV is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV ) == sizeof( VkLatencySurfaceCapabilitiesNV ), + "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV>::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV>::value, + "LatencySurfaceCapabilitiesNV is not nothrow_move_constructible!" ); + //=== VK_KHR_cooperative_matrix === VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR ) == sizeof( VkCooperativeMatrixPropertiesKHR ), diff --git a/include/vulkan/vulkan_structs.hpp b/include/vulkan/vulkan_structs.hpp index 468e1f4..f5bf97a 100644 --- a/include/vulkan/vulkan_structs.hpp +++ b/include/vulkan/vulkan_structs.hpp @@ -5098,6 +5098,94 @@ namespace VULKAN_HPP_NAMESPACE #endif /*VK_USE_PLATFORM_ANDROID_KHR*/ #if defined( VK_USE_PLATFORM_ANDROID_KHR ) + struct AndroidHardwareBufferFormatResolvePropertiesANDROID + { + using NativeType = VkAndroidHardwareBufferFormatResolvePropertiesANDROID; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferFormatResolvePropertiesANDROID; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + AndroidHardwareBufferFormatResolvePropertiesANDROID( VULKAN_HPP_NAMESPACE::Format colorAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, + void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , colorAttachmentFormat( colorAttachmentFormat_ ) + { + } + + VULKAN_HPP_CONSTEXPR + AndroidHardwareBufferFormatResolvePropertiesANDROID( AndroidHardwareBufferFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + AndroidHardwareBufferFormatResolvePropertiesANDROID( VkAndroidHardwareBufferFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + : AndroidHardwareBufferFormatResolvePropertiesANDROID( *reinterpret_cast<AndroidHardwareBufferFormatResolvePropertiesANDROID const *>( &rhs ) ) + { + } + + AndroidHardwareBufferFormatResolvePropertiesANDROID & + operator=( AndroidHardwareBufferFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + AndroidHardwareBufferFormatResolvePropertiesANDROID & operator=( VkAndroidHardwareBufferFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatResolvePropertiesANDROID const *>( &rhs ); + return *this; + } + + operator VkAndroidHardwareBufferFormatResolvePropertiesANDROID const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast<const VkAndroidHardwareBufferFormatResolvePropertiesANDROID *>( this ); + } + + operator VkAndroidHardwareBufferFormatResolvePropertiesANDROID &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast<VkAndroidHardwareBufferFormatResolvePropertiesANDROID *>( 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::Format const &> +# endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, colorAttachmentFormat ); + } +# endif + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( AndroidHardwareBufferFormatResolvePropertiesANDROID const & ) const = default; +# else + bool operator==( AndroidHardwareBufferFormatResolvePropertiesANDROID 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 ) && ( colorAttachmentFormat == rhs.colorAttachmentFormat ); +# endif + } + + bool operator!=( AndroidHardwareBufferFormatResolvePropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferFormatResolvePropertiesANDROID; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Format colorAttachmentFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined; + }; + + template <> + struct CppType<StructureType, StructureType::eAndroidHardwareBufferFormatResolvePropertiesANDROID> + { + using Type = AndroidHardwareBufferFormatResolvePropertiesANDROID; + }; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) struct AndroidHardwareBufferPropertiesANDROID { using NativeType = VkAndroidHardwareBufferPropertiesANDROID; @@ -38030,6 +38118,352 @@ namespace VULKAN_HPP_NAMESPACE using Type = GeneratedCommandsMemoryRequirementsInfoNV; }; + struct LatencyTimingsFrameReportNV + { + using NativeType = VkLatencyTimingsFrameReportNV; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eLatencyTimingsFrameReportNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR LatencyTimingsFrameReportNV( uint64_t presentID_ = {}, + uint64_t inputSampleTimeUs_ = {}, + uint64_t simStartTimeUs_ = {}, + uint64_t simEndTimeUs_ = {}, + uint64_t renderSubmitStartTimeUs_ = {}, + uint64_t renderSubmitEndTimeUs_ = {}, + uint64_t presentStartTimeUs_ = {}, + uint64_t presentEndTimeUs_ = {}, + uint64_t driverStartTimeUs_ = {}, + uint64_t driverEndTimeUs_ = {}, + uint64_t osRenderQueueStartTimeUs_ = {}, + uint64_t osRenderQueueEndTimeUs_ = {}, + uint64_t gpuRenderStartTimeUs_ = {}, + uint64_t gpuRenderEndTimeUs_ = {}, + const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , presentID( presentID_ ) + , inputSampleTimeUs( inputSampleTimeUs_ ) + , simStartTimeUs( simStartTimeUs_ ) + , simEndTimeUs( simEndTimeUs_ ) + , renderSubmitStartTimeUs( renderSubmitStartTimeUs_ ) + , renderSubmitEndTimeUs( renderSubmitEndTimeUs_ ) + , presentStartTimeUs( presentStartTimeUs_ ) + , presentEndTimeUs( presentEndTimeUs_ ) + , driverStartTimeUs( driverStartTimeUs_ ) + , driverEndTimeUs( driverEndTimeUs_ ) + , osRenderQueueStartTimeUs( osRenderQueueStartTimeUs_ ) + , osRenderQueueEndTimeUs( osRenderQueueEndTimeUs_ ) + , gpuRenderStartTimeUs( gpuRenderStartTimeUs_ ) + , gpuRenderEndTimeUs( gpuRenderEndTimeUs_ ) + { + } + + VULKAN_HPP_CONSTEXPR LatencyTimingsFrameReportNV( LatencyTimingsFrameReportNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + LatencyTimingsFrameReportNV( VkLatencyTimingsFrameReportNV const & rhs ) VULKAN_HPP_NOEXCEPT + : LatencyTimingsFrameReportNV( *reinterpret_cast<LatencyTimingsFrameReportNV const *>( &rhs ) ) + { + } + + LatencyTimingsFrameReportNV & operator=( LatencyTimingsFrameReportNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + LatencyTimingsFrameReportNV & operator=( VkLatencyTimingsFrameReportNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV const *>( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setPresentID( uint64_t presentID_ ) VULKAN_HPP_NOEXCEPT + { + presentID = presentID_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setInputSampleTimeUs( uint64_t inputSampleTimeUs_ ) VULKAN_HPP_NOEXCEPT + { + inputSampleTimeUs = inputSampleTimeUs_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setSimStartTimeUs( uint64_t simStartTimeUs_ ) VULKAN_HPP_NOEXCEPT + { + simStartTimeUs = simStartTimeUs_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setSimEndTimeUs( uint64_t simEndTimeUs_ ) VULKAN_HPP_NOEXCEPT + { + simEndTimeUs = simEndTimeUs_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setRenderSubmitStartTimeUs( uint64_t renderSubmitStartTimeUs_ ) VULKAN_HPP_NOEXCEPT + { + renderSubmitStartTimeUs = renderSubmitStartTimeUs_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setRenderSubmitEndTimeUs( uint64_t renderSubmitEndTimeUs_ ) VULKAN_HPP_NOEXCEPT + { + renderSubmitEndTimeUs = renderSubmitEndTimeUs_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setPresentStartTimeUs( uint64_t presentStartTimeUs_ ) VULKAN_HPP_NOEXCEPT + { + presentStartTimeUs = presentStartTimeUs_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setPresentEndTimeUs( uint64_t presentEndTimeUs_ ) VULKAN_HPP_NOEXCEPT + { + presentEndTimeUs = presentEndTimeUs_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setDriverStartTimeUs( uint64_t driverStartTimeUs_ ) VULKAN_HPP_NOEXCEPT + { + driverStartTimeUs = driverStartTimeUs_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setDriverEndTimeUs( uint64_t driverEndTimeUs_ ) VULKAN_HPP_NOEXCEPT + { + driverEndTimeUs = driverEndTimeUs_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setOsRenderQueueStartTimeUs( uint64_t osRenderQueueStartTimeUs_ ) VULKAN_HPP_NOEXCEPT + { + osRenderQueueStartTimeUs = osRenderQueueStartTimeUs_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setOsRenderQueueEndTimeUs( uint64_t osRenderQueueEndTimeUs_ ) VULKAN_HPP_NOEXCEPT + { + osRenderQueueEndTimeUs = osRenderQueueEndTimeUs_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setGpuRenderStartTimeUs( uint64_t gpuRenderStartTimeUs_ ) VULKAN_HPP_NOEXCEPT + { + gpuRenderStartTimeUs = gpuRenderStartTimeUs_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setGpuRenderEndTimeUs( uint64_t gpuRenderEndTimeUs_ ) VULKAN_HPP_NOEXCEPT + { + gpuRenderEndTimeUs = gpuRenderEndTimeUs_; + return *this; + } +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkLatencyTimingsFrameReportNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast<const VkLatencyTimingsFrameReportNV *>( this ); + } + + operator VkLatencyTimingsFrameReportNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast<VkLatencyTimingsFrameReportNV *>( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +# if 14 <= VULKAN_HPP_CPP_VERSION + auto +# else + std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, + const void * const &, + uint64_t const &, + uint64_t const &, + uint64_t const &, + uint64_t const &, + uint64_t const &, + uint64_t const &, + uint64_t const &, + uint64_t const &, + uint64_t const &, + uint64_t const &, + uint64_t const &, + uint64_t const &, + uint64_t const &, + uint64_t const &> +# endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, + pNext, + presentID, + inputSampleTimeUs, + simStartTimeUs, + simEndTimeUs, + renderSubmitStartTimeUs, + renderSubmitEndTimeUs, + presentStartTimeUs, + presentEndTimeUs, + driverStartTimeUs, + driverEndTimeUs, + osRenderQueueStartTimeUs, + osRenderQueueEndTimeUs, + gpuRenderStartTimeUs, + gpuRenderEndTimeUs ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( LatencyTimingsFrameReportNV const & ) const = default; +#else + bool operator==( LatencyTimingsFrameReportNV 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 ) && ( presentID == rhs.presentID ) && ( inputSampleTimeUs == rhs.inputSampleTimeUs ) && + ( simStartTimeUs == rhs.simStartTimeUs ) && ( simEndTimeUs == rhs.simEndTimeUs ) && ( renderSubmitStartTimeUs == rhs.renderSubmitStartTimeUs ) && + ( renderSubmitEndTimeUs == rhs.renderSubmitEndTimeUs ) && ( presentStartTimeUs == rhs.presentStartTimeUs ) && + ( presentEndTimeUs == rhs.presentEndTimeUs ) && ( driverStartTimeUs == rhs.driverStartTimeUs ) && ( driverEndTimeUs == rhs.driverEndTimeUs ) && + ( osRenderQueueStartTimeUs == rhs.osRenderQueueStartTimeUs ) && ( osRenderQueueEndTimeUs == rhs.osRenderQueueEndTimeUs ) && + ( gpuRenderStartTimeUs == rhs.gpuRenderStartTimeUs ) && ( gpuRenderEndTimeUs == rhs.gpuRenderEndTimeUs ); +# endif + } + + bool operator!=( LatencyTimingsFrameReportNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eLatencyTimingsFrameReportNV; + const void * pNext = {}; + uint64_t presentID = {}; + uint64_t inputSampleTimeUs = {}; + uint64_t simStartTimeUs = {}; + uint64_t simEndTimeUs = {}; + uint64_t renderSubmitStartTimeUs = {}; + uint64_t renderSubmitEndTimeUs = {}; + uint64_t presentStartTimeUs = {}; + uint64_t presentEndTimeUs = {}; + uint64_t driverStartTimeUs = {}; + uint64_t driverEndTimeUs = {}; + uint64_t osRenderQueueStartTimeUs = {}; + uint64_t osRenderQueueEndTimeUs = {}; + uint64_t gpuRenderStartTimeUs = {}; + uint64_t gpuRenderEndTimeUs = {}; + }; + + template <> + struct CppType<StructureType, StructureType::eLatencyTimingsFrameReportNV> + { + using Type = LatencyTimingsFrameReportNV; + }; + + struct GetLatencyMarkerInfoNV + { + using NativeType = VkGetLatencyMarkerInfoNV; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGetLatencyMarkerInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR GetLatencyMarkerInfoNV( VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * pTimings_ = {}, + const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , pTimings( pTimings_ ) + { + } + + VULKAN_HPP_CONSTEXPR GetLatencyMarkerInfoNV( GetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + GetLatencyMarkerInfoNV( VkGetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + : GetLatencyMarkerInfoNV( *reinterpret_cast<GetLatencyMarkerInfoNV const *>( &rhs ) ) + { + } + + GetLatencyMarkerInfoNV & operator=( GetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + GetLatencyMarkerInfoNV & operator=( VkGetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV const *>( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 GetLatencyMarkerInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 GetLatencyMarkerInfoNV & setPTimings( VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * pTimings_ ) VULKAN_HPP_NOEXCEPT + { + pTimings = pTimings_; + return *this; + } +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkGetLatencyMarkerInfoNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast<const VkGetLatencyMarkerInfoNV *>( this ); + } + + operator VkGetLatencyMarkerInfoNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast<VkGetLatencyMarkerInfoNV *>( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +# if 14 <= VULKAN_HPP_CPP_VERSION + auto +# else + std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * const &> +# endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, pTimings ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( GetLatencyMarkerInfoNV const & ) const = default; +#else + bool operator==( GetLatencyMarkerInfoNV 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 ) && ( pTimings == rhs.pTimings ); +# endif + } + + bool operator!=( GetLatencyMarkerInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGetLatencyMarkerInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * pTimings = {}; + }; + + template <> + struct CppType<StructureType, StructureType::eGetLatencyMarkerInfoNV> + { + using Type = GetLatencyMarkerInfoNV; + }; + struct VertexInputBindingDescription { using NativeType = VkVertexInputBindingDescription; @@ -47915,6 +48349,448 @@ namespace VULKAN_HPP_NAMESPACE using Type = InstanceCreateInfo; }; + struct LatencySleepInfoNV + { + using NativeType = VkLatencySleepInfoNV; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eLatencySleepInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + LatencySleepInfoNV( VULKAN_HPP_NAMESPACE::Semaphore signalSemaphore_ = {}, uint64_t value_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , signalSemaphore( signalSemaphore_ ) + , value( value_ ) + { + } + + VULKAN_HPP_CONSTEXPR LatencySleepInfoNV( LatencySleepInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + LatencySleepInfoNV( VkLatencySleepInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT : LatencySleepInfoNV( *reinterpret_cast<LatencySleepInfoNV const *>( &rhs ) ) {} + + LatencySleepInfoNV & operator=( LatencySleepInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + LatencySleepInfoNV & operator=( VkLatencySleepInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LatencySleepInfoNV const *>( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 LatencySleepInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencySleepInfoNV & setSignalSemaphore( VULKAN_HPP_NAMESPACE::Semaphore signalSemaphore_ ) VULKAN_HPP_NOEXCEPT + { + signalSemaphore = signalSemaphore_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencySleepInfoNV & setValue( uint64_t value_ ) VULKAN_HPP_NOEXCEPT + { + value = value_; + return *this; + } +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkLatencySleepInfoNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast<const VkLatencySleepInfoNV *>( this ); + } + + operator VkLatencySleepInfoNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast<VkLatencySleepInfoNV *>( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +# if 14 <= VULKAN_HPP_CPP_VERSION + auto +# else + std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Semaphore const &, uint64_t const &> +# endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, signalSemaphore, value ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( LatencySleepInfoNV const & ) const = default; +#else + bool operator==( LatencySleepInfoNV 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 ) && ( signalSemaphore == rhs.signalSemaphore ) && ( value == rhs.value ); +# endif + } + + bool operator!=( LatencySleepInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eLatencySleepInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Semaphore signalSemaphore = {}; + uint64_t value = {}; + }; + + template <> + struct CppType<StructureType, StructureType::eLatencySleepInfoNV> + { + using Type = LatencySleepInfoNV; + }; + + struct LatencySleepModeInfoNV + { + using NativeType = VkLatencySleepModeInfoNV; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eLatencySleepModeInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR LatencySleepModeInfoNV( VULKAN_HPP_NAMESPACE::Bool32 lowLatencyMode_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 lowLatencyBoost_ = {}, + uint32_t minimumIntervalUs_ = {}, + const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , lowLatencyMode( lowLatencyMode_ ) + , lowLatencyBoost( lowLatencyBoost_ ) + , minimumIntervalUs( minimumIntervalUs_ ) + { + } + + VULKAN_HPP_CONSTEXPR LatencySleepModeInfoNV( LatencySleepModeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + LatencySleepModeInfoNV( VkLatencySleepModeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + : LatencySleepModeInfoNV( *reinterpret_cast<LatencySleepModeInfoNV const *>( &rhs ) ) + { + } + + LatencySleepModeInfoNV & operator=( LatencySleepModeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + LatencySleepModeInfoNV & operator=( VkLatencySleepModeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV const *>( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 LatencySleepModeInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencySleepModeInfoNV & setLowLatencyMode( VULKAN_HPP_NAMESPACE::Bool32 lowLatencyMode_ ) VULKAN_HPP_NOEXCEPT + { + lowLatencyMode = lowLatencyMode_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencySleepModeInfoNV & setLowLatencyBoost( VULKAN_HPP_NAMESPACE::Bool32 lowLatencyBoost_ ) VULKAN_HPP_NOEXCEPT + { + lowLatencyBoost = lowLatencyBoost_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencySleepModeInfoNV & setMinimumIntervalUs( uint32_t minimumIntervalUs_ ) VULKAN_HPP_NOEXCEPT + { + minimumIntervalUs = minimumIntervalUs_; + return *this; + } +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkLatencySleepModeInfoNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast<const VkLatencySleepModeInfoNV *>( this ); + } + + operator VkLatencySleepModeInfoNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast<VkLatencySleepModeInfoNV *>( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +# if 14 <= VULKAN_HPP_CPP_VERSION + auto +# else + std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, + const void * const &, + VULKAN_HPP_NAMESPACE::Bool32 const &, + VULKAN_HPP_NAMESPACE::Bool32 const &, + uint32_t const &> +# endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, lowLatencyMode, lowLatencyBoost, minimumIntervalUs ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( LatencySleepModeInfoNV const & ) const = default; +#else + bool operator==( LatencySleepModeInfoNV 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 ) && ( lowLatencyMode == rhs.lowLatencyMode ) && ( lowLatencyBoost == rhs.lowLatencyBoost ) && + ( minimumIntervalUs == rhs.minimumIntervalUs ); +# endif + } + + bool operator!=( LatencySleepModeInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eLatencySleepModeInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 lowLatencyMode = {}; + VULKAN_HPP_NAMESPACE::Bool32 lowLatencyBoost = {}; + uint32_t minimumIntervalUs = {}; + }; + + template <> + struct CppType<StructureType, StructureType::eLatencySleepModeInfoNV> + { + using Type = LatencySleepModeInfoNV; + }; + + struct LatencySubmissionPresentIdNV + { + using NativeType = VkLatencySubmissionPresentIdNV; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eLatencySubmissionPresentIdNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR LatencySubmissionPresentIdNV( uint64_t presentID_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , presentID( presentID_ ) + { + } + + VULKAN_HPP_CONSTEXPR LatencySubmissionPresentIdNV( LatencySubmissionPresentIdNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + LatencySubmissionPresentIdNV( VkLatencySubmissionPresentIdNV const & rhs ) VULKAN_HPP_NOEXCEPT + : LatencySubmissionPresentIdNV( *reinterpret_cast<LatencySubmissionPresentIdNV const *>( &rhs ) ) + { + } + + LatencySubmissionPresentIdNV & operator=( LatencySubmissionPresentIdNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + LatencySubmissionPresentIdNV & operator=( VkLatencySubmissionPresentIdNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV const *>( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 LatencySubmissionPresentIdNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencySubmissionPresentIdNV & setPresentID( uint64_t presentID_ ) VULKAN_HPP_NOEXCEPT + { + presentID = presentID_; + return *this; + } +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkLatencySubmissionPresentIdNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast<const VkLatencySubmissionPresentIdNV *>( this ); + } + + operator VkLatencySubmissionPresentIdNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast<VkLatencySubmissionPresentIdNV *>( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +# if 14 <= VULKAN_HPP_CPP_VERSION + auto +# else + std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint64_t const &> +# endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, presentID ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( LatencySubmissionPresentIdNV const & ) const = default; +#else + bool operator==( LatencySubmissionPresentIdNV 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 ) && ( presentID == rhs.presentID ); +# endif + } + + bool operator!=( LatencySubmissionPresentIdNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eLatencySubmissionPresentIdNV; + const void * pNext = {}; + uint64_t presentID = {}; + }; + + template <> + struct CppType<StructureType, StructureType::eLatencySubmissionPresentIdNV> + { + using Type = LatencySubmissionPresentIdNV; + }; + + struct LatencySurfaceCapabilitiesNV + { + using NativeType = VkLatencySurfaceCapabilitiesNV; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eLatencySurfaceCapabilitiesNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR LatencySurfaceCapabilitiesNV( uint32_t presentModeCount_ = {}, + VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_ = {}, + const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , presentModeCount( presentModeCount_ ) + , pPresentModes( pPresentModes_ ) + { + } + + VULKAN_HPP_CONSTEXPR LatencySurfaceCapabilitiesNV( LatencySurfaceCapabilitiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + LatencySurfaceCapabilitiesNV( VkLatencySurfaceCapabilitiesNV const & rhs ) VULKAN_HPP_NOEXCEPT + : LatencySurfaceCapabilitiesNV( *reinterpret_cast<LatencySurfaceCapabilitiesNV const *>( &rhs ) ) + { + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + LatencySurfaceCapabilitiesNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::PresentModeKHR> const & presentModes_, + const void * pNext_ = nullptr ) + : pNext( pNext_ ), presentModeCount( static_cast<uint32_t>( presentModes_.size() ) ), pPresentModes( presentModes_.data() ) + { + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + LatencySurfaceCapabilitiesNV & operator=( LatencySurfaceCapabilitiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + LatencySurfaceCapabilitiesNV & operator=( VkLatencySurfaceCapabilitiesNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV const *>( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 LatencySurfaceCapabilitiesNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencySurfaceCapabilitiesNV & setPresentModeCount( uint32_t presentModeCount_ ) VULKAN_HPP_NOEXCEPT + { + presentModeCount = presentModeCount_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 LatencySurfaceCapabilitiesNV & setPPresentModes( VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_ ) VULKAN_HPP_NOEXCEPT + { + pPresentModes = pPresentModes_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + LatencySurfaceCapabilitiesNV & + setPresentModes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::PresentModeKHR> const & presentModes_ ) VULKAN_HPP_NOEXCEPT + { + presentModeCount = static_cast<uint32_t>( presentModes_.size() ); + pPresentModes = presentModes_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkLatencySurfaceCapabilitiesNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast<const VkLatencySurfaceCapabilitiesNV *>( this ); + } + + operator VkLatencySurfaceCapabilitiesNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast<VkLatencySurfaceCapabilitiesNV *>( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +# if 14 <= VULKAN_HPP_CPP_VERSION + auto +# else + std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::PresentModeKHR * const &> +# endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, presentModeCount, pPresentModes ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( LatencySurfaceCapabilitiesNV const & ) const = default; +#else + bool operator==( LatencySurfaceCapabilitiesNV 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 ) && ( presentModeCount == rhs.presentModeCount ) && ( pPresentModes == rhs.pPresentModes ); +# endif + } + + bool operator!=( LatencySurfaceCapabilitiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eLatencySurfaceCapabilitiesNV; + const void * pNext = {}; + uint32_t presentModeCount = {}; + VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes = {}; + }; + + template <> + struct CppType<StructureType, StructureType::eLatencySurfaceCapabilitiesNV> + { + using Type = LatencySurfaceCapabilitiesNV; + }; + struct LayerProperties { using NativeType = VkLayerProperties; @@ -52700,6 +53576,103 @@ namespace VULKAN_HPP_NAMESPACE using Type = OpticalFlowSessionCreatePrivateDataInfoNV; }; + struct OutOfBandQueueTypeInfoNV + { + using NativeType = VkOutOfBandQueueTypeInfoNV; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eOutOfBandQueueTypeInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR OutOfBandQueueTypeInfoNV( VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV queueType_ = VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV::eRender, + const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , queueType( queueType_ ) + { + } + + VULKAN_HPP_CONSTEXPR OutOfBandQueueTypeInfoNV( OutOfBandQueueTypeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + OutOfBandQueueTypeInfoNV( VkOutOfBandQueueTypeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + : OutOfBandQueueTypeInfoNV( *reinterpret_cast<OutOfBandQueueTypeInfoNV const *>( &rhs ) ) + { + } + + OutOfBandQueueTypeInfoNV & operator=( OutOfBandQueueTypeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + OutOfBandQueueTypeInfoNV & operator=( VkOutOfBandQueueTypeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV const *>( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 OutOfBandQueueTypeInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 OutOfBandQueueTypeInfoNV & setQueueType( VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV queueType_ ) VULKAN_HPP_NOEXCEPT + { + queueType = queueType_; + return *this; + } +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkOutOfBandQueueTypeInfoNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast<const VkOutOfBandQueueTypeInfoNV *>( this ); + } + + operator VkOutOfBandQueueTypeInfoNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast<VkOutOfBandQueueTypeInfoNV *>( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +# if 14 <= VULKAN_HPP_CPP_VERSION + auto +# else + std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV const &> +# endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, queueType ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( OutOfBandQueueTypeInfoNV const & ) const = default; +#else + bool operator==( OutOfBandQueueTypeInfoNV 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 ) && ( queueType == rhs.queueType ); +# endif + } + + bool operator!=( OutOfBandQueueTypeInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eOutOfBandQueueTypeInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV queueType = VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV::eRender; + }; + + template <> + struct CppType<StructureType, StructureType::eOutOfBandQueueTypeInfoNV> + { + using Type = OutOfBandQueueTypeInfoNV; + }; + struct PastPresentationTimingGOOGLE { using NativeType = VkPastPresentationTimingGOOGLE; @@ -61603,6 +62576,209 @@ namespace VULKAN_HPP_NAMESPACE }; using PhysicalDeviceExternalFenceInfoKHR = PhysicalDeviceExternalFenceInfo; +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + struct PhysicalDeviceExternalFormatResolveFeaturesANDROID + { + using NativeType = VkPhysicalDeviceExternalFormatResolveFeaturesANDROID; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalFormatResolveFeaturesANDROID; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFormatResolveFeaturesANDROID( VULKAN_HPP_NAMESPACE::Bool32 externalFormatResolve_ = {}, + void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , externalFormatResolve( externalFormatResolve_ ) + { + } + + VULKAN_HPP_CONSTEXPR + PhysicalDeviceExternalFormatResolveFeaturesANDROID( PhysicalDeviceExternalFormatResolveFeaturesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceExternalFormatResolveFeaturesANDROID( VkPhysicalDeviceExternalFormatResolveFeaturesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceExternalFormatResolveFeaturesANDROID( *reinterpret_cast<PhysicalDeviceExternalFormatResolveFeaturesANDROID const *>( &rhs ) ) + { + } + + PhysicalDeviceExternalFormatResolveFeaturesANDROID & + operator=( PhysicalDeviceExternalFormatResolveFeaturesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + PhysicalDeviceExternalFormatResolveFeaturesANDROID & operator=( VkPhysicalDeviceExternalFormatResolveFeaturesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID const *>( &rhs ); + return *this; + } + +# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalFormatResolveFeaturesANDROID & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalFormatResolveFeaturesANDROID & + setExternalFormatResolve( VULKAN_HPP_NAMESPACE::Bool32 externalFormatResolve_ ) VULKAN_HPP_NOEXCEPT + { + externalFormatResolve = externalFormatResolve_; + return *this; + } +# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkPhysicalDeviceExternalFormatResolveFeaturesANDROID const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast<const VkPhysicalDeviceExternalFormatResolveFeaturesANDROID *>( this ); + } + + operator VkPhysicalDeviceExternalFormatResolveFeaturesANDROID &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast<VkPhysicalDeviceExternalFormatResolveFeaturesANDROID *>( 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, externalFormatResolve ); + } +# endif + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceExternalFormatResolveFeaturesANDROID const & ) const = default; +# else + bool operator==( PhysicalDeviceExternalFormatResolveFeaturesANDROID 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 ) && ( externalFormatResolve == rhs.externalFormatResolve ); +# endif + } + + bool operator!=( PhysicalDeviceExternalFormatResolveFeaturesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalFormatResolveFeaturesANDROID; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 externalFormatResolve = {}; + }; + + template <> + struct CppType<StructureType, StructureType::ePhysicalDeviceExternalFormatResolveFeaturesANDROID> + { + using Type = PhysicalDeviceExternalFormatResolveFeaturesANDROID; + }; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + struct PhysicalDeviceExternalFormatResolvePropertiesANDROID + { + using NativeType = VkPhysicalDeviceExternalFormatResolvePropertiesANDROID; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalFormatResolvePropertiesANDROID; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFormatResolvePropertiesANDROID( + VULKAN_HPP_NAMESPACE::Bool32 nullColorAttachmentWithExternalFormatResolve_ = {}, + VULKAN_HPP_NAMESPACE::ChromaLocation externalFormatResolveChromaOffsetX_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, + VULKAN_HPP_NAMESPACE::ChromaLocation externalFormatResolveChromaOffsetY_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, + void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , nullColorAttachmentWithExternalFormatResolve( nullColorAttachmentWithExternalFormatResolve_ ) + , externalFormatResolveChromaOffsetX( externalFormatResolveChromaOffsetX_ ) + , externalFormatResolveChromaOffsetY( externalFormatResolveChromaOffsetY_ ) + { + } + + VULKAN_HPP_CONSTEXPR + PhysicalDeviceExternalFormatResolvePropertiesANDROID( PhysicalDeviceExternalFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceExternalFormatResolvePropertiesANDROID( VkPhysicalDeviceExternalFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceExternalFormatResolvePropertiesANDROID( *reinterpret_cast<PhysicalDeviceExternalFormatResolvePropertiesANDROID const *>( &rhs ) ) + { + } + + PhysicalDeviceExternalFormatResolvePropertiesANDROID & + operator=( PhysicalDeviceExternalFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + PhysicalDeviceExternalFormatResolvePropertiesANDROID & operator=( VkPhysicalDeviceExternalFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolvePropertiesANDROID const *>( &rhs ); + return *this; + } + + operator VkPhysicalDeviceExternalFormatResolvePropertiesANDROID const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast<const VkPhysicalDeviceExternalFormatResolvePropertiesANDROID *>( this ); + } + + operator VkPhysicalDeviceExternalFormatResolvePropertiesANDROID &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast<VkPhysicalDeviceExternalFormatResolvePropertiesANDROID *>( 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 &, + VULKAN_HPP_NAMESPACE::ChromaLocation const &, + VULKAN_HPP_NAMESPACE::ChromaLocation const &> +# endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, nullColorAttachmentWithExternalFormatResolve, externalFormatResolveChromaOffsetX, externalFormatResolveChromaOffsetY ); + } +# endif + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceExternalFormatResolvePropertiesANDROID const & ) const = default; +# else + bool operator==( PhysicalDeviceExternalFormatResolvePropertiesANDROID 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 ) && + ( nullColorAttachmentWithExternalFormatResolve == rhs.nullColorAttachmentWithExternalFormatResolve ) && + ( externalFormatResolveChromaOffsetX == rhs.externalFormatResolveChromaOffsetX ) && + ( externalFormatResolveChromaOffsetY == rhs.externalFormatResolveChromaOffsetY ); +# endif + } + + bool operator!=( PhysicalDeviceExternalFormatResolvePropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalFormatResolvePropertiesANDROID; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 nullColorAttachmentWithExternalFormatResolve = {}; + VULKAN_HPP_NAMESPACE::ChromaLocation externalFormatResolveChromaOffsetX = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven; + VULKAN_HPP_NAMESPACE::ChromaLocation externalFormatResolveChromaOffsetY = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven; + }; + + template <> + struct CppType<StructureType, StructureType::ePhysicalDeviceExternalFormatResolvePropertiesANDROID> + { + using Type = PhysicalDeviceExternalFormatResolvePropertiesANDROID; + }; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + struct PhysicalDeviceExternalImageFormatInfo { using NativeType = VkPhysicalDeviceExternalImageFormatInfo; @@ -101178,6 +102354,112 @@ namespace VULKAN_HPP_NAMESPACE }; using SemaphoreWaitInfoKHR = SemaphoreWaitInfo; + struct SetLatencyMarkerInfoNV + { + using NativeType = VkSetLatencyMarkerInfoNV; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSetLatencyMarkerInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SetLatencyMarkerInfoNV( uint64_t presentID_ = {}, + VULKAN_HPP_NAMESPACE::LatencyMarkerNV marker_ = VULKAN_HPP_NAMESPACE::LatencyMarkerNV::eSimulationStart, + const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , presentID( presentID_ ) + , marker( marker_ ) + { + } + + VULKAN_HPP_CONSTEXPR SetLatencyMarkerInfoNV( SetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SetLatencyMarkerInfoNV( VkSetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + : SetLatencyMarkerInfoNV( *reinterpret_cast<SetLatencyMarkerInfoNV const *>( &rhs ) ) + { + } + + SetLatencyMarkerInfoNV & operator=( SetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + SetLatencyMarkerInfoNV & operator=( VkSetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV const *>( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 SetLatencyMarkerInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 SetLatencyMarkerInfoNV & setPresentID( uint64_t presentID_ ) VULKAN_HPP_NOEXCEPT + { + presentID = presentID_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 SetLatencyMarkerInfoNV & setMarker( VULKAN_HPP_NAMESPACE::LatencyMarkerNV marker_ ) VULKAN_HPP_NOEXCEPT + { + marker = marker_; + return *this; + } +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkSetLatencyMarkerInfoNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast<const VkSetLatencyMarkerInfoNV *>( this ); + } + + operator VkSetLatencyMarkerInfoNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast<VkSetLatencyMarkerInfoNV *>( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +# if 14 <= VULKAN_HPP_CPP_VERSION + auto +# else + std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint64_t const &, VULKAN_HPP_NAMESPACE::LatencyMarkerNV const &> +# endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, presentID, marker ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SetLatencyMarkerInfoNV const & ) const = default; +#else + bool operator==( SetLatencyMarkerInfoNV 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 ) && ( presentID == rhs.presentID ) && ( marker == rhs.marker ); +# endif + } + + bool operator!=( SetLatencyMarkerInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSetLatencyMarkerInfoNV; + const void * pNext = {}; + uint64_t presentID = {}; + VULKAN_HPP_NAMESPACE::LatencyMarkerNV marker = VULKAN_HPP_NAMESPACE::LatencyMarkerNV::eSimulationStart; + }; + + template <> + struct CppType<StructureType, StructureType::eSetLatencyMarkerInfoNV> + { + using Type = SetLatencyMarkerInfoNV; + }; + struct SetStateFlagsIndirectCommandNV { using NativeType = VkSetStateFlagsIndirectCommandNV; @@ -105783,6 +107065,102 @@ namespace VULKAN_HPP_NAMESPACE using Type = SwapchainDisplayNativeHdrCreateInfoAMD; }; + struct SwapchainLatencyCreateInfoNV + { + using NativeType = VkSwapchainLatencyCreateInfoNV; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainLatencyCreateInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SwapchainLatencyCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 latencyModeEnable_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext( pNext_ ) + , latencyModeEnable( latencyModeEnable_ ) + { + } + + VULKAN_HPP_CONSTEXPR SwapchainLatencyCreateInfoNV( SwapchainLatencyCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SwapchainLatencyCreateInfoNV( VkSwapchainLatencyCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + : SwapchainLatencyCreateInfoNV( *reinterpret_cast<SwapchainLatencyCreateInfoNV const *>( &rhs ) ) + { + } + + SwapchainLatencyCreateInfoNV & operator=( SwapchainLatencyCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + SwapchainLatencyCreateInfoNV & operator=( VkSwapchainLatencyCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV const *>( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 SwapchainLatencyCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 SwapchainLatencyCreateInfoNV & setLatencyModeEnable( VULKAN_HPP_NAMESPACE::Bool32 latencyModeEnable_ ) VULKAN_HPP_NOEXCEPT + { + latencyModeEnable = latencyModeEnable_; + return *this; + } +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + + operator VkSwapchainLatencyCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast<const VkSwapchainLatencyCreateInfoNV *>( this ); + } + + operator VkSwapchainLatencyCreateInfoNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast<VkSwapchainLatencyCreateInfoNV *>( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +# if 14 <= VULKAN_HPP_CPP_VERSION + auto +# else + std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &> +# endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, latencyModeEnable ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SwapchainLatencyCreateInfoNV const & ) const = default; +#else + bool operator==( SwapchainLatencyCreateInfoNV 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 ) && ( latencyModeEnable == rhs.latencyModeEnable ); +# endif + } + + bool operator!=( SwapchainLatencyCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainLatencyCreateInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 latencyModeEnable = {}; + }; + + template <> + struct CppType<StructureType, StructureType::eSwapchainLatencyCreateInfoNV> + { + using Type = SwapchainLatencyCreateInfoNV; + }; + struct SwapchainPresentBarrierCreateInfoNV { using NativeType = VkSwapchainPresentBarrierCreateInfoNV; diff --git a/include/vulkan/vulkan_to_string.hpp b/include/vulkan/vulkan_to_string.hpp index 667174b..09b6a9d 100644 --- a/include/vulkan/vulkan_to_string.hpp +++ b/include/vulkan/vulkan_to_string.hpp @@ -1460,6 +1460,10 @@ namespace VULKAN_HPP_NAMESPACE result += "Min | "; if ( value & ResolveModeFlagBits::eMax ) result += "Max | "; +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + if ( value & ResolveModeFlagBits::eExternalFormatDownsampleANDROID ) + result += "ExternalFormatDownsampleANDROID | "; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } @@ -4418,6 +4422,11 @@ namespace VULKAN_HPP_NAMESPACE case StructureType::eOpticalFlowSessionCreatePrivateDataInfoNV: return "OpticalFlowSessionCreatePrivateDataInfoNV"; case StructureType::ePhysicalDeviceLegacyDitheringFeaturesEXT: return "PhysicalDeviceLegacyDitheringFeaturesEXT"; case StructureType::ePhysicalDevicePipelineProtectedAccessFeaturesEXT: return "PhysicalDevicePipelineProtectedAccessFeaturesEXT"; +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + case StructureType::ePhysicalDeviceExternalFormatResolveFeaturesANDROID: return "PhysicalDeviceExternalFormatResolveFeaturesANDROID"; + case StructureType::ePhysicalDeviceExternalFormatResolvePropertiesANDROID: return "PhysicalDeviceExternalFormatResolvePropertiesANDROID"; + case StructureType::eAndroidHardwareBufferFormatResolvePropertiesANDROID: return "AndroidHardwareBufferFormatResolvePropertiesANDROID"; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ case StructureType::ePhysicalDeviceMaintenance5FeaturesKHR: return "PhysicalDeviceMaintenance5FeaturesKHR"; case StructureType::ePhysicalDeviceMaintenance5PropertiesKHR: return "PhysicalDeviceMaintenance5PropertiesKHR"; case StructureType::eRenderingAreaInfoKHR: return "RenderingAreaInfoKHR"; @@ -4443,6 +4452,15 @@ namespace VULKAN_HPP_NAMESPACE case StructureType::ePhysicalDeviceShaderCoreBuiltinsPropertiesARM: return "PhysicalDeviceShaderCoreBuiltinsPropertiesARM"; case StructureType::ePhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT: return "PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT"; case StructureType::ePhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT: return "PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT"; + case StructureType::eLatencySleepModeInfoNV: return "LatencySleepModeInfoNV"; + case StructureType::eLatencySleepInfoNV: return "LatencySleepInfoNV"; + case StructureType::eSetLatencyMarkerInfoNV: return "SetLatencyMarkerInfoNV"; + case StructureType::eGetLatencyMarkerInfoNV: return "GetLatencyMarkerInfoNV"; + case StructureType::eLatencyTimingsFrameReportNV: return "LatencyTimingsFrameReportNV"; + case StructureType::eLatencySubmissionPresentIdNV: return "LatencySubmissionPresentIdNV"; + case StructureType::eOutOfBandQueueTypeInfoNV: return "OutOfBandQueueTypeInfoNV"; + case StructureType::eSwapchainLatencyCreateInfoNV: return "SwapchainLatencyCreateInfoNV"; + case StructureType::eLatencySurfaceCapabilitiesNV: return "LatencySurfaceCapabilitiesNV"; case StructureType::ePhysicalDeviceCooperativeMatrixFeaturesKHR: return "PhysicalDeviceCooperativeMatrixFeaturesKHR"; case StructureType::eCooperativeMatrixPropertiesKHR: return "CooperativeMatrixPropertiesKHR"; case StructureType::ePhysicalDeviceCooperativeMatrixPropertiesKHR: return "PhysicalDeviceCooperativeMatrixPropertiesKHR"; @@ -6375,6 +6393,7 @@ namespace VULKAN_HPP_NAMESPACE case DriverId::eMesaDozen: return "MesaDozen"; case DriverId::eMesaNvk: return "MesaNvk"; case DriverId::eImaginationOpenSourceMESA: return "ImaginationOpenSourceMESA"; + case DriverId::eMesaAgxv: return "MesaAgxv"; default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )"; } } @@ -6411,6 +6430,9 @@ namespace VULKAN_HPP_NAMESPACE case ResolveModeFlagBits::eAverage: return "Average"; case ResolveModeFlagBits::eMin: return "Min"; case ResolveModeFlagBits::eMax: return "Max"; +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + case ResolveModeFlagBits::eExternalFormatDownsampleANDROID: return "ExternalFormatDownsampleANDROID"; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )"; } } @@ -8862,6 +8884,38 @@ namespace VULKAN_HPP_NAMESPACE } } + //=== VK_NV_low_latency2 === + + VULKAN_HPP_INLINE std::string to_string( LatencyMarkerNV value ) + { + switch ( value ) + { + case LatencyMarkerNV::eSimulationStart: return "SimulationStart"; + case LatencyMarkerNV::eSimulationEnd: return "SimulationEnd"; + case LatencyMarkerNV::eRendersubmitStart: return "RendersubmitStart"; + case LatencyMarkerNV::eRendersubmitEnd: return "RendersubmitEnd"; + case LatencyMarkerNV::ePresentStart: return "PresentStart"; + case LatencyMarkerNV::ePresentEnd: return "PresentEnd"; + case LatencyMarkerNV::eInputSample: return "InputSample"; + case LatencyMarkerNV::eTriggerFlash: return "TriggerFlash"; + case LatencyMarkerNV::eOutOfBandRendersubmitStart: return "OutOfBandRendersubmitStart"; + case LatencyMarkerNV::eOutOfBandRendersubmitEnd: return "OutOfBandRendersubmitEnd"; + case LatencyMarkerNV::eOutOfBandPresentStart: return "OutOfBandPresentStart"; + case LatencyMarkerNV::eOutOfBandPresentEnd: return "OutOfBandPresentEnd"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )"; + } + } + + VULKAN_HPP_INLINE std::string to_string( OutOfBandQueueTypeNV value ) + { + switch ( value ) + { + case OutOfBandQueueTypeNV::eRender: return "Render"; + case OutOfBandQueueTypeNV::ePresent: return "Present"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )"; + } + } + //=== VK_KHR_cooperative_matrix === VULKAN_HPP_INLINE std::string to_string( ScopeKHR value ) diff --git a/registry/genvk.py b/registry/genvk.py index 71e6baf..676c78c 100755 --- a/registry/genvk.py +++ b/registry/genvk.py @@ -428,7 +428,8 @@ def makeGenOpts(args): platforms = [ [ 'vulkan_android.h', [ 'VK_KHR_android_surface', - 'VK_ANDROID_external_memory_android_hardware_buffer' + 'VK_ANDROID_external_memory_android_hardware_buffer', + 'VK_ANDROID_external_format_resolve' ], commonSuppressExtensions + [ 'VK_KHR_format_feature_flags2', ] ], diff --git a/registry/validusage.json b/registry/validusage.json index 6abdf35..ff267c9 100644 --- a/registry/validusage.json +++ b/registry/validusage.json @@ -1,9 +1,9 @@ { "version info": { "schema version": 2, - "api version": "1.3.265", - "comment": "from git branch: github-main commit: 4871ab9e57fb07f98bf016cb10a3088924976e29", - "date": "2023-09-23 07:15:31Z" + "api version": "1.3.266", + "comment": "from git branch: github-main commit: e5dbdd580cf0696db8ed0aeb0736e0f512d9bbe1", + "date": "2023-09-29 08:55:58Z" }, "validation": { "vkGetInstanceProcAddr": { @@ -331,7 +331,7 @@ }, { "vuid": "VUID-VkPhysicalDeviceProperties2-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=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT\">VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI\">VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI</a>, <a href=\"#VkPhysicalDeviceConservativeRasterizationPropertiesEXT\">VkPhysicalDeviceConservativeRasterizationPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixPropertiesKHR\">VkPhysicalDeviceCooperativeMatrixPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixPropertiesNV\">VkPhysicalDeviceCooperativeMatrixPropertiesNV</a>, <a href=\"#VkPhysicalDeviceCopyMemoryIndirectPropertiesNV\">VkPhysicalDeviceCopyMemoryIndirectPropertiesNV</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorPropertiesEXT\">VkPhysicalDeviceCustomBorderColorPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT\">VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingProperties\">VkPhysicalDeviceDescriptorIndexingProperties</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceDiscardRectanglePropertiesEXT\">VkPhysicalDeviceDiscardRectanglePropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDisplacementMicromapPropertiesNV\">VkPhysicalDeviceDisplacementMicromapPropertiesNV</a>, <a href=\"#VkPhysicalDeviceDriverProperties\">VkPhysicalDeviceDriverProperties</a>, <a href=\"#VkPhysicalDeviceDrmPropertiesEXT\">VkPhysicalDeviceDrmPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState3PropertiesEXT\">VkPhysicalDeviceExtendedDynamicState3PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceExternalMemoryHostPropertiesEXT\">VkPhysicalDeviceExternalMemoryHostPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFloatControlsProperties\">VkPhysicalDeviceFloatControlsProperties</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMap2PropertiesEXT\">VkPhysicalDeviceFragmentDensityMap2PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM\">VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapPropertiesEXT\">VkPhysicalDeviceFragmentDensityMapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR\">VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV\">VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRatePropertiesKHR\">VkPhysicalDeviceFragmentShadingRatePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT\">VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceHostImageCopyPropertiesEXT\">VkPhysicalDeviceHostImageCopyPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceIDProperties\">VkPhysicalDeviceIDProperties</a>, <a href=\"#VkPhysicalDeviceImageProcessing2PropertiesQCOM\">VkPhysicalDeviceImageProcessing2PropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceImageProcessingPropertiesQCOM\">VkPhysicalDeviceImageProcessingPropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockProperties\">VkPhysicalDeviceInlineUniformBlockProperties</a>, <a href=\"#VkPhysicalDeviceLayeredDriverPropertiesMSFT\">VkPhysicalDeviceLayeredDriverPropertiesMSFT</a>, <a href=\"#VkPhysicalDeviceLineRasterizationPropertiesEXT\">VkPhysicalDeviceLineRasterizationPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMaintenance3Properties\">VkPhysicalDeviceMaintenance3Properties</a>, <a href=\"#VkPhysicalDeviceMaintenance4Properties\">VkPhysicalDeviceMaintenance4Properties</a>, <a href=\"#VkPhysicalDeviceMaintenance5PropertiesKHR\">VkPhysicalDeviceMaintenance5PropertiesKHR</a>, <a href=\"#VkPhysicalDeviceMemoryDecompressionPropertiesNV\">VkPhysicalDeviceMemoryDecompressionPropertiesNV</a>, <a href=\"#VkPhysicalDeviceMeshShaderPropertiesEXT\">VkPhysicalDeviceMeshShaderPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderPropertiesNV\">VkPhysicalDeviceMeshShaderPropertiesNV</a>, <a href=\"#VkPhysicalDeviceMultiDrawPropertiesEXT\">VkPhysicalDeviceMultiDrawPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX\">VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX</a>, <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>, <a href=\"#VkPhysicalDeviceOpacityMicromapPropertiesEXT\">VkPhysicalDeviceOpacityMicromapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceOpticalFlowPropertiesNV\">VkPhysicalDeviceOpticalFlowPropertiesNV</a>, <a href=\"#VkPhysicalDevicePCIBusInfoPropertiesEXT\">VkPhysicalDevicePCIBusInfoPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePerformanceQueryPropertiesKHR\">VkPhysicalDevicePerformanceQueryPropertiesKHR</a>, <a href=\"#VkPhysicalDevicePipelineRobustnessPropertiesEXT\">VkPhysicalDevicePipelineRobustnessPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePointClippingProperties\">VkPhysicalDevicePointClippingProperties</a>, <a href=\"#VkPhysicalDevicePortabilitySubsetPropertiesKHR\">VkPhysicalDevicePortabilitySubsetPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryProperties\">VkPhysicalDeviceProtectedMemoryProperties</a>, <a href=\"#VkPhysicalDeviceProvokingVertexPropertiesEXT\">VkPhysicalDeviceProvokingVertexPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePushDescriptorPropertiesKHR\">VkPhysicalDevicePushDescriptorPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV\">VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingPipelinePropertiesKHR\">VkPhysicalDeviceRayTracingPipelinePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>, <a href=\"#VkPhysicalDeviceRobustness2PropertiesEXT\">VkPhysicalDeviceRobustness2PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceSampleLocationsPropertiesEXT\">VkPhysicalDeviceSampleLocationsPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerFilterMinmaxProperties\">VkPhysicalDeviceSamplerFilterMinmaxProperties</a>, <a href=\"#VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM\">VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM</a>, <a href=\"#VkPhysicalDeviceShaderCoreProperties2AMD\">VkPhysicalDeviceShaderCoreProperties2AMD</a>, <a href=\"#VkPhysicalDeviceShaderCorePropertiesAMD\">VkPhysicalDeviceShaderCorePropertiesAMD</a>, <a href=\"#VkPhysicalDeviceShaderCorePropertiesARM\">VkPhysicalDeviceShaderCorePropertiesARM</a>, <a href=\"#VkPhysicalDeviceShaderEnqueuePropertiesAMDX\">VkPhysicalDeviceShaderEnqueuePropertiesAMDX</a>, <a href=\"#VkPhysicalDeviceShaderIntegerDotProductProperties\">VkPhysicalDeviceShaderIntegerDotProductProperties</a>, <a href=\"#VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT\">VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShaderObjectPropertiesEXT\">VkPhysicalDeviceShaderObjectPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShaderSMBuiltinsPropertiesNV\">VkPhysicalDeviceShaderSMBuiltinsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceShaderTileImagePropertiesEXT\">VkPhysicalDeviceShaderTileImagePropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShadingRateImagePropertiesNV\">VkPhysicalDeviceShadingRateImagePropertiesNV</a>, <a href=\"#VkPhysicalDeviceSubgroupProperties\">VkPhysicalDeviceSubgroupProperties</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlProperties\">VkPhysicalDeviceSubgroupSizeControlProperties</a>, <a href=\"#VkPhysicalDeviceSubpassShadingPropertiesHUAWEI\">VkPhysicalDeviceSubpassShadingPropertiesHUAWEI</a>, <a href=\"#VkPhysicalDeviceTexelBufferAlignmentProperties\">VkPhysicalDeviceTexelBufferAlignmentProperties</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreProperties\">VkPhysicalDeviceTimelineSemaphoreProperties</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackPropertiesEXT\">VkPhysicalDeviceTransformFeedbackPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT\">VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceVulkan11Properties\">VkPhysicalDeviceVulkan11Properties</a>, <a href=\"#VkPhysicalDeviceVulkan12Properties\">VkPhysicalDeviceVulkan12Properties</a>, or <a href=\"#VkPhysicalDeviceVulkan13Properties\">VkPhysicalDeviceVulkan13Properties</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=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT\">VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI\">VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI</a>, <a href=\"#VkPhysicalDeviceConservativeRasterizationPropertiesEXT\">VkPhysicalDeviceConservativeRasterizationPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixPropertiesKHR\">VkPhysicalDeviceCooperativeMatrixPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixPropertiesNV\">VkPhysicalDeviceCooperativeMatrixPropertiesNV</a>, <a href=\"#VkPhysicalDeviceCopyMemoryIndirectPropertiesNV\">VkPhysicalDeviceCopyMemoryIndirectPropertiesNV</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorPropertiesEXT\">VkPhysicalDeviceCustomBorderColorPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT\">VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingProperties\">VkPhysicalDeviceDescriptorIndexingProperties</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceDiscardRectanglePropertiesEXT\">VkPhysicalDeviceDiscardRectanglePropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDisplacementMicromapPropertiesNV\">VkPhysicalDeviceDisplacementMicromapPropertiesNV</a>, <a href=\"#VkPhysicalDeviceDriverProperties\">VkPhysicalDeviceDriverProperties</a>, <a href=\"#VkPhysicalDeviceDrmPropertiesEXT\">VkPhysicalDeviceDrmPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState3PropertiesEXT\">VkPhysicalDeviceExtendedDynamicState3PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceExternalFormatResolvePropertiesANDROID\">VkPhysicalDeviceExternalFormatResolvePropertiesANDROID</a>, <a href=\"#VkPhysicalDeviceExternalMemoryHostPropertiesEXT\">VkPhysicalDeviceExternalMemoryHostPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFloatControlsProperties\">VkPhysicalDeviceFloatControlsProperties</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMap2PropertiesEXT\">VkPhysicalDeviceFragmentDensityMap2PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM\">VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapPropertiesEXT\">VkPhysicalDeviceFragmentDensityMapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR\">VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV\">VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRatePropertiesKHR\">VkPhysicalDeviceFragmentShadingRatePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT\">VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceHostImageCopyPropertiesEXT\">VkPhysicalDeviceHostImageCopyPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceIDProperties\">VkPhysicalDeviceIDProperties</a>, <a href=\"#VkPhysicalDeviceImageProcessing2PropertiesQCOM\">VkPhysicalDeviceImageProcessing2PropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceImageProcessingPropertiesQCOM\">VkPhysicalDeviceImageProcessingPropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockProperties\">VkPhysicalDeviceInlineUniformBlockProperties</a>, <a href=\"#VkPhysicalDeviceLayeredDriverPropertiesMSFT\">VkPhysicalDeviceLayeredDriverPropertiesMSFT</a>, <a href=\"#VkPhysicalDeviceLineRasterizationPropertiesEXT\">VkPhysicalDeviceLineRasterizationPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMaintenance3Properties\">VkPhysicalDeviceMaintenance3Properties</a>, <a href=\"#VkPhysicalDeviceMaintenance4Properties\">VkPhysicalDeviceMaintenance4Properties</a>, <a href=\"#VkPhysicalDeviceMaintenance5PropertiesKHR\">VkPhysicalDeviceMaintenance5PropertiesKHR</a>, <a href=\"#VkPhysicalDeviceMemoryDecompressionPropertiesNV\">VkPhysicalDeviceMemoryDecompressionPropertiesNV</a>, <a href=\"#VkPhysicalDeviceMeshShaderPropertiesEXT\">VkPhysicalDeviceMeshShaderPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderPropertiesNV\">VkPhysicalDeviceMeshShaderPropertiesNV</a>, <a href=\"#VkPhysicalDeviceMultiDrawPropertiesEXT\">VkPhysicalDeviceMultiDrawPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX\">VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX</a>, <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>, <a href=\"#VkPhysicalDeviceOpacityMicromapPropertiesEXT\">VkPhysicalDeviceOpacityMicromapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceOpticalFlowPropertiesNV\">VkPhysicalDeviceOpticalFlowPropertiesNV</a>, <a href=\"#VkPhysicalDevicePCIBusInfoPropertiesEXT\">VkPhysicalDevicePCIBusInfoPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePerformanceQueryPropertiesKHR\">VkPhysicalDevicePerformanceQueryPropertiesKHR</a>, <a href=\"#VkPhysicalDevicePipelineRobustnessPropertiesEXT\">VkPhysicalDevicePipelineRobustnessPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePointClippingProperties\">VkPhysicalDevicePointClippingProperties</a>, <a href=\"#VkPhysicalDevicePortabilitySubsetPropertiesKHR\">VkPhysicalDevicePortabilitySubsetPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryProperties\">VkPhysicalDeviceProtectedMemoryProperties</a>, <a href=\"#VkPhysicalDeviceProvokingVertexPropertiesEXT\">VkPhysicalDeviceProvokingVertexPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePushDescriptorPropertiesKHR\">VkPhysicalDevicePushDescriptorPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV\">VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingPipelinePropertiesKHR\">VkPhysicalDeviceRayTracingPipelinePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>, <a href=\"#VkPhysicalDeviceRobustness2PropertiesEXT\">VkPhysicalDeviceRobustness2PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceSampleLocationsPropertiesEXT\">VkPhysicalDeviceSampleLocationsPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerFilterMinmaxProperties\">VkPhysicalDeviceSamplerFilterMinmaxProperties</a>, <a href=\"#VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM\">VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM</a>, <a href=\"#VkPhysicalDeviceShaderCoreProperties2AMD\">VkPhysicalDeviceShaderCoreProperties2AMD</a>, <a href=\"#VkPhysicalDeviceShaderCorePropertiesAMD\">VkPhysicalDeviceShaderCorePropertiesAMD</a>, <a href=\"#VkPhysicalDeviceShaderCorePropertiesARM\">VkPhysicalDeviceShaderCorePropertiesARM</a>, <a href=\"#VkPhysicalDeviceShaderEnqueuePropertiesAMDX\">VkPhysicalDeviceShaderEnqueuePropertiesAMDX</a>, <a href=\"#VkPhysicalDeviceShaderIntegerDotProductProperties\">VkPhysicalDeviceShaderIntegerDotProductProperties</a>, <a href=\"#VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT\">VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShaderObjectPropertiesEXT\">VkPhysicalDeviceShaderObjectPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShaderSMBuiltinsPropertiesNV\">VkPhysicalDeviceShaderSMBuiltinsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceShaderTileImagePropertiesEXT\">VkPhysicalDeviceShaderTileImagePropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShadingRateImagePropertiesNV\">VkPhysicalDeviceShadingRateImagePropertiesNV</a>, <a href=\"#VkPhysicalDeviceSubgroupProperties\">VkPhysicalDeviceSubgroupProperties</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlProperties\">VkPhysicalDeviceSubgroupSizeControlProperties</a>, <a href=\"#VkPhysicalDeviceSubpassShadingPropertiesHUAWEI\">VkPhysicalDeviceSubpassShadingPropertiesHUAWEI</a>, <a href=\"#VkPhysicalDeviceTexelBufferAlignmentProperties\">VkPhysicalDeviceTexelBufferAlignmentProperties</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreProperties\">VkPhysicalDeviceTimelineSemaphoreProperties</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackPropertiesEXT\">VkPhysicalDeviceTransformFeedbackPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT\">VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceVulkan11Properties\">VkPhysicalDeviceVulkan11Properties</a>, <a href=\"#VkPhysicalDeviceVulkan12Properties\">VkPhysicalDeviceVulkan12Properties</a>, or <a href=\"#VkPhysicalDeviceVulkan13Properties\">VkPhysicalDeviceVulkan13Properties</a>", "page": "vkspec" }, { @@ -824,7 +824,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=\"#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=\"#VkPhysicalDeviceCooperativeMatrixFeaturesKHR\">VkPhysicalDeviceCooperativeMatrixFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixFeaturesNV\">VkPhysicalDeviceCooperativeMatrixFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCopyMemoryIndirectFeaturesNV\">VkPhysicalDeviceCopyMemoryIndirectFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCornerSampledImageFeaturesNV\">VkPhysicalDeviceCornerSampledImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCoverageReductionModeFeaturesNV\">VkPhysicalDeviceCoverageReductionModeFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCubicClampFeaturesQCOM\">VkPhysicalDeviceCubicClampFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceCubicWeightsFeaturesQCOM\">VkPhysicalDeviceCubicWeightsFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorFeaturesEXT\">VkPhysicalDeviceCustomBorderColorFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV\">VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDepthBiasControlFeaturesEXT\">VkPhysicalDeviceDepthBiasControlFeaturesEXT</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=\"#VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV\">VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE\">VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV\">VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV</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=\"#VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT\">VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT</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=\"#VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX\">VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX</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=\"#VkPhysicalDeviceFrameBoundaryFeaturesEXT\">VkPhysicalDeviceFrameBoundaryFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR\">VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT\">VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceHostImageCopyFeaturesEXT\">VkPhysicalDeviceHostImageCopyFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceHostQueryResetFeatures\">VkPhysicalDeviceHostQueryResetFeatures</a>, <a href=\"#VkPhysicalDeviceImage2DViewOf3DFeaturesEXT\">VkPhysicalDeviceImage2DViewOf3DFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageCompressionControlFeaturesEXT\">VkPhysicalDeviceImageCompressionControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT\">VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageProcessing2FeaturesQCOM\">VkPhysicalDeviceImageProcessing2FeaturesQCOM</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=\"#VkPhysicalDeviceMaintenance5FeaturesKHR\">VkPhysicalDeviceMaintenance5FeaturesKHR</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=\"#VkPhysicalDeviceShaderEnqueueFeaturesAMDX\">VkPhysicalDeviceShaderEnqueueFeaturesAMDX</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=\"#VkPhysicalDeviceYcbcrDegammaFeaturesQCOM\">VkPhysicalDeviceYcbcrDegammaFeaturesQCOM</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=\"#VkPhysicalDeviceCooperativeMatrixFeaturesKHR\">VkPhysicalDeviceCooperativeMatrixFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixFeaturesNV\">VkPhysicalDeviceCooperativeMatrixFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCopyMemoryIndirectFeaturesNV\">VkPhysicalDeviceCopyMemoryIndirectFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCornerSampledImageFeaturesNV\">VkPhysicalDeviceCornerSampledImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCoverageReductionModeFeaturesNV\">VkPhysicalDeviceCoverageReductionModeFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCubicClampFeaturesQCOM\">VkPhysicalDeviceCubicClampFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceCubicWeightsFeaturesQCOM\">VkPhysicalDeviceCubicWeightsFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorFeaturesEXT\">VkPhysicalDeviceCustomBorderColorFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV\">VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDepthBiasControlFeaturesEXT\">VkPhysicalDeviceDepthBiasControlFeaturesEXT</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=\"#VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV\">VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE\">VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV\">VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV</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=\"#VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT\">VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExclusiveScissorFeaturesNV\">VkPhysicalDeviceExclusiveScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState2FeaturesEXT\">VkPhysicalDeviceExtendedDynamicState2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState3FeaturesEXT\">VkPhysicalDeviceExtendedDynamicState3FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicStateFeaturesEXT\">VkPhysicalDeviceExtendedDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExternalFormatResolveFeaturesANDROID\">VkPhysicalDeviceExternalFormatResolveFeaturesANDROID</a>, <a href=\"#VkPhysicalDeviceExternalMemoryRDMAFeaturesNV\">VkPhysicalDeviceExternalMemoryRDMAFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX\">VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX</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=\"#VkPhysicalDeviceFrameBoundaryFeaturesEXT\">VkPhysicalDeviceFrameBoundaryFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR\">VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT\">VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceHostImageCopyFeaturesEXT\">VkPhysicalDeviceHostImageCopyFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceHostQueryResetFeatures\">VkPhysicalDeviceHostQueryResetFeatures</a>, <a href=\"#VkPhysicalDeviceImage2DViewOf3DFeaturesEXT\">VkPhysicalDeviceImage2DViewOf3DFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageCompressionControlFeaturesEXT\">VkPhysicalDeviceImageCompressionControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT\">VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageProcessing2FeaturesQCOM\">VkPhysicalDeviceImageProcessing2FeaturesQCOM</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=\"#VkPhysicalDeviceMaintenance5FeaturesKHR\">VkPhysicalDeviceMaintenance5FeaturesKHR</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=\"#VkPhysicalDeviceShaderEnqueueFeaturesAMDX\">VkPhysicalDeviceShaderEnqueueFeaturesAMDX</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=\"#VkPhysicalDeviceYcbcrDegammaFeaturesQCOM\">VkPhysicalDeviceYcbcrDegammaFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceYcbcrImageArraysFeaturesEXT\">VkPhysicalDeviceYcbcrImageArraysFeaturesEXT</a>, or <a href=\"#VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures\">VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures</a>", "page": "vkspec" }, { @@ -1540,7 +1540,7 @@ }, { "vuid": "VUID-VkCommandBufferInheritanceInfo-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=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a>, <a href=\"#VkCommandBufferInheritanceConditionalRenderingInfoEXT\">VkCommandBufferInheritanceConditionalRenderingInfoEXT</a>, <a href=\"#VkCommandBufferInheritanceRenderPassTransformInfoQCOM\">VkCommandBufferInheritanceRenderPassTransformInfoQCOM</a>, <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a>, <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>, or <a href=\"#VkMultiviewPerViewAttributesInfoNVX\">VkMultiviewPerViewAttributesInfoNVX</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=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a>, <a href=\"#VkCommandBufferInheritanceConditionalRenderingInfoEXT\">VkCommandBufferInheritanceConditionalRenderingInfoEXT</a>, <a href=\"#VkCommandBufferInheritanceRenderPassTransformInfoQCOM\">VkCommandBufferInheritanceRenderPassTransformInfoQCOM</a>, <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a>, <a href=\"#VkCommandBufferInheritanceViewportScissorInfoNV\">VkCommandBufferInheritanceViewportScissorInfoNV</a>, <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>, or <a href=\"#VkMultiviewPerViewAttributesInfoNVX\">VkMultiviewPerViewAttributesInfoNVX</a>", "page": "vkspec" }, { @@ -1927,7 +1927,7 @@ }, { "vuid": "VUID-VkSubmitInfo2-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=\"#VkFrameBoundaryEXT\">VkFrameBoundaryEXT</a>, <a href=\"#VkPerformanceQuerySubmitInfoKHR\">VkPerformanceQuerySubmitInfoKHR</a>, <a href=\"#VkWin32KeyedMutexAcquireReleaseInfoKHR\">VkWin32KeyedMutexAcquireReleaseInfoKHR</a>, or <a href=\"#VkWin32KeyedMutexAcquireReleaseInfoNV\">VkWin32KeyedMutexAcquireReleaseInfoNV</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=\"#VkFrameBoundaryEXT\">VkFrameBoundaryEXT</a>, <a href=\"#VkLatencySubmissionPresentIdNV\">VkLatencySubmissionPresentIdNV</a>, <a href=\"#VkPerformanceQuerySubmitInfoKHR\">VkPerformanceQuerySubmitInfoKHR</a>, <a href=\"#VkWin32KeyedMutexAcquireReleaseInfoKHR\">VkWin32KeyedMutexAcquireReleaseInfoKHR</a>, or <a href=\"#VkWin32KeyedMutexAcquireReleaseInfoNV\">VkWin32KeyedMutexAcquireReleaseInfoNV</a>", "page": "vkspec" }, { @@ -2318,7 +2318,7 @@ }, { "vuid": "VUID-VkSubmitInfo-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=\"#VkAmigoProfilingSubmitInfoSEC\">VkAmigoProfilingSubmitInfoSEC</a>, <a href=\"#VkD3D12FenceSubmitInfoKHR\">VkD3D12FenceSubmitInfoKHR</a>, <a href=\"#VkDeviceGroupSubmitInfo\">VkDeviceGroupSubmitInfo</a>, <a href=\"#VkFrameBoundaryEXT\">VkFrameBoundaryEXT</a>, <a href=\"#VkPerformanceQuerySubmitInfoKHR\">VkPerformanceQuerySubmitInfoKHR</a>, <a href=\"#VkProtectedSubmitInfo\">VkProtectedSubmitInfo</a>, <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a>, <a href=\"#VkWin32KeyedMutexAcquireReleaseInfoKHR\">VkWin32KeyedMutexAcquireReleaseInfoKHR</a>, or <a href=\"#VkWin32KeyedMutexAcquireReleaseInfoNV\">VkWin32KeyedMutexAcquireReleaseInfoNV</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=\"#VkAmigoProfilingSubmitInfoSEC\">VkAmigoProfilingSubmitInfoSEC</a>, <a href=\"#VkD3D12FenceSubmitInfoKHR\">VkD3D12FenceSubmitInfoKHR</a>, <a href=\"#VkDeviceGroupSubmitInfo\">VkDeviceGroupSubmitInfo</a>, <a href=\"#VkFrameBoundaryEXT\">VkFrameBoundaryEXT</a>, <a href=\"#VkLatencySubmissionPresentIdNV\">VkLatencySubmissionPresentIdNV</a>, <a href=\"#VkPerformanceQuerySubmitInfoKHR\">VkPerformanceQuerySubmitInfoKHR</a>, <a href=\"#VkProtectedSubmitInfo\">VkProtectedSubmitInfo</a>, <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a>, <a href=\"#VkWin32KeyedMutexAcquireReleaseInfoKHR\">VkWin32KeyedMutexAcquireReleaseInfoKHR</a>, or <a href=\"#VkWin32KeyedMutexAcquireReleaseInfoNV\">VkWin32KeyedMutexAcquireReleaseInfoNV</a>", "page": "vkspec" }, { @@ -2799,6 +2799,16 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdExecuteCommands-pNext-09299", + "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with any color attachment using a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, the <code>pNext</code> chain of <a href=\"#VkCommandBufferInheritanceInfo\">VkCommandBufferInheritanceInfo</a> used to create each element of <code>pCommandBuffers</code> <strong class=\"purple\">must</strong> include a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a> structure with a <code>externalFormat</code> matching that used to create the resolve attachment in the render pass", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteCommands-pNext-09300", + "text": "If <code>vkCmdExecuteCommands</code> is being called within a render pass instance begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> with any color attachment using a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and the <code>pNext</code> chain of <a href=\"#VkCommandBufferInheritanceInfo\">VkCommandBufferInheritanceInfo</a> does not include a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, the value of <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLE_COUNT_1_BIT</code>", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-parameter", "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle", "page": "vkspec" @@ -5175,7 +5185,17 @@ }, { "vuid": "VUID-vkCmdPipelineBarrier2-image-04073", - "text": "If <code>vkCmdPipelineBarrier2</code> is called within a render pass instance using a <a href=\"#VkRenderPass\">VkRenderPass</a> object, the <code>image</code> member of any image memory barrier included in this command <strong class=\"purple\">must</strong> be an attachment used in the current subpass both as an input attachment, and as either a color or depth/stencil attachment", + "text": "If <code>vkCmdPipelineBarrier2</code> is called within a render pass instance using a <a href=\"#VkRenderPass\">VkRenderPass</a> object, the <code>image</code> member of any image memory barrier included in this command <strong class=\"purple\">must</strong> be an attachment used in the current subpass both as an input attachment, and as either a color, color resolve, or depth/stencil attachment", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdPipelineBarrier2-image-09373", + "text": "If <code>vkCmdPipelineBarrier2</code> is called within a render pass instance using a <a href=\"#VkRenderPass\">VkRenderPass</a> object, and the <code>image</code> member of any image memory barrier is a color resolve attachment, the corresponding color attachment <strong class=\"purple\">must</strong> be <code>VK_ATTACHMENT_UNUSED</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdPipelineBarrier2-image-09374", + "text": "If <code>vkCmdPipelineBarrier2</code> is called within a render pass instance using a <a href=\"#VkRenderPass\">VkRenderPass</a> object, and the <code>image</code> member of any image memory barrier is a color resolve attachment, it <strong class=\"purple\">must</strong> have been created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value", "page": "vkspec" }, { @@ -5414,7 +5434,17 @@ }, { "vuid": "VUID-vkCmdPipelineBarrier-image-04073", - "text": "If <code>vkCmdPipelineBarrier</code> is called within a render pass instance using a <a href=\"#VkRenderPass\">VkRenderPass</a> object, the <code>image</code> member of any image memory barrier included in this command <strong class=\"purple\">must</strong> be an attachment used in the current subpass both as an input attachment, and as either a color or depth/stencil attachment", + "text": "If <code>vkCmdPipelineBarrier</code> is called within a render pass instance using a <a href=\"#VkRenderPass\">VkRenderPass</a> object, the <code>image</code> member of any image memory barrier included in this command <strong class=\"purple\">must</strong> be an attachment used in the current subpass both as an input attachment, and as either a color, color resolve, or depth/stencil attachment", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdPipelineBarrier-image-09373", + "text": "If <code>vkCmdPipelineBarrier</code> is called within a render pass instance using a <a href=\"#VkRenderPass\">VkRenderPass</a> object, and the <code>image</code> member of any image memory barrier is a color resolve attachment, the corresponding color attachment <strong class=\"purple\">must</strong> be <code>VK_ATTACHMENT_UNUSED</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdPipelineBarrier-image-09374", + "text": "If <code>vkCmdPipelineBarrier</code> is called within a render pass instance using a <a href=\"#VkRenderPass\">VkRenderPass</a> object, and the <code>image</code> member of any image memory barrier is a color resolve attachment, it <strong class=\"purple\">must</strong> have been created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value", "page": "vkspec" }, { @@ -8503,6 +8533,31 @@ "page": "vkspec" }, { + "vuid": "VUID-VkRenderingInfo-pDepthAttachment-09318", + "text": "<code>pDepthAttachment->resolveMode</code> <strong class=\"purple\">must</strong> not be <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkRenderingInfo-pStencilAttachment-09319", + "text": "<code>pStencilAttachment->resolveMode</code> <strong class=\"purple\">must</strong> not be <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-09320", + "text": "If <code>colorAttachmentCount</code> is not <code>1</code>, the <code>resolveMode</code> member of any element of <code>pColorAttachments</code> <strong class=\"purple\">must</strong> not be <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkRenderingInfo-resolveMode-09321", + "text": "If the <code>resolveMode</code> of any element of <code>pColorAttachments</code> is <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, <a href=\"#VkRenderingFragmentDensityMapAttachmentInfoEXT\">VkRenderingFragmentDensityMapAttachmentInfoEXT</a>::<code>imageView</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkRenderingInfo-resolveMode-09322", + "text": "If the <code>resolveMode</code> of any element of <code>pColorAttachments</code> is <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, <a href=\"#VkRenderingFragmentShadingRateAttachmentInfoKHR\">VkRenderingFragmentShadingRateAttachmentInfoKHR</a>::<code>imageView</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>", + "page": "vkspec" + }, + { "vuid": "VUID-VkRenderingInfo-sType-sType", "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDERING_INFO</code>", "page": "vkspec" @@ -8637,6 +8692,46 @@ "page": "vkspec" }, { + "vuid": "VUID-VkRenderingAttachmentInfo-externalFormatResolve-09323", + "text": "If <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> is not enabled, <code>resolveMode</code> <strong class=\"purple\">must</strong> not be <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkRenderingAttachmentInfo-resolveMode-09324", + "text": "If <code>resolveMode</code> is <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, <code>resolveImageView</code> <strong class=\"purple\">must</strong> be a valid image view", + "page": "vkspec" + }, + { + "vuid": "VUID-VkRenderingAttachmentInfo-nullColorAttachmentWithExternalFormatResolve-09325", + "text": "If the <a href=\"#limits-nullColorAttachmentWithExternalFormatResolve\"><code>nullColorAttachmentWithExternalFormatResolve</code></a> property is <code>VK_TRUE</code> and <code>resolveMode</code> is <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, <code>resolveImageView</code> <strong class=\"purple\">must</strong> have been created with an image with a <code>samples</code> value of <code>VK_SAMPLE_COUNT_1_BIT</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkRenderingAttachmentInfo-resolveMode-09326", + "text": "If <code>resolveMode</code> is <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, <code>resolveImageView</code> <strong class=\"purple\">must</strong> have been created with an external format specified by <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkRenderingAttachmentInfo-resolveMode-09327", + "text": "If <code>resolveMode</code> is <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, <code>resolveImageView</code> <strong class=\"purple\">must</strong> have been created with a <code>subresourceRange.layerCount</code> of <code>1</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkRenderingAttachmentInfo-resolveMode-09328", + "text": "If <code>resolveMode</code> is <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> and <a href=\"#limits-nullColorAttachmentWithExternalFormatResolve\"><code>nullColorAttachmentWithExternalFormatResolve</code></a> is <code>VK_TRUE</code>, <code>imageView</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkRenderingAttachmentInfo-resolveMode-09329", + "text": "If <code>resolveMode</code> is <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> and <a href=\"#limits-nullColorAttachmentWithExternalFormatResolve\"><code>nullColorAttachmentWithExternalFormatResolve</code></a> is <code>VK_FALSE</code>, <code>imageView</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkImageView\">VkImageView</a>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkRenderingAttachmentInfo-resolveMode-09330", + "text": "If <code>resolveMode</code> is <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> and <a href=\"#limits-nullColorAttachmentWithExternalFormatResolve\"><code>nullColorAttachmentWithExternalFormatResolve</code></a> is <code>VK_FALSE</code>, <code>imageView</code> <strong class=\"purple\">must</strong> have a format equal to the value of <a href=\"#VkAndroidHardwareBufferFormatResolvePropertiesANDROID\">VkAndroidHardwareBufferFormatResolvePropertiesANDROID</a>::<code>colorAttachmentFormat</code> as returned by a call to <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for the Android hardware buffer that was used to create <code>resolveImageView</code>", + "page": "vkspec" + }, + { "vuid": "VUID-VkRenderingAttachmentInfo-sType-sType", "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO</code>", "page": "vkspec" @@ -9169,11 +9264,6 @@ "VkAttachmentDescription": { "core": [ { - "vuid": "VUID-VkAttachmentDescription-format-06698", - "text": "<code>format</code> <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>", - "page": "vkspec" - }, - { "vuid": "VUID-VkAttachmentDescription-format-06699", "text": "If <code>format</code> includes a color or depth component and <code>loadOp</code> is <code>VK_ATTACHMENT_LOAD_OP_LOAD</code>, then <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>", "page": "vkspec" @@ -9279,6 +9369,11 @@ "page": "vkspec" }, { + "vuid": "VUID-VkAttachmentDescription-format-06698", + "text": "<code>format</code> <strong class=\"purple\">must</strong> not be VK_FORMAT_UNDEFINED", + "page": "vkspec" + }, + { "vuid": "VUID-VkAttachmentDescription-format-06700", "text": "If <code>format</code> includes a stencil component and <code>stencilLoadOp</code> is <code>VK_ATTACHMENT_LOAD_OP_LOAD</code>, then <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>", "page": "vkspec" @@ -10031,6 +10126,11 @@ "page": "vkspec" }, { + "vuid": "VUID-VkRenderPassCreateInfo2-pResolveAttachments-09331", + "text": "If any element of <code>pResolveAttachments</code> of any element of <code>pSubpasses</code> references an attachment description with a format of <code>VK_FORMAT_UNDEFINED</code>, <a href=\"#VkRenderPassFragmentDensityMapCreateInfoEXT\">VkRenderPassFragmentDensityMapCreateInfoEXT</a>::<code>fragmentDensityMapAttachment->attachment</code> <strong class=\"purple\">must</strong> be <code>VK_ATTACHMENT_UNUSED</code>", + "page": "vkspec" + }, + { "vuid": "VUID-VkRenderPassCreateInfo2-sType-sType", "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2</code>", "page": "vkspec" @@ -10080,11 +10180,6 @@ "VkAttachmentDescription2": { "core": [ { - "vuid": "VUID-VkAttachmentDescription2-format-06698", - "text": "<code>format</code> <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>", - "page": "vkspec" - }, - { "vuid": "VUID-VkAttachmentDescription2-format-06699", "text": "If <code>format</code> includes a color or depth component and <code>loadOp</code> is <code>VK_ATTACHMENT_LOAD_OP_LOAD</code>, then <code>initialLayout</code> <strong class=\"purple\">must</strong> not be <code>VK_IMAGE_LAYOUT_UNDEFINED</code>", "page": "vkspec" @@ -10220,13 +10315,23 @@ "page": "vkspec" }, { + "vuid": "VUID-VkAttachmentDescription2-externalFormatResolve-09333", + "text": "If <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> is not enabled, <code>format</code> <strong class=\"purple\">must</strong> not be <code>VK_FORMAT_UNDEFINED</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkAttachmentDescription2-format-09334", + "text": "If <code>format</code> is <code>VK_FORMAT_UNDEFINED</code>, there <strong class=\"purple\">must</strong> be a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a> structure in the <code>pNext</code> chain with a <code>externalFormat</code> that is not equal to <code>0</code>", + "page": "vkspec" + }, + { "vuid": "VUID-VkAttachmentDescription2-sType-sType", "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2</code>", "page": "vkspec" }, { "vuid": "VUID-VkAttachmentDescription2-pNext-pNext", - "text": "<code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</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=\"#VkAttachmentDescriptionStencilLayout\">VkAttachmentDescriptionStencilLayout</a> or <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>", "page": "vkspec" }, { @@ -10398,23 +10503,33 @@ "page": "vkspec" }, { - "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-03065", - "text": "If <code>pResolveAttachments</code> is not <code>NULL</code>, for each resolve attachment that does not have the value <code>VK_ATTACHMENT_UNUSED</code>, the corresponding color attachment <strong class=\"purple\">must</strong> not have the value <code>VK_ATTACHMENT_UNUSED</code>", + "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-03067", + "text": "If <code>pResolveAttachments</code> is not <code>NULL</code>, each resolve attachment that is not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>", "page": "vkspec" }, { - "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-03066", - "text": "If <code>pResolveAttachments</code> is not <code>NULL</code>, for each resolve attachment that is not <code>VK_ATTACHMENT_UNUSED</code>, the corresponding color attachment <strong class=\"purple\">must</strong> not have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>", + "vuid": "VUID-VkSubpassDescription2-externalFormatResolve-09335", + "text": "If <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> is not enabled and <code>pResolveAttachments</code> is not <code>NULL</code>, for each resolve attachment that does not have the value <code>VK_ATTACHMENT_UNUSED</code>, the corresponding color attachment <strong class=\"purple\">must</strong> not have the value <code>VK_ATTACHMENT_UNUSED</code>", "page": "vkspec" }, { - "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-03067", - "text": "If <code>pResolveAttachments</code> is not <code>NULL</code>, each resolve attachment that is not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>", + "vuid": "VUID-VkSubpassDescription2-nullColorAttachmentWithExternalFormatResolve-09336", + "text": "If the <a href=\"#limits-nullColorAttachmentWithExternalFormatResolve\"><code>nullColorAttachmentWithExternalFormatResolve</code></a> property is <code>VK_FALSE</code> and <code>pResolveAttachments</code> is not <code>NULL</code>, for each resolve attachment that has a format of <code>VK_FORMAT_UNDEFINED</code>, the corresponding color attachment <strong class=\"purple\">must</strong> not have the value <code>VK_ATTACHMENT_UNUSED</code>", "page": "vkspec" }, { - "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-03068", - "text": "Each element of <code>pResolveAttachments</code> <strong class=\"purple\">must</strong> have the same <a href=\"#VkFormat\">VkFormat</a> as its corresponding color attachment", + "vuid": "VUID-VkSubpassDescription2-nullColorAttachmentWithExternalFormatResolve-09337", + "text": "If the <a href=\"#limits-nullColorAttachmentWithExternalFormatResolve\"><code>nullColorAttachmentWithExternalFormatResolve</code></a> property is <code>VK_TRUE</code> and <code>pResolveAttachments</code> is not <code>NULL</code>, for each resolve attachment that has a format of <code>VK_FORMAT_UNDEFINED</code>, the corresponding color attachment <strong class=\"purple\">must</strong> have the value <code>VK_ATTACHMENT_UNUSED</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkSubpassDescription2-externalFormatResolve-09338", + "text": "If <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> is not enabled and <code>pResolveAttachments</code> is not <code>NULL</code>, for each resolve attachment that is not <code>VK_ATTACHMENT_UNUSED</code>, the corresponding color attachment <strong class=\"purple\">must</strong> not have a sample count of <code>VK_SAMPLE_COUNT_1_BIT</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkSubpassDescription2-externalFormatResolve-09339", + "text": "If <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> is not enabled, each element of <code>pResolveAttachments</code> <strong class=\"purple\">must</strong> have the same <a href=\"#VkFormat\">VkFormat</a> as its corresponding color attachment", "page": "vkspec" }, { @@ -10423,8 +10538,18 @@ "page": "vkspec" }, { - "vuid": "VUID-VkSubpassDescription2-pInputAttachments-02897", - "text": "All attachments in <code>pInputAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> contain at least <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code> or <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>", + "vuid": "VUID-VkSubpassDescription2-externalFormatResolve-09340", + "text": "If the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> feature is not enabled, all attachments in <code>pInputAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> contain at least <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code> or <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkSubpassDescription2-nullColorAttachmentWithExternalFormatResolve-09341", + "text": "If the <a href=\"#limits-nullColorAttachmentWithExternalFormatResolve\"><code>nullColorAttachmentWithExternalFormatResolve</code></a> property is <code>VK_FALSE</code>, all attachments in <code>pInputAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> contain at least <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code> or <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkSubpassDescription2-pInputAttachments-09342", + "text": "All attachments in <code>pInputAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> and do not have a non-zero value of <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> contain at least <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code> or <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>", "page": "vkspec" }, { @@ -10433,8 +10558,8 @@ "page": "vkspec" }, { - "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-02899", - "text": "All attachments in <code>pResolveAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>", + "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-09343", + "text": "All attachments in <code>pResolveAttachments</code> that are not <code>VK_ATTACHMENT_UNUSED</code> and do not have an image format of <code>VK_FORMAT_UNDEFINED</code> <strong class=\"purple\">must</strong> have image formats whose <a href=\"#potential-format-features\">potential format features</a> contain <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>", "page": "vkspec" }, { @@ -10533,6 +10658,31 @@ "page": "vkspec" }, { + "vuid": "VUID-VkSubpassDescription2-externalFormatResolve-09344", + "text": "If <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> is enabled, <code>pResolveAttachments</code> is not <code>NULL</code>, and <code>colorAttachmentCount</code> is not <code>1</code>, any element of <code>pResolveAttachments</code> that is not <code>VK_ATTACHMENT_UNUSED</code>, <strong class=\"purple\">must</strong> not have a format of <code>VK_FORMAT_UNDEFINED</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkSubpassDescription2-externalFormatResolve-09345", + "text": "If <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> is enabled, <code>pResolveAttachments</code> is not <code>NULL</code>, any element of <code>pResolveAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code> and has a format of <code>VK_FORMAT_UNDEFINED</code>, and the corresponding element of <code>pColorAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, the color attachment <strong class=\"purple\">must</strong> have a <code>samples</code> value of <code>1</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkSubpassDescription2-externalFormatResolve-09346", + "text": "If <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> is enabled, <code>pResolveAttachments</code> is not <code>NULL</code>, and any element of <code>pResolveAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code> and has a format of <code>VK_FORMAT_UNDEFINED</code>, <code>viewMask</code> <strong class=\"purple\">must</strong> be <code>0</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkSubpassDescription2-externalFormatResolve-09347", + "text": "If <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> is enabled, <code>pResolveAttachments</code> is not <code>NULL</code>, and any element of <code>pResolveAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code> and has a format of <code>VK_FORMAT_UNDEFINED</code>, <a href=\"#VkFragmentShadingRateAttachmentInfoKHR\">VkFragmentShadingRateAttachmentInfoKHR</a>::<code>pFragmentShadingRateAttachment</code> <strong class=\"purple\">must</strong> either be <code>NULL</code> or a <a href=\"#VkAttachmentReference2\">VkAttachmentReference2</a> structure with a <code>attachment</code> value of <code>VK_ATTACHMENT_UNUSED</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkSubpassDescription2-externalFormatResolve-09348", + "text": "If <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> is enabled, <code>pResolveAttachments</code> is not <code>NULL</code>, and any element of <code>pResolveAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code> and has a format of <code>VK_FORMAT_UNDEFINED</code>, elements of <code>pInputAttachments</code> referencing either a color attachment or resolve attachment used in this subpass <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_PLANE<em>_i_</em>BIT_EXT</code> for any index <em>i</em> in its <code>aspectMask</code>", + "page": "vkspec" + }, + { "vuid": "VUID-VkSubpassDescription2-sType-sType", "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2</code>", "page": "vkspec" @@ -11374,6 +11524,16 @@ "page": "vkspec" }, { + "vuid": "VUID-VkFramebufferCreateInfo-flags-09351", + "text": "If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code> and the <a href=\"#limits-nullColorAttachmentWithExternalFormatResolve\"><code>nullColorAttachmentWithExternalFormatResolve</code></a> is <code>VK_FALSE</code>, the format of the color attachment for each subpass in <code>renderPass</code> that includes an external format image as a resolve attachment <strong class=\"purple\">must</strong> have a format equal to the value of <a href=\"#VkAndroidHardwareBufferFormatResolvePropertiesANDROID\">VkAndroidHardwareBufferFormatResolvePropertiesANDROID</a>::<code>colorAttachmentFormat</code> as returned by a call to <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for the Android hardware buffer that was used to create the image view used as its resolve attachment", + "page": "vkspec" + }, + { + "vuid": "VUID-VkFramebufferCreateInfo-flags-09352", + "text": "If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of <code>pAttachments</code> with a format of <code>VK_FORMAT_UNDEFINED</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value identical to that provided in the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> specified by the corresponding <a href=\"#VkAttachmentDescription2\">VkAttachmentDescription2</a> in <code>renderPass</code>", + "page": "vkspec" + }, + { "vuid": "VUID-VkFramebufferCreateInfo-sType-sType", "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO</code>", "page": "vkspec" @@ -11838,6 +11998,16 @@ "page": "vkspec" }, { + "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-09353", + "text": "If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, and the <a href=\"#limits-nullColorAttachmentWithExternalFormatResolve\"><code>nullColorAttachmentWithExternalFormatResolve</code></a> is <code>VK_FALSE</code>, the format of the color attachment for each subpass that includes an external format image as a resolve attachment <strong class=\"purple\">must</strong> have a format equal to the value of <a href=\"#VkAndroidHardwareBufferFormatResolvePropertiesANDROID\">VkAndroidHardwareBufferFormatResolvePropertiesANDROID</a>::<code>colorAttachmentFormat</code> as returned by a call to <a href=\"#vkGetAndroidHardwareBufferPropertiesANDROID\">vkGetAndroidHardwareBufferPropertiesANDROID</a> for the Android hardware buffer that was used to create the image view use as its resolve attachment", + "page": "vkspec" + }, + { + "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-09354", + "text": "If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> of an image created with a value of <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> equal to <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> in the <code>pNext</code> chain of the corresponding <a href=\"#VkAttachmentDescription2\">VkAttachmentDescription2</a> structure used to create <code>renderPass</code>", + "page": "vkspec" + }, + { "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-09047", "text": "If <code>framebuffer</code> was created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that included <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, each element of the <code>pAttachments</code> member of a <a href=\"#VkRenderPassAttachmentBeginInfo\">VkRenderPassAttachmentBeginInfo</a> structure included in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be a <a href=\"#VkImageView\">VkImageView</a> of an image created with a value of <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>samples</code> equal to the corresponding value of <a href=\"#VkAttachmentDescription\">VkAttachmentDescription</a>::<code>samples</code> in <code>renderPass</code> , or <code>VK_SAMPLE_COUNT_1_BIT</code> if <code>renderPass</code> was created with <a href=\"#VkMultisampledRenderToSingleSampledInfoEXT\">VkMultisampledRenderToSingleSampledInfoEXT</a> structure in the <code>pNext</code> chain with <code>multisampledRenderToSingleSampledEnable</code> equal to <code>VK_TRUE</code>", "page": "vkspec" @@ -15702,7 +15872,7 @@ }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-07826", - "text": "If the pipeline includes a <a href=\"#pipelines-graphics-subsets-complete\">complete set of state</a>, <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> <strong class=\"purple\">must</strong> be a valid pipeline layout", + "text": "If the pipeline includes a <a href=\"#pipelines-graphics-subsets-complete\">complete set of state</a>, and there are no libraries included in <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>::<code>pLibraries</code>, then <a href=\"#VkPipelineLayout\">VkPipelineLayout</a> <strong class=\"purple\">must</strong> be a valid pipeline layout", "page": "vkspec" }, { @@ -15996,13 +16166,78 @@ "page": "vkspec" }, { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09301", + "text": "If the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> feature is enabled, the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> is not <code>0</code>, <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>viewMask</code> <strong class=\"purple\">must</strong> be <code>0</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09304", + "text": "If the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> feature is enabled, the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> is not <code>0</code>, and <code>pDynamicState->pDynamicStates</code> does not include <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code>, <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be <code>1</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09305", + "text": "If the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> feature is enabled, the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> is not <code>0</code>, and <code>pDynamicState->pDynamicStates</code> does not include <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code>, the <code>blendEnable</code> member of each element of <code>pColorBlendState->pAttachments</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09306", + "text": "If the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> feature is enabled, the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> is not <code>0</code>, and <code>pDynamicState->pDynamicStates</code> does not include <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>width</code> <strong class=\"purple\">must</strong> be <code>1</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09307", + "text": "If the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> feature is enabled, the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> is not <code>0</code>, and <code>pDynamicState->pDynamicStates</code> does not include <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>height</code> <strong class=\"purple\">must</strong> be <code>1</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09308", + "text": "If the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> feature is enabled, the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">pre-rasterization shader state</a> and <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> is not <code>0</code>, the last <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader stage</a> <strong class=\"purple\">must</strong> not statically use a variable with the <code>PrimitiveShadingRateKHR</code> built-in", + "page": "vkspec" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09309", + "text": "If the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> feature is enabled, the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> is not <code>0</code>, <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>::<code>colorAttachmentCount</code> <strong class=\"purple\">must</strong> be <code>1</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09310", + "text": "If the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> feature is enabled, the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-shader\">fragment shader state</a> and <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> is not <code>0</code>, the fragment shader <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes", + "page": "vkspec" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09313", + "text": "If the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> feature is enabled, the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>subpass</code> includes an external format resolve attachment, and <code>pDynamicState->pDynamicStates</code> does not include <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code>, <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a>::<code>rasterizationSamples</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLE_COUNT_1_BIT</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09314", + "text": "If the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> feature is enabled, the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>subpass</code> includes an external format resolve attachment, and <code>pDynamicState->pDynamicStates</code> does not include <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code>, the <code>blendEnable</code> member of each element of <code>pColorBlendState->pAttachments</code> <strong class=\"purple\">must</strong> be <code>VK_FALSE</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09315", + "text": "If the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> feature is enabled, the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>subpass</code> includes an external format resolve attachment, and <code>pDynamicState->pDynamicStates</code> does not include <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>width</code> <strong class=\"purple\">must</strong> be <code>1</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09316", + "text": "If the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> feature is enabled, the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>subpass</code> includes an external format resolve attachment, and <code>pDynamicState->pDynamicStates</code> does not include <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>::<code>height</code> <strong class=\"purple\">must</strong> be <code>1</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09317", + "text": "If the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> feature is enabled, the pipeline requires <a href=\"#pipelines-graphics-subsets-fragment-output\">pre-rasterization shader state</a> and <a href=\"#pipelines-graphics-subsets-fragment-output\">fragment output interface state</a>, <code>renderPass</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and <code>subpass</code> includes an external format resolve attachment, the last <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader stage</a> <strong class=\"purple\">must</strong> not statically use a variable with the <code>PrimitiveShadingRateKHR</code> built-in", + "page": "vkspec" + }, + { "vuid": "VUID-VkGraphicsPipelineCreateInfo-sType-sType", "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO</code>", "page": "vkspec" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-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=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a>, <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>, <a href=\"#VkGraphicsPipelineShaderGroupsCreateInfoNV\">VkGraphicsPipelineShaderGroupsCreateInfoNV</a>, <a href=\"#VkMultiviewPerViewAttributesInfoNVX\">VkMultiviewPerViewAttributesInfoNVX</a>, <a href=\"#VkPipelineCompilerControlCreateInfoAMD\">VkPipelineCompilerControlCreateInfoAMD</a>, <a href=\"#VkPipelineCreateFlags2CreateInfoKHR\">VkPipelineCreateFlags2CreateInfoKHR</a>, <a href=\"#VkPipelineCreationFeedbackCreateInfo\">VkPipelineCreationFeedbackCreateInfo</a>, <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a>, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>, <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>, <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>, <a href=\"#VkPipelineRepresentativeFragmentTestStateCreateInfoNV\">VkPipelineRepresentativeFragmentTestStateCreateInfoNV</a>, or <a href=\"#VkPipelineRobustnessCreateInfoEXT\">VkPipelineRobustnessCreateInfoEXT</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=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a>, <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>, <a href=\"#VkGraphicsPipelineLibraryCreateInfoEXT\">VkGraphicsPipelineLibraryCreateInfoEXT</a>, <a href=\"#VkGraphicsPipelineShaderGroupsCreateInfoNV\">VkGraphicsPipelineShaderGroupsCreateInfoNV</a>, <a href=\"#VkMultiviewPerViewAttributesInfoNVX\">VkMultiviewPerViewAttributesInfoNVX</a>, <a href=\"#VkPipelineCompilerControlCreateInfoAMD\">VkPipelineCompilerControlCreateInfoAMD</a>, <a href=\"#VkPipelineCreateFlags2CreateInfoKHR\">VkPipelineCreateFlags2CreateInfoKHR</a>, <a href=\"#VkPipelineCreationFeedbackCreateInfo\">VkPipelineCreationFeedbackCreateInfo</a>, <a href=\"#VkPipelineDiscardRectangleStateCreateInfoEXT\">VkPipelineDiscardRectangleStateCreateInfoEXT</a>, <a href=\"#VkPipelineFragmentShadingRateEnumStateCreateInfoNV\">VkPipelineFragmentShadingRateEnumStateCreateInfoNV</a>, <a href=\"#VkPipelineFragmentShadingRateStateCreateInfoKHR\">VkPipelineFragmentShadingRateStateCreateInfoKHR</a>, <a href=\"#VkPipelineLibraryCreateInfoKHR\">VkPipelineLibraryCreateInfoKHR</a>, <a href=\"#VkPipelineRenderingCreateInfo\">VkPipelineRenderingCreateInfo</a>, <a href=\"#VkPipelineRepresentativeFragmentTestStateCreateInfoNV\">VkPipelineRepresentativeFragmentTestStateCreateInfoNV</a>, or <a href=\"#VkPipelineRobustnessCreateInfoEXT\">VkPipelineRobustnessCreateInfoEXT</a>", "page": "vkspec" }, { @@ -19194,7 +19429,7 @@ }, { "vuid": "VUID-VkAndroidHardwareBufferPropertiesANDROID-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=\"#VkAndroidHardwareBufferFormatProperties2ANDROID\">VkAndroidHardwareBufferFormatProperties2ANDROID</a> or <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</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=\"#VkAndroidHardwareBufferFormatProperties2ANDROID\">VkAndroidHardwareBufferFormatProperties2ANDROID</a>, <a href=\"#VkAndroidHardwareBufferFormatPropertiesANDROID\">VkAndroidHardwareBufferFormatPropertiesANDROID</a>, or <a href=\"#VkAndroidHardwareBufferFormatResolvePropertiesANDROID\">VkAndroidHardwareBufferFormatResolvePropertiesANDROID</a>", "page": "vkspec" }, { @@ -19222,6 +19457,15 @@ } ] }, + "VkAndroidHardwareBufferFormatResolvePropertiesANDROID": { + "core": [ + { + "vuid": "VUID-VkAndroidHardwareBufferFormatResolvePropertiesANDROID-sType-sType", + "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID</code>", + "page": "vkspec" + } + ] + }, "vkGetMemoryRemoteAddressNV": { "core": [ { @@ -22126,8 +22370,18 @@ "page": "vkspec" }, { - "vuid": "VUID-VkImageViewCreateInfo-usage-08932", - "text": "If <code>usage</code> contains <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>, then the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain at least one of <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>, <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code> or, <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>", + "vuid": "VUID-VkImageViewCreateInfo-externalFormatResolve-09358", + "text": "If the <a href=\"#features-externalFormatResolve\"><code>externalFormatResolve</code></a> feature is not enabled and <code>usage</code> contains <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>, then the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain at least one of <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>, <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, or <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-nullColorAttachmentWithExternalFormatResolve-09359", + "text": "If the <a href=\"#limits-nullColorAttachmentWithExternalFormatResolve\"><code>nullColorAttachmentWithExternalFormatResolve</code></a> property is <code>VK_FALSE</code> and <code>usage</code> contains <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>, then the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain at least one of <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>, <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, or <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkImageViewCreateInfo-image-09360", + "text": "If <code>image</code> was created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value of 0 and <code>usage</code> contains <code>VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT</code>, then the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain at least one of <code>VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT</code>, <code>VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT</code>, or <code>VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV</code>", "page": "vkspec" }, { @@ -33643,6 +33897,11 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdClearAttachments-aspectMask-09298", + "text": "If the subpass this is recorded in performs an external format resolve, the <code>aspectMask</code> member of any element of <code>pAttachments</code> <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_PLANE<em>_i_</em>BIT_EXT</code> for any index <em>i</em>", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdClearAttachments-commandBuffer-parameter", "text": "<code>commandBuffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkCommandBuffer\">VkCommandBuffer</a> handle", "page": "vkspec" @@ -39794,7 +40053,7 @@ }, { "vuid": "VUID-vkCmdDraw-None-07836", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -39804,7 +40063,7 @@ }, { "vuid": "VUID-vkCmdDraw-None-07837", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -39814,7 +40073,7 @@ }, { "vuid": "VUID-vkCmdDraw-None-07838", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -39824,7 +40083,7 @@ }, { "vuid": "VUID-vkCmdDraw-None-07839", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -40153,6 +40412,56 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDraw-colorAttachmentCount-09362", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDraw-None-09363", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDraw-None-09364", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDraw-None-09365", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDraw-None-09366", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDraw-rasterizationSamples-09367", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDraw-None-09368", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDraw-None-09369", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDraw-pFragmentSize-09370", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDraw-pFragmentSize-09371", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDraw-None-07749", "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -40913,6 +41222,11 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDraw-colorAttachmentCount-09372", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDraw-None-08880", "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, 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=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -41518,7 +41832,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexed-None-07836", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -41528,7 +41842,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexed-None-07837", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -41538,7 +41852,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexed-None-07838", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -41548,7 +41862,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexed-None-07839", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -41877,6 +42191,56 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawIndexed-colorAttachmentCount-09362", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-None-09363", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-None-09364", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-None-09365", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-None-09366", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-rasterizationSamples-09367", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-None-09368", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-None-09369", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-pFragmentSize-09370", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-pFragmentSize-09371", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawIndexed-None-07749", "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -42637,6 +43001,11 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawIndexed-colorAttachmentCount-09372", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawIndexed-None-08880", "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, 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=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -43257,7 +43626,7 @@ }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07836", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -43267,7 +43636,7 @@ }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07837", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -43277,7 +43646,7 @@ }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07838", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -43287,7 +43656,7 @@ }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07839", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -43616,6 +43985,56 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-09362", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-None-09363", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-None-09364", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-None-09365", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-None-09366", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-rasterizationSamples-09367", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-None-09368", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-None-09369", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-pFragmentSize-09370", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-pFragmentSize-09371", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawMultiEXT-None-07749", "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -44376,6 +44795,11 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-09372", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawMultiEXT-None-08880", "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, 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=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -45001,7 +45425,7 @@ }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07836", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -45011,7 +45435,7 @@ }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07837", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -45021,7 +45445,7 @@ }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07838", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -45031,7 +45455,7 @@ }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07839", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -45360,6 +45784,56 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-09362", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09363", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09364", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09365", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09366", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-09367", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09368", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09369", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pFragmentSize-09370", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pFragmentSize-09371", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07749", "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -46120,6 +46594,11 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-09372", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08880", "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, 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=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -46765,7 +47244,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirect-None-07836", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -46775,7 +47254,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirect-None-07837", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -46785,7 +47264,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirect-None-07838", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -46795,7 +47274,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirect-None-07839", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -47124,6 +47603,56 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawIndirect-colorAttachmentCount-09362", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-None-09363", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-None-09364", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-None-09365", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-None-09366", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-rasterizationSamples-09367", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-None-09368", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-None-09369", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-pFragmentSize-09370", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-pFragmentSize-09371", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawIndirect-None-07749", "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -47884,6 +48413,11 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawIndirect-colorAttachmentCount-09372", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawIndirect-None-08880", "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, 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=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -48543,7 +49077,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07836", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -48553,7 +49087,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07837", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -48563,7 +49097,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07838", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -48573,7 +49107,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07839", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -48902,6 +49436,56 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-09362", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-None-09363", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-None-09364", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-None-09365", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-None-09366", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-rasterizationSamples-09367", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-None-09368", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-None-09369", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-pFragmentSize-09370", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-pFragmentSize-09371", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawIndirectCount-None-07749", "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -49662,6 +50246,11 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-09372", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawIndirectCount-None-08880", "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, 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=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -50337,7 +50926,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07836", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -50347,7 +50936,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07837", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -50357,7 +50946,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07838", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -50367,7 +50956,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07839", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -50696,6 +51285,56 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-09362", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09363", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09364", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09365", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09366", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-09367", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09368", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09369", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-pFragmentSize-09370", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-pFragmentSize-09371", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07749", "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -51456,6 +52095,11 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-09372", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08880", "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, 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=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -52130,7 +52774,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07836", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -52140,7 +52784,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07837", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -52150,7 +52794,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07838", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -52160,7 +52804,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07839", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -52489,6 +53133,56 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-09362", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09363", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09364", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09365", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09366", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-09367", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09368", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09369", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pFragmentSize-09370", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pFragmentSize-09371", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07749", "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -53249,6 +53943,11 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-09372", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08880", "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, 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=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -53934,7 +54633,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07836", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -53944,7 +54643,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07837", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -53954,7 +54653,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07838", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -53964,7 +54663,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07839", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -54293,6 +54992,56 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-09362", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09363", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09364", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09365", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09366", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-09367", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09368", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09369", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pFragmentSize-09370", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pFragmentSize-09371", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07749", "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -55053,6 +55802,11 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-09372", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08880", "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, 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=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -55805,7 +56559,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07836", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -55815,7 +56569,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07837", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -55825,7 +56579,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07838", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -55835,7 +56589,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07839", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -56164,6 +56918,56 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-09362", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09363", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09364", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09365", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09366", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-09367", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09368", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09369", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-pFragmentSize-09370", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-pFragmentSize-09371", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07749", "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -56924,6 +57728,11 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-09372", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08880", "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, 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=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -57439,7 +58248,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07836", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -57449,7 +58258,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07837", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -57459,7 +58268,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07838", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -57469,7 +58278,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07839", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -57798,6 +58607,56 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-09362", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09363", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09364", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09365", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09366", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-09367", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09368", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09369", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pFragmentSize-09370", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pFragmentSize-09371", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07749", "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -58558,6 +59417,11 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-09372", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08880", "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, 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=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -59132,7 +59996,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07836", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -59142,7 +60006,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07837", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -59152,7 +60016,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07838", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -59162,7 +60026,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07839", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -59491,6 +60355,56 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-09362", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09363", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09364", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09365", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09366", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-09367", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09368", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09369", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pFragmentSize-09370", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pFragmentSize-09371", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07749", "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -60251,6 +61165,11 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-09372", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08880", "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, 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=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -60846,7 +61765,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07836", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -60856,7 +61775,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07837", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -60866,7 +61785,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07838", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -60876,7 +61795,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07839", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -61205,6 +62124,56 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-09362", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09363", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09364", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09365", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09366", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-09367", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09368", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09369", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-pFragmentSize-09370", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-pFragmentSize-09371", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07749", "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -61965,6 +62934,11 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-09372", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08880", "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, 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=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -62515,7 +63489,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07836", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -62525,7 +63499,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07837", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -62535,7 +63509,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07838", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -62545,7 +63519,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07839", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -62874,6 +63848,56 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-09362", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09363", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09364", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09365", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09366", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-09367", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09368", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09369", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pFragmentSize-09370", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pFragmentSize-09371", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07749", "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -63634,6 +64658,11 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-09372", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08880", "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, 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=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -64243,7 +65272,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07836", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -64253,7 +65282,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07837", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -64263,7 +65292,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07838", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -64273,7 +65302,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07839", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -64602,6 +65631,56 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-09362", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09363", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09364", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09365", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09366", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-09367", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09368", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09369", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pFragmentSize-09370", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pFragmentSize-09371", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07749", "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -65362,6 +66441,11 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-09372", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08880", "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, 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=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -65957,7 +67041,7 @@ }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07836", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -65967,7 +67051,7 @@ }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07837", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -65977,7 +67061,7 @@ }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07838", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -65987,7 +67071,7 @@ }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07839", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -66316,6 +67400,56 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-09362", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09363", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09364", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09365", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09366", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-rasterizationSamples-09367", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09368", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09369", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-pFragmentSize-09370", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-pFragmentSize-09371", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07749", "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -67076,6 +68210,11 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-09372", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08880", "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, 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=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -67606,7 +68745,7 @@ }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07836", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -67616,7 +68755,7 @@ }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07837", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -67626,7 +68765,7 @@ }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07838", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -67636,7 +68775,7 @@ }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07839", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -67965,6 +69104,56 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-09362", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09363", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09364", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09365", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09366", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizationSamples-09367", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09368", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09369", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pFragmentSize-09370", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pFragmentSize-09371", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07749", "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -68725,6 +69914,11 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-09372", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08880", "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, 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=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -76114,7 +77308,7 @@ }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07836", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_DEPTH_BOUNDS</code> dynamic state enabled, and if the current <code>depthBoundsTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthBounds\">vkCmdSetDepthBounds</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -76124,7 +77318,7 @@ }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07837", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilCompareMask\">vkCmdSetStencilCompareMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -76134,7 +77328,7 @@ }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07838", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_WRITE_MASK</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilWriteMask\">vkCmdSetStencilWriteMask</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -76144,7 +77338,7 @@ }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07839", - "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", + "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_STENCIL_REFERENCE</code> dynamic state enabled, and if the current <code>stencilTestEnable</code> state is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetStencilReference\">vkCmdSetStencilReference</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" }, { @@ -76473,6 +77667,56 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-09362", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, with a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>resolveImageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09363", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, and a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, each element of the <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>pColorAttachments</code> array with a <code>imageView</code> not equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> have been created with an image created with a <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value equal to the <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value used to create the currently bound graphics pipeline", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09364", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set the blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09365", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09366", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetColorBlendEnableEXT\">vkCmdSetColorBlendEnableEXT</a> <strong class=\"purple\">must</strong> have set blend enable to <code>VK_FALSE</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-09367", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a> <strong class=\"purple\">must</strong> have set <code>rasterizationSamples</code> to <code>VK_SAMPLE_COUNT_1_BIT</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09368", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09369", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a>, there is no shader object bound to any graphics stage, and the currently bound graphics pipeline was created with a non-zero <a href=\"#VkExternalFormatANDROID\">VkExternalFormatANDROID</a>::<code>externalFormat</code> value and with the <code>VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR</code> dynamic state enabled, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pFragmentSize-09370", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->width</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pFragmentSize-09371", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code> resolve mode, then <a href=\"#vkCmdSetFragmentShadingRateKHR\">vkCmdSetFragmentShadingRateKHR</a> <strong class=\"purple\">must</strong> have set <code>pFragmentSize->height</code> to <code>1</code> prior to this drawing command", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07749", "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetColorWriteEnableEXT\">vkCmdSetColorWriteEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -77233,6 +78477,11 @@ "page": "vkspec" }, { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-09372", + "text": "If the current render pass instance was begun with <a href=\"#vkCmdBeginRendering\">vkCmdBeginRendering</a> and a <a href=\"#VkRenderingInfo\">VkRenderingInfo</a>::<code>colorAttachmentCount</code> equal to <code>1</code>, a color attachment with a resolve mode of <code>VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID</code>, and a fragment shader is bound, it <strong class=\"purple\">must</strong> not declare the <code>DepthReplacing</code> or <code>StencilRefReplacingEXT</code> execution modes", + "page": "vkspec" + }, + { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08880", "text": "If a shader object is bound to the <code>VK_SHADER_STAGE_FRAGMENT_BIT</code> stage and the <a href=\"#features-attachmentFeedbackLoopDynamicState\">attachmentFeedbackLoopDynamicState</a> feature is enabled on the device, 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=\"#vkCmdSetAttachmentFeedbackLoopEnableEXT\">vkCmdSetAttachmentFeedbackLoopEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command", "page": "vkspec" @@ -79910,7 +81159,7 @@ }, { "vuid": "VUID-VkSurfaceCapabilities2KHR-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=\"#VkDisplayNativeHdrSurfaceCapabilitiesAMD\">VkDisplayNativeHdrSurfaceCapabilitiesAMD</a>, <a href=\"#VkSharedPresentSurfaceCapabilitiesKHR\">VkSharedPresentSurfaceCapabilitiesKHR</a>, <a href=\"#VkSurfaceCapabilitiesFullScreenExclusiveEXT\">VkSurfaceCapabilitiesFullScreenExclusiveEXT</a>, <a href=\"#VkSurfaceCapabilitiesPresentBarrierNV\">VkSurfaceCapabilitiesPresentBarrierNV</a>, <a href=\"#VkSurfacePresentModeCompatibilityEXT\">VkSurfacePresentModeCompatibilityEXT</a>, <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a>, or <a href=\"#VkSurfaceProtectedCapabilitiesKHR\">VkSurfaceProtectedCapabilitiesKHR</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=\"#VkDisplayNativeHdrSurfaceCapabilitiesAMD\">VkDisplayNativeHdrSurfaceCapabilitiesAMD</a>, <a href=\"#VkLatencySurfaceCapabilitiesNV\">VkLatencySurfaceCapabilitiesNV</a>, <a href=\"#VkSharedPresentSurfaceCapabilitiesKHR\">VkSharedPresentSurfaceCapabilitiesKHR</a>, <a href=\"#VkSurfaceCapabilitiesFullScreenExclusiveEXT\">VkSurfaceCapabilitiesFullScreenExclusiveEXT</a>, <a href=\"#VkSurfaceCapabilitiesPresentBarrierNV\">VkSurfaceCapabilitiesPresentBarrierNV</a>, <a href=\"#VkSurfacePresentModeCompatibilityEXT\">VkSurfacePresentModeCompatibilityEXT</a>, <a href=\"#VkSurfacePresentScalingCapabilitiesEXT\">VkSurfacePresentScalingCapabilitiesEXT</a>, or <a href=\"#VkSurfaceProtectedCapabilitiesKHR\">VkSurfaceProtectedCapabilitiesKHR</a>", "page": "vkspec" }, { @@ -80648,7 +81897,7 @@ }, { "vuid": "VUID-VkSwapchainCreateInfoKHR-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=\"#VkDeviceGroupSwapchainCreateInfoKHR\">VkDeviceGroupSwapchainCreateInfoKHR</a>, <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a>, <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>, <a href=\"#VkSurfaceFullScreenExclusiveInfoEXT\">VkSurfaceFullScreenExclusiveInfoEXT</a>, <a href=\"#VkSurfaceFullScreenExclusiveWin32InfoEXT\">VkSurfaceFullScreenExclusiveWin32InfoEXT</a>, <a href=\"#VkSwapchainCounterCreateInfoEXT\">VkSwapchainCounterCreateInfoEXT</a>, <a href=\"#VkSwapchainDisplayNativeHdrCreateInfoAMD\">VkSwapchainDisplayNativeHdrCreateInfoAMD</a>, <a href=\"#VkSwapchainPresentBarrierCreateInfoNV\">VkSwapchainPresentBarrierCreateInfoNV</a>, <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>, or <a href=\"#VkSwapchainPresentScalingCreateInfoEXT\">VkSwapchainPresentScalingCreateInfoEXT</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=\"#VkDeviceGroupSwapchainCreateInfoKHR\">VkDeviceGroupSwapchainCreateInfoKHR</a>, <a href=\"#VkImageCompressionControlEXT\">VkImageCompressionControlEXT</a>, <a href=\"#VkImageFormatListCreateInfo\">VkImageFormatListCreateInfo</a>, <a href=\"#VkSurfaceFullScreenExclusiveInfoEXT\">VkSurfaceFullScreenExclusiveInfoEXT</a>, <a href=\"#VkSurfaceFullScreenExclusiveWin32InfoEXT\">VkSurfaceFullScreenExclusiveWin32InfoEXT</a>, <a href=\"#VkSwapchainCounterCreateInfoEXT\">VkSwapchainCounterCreateInfoEXT</a>, <a href=\"#VkSwapchainDisplayNativeHdrCreateInfoAMD\">VkSwapchainDisplayNativeHdrCreateInfoAMD</a>, <a href=\"#VkSwapchainLatencyCreateInfoNV\">VkSwapchainLatencyCreateInfoNV</a>, <a href=\"#VkSwapchainPresentBarrierCreateInfoNV\">VkSwapchainPresentBarrierCreateInfoNV</a>, <a href=\"#VkSwapchainPresentModesCreateInfoEXT\">VkSwapchainPresentModesCreateInfoEXT</a>, or <a href=\"#VkSwapchainPresentScalingCreateInfoEXT\">VkSwapchainPresentScalingCreateInfoEXT</a>", "page": "vkspec" }, { @@ -92614,6 +93863,232 @@ } ] }, + "vkSetLatencySleepModeNV": { + "core": [ + { + "vuid": "VUID-vkSetLatencySleepModeNV-device-parameter", + "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle", + "page": "vkspec" + }, + { + "vuid": "VUID-vkSetLatencySleepModeNV-swapchain-parameter", + "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle", + "page": "vkspec" + }, + { + "vuid": "VUID-vkSetLatencySleepModeNV-pSleepModeInfo-parameter", + "text": "<code>pSleepModeInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkLatencySleepModeInfoNV\">VkLatencySleepModeInfoNV</a> structure", + "page": "vkspec" + }, + { + "vuid": "VUID-vkSetLatencySleepModeNV-swapchain-parent", + "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>", + "page": "vkspec" + } + ] + }, + "VkLatencySleepModeInfoNV": { + "core": [ + { + "vuid": "VUID-VkLatencySleepModeInfoNV-sType-sType", + "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV</code>", + "page": "vkspec" + } + ] + }, + "vkLatencySleepNV": { + "core": [ + { + "vuid": "VUID-vkLatencySleepNV-device-parameter", + "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle", + "page": "vkspec" + }, + { + "vuid": "VUID-vkLatencySleepNV-swapchain-parameter", + "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle", + "page": "vkspec" + }, + { + "vuid": "VUID-vkLatencySleepNV-pSleepInfo-parameter", + "text": "<code>pSleepInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkLatencySleepInfoNV\">VkLatencySleepInfoNV</a> structure", + "page": "vkspec" + }, + { + "vuid": "VUID-vkLatencySleepNV-swapchain-parent", + "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>", + "page": "vkspec" + } + ] + }, + "VkLatencySleepInfoNV": { + "core": [ + { + "vuid": "VUID-VkLatencySleepInfoNV-signalSemaphore-09361", + "text": "<code>signalSemaphore</code> <strong class=\"purple\">must</strong> be a timeline semaphore", + "page": "vkspec" + }, + { + "vuid": "VUID-VkLatencySleepInfoNV-sType-sType", + "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkLatencySleepInfoNV-signalSemaphore-parameter", + "text": "<code>signalSemaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle", + "page": "vkspec" + } + ] + }, + "vkSetLatencyMarkerNV": { + "core": [ + { + "vuid": "VUID-vkSetLatencyMarkerNV-device-parameter", + "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle", + "page": "vkspec" + }, + { + "vuid": "VUID-vkSetLatencyMarkerNV-swapchain-parameter", + "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle", + "page": "vkspec" + }, + { + "vuid": "VUID-vkSetLatencyMarkerNV-pLatencyMarkerInfo-parameter", + "text": "<code>pLatencyMarkerInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSetLatencyMarkerInfoNV\">VkSetLatencyMarkerInfoNV</a> structure", + "page": "vkspec" + }, + { + "vuid": "VUID-vkSetLatencyMarkerNV-swapchain-parent", + "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>", + "page": "vkspec" + } + ] + }, + "VkSetLatencyMarkerInfoNV": { + "core": [ + { + "vuid": "VUID-VkSetLatencyMarkerInfoNV-sType-sType", + "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkSetLatencyMarkerInfoNV-marker-parameter", + "text": "<code>marker</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLatencyMarkerNV\">VkLatencyMarkerNV</a> value", + "page": "vkspec" + } + ] + }, + "vkGetLatencyTimingsNV": { + "core": [ + { + "vuid": "VUID-vkGetLatencyTimingsNV-device-parameter", + "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle", + "page": "vkspec" + }, + { + "vuid": "VUID-vkGetLatencyTimingsNV-swapchain-parameter", + "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle", + "page": "vkspec" + }, + { + "vuid": "VUID-vkGetLatencyTimingsNV-pTimingCount-parameter", + "text": "<code>pTimingCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value", + "page": "vkspec" + }, + { + "vuid": "VUID-vkGetLatencyTimingsNV-pLatencyMarkerInfo-parameter", + "text": "<code>pLatencyMarkerInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkGetLatencyMarkerInfoNV\">VkGetLatencyMarkerInfoNV</a> structure", + "page": "vkspec" + }, + { + "vuid": "VUID-vkGetLatencyTimingsNV-swapchain-parent", + "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>", + "page": "vkspec" + } + ] + }, + "VkGetLatencyMarkerInfoNV": { + "core": [ + { + "vuid": "VUID-VkGetLatencyMarkerInfoNV-sType-sType", + "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkGetLatencyMarkerInfoNV-pTimings-parameter", + "text": "<code>pTimings</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkLatencyTimingsFrameReportNV\">VkLatencyTimingsFrameReportNV</a> structure", + "page": "vkspec" + } + ] + }, + "VkLatencyTimingsFrameReportNV": { + "core": [ + { + "vuid": "VUID-VkLatencyTimingsFrameReportNV-sType-sType", + "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV</code>", + "page": "vkspec" + } + ] + }, + "VkLatencySubmissionPresentIdNV": { + "core": [ + { + "vuid": "VUID-VkLatencySubmissionPresentIdNV-sType-sType", + "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV</code>", + "page": "vkspec" + } + ] + }, + "vkQueueNotifyOutOfBandNV": { + "core": [ + { + "vuid": "VUID-vkQueueNotifyOutOfBandNV-queue-parameter", + "text": "<code>queue</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkQueue\">VkQueue</a> handle", + "page": "vkspec" + }, + { + "vuid": "VUID-vkQueueNotifyOutOfBandNV-pQueueTypeInfo-parameter", + "text": "<code>pQueueTypeInfo</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkOutOfBandQueueTypeInfoNV\">VkOutOfBandQueueTypeInfoNV</a> structure", + "page": "vkspec" + } + ] + }, + "VkOutOfBandQueueTypeInfoNV": { + "core": [ + { + "vuid": "VUID-VkOutOfBandQueueTypeInfoNV-sType-sType", + "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkOutOfBandQueueTypeInfoNV-queueType-parameter", + "text": "<code>queueType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkOutOfBandQueueTypeNV\">VkOutOfBandQueueTypeNV</a> value", + "page": "vkspec" + } + ] + }, + "VkSwapchainLatencyCreateInfoNV": { + "core": [ + { + "vuid": "VUID-VkSwapchainLatencyCreateInfoNV-sType-sType", + "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV</code>", + "page": "vkspec" + } + ] + }, + "VkLatencySurfaceCapabilitiesNV": { + "core": [ + { + "vuid": "VUID-VkLatencySurfaceCapabilitiesNV-sType-sType", + "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV</code>", + "page": "vkspec" + }, + { + "vuid": "VUID-VkLatencySurfaceCapabilitiesNV-pPresentModes-parameter", + "text": "If <code>presentModeCount</code> is not <code>0</code>, and <code>pPresentModes</code> is not <code>NULL</code>, <code>pPresentModes</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>presentModeCount</code> <a href=\"#VkPresentModeKHR\">VkPresentModeKHR</a> values", + "page": "vkspec" + } + ] + }, "vkEnumerateInstanceLayerProperties": { "core": [ { @@ -94247,6 +95722,15 @@ } ] }, + "VkPhysicalDeviceExternalFormatResolveFeaturesANDROID": { + "core": [ + { + "vuid": "VUID-VkPhysicalDeviceExternalFormatResolveFeaturesANDROID-sType-sType", + "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID</code>", + "page": "vkspec" + } + ] + }, "VkPhysicalDevicePushDescriptorPropertiesKHR": { "core": [ { @@ -94874,6 +96358,15 @@ } ] }, + "VkPhysicalDeviceExternalFormatResolvePropertiesANDROID": { + "core": [ + { + "vuid": "VUID-VkPhysicalDeviceExternalFormatResolvePropertiesANDROID-sType-sType", + "text": "<code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID</code>", + "page": "vkspec" + } + ] + }, "vkGetPhysicalDeviceMultisamplePropertiesEXT": { "core": [ { @@ -96882,7 +98375,7 @@ }, { "vuid": "VUID-StandaloneSpirv-Location-04917", - "text": "If a <a href=\"#interfaces-iointerfaces-user\">user-defined variable</a> is a pointer to a <code>Block</code> decorated <code>OpTypeStruct</code>, then the <code>OpVariable</code> <strong class=\"purple\">must</strong> have a <code>Location</code> decoration", + "text": "If a <a href=\"#interfaces-iointerfaces-user\">user-defined variable</a> is not a pointer to a <code>Block</code> decorated <code>OpTypeStruct</code>, then the <code>OpVariable</code> <strong class=\"purple\">must</strong> have a <code>Location</code> decoration", "page": "vkspec" }, { diff --git a/registry/vk.xml b/registry/vk.xml index 89f6efb..ad17319 100644 --- a/registry/vk.xml +++ b/registry/vk.xml @@ -175,7 +175,7 @@ branch of the member gitlab server. #define <name>VKSC_API_VERSION_1_0</name> <type>VK_MAKE_API_VERSION</type>(VKSC_API_VARIANT, 1, 0, 0)// Patch version should always be set to 0</type> <type api="vulkan" category="define">// Version of this file -#define <name>VK_HEADER_VERSION</name> 265</type> +#define <name>VK_HEADER_VERSION</name> 266</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 @@ -190,7 +190,7 @@ branch of the member gitlab server. <type category="define" name="VK_USE_64_BIT_PTR_DEFINES"> #ifndef VK_USE_64_BIT_PTR_DEFINES - #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) + #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) || (defined(__riscv) && __riscv_xlen == 64) #define VK_USE_64_BIT_PTR_DEFINES 1 #else #define VK_USE_64_BIT_PTR_DEFINES 0 @@ -865,6 +865,8 @@ typedef void* <name>MTLSharedEvent_id</name>; <type name="VkDeviceFaultAddressTypeEXT" category="enum"/> <type name="VkPresentScalingFlagBitsEXT" category="enum"/> <type name="VkPresentGravityFlagBitsEXT" category="enum"/> + <type name="VkLatencyMarkerNV" category="enum"/> + <type name="VkOutOfBandQueueTypeNV" category="enum"/> <comment>Enumerated types in the header, but not used by the API</comment> <type name="VkVendorId" category="enum"/> @@ -4201,7 +4203,7 @@ typedef void* <name>MTLSharedEvent_id</name>; <member optional="true">const <type>void</type>* <name>pNext</name></member> <member><type>VkBool32</type> <name>conditionalRenderingEnable</name><comment>Whether this secondary command buffer may be executed during an active conditional rendering</comment></member> </type> - <type category="struct" name="VkExternalFormatANDROID" structextends="VkImageCreateInfo,VkSamplerYcbcrConversionCreateInfo"> + <type category="struct" name="VkExternalFormatANDROID" structextends="VkImageCreateInfo,VkSamplerYcbcrConversionCreateInfo,VkAttachmentDescription2,VkGraphicsPipelineCreateInfo,VkCommandBufferInheritanceInfo"> <member values="VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID"><type>VkStructureType</type> <name>sType</name></member> <member optional="true"><type>void</type>* <name>pNext</name></member> <member><type>uint64_t</type> <name>externalFormat</name></member> @@ -8673,6 +8675,86 @@ typedef void* <name>MTLSharedEvent_id</name>; <member optional="true"><type>void</type>* <name>pNext</name></member> <member><type>VkLayeredDriverUnderlyingApiMSFT</type> <name>underlyingAPI</name></member> </type> + <type category="struct" name="VkPhysicalDeviceExternalFormatResolveFeaturesANDROID" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo"> + <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID"><type>VkStructureType</type> <name>sType</name></member> + <member optional="true"><type>void</type>* <name>pNext</name></member> + <member><type>VkBool32</type> <name>externalFormatResolve</name></member> + </type> + <type category="struct" name="VkPhysicalDeviceExternalFormatResolvePropertiesANDROID" structextends="VkPhysicalDeviceProperties2" returnedonly="true"> + <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID"><type>VkStructureType</type> <name>sType</name></member> + <member optional="true"><type>void</type>* <name>pNext</name></member> + <member limittype="noauto"><type>VkBool32</type> <name>nullColorAttachmentWithExternalFormatResolve</name></member> + <member limittype="noauto"><type>VkChromaLocation</type> <name>externalFormatResolveChromaOffsetX</name></member> + <member limittype="noauto"><type>VkChromaLocation</type> <name>externalFormatResolveChromaOffsetY</name></member> + </type> + <type category="struct" name="VkAndroidHardwareBufferFormatResolvePropertiesANDROID" structextends="VkAndroidHardwareBufferPropertiesANDROID" returnedonly="true"> + <member values="VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID"><type>VkStructureType</type> <name>sType</name></member> + <member optional="true"><type>void</type>* <name>pNext</name></member> + <member><type>VkFormat</type> <name>colorAttachmentFormat</name></member> + </type> + <type category="struct" name="VkLatencySleepModeInfoNV"> + <member values="VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member> + <member optional="true" noautovalidity="true">const <type>void</type>* <name>pNext</name></member> + <member><type>VkBool32</type> <name>lowLatencyMode</name></member> + <member><type>VkBool32</type> <name>lowLatencyBoost</name></member> + <member><type>uint32_t</type> <name>minimumIntervalUs</name></member> + </type> + <type category="struct" name="VkLatencySleepInfoNV"> + <member values="VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV"><type>VkStructureType</type> <name>sType</name></member> + <member optional="true" noautovalidity="true">const <type>void</type>* <name>pNext</name></member> + <member><type>VkSemaphore</type> <name>signalSemaphore</name></member> + <member><type>uint64_t</type> <name>value</name></member> + </type> + <type category="struct" name="VkSetLatencyMarkerInfoNV"> + <member values="VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV"><type>VkStructureType</type> <name>sType</name></member> + <member optional="true" noautovalidity="true">const <type>void</type>* <name>pNext</name></member> + <member><type>uint64_t</type> <name>presentID</name></member> + <member><type>VkLatencyMarkerNV</type> <name>marker</name></member> + </type> + <type category="struct" name="VkGetLatencyMarkerInfoNV"> + <member values="VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV"><type>VkStructureType</type> <name>sType</name></member> + <member optional="true" noautovalidity="true">const <type>void</type>* <name>pNext</name></member> + <member><type>VkLatencyTimingsFrameReportNV</type>* <name>pTimings</name></member> + </type> + <type category="struct" name="VkLatencyTimingsFrameReportNV"> + <member values="VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV"><type>VkStructureType</type> <name>sType</name></member> + <member optional="true" noautovalidity="true">const <type>void</type>* <name>pNext</name></member> + <member><type>uint64_t</type> <name>presentID</name></member> + <member><type>uint64_t</type> <name>inputSampleTimeUs</name></member> + <member><type>uint64_t</type> <name>simStartTimeUs</name></member> + <member><type>uint64_t</type> <name>simEndTimeUs</name></member> + <member><type>uint64_t</type> <name>renderSubmitStartTimeUs</name></member> + <member><type>uint64_t</type> <name>renderSubmitEndTimeUs</name></member> + <member><type>uint64_t</type> <name>presentStartTimeUs</name></member> + <member><type>uint64_t</type> <name>presentEndTimeUs</name></member> + <member><type>uint64_t</type> <name>driverStartTimeUs</name></member> + <member><type>uint64_t</type> <name>driverEndTimeUs</name></member> + <member><type>uint64_t</type> <name>osRenderQueueStartTimeUs</name></member> + <member><type>uint64_t</type> <name>osRenderQueueEndTimeUs</name></member> + <member><type>uint64_t</type> <name>gpuRenderStartTimeUs</name></member> + <member><type>uint64_t</type> <name>gpuRenderEndTimeUs</name></member> + </type> + <type category="struct" name="VkOutOfBandQueueTypeInfoNV"> + <member values="VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member> + <member optional="true" noautovalidity="true">const <type>void</type>* <name>pNext</name></member> + <member><type>VkOutOfBandQueueTypeNV</type> <name>queueType</name></member> + </type> + <type category="struct" name="VkLatencySubmissionPresentIdNV" structextends="VkSubmitInfo,VkSubmitInfo2"> + <member values="VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV"><type>VkStructureType</type> <name>sType</name></member> + <member optional="true">const <type>void</type>* <name>pNext</name></member> + <member><type>uint64_t</type> <name>presentID</name></member> + </type> + <type category="struct" name="VkSwapchainLatencyCreateInfoNV" structextends="VkSwapchainCreateInfoKHR"> + <member values="VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member> + <member optional="true">const <type>void</type>* <name>pNext</name></member> + <member optional="true"><type>VkBool32</type> <name>latencyModeEnable</name></member> + </type> + <type category="struct" name="VkLatencySurfaceCapabilitiesNV" structextends="VkSurfaceCapabilities2KHR"> + <member values="VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV"><type>VkStructureType</type> <name>sType</name></member> + <member optional="true">const <type>void</type>* <name>pNext</name></member> + <member optional="false,true"><type>uint32_t</type> <name>presentModeCount</name></member> + <member optional="true" len="presentModeCount"><type>VkPresentModeKHR</type>* <name>pPresentModes</name></member> + </type> </types> @@ -9886,6 +9968,7 @@ typedef void* <name>MTLSharedEvent_id</name>; <enum value="23" name="VK_DRIVER_ID_MESA_DOZEN" comment="Mesa open source project"/> <enum value="24" name="VK_DRIVER_ID_MESA_NVK" comment="Mesa open source project"/> <enum value="25" name="VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA" comment="Imagination Technologies"/> + <enum value="26" name="VK_DRIVER_ID_MESA_AGXV" comment="Mesa open source project"/> </enums> <enums name="VkConditionalRenderingFlagBitsEXT" type="bitmask"> <enum bitpos="0" name="VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT"/> @@ -10769,6 +10852,24 @@ typedef void* <name>MTLSharedEvent_id</name>; <enum value="0" name="VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT"/> <enum value="1" name="VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT"/> </enums> + <enums name="VkLatencyMarkerNV" type="enum"> + <enum value="0" name="VK_LATENCY_MARKER_SIMULATION_START_NV"/> + <enum value="1" name="VK_LATENCY_MARKER_SIMULATION_END_NV"/> + <enum value="2" name="VK_LATENCY_MARKER_RENDERSUBMIT_START_NV"/> + <enum value="3" name="VK_LATENCY_MARKER_RENDERSUBMIT_END_NV"/> + <enum value="4" name="VK_LATENCY_MARKER_PRESENT_START_NV"/> + <enum value="5" name="VK_LATENCY_MARKER_PRESENT_END_NV"/> + <enum value="6" name="VK_LATENCY_MARKER_INPUT_SAMPLE_NV"/> + <enum value="7" name="VK_LATENCY_MARKER_TRIGGER_FLASH_NV"/> + <enum value="8" name="VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV"/> + <enum value="9" name="VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV"/> + <enum value="10" name="VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV"/> + <enum value="11" name="VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV"/> + </enums> + <enums name="VkOutOfBandQueueTypeNV" type="enum"> + <enum value="0" name="VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV"/> + <enum value="1" name="VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV"/> + </enums> <commands comment="Vulkan command definitions"> <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_LAYER_NOT_PRESENT,VK_ERROR_EXTENSION_NOT_PRESENT,VK_ERROR_INCOMPATIBLE_DRIVER"> @@ -14782,6 +14883,36 @@ typedef void* <name>MTLSharedEvent_id</name>; <param><type>VkDeviceAddress</type> <name>scratch</name></param> <param><type>VkDeviceAddress</type> <name>countInfo</name></param> </command> + <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INITIALIZATION_FAILED"> + <proto><type>VkResult</type> <name>vkSetLatencySleepModeNV</name></proto> + <param><type>VkDevice</type> <name>device</name></param> + <param><type>VkSwapchainKHR</type> <name>swapchain</name></param> + <param><type>VkLatencySleepModeInfoNV</type>* <name>pSleepModeInfo</name></param> + </command> + <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_UNKNOWN"> + <proto><type>VkResult</type> <name>vkLatencySleepNV</name></proto> + <param><type>VkDevice</type> <name>device</name></param> + <param><type>VkSwapchainKHR</type> <name>swapchain</name></param> + <param><type>VkLatencySleepInfoNV</type>* <name>pSleepInfo</name></param> + </command> + <command> + <proto><type>void</type> <name>vkSetLatencyMarkerNV</name></proto> + <param><type>VkDevice</type> <name>device</name></param> + <param><type>VkSwapchainKHR</type> <name>swapchain</name></param> + <param><type>VkSetLatencyMarkerInfoNV</type>* <name>pLatencyMarkerInfo</name></param> + </command> + <command> + <proto><type>void</type> <name>vkGetLatencyTimingsNV</name></proto> + <param><type>VkDevice</type> <name>device</name></param> + <param><type>VkSwapchainKHR</type> <name>swapchain</name></param> + <param><type>uint32_t</type>* <name>pTimingCount</name></param> + <param><type>VkGetLatencyMarkerInfoNV</type>* <name>pLatencyMarkerInfo</name></param> + </command> + <command> + <proto><type>void</type> <name>vkQueueNotifyOutOfBandNV</name></proto> + <param><type>VkQueue</type> <name>queue</name></param> + <param><type>VkOutOfBandQueueTypeInfoNV</type> <name>pQueueTypeInfo</name></param> + </command> </commands> <feature api="vulkan,vulkansc" name="VK_VERSION_1_0" number="1.0" comment="Vulkan core API interface definitions"> @@ -22491,11 +22622,19 @@ typedef void* <name>MTLSharedEvent_id</name>; <enum value=""VK_EXT_extension_468"" name="VK_EXT_EXTENSION_468_EXTENSION_NAME"/> </require> </extension> - <extension name="VK_ANDROID_extension_469" number="469" type="device" platform="android" author="ANDROID" contact="Chris Forbes @chrisforbes" supported="disabled"> + <extension name="VK_ANDROID_external_format_resolve" number="469" type="device" depends="VK_ANDROID_external_memory_android_hardware_buffer" platform="android" author="ANDROID" contact="Chris Forbes @chrisforbes" specialuse="glemulation" supported="vulkan"> <require> - <enum value="0" name="VK_ANDROID_EXTENSION_469_SPEC_VERSION"/> - <enum value=""VK_ANDROID_extension_469"" name="VK_ANDROID_EXTENSION_469_EXTENSION_NAME"/> - <enum bitpos="4" extends="VkResolveModeFlagBits" name="VK_RESOLVE_MODE_EXTENSION_469_FLAG_4_BIT_ANDROID"/> + <enum value="1" name="VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION"/> + <enum value=""VK_ANDROID_external_format_resolve"" name="VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_EXTENSION_NAME"/> + <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID"/> + <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID"/> + <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID"/> + <type name="VkPhysicalDeviceExternalFormatResolveFeaturesANDROID"/> + <type name="VkPhysicalDeviceExternalFormatResolvePropertiesANDROID"/> + <type name="VkAndroidHardwareBufferFormatResolvePropertiesANDROID"/> + </require> + <require depends="VK_KHR_dynamic_rendering"> + <enum bitpos="4" extends="VkResolveModeFlagBits" name="VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID"/> </require> </extension> <extension name="VK_AMD_extension_470" number="470" author="AMD" contact="Stu Smith" supported="disabled"> @@ -23015,10 +23154,35 @@ typedef void* <name>MTLSharedEvent_id</name>; <enum value=""VK_EXT_extension_505"" name="VK_EXT_EXTENSION_505_EXTENSION_NAME"/> </require> </extension> - <extension name="VK_NV_extension_506" number="506" author="NV" contact="Charles Hansen @cshansen" type="device" supported="disabled"> - <require> - <enum value="0" name="VK_NV_EXTENSION_506_SPEC_VERSION"/> - <enum value=""VK_NV_extension_506"" name="VK_NV_EXTENSION_506_EXTENSION_NAME"/> + <extension name="VK_NV_low_latency2" number="506" author="NV" contact="Charles Hansen @cshansen" type="device" supported="vulkan"> + <require> + <enum value="1" name="VK_NV_LOW_LATENCY_2_SPEC_VERSION"/> + <enum value=""VK_NV_low_latency2"" name="VK_NV_LOW_LATENCY_2_EXTENSION_NAME"/> + <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV"/> + <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV"/> + <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV"/> + <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV"/> + <enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV"/> + <enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV"/> + <enum offset="6" extends="VkStructureType" name="VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV"/> + <enum offset="7" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV"/> + <enum offset="8" extends="VkStructureType" name="VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV"/> + <type name="VkLatencySleepModeInfoNV"/> + <type name="VkLatencySleepInfoNV"/> + <type name="VkSetLatencyMarkerInfoNV"/> + <type name="VkGetLatencyMarkerInfoNV"/> + <type name="VkLatencyTimingsFrameReportNV"/> + <type name="VkLatencyMarkerNV"/> + <type name="VkLatencySubmissionPresentIdNV"/> + <type name="VkSwapchainLatencyCreateInfoNV"/> + <type name="VkOutOfBandQueueTypeInfoNV"/> + <type name="VkOutOfBandQueueTypeNV"/> + <type name="VkLatencySurfaceCapabilitiesNV"/> + <command name="vkSetLatencySleepModeNV"/> + <command name="vkLatencySleepNV"/> + <command name="vkSetLatencyMarkerNV"/> + <command name="vkGetLatencyTimingsNV"/> + <command name="vkQueueNotifyOutOfBandNV"/> </require> </extension> <extension name="VK_KHR_cooperative_matrix" number="507" type="device" depends="VK_KHR_get_physical_device_properties2" author="KHR" contact="Kevin Petit @kpet" supported="vulkan" ratified="vulkan"> |