From 8833e141630d9506918ebe6eee391fd5748a7b11 Mon Sep 17 00:00:00 2001 From: Ioannis Tsakpinis Date: Mon, 18 Nov 2024 18:22:43 +0200 Subject: [PATCH] feat(Vulkan) update to 1.3.301 --- doc/notes/3.3.5.md | 2 +- .../src/generated/c/org_lwjgl_system_JNI.c | 4 + .../generated/java/org/lwjgl/system/JNI.java | 1 + .../org/lwjgl/vulkan/AMDBufferMarker.java | 101 ++ .../lwjgl/vulkan/AMDGPUShaderHalfFloat.java | 2 +- .../org/lwjgl/vulkan/AMDGPUShaderInt16.java | 2 +- .../vulkan/AMDMixedAttachmentSamples.java | 8 + .../vulkan/AMDNegativeViewportHeight.java | 2 +- .../org/lwjgl/vulkan/AMDXShaderEnqueue.java | 123 ++- .../lwjgl/vulkan/EXTAcquireDrmDisplay.java | 2 +- ...EXTAttachmentFeedbackLoopDynamicState.java | 5 + .../EXTAttachmentFeedbackLoopLayout.java | 5 + .../lwjgl/vulkan/EXTDepthClampControl.java | 4 +- .../lwjgl/vulkan/EXTDescriptorIndexing.java | 2 +- .../vulkan/EXTDeviceGeneratedCommands.java | 61 +- .../vulkan/EXTExtendedDynamicState3.java | 8 +- .../lwjgl/vulkan/EXTFragmentDensityMap.java | 18 + .../org/lwjgl/vulkan/EXTHostImageCopy.java | 18 - .../org/lwjgl/vulkan/EXTImageRobustness.java | 2 +- .../lwjgl/vulkan/EXTInlineUniformBlock.java | 4 +- .../java/org/lwjgl/vulkan/EXTMeshShader.java | 127 ++- .../java/org/lwjgl/vulkan/EXTMultiDraw.java | 82 +- .../org/lwjgl/vulkan/EXTOpacityMicromap.java | 2 +- .../EXTPipelineCreationCacheControl.java | 2 +- .../vulkan/EXTPipelineCreationFeedback.java | 2 +- .../vulkan/EXTPresentModeFifoLatestReady.java | 66 ++ .../java/org/lwjgl/vulkan/EXTPrivateData.java | 2 +- .../lwjgl/vulkan/EXTScalarBlockLayout.java | 2 +- .../lwjgl/vulkan/EXTShaderAtomicFloat.java | 5 + .../lwjgl/vulkan/EXTShaderAtomicFloat2.java | 4 + .../EXTShaderDemoteToHelperInvocation.java | 2 +- .../org/lwjgl/vulkan/EXTShaderObject.java | 6 +- .../lwjgl/vulkan/EXTSubgroupSizeControl.java | 2 +- .../lwjgl/vulkan/EXTTexelBufferAlignment.java | 2 +- .../vulkan/EXTTextureCompressionAstcHdr.java | 2 +- .../java/org/lwjgl/vulkan/EXTToolingInfo.java | 2 +- .../lwjgl/vulkan/EXTTransformFeedback.java | 41 +- .../vulkan/HUAWEIClusterCullingShader.java | 84 +- .../java/org/lwjgl/vulkan/HUAWEIHdrVivid.java | 70 ++ .../lwjgl/vulkan/HUAWEIInvocationMask.java | 2 +- .../lwjgl/vulkan/HUAWEISubpassShading.java | 2 +- .../java/org/lwjgl/vulkan/KHR8bitStorage.java | 2 +- .../vulkan/KHRAccelerationStructure.java | 23 +- .../lwjgl/vulkan/KHRCooperativeMatrix.java | 4 +- .../org/lwjgl/vulkan/KHRCopyCommands2.java | 2 +- .../java/org/lwjgl/vulkan/KHRDeviceGroup.java | 2 +- .../org/lwjgl/vulkan/KHRDynamicRendering.java | 53 +- .../lwjgl/vulkan/KHRFormatFeatureFlags2.java | 2 +- .../lwjgl/vulkan/KHRFragmentShadingRate.java | 18 + .../org/lwjgl/vulkan/KHRMaintenance4.java | 2 +- .../org/lwjgl/vulkan/KHRMaintenance5.java | 3 +- .../org/lwjgl/vulkan/KHRPipelineBinary.java | 2 +- .../vulkan/KHRRayTracingMaintenance1.java | 2 +- .../lwjgl/vulkan/KHRRayTracingPipeline.java | 20 +- .../vulkan/KHRShaderIntegerDotProduct.java | 2 +- .../vulkan/KHRShaderNonSemanticInfo.java | 2 +- .../vulkan/KHRShaderTerminateInvocation.java | 2 +- .../java/org/lwjgl/vulkan/KHRSurface.java | 4 +- .../java/org/lwjgl/vulkan/KHRSwapchain.java | 2 +- .../org/lwjgl/vulkan/KHRSynchronization2.java | 189 +--- .../KHRZeroInitializeWorkgroupMemory.java | 2 +- .../lwjgl/vulkan/NVCooperativeMatrix2.java | 179 ++++ .../vulkan/NVDeviceDiagnosticCheckpoints.java | 94 ++ .../vulkan/NVDeviceGeneratedCommands.java | 53 +- .../vulkan/NVFramebufferMixedSamples.java | 8 + .../java/org/lwjgl/vulkan/NVMeshShader.java | 125 ++- .../java/org/lwjgl/vulkan/NVRayTracing.java | 2 +- .../org/lwjgl/vulkan/NVShadingRateImage.java | 2 +- .../vulkan/NVXMultiviewPerViewAttributes.java | 8 + .../generated/java/org/lwjgl/vulkan/VK10.java | 292 +++--- .../generated/java/org/lwjgl/vulkan/VK11.java | 4 +- .../generated/java/org/lwjgl/vulkan/VK12.java | 86 +- .../lwjgl/vulkan/VKCapabilitiesDevice.java | 889 +++++++++--------- .../lwjgl/vulkan/VKCapabilitiesInstance.java | 32 +- .../VkAccelerationStructureInstanceKHR.java | 2 +- ...eBufferFormatResolvePropertiesANDROID.java | 2 +- .../VkAttachmentSampleCountInfoAMD.java | 10 +- .../vulkan/VkAttachmentSampleCountInfoNV.java | 8 +- .../org/lwjgl/vulkan/VkCheckpointData2NV.java | 12 +- .../vulkan/VkComputePipelineCreateInfo.java | 2 +- ...eMatrixFlexibleDimensionsPropertiesNV.java | 438 +++++++++ .../VkCooperativeMatrixPropertiesKHR.java | 2 +- .../vulkan/VkCopyBufferToImageInfo2.java | 2 +- .../org/lwjgl/vulkan/VkCopyDescriptorSet.java | 6 +- .../vulkan/VkCopyImageToBufferInfo2.java | 2 +- .../org/lwjgl/vulkan/VkCudaLaunchInfoNV.java | 2 +- .../vulkan/VkDebugMarkerMarkerInfoEXT.java | 4 +- .../VkDebugMarkerObjectNameInfoEXT.java | 2 +- .../lwjgl/vulkan/VkDebugUtilsLabelEXT.java | 4 +- .../vulkan/VkDescriptorSetLayoutSupport.java | 2 +- ...tVariableDescriptorCountLayoutSupport.java | 2 +- .../VkDescriptorUpdateTemplateEntry.java | 2 +- .../org/lwjgl/vulkan/VkDeviceCreateInfo.java | 14 +- .../VkDeviceGroupCommandBufferBeginInfo.java | 2 +- ...kExecutionGraphPipelineCreateInfoAMDX.java | 10 +- ...ExecutionGraphPipelineScratchSizeAMDX.java | 78 +- .../VkExportFenceWin32HandleInfoKHR.java | 2 +- .../VkExportMemoryWin32HandleInfoNV.java | 2 +- .../VkExportSemaphoreWin32HandleInfoKHR.java | 2 +- .../vulkan/VkExternalFenceProperties.java | 2 +- .../vulkan/VkExternalSemaphoreProperties.java | 2 +- .../vulkan/VkGeneratedCommandsInfoEXT.java | 4 +- ...atedCommandsMemoryRequirementsInfoEXT.java | 10 +- .../vulkan/VkGraphicsPipelineCreateInfo.java | 21 +- ...phicsPipelineShaderGroupsCreateInfoNV.java | 2 +- .../org/lwjgl/vulkan/VkHdrMetadataEXT.java | 7 +- .../VkHdrVividDynamicMetadataHUAWEI.java | 353 +++++++ .../org/lwjgl/vulkan/VkImageCreateInfo.java | 4 +- .../lwjgl/vulkan/VkImageViewCreateInfo.java | 3 +- .../VkImportMetalSharedEventInfoEXT.java | 2 +- .../VkIndirectCommandsLayoutTokenEXT.java | 2 +- ...kIndirectCommandsVertexBufferTokenEXT.java | 2 +- .../lwjgl/vulkan/VkInstanceCreateInfo.java | 3 + .../vulkan/VkLatencySleepModeInfoNV.java | 2 +- .../VkMultiviewPerViewAttributesInfoNVX.java | 10 +- ...iewRenderAreasRenderPassBeginInfoQCOM.java | 2 +- ...calDeviceCooperativeMatrix2FeaturesNV.java | 444 +++++++++ ...lDeviceCooperativeMatrix2PropertiesNV.java | 340 +++++++ ...sicalDeviceDepthClipEnableFeaturesEXT.java | 2 +- .../vulkan/VkPhysicalDeviceFeatures.java | 18 +- .../vulkan/VkPhysicalDeviceFeatures2.java | 12 + ...kPhysicalDeviceHdrVividFeaturesHUAWEI.java | 324 +++++++ .../lwjgl/vulkan/VkPhysicalDeviceLimits.java | 2 +- ...PresentModeFifoLatestReadyFeaturesEXT.java | 324 +++++++ .../vulkan/VkPhysicalDeviceProperties.java | 4 +- .../vulkan/VkPhysicalDeviceProperties2.java | 6 +- ...ysicalDeviceShaderEnqueueFeaturesAMDX.java | 24 +- ...icalDeviceShaderEnqueuePropertiesAMDX.java | 66 +- ...lDeviceTransformFeedbackPropertiesEXT.java | 2 +- .../VkPipelineBinaryHandlesInfoKHR.java | 2 +- .../VkPipelineMultisampleStateCreateInfo.java | 2 +- .../VkPipelineShaderStageCreateInfo.java | 1 + ...PipelineShaderStageNodeCreateInfoAMDX.java | 5 + ...iewportDepthClampControlCreateInfoEXT.java | 4 +- .../java/org/lwjgl/vulkan/VkPresentIdKHR.java | 2 +- .../org/lwjgl/vulkan/VkPresentInfoKHR.java | 2 +- .../VkQueueFamilyCheckpointProperties2NV.java | 10 +- .../VkRayTracingPipelineCreateInfoKHR.java | 1 - .../VkRayTracingPipelineCreateInfoNV.java | 2 +- .../lwjgl/vulkan/VkRenderPassBeginInfo.java | 2 +- .../VkRenderPassMultiviewCreateInfo.java | 2 +- .../VkRenderingAttachmentLocationInfoKHR.java | 2 +- ...ngFragmentDensityMapAttachmentInfoEXT.java | 10 +- ...gFragmentShadingRateAttachmentInfoKHR.java | 10 +- .../org/lwjgl/vulkan/VkRenderingInfo.java | 2 +- ...kRenderingInputAttachmentIndexInfoKHR.java | 2 +- .../org/lwjgl/vulkan/VkSamplerCreateInfo.java | 6 +- .../VkSamplerYcbcrConversionCreateInfo.java | 2 +- .../lwjgl/vulkan/VkShaderCreateInfoEXT.java | 2 +- .../vulkan/VkSurfaceCapabilities2EXT.java | 2 +- .../vulkan/VkSurfaceCapabilitiesKHR.java | 2 +- .../vulkan/VkSwapchainCreateInfoKHR.java | 10 +- .../vulkan/VkSwapchainPresentModeInfoEXT.java | 7 +- .../VkSwapchainPresentModesCreateInfoEXT.java | 1 + .../VkTraceRaysIndirectCommand2KHR.java | 8 +- .../VkVertexInputBindingDescription2EXT.java | 2 +- .../VkVideoDecodeAV1ProfileInfoKHR.java | 2 +- .../VkVideoEncodeH264RateControlInfoKHR.java | 4 +- ...ideoEncodeH264RateControlLayerInfoKHR.java | 6 +- ...VkVideoEncodeH264SessionCreateInfoKHR.java | 2 +- ...EncodeH264SessionParametersGetInfoKHR.java | 6 +- .../VkVideoEncodeH265RateControlInfoKHR.java | 4 +- ...ideoEncodeH265RateControlLayerInfoKHR.java | 6 +- ...VkVideoEncodeH265SessionCreateInfoKHR.java | 2 +- ...EncodeH265SessionParametersGetInfoKHR.java | 10 +- .../VkVideoEncodeRateControlInfoKHR.java | 2 +- .../lwjgl/vulkan/VkWriteDescriptorSet.java | 4 +- ...kWriteIndirectExecutionSetPipelineEXT.java | 1 - .../vulkan/src/main/c/vulkan/vulkan_beta.h | 28 +- .../vulkan/src/main/c/vulkan/vulkan_core.h | 240 +++-- .../src/templates/kotlin/vulkan/Custom.kt | 2 +- .../templates/kotlin/vulkan/ExtensionTypes.kt | 648 ++++++++----- .../src/templates/kotlin/vulkan/VKTypes.kt | 106 ++- .../vulkan/templates/AMDX_shader_enqueue.kt | 100 +- .../vulkan/templates/AMD_buffer_marker.kt | 88 ++ .../templates/AMD_gpu_shader_half_float.kt | 2 +- .../vulkan/templates/AMD_gpu_shader_int16.kt | 2 +- .../templates/AMD_mixed_attachment_samples.kt | 12 + .../templates/AMD_negative_viewport_height.kt | 2 +- .../templates/EXT_acquire_drm_display.kt | 2 +- ..._attachment_feedback_loop_dynamic_state.kt | 6 + .../EXT_attachment_feedback_loop_layout.kt | 6 + .../templates/EXT_depth_clamp_control.kt | 4 +- .../templates/EXT_descriptor_indexing.kt | 2 +- .../EXT_device_generated_commands.kt | 57 +- .../templates/EXT_extended_dynamic_state3.kt | 8 +- .../templates/EXT_fragment_density_map.kt | 14 + .../vulkan/templates/EXT_host_image_copy.kt | 15 - .../vulkan/templates/EXT_image_robustness.kt | 2 +- .../templates/EXT_inline_uniform_block.kt | 4 +- .../vulkan/templates/EXT_mesh_shader.kt | 115 +-- .../kotlin/vulkan/templates/EXT_multi_draw.kt | 74 +- .../vulkan/templates/EXT_opacity_micromap.kt | 2 +- .../EXT_pipeline_creation_cache_control.kt | 2 +- .../EXT_pipeline_creation_feedback.kt | 2 +- .../EXT_present_mode_fifo_latest_ready.kt | 86 ++ .../vulkan/templates/EXT_private_data.kt | 2 +- .../templates/EXT_scalar_block_layout.kt | 2 +- .../templates/EXT_shader_atomic_float.kt | 6 + .../templates/EXT_shader_atomic_float2.kt | 5 + .../EXT_shader_demote_to_helper_invocation.kt | 2 +- .../vulkan/templates/EXT_shader_object.kt | 6 +- .../templates/EXT_subgroup_size_control.kt | 2 +- .../templates/EXT_texel_buffer_alignment.kt | 2 +- .../EXT_texture_compression_astc_hdr.kt | 2 +- .../vulkan/templates/EXT_tooling_info.kt | 2 +- .../templates/EXT_transform_feedback.kt | 37 +- .../HUAWEI_cluster_culling_shader.kt | 76 +- .../vulkan/templates/HUAWEI_hdr_vivid.kt | 76 ++ .../templates/HUAWEI_invocation_mask.kt | 2 +- .../templates/HUAWEI_subpass_shading.kt | 2 +- .../vulkan/templates/KHR_8bit_storage.kt | 2 +- .../templates/KHR_acceleration_structure.kt | 14 +- .../templates/KHR_cooperative_matrix.kt | 4 +- .../vulkan/templates/KHR_copy_commands2.kt | 2 +- .../vulkan/templates/KHR_device_group.kt | 2 +- .../vulkan/templates/KHR_dynamic_rendering.kt | 55 +- .../templates/KHR_format_feature_flags2.kt | 2 +- .../templates/KHR_fragment_shading_rate.kt | 14 + .../vulkan/templates/KHR_maintenance4.kt | 2 +- .../vulkan/templates/KHR_maintenance5.kt | 3 +- .../vulkan/templates/KHR_pipeline_binary.kt | 2 +- .../templates/KHR_ray_tracing_maintenance1.kt | 2 +- .../templates/KHR_ray_tracing_pipeline.kt | 20 +- .../KHR_shader_integer_dot_product.kt | 2 +- .../templates/KHR_shader_non_semantic_info.kt | 2 +- .../KHR_shader_terminate_invocation.kt | 2 +- .../kotlin/vulkan/templates/KHR_surface.kt | 4 +- .../kotlin/vulkan/templates/KHR_swapchain.kt | 2 +- .../vulkan/templates/KHR_synchronization2.kt | 133 +-- .../KHR_zero_initialize_workgroup_memory.kt | 2 +- .../NVX_multiview_per_view_attributes.kt | 12 + .../templates/NV_cooperative_matrix2.kt | 138 +++ .../NV_device_diagnostic_checkpoints.kt | 53 ++ .../templates/NV_device_generated_commands.kt | 49 +- .../templates/NV_framebuffer_mixed_samples.kt | 12 + .../kotlin/vulkan/templates/NV_mesh_shader.kt | 113 +-- .../kotlin/vulkan/templates/NV_ray_tracing.kt | 2 +- .../vulkan/templates/NV_shading_rate_image.kt | 2 +- .../templates/kotlin/vulkan/templates/VK10.kt | 218 +++-- .../templates/kotlin/vulkan/templates/VK11.kt | 4 +- .../templates/kotlin/vulkan/templates/VK12.kt | 78 +- 242 files changed, 5981 insertions(+), 2586 deletions(-) create mode 100644 modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/EXTPresentModeFifoLatestReady.java create mode 100644 modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/HUAWEIHdrVivid.java create mode 100644 modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/NVCooperativeMatrix2.java create mode 100644 modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCooperativeMatrixFlexibleDimensionsPropertiesNV.java create mode 100644 modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkHdrVividDynamicMetadataHUAWEI.java create mode 100644 modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceCooperativeMatrix2FeaturesNV.java create mode 100644 modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceCooperativeMatrix2PropertiesNV.java create mode 100644 modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceHdrVividFeaturesHUAWEI.java create mode 100644 modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.java create mode 100644 modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_present_mode_fifo_latest_ready.kt create mode 100644 modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/HUAWEI_hdr_vivid.kt create mode 100644 modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_cooperative_matrix2.kt diff --git a/doc/notes/3.3.5.md b/doc/notes/3.3.5.md index 1350ef46c5..d723f8316f 100644 --- a/doc/notes/3.3.5.md +++ b/doc/notes/3.3.5.md @@ -30,7 +30,7 @@ This build includes the following changes: - SPIRV-Cross: Updated to 0.64.0 (up from 0.61.0) - stb * Updated `stb_image_resize` to 2.12 (up from 2.09) -- Vulkan: Updated to 1.3.296 (up from 1.3.289) +- Vulkan: Updated to 1.3.301 (up from 1.3.289) * Includes MoltenVK 1.2.11 (up from 1.2.10) #### Improvements diff --git a/modules/lwjgl/core/src/generated/c/org_lwjgl_system_JNI.c b/modules/lwjgl/core/src/generated/c/org_lwjgl_system_JNI.c index bc8ff73c8e..148413b1a2 100644 --- a/modules/lwjgl/core/src/generated/c/org_lwjgl_system_JNI.c +++ b/modules/lwjgl/core/src/generated/c/org_lwjgl_system_JNI.c @@ -4511,6 +4511,10 @@ JNIEXPORT void JNICALL Java_org_lwjgl_system_JNI_callCCCCV__SSSSJ(JNIEnv *__env, UNUSED_PARAMS(__env, clazz) ((void (APIENTRY *) (uint16_t, uint16_t, uint16_t, uint16_t))(uintptr_t)__functionAddress)((uint16_t)param0, (uint16_t)param1, (uint16_t)param2, (uint16_t)param3); } +JNIEXPORT void JNICALL Java_org_lwjgl_system_JNI_callPJJJV__JJJJJ(JNIEnv *__env, jclass clazz, jlong param0, jlong param1, jlong param2, jlong param3, jlong __functionAddress) { + UNUSED_PARAMS(__env, clazz) + ((void (APIENTRY *) (uintptr_t, jlong, jlong, jlong))(uintptr_t)__functionAddress)((uintptr_t)param0, param1, param2, param3); +} JNIEXPORT void JNICALL Java_org_lwjgl_system_JNI_callPJJPV__JJJJJ(JNIEnv *__env, jclass clazz, jlong param0, jlong param1, jlong param2, jlong param3, jlong __functionAddress) { UNUSED_PARAMS(__env, clazz) ((void (APIENTRY *) (uintptr_t, jlong, jlong, uintptr_t))(uintptr_t)__functionAddress)((uintptr_t)param0, param1, param2, (uintptr_t)param3); diff --git a/modules/lwjgl/core/src/generated/java/org/lwjgl/system/JNI.java b/modules/lwjgl/core/src/generated/java/org/lwjgl/system/JNI.java index 874c5f59fc..9751744631 100644 --- a/modules/lwjgl/core/src/generated/java/org/lwjgl/system/JNI.java +++ b/modules/lwjgl/core/src/generated/java/org/lwjgl/system/JNI.java @@ -1165,6 +1165,7 @@ private JNI() {} public static native void callPPPV(long param0, long param1, int param2, int param3, int param4, int param5, int param6, int param7, long param8, int param9, int param10, int param11, int param12, int param13, int param14, int param15, int param16, int param17, long __functionAddress); public static native void callBBBBV(byte param0, byte param1, byte param2, byte param3, long __functionAddress); public static native void callCCCCV(short param0, short param1, short param2, short param3, long __functionAddress); + public static native void callPJJJV(long param0, long param1, long param2, long param3, long __functionAddress); public static native void callPJJPV(long param0, long param1, long param2, long param3, long __functionAddress); public static native void callPJPPV(long param0, long param1, long param2, long param3, long __functionAddress); public static native void callPPPNV(long param0, long param1, long param2, long param3, long __functionAddress); diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/AMDBufferMarker.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/AMDBufferMarker.java index 8a9bee3d45..bab2c85d7a 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/AMDBufferMarker.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/AMDBufferMarker.java @@ -28,6 +28,11 @@ *
180
*
Revision
*
1
+ *
API Interactions
+ *
*
Special Use
*
@@ -718,7 +737,7 @@ public static void nvkCmdDispatchGraphIndirectAMDX(VkCommandBuffer commandBuffer * * * - * + * *
Command Buffer LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
PrimaryOutsideOutsideGraphics ComputeAction
PrimaryBothOutsideGraphics ComputeAction
* *
See Also
@@ -726,11 +745,12 @@ public static void nvkCmdDispatchGraphIndirectAMDX(VkCommandBuffer commandBuffer *

{@link VkDispatchGraphCountInfoAMDX}

* * @param commandBuffer the command buffer into which the command will be recorded. - * @param scratch a pointer to the scratch memory to be used. + * @param scratch the address of scratch memory to be used. + * @param scratchSize a range in bytes of scratch memory to be used. * @param pCountInfo a host pointer to a {@link VkDispatchGraphCountInfoAMDX} structure defining the nodes which will be initially executed. */ - public static void vkCmdDispatchGraphIndirectAMDX(VkCommandBuffer commandBuffer, @NativeType("VkDeviceAddress") long scratch, @NativeType("VkDispatchGraphCountInfoAMDX const *") VkDispatchGraphCountInfoAMDX pCountInfo) { - nvkCmdDispatchGraphIndirectAMDX(commandBuffer, scratch, pCountInfo.address()); + public static void vkCmdDispatchGraphIndirectAMDX(VkCommandBuffer commandBuffer, @NativeType("VkDeviceAddress") long scratch, @NativeType("VkDeviceSize") long scratchSize, @NativeType("VkDispatchGraphCountInfoAMDX const *") VkDispatchGraphCountInfoAMDX pCountInfo) { + nvkCmdDispatchGraphIndirectAMDX(commandBuffer, scratch, scratchSize, pCountInfo.address()); } // --- [ vkCmdDispatchGraphIndirectCountAMDX ] --- @@ -746,6 +766,7 @@ public static void vkCmdDispatchGraphIndirectAMDX(VkCommandBuffer commandBuffer, * void vkCmdDispatchGraphIndirectCountAMDX( * VkCommandBuffer commandBuffer, * VkDeviceAddress scratch, + * VkDeviceSize scratchSize, * VkDeviceAddress countInfo); * *
Description
@@ -754,7 +775,7 @@ public static void vkCmdDispatchGraphIndirectAMDX(VkCommandBuffer commandBuffer, * *

For this command, all pointers in substructures are treated as device pointers and read during device execution of this command. The allocation and contents of these pointers only needs to be valid during device execution. All of these addresses will be read in the {@link VK13#VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT PIPELINE_STAGE_2_COMPUTE_SHADER_BIT} pipeline stage with the {@link VK13#VK_ACCESS_2_SHADER_STORAGE_READ_BIT ACCESS_2_SHADER_STORAGE_READ_BIT} access flag.

* - *

Execution of this command may modify any memory locations in the range [{@code scratch},{@code scratch} + {@code size}), where {@code size} is the value returned in {@link VkExecutionGraphPipelineScratchSizeAMDX}{@code ::size} by {@link VkExecutionGraphPipelineScratchSizeAMDX} for the currently bound execution graph pipeline. Accesses to this memory range are performed in the {@link VK13#VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT PIPELINE_STAGE_2_COMPUTE_SHADER_BIT} pipeline stage with the {@link VK13#VK_ACCESS_2_SHADER_STORAGE_READ_BIT ACCESS_2_SHADER_STORAGE_READ_BIT} and {@link VK13#VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT ACCESS_2_SHADER_STORAGE_WRITE_BIT} access flags.

+ *

Execution of this command may modify any memory locations in the range [{@code scratch},{@code scratch} + {@code scratchSize}). Accesses to this memory range are performed in the {@link VK13#VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT PIPELINE_STAGE_2_COMPUTE_SHADER_BIT} pipeline stage with the {@link VK13#VK_ACCESS_2_SHADER_STORAGE_READ_BIT ACCESS_2_SHADER_STORAGE_READ_BIT} and {@link VK13#VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT ACCESS_2_SHADER_STORAGE_WRITE_BIT} access flags.

* *
Valid Usage
* @@ -796,7 +817,7 @@ public static void vkCmdDispatchGraphIndirectAMDX(VkCommandBuffer commandBuffer, *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type {@link VK10#VK_IMAGE_VIEW_TYPE_3D IMAGE_VIEW_TYPE_3D}, {@link VK10#VK_IMAGE_VIEW_TYPE_CUBE IMAGE_VIEW_TYPE_CUBE}, {@link VK10#VK_IMAGE_VIEW_TYPE_1D_ARRAY IMAGE_VIEW_TYPE_1D_ARRAY}, {@link VK10#VK_IMAGE_VIEW_TYPE_2D_ARRAY IMAGE_VIEW_TYPE_2D_ARRAY} or {@link VK10#VK_IMAGE_VIEW_TYPE_CUBE_ARRAY IMAGE_VIEW_TYPE_CUBE_ARRAY}, in any shader stage
  • *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
  • *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
  • - *
  • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and {@link VK10#VK_NULL_HANDLE NULL_HANDLE} shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • + *
  • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and {@link VK10#VK_NULL_HANDLE NULL_HANDLE} shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • *
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT} or {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT} for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • *
  • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • *
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT} or {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT} for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • @@ -830,12 +851,14 @@ public static void vkCmdDispatchGraphIndirectAMDX(VkCommandBuffer commandBuffer, *
  • If a descriptor with type equal to any of {@link QCOMImageProcessing#VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM}, {@link QCOMImageProcessing#VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM}, {@link VK10#VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE DESCRIPTOR_TYPE_SAMPLED_IMAGE}, {@link VK10#VK_DESCRIPTOR_TYPE_STORAGE_IMAGE DESCRIPTOR_TYPE_STORAGE_IMAGE}, or {@link VK10#VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT DESCRIPTOR_TYPE_INPUT_ATTACHMENT} is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
  • *
  • {@code commandBuffer} must not be a protected command buffer
  • *
  • {@code commandBuffer} must be a primary command buffer
  • - *
  • {@code scratch} must be the device address of an allocated memory range at least as large as the value of {@link VkExecutionGraphPipelineScratchSizeAMDX}{@code ::size} returned by {@link VkExecutionGraphPipelineScratchSizeAMDX} for the currently bound execution graph pipeline
  • + *
  • {@code scratch} must be the device address of an allocated memory range at least as large as {@code scratchSize}
  • + *
  • {@code scratchSize} must be greater than or equal to {@link VkExecutionGraphPipelineScratchSizeAMDX}{@code ::minSize} returned by {@link #vkGetExecutionGraphPipelineScratchSizeAMDX GetExecutionGraphPipelineScratchSizeAMDX} for the currently bound execution graph pipeline
  • *
  • {@code scratch} must be a device address within a {@code VkBuffer} created with the {@link #VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX} or {@link #VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX} flag
  • - *
  • Device memory in the range [{@code scratch},{@code scratch} {@link VkExecutionGraphPipelineScratchSizeAMDX}{@code ::size}) must have been initialized with {@link #vkCmdInitializeGraphScratchMemoryAMDX CmdInitializeGraphScratchMemoryAMDX} using the currently bound execution graph pipeline, and not modified after that by anything other than another execution graph dispatch command
  • + *
  • The device memory range [{@code scratch},{@code scratch} {@code scratchSize}] must have been initialized with {@link #vkCmdInitializeGraphScratchMemoryAMDX CmdInitializeGraphScratchMemoryAMDX} using the currently bound execution graph pipeline, and not modified after that by anything other than another execution graph dispatch command
  • *
  • Execution of this command must not cause a node to be dispatched with a larger number of workgroups than that specified by either a {@code MaxNumWorkgroupsAMDX} decoration in the dispatched node or {@code maxComputeWorkGroupCount}
  • *
  • Execution of this command must not cause any shader to initialize more than {@code maxExecutionGraphShaderPayloadCount} output payloads
  • *
  • Execution of this command must not cause any shader that declares {@code NodeMaxPayloadsAMDX} to initialize more output payloads than specified by the max number of payloads for that decoration. This requirement applies to each {@code NodeMaxPayloadsAMDX} decoration separately
  • + *
  • If the currently bound execution graph pipeline includes draw nodes, this command must be called within a render pass instance that is compatible with the graphics pipeline used to create each of those nodes
  • *
  • {@code countInfo} must be a device pointer to a memory allocation containing a valid {@link VkDispatchGraphCountInfoAMDX} structure when this command is executed on the device
  • *
  • {@code countInfo} must be a device address within a {@code VkBuffer} created with the {@link VK10#VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT BUFFER_USAGE_INDIRECT_BUFFER_BIT} flag
  • *
  • {@code countInfo} must be a multiple of {@code executionGraphDispatchAddressAlignment}
  • @@ -856,7 +879,6 @@ public static void vkCmdDispatchGraphIndirectAMDX(VkCommandBuffer commandBuffer, *
  • {@code commandBuffer} must be a valid {@code VkCommandBuffer} handle
  • *
  • {@code commandBuffer} must be in the recording state
  • *
  • The {@code VkCommandPool} that {@code commandBuffer} was allocated from must support graphics, or compute operations
  • - *
  • This command must only be called outside of a render pass instance
  • *
  • This command must only be called outside of a video coding scope
  • *
  • {@code commandBuffer} must be a primary {@code VkCommandBuffer}
  • * @@ -871,19 +893,20 @@ public static void vkCmdDispatchGraphIndirectAMDX(VkCommandBuffer commandBuffer, * * * - * + * *
    Command Buffer LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
    PrimaryOutsideOutsideGraphics ComputeAction
    PrimaryBothOutsideGraphics ComputeAction
    * * @param commandBuffer the command buffer into which the command will be recorded. - * @param scratch a pointer to the scratch memory to be used. + * @param scratch the address of scratch memory to be used. + * @param scratchSize a range in bytes of scratch memory to be used. * @param countInfo a device address of a {@link VkDispatchGraphCountInfoAMDX} structure defining the nodes which will be initially executed. */ - public static void vkCmdDispatchGraphIndirectCountAMDX(VkCommandBuffer commandBuffer, @NativeType("VkDeviceAddress") long scratch, @NativeType("VkDeviceAddress") long countInfo) { + public static void vkCmdDispatchGraphIndirectCountAMDX(VkCommandBuffer commandBuffer, @NativeType("VkDeviceAddress") long scratch, @NativeType("VkDeviceSize") long scratchSize, @NativeType("VkDeviceAddress") long countInfo) { long __functionAddress = commandBuffer.getCapabilities().vkCmdDispatchGraphIndirectCountAMDX; if (CHECKS) { check(__functionAddress); } - callPJJV(commandBuffer.address(), scratch, countInfo, __functionAddress); + callPJJJV(commandBuffer.address(), scratch, scratchSize, countInfo, __functionAddress); } /** Array version of: {@link #vkCreateExecutionGraphPipelinesAMDX CreateExecutionGraphPipelinesAMDX} */ diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/EXTAcquireDrmDisplay.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/EXTAcquireDrmDisplay.java index 7f1decf568..43bd5ca81c 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/EXTAcquireDrmDisplay.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/EXTAcquireDrmDisplay.java @@ -140,7 +140,7 @@ public static int nvkGetDrmDisplayEXT(VkPhysicalDevice physicalDevice, int drmFd * *
    Description
    * - *

    If there is no {@code VkDisplayKHR} corresponding to the {@code connectorId} on the {@code physicalDevice}, the returning {@code display} must be set to {@link VK10#VK_NULL_HANDLE NULL_HANDLE}. The provided {@code drmFd} must correspond to the one owned by the {@code physicalDevice}. If not, the error code {@link VK10#VK_ERROR_UNKNOWN ERROR_UNKNOWN} must be returned. Master permissions are not required, because the file descriptor is just used for information gathering purposes. The given {@code connectorId} must be a resource owned by the provided {@code drmFd}. If not, the error code {@link VK10#VK_ERROR_UNKNOWN ERROR_UNKNOWN} must be returned. If any error is encountered during the identification of the display, the call must return the error code {@link VK10#VK_ERROR_INITIALIZATION_FAILED ERROR_INITIALIZATION_FAILED}.

    + *

    If there is no {@code VkDisplayKHR} corresponding to the {@code connectorId} on the {@code physicalDevice}, the returning {@code display} must be {@link VK10#VK_NULL_HANDLE NULL_HANDLE}. The provided {@code drmFd} must correspond to the one owned by the {@code physicalDevice}. If not, the error code {@link VK10#VK_ERROR_UNKNOWN ERROR_UNKNOWN} must be returned. Master permissions are not required, because the file descriptor is just used for information gathering purposes. The given {@code connectorId} must be a resource owned by the provided {@code drmFd}. If not, the error code {@link VK10#VK_ERROR_UNKNOWN ERROR_UNKNOWN} must be returned. If any error is encountered during the identification of the display, the call must return the error code {@link VK10#VK_ERROR_INITIALIZATION_FAILED ERROR_INITIALIZATION_FAILED}.

    * *
    Valid Usage (Implicit)
    * diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/EXTAttachmentFeedbackLoopDynamicState.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/EXTAttachmentFeedbackLoopDynamicState.java index 5f6f5b8cbd..5239ec215b 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/EXTAttachmentFeedbackLoopDynamicState.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/EXTAttachmentFeedbackLoopDynamicState.java @@ -24,6 +24,11 @@ *
    1
    *
    Extension and Version Dependencies
    *
    {@link KHRGetPhysicalDeviceProperties2 VK_KHR_get_physical_device_properties2} or Version 1.1 and {@link EXTAttachmentFeedbackLoopLayout VK_EXT_attachment_feedback_loop_layout}
    + *
    Special Uses
    + *
    *
    Contact
    *
    * @@ -524,7 +529,7 @@ public static void nvkCmdExecuteGeneratedCommandsEXT(VkCommandBuffer commandBuff *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type {@link VK10#VK_IMAGE_VIEW_TYPE_3D IMAGE_VIEW_TYPE_3D}, {@link VK10#VK_IMAGE_VIEW_TYPE_CUBE IMAGE_VIEW_TYPE_CUBE}, {@link VK10#VK_IMAGE_VIEW_TYPE_1D_ARRAY IMAGE_VIEW_TYPE_1D_ARRAY}, {@link VK10#VK_IMAGE_VIEW_TYPE_2D_ARRAY IMAGE_VIEW_TYPE_2D_ARRAY} or {@link VK10#VK_IMAGE_VIEW_TYPE_CUBE_ARRAY IMAGE_VIEW_TYPE_CUBE_ARRAY}, in any shader stage
  • *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
  • *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
  • - *
  • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and {@link VK10#VK_NULL_HANDLE NULL_HANDLE} shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • + *
  • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and {@link VK10#VK_NULL_HANDLE NULL_HANDLE} shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • *
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT} or {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT} for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • *
  • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • *
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT} or {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT} for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • @@ -629,6 +634,7 @@ public static void nvkCmdExecuteGeneratedCommandsEXT(VkCommandBuffer commandBuff *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK10#VK_DYNAMIC_STATE_STENCIL_REFERENCE DYNAMIC_STATE_STENCIL_REFERENCE} dynamic state enabled, the current value of and {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, the current value of {@code stencilTestEnable} is {@link VK10#VK_TRUE TRUE}, then {@link VK10#vkCmdSetStencilReference CmdSetStencilReference} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to {@link VkPhysicalDeviceMultiviewProperties}{@code ::maxMultiviewInstanceIndex}
  • *
  • If the bound graphics pipeline was created with {@link VkPipelineSampleLocationsStateCreateInfoEXT}{@code ::sampleLocationsEnable} set to {@link VK10#VK_TRUE TRUE} and the current subpass has a depth/stencil attachment, then that attachment must have been created with the {@link EXTSampleLocations#VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT} bit set
  • + *
  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetSampleLocationsEnableEXT CmdSetSampleLocationsEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTSampleLocations#VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, and the current value of {@code sampleLocationsEnable} is {@link VK10#VK_TRUE TRUE}, then {@link EXTSampleLocations#vkCmdSetSampleLocationsEXT CmdSetSampleLocationsEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_CULL_MODE DYNAMIC_STATE_CULL_MODE} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, then {@link VK13#vkCmdSetCullMode CmdSetCullMode} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_FRONT_FACE DYNAMIC_STATE_FRONT_FACE} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, then {@link VK13#vkCmdSetFrontFace CmdSetFrontFace} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • @@ -638,10 +644,9 @@ public static void nvkCmdExecuteGeneratedCommandsEXT(VkCommandBuffer commandBuff *
  • If the {@code depthBounds} feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, then {@link VK13#vkCmdSetDepthBoundsTestEnable CmdSetDepthBoundsTestEnable} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE DYNAMIC_STATE_STENCIL_TEST_ENABLE} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, then {@link VK13#vkCmdSetStencilTestEnable CmdSetStencilTestEnable} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_STENCIL_OP DYNAMIC_STATE_STENCIL_OP} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, the current value of {@code stencilTestEnable} is {@link VK10#VK_TRUE TRUE}, then {@link VK13#vkCmdSetStencilOp CmdSetStencilOp} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the bound graphics pipeline state was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic state enabled, but not the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} dynamic state enabled, then {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount} must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@link VkPipelineViewportStateCreateInfo}{@code ::scissorCount} of the pipeline
  • - *
  • If the bound graphics pipeline state was created with the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} dynamic state enabled, but not the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic state enabled, then {@link VK13#vkCmdSetScissorWithCount CmdSetScissorWithCount} must have been called in the current command buffer prior to this drawing command, and the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount} must match the {@link VkPipelineViewportStateCreateInfo}{@code ::viewportCount} of the pipeline
  • - *
  • If the bound graphics pipeline state was created with both the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} and {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic states enabled then both {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount} and {@link VK13#vkCmdSetScissorWithCount CmdSetScissorWithCount} must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
  • - *
  • If a shader object is bound to any graphics stage, then both {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount} and {@link VK13#vkCmdSetScissorWithCount CmdSetScissorWithCount} must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
  • + *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic state enabled, and the state is not inherited, then {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} dynamic state enabled, and the state is not inherited, then {@link VK13#vkCmdSetScissorWithCount CmdSetScissorWithCount} must have been called and not subsequently invalidated in the current command buffer prior to this drawing
  • + *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with both the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} and {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic states enabled, and the state is not inherited, then the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
  • *
  • If the bound graphics pipeline state was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic state enabled, but not the {@link NVClipSpaceWScaling#VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV DYNAMIC_STATE_VIEWPORT_W_SCALING_NV} dynamic state enabled, then the bound graphics pipeline must have been created with {@link VkPipelineViewportWScalingStateCreateInfoNV}{@code ::viewportCount} greater or equal to the {@code viewportCount} parameter in the last call to {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount}
  • *
  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} and {@link NVClipSpaceWScaling#VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV DYNAMIC_STATE_VIEWPORT_W_SCALING_NV} dynamic state enabled, the current value of {@code viewportWScalingEnable} is {@link VK10#VK_TRUE TRUE}, then {@link NVClipSpaceWScaling#vkCmdSetViewportWScalingNV CmdSetViewportWScalingNV} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} and {@link NVClipSpaceWScaling#VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV DYNAMIC_STATE_VIEWPORT_W_SCALING_NV} dynamic state enabled, the current value of {@code viewportWScalingEnable} is {@link VK10#VK_TRUE TRUE}, then the {@code viewportCount} parameter in the last call to {@link NVClipSpaceWScaling#vkCmdSetViewportWScalingNV CmdSetViewportWScalingNV} must be greater than or equal to the {@code viewportCount} parameter in the last call to {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount}
  • @@ -707,19 +712,17 @@ public static void nvkCmdExecuteGeneratedCommandsEXT(VkCommandBuffer commandBuff *
  • If the bound graphics pipeline state was created with the {@link EXTColorWriteEnable#VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT} dynamic state enabled then the {@code attachmentCount} parameter of {@code vkCmdSetColorWriteEnableEXT} must be greater than or equal to the {@link VkPipelineColorBlendStateCreateInfo}{@code ::attachmentCount} of the currently bound graphics pipeline
  • *
  • If the {@code colorWriteEnable} feature is enabled on the device, and a shader object is bound to the {@link VK10#VK_SHADER_STAGE_FRAGMENT_BIT SHADER_STAGE_FRAGMENT_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, then the {@code attachmentCount} parameter of most recent call to {@code vkCmdSetColorWriteEnableEXT} in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
  • *
  • If the bound graphics pipeline state was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_EXT} dynamic state enabled then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEXT CmdSetDiscardRectangleEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in {@link VkPipelineDiscardRectangleStateCreateInfoEXT}{@code ::discardRectangleCount}
  • - *
  • If the bound graphics pipeline state was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT} dynamic state enabled then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, and the current value of {@code discardRectangleEnable} is {@link VK10#VK_TRUE TRUE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleModeEXT CmdSetDiscardRectangleModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} in the current command buffer set {@code discardRectangleEnable} to {@link VK10#VK_TRUE TRUE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEXT CmdSetDiscardRectangleEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the bound graphics pipeline state was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT} dynamic state enabled then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleModeEXT CmdSetDiscardRectangleModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} in the current command buffer set {@code discardRectangleEnable} to {@link VK10#VK_TRUE TRUE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleModeEXT CmdSetDiscardRectangleModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView} was {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the value of {@link VkPipelineRenderingCreateInfo}{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to {@link VK10#VK_FORMAT_UNDEFINED FORMAT_UNDEFINED}
  • *
  • If current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the value of {@link VkPipelineRenderingCreateInfo}{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView}
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is enabled, {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, and the value of {@link VkPipelineRenderingCreateInfo}{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView}, the value of the format must be {@link VK10#VK_FORMAT_UNDEFINED FORMAT_UNDEFINED}
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView} was {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the value of {@link VkPipelineRenderingCreateInfo}{@code ::stencilAttachmentFormat} used to create the currently bound graphics pipeline must be equal to {@link VK10#VK_FORMAT_UNDEFINED FORMAT_UNDEFINED}
  • *
  • If current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the value of {@link VkPipelineRenderingCreateInfo}{@code ::stencilAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView}
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is enabled, {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, and the value of {@link VkPipelineRenderingCreateInfo}{@code ::stencilAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView}, the value of the format must be {@link VK10#VK_FORMAT_UNDEFINED FORMAT_UNDEFINED}
  • - *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} and {@link VkRenderingFragmentShadingRateAttachmentInfoKHR}{@code ::imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the currently bound graphics pipeline must have been created with {@link KHRDynamicRendering#VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR}
  • - *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} and {@link VkRenderingFragmentDensityMapAttachmentInfoEXT}{@code ::imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the currently bound graphics pipeline must have been created with {@link KHRDynamicRendering#VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT}
  • + *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} and {@link VkRenderingFragmentShadingRateAttachmentInfoKHR}{@code ::imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the currently bound graphics pipeline must have been created with {@link KHRFragmentShadingRate#VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR}
  • + *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} and {@link VkRenderingFragmentDensityMapAttachmentInfoEXT}{@code ::imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the currently bound graphics pipeline must have been created with {@link EXTFragmentDensityMap#VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT}
  • *
  • If the currently bound pipeline was created with a {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} structure, and the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} with a {@link VkRenderingInfo}{@code ::colorAttachmentCount} parameter greater than 0, then each element of the {@link VkRenderingInfo}{@code ::pColorAttachments} array with a {@code imageView} not equal to {@link VK10#VK_NULL_HANDLE NULL_HANDLE} must have been created with a sample count equal to the corresponding element of the {@code pColorAttachmentSamples} member of {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} used to create the currently bound graphics pipeline
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the currently bound pipeline was created with a {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} structure, and {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the value of the {@code depthStencilAttachmentSamples} member of {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} used to create the currently bound graphics pipeline must be equal to the sample count used to create {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView}
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the currently bound pipeline was created with a {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} structure, and {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the value of the {@code depthStencilAttachmentSamples} member of {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} used to create the currently bound graphics pipeline must be equal to the sample count used to create {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView}
  • @@ -753,21 +756,18 @@ public static void nvkCmdExecuteGeneratedCommandsEXT(VkCommandBuffer commandBuff *
  • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetConservativeRasterizationModeEXT CmdSetConservativeRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, and the current value of {@code conservativeRasterizationMode} is {@link EXTConservativeRasterization#VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT}, then {@link EXTShaderObject#vkCmdSetExtraPrimitiveOverestimationSizeEXT CmdSetExtraPrimitiveOverestimationSizeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@code depthClipEnable} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT} dynamic state, then {@link EXTShaderObject#vkCmdSetDepthClipEnableEXT CmdSetDepthClipEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetSampleLocationsEnableEXT CmdSetSampleLocationsEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetSampleLocationsEnableEXT CmdSetSampleLocationsEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetColorBlendAdvancedEXT CmdSetColorBlendAdvancedEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTBlendOperationAdvanced VK_EXT_blend_operation_advanced} extension is enabled, and a shader object is bound to the {@link VK10#VK_SHADER_STAGE_FRAGMENT_BIT SHADER_STAGE_FRAGMENT_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, then at least one of {@link EXTShaderObject#vkCmdSetColorBlendEquationEXT CmdSetColorBlendEquationEXT} and {@link EXTShaderObject#vkCmdSetColorBlendAdvancedEXT CmdSetColorBlendAdvancedEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTProvokingVertex VK_EXT_provoking_vertex} extension is enabled, a shader object is bound to the {@link VK10#VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetProvokingVertexModeEXT CmdSetProvokingVertexModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetPolygonModeEXT CmdSetPolygonModeEXT} in the current command buffer set {@code polygonMode} to {@link VK10#VK_POLYGON_MODE_LINE POLYGON_MODE_LINE}, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the {@link VK10#VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link VK13#vkCmdSetPrimitiveTopology CmdSetPrimitiveTopology} in the current command buffer set {@code primitiveTopology} to any line topology, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the {@link VK10#VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT SHADER_STAGE_TESSELLATION_EVALUATION_BIT} or {@link VK10#VK_SHADER_STAGE_GEOMETRY_BIT SHADER_STAGE_GEOMETRY_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetPolygonModeEXT CmdSetPolygonModeEXT} in the current command buffer set {@code polygonMode} to {@link VK10#VK_POLYGON_MODE_LINE POLYGON_MODE_LINE}, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the {@link VK10#VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link VK13#vkCmdSetPrimitiveTopology CmdSetPrimitiveTopology} in the current command buffer set {@code primitiveTopology} to any line topology, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the {@link VK10#VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT SHADER_STAGE_TESSELLATION_EVALUATION_BIT} or {@link VK10#VK_SHADER_STAGE_GEOMETRY_BIT SHADER_STAGE_GEOMETRY_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetPolygonModeEXT CmdSetPolygonModeEXT} in the current command buffer set {@code polygonMode} to {@link VK10#VK_POLYGON_MODE_LINE POLYGON_MODE_LINE}, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the {@link VK10#VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link VK13#vkCmdSetPrimitiveTopology CmdSetPrimitiveTopology} in the current command buffer set {@code primitiveTopology} to any line topology, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the {@link VK10#VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT SHADER_STAGE_TESSELLATION_EVALUATION_BIT} or {@link VK10#VK_SHADER_STAGE_GEOMETRY_BIT SHADER_STAGE_GEOMETRY_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the bound graphics pipeline state was created with the {@link KHRLineRasterization#VK_DYNAMIC_STATE_LINE_STIPPLE_KHR DYNAMIC_STATE_LINE_STIPPLE_KHR} dynamic state enabled then {@link KHRLineRasterization#vkCmdSetLineStippleKHR CmdSetLineStippleKHR} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} in the current command buffer set {@code stippledLineEnable} to {@link VK10#VK_TRUE TRUE}, then {@link EXTLineRasterization#vkCmdSetLineStippleEXT CmdSetLineStippleEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetPolygonModeEXT CmdSetPolygonModeEXT} in the current command buffer set {@code polygonMode} to {@link VK10#VK_POLYGON_MODE_LINE POLYGON_MODE_LINE}, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the {@link VK10#VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link VK13#vkCmdSetPrimitiveTopology CmdSetPrimitiveTopology} in the current command buffer set {@code primitiveTopology} to any line topology, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the {@link VK10#VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT SHADER_STAGE_TESSELLATION_EVALUATION_BIT} or {@link VK10#VK_SHADER_STAGE_GEOMETRY_BIT SHADER_STAGE_GEOMETRY_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled and a shader object is bound to any graphics stage, or a bound graphics pipeline state was created with the {@link KHRLineRasterization#VK_DYNAMIC_STATE_LINE_STIPPLE_KHR DYNAMIC_STATE_LINE_STIPPLE_KHR} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, and the current value of {@code stippledLineEnable} is {@link VK10#VK_TRUE TRUE}, then {@link KHRLineRasterization#vkCmdSetLineStippleKHR CmdSetLineStippleKHR} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@code depthClipControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT} dynamic state enabled, then {@link EXTShaderObject#vkCmdSetDepthClipNegativeOneToOneEXT CmdSetDepthClipNegativeOneToOneEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@code depthClampControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTDepthClampControl#VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT} dynamic state enabled, and the current value of {@code depthClampEnable} is {@link VK10#VK_TRUE TRUE}, then {@link EXTShaderObject#vkCmdSetDepthClampRangeEXT CmdSetDepthClampRangeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV} dynamic state enabled, then {@link EXTShaderObject#vkCmdSetViewportWScalingEnableNV CmdSetViewportWScalingEnableNV} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • @@ -785,7 +785,7 @@ public static void nvkCmdExecuteGeneratedCommandsEXT(VkCommandBuffer commandBuff *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the {@code rasterizationSamples} in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT} must follow the rules for a zero-attachment subpass
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_SAMPLE_MASK_EXT DYNAMIC_STATE_SAMPLE_MASK_EXT} state enabled and the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state disabled, then the {@code samples} parameter in the last call to {@link EXTShaderObject#vkCmdSetSampleMaskEXT CmdSetSampleMaskEXT} must be greater or equal to the {@link VkPipelineMultisampleStateCreateInfo}{@code ::rasterizationSamples} parameter used to create the bound graphics pipeline
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_SAMPLE_MASK_EXT DYNAMIC_STATE_SAMPLE_MASK_EXT} state and {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} states enabled, then the {@code samples} parameter in the last call to {@link EXTShaderObject#vkCmdSetSampleMaskEXT CmdSetSampleMaskEXT} must be greater or equal to the {@code rasterizationSamples} parameter in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT}
  • - *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT} must be the same as the current subpass color and/or depth/stencil attachments
  • + *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state enabled, and the {@code multisampledRenderToSingleSampled} feature is not enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT} must be the same as the current subpass color and/or depth/stencil attachments
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a {@link VkMultisampledRenderToSingleSampledInfoEXT} structure with {@code multisampledRenderToSingleSampledEnable} equal to {@link VK10#VK_TRUE TRUE}, then the {@code rasterizationSamples} in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT} must be the same as the {@code rasterizationSamples} member of that structure
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetColorBlendEnableEXT CmdSetColorBlendEnableEXT} must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
  • *
  • If a shader object is bound to the {@link VK10#VK_SHADER_STAGE_FRAGMENT_BIT SHADER_STAGE_FRAGMENT_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetColorBlendEnableEXT CmdSetColorBlendEnableEXT} must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
  • @@ -850,11 +850,12 @@ public static void nvkCmdExecuteGeneratedCommandsEXT(VkCommandBuffer commandBuff * * * @@ -939,7 +940,7 @@ public static int nvkCreateIndirectCommandsLayoutEXT(VkDevice device, long pCrea *
    Valid Usage
    * * * *
    Valid Usage (Implicit)
    @@ -1069,7 +1070,7 @@ public static int nvkCreateIndirectExecutionSetEXT(VkDevice device, long pCreate *
    Valid Usage
    * * * *
    Valid Usage (Implicit)
    diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/EXTExtendedDynamicState3.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/EXTExtendedDynamicState3.java index b9f824c2ab..2913074adc 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/EXTExtendedDynamicState3.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/EXTExtendedDynamicState3.java @@ -46,6 +46,12 @@ *
  • Interacts with VK_NV_representative_fragment_test
  • *
  • Interacts with VK_NV_shading_rate_image
  • *
  • Interacts with VK_NV_viewport_swizzle
  • + *
  • Interacts with VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3AlphaToOneEnable
  • + *
  • Interacts with VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3DepthClampEnable
  • + *
  • Interacts with VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3LogicOpEnable
  • + *
  • Interacts with VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3PolygonMode
  • + *
  • Interacts with VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3TessellationDomainOrigin
  • + *
  • Interacts with VkPhysicalDeviceMeshShaderFeaturesEXT::extendedDynamicState3RasterizationStream
  • *
    *
    Contact
    *
    * *
    Valid Usage (Implicit)
    diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/NVFramebufferMixedSamples.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/NVFramebufferMixedSamples.java index 05e14c7c6f..117be47329 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/NVFramebufferMixedSamples.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/NVFramebufferMixedSamples.java @@ -28,6 +28,11 @@ *
    153
    *
    Revision
    *
    1
    + *
    API Interactions
    + *
    *
    Contact
    *
    * * * * * * * diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/NVRayTracing.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/NVRayTracing.java index 60c6108aea..5e789f6a2a 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/NVRayTracing.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/NVRayTracing.java @@ -853,7 +853,7 @@ public static void vkCmdCopyAccelerationStructureNV(VkCommandBuffer commandBuffe *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type {@link VK10#VK_IMAGE_VIEW_TYPE_3D IMAGE_VIEW_TYPE_3D}, {@link VK10#VK_IMAGE_VIEW_TYPE_CUBE IMAGE_VIEW_TYPE_CUBE}, {@link VK10#VK_IMAGE_VIEW_TYPE_1D_ARRAY IMAGE_VIEW_TYPE_1D_ARRAY}, {@link VK10#VK_IMAGE_VIEW_TYPE_2D_ARRAY IMAGE_VIEW_TYPE_2D_ARRAY} or {@link VK10#VK_IMAGE_VIEW_TYPE_CUBE_ARRAY IMAGE_VIEW_TYPE_CUBE_ARRAY}, in any shader stage
  • *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
  • *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
  • - *
  • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and {@link VK10#VK_NULL_HANDLE NULL_HANDLE} shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • + *
  • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and {@link VK10#VK_NULL_HANDLE NULL_HANDLE} shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • *
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT} or {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT} for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • *
  • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • *
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT} or {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT} for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/NVShadingRateImage.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/NVShadingRateImage.java index e9443519c0..abb8f4b043 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/NVShadingRateImage.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/NVShadingRateImage.java @@ -240,7 +240,7 @@ protected NVShadingRateImage() { * * * @param commandBuffer the command buffer into which the command will be recorded. - * @param imageView an image view handle specifying the shading rate image. {@code imageView} may be set to {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, which is equivalent to specifying a view of an image filled with zero values. + * @param imageView an image view handle specifying the shading rate image. {@code imageView} may be {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, which is equivalent to specifying a view of an image filled with zero values. * @param imageLayout the layout that the image subresources accessible from {@code imageView} will be in when the shading rate image is accessed. */ public static void vkCmdBindShadingRateImageNV(VkCommandBuffer commandBuffer, @NativeType("VkImageView") long imageView, @NativeType("VkImageLayout") int imageLayout) { diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/NVXMultiviewPerViewAttributes.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/NVXMultiviewPerViewAttributes.java index 5843bf1a24..18ac631ead 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/NVXMultiviewPerViewAttributes.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/NVXMultiviewPerViewAttributes.java @@ -47,6 +47,11 @@ *
    1
    *
    Extension and Version Dependencies
    *
    {@link KHRMultiview VK_KHR_multiview} or Version 1.1
    + *
    API Interactions
    + *
    *
    SPIR-V Dependencies
    *
    * @@ -11805,7 +11880,7 @@ public static void vkCmdDraw(VkCommandBuffer commandBuffer, @NativeType("uint32_ *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type {@link #VK_IMAGE_VIEW_TYPE_3D IMAGE_VIEW_TYPE_3D}, {@link #VK_IMAGE_VIEW_TYPE_CUBE IMAGE_VIEW_TYPE_CUBE}, {@link #VK_IMAGE_VIEW_TYPE_1D_ARRAY IMAGE_VIEW_TYPE_1D_ARRAY}, {@link #VK_IMAGE_VIEW_TYPE_2D_ARRAY IMAGE_VIEW_TYPE_2D_ARRAY} or {@link #VK_IMAGE_VIEW_TYPE_CUBE_ARRAY IMAGE_VIEW_TYPE_CUBE_ARRAY}, in any shader stage
  • *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
  • *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
  • - *
  • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and {@link #VK_NULL_HANDLE NULL_HANDLE} shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • + *
  • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and {@link #VK_NULL_HANDLE NULL_HANDLE} shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • *
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT} or {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT} for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • *
  • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • *
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT} or {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT} for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • @@ -11910,6 +11985,7 @@ public static void vkCmdDraw(VkCommandBuffer commandBuffer, @NativeType("uint32_ *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link #VK_DYNAMIC_STATE_STENCIL_REFERENCE DYNAMIC_STATE_STENCIL_REFERENCE} dynamic state enabled, the current value of and {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, the current value of {@code stencilTestEnable} is {@link #VK_TRUE TRUE}, then {@link #vkCmdSetStencilReference CmdSetStencilReference} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to {@link VkPhysicalDeviceMultiviewProperties}{@code ::maxMultiviewInstanceIndex}
  • *
  • If the bound graphics pipeline was created with {@link VkPipelineSampleLocationsStateCreateInfoEXT}{@code ::sampleLocationsEnable} set to {@link #VK_TRUE TRUE} and the current subpass has a depth/stencil attachment, then that attachment must have been created with the {@link EXTSampleLocations#VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT} bit set
  • + *
  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetSampleLocationsEnableEXT CmdSetSampleLocationsEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTSampleLocations#VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, and the current value of {@code sampleLocationsEnable} is {@link #VK_TRUE TRUE}, then {@link EXTSampleLocations#vkCmdSetSampleLocationsEXT CmdSetSampleLocationsEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_CULL_MODE DYNAMIC_STATE_CULL_MODE} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, then {@link VK13#vkCmdSetCullMode CmdSetCullMode} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_FRONT_FACE DYNAMIC_STATE_FRONT_FACE} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, then {@link VK13#vkCmdSetFrontFace CmdSetFrontFace} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • @@ -11919,10 +11995,9 @@ public static void vkCmdDraw(VkCommandBuffer commandBuffer, @NativeType("uint32_ *
  • If the {@code depthBounds} feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, then {@link VK13#vkCmdSetDepthBoundsTestEnable CmdSetDepthBoundsTestEnable} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE DYNAMIC_STATE_STENCIL_TEST_ENABLE} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, then {@link VK13#vkCmdSetStencilTestEnable CmdSetStencilTestEnable} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_STENCIL_OP DYNAMIC_STATE_STENCIL_OP} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, the current value of {@code stencilTestEnable} is {@link #VK_TRUE TRUE}, then {@link VK13#vkCmdSetStencilOp CmdSetStencilOp} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the bound graphics pipeline state was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic state enabled, but not the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} dynamic state enabled, then {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount} must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@link VkPipelineViewportStateCreateInfo}{@code ::scissorCount} of the pipeline
  • - *
  • If the bound graphics pipeline state was created with the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} dynamic state enabled, but not the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic state enabled, then {@link VK13#vkCmdSetScissorWithCount CmdSetScissorWithCount} must have been called in the current command buffer prior to this drawing command, and the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount} must match the {@link VkPipelineViewportStateCreateInfo}{@code ::viewportCount} of the pipeline
  • - *
  • If the bound graphics pipeline state was created with both the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} and {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic states enabled then both {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount} and {@link VK13#vkCmdSetScissorWithCount CmdSetScissorWithCount} must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
  • - *
  • If a shader object is bound to any graphics stage, then both {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount} and {@link VK13#vkCmdSetScissorWithCount CmdSetScissorWithCount} must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
  • + *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic state enabled, and the state is not inherited, then {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} dynamic state enabled, and the state is not inherited, then {@link VK13#vkCmdSetScissorWithCount CmdSetScissorWithCount} must have been called and not subsequently invalidated in the current command buffer prior to this drawing
  • + *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with both the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} and {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic states enabled, and the state is not inherited, then the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
  • *
  • If the bound graphics pipeline state was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic state enabled, but not the {@link NVClipSpaceWScaling#VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV DYNAMIC_STATE_VIEWPORT_W_SCALING_NV} dynamic state enabled, then the bound graphics pipeline must have been created with {@link VkPipelineViewportWScalingStateCreateInfoNV}{@code ::viewportCount} greater or equal to the {@code viewportCount} parameter in the last call to {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount}
  • *
  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} and {@link NVClipSpaceWScaling#VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV DYNAMIC_STATE_VIEWPORT_W_SCALING_NV} dynamic state enabled, the current value of {@code viewportWScalingEnable} is {@link #VK_TRUE TRUE}, then {@link NVClipSpaceWScaling#vkCmdSetViewportWScalingNV CmdSetViewportWScalingNV} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} and {@link NVClipSpaceWScaling#VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV DYNAMIC_STATE_VIEWPORT_W_SCALING_NV} dynamic state enabled, the current value of {@code viewportWScalingEnable} is {@link #VK_TRUE TRUE}, then the {@code viewportCount} parameter in the last call to {@link NVClipSpaceWScaling#vkCmdSetViewportWScalingNV CmdSetViewportWScalingNV} must be greater than or equal to the {@code viewportCount} parameter in the last call to {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount}
  • @@ -11988,19 +12063,17 @@ public static void vkCmdDraw(VkCommandBuffer commandBuffer, @NativeType("uint32_ *
  • If the bound graphics pipeline state was created with the {@link EXTColorWriteEnable#VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT} dynamic state enabled then the {@code attachmentCount} parameter of {@code vkCmdSetColorWriteEnableEXT} must be greater than or equal to the {@link VkPipelineColorBlendStateCreateInfo}{@code ::attachmentCount} of the currently bound graphics pipeline
  • *
  • If the {@code colorWriteEnable} feature is enabled on the device, and a shader object is bound to the {@link #VK_SHADER_STAGE_FRAGMENT_BIT SHADER_STAGE_FRAGMENT_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, then the {@code attachmentCount} parameter of most recent call to {@code vkCmdSetColorWriteEnableEXT} in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
  • *
  • If the bound graphics pipeline state was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_EXT} dynamic state enabled then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEXT CmdSetDiscardRectangleEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in {@link VkPipelineDiscardRectangleStateCreateInfoEXT}{@code ::discardRectangleCount}
  • - *
  • If the bound graphics pipeline state was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT} dynamic state enabled then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, and the current value of {@code discardRectangleEnable} is {@link #VK_TRUE TRUE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleModeEXT CmdSetDiscardRectangleModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} in the current command buffer set {@code discardRectangleEnable} to {@link #VK_TRUE TRUE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEXT CmdSetDiscardRectangleEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the bound graphics pipeline state was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT} dynamic state enabled then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleModeEXT CmdSetDiscardRectangleModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} in the current command buffer set {@code discardRectangleEnable} to {@link #VK_TRUE TRUE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleModeEXT CmdSetDiscardRectangleModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView} was {@link #VK_NULL_HANDLE NULL_HANDLE}, the value of {@link VkPipelineRenderingCreateInfo}{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to {@link #VK_FORMAT_UNDEFINED FORMAT_UNDEFINED}
  • *
  • If current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, the value of {@link VkPipelineRenderingCreateInfo}{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView}
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is enabled, {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, and the value of {@link VkPipelineRenderingCreateInfo}{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView}, the value of the format must be {@link #VK_FORMAT_UNDEFINED FORMAT_UNDEFINED}
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView} was {@link #VK_NULL_HANDLE NULL_HANDLE}, the value of {@link VkPipelineRenderingCreateInfo}{@code ::stencilAttachmentFormat} used to create the currently bound graphics pipeline must be equal to {@link #VK_FORMAT_UNDEFINED FORMAT_UNDEFINED}
  • *
  • If current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, the value of {@link VkPipelineRenderingCreateInfo}{@code ::stencilAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView}
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is enabled, {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, and the value of {@link VkPipelineRenderingCreateInfo}{@code ::stencilAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView}, the value of the format must be {@link #VK_FORMAT_UNDEFINED FORMAT_UNDEFINED}
  • - *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} and {@link VkRenderingFragmentShadingRateAttachmentInfoKHR}{@code ::imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, the currently bound graphics pipeline must have been created with {@link KHRDynamicRendering#VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR}
  • - *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} and {@link VkRenderingFragmentDensityMapAttachmentInfoEXT}{@code ::imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, the currently bound graphics pipeline must have been created with {@link KHRDynamicRendering#VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT}
  • + *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} and {@link VkRenderingFragmentShadingRateAttachmentInfoKHR}{@code ::imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, the currently bound graphics pipeline must have been created with {@link KHRFragmentShadingRate#VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR}
  • + *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} and {@link VkRenderingFragmentDensityMapAttachmentInfoEXT}{@code ::imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, the currently bound graphics pipeline must have been created with {@link EXTFragmentDensityMap#VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT}
  • *
  • If the currently bound pipeline was created with a {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} structure, and the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} with a {@link VkRenderingInfo}{@code ::colorAttachmentCount} parameter greater than 0, then each element of the {@link VkRenderingInfo}{@code ::pColorAttachments} array with a {@code imageView} not equal to {@link #VK_NULL_HANDLE NULL_HANDLE} must have been created with a sample count equal to the corresponding element of the {@code pColorAttachmentSamples} member of {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} used to create the currently bound graphics pipeline
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the currently bound pipeline was created with a {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} structure, and {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, the value of the {@code depthStencilAttachmentSamples} member of {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} used to create the currently bound graphics pipeline must be equal to the sample count used to create {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView}
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the currently bound pipeline was created with a {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} structure, and {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, the value of the {@code depthStencilAttachmentSamples} member of {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} used to create the currently bound graphics pipeline must be equal to the sample count used to create {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView}
  • @@ -12034,21 +12107,18 @@ public static void vkCmdDraw(VkCommandBuffer commandBuffer, @NativeType("uint32_ *
  • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetConservativeRasterizationModeEXT CmdSetConservativeRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, and the current value of {@code conservativeRasterizationMode} is {@link EXTConservativeRasterization#VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT}, then {@link EXTShaderObject#vkCmdSetExtraPrimitiveOverestimationSizeEXT CmdSetExtraPrimitiveOverestimationSizeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@code depthClipEnable} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT} dynamic state, then {@link EXTShaderObject#vkCmdSetDepthClipEnableEXT CmdSetDepthClipEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetSampleLocationsEnableEXT CmdSetSampleLocationsEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetSampleLocationsEnableEXT CmdSetSampleLocationsEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetColorBlendAdvancedEXT CmdSetColorBlendAdvancedEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTBlendOperationAdvanced VK_EXT_blend_operation_advanced} extension is enabled, and a shader object is bound to the {@link #VK_SHADER_STAGE_FRAGMENT_BIT SHADER_STAGE_FRAGMENT_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, then at least one of {@link EXTShaderObject#vkCmdSetColorBlendEquationEXT CmdSetColorBlendEquationEXT} and {@link EXTShaderObject#vkCmdSetColorBlendAdvancedEXT CmdSetColorBlendAdvancedEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTProvokingVertex VK_EXT_provoking_vertex} extension is enabled, a shader object is bound to the {@link #VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetProvokingVertexModeEXT CmdSetProvokingVertexModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetPolygonModeEXT CmdSetPolygonModeEXT} in the current command buffer set {@code polygonMode} to {@link #VK_POLYGON_MODE_LINE POLYGON_MODE_LINE}, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the {@link #VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link VK13#vkCmdSetPrimitiveTopology CmdSetPrimitiveTopology} in the current command buffer set {@code primitiveTopology} to any line topology, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the {@link #VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT SHADER_STAGE_TESSELLATION_EVALUATION_BIT} or {@link #VK_SHADER_STAGE_GEOMETRY_BIT SHADER_STAGE_GEOMETRY_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetPolygonModeEXT CmdSetPolygonModeEXT} in the current command buffer set {@code polygonMode} to {@link #VK_POLYGON_MODE_LINE POLYGON_MODE_LINE}, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the {@link #VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link VK13#vkCmdSetPrimitiveTopology CmdSetPrimitiveTopology} in the current command buffer set {@code primitiveTopology} to any line topology, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the {@link #VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT SHADER_STAGE_TESSELLATION_EVALUATION_BIT} or {@link #VK_SHADER_STAGE_GEOMETRY_BIT SHADER_STAGE_GEOMETRY_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetPolygonModeEXT CmdSetPolygonModeEXT} in the current command buffer set {@code polygonMode} to {@link #VK_POLYGON_MODE_LINE POLYGON_MODE_LINE}, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the {@link #VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link VK13#vkCmdSetPrimitiveTopology CmdSetPrimitiveTopology} in the current command buffer set {@code primitiveTopology} to any line topology, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the {@link #VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT SHADER_STAGE_TESSELLATION_EVALUATION_BIT} or {@link #VK_SHADER_STAGE_GEOMETRY_BIT SHADER_STAGE_GEOMETRY_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the bound graphics pipeline state was created with the {@link KHRLineRasterization#VK_DYNAMIC_STATE_LINE_STIPPLE_KHR DYNAMIC_STATE_LINE_STIPPLE_KHR} dynamic state enabled then {@link KHRLineRasterization#vkCmdSetLineStippleKHR CmdSetLineStippleKHR} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} in the current command buffer set {@code stippledLineEnable} to {@link #VK_TRUE TRUE}, then {@link EXTLineRasterization#vkCmdSetLineStippleEXT CmdSetLineStippleEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetPolygonModeEXT CmdSetPolygonModeEXT} in the current command buffer set {@code polygonMode} to {@link #VK_POLYGON_MODE_LINE POLYGON_MODE_LINE}, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the {@link #VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link VK13#vkCmdSetPrimitiveTopology CmdSetPrimitiveTopology} in the current command buffer set {@code primitiveTopology} to any line topology, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the {@link #VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT SHADER_STAGE_TESSELLATION_EVALUATION_BIT} or {@link #VK_SHADER_STAGE_GEOMETRY_BIT SHADER_STAGE_GEOMETRY_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled and a shader object is bound to any graphics stage, or a bound graphics pipeline state was created with the {@link KHRLineRasterization#VK_DYNAMIC_STATE_LINE_STIPPLE_KHR DYNAMIC_STATE_LINE_STIPPLE_KHR} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, and the current value of {@code stippledLineEnable} is {@link #VK_TRUE TRUE}, then {@link KHRLineRasterization#vkCmdSetLineStippleKHR CmdSetLineStippleKHR} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@code depthClipControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT} dynamic state enabled, then {@link EXTShaderObject#vkCmdSetDepthClipNegativeOneToOneEXT CmdSetDepthClipNegativeOneToOneEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@code depthClampControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTDepthClampControl#VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT} dynamic state enabled, and the current value of {@code depthClampEnable} is {@link #VK_TRUE TRUE}, then {@link EXTShaderObject#vkCmdSetDepthClampRangeEXT CmdSetDepthClampRangeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV} dynamic state enabled, then {@link EXTShaderObject#vkCmdSetViewportWScalingEnableNV CmdSetViewportWScalingEnableNV} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • @@ -12066,7 +12136,7 @@ public static void vkCmdDraw(VkCommandBuffer commandBuffer, @NativeType("uint32_ *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the {@code rasterizationSamples} in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT} must follow the rules for a zero-attachment subpass
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_SAMPLE_MASK_EXT DYNAMIC_STATE_SAMPLE_MASK_EXT} state enabled and the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state disabled, then the {@code samples} parameter in the last call to {@link EXTShaderObject#vkCmdSetSampleMaskEXT CmdSetSampleMaskEXT} must be greater or equal to the {@link VkPipelineMultisampleStateCreateInfo}{@code ::rasterizationSamples} parameter used to create the bound graphics pipeline
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_SAMPLE_MASK_EXT DYNAMIC_STATE_SAMPLE_MASK_EXT} state and {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} states enabled, then the {@code samples} parameter in the last call to {@link EXTShaderObject#vkCmdSetSampleMaskEXT CmdSetSampleMaskEXT} must be greater or equal to the {@code rasterizationSamples} parameter in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT}
  • - *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT} must be the same as the current subpass color and/or depth/stencil attachments
  • + *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state enabled, and the {@code multisampledRenderToSingleSampled} feature is not enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT} must be the same as the current subpass color and/or depth/stencil attachments
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a {@link VkMultisampledRenderToSingleSampledInfoEXT} structure with {@code multisampledRenderToSingleSampledEnable} equal to {@link #VK_TRUE TRUE}, then the {@code rasterizationSamples} in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT} must be the same as the {@code rasterizationSamples} member of that structure
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetColorBlendEnableEXT CmdSetColorBlendEnableEXT} must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
  • *
  • If a shader object is bound to the {@link #VK_SHADER_STAGE_FRAGMENT_BIT SHADER_STAGE_FRAGMENT_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetColorBlendEnableEXT CmdSetColorBlendEnableEXT} must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
  • @@ -12151,7 +12221,7 @@ public static void vkCmdDraw(VkCommandBuffer commandBuffer, @NativeType("uint32_ *
  • If there is a shader object bound to the {@link #VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT SHADER_STAGE_TESSELLATION_CONTROL_BIT} stage or the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState2#VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT} dynamic state enabled, and the current value of {@code primitiveTopology} is {@link #VK_PRIMITIVE_TOPOLOGY_PATCH_LIST PRIMITIVE_TOPOLOGY_PATCH_LIST}, then {@link EXTShaderObject#vkCmdSetPatchControlPointsEXT CmdSetPatchControlPointsEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If there is a shader object bound to the {@link #VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage or the bound graphics pipeline state was created with the {@link VK13#VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE} dynamic state enabled then {@link VK13#vkCmdSetPrimitiveRestartEnable CmdSetPrimitiveRestartEnable} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@code primitiveTopologyListRestart} feature is not enabled, the topology is {@link #VK_PRIMITIVE_TOPOLOGY_POINT_LIST PRIMITIVE_TOPOLOGY_POINT_LIST}, {@link #VK_PRIMITIVE_TOPOLOGY_LINE_LIST PRIMITIVE_TOPOLOGY_LINE_LIST}, {@link #VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST PRIMITIVE_TOPOLOGY_TRIANGLE_LIST}, {@link #VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY}, or {@link #VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY}, there is a shader object bound to the {@link #VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage or the bound graphics pipeline state was created with the {@link VK13#VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE} dynamic state enabled then {@link VK13#vkCmdSetPrimitiveRestartEnable CmdSetPrimitiveRestartEnable} must be {@link #VK_FALSE FALSE}
  • - *
  • The bound graphics pipeline must not have been created with the {@link VkPipelineShaderStageCreateInfo}{@code ::stage} member of an element of {@link VkGraphicsPipelineCreateInfo}{@code ::pStages} set to {@link EXTMeshShader#VK_SHADER_STAGE_TASK_BIT_EXT SHADER_STAGE_TASK_BIT_EXT} or {@link EXTMeshShader#VK_SHADER_STAGE_MESH_BIT_EXT SHADER_STAGE_MESH_BIT_EXT}
  • + *
  • The bound graphics pipeline must not have been created with the {@link VkPipelineShaderStageCreateInfo}{@code ::stage} member of any element of {@link VkGraphicsPipelineCreateInfo}{@code ::pStages} set to {@link EXTMeshShader#VK_SHADER_STAGE_TASK_BIT_EXT SHADER_STAGE_TASK_BIT_EXT} or {@link EXTMeshShader#VK_SHADER_STAGE_MESH_BIT_EXT SHADER_STAGE_MESH_BIT_EXT}
  • *
  • There must be no shader object bound to either of the {@link EXTMeshShader#VK_SHADER_STAGE_TASK_BIT_EXT SHADER_STAGE_TASK_BIT_EXT} or {@link EXTMeshShader#VK_SHADER_STAGE_MESH_BIT_EXT SHADER_STAGE_MESH_BIT_EXT} stages
  • * * @@ -12265,7 +12335,7 @@ public static void vkCmdDrawIndexed(VkCommandBuffer commandBuffer, @NativeType(" *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type {@link #VK_IMAGE_VIEW_TYPE_3D IMAGE_VIEW_TYPE_3D}, {@link #VK_IMAGE_VIEW_TYPE_CUBE IMAGE_VIEW_TYPE_CUBE}, {@link #VK_IMAGE_VIEW_TYPE_1D_ARRAY IMAGE_VIEW_TYPE_1D_ARRAY}, {@link #VK_IMAGE_VIEW_TYPE_2D_ARRAY IMAGE_VIEW_TYPE_2D_ARRAY} or {@link #VK_IMAGE_VIEW_TYPE_CUBE_ARRAY IMAGE_VIEW_TYPE_CUBE_ARRAY}, in any shader stage
  • *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
  • *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
  • - *
  • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and {@link #VK_NULL_HANDLE NULL_HANDLE} shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • + *
  • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and {@link #VK_NULL_HANDLE NULL_HANDLE} shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • *
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT} or {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT} for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • *
  • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • *
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT} or {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT} for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • @@ -12370,6 +12440,7 @@ public static void vkCmdDrawIndexed(VkCommandBuffer commandBuffer, @NativeType(" *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link #VK_DYNAMIC_STATE_STENCIL_REFERENCE DYNAMIC_STATE_STENCIL_REFERENCE} dynamic state enabled, the current value of and {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, the current value of {@code stencilTestEnable} is {@link #VK_TRUE TRUE}, then {@link #vkCmdSetStencilReference CmdSetStencilReference} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to {@link VkPhysicalDeviceMultiviewProperties}{@code ::maxMultiviewInstanceIndex}
  • *
  • If the bound graphics pipeline was created with {@link VkPipelineSampleLocationsStateCreateInfoEXT}{@code ::sampleLocationsEnable} set to {@link #VK_TRUE TRUE} and the current subpass has a depth/stencil attachment, then that attachment must have been created with the {@link EXTSampleLocations#VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT} bit set
  • + *
  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetSampleLocationsEnableEXT CmdSetSampleLocationsEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTSampleLocations#VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, and the current value of {@code sampleLocationsEnable} is {@link #VK_TRUE TRUE}, then {@link EXTSampleLocations#vkCmdSetSampleLocationsEXT CmdSetSampleLocationsEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_CULL_MODE DYNAMIC_STATE_CULL_MODE} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, then {@link VK13#vkCmdSetCullMode CmdSetCullMode} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_FRONT_FACE DYNAMIC_STATE_FRONT_FACE} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, then {@link VK13#vkCmdSetFrontFace CmdSetFrontFace} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • @@ -12379,10 +12450,9 @@ public static void vkCmdDrawIndexed(VkCommandBuffer commandBuffer, @NativeType(" *
  • If the {@code depthBounds} feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, then {@link VK13#vkCmdSetDepthBoundsTestEnable CmdSetDepthBoundsTestEnable} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE DYNAMIC_STATE_STENCIL_TEST_ENABLE} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, then {@link VK13#vkCmdSetStencilTestEnable CmdSetStencilTestEnable} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_STENCIL_OP DYNAMIC_STATE_STENCIL_OP} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, the current value of {@code stencilTestEnable} is {@link #VK_TRUE TRUE}, then {@link VK13#vkCmdSetStencilOp CmdSetStencilOp} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the bound graphics pipeline state was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic state enabled, but not the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} dynamic state enabled, then {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount} must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@link VkPipelineViewportStateCreateInfo}{@code ::scissorCount} of the pipeline
  • - *
  • If the bound graphics pipeline state was created with the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} dynamic state enabled, but not the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic state enabled, then {@link VK13#vkCmdSetScissorWithCount CmdSetScissorWithCount} must have been called in the current command buffer prior to this drawing command, and the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount} must match the {@link VkPipelineViewportStateCreateInfo}{@code ::viewportCount} of the pipeline
  • - *
  • If the bound graphics pipeline state was created with both the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} and {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic states enabled then both {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount} and {@link VK13#vkCmdSetScissorWithCount CmdSetScissorWithCount} must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
  • - *
  • If a shader object is bound to any graphics stage, then both {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount} and {@link VK13#vkCmdSetScissorWithCount CmdSetScissorWithCount} must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
  • + *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic state enabled, and the state is not inherited, then {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} dynamic state enabled, and the state is not inherited, then {@link VK13#vkCmdSetScissorWithCount CmdSetScissorWithCount} must have been called and not subsequently invalidated in the current command buffer prior to this drawing
  • + *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with both the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} and {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic states enabled, and the state is not inherited, then the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
  • *
  • If the bound graphics pipeline state was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic state enabled, but not the {@link NVClipSpaceWScaling#VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV DYNAMIC_STATE_VIEWPORT_W_SCALING_NV} dynamic state enabled, then the bound graphics pipeline must have been created with {@link VkPipelineViewportWScalingStateCreateInfoNV}{@code ::viewportCount} greater or equal to the {@code viewportCount} parameter in the last call to {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount}
  • *
  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} and {@link NVClipSpaceWScaling#VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV DYNAMIC_STATE_VIEWPORT_W_SCALING_NV} dynamic state enabled, the current value of {@code viewportWScalingEnable} is {@link #VK_TRUE TRUE}, then {@link NVClipSpaceWScaling#vkCmdSetViewportWScalingNV CmdSetViewportWScalingNV} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} and {@link NVClipSpaceWScaling#VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV DYNAMIC_STATE_VIEWPORT_W_SCALING_NV} dynamic state enabled, the current value of {@code viewportWScalingEnable} is {@link #VK_TRUE TRUE}, then the {@code viewportCount} parameter in the last call to {@link NVClipSpaceWScaling#vkCmdSetViewportWScalingNV CmdSetViewportWScalingNV} must be greater than or equal to the {@code viewportCount} parameter in the last call to {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount}
  • @@ -12448,19 +12518,17 @@ public static void vkCmdDrawIndexed(VkCommandBuffer commandBuffer, @NativeType(" *
  • If the bound graphics pipeline state was created with the {@link EXTColorWriteEnable#VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT} dynamic state enabled then the {@code attachmentCount} parameter of {@code vkCmdSetColorWriteEnableEXT} must be greater than or equal to the {@link VkPipelineColorBlendStateCreateInfo}{@code ::attachmentCount} of the currently bound graphics pipeline
  • *
  • If the {@code colorWriteEnable} feature is enabled on the device, and a shader object is bound to the {@link #VK_SHADER_STAGE_FRAGMENT_BIT SHADER_STAGE_FRAGMENT_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, then the {@code attachmentCount} parameter of most recent call to {@code vkCmdSetColorWriteEnableEXT} in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
  • *
  • If the bound graphics pipeline state was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_EXT} dynamic state enabled then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEXT CmdSetDiscardRectangleEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in {@link VkPipelineDiscardRectangleStateCreateInfoEXT}{@code ::discardRectangleCount}
  • - *
  • If the bound graphics pipeline state was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT} dynamic state enabled then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, and the current value of {@code discardRectangleEnable} is {@link #VK_TRUE TRUE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleModeEXT CmdSetDiscardRectangleModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} in the current command buffer set {@code discardRectangleEnable} to {@link #VK_TRUE TRUE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEXT CmdSetDiscardRectangleEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the bound graphics pipeline state was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT} dynamic state enabled then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleModeEXT CmdSetDiscardRectangleModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} in the current command buffer set {@code discardRectangleEnable} to {@link #VK_TRUE TRUE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleModeEXT CmdSetDiscardRectangleModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView} was {@link #VK_NULL_HANDLE NULL_HANDLE}, the value of {@link VkPipelineRenderingCreateInfo}{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to {@link #VK_FORMAT_UNDEFINED FORMAT_UNDEFINED}
  • *
  • If current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, the value of {@link VkPipelineRenderingCreateInfo}{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView}
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is enabled, {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, and the value of {@link VkPipelineRenderingCreateInfo}{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView}, the value of the format must be {@link #VK_FORMAT_UNDEFINED FORMAT_UNDEFINED}
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView} was {@link #VK_NULL_HANDLE NULL_HANDLE}, the value of {@link VkPipelineRenderingCreateInfo}{@code ::stencilAttachmentFormat} used to create the currently bound graphics pipeline must be equal to {@link #VK_FORMAT_UNDEFINED FORMAT_UNDEFINED}
  • *
  • If current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, the value of {@link VkPipelineRenderingCreateInfo}{@code ::stencilAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView}
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is enabled, {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, and the value of {@link VkPipelineRenderingCreateInfo}{@code ::stencilAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView}, the value of the format must be {@link #VK_FORMAT_UNDEFINED FORMAT_UNDEFINED}
  • - *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} and {@link VkRenderingFragmentShadingRateAttachmentInfoKHR}{@code ::imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, the currently bound graphics pipeline must have been created with {@link KHRDynamicRendering#VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR}
  • - *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} and {@link VkRenderingFragmentDensityMapAttachmentInfoEXT}{@code ::imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, the currently bound graphics pipeline must have been created with {@link KHRDynamicRendering#VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT}
  • + *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} and {@link VkRenderingFragmentShadingRateAttachmentInfoKHR}{@code ::imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, the currently bound graphics pipeline must have been created with {@link KHRFragmentShadingRate#VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR}
  • + *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} and {@link VkRenderingFragmentDensityMapAttachmentInfoEXT}{@code ::imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, the currently bound graphics pipeline must have been created with {@link EXTFragmentDensityMap#VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT}
  • *
  • If the currently bound pipeline was created with a {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} structure, and the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} with a {@link VkRenderingInfo}{@code ::colorAttachmentCount} parameter greater than 0, then each element of the {@link VkRenderingInfo}{@code ::pColorAttachments} array with a {@code imageView} not equal to {@link #VK_NULL_HANDLE NULL_HANDLE} must have been created with a sample count equal to the corresponding element of the {@code pColorAttachmentSamples} member of {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} used to create the currently bound graphics pipeline
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the currently bound pipeline was created with a {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} structure, and {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, the value of the {@code depthStencilAttachmentSamples} member of {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} used to create the currently bound graphics pipeline must be equal to the sample count used to create {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView}
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the currently bound pipeline was created with a {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} structure, and {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, the value of the {@code depthStencilAttachmentSamples} member of {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} used to create the currently bound graphics pipeline must be equal to the sample count used to create {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView}
  • @@ -12494,21 +12562,18 @@ public static void vkCmdDrawIndexed(VkCommandBuffer commandBuffer, @NativeType(" *
  • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetConservativeRasterizationModeEXT CmdSetConservativeRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, and the current value of {@code conservativeRasterizationMode} is {@link EXTConservativeRasterization#VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT}, then {@link EXTShaderObject#vkCmdSetExtraPrimitiveOverestimationSizeEXT CmdSetExtraPrimitiveOverestimationSizeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@code depthClipEnable} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT} dynamic state, then {@link EXTShaderObject#vkCmdSetDepthClipEnableEXT CmdSetDepthClipEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetSampleLocationsEnableEXT CmdSetSampleLocationsEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetSampleLocationsEnableEXT CmdSetSampleLocationsEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetColorBlendAdvancedEXT CmdSetColorBlendAdvancedEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTBlendOperationAdvanced VK_EXT_blend_operation_advanced} extension is enabled, and a shader object is bound to the {@link #VK_SHADER_STAGE_FRAGMENT_BIT SHADER_STAGE_FRAGMENT_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, then at least one of {@link EXTShaderObject#vkCmdSetColorBlendEquationEXT CmdSetColorBlendEquationEXT} and {@link EXTShaderObject#vkCmdSetColorBlendAdvancedEXT CmdSetColorBlendAdvancedEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTProvokingVertex VK_EXT_provoking_vertex} extension is enabled, a shader object is bound to the {@link #VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetProvokingVertexModeEXT CmdSetProvokingVertexModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetPolygonModeEXT CmdSetPolygonModeEXT} in the current command buffer set {@code polygonMode} to {@link #VK_POLYGON_MODE_LINE POLYGON_MODE_LINE}, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the {@link #VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link VK13#vkCmdSetPrimitiveTopology CmdSetPrimitiveTopology} in the current command buffer set {@code primitiveTopology} to any line topology, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the {@link #VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT SHADER_STAGE_TESSELLATION_EVALUATION_BIT} or {@link #VK_SHADER_STAGE_GEOMETRY_BIT SHADER_STAGE_GEOMETRY_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetPolygonModeEXT CmdSetPolygonModeEXT} in the current command buffer set {@code polygonMode} to {@link #VK_POLYGON_MODE_LINE POLYGON_MODE_LINE}, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the {@link #VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link VK13#vkCmdSetPrimitiveTopology CmdSetPrimitiveTopology} in the current command buffer set {@code primitiveTopology} to any line topology, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the {@link #VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT SHADER_STAGE_TESSELLATION_EVALUATION_BIT} or {@link #VK_SHADER_STAGE_GEOMETRY_BIT SHADER_STAGE_GEOMETRY_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetPolygonModeEXT CmdSetPolygonModeEXT} in the current command buffer set {@code polygonMode} to {@link #VK_POLYGON_MODE_LINE POLYGON_MODE_LINE}, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the {@link #VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link VK13#vkCmdSetPrimitiveTopology CmdSetPrimitiveTopology} in the current command buffer set {@code primitiveTopology} to any line topology, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the {@link #VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT SHADER_STAGE_TESSELLATION_EVALUATION_BIT} or {@link #VK_SHADER_STAGE_GEOMETRY_BIT SHADER_STAGE_GEOMETRY_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the bound graphics pipeline state was created with the {@link KHRLineRasterization#VK_DYNAMIC_STATE_LINE_STIPPLE_KHR DYNAMIC_STATE_LINE_STIPPLE_KHR} dynamic state enabled then {@link KHRLineRasterization#vkCmdSetLineStippleKHR CmdSetLineStippleKHR} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} in the current command buffer set {@code stippledLineEnable} to {@link #VK_TRUE TRUE}, then {@link EXTLineRasterization#vkCmdSetLineStippleEXT CmdSetLineStippleEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetPolygonModeEXT CmdSetPolygonModeEXT} in the current command buffer set {@code polygonMode} to {@link #VK_POLYGON_MODE_LINE POLYGON_MODE_LINE}, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the {@link #VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link VK13#vkCmdSetPrimitiveTopology CmdSetPrimitiveTopology} in the current command buffer set {@code primitiveTopology} to any line topology, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the {@link #VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT SHADER_STAGE_TESSELLATION_EVALUATION_BIT} or {@link #VK_SHADER_STAGE_GEOMETRY_BIT SHADER_STAGE_GEOMETRY_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled and a shader object is bound to any graphics stage, or a bound graphics pipeline state was created with the {@link KHRLineRasterization#VK_DYNAMIC_STATE_LINE_STIPPLE_KHR DYNAMIC_STATE_LINE_STIPPLE_KHR} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, and the current value of {@code stippledLineEnable} is {@link #VK_TRUE TRUE}, then {@link KHRLineRasterization#vkCmdSetLineStippleKHR CmdSetLineStippleKHR} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@code depthClipControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT} dynamic state enabled, then {@link EXTShaderObject#vkCmdSetDepthClipNegativeOneToOneEXT CmdSetDepthClipNegativeOneToOneEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@code depthClampControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTDepthClampControl#VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT} dynamic state enabled, and the current value of {@code depthClampEnable} is {@link #VK_TRUE TRUE}, then {@link EXTShaderObject#vkCmdSetDepthClampRangeEXT CmdSetDepthClampRangeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV} dynamic state enabled, then {@link EXTShaderObject#vkCmdSetViewportWScalingEnableNV CmdSetViewportWScalingEnableNV} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • @@ -12526,7 +12591,7 @@ public static void vkCmdDrawIndexed(VkCommandBuffer commandBuffer, @NativeType(" *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the {@code rasterizationSamples} in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT} must follow the rules for a zero-attachment subpass
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_SAMPLE_MASK_EXT DYNAMIC_STATE_SAMPLE_MASK_EXT} state enabled and the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state disabled, then the {@code samples} parameter in the last call to {@link EXTShaderObject#vkCmdSetSampleMaskEXT CmdSetSampleMaskEXT} must be greater or equal to the {@link VkPipelineMultisampleStateCreateInfo}{@code ::rasterizationSamples} parameter used to create the bound graphics pipeline
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_SAMPLE_MASK_EXT DYNAMIC_STATE_SAMPLE_MASK_EXT} state and {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} states enabled, then the {@code samples} parameter in the last call to {@link EXTShaderObject#vkCmdSetSampleMaskEXT CmdSetSampleMaskEXT} must be greater or equal to the {@code rasterizationSamples} parameter in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT}
  • - *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT} must be the same as the current subpass color and/or depth/stencil attachments
  • + *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state enabled, and the {@code multisampledRenderToSingleSampled} feature is not enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT} must be the same as the current subpass color and/or depth/stencil attachments
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a {@link VkMultisampledRenderToSingleSampledInfoEXT} structure with {@code multisampledRenderToSingleSampledEnable} equal to {@link #VK_TRUE TRUE}, then the {@code rasterizationSamples} in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT} must be the same as the {@code rasterizationSamples} member of that structure
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetColorBlendEnableEXT CmdSetColorBlendEnableEXT} must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
  • *
  • If a shader object is bound to the {@link #VK_SHADER_STAGE_FRAGMENT_BIT SHADER_STAGE_FRAGMENT_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetColorBlendEnableEXT CmdSetColorBlendEnableEXT} must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
  • @@ -12605,7 +12670,7 @@ public static void vkCmdDrawIndexed(VkCommandBuffer commandBuffer, @NativeType(" *
  • If there is a shader object bound to the {@link #VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT SHADER_STAGE_TESSELLATION_CONTROL_BIT} stage or the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState2#VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT} dynamic state enabled, and the current value of {@code primitiveTopology} is {@link #VK_PRIMITIVE_TOPOLOGY_PATCH_LIST PRIMITIVE_TOPOLOGY_PATCH_LIST}, then {@link EXTShaderObject#vkCmdSetPatchControlPointsEXT CmdSetPatchControlPointsEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If there is a shader object bound to the {@link #VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage or the bound graphics pipeline state was created with the {@link VK13#VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE} dynamic state enabled then {@link VK13#vkCmdSetPrimitiveRestartEnable CmdSetPrimitiveRestartEnable} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@code primitiveTopologyListRestart} feature is not enabled, the topology is {@link #VK_PRIMITIVE_TOPOLOGY_POINT_LIST PRIMITIVE_TOPOLOGY_POINT_LIST}, {@link #VK_PRIMITIVE_TOPOLOGY_LINE_LIST PRIMITIVE_TOPOLOGY_LINE_LIST}, {@link #VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST PRIMITIVE_TOPOLOGY_TRIANGLE_LIST}, {@link #VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY}, or {@link #VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY}, there is a shader object bound to the {@link #VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage or the bound graphics pipeline state was created with the {@link VK13#VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE} dynamic state enabled then {@link VK13#vkCmdSetPrimitiveRestartEnable CmdSetPrimitiveRestartEnable} must be {@link #VK_FALSE FALSE}
  • - *
  • The bound graphics pipeline must not have been created with the {@link VkPipelineShaderStageCreateInfo}{@code ::stage} member of an element of {@link VkGraphicsPipelineCreateInfo}{@code ::pStages} set to {@link EXTMeshShader#VK_SHADER_STAGE_TASK_BIT_EXT SHADER_STAGE_TASK_BIT_EXT} or {@link EXTMeshShader#VK_SHADER_STAGE_MESH_BIT_EXT SHADER_STAGE_MESH_BIT_EXT}
  • + *
  • The bound graphics pipeline must not have been created with the {@link VkPipelineShaderStageCreateInfo}{@code ::stage} member of any element of {@link VkGraphicsPipelineCreateInfo}{@code ::pStages} set to {@link EXTMeshShader#VK_SHADER_STAGE_TASK_BIT_EXT SHADER_STAGE_TASK_BIT_EXT} or {@link EXTMeshShader#VK_SHADER_STAGE_MESH_BIT_EXT SHADER_STAGE_MESH_BIT_EXT}
  • *
  • There must be no shader object bound to either of the {@link EXTMeshShader#VK_SHADER_STAGE_TASK_BIT_EXT SHADER_STAGE_TASK_BIT_EXT} or {@link EXTMeshShader#VK_SHADER_STAGE_MESH_BIT_EXT SHADER_STAGE_MESH_BIT_EXT} stages
  • * * @@ -12722,7 +12787,7 @@ public static void vkCmdDrawIndirect(VkCommandBuffer commandBuffer, @NativeType( *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type {@link #VK_IMAGE_VIEW_TYPE_3D IMAGE_VIEW_TYPE_3D}, {@link #VK_IMAGE_VIEW_TYPE_CUBE IMAGE_VIEW_TYPE_CUBE}, {@link #VK_IMAGE_VIEW_TYPE_1D_ARRAY IMAGE_VIEW_TYPE_1D_ARRAY}, {@link #VK_IMAGE_VIEW_TYPE_2D_ARRAY IMAGE_VIEW_TYPE_2D_ARRAY} or {@link #VK_IMAGE_VIEW_TYPE_CUBE_ARRAY IMAGE_VIEW_TYPE_CUBE_ARRAY}, in any shader stage
  • *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
  • *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
  • - *
  • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and {@link #VK_NULL_HANDLE NULL_HANDLE} shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • + *
  • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and {@link #VK_NULL_HANDLE NULL_HANDLE} shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • *
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT} or {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT} for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • *
  • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • *
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT} or {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT} for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • @@ -12827,6 +12892,7 @@ public static void vkCmdDrawIndirect(VkCommandBuffer commandBuffer, @NativeType( *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link #VK_DYNAMIC_STATE_STENCIL_REFERENCE DYNAMIC_STATE_STENCIL_REFERENCE} dynamic state enabled, the current value of and {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, the current value of {@code stencilTestEnable} is {@link #VK_TRUE TRUE}, then {@link #vkCmdSetStencilReference CmdSetStencilReference} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to {@link VkPhysicalDeviceMultiviewProperties}{@code ::maxMultiviewInstanceIndex}
  • *
  • If the bound graphics pipeline was created with {@link VkPipelineSampleLocationsStateCreateInfoEXT}{@code ::sampleLocationsEnable} set to {@link #VK_TRUE TRUE} and the current subpass has a depth/stencil attachment, then that attachment must have been created with the {@link EXTSampleLocations#VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT} bit set
  • + *
  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetSampleLocationsEnableEXT CmdSetSampleLocationsEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTSampleLocations#VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, and the current value of {@code sampleLocationsEnable} is {@link #VK_TRUE TRUE}, then {@link EXTSampleLocations#vkCmdSetSampleLocationsEXT CmdSetSampleLocationsEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_CULL_MODE DYNAMIC_STATE_CULL_MODE} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, then {@link VK13#vkCmdSetCullMode CmdSetCullMode} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_FRONT_FACE DYNAMIC_STATE_FRONT_FACE} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, then {@link VK13#vkCmdSetFrontFace CmdSetFrontFace} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • @@ -12836,10 +12902,9 @@ public static void vkCmdDrawIndirect(VkCommandBuffer commandBuffer, @NativeType( *
  • If the {@code depthBounds} feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, then {@link VK13#vkCmdSetDepthBoundsTestEnable CmdSetDepthBoundsTestEnable} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE DYNAMIC_STATE_STENCIL_TEST_ENABLE} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, then {@link VK13#vkCmdSetStencilTestEnable CmdSetStencilTestEnable} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_STENCIL_OP DYNAMIC_STATE_STENCIL_OP} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, the current value of {@code stencilTestEnable} is {@link #VK_TRUE TRUE}, then {@link VK13#vkCmdSetStencilOp CmdSetStencilOp} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the bound graphics pipeline state was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic state enabled, but not the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} dynamic state enabled, then {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount} must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@link VkPipelineViewportStateCreateInfo}{@code ::scissorCount} of the pipeline
  • - *
  • If the bound graphics pipeline state was created with the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} dynamic state enabled, but not the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic state enabled, then {@link VK13#vkCmdSetScissorWithCount CmdSetScissorWithCount} must have been called in the current command buffer prior to this drawing command, and the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount} must match the {@link VkPipelineViewportStateCreateInfo}{@code ::viewportCount} of the pipeline
  • - *
  • If the bound graphics pipeline state was created with both the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} and {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic states enabled then both {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount} and {@link VK13#vkCmdSetScissorWithCount CmdSetScissorWithCount} must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
  • - *
  • If a shader object is bound to any graphics stage, then both {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount} and {@link VK13#vkCmdSetScissorWithCount CmdSetScissorWithCount} must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
  • + *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic state enabled, and the state is not inherited, then {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} dynamic state enabled, and the state is not inherited, then {@link VK13#vkCmdSetScissorWithCount CmdSetScissorWithCount} must have been called and not subsequently invalidated in the current command buffer prior to this drawing
  • + *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with both the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} and {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic states enabled, and the state is not inherited, then the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
  • *
  • If the bound graphics pipeline state was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic state enabled, but not the {@link NVClipSpaceWScaling#VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV DYNAMIC_STATE_VIEWPORT_W_SCALING_NV} dynamic state enabled, then the bound graphics pipeline must have been created with {@link VkPipelineViewportWScalingStateCreateInfoNV}{@code ::viewportCount} greater or equal to the {@code viewportCount} parameter in the last call to {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount}
  • *
  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} and {@link NVClipSpaceWScaling#VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV DYNAMIC_STATE_VIEWPORT_W_SCALING_NV} dynamic state enabled, the current value of {@code viewportWScalingEnable} is {@link #VK_TRUE TRUE}, then {@link NVClipSpaceWScaling#vkCmdSetViewportWScalingNV CmdSetViewportWScalingNV} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} and {@link NVClipSpaceWScaling#VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV DYNAMIC_STATE_VIEWPORT_W_SCALING_NV} dynamic state enabled, the current value of {@code viewportWScalingEnable} is {@link #VK_TRUE TRUE}, then the {@code viewportCount} parameter in the last call to {@link NVClipSpaceWScaling#vkCmdSetViewportWScalingNV CmdSetViewportWScalingNV} must be greater than or equal to the {@code viewportCount} parameter in the last call to {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount}
  • @@ -12905,19 +12970,17 @@ public static void vkCmdDrawIndirect(VkCommandBuffer commandBuffer, @NativeType( *
  • If the bound graphics pipeline state was created with the {@link EXTColorWriteEnable#VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT} dynamic state enabled then the {@code attachmentCount} parameter of {@code vkCmdSetColorWriteEnableEXT} must be greater than or equal to the {@link VkPipelineColorBlendStateCreateInfo}{@code ::attachmentCount} of the currently bound graphics pipeline
  • *
  • If the {@code colorWriteEnable} feature is enabled on the device, and a shader object is bound to the {@link #VK_SHADER_STAGE_FRAGMENT_BIT SHADER_STAGE_FRAGMENT_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, then the {@code attachmentCount} parameter of most recent call to {@code vkCmdSetColorWriteEnableEXT} in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
  • *
  • If the bound graphics pipeline state was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_EXT} dynamic state enabled then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEXT CmdSetDiscardRectangleEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in {@link VkPipelineDiscardRectangleStateCreateInfoEXT}{@code ::discardRectangleCount}
  • - *
  • If the bound graphics pipeline state was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT} dynamic state enabled then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, and the current value of {@code discardRectangleEnable} is {@link #VK_TRUE TRUE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleModeEXT CmdSetDiscardRectangleModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} in the current command buffer set {@code discardRectangleEnable} to {@link #VK_TRUE TRUE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEXT CmdSetDiscardRectangleEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the bound graphics pipeline state was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT} dynamic state enabled then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleModeEXT CmdSetDiscardRectangleModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} in the current command buffer set {@code discardRectangleEnable} to {@link #VK_TRUE TRUE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleModeEXT CmdSetDiscardRectangleModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView} was {@link #VK_NULL_HANDLE NULL_HANDLE}, the value of {@link VkPipelineRenderingCreateInfo}{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to {@link #VK_FORMAT_UNDEFINED FORMAT_UNDEFINED}
  • *
  • If current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, the value of {@link VkPipelineRenderingCreateInfo}{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView}
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is enabled, {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, and the value of {@link VkPipelineRenderingCreateInfo}{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView}, the value of the format must be {@link #VK_FORMAT_UNDEFINED FORMAT_UNDEFINED}
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView} was {@link #VK_NULL_HANDLE NULL_HANDLE}, the value of {@link VkPipelineRenderingCreateInfo}{@code ::stencilAttachmentFormat} used to create the currently bound graphics pipeline must be equal to {@link #VK_FORMAT_UNDEFINED FORMAT_UNDEFINED}
  • *
  • If current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, the value of {@link VkPipelineRenderingCreateInfo}{@code ::stencilAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView}
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is enabled, {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, and the value of {@link VkPipelineRenderingCreateInfo}{@code ::stencilAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView}, the value of the format must be {@link #VK_FORMAT_UNDEFINED FORMAT_UNDEFINED}
  • - *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} and {@link VkRenderingFragmentShadingRateAttachmentInfoKHR}{@code ::imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, the currently bound graphics pipeline must have been created with {@link KHRDynamicRendering#VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR}
  • - *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} and {@link VkRenderingFragmentDensityMapAttachmentInfoEXT}{@code ::imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, the currently bound graphics pipeline must have been created with {@link KHRDynamicRendering#VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT}
  • + *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} and {@link VkRenderingFragmentShadingRateAttachmentInfoKHR}{@code ::imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, the currently bound graphics pipeline must have been created with {@link KHRFragmentShadingRate#VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR}
  • + *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} and {@link VkRenderingFragmentDensityMapAttachmentInfoEXT}{@code ::imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, the currently bound graphics pipeline must have been created with {@link EXTFragmentDensityMap#VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT}
  • *
  • If the currently bound pipeline was created with a {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} structure, and the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} with a {@link VkRenderingInfo}{@code ::colorAttachmentCount} parameter greater than 0, then each element of the {@link VkRenderingInfo}{@code ::pColorAttachments} array with a {@code imageView} not equal to {@link #VK_NULL_HANDLE NULL_HANDLE} must have been created with a sample count equal to the corresponding element of the {@code pColorAttachmentSamples} member of {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} used to create the currently bound graphics pipeline
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the currently bound pipeline was created with a {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} structure, and {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, the value of the {@code depthStencilAttachmentSamples} member of {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} used to create the currently bound graphics pipeline must be equal to the sample count used to create {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView}
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the currently bound pipeline was created with a {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} structure, and {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView} was not {@link #VK_NULL_HANDLE NULL_HANDLE}, the value of the {@code depthStencilAttachmentSamples} member of {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} used to create the currently bound graphics pipeline must be equal to the sample count used to create {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView}
  • @@ -12951,21 +13014,18 @@ public static void vkCmdDrawIndirect(VkCommandBuffer commandBuffer, @NativeType( *
  • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetConservativeRasterizationModeEXT CmdSetConservativeRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, and the current value of {@code conservativeRasterizationMode} is {@link EXTConservativeRasterization#VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT}, then {@link EXTShaderObject#vkCmdSetExtraPrimitiveOverestimationSizeEXT CmdSetExtraPrimitiveOverestimationSizeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@code depthClipEnable} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT} dynamic state, then {@link EXTShaderObject#vkCmdSetDepthClipEnableEXT CmdSetDepthClipEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetSampleLocationsEnableEXT CmdSetSampleLocationsEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetSampleLocationsEnableEXT CmdSetSampleLocationsEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetColorBlendAdvancedEXT CmdSetColorBlendAdvancedEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTBlendOperationAdvanced VK_EXT_blend_operation_advanced} extension is enabled, and a shader object is bound to the {@link #VK_SHADER_STAGE_FRAGMENT_BIT SHADER_STAGE_FRAGMENT_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, then at least one of {@link EXTShaderObject#vkCmdSetColorBlendEquationEXT CmdSetColorBlendEquationEXT} and {@link EXTShaderObject#vkCmdSetColorBlendAdvancedEXT CmdSetColorBlendAdvancedEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTProvokingVertex VK_EXT_provoking_vertex} extension is enabled, a shader object is bound to the {@link #VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetProvokingVertexModeEXT CmdSetProvokingVertexModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetPolygonModeEXT CmdSetPolygonModeEXT} in the current command buffer set {@code polygonMode} to {@link #VK_POLYGON_MODE_LINE POLYGON_MODE_LINE}, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the {@link #VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link VK13#vkCmdSetPrimitiveTopology CmdSetPrimitiveTopology} in the current command buffer set {@code primitiveTopology} to any line topology, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the {@link #VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT SHADER_STAGE_TESSELLATION_EVALUATION_BIT} or {@link #VK_SHADER_STAGE_GEOMETRY_BIT SHADER_STAGE_GEOMETRY_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetPolygonModeEXT CmdSetPolygonModeEXT} in the current command buffer set {@code polygonMode} to {@link #VK_POLYGON_MODE_LINE POLYGON_MODE_LINE}, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the {@link #VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link VK13#vkCmdSetPrimitiveTopology CmdSetPrimitiveTopology} in the current command buffer set {@code primitiveTopology} to any line topology, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the {@link #VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT SHADER_STAGE_TESSELLATION_EVALUATION_BIT} or {@link #VK_SHADER_STAGE_GEOMETRY_BIT SHADER_STAGE_GEOMETRY_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetPolygonModeEXT CmdSetPolygonModeEXT} in the current command buffer set {@code polygonMode} to {@link #VK_POLYGON_MODE_LINE POLYGON_MODE_LINE}, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the {@link #VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link VK13#vkCmdSetPrimitiveTopology CmdSetPrimitiveTopology} in the current command buffer set {@code primitiveTopology} to any line topology, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the {@link #VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT SHADER_STAGE_TESSELLATION_EVALUATION_BIT} or {@link #VK_SHADER_STAGE_GEOMETRY_BIT SHADER_STAGE_GEOMETRY_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the bound graphics pipeline state was created with the {@link KHRLineRasterization#VK_DYNAMIC_STATE_LINE_STIPPLE_KHR DYNAMIC_STATE_LINE_STIPPLE_KHR} dynamic state enabled then {@link KHRLineRasterization#vkCmdSetLineStippleKHR CmdSetLineStippleKHR} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} in the current command buffer set {@code stippledLineEnable} to {@link #VK_TRUE TRUE}, then {@link EXTLineRasterization#vkCmdSetLineStippleEXT CmdSetLineStippleEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetPolygonModeEXT CmdSetPolygonModeEXT} in the current command buffer set {@code polygonMode} to {@link #VK_POLYGON_MODE_LINE POLYGON_MODE_LINE}, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the {@link #VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, and the most recent call to {@link VK13#vkCmdSetPrimitiveTopology CmdSetPrimitiveTopology} in the current command buffer set {@code primitiveTopology} to any line topology, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the {@link #VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT SHADER_STAGE_TESSELLATION_EVALUATION_BIT} or {@link #VK_SHADER_STAGE_GEOMETRY_BIT SHADER_STAGE_GEOMETRY_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled and a shader object is bound to any graphics stage, or a bound graphics pipeline state was created with the {@link KHRLineRasterization#VK_DYNAMIC_STATE_LINE_STIPPLE_KHR DYNAMIC_STATE_LINE_STIPPLE_KHR} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link #VK_FALSE FALSE}, and the current value of {@code stippledLineEnable} is {@link #VK_TRUE TRUE}, then {@link KHRLineRasterization#vkCmdSetLineStippleKHR CmdSetLineStippleKHR} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@code depthClipControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT} dynamic state enabled, then {@link EXTShaderObject#vkCmdSetDepthClipNegativeOneToOneEXT CmdSetDepthClipNegativeOneToOneEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@code depthClampControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTDepthClampControl#VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT} dynamic state enabled, and the current value of {@code depthClampEnable} is {@link #VK_TRUE TRUE}, then {@link EXTShaderObject#vkCmdSetDepthClampRangeEXT CmdSetDepthClampRangeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV} dynamic state enabled, then {@link EXTShaderObject#vkCmdSetViewportWScalingEnableNV CmdSetViewportWScalingEnableNV} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • @@ -12983,7 +13043,7 @@ public static void vkCmdDrawIndirect(VkCommandBuffer commandBuffer, @NativeType( *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the {@code rasterizationSamples} in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT} must follow the rules for a zero-attachment subpass
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_SAMPLE_MASK_EXT DYNAMIC_STATE_SAMPLE_MASK_EXT} state enabled and the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state disabled, then the {@code samples} parameter in the last call to {@link EXTShaderObject#vkCmdSetSampleMaskEXT CmdSetSampleMaskEXT} must be greater or equal to the {@link VkPipelineMultisampleStateCreateInfo}{@code ::rasterizationSamples} parameter used to create the bound graphics pipeline
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_SAMPLE_MASK_EXT DYNAMIC_STATE_SAMPLE_MASK_EXT} state and {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} states enabled, then the {@code samples} parameter in the last call to {@link EXTShaderObject#vkCmdSetSampleMaskEXT CmdSetSampleMaskEXT} must be greater or equal to the {@code rasterizationSamples} parameter in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT}
  • - *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT} must be the same as the current subpass color and/or depth/stencil attachments
  • + *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state enabled, and the {@code multisampledRenderToSingleSampled} feature is not enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT} must be the same as the current subpass color and/or depth/stencil attachments
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a {@link VkMultisampledRenderToSingleSampledInfoEXT} structure with {@code multisampledRenderToSingleSampledEnable} equal to {@link #VK_TRUE TRUE}, then the {@code rasterizationSamples} in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT} must be the same as the {@code rasterizationSamples} member of that structure
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetColorBlendEnableEXT CmdSetColorBlendEnableEXT} must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
  • *
  • If a shader object is bound to the {@link #VK_SHADER_STAGE_FRAGMENT_BIT SHADER_STAGE_FRAGMENT_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link #VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetColorBlendEnableEXT CmdSetColorBlendEnableEXT} must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
  • @@ -13062,7 +13122,7 @@ public static void vkCmdDrawIndirect(VkCommandBuffer commandBuffer, @NativeType( *
  • If there is a shader object bound to the {@link #VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT SHADER_STAGE_TESSELLATION_CONTROL_BIT} stage or the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState2#VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT} dynamic state enabled, and the current value of {@code primitiveTopology} is {@link #VK_PRIMITIVE_TOPOLOGY_PATCH_LIST PRIMITIVE_TOPOLOGY_PATCH_LIST}, then {@link EXTShaderObject#vkCmdSetPatchControlPointsEXT CmdSetPatchControlPointsEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If there is a shader object bound to the {@link #VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage or the bound graphics pipeline state was created with the {@link VK13#VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE} dynamic state enabled then {@link VK13#vkCmdSetPrimitiveRestartEnable CmdSetPrimitiveRestartEnable} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@code primitiveTopologyListRestart} feature is not enabled, the topology is {@link #VK_PRIMITIVE_TOPOLOGY_POINT_LIST PRIMITIVE_TOPOLOGY_POINT_LIST}, {@link #VK_PRIMITIVE_TOPOLOGY_LINE_LIST PRIMITIVE_TOPOLOGY_LINE_LIST}, {@link #VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST PRIMITIVE_TOPOLOGY_TRIANGLE_LIST}, {@link #VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY}, or {@link #VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY}, there is a shader object bound to the {@link #VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage or the bound graphics pipeline state was created with the {@link VK13#VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE} dynamic state enabled then {@link VK13#vkCmdSetPrimitiveRestartEnable CmdSetPrimitiveRestartEnable} must be {@link #VK_FALSE FALSE}
  • - *
  • The bound graphics pipeline must not have been created with the {@link VkPipelineShaderStageCreateInfo}{@code ::stage} member of an element of {@link VkGraphicsPipelineCreateInfo}{@code ::pStages} set to {@link EXTMeshShader#VK_SHADER_STAGE_TASK_BIT_EXT SHADER_STAGE_TASK_BIT_EXT} or {@link EXTMeshShader#VK_SHADER_STAGE_MESH_BIT_EXT SHADER_STAGE_MESH_BIT_EXT}
  • + *
  • The bound graphics pipeline must not have been created with the {@link VkPipelineShaderStageCreateInfo}{@code ::stage} member of any element of {@link VkGraphicsPipelineCreateInfo}{@code ::pStages} set to {@link EXTMeshShader#VK_SHADER_STAGE_TASK_BIT_EXT SHADER_STAGE_TASK_BIT_EXT} or {@link EXTMeshShader#VK_SHADER_STAGE_MESH_BIT_EXT SHADER_STAGE_MESH_BIT_EXT}
  • *
  • There must be no shader object bound to either of the {@link EXTMeshShader#VK_SHADER_STAGE_TASK_BIT_EXT SHADER_STAGE_TASK_BIT_EXT} or {@link EXTMeshShader#VK_SHADER_STAGE_MESH_BIT_EXT SHADER_STAGE_MESH_BIT_EXT} stages
  • * * @@ -13182,7 +13242,7 @@ public static void vkCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, @Nati *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type {@link #VK_IMAGE_VIEW_TYPE_3D IMAGE_VIEW_TYPE_3D}, {@link #VK_IMAGE_VIEW_TYPE_CUBE IMAGE_VIEW_TYPE_CUBE}, {@link #VK_IMAGE_VIEW_TYPE_1D_ARRAY IMAGE_VIEW_TYPE_1D_ARRAY}, {@link #VK_IMAGE_VIEW_TYPE_2D_ARRAY IMAGE_VIEW_TYPE_2D_ARRAY} or {@link #VK_IMAGE_VIEW_TYPE_CUBE_ARRAY IMAGE_VIEW_TYPE_CUBE_ARRAY}, in any shader stage
  • *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
  • *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
  • - *
  • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and {@link #VK_NULL_HANDLE NULL_HANDLE} shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • + *
  • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and {@link #VK_NULL_HANDLE NULL_HANDLE} shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • *
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT} or {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT} for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • *
  • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • *
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT} or {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT} for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • @@ -13318,7 +13378,7 @@ public static void vkCmdDispatch(VkCommandBuffer commandBuffer, @NativeType("uin *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type {@link #VK_IMAGE_VIEW_TYPE_3D IMAGE_VIEW_TYPE_3D}, {@link #VK_IMAGE_VIEW_TYPE_CUBE IMAGE_VIEW_TYPE_CUBE}, {@link #VK_IMAGE_VIEW_TYPE_1D_ARRAY IMAGE_VIEW_TYPE_1D_ARRAY}, {@link #VK_IMAGE_VIEW_TYPE_2D_ARRAY IMAGE_VIEW_TYPE_2D_ARRAY} or {@link #VK_IMAGE_VIEW_TYPE_CUBE_ARRAY IMAGE_VIEW_TYPE_CUBE_ARRAY}, in any shader stage
  • *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
  • *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
  • - *
  • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and {@link #VK_NULL_HANDLE NULL_HANDLE} shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • + *
  • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and {@link #VK_NULL_HANDLE NULL_HANDLE} shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • *
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT} or {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT} for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • *
  • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • *
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT} or {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT} for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • @@ -17141,8 +17201,8 @@ public static void nvkCmdExecuteCommands(VkCommandBuffer commandBuffer, int comm *
  • Each element of {@code pCommandBuffers} must have been allocated from a {@code VkCommandPool} that was created for the same queue family as the {@code VkCommandPool} from which {@code commandBuffer} was allocated
  • *
  • If {@code vkCmdExecuteCommands} is being called within a render pass instance, each element of {@code pCommandBuffers} must have been recorded with the {@link #VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT}
  • *
  • If {@code vkCmdExecuteCommands} is being called within a render pass instance, and any element of {@code pCommandBuffers} was recorded with {@link VkCommandBufferInheritanceInfo}{@code ::framebuffer} not equal to {@link #VK_NULL_HANDLE NULL_HANDLE}, that {@code VkFramebuffer} must match the {@code VkFramebuffer} used in the current render pass instance
  • - *
  • If {@code vkCmdExecuteCommands} is being called within a render pass instance begun with {@link #vkCmdBeginRenderPass CmdBeginRenderPass}, and {@link #vkCmdNextSubpass CmdNextSubpass} has not been called in the current render pass instance, the {@code contents} parameter of {@link #vkCmdBeginRenderPass CmdBeginRenderPass} must have been set to {@link #VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS} , or {@link EXTNestedCommandBuffer#VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT}
  • - *
  • If {@code vkCmdExecuteCommands} is being called within a render pass instance begun with {@link #vkCmdBeginRenderPass CmdBeginRenderPass}, and {@link #vkCmdNextSubpass CmdNextSubpass} has been called in the current render pass instance, the {@code contents} parameter of the last call to {@link #vkCmdNextSubpass CmdNextSubpass} must have been set to {@link #VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS} , or {@link KHRMaintenance7#VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR}
  • + *
  • If {@code vkCmdExecuteCommands} is being called within a render pass instance begun with {@link #vkCmdBeginRenderPass CmdBeginRenderPass}, and {@link #vkCmdNextSubpass CmdNextSubpass} has not been called in the current render pass instance, the {@code contents} parameter of {@link #vkCmdBeginRenderPass CmdBeginRenderPass} must have been {@link #VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS} , or {@link EXTNestedCommandBuffer#VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT}
  • + *
  • If {@code vkCmdExecuteCommands} is being called within a render pass instance begun with {@link #vkCmdBeginRenderPass CmdBeginRenderPass}, and {@link #vkCmdNextSubpass CmdNextSubpass} has been called in the current render pass instance, the {@code contents} parameter of the last call to {@link #vkCmdNextSubpass CmdNextSubpass} must have been {@link #VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS} , or {@link KHRMaintenance7#VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR}
  • *
  • If {@code vkCmdExecuteCommands} is being called within a render pass instance begun with {@link #vkCmdBeginRenderPass CmdBeginRenderPass}, each element of {@code pCommandBuffers} must have been recorded with {@link VkCommandBufferInheritanceInfo}{@code ::subpass} set to the index of the subpass which the given command buffer will be executed in
  • *
  • If {@code vkCmdExecuteCommands} is being called within a render pass instance begun with {@link #vkCmdBeginRenderPass CmdBeginRenderPass}, the render passes specified in the {@code pBeginInfo→pInheritanceInfo→renderPass} members of the {@link #vkBeginCommandBuffer BeginCommandBuffer} commands used to begin recording each element of {@code pCommandBuffers} must be compatible with the current render pass
  • *
  • If {@code vkCmdExecuteCommands} is being called within a render pass instance that included {@link VkRenderPassTransformBeginInfoQCOM} in the {@code pNext} chain of {@link VkRenderPassBeginInfo}, then each element of {@code pCommandBuffers} must have been recorded with {@link VkCommandBufferInheritanceRenderPassTransformInfoQCOM} in the {@code pNext} chain of {@link VkCommandBufferBeginInfo}
  • @@ -17255,8 +17315,8 @@ public static void vkCmdExecuteCommands(VkCommandBuffer commandBuffer, @NativeTy *
  • Each element of {@code pCommandBuffers} must have been allocated from a {@code VkCommandPool} that was created for the same queue family as the {@code VkCommandPool} from which {@code commandBuffer} was allocated
  • *
  • If {@code vkCmdExecuteCommands} is being called within a render pass instance, each element of {@code pCommandBuffers} must have been recorded with the {@link #VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT}
  • *
  • If {@code vkCmdExecuteCommands} is being called within a render pass instance, and any element of {@code pCommandBuffers} was recorded with {@link VkCommandBufferInheritanceInfo}{@code ::framebuffer} not equal to {@link #VK_NULL_HANDLE NULL_HANDLE}, that {@code VkFramebuffer} must match the {@code VkFramebuffer} used in the current render pass instance
  • - *
  • If {@code vkCmdExecuteCommands} is being called within a render pass instance begun with {@link #vkCmdBeginRenderPass CmdBeginRenderPass}, and {@link #vkCmdNextSubpass CmdNextSubpass} has not been called in the current render pass instance, the {@code contents} parameter of {@link #vkCmdBeginRenderPass CmdBeginRenderPass} must have been set to {@link #VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS} , or {@link EXTNestedCommandBuffer#VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT}
  • - *
  • If {@code vkCmdExecuteCommands} is being called within a render pass instance begun with {@link #vkCmdBeginRenderPass CmdBeginRenderPass}, and {@link #vkCmdNextSubpass CmdNextSubpass} has been called in the current render pass instance, the {@code contents} parameter of the last call to {@link #vkCmdNextSubpass CmdNextSubpass} must have been set to {@link #VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS} , or {@link KHRMaintenance7#VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR}
  • + *
  • If {@code vkCmdExecuteCommands} is being called within a render pass instance begun with {@link #vkCmdBeginRenderPass CmdBeginRenderPass}, and {@link #vkCmdNextSubpass CmdNextSubpass} has not been called in the current render pass instance, the {@code contents} parameter of {@link #vkCmdBeginRenderPass CmdBeginRenderPass} must have been {@link #VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS} , or {@link EXTNestedCommandBuffer#VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT}
  • + *
  • If {@code vkCmdExecuteCommands} is being called within a render pass instance begun with {@link #vkCmdBeginRenderPass CmdBeginRenderPass}, and {@link #vkCmdNextSubpass CmdNextSubpass} has been called in the current render pass instance, the {@code contents} parameter of the last call to {@link #vkCmdNextSubpass CmdNextSubpass} must have been {@link #VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS} , or {@link KHRMaintenance7#VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR}
  • *
  • If {@code vkCmdExecuteCommands} is being called within a render pass instance begun with {@link #vkCmdBeginRenderPass CmdBeginRenderPass}, each element of {@code pCommandBuffers} must have been recorded with {@link VkCommandBufferInheritanceInfo}{@code ::subpass} set to the index of the subpass which the given command buffer will be executed in
  • *
  • If {@code vkCmdExecuteCommands} is being called within a render pass instance begun with {@link #vkCmdBeginRenderPass CmdBeginRenderPass}, the render passes specified in the {@code pBeginInfo→pInheritanceInfo→renderPass} members of the {@link #vkBeginCommandBuffer BeginCommandBuffer} commands used to begin recording each element of {@code pCommandBuffers} must be compatible with the current render pass
  • *
  • If {@code vkCmdExecuteCommands} is being called within a render pass instance that included {@link VkRenderPassTransformBeginInfoQCOM} in the {@code pNext} chain of {@link VkRenderPassBeginInfo}, then each element of {@code pCommandBuffers} must have been recorded with {@link VkCommandBufferInheritanceRenderPassTransformInfoQCOM} in the {@code pNext} chain of {@link VkCommandBufferBeginInfo}
  • diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VK11.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VK11.java index 1715c49ade..ac68a31bb6 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VK11.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VK11.java @@ -1494,7 +1494,7 @@ public static void vkCmdSetDeviceMask(VkCommandBuffer commandBuffer, @NativeType *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type {@link VK10#VK_IMAGE_VIEW_TYPE_3D IMAGE_VIEW_TYPE_3D}, {@link VK10#VK_IMAGE_VIEW_TYPE_CUBE IMAGE_VIEW_TYPE_CUBE}, {@link VK10#VK_IMAGE_VIEW_TYPE_1D_ARRAY IMAGE_VIEW_TYPE_1D_ARRAY}, {@link VK10#VK_IMAGE_VIEW_TYPE_2D_ARRAY IMAGE_VIEW_TYPE_2D_ARRAY} or {@link VK10#VK_IMAGE_VIEW_TYPE_CUBE_ARRAY IMAGE_VIEW_TYPE_CUBE_ARRAY}, in any shader stage
  • *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
  • *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
  • - *
  • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and {@link VK10#VK_NULL_HANDLE NULL_HANDLE} shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • + *
  • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and {@link VK10#VK_NULL_HANDLE NULL_HANDLE} shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • *
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT} or {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT} for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • *
  • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • *
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT} or {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT} for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • @@ -1864,7 +1864,7 @@ public static void nvkGetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice * *
    Description
    * - *

    Each structure in {@code pFeatures} and its {@code pNext} chain contains members corresponding to fine-grained features. {@code vkGetPhysicalDeviceFeatures2} writes each member to a boolean value indicating whether that feature is supported.

    + *

    Each structure in {@code pFeatures} and its {@code pNext} chain contains members corresponding to fine-grained features. Each structure in {@code pFeatures} and its {@code pNext} chain contains {@code VkBool32} members corresponding to fine-grained features. Each such member is returned with a {@link VK10#VK_TRUE TRUE} value indicating that feature is supported on this physical device, or a {@link VK10#VK_FALSE FALSE} value indicating it is unsupported.

    * *
    Valid Usage (Implicit)
    * diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VK12.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VK12.java index ada0607606..fac73351f8 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VK12.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VK12.java @@ -679,7 +679,7 @@ protected VK12() { *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type {@link VK10#VK_IMAGE_VIEW_TYPE_3D IMAGE_VIEW_TYPE_3D}, {@link VK10#VK_IMAGE_VIEW_TYPE_CUBE IMAGE_VIEW_TYPE_CUBE}, {@link VK10#VK_IMAGE_VIEW_TYPE_1D_ARRAY IMAGE_VIEW_TYPE_1D_ARRAY}, {@link VK10#VK_IMAGE_VIEW_TYPE_2D_ARRAY IMAGE_VIEW_TYPE_2D_ARRAY} or {@link VK10#VK_IMAGE_VIEW_TYPE_CUBE_ARRAY IMAGE_VIEW_TYPE_CUBE_ARRAY}, in any shader stage
  • *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
  • *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
  • - *
  • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and {@link VK10#VK_NULL_HANDLE NULL_HANDLE} shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • + *
  • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and {@link VK10#VK_NULL_HANDLE NULL_HANDLE} shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • *
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT} or {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT} for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • *
  • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • *
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT} or {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT} for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • @@ -784,6 +784,7 @@ protected VK12() { *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK10#VK_DYNAMIC_STATE_STENCIL_REFERENCE DYNAMIC_STATE_STENCIL_REFERENCE} dynamic state enabled, the current value of and {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, the current value of {@code stencilTestEnable} is {@link VK10#VK_TRUE TRUE}, then {@link VK10#vkCmdSetStencilReference CmdSetStencilReference} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to {@link VkPhysicalDeviceMultiviewProperties}{@code ::maxMultiviewInstanceIndex}
  • *
  • If the bound graphics pipeline was created with {@link VkPipelineSampleLocationsStateCreateInfoEXT}{@code ::sampleLocationsEnable} set to {@link VK10#VK_TRUE TRUE} and the current subpass has a depth/stencil attachment, then that attachment must have been created with the {@link EXTSampleLocations#VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT} bit set
  • + *
  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetSampleLocationsEnableEXT CmdSetSampleLocationsEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTSampleLocations#VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, and the current value of {@code sampleLocationsEnable} is {@link VK10#VK_TRUE TRUE}, then {@link EXTSampleLocations#vkCmdSetSampleLocationsEXT CmdSetSampleLocationsEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_CULL_MODE DYNAMIC_STATE_CULL_MODE} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, then {@link VK13#vkCmdSetCullMode CmdSetCullMode} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_FRONT_FACE DYNAMIC_STATE_FRONT_FACE} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, then {@link VK13#vkCmdSetFrontFace CmdSetFrontFace} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • @@ -793,10 +794,9 @@ protected VK12() { *
  • If the {@code depthBounds} feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, then {@link VK13#vkCmdSetDepthBoundsTestEnable CmdSetDepthBoundsTestEnable} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE DYNAMIC_STATE_STENCIL_TEST_ENABLE} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, then {@link VK13#vkCmdSetStencilTestEnable CmdSetStencilTestEnable} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_STENCIL_OP DYNAMIC_STATE_STENCIL_OP} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, the current value of {@code stencilTestEnable} is {@link VK10#VK_TRUE TRUE}, then {@link VK13#vkCmdSetStencilOp CmdSetStencilOp} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the bound graphics pipeline state was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic state enabled, but not the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} dynamic state enabled, then {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount} must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@link VkPipelineViewportStateCreateInfo}{@code ::scissorCount} of the pipeline
  • - *
  • If the bound graphics pipeline state was created with the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} dynamic state enabled, but not the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic state enabled, then {@link VK13#vkCmdSetScissorWithCount CmdSetScissorWithCount} must have been called in the current command buffer prior to this drawing command, and the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount} must match the {@link VkPipelineViewportStateCreateInfo}{@code ::viewportCount} of the pipeline
  • - *
  • If the bound graphics pipeline state was created with both the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} and {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic states enabled then both {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount} and {@link VK13#vkCmdSetScissorWithCount CmdSetScissorWithCount} must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
  • - *
  • If a shader object is bound to any graphics stage, then both {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount} and {@link VK13#vkCmdSetScissorWithCount CmdSetScissorWithCount} must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
  • + *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic state enabled, and the state is not inherited, then {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} dynamic state enabled, and the state is not inherited, then {@link VK13#vkCmdSetScissorWithCount CmdSetScissorWithCount} must have been called and not subsequently invalidated in the current command buffer prior to this drawing
  • + *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with both the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} and {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic states enabled, and the state is not inherited, then the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
  • *
  • If the bound graphics pipeline state was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic state enabled, but not the {@link NVClipSpaceWScaling#VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV DYNAMIC_STATE_VIEWPORT_W_SCALING_NV} dynamic state enabled, then the bound graphics pipeline must have been created with {@link VkPipelineViewportWScalingStateCreateInfoNV}{@code ::viewportCount} greater or equal to the {@code viewportCount} parameter in the last call to {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount}
  • *
  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} and {@link NVClipSpaceWScaling#VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV DYNAMIC_STATE_VIEWPORT_W_SCALING_NV} dynamic state enabled, the current value of {@code viewportWScalingEnable} is {@link VK10#VK_TRUE TRUE}, then {@link NVClipSpaceWScaling#vkCmdSetViewportWScalingNV CmdSetViewportWScalingNV} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} and {@link NVClipSpaceWScaling#VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV DYNAMIC_STATE_VIEWPORT_W_SCALING_NV} dynamic state enabled, the current value of {@code viewportWScalingEnable} is {@link VK10#VK_TRUE TRUE}, then the {@code viewportCount} parameter in the last call to {@link NVClipSpaceWScaling#vkCmdSetViewportWScalingNV CmdSetViewportWScalingNV} must be greater than or equal to the {@code viewportCount} parameter in the last call to {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount}
  • @@ -862,19 +862,17 @@ protected VK12() { *
  • If the bound graphics pipeline state was created with the {@link EXTColorWriteEnable#VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT} dynamic state enabled then the {@code attachmentCount} parameter of {@code vkCmdSetColorWriteEnableEXT} must be greater than or equal to the {@link VkPipelineColorBlendStateCreateInfo}{@code ::attachmentCount} of the currently bound graphics pipeline
  • *
  • If the {@code colorWriteEnable} feature is enabled on the device, and a shader object is bound to the {@link VK10#VK_SHADER_STAGE_FRAGMENT_BIT SHADER_STAGE_FRAGMENT_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, then the {@code attachmentCount} parameter of most recent call to {@code vkCmdSetColorWriteEnableEXT} in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
  • *
  • If the bound graphics pipeline state was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_EXT} dynamic state enabled then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEXT CmdSetDiscardRectangleEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in {@link VkPipelineDiscardRectangleStateCreateInfoEXT}{@code ::discardRectangleCount}
  • - *
  • If the bound graphics pipeline state was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT} dynamic state enabled then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, and the current value of {@code discardRectangleEnable} is {@link VK10#VK_TRUE TRUE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleModeEXT CmdSetDiscardRectangleModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} in the current command buffer set {@code discardRectangleEnable} to {@link VK10#VK_TRUE TRUE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEXT CmdSetDiscardRectangleEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the bound graphics pipeline state was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT} dynamic state enabled then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleModeEXT CmdSetDiscardRectangleModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} in the current command buffer set {@code discardRectangleEnable} to {@link VK10#VK_TRUE TRUE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleModeEXT CmdSetDiscardRectangleModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView} was {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the value of {@link VkPipelineRenderingCreateInfo}{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to {@link VK10#VK_FORMAT_UNDEFINED FORMAT_UNDEFINED}
  • *
  • If current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the value of {@link VkPipelineRenderingCreateInfo}{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView}
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is enabled, {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, and the value of {@link VkPipelineRenderingCreateInfo}{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView}, the value of the format must be {@link VK10#VK_FORMAT_UNDEFINED FORMAT_UNDEFINED}
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView} was {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the value of {@link VkPipelineRenderingCreateInfo}{@code ::stencilAttachmentFormat} used to create the currently bound graphics pipeline must be equal to {@link VK10#VK_FORMAT_UNDEFINED FORMAT_UNDEFINED}
  • *
  • If current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the value of {@link VkPipelineRenderingCreateInfo}{@code ::stencilAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView}
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is enabled, {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, and the value of {@link VkPipelineRenderingCreateInfo}{@code ::stencilAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView}, the value of the format must be {@link VK10#VK_FORMAT_UNDEFINED FORMAT_UNDEFINED}
  • - *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} and {@link VkRenderingFragmentShadingRateAttachmentInfoKHR}{@code ::imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the currently bound graphics pipeline must have been created with {@link KHRDynamicRendering#VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR}
  • - *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} and {@link VkRenderingFragmentDensityMapAttachmentInfoEXT}{@code ::imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the currently bound graphics pipeline must have been created with {@link KHRDynamicRendering#VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT}
  • + *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} and {@link VkRenderingFragmentShadingRateAttachmentInfoKHR}{@code ::imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the currently bound graphics pipeline must have been created with {@link KHRFragmentShadingRate#VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR}
  • + *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} and {@link VkRenderingFragmentDensityMapAttachmentInfoEXT}{@code ::imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the currently bound graphics pipeline must have been created with {@link EXTFragmentDensityMap#VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT}
  • *
  • If the currently bound pipeline was created with a {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} structure, and the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} with a {@link VkRenderingInfo}{@code ::colorAttachmentCount} parameter greater than 0, then each element of the {@link VkRenderingInfo}{@code ::pColorAttachments} array with a {@code imageView} not equal to {@link VK10#VK_NULL_HANDLE NULL_HANDLE} must have been created with a sample count equal to the corresponding element of the {@code pColorAttachmentSamples} member of {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} used to create the currently bound graphics pipeline
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the currently bound pipeline was created with a {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} structure, and {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the value of the {@code depthStencilAttachmentSamples} member of {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} used to create the currently bound graphics pipeline must be equal to the sample count used to create {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView}
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the currently bound pipeline was created with a {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} structure, and {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the value of the {@code depthStencilAttachmentSamples} member of {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} used to create the currently bound graphics pipeline must be equal to the sample count used to create {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView}
  • @@ -908,21 +906,18 @@ protected VK12() { *
  • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetConservativeRasterizationModeEXT CmdSetConservativeRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, and the current value of {@code conservativeRasterizationMode} is {@link EXTConservativeRasterization#VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT}, then {@link EXTShaderObject#vkCmdSetExtraPrimitiveOverestimationSizeEXT CmdSetExtraPrimitiveOverestimationSizeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@code depthClipEnable} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT} dynamic state, then {@link EXTShaderObject#vkCmdSetDepthClipEnableEXT CmdSetDepthClipEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetSampleLocationsEnableEXT CmdSetSampleLocationsEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetSampleLocationsEnableEXT CmdSetSampleLocationsEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetColorBlendAdvancedEXT CmdSetColorBlendAdvancedEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTBlendOperationAdvanced VK_EXT_blend_operation_advanced} extension is enabled, and a shader object is bound to the {@link VK10#VK_SHADER_STAGE_FRAGMENT_BIT SHADER_STAGE_FRAGMENT_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, then at least one of {@link EXTShaderObject#vkCmdSetColorBlendEquationEXT CmdSetColorBlendEquationEXT} and {@link EXTShaderObject#vkCmdSetColorBlendAdvancedEXT CmdSetColorBlendAdvancedEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTProvokingVertex VK_EXT_provoking_vertex} extension is enabled, a shader object is bound to the {@link VK10#VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetProvokingVertexModeEXT CmdSetProvokingVertexModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetPolygonModeEXT CmdSetPolygonModeEXT} in the current command buffer set {@code polygonMode} to {@link VK10#VK_POLYGON_MODE_LINE POLYGON_MODE_LINE}, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the {@link VK10#VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link VK13#vkCmdSetPrimitiveTopology CmdSetPrimitiveTopology} in the current command buffer set {@code primitiveTopology} to any line topology, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the {@link VK10#VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT SHADER_STAGE_TESSELLATION_EVALUATION_BIT} or {@link VK10#VK_SHADER_STAGE_GEOMETRY_BIT SHADER_STAGE_GEOMETRY_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetPolygonModeEXT CmdSetPolygonModeEXT} in the current command buffer set {@code polygonMode} to {@link VK10#VK_POLYGON_MODE_LINE POLYGON_MODE_LINE}, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the {@link VK10#VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link VK13#vkCmdSetPrimitiveTopology CmdSetPrimitiveTopology} in the current command buffer set {@code primitiveTopology} to any line topology, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the {@link VK10#VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT SHADER_STAGE_TESSELLATION_EVALUATION_BIT} or {@link VK10#VK_SHADER_STAGE_GEOMETRY_BIT SHADER_STAGE_GEOMETRY_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetPolygonModeEXT CmdSetPolygonModeEXT} in the current command buffer set {@code polygonMode} to {@link VK10#VK_POLYGON_MODE_LINE POLYGON_MODE_LINE}, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the {@link VK10#VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link VK13#vkCmdSetPrimitiveTopology CmdSetPrimitiveTopology} in the current command buffer set {@code primitiveTopology} to any line topology, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the {@link VK10#VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT SHADER_STAGE_TESSELLATION_EVALUATION_BIT} or {@link VK10#VK_SHADER_STAGE_GEOMETRY_BIT SHADER_STAGE_GEOMETRY_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the bound graphics pipeline state was created with the {@link KHRLineRasterization#VK_DYNAMIC_STATE_LINE_STIPPLE_KHR DYNAMIC_STATE_LINE_STIPPLE_KHR} dynamic state enabled then {@link KHRLineRasterization#vkCmdSetLineStippleKHR CmdSetLineStippleKHR} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} in the current command buffer set {@code stippledLineEnable} to {@link VK10#VK_TRUE TRUE}, then {@link EXTLineRasterization#vkCmdSetLineStippleEXT CmdSetLineStippleEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetPolygonModeEXT CmdSetPolygonModeEXT} in the current command buffer set {@code polygonMode} to {@link VK10#VK_POLYGON_MODE_LINE POLYGON_MODE_LINE}, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the {@link VK10#VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link VK13#vkCmdSetPrimitiveTopology CmdSetPrimitiveTopology} in the current command buffer set {@code primitiveTopology} to any line topology, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the {@link VK10#VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT SHADER_STAGE_TESSELLATION_EVALUATION_BIT} or {@link VK10#VK_SHADER_STAGE_GEOMETRY_BIT SHADER_STAGE_GEOMETRY_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled and a shader object is bound to any graphics stage, or a bound graphics pipeline state was created with the {@link KHRLineRasterization#VK_DYNAMIC_STATE_LINE_STIPPLE_KHR DYNAMIC_STATE_LINE_STIPPLE_KHR} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, and the current value of {@code stippledLineEnable} is {@link VK10#VK_TRUE TRUE}, then {@link KHRLineRasterization#vkCmdSetLineStippleKHR CmdSetLineStippleKHR} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@code depthClipControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT} dynamic state enabled, then {@link EXTShaderObject#vkCmdSetDepthClipNegativeOneToOneEXT CmdSetDepthClipNegativeOneToOneEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@code depthClampControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTDepthClampControl#VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT} dynamic state enabled, and the current value of {@code depthClampEnable} is {@link VK10#VK_TRUE TRUE}, then {@link EXTShaderObject#vkCmdSetDepthClampRangeEXT CmdSetDepthClampRangeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV} dynamic state enabled, then {@link EXTShaderObject#vkCmdSetViewportWScalingEnableNV CmdSetViewportWScalingEnableNV} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • @@ -940,7 +935,7 @@ protected VK12() { *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the {@code rasterizationSamples} in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT} must follow the rules for a zero-attachment subpass
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_SAMPLE_MASK_EXT DYNAMIC_STATE_SAMPLE_MASK_EXT} state enabled and the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state disabled, then the {@code samples} parameter in the last call to {@link EXTShaderObject#vkCmdSetSampleMaskEXT CmdSetSampleMaskEXT} must be greater or equal to the {@link VkPipelineMultisampleStateCreateInfo}{@code ::rasterizationSamples} parameter used to create the bound graphics pipeline
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_SAMPLE_MASK_EXT DYNAMIC_STATE_SAMPLE_MASK_EXT} state and {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} states enabled, then the {@code samples} parameter in the last call to {@link EXTShaderObject#vkCmdSetSampleMaskEXT CmdSetSampleMaskEXT} must be greater or equal to the {@code rasterizationSamples} parameter in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT}
  • - *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT} must be the same as the current subpass color and/or depth/stencil attachments
  • + *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state enabled, and the {@code multisampledRenderToSingleSampled} feature is not enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT} must be the same as the current subpass color and/or depth/stencil attachments
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a {@link VkMultisampledRenderToSingleSampledInfoEXT} structure with {@code multisampledRenderToSingleSampledEnable} equal to {@link VK10#VK_TRUE TRUE}, then the {@code rasterizationSamples} in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT} must be the same as the {@code rasterizationSamples} member of that structure
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetColorBlendEnableEXT CmdSetColorBlendEnableEXT} must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
  • *
  • If a shader object is bound to the {@link VK10#VK_SHADER_STAGE_FRAGMENT_BIT SHADER_STAGE_FRAGMENT_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetColorBlendEnableEXT CmdSetColorBlendEnableEXT} must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
  • @@ -1019,7 +1014,7 @@ protected VK12() { *
  • If there is a shader object bound to the {@link VK10#VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT SHADER_STAGE_TESSELLATION_CONTROL_BIT} stage or the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState2#VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT} dynamic state enabled, and the current value of {@code primitiveTopology} is {@link VK10#VK_PRIMITIVE_TOPOLOGY_PATCH_LIST PRIMITIVE_TOPOLOGY_PATCH_LIST}, then {@link EXTShaderObject#vkCmdSetPatchControlPointsEXT CmdSetPatchControlPointsEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If there is a shader object bound to the {@link VK10#VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage or the bound graphics pipeline state was created with the {@link VK13#VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE} dynamic state enabled then {@link VK13#vkCmdSetPrimitiveRestartEnable CmdSetPrimitiveRestartEnable} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@code primitiveTopologyListRestart} feature is not enabled, the topology is {@link VK10#VK_PRIMITIVE_TOPOLOGY_POINT_LIST PRIMITIVE_TOPOLOGY_POINT_LIST}, {@link VK10#VK_PRIMITIVE_TOPOLOGY_LINE_LIST PRIMITIVE_TOPOLOGY_LINE_LIST}, {@link VK10#VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST PRIMITIVE_TOPOLOGY_TRIANGLE_LIST}, {@link VK10#VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY}, or {@link VK10#VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY}, there is a shader object bound to the {@link VK10#VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage or the bound graphics pipeline state was created with the {@link VK13#VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE} dynamic state enabled then {@link VK13#vkCmdSetPrimitiveRestartEnable CmdSetPrimitiveRestartEnable} must be {@link VK10#VK_FALSE FALSE}
  • - *
  • The bound graphics pipeline must not have been created with the {@link VkPipelineShaderStageCreateInfo}{@code ::stage} member of an element of {@link VkGraphicsPipelineCreateInfo}{@code ::pStages} set to {@link EXTMeshShader#VK_SHADER_STAGE_TASK_BIT_EXT SHADER_STAGE_TASK_BIT_EXT} or {@link EXTMeshShader#VK_SHADER_STAGE_MESH_BIT_EXT SHADER_STAGE_MESH_BIT_EXT}
  • + *
  • The bound graphics pipeline must not have been created with the {@link VkPipelineShaderStageCreateInfo}{@code ::stage} member of any element of {@link VkGraphicsPipelineCreateInfo}{@code ::pStages} set to {@link EXTMeshShader#VK_SHADER_STAGE_TASK_BIT_EXT SHADER_STAGE_TASK_BIT_EXT} or {@link EXTMeshShader#VK_SHADER_STAGE_MESH_BIT_EXT SHADER_STAGE_MESH_BIT_EXT}
  • *
  • There must be no shader object bound to either of the {@link EXTMeshShader#VK_SHADER_STAGE_TASK_BIT_EXT SHADER_STAGE_TASK_BIT_EXT} or {@link EXTMeshShader#VK_SHADER_STAGE_MESH_BIT_EXT SHADER_STAGE_MESH_BIT_EXT} stages
  • * * @@ -1039,8 +1034,6 @@ protected VK12() { *
  • If {@code drawIndirectCount} is not enabled this function must not be used
  • *
  • {@code stride} must be a multiple of 4 and must be greater than or equal to sizeof({@link VkDrawIndirectCommand})
  • *
  • If {@code maxDrawCount} is greater than or equal to 1, (stride × (maxDrawCount - 1) + offset + sizeof({@link VkDrawIndirectCommand})) must be less than or equal to the size of {@code buffer}
  • - *
  • If the count stored in {@code countBuffer} is equal to 1, (offset + sizeof({@link VkDrawIndirectCommand})) must be less than or equal to the size of {@code buffer}
  • - *
  • If the count stored in {@code countBuffer} is greater than 1, (stride × (drawCount - 1) + offset + sizeof({@link VkDrawIndirectCommand})) must be less than or equal to the size of {@code buffer}
  • * * *
    Valid Usage (Implicit)
    @@ -1173,7 +1166,7 @@ public static void vkCmdDrawIndirectCount(VkCommandBuffer commandBuffer, @Native *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type {@link VK10#VK_IMAGE_VIEW_TYPE_3D IMAGE_VIEW_TYPE_3D}, {@link VK10#VK_IMAGE_VIEW_TYPE_CUBE IMAGE_VIEW_TYPE_CUBE}, {@link VK10#VK_IMAGE_VIEW_TYPE_1D_ARRAY IMAGE_VIEW_TYPE_1D_ARRAY}, {@link VK10#VK_IMAGE_VIEW_TYPE_2D_ARRAY IMAGE_VIEW_TYPE_2D_ARRAY} or {@link VK10#VK_IMAGE_VIEW_TYPE_CUBE_ARRAY IMAGE_VIEW_TYPE_CUBE_ARRAY}, in any shader stage
  • *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
  • *
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
  • - *
  • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and {@link VK10#VK_NULL_HANDLE NULL_HANDLE} shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • + *
  • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and {@link VK10#VK_NULL_HANDLE NULL_HANDLE} shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • *
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT} or {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT} for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • *
  • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • *
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT} or {@link EXTPipelineRobustness#VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT} for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • @@ -1278,6 +1271,7 @@ public static void vkCmdDrawIndirectCount(VkCommandBuffer commandBuffer, @Native *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK10#VK_DYNAMIC_STATE_STENCIL_REFERENCE DYNAMIC_STATE_STENCIL_REFERENCE} dynamic state enabled, the current value of and {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, the current value of {@code stencilTestEnable} is {@link VK10#VK_TRUE TRUE}, then {@link VK10#vkCmdSetStencilReference CmdSetStencilReference} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to {@link VkPhysicalDeviceMultiviewProperties}{@code ::maxMultiviewInstanceIndex}
  • *
  • If the bound graphics pipeline was created with {@link VkPipelineSampleLocationsStateCreateInfoEXT}{@code ::sampleLocationsEnable} set to {@link VK10#VK_TRUE TRUE} and the current subpass has a depth/stencil attachment, then that attachment must have been created with the {@link EXTSampleLocations#VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT} bit set
  • + *
  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetSampleLocationsEnableEXT CmdSetSampleLocationsEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTSampleLocations#VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, and the current value of {@code sampleLocationsEnable} is {@link VK10#VK_TRUE TRUE}, then {@link EXTSampleLocations#vkCmdSetSampleLocationsEXT CmdSetSampleLocationsEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_CULL_MODE DYNAMIC_STATE_CULL_MODE} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, then {@link VK13#vkCmdSetCullMode CmdSetCullMode} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_FRONT_FACE DYNAMIC_STATE_FRONT_FACE} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, then {@link VK13#vkCmdSetFrontFace CmdSetFrontFace} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • @@ -1287,10 +1281,9 @@ public static void vkCmdDrawIndirectCount(VkCommandBuffer commandBuffer, @Native *
  • If the {@code depthBounds} feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, then {@link VK13#vkCmdSetDepthBoundsTestEnable CmdSetDepthBoundsTestEnable} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE DYNAMIC_STATE_STENCIL_TEST_ENABLE} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, then {@link VK13#vkCmdSetStencilTestEnable CmdSetStencilTestEnable} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_STENCIL_OP DYNAMIC_STATE_STENCIL_OP} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, the current value of {@code stencilTestEnable} is {@link VK10#VK_TRUE TRUE}, then {@link VK13#vkCmdSetStencilOp CmdSetStencilOp} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the bound graphics pipeline state was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic state enabled, but not the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} dynamic state enabled, then {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount} must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@link VkPipelineViewportStateCreateInfo}{@code ::scissorCount} of the pipeline
  • - *
  • If the bound graphics pipeline state was created with the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} dynamic state enabled, but not the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic state enabled, then {@link VK13#vkCmdSetScissorWithCount CmdSetScissorWithCount} must have been called in the current command buffer prior to this drawing command, and the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount} must match the {@link VkPipelineViewportStateCreateInfo}{@code ::viewportCount} of the pipeline
  • - *
  • If the bound graphics pipeline state was created with both the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} and {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic states enabled then both {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount} and {@link VK13#vkCmdSetScissorWithCount CmdSetScissorWithCount} must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
  • - *
  • If a shader object is bound to any graphics stage, then both {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount} and {@link VK13#vkCmdSetScissorWithCount CmdSetScissorWithCount} must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
  • + *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic state enabled, and the state is not inherited, then {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} dynamic state enabled, and the state is not inherited, then {@link VK13#vkCmdSetScissorWithCount CmdSetScissorWithCount} must have been called and not subsequently invalidated in the current command buffer prior to this drawing
  • + *
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with both the {@link VK13#VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT DYNAMIC_STATE_SCISSOR_WITH_COUNT} and {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic states enabled, and the state is not inherited, then the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
  • *
  • If the bound graphics pipeline state was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} dynamic state enabled, but not the {@link NVClipSpaceWScaling#VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV DYNAMIC_STATE_VIEWPORT_W_SCALING_NV} dynamic state enabled, then the bound graphics pipeline must have been created with {@link VkPipelineViewportWScalingStateCreateInfoNV}{@code ::viewportCount} greater or equal to the {@code viewportCount} parameter in the last call to {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount}
  • *
  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} and {@link NVClipSpaceWScaling#VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV DYNAMIC_STATE_VIEWPORT_W_SCALING_NV} dynamic state enabled, the current value of {@code viewportWScalingEnable} is {@link VK10#VK_TRUE TRUE}, then {@link NVClipSpaceWScaling#vkCmdSetViewportWScalingNV CmdSetViewportWScalingNV} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link VK13#VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT DYNAMIC_STATE_VIEWPORT_WITH_COUNT} and {@link NVClipSpaceWScaling#VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV DYNAMIC_STATE_VIEWPORT_W_SCALING_NV} dynamic state enabled, the current value of {@code viewportWScalingEnable} is {@link VK10#VK_TRUE TRUE}, then the {@code viewportCount} parameter in the last call to {@link NVClipSpaceWScaling#vkCmdSetViewportWScalingNV CmdSetViewportWScalingNV} must be greater than or equal to the {@code viewportCount} parameter in the last call to {@link VK13#vkCmdSetViewportWithCount CmdSetViewportWithCount}
  • @@ -1356,19 +1349,17 @@ public static void vkCmdDrawIndirectCount(VkCommandBuffer commandBuffer, @Native *
  • If the bound graphics pipeline state was created with the {@link EXTColorWriteEnable#VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT} dynamic state enabled then the {@code attachmentCount} parameter of {@code vkCmdSetColorWriteEnableEXT} must be greater than or equal to the {@link VkPipelineColorBlendStateCreateInfo}{@code ::attachmentCount} of the currently bound graphics pipeline
  • *
  • If the {@code colorWriteEnable} feature is enabled on the device, and a shader object is bound to the {@link VK10#VK_SHADER_STAGE_FRAGMENT_BIT SHADER_STAGE_FRAGMENT_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, then the {@code attachmentCount} parameter of most recent call to {@code vkCmdSetColorWriteEnableEXT} in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
  • *
  • If the bound graphics pipeline state was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_EXT} dynamic state enabled then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEXT CmdSetDiscardRectangleEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in {@link VkPipelineDiscardRectangleStateCreateInfoEXT}{@code ::discardRectangleCount}
  • - *
  • If the bound graphics pipeline state was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT} dynamic state enabled then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, and the current value of {@code discardRectangleEnable} is {@link VK10#VK_TRUE TRUE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleModeEXT CmdSetDiscardRectangleModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} in the current command buffer set {@code discardRectangleEnable} to {@link VK10#VK_TRUE TRUE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEXT CmdSetDiscardRectangleEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the bound graphics pipeline state was created with the {@link EXTDiscardRectangles#VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT} dynamic state enabled then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleModeEXT CmdSetDiscardRectangleModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleEnableEXT CmdSetDiscardRectangleEnableEXT} in the current command buffer set {@code discardRectangleEnable} to {@link VK10#VK_TRUE TRUE}, then {@link EXTDiscardRectangles#vkCmdSetDiscardRectangleModeEXT CmdSetDiscardRectangleModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView} was {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the value of {@link VkPipelineRenderingCreateInfo}{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to {@link VK10#VK_FORMAT_UNDEFINED FORMAT_UNDEFINED}
  • *
  • If current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the value of {@link VkPipelineRenderingCreateInfo}{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView}
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is enabled, {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, and the value of {@link VkPipelineRenderingCreateInfo}{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView}, the value of the format must be {@link VK10#VK_FORMAT_UNDEFINED FORMAT_UNDEFINED}
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView} was {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the value of {@link VkPipelineRenderingCreateInfo}{@code ::stencilAttachmentFormat} used to create the currently bound graphics pipeline must be equal to {@link VK10#VK_FORMAT_UNDEFINED FORMAT_UNDEFINED}
  • *
  • If current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the value of {@link VkPipelineRenderingCreateInfo}{@code ::stencilAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView}
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the {@code dynamicRenderingUnusedAttachments} feature is enabled, {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, and the value of {@link VkPipelineRenderingCreateInfo}{@code ::stencilAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView}, the value of the format must be {@link VK10#VK_FORMAT_UNDEFINED FORMAT_UNDEFINED}
  • - *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} and {@link VkRenderingFragmentShadingRateAttachmentInfoKHR}{@code ::imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the currently bound graphics pipeline must have been created with {@link KHRDynamicRendering#VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR}
  • - *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} and {@link VkRenderingFragmentDensityMapAttachmentInfoEXT}{@code ::imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the currently bound graphics pipeline must have been created with {@link KHRDynamicRendering#VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT}
  • + *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} and {@link VkRenderingFragmentShadingRateAttachmentInfoKHR}{@code ::imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the currently bound graphics pipeline must have been created with {@link KHRFragmentShadingRate#VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR}
  • + *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} and {@link VkRenderingFragmentDensityMapAttachmentInfoEXT}{@code ::imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the currently bound graphics pipeline must have been created with {@link EXTFragmentDensityMap#VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT}
  • *
  • If the currently bound pipeline was created with a {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} structure, and the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering} with a {@link VkRenderingInfo}{@code ::colorAttachmentCount} parameter greater than 0, then each element of the {@link VkRenderingInfo}{@code ::pColorAttachments} array with a {@code imageView} not equal to {@link VK10#VK_NULL_HANDLE NULL_HANDLE} must have been created with a sample count equal to the corresponding element of the {@code pColorAttachmentSamples} member of {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} used to create the currently bound graphics pipeline
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the currently bound pipeline was created with a {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} structure, and {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the value of the {@code depthStencilAttachmentSamples} member of {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} used to create the currently bound graphics pipeline must be equal to the sample count used to create {@link VkRenderingInfo}{@code ::pDepthAttachment→imageView}
  • *
  • If the current render pass instance was begun with {@link VK13#vkCmdBeginRendering CmdBeginRendering}, the currently bound pipeline was created with a {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} structure, and {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView} was not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, the value of the {@code depthStencilAttachmentSamples} member of {@link VkAttachmentSampleCountInfoAMD} or {@link VkAttachmentSampleCountInfoNV} used to create the currently bound graphics pipeline must be equal to the sample count used to create {@link VkRenderingInfo}{@code ::pStencilAttachment→imageView}
  • @@ -1402,21 +1393,18 @@ public static void vkCmdDrawIndirectCount(VkCommandBuffer commandBuffer, @Native *
  • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetConservativeRasterizationModeEXT CmdSetConservativeRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, and the current value of {@code conservativeRasterizationMode} is {@link EXTConservativeRasterization#VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT}, then {@link EXTShaderObject#vkCmdSetExtraPrimitiveOverestimationSizeEXT CmdSetExtraPrimitiveOverestimationSizeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@code depthClipEnable} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT} dynamic state, then {@link EXTShaderObject#vkCmdSetDepthClipEnableEXT CmdSetDepthClipEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetSampleLocationsEnableEXT CmdSetSampleLocationsEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetSampleLocationsEnableEXT CmdSetSampleLocationsEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetColorBlendAdvancedEXT CmdSetColorBlendAdvancedEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTBlendOperationAdvanced VK_EXT_blend_operation_advanced} extension is enabled, and a shader object is bound to the {@link VK10#VK_SHADER_STAGE_FRAGMENT_BIT SHADER_STAGE_FRAGMENT_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, then at least one of {@link EXTShaderObject#vkCmdSetColorBlendEquationEXT CmdSetColorBlendEquationEXT} and {@link EXTShaderObject#vkCmdSetColorBlendAdvancedEXT CmdSetColorBlendAdvancedEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link EXTProvokingVertex VK_EXT_provoking_vertex} extension is enabled, a shader object is bound to the {@link VK10#VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT} dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetProvokingVertexModeEXT CmdSetProvokingVertexModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetPolygonModeEXT CmdSetPolygonModeEXT} in the current command buffer set {@code polygonMode} to {@link VK10#VK_POLYGON_MODE_LINE POLYGON_MODE_LINE}, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the {@link VK10#VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link VK13#vkCmdSetPrimitiveTopology CmdSetPrimitiveTopology} in the current command buffer set {@code primitiveTopology} to any line topology, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the {@link VK10#VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT SHADER_STAGE_TESSELLATION_EVALUATION_BIT} or {@link VK10#VK_SHADER_STAGE_GEOMETRY_BIT SHADER_STAGE_GEOMETRY_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetPolygonModeEXT CmdSetPolygonModeEXT} in the current command buffer set {@code polygonMode} to {@link VK10#VK_POLYGON_MODE_LINE POLYGON_MODE_LINE}, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the {@link VK10#VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link VK13#vkCmdSetPrimitiveTopology CmdSetPrimitiveTopology} in the current command buffer set {@code primitiveTopology} to any line topology, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the {@link VK10#VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT SHADER_STAGE_TESSELLATION_EVALUATION_BIT} or {@link VK10#VK_SHADER_STAGE_GEOMETRY_BIT SHADER_STAGE_GEOMETRY_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetLineRasterizationModeEXT CmdSetLineRasterizationModeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetPolygonModeEXT CmdSetPolygonModeEXT} in the current command buffer set {@code polygonMode} to {@link VK10#VK_POLYGON_MODE_LINE POLYGON_MODE_LINE}, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the {@link VK10#VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link VK13#vkCmdSetPrimitiveTopology CmdSetPrimitiveTopology} in the current command buffer set {@code primitiveTopology} to any line topology, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the {@link VK10#VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT SHADER_STAGE_TESSELLATION_EVALUATION_BIT} or {@link VK10#VK_SHADER_STAGE_GEOMETRY_BIT SHADER_STAGE_GEOMETRY_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the bound graphics pipeline state was created with the {@link KHRLineRasterization#VK_DYNAMIC_STATE_LINE_STIPPLE_KHR DYNAMIC_STATE_LINE_STIPPLE_KHR} dynamic state enabled then {@link KHRLineRasterization#vkCmdSetLineStippleKHR CmdSetLineStippleKHR} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • - *
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} in the current command buffer set {@code stippledLineEnable} to {@link VK10#VK_TRUE TRUE}, then {@link EXTLineRasterization#vkCmdSetLineStippleEXT CmdSetLineStippleEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link EXTShaderObject#vkCmdSetPolygonModeEXT CmdSetPolygonModeEXT} in the current command buffer set {@code polygonMode} to {@link VK10#VK_POLYGON_MODE_LINE POLYGON_MODE_LINE}, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the {@link VK10#VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, and the most recent call to {@link VK13#vkCmdSetPrimitiveTopology CmdSetPrimitiveTopology} in the current command buffer set {@code primitiveTopology} to any line topology, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the {@link VK10#VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT SHADER_STAGE_TESSELLATION_EVALUATION_BIT} or {@link VK10#VK_SHADER_STAGE_GEOMETRY_BIT SHADER_STAGE_GEOMETRY_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetLineStippleEnableEXT CmdSetLineStippleEnableEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • + *
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled and a shader object is bound to any graphics stage, or a bound graphics pipeline state was created with the {@link KHRLineRasterization#VK_DYNAMIC_STATE_LINE_STIPPLE_KHR DYNAMIC_STATE_LINE_STIPPLE_KHR} dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE}, and the current value of {@code stippledLineEnable} is {@link VK10#VK_TRUE TRUE}, then {@link KHRLineRasterization#vkCmdSetLineStippleKHR CmdSetLineStippleKHR} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@code depthClipControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT} dynamic state enabled, then {@link EXTShaderObject#vkCmdSetDepthClipNegativeOneToOneEXT CmdSetDepthClipNegativeOneToOneEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@code depthClampControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTDepthClampControl#VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT} dynamic state enabled, and the current value of {@code depthClampEnable} is {@link VK10#VK_TRUE TRUE}, then {@link EXTShaderObject#vkCmdSetDepthClampRangeEXT CmdSetDepthClampRangeEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV} dynamic state enabled, then {@link EXTShaderObject#vkCmdSetViewportWScalingEnableNV CmdSetViewportWScalingEnableNV} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • @@ -1434,7 +1422,7 @@ public static void vkCmdDrawIndirectCount(VkCommandBuffer commandBuffer, @Native *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the {@code rasterizationSamples} in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT} must follow the rules for a zero-attachment subpass
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_SAMPLE_MASK_EXT DYNAMIC_STATE_SAMPLE_MASK_EXT} state enabled and the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state disabled, then the {@code samples} parameter in the last call to {@link EXTShaderObject#vkCmdSetSampleMaskEXT CmdSetSampleMaskEXT} must be greater or equal to the {@link VkPipelineMultisampleStateCreateInfo}{@code ::rasterizationSamples} parameter used to create the bound graphics pipeline
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_SAMPLE_MASK_EXT DYNAMIC_STATE_SAMPLE_MASK_EXT} state and {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} states enabled, then the {@code samples} parameter in the last call to {@link EXTShaderObject#vkCmdSetSampleMaskEXT CmdSetSampleMaskEXT} must be greater or equal to the {@code rasterizationSamples} parameter in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT}
  • - *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT} must be the same as the current subpass color and/or depth/stencil attachments
  • + *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state enabled, and the {@code multisampledRenderToSingleSampled} feature is not enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT} must be the same as the current subpass color and/or depth/stencil attachments
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT} state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a {@link VkMultisampledRenderToSingleSampledInfoEXT} structure with {@code multisampledRenderToSingleSampledEnable} equal to {@link VK10#VK_TRUE TRUE}, then the {@code rasterizationSamples} in the last call to {@link EXTShaderObject#vkCmdSetRasterizationSamplesEXT CmdSetRasterizationSamplesEXT} must be the same as the {@code rasterizationSamples} member of that structure
  • *
  • If the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState3#VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT} dynamic state enabled then {@link EXTShaderObject#vkCmdSetColorBlendEnableEXT CmdSetColorBlendEnableEXT} must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
  • *
  • If a shader object is bound to the {@link VK10#VK_SHADER_STAGE_FRAGMENT_BIT SHADER_STAGE_FRAGMENT_BIT} stage, and the most recent call to {@link VK13#vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable} in the current command buffer set {@code rasterizerDiscardEnable} to {@link VK10#VK_FALSE FALSE}, then {@link EXTShaderObject#vkCmdSetColorBlendEnableEXT CmdSetColorBlendEnableEXT} must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
  • @@ -1513,7 +1501,7 @@ public static void vkCmdDrawIndirectCount(VkCommandBuffer commandBuffer, @Native *
  • If there is a shader object bound to the {@link VK10#VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT SHADER_STAGE_TESSELLATION_CONTROL_BIT} stage or the bound graphics pipeline state was created with the {@link EXTExtendedDynamicState2#VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT} dynamic state enabled, and the current value of {@code primitiveTopology} is {@link VK10#VK_PRIMITIVE_TOPOLOGY_PATCH_LIST PRIMITIVE_TOPOLOGY_PATCH_LIST}, then {@link EXTShaderObject#vkCmdSetPatchControlPointsEXT CmdSetPatchControlPointsEXT} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If there is a shader object bound to the {@link VK10#VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage or the bound graphics pipeline state was created with the {@link VK13#VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE} dynamic state enabled then {@link VK13#vkCmdSetPrimitiveRestartEnable CmdSetPrimitiveRestartEnable} must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • *
  • If the {@code primitiveTopologyListRestart} feature is not enabled, the topology is {@link VK10#VK_PRIMITIVE_TOPOLOGY_POINT_LIST PRIMITIVE_TOPOLOGY_POINT_LIST}, {@link VK10#VK_PRIMITIVE_TOPOLOGY_LINE_LIST PRIMITIVE_TOPOLOGY_LINE_LIST}, {@link VK10#VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST PRIMITIVE_TOPOLOGY_TRIANGLE_LIST}, {@link VK10#VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY}, or {@link VK10#VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY}, there is a shader object bound to the {@link VK10#VK_SHADER_STAGE_VERTEX_BIT SHADER_STAGE_VERTEX_BIT} stage or the bound graphics pipeline state was created with the {@link VK13#VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE} dynamic state enabled then {@link VK13#vkCmdSetPrimitiveRestartEnable CmdSetPrimitiveRestartEnable} must be {@link VK10#VK_FALSE FALSE}
  • - *
  • The bound graphics pipeline must not have been created with the {@link VkPipelineShaderStageCreateInfo}{@code ::stage} member of an element of {@link VkGraphicsPipelineCreateInfo}{@code ::pStages} set to {@link EXTMeshShader#VK_SHADER_STAGE_TASK_BIT_EXT SHADER_STAGE_TASK_BIT_EXT} or {@link EXTMeshShader#VK_SHADER_STAGE_MESH_BIT_EXT SHADER_STAGE_MESH_BIT_EXT}
  • + *
  • The bound graphics pipeline must not have been created with the {@link VkPipelineShaderStageCreateInfo}{@code ::stage} member of any element of {@link VkGraphicsPipelineCreateInfo}{@code ::pStages} set to {@link EXTMeshShader#VK_SHADER_STAGE_TASK_BIT_EXT SHADER_STAGE_TASK_BIT_EXT} or {@link EXTMeshShader#VK_SHADER_STAGE_MESH_BIT_EXT SHADER_STAGE_MESH_BIT_EXT}
  • *
  • There must be no shader object bound to either of the {@link EXTMeshShader#VK_SHADER_STAGE_TASK_BIT_EXT SHADER_STAGE_TASK_BIT_EXT} or {@link EXTMeshShader#VK_SHADER_STAGE_MESH_BIT_EXT SHADER_STAGE_MESH_BIT_EXT} stages
  • * * @@ -1537,8 +1525,6 @@ public static void vkCmdDrawIndirectCount(VkCommandBuffer commandBuffer, @Native *
  • If {@code maintenance6} is not enabled, a valid index buffer must be bound
  • *
  • {@code stride} must be a multiple of 4 and must be greater than or equal to sizeof({@link VkDrawIndexedIndirectCommand})
  • *
  • If {@code maxDrawCount} is greater than or equal to 1, (stride × (maxDrawCount - 1) + offset + sizeof({@link VkDrawIndexedIndirectCommand})) must be less than or equal to the size of {@code buffer}
  • - *
  • If count stored in {@code countBuffer} is equal to 1, (offset + sizeof({@link VkDrawIndexedIndirectCommand})) must be less than or equal to the size of {@code buffer}
  • - *
  • If count stored in {@code countBuffer} is greater than 1, (stride × (drawCount - 1) + offset + sizeof({@link VkDrawIndexedIndirectCommand})) must be less than or equal to the size of {@code buffer}
  • * * *
    Valid Usage (Implicit)
    diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VKCapabilitiesDevice.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VKCapabilitiesDevice.java index 82595900c1..6a9524fe1f 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VKCapabilitiesDevice.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VKCapabilitiesDevice.java @@ -222,7 +222,8 @@ public class VKCapabilitiesDevice { /** Function pointers for AMD_buffer_marker */ public final long - vkCmdWriteBufferMarkerAMD; + vkCmdWriteBufferMarkerAMD, + vkCmdWriteBufferMarker2AMD; /** Function pointers for AMD_display_native_hdr */ public final long @@ -775,9 +776,7 @@ public class VKCapabilitiesDevice { vkCmdWaitEvents2KHR, vkCmdPipelineBarrier2KHR, vkCmdWriteTimestamp2KHR, - vkQueueSubmit2KHR, - vkCmdWriteBufferMarker2AMD, - vkGetQueueCheckpointData2NV; + vkQueueSubmit2KHR; /** Function pointers for KHR_timeline_semaphore */ public final long @@ -828,7 +827,8 @@ public class VKCapabilitiesDevice { /** Function pointers for NV_device_diagnostic_checkpoints */ public final long vkCmdSetCheckpointNV, - vkGetQueueCheckpointDataNV; + vkGetQueueCheckpointDataNV, + vkGetQueueCheckpointData2NV; /** Function pointers for NV_device_generated_commands */ public final long @@ -1165,6 +1165,8 @@ public class VKCapabilitiesDevice { public final boolean VK_EXT_pipeline_robustness; /** When true, {@link EXTPostDepthCoverage} is supported. */ public final boolean VK_EXT_post_depth_coverage; + /** When true, {@link EXTPresentModeFifoLatestReady} is supported. */ + public final boolean VK_EXT_present_mode_fifo_latest_ready; /** When true, {@link EXTPrimitiveTopologyListRestart} is supported. */ public final boolean VK_EXT_primitive_topology_list_restart; /** When true, {@link EXTPrimitivesGeneratedQuery} is supported. */ @@ -1247,6 +1249,8 @@ public class VKCapabilitiesDevice { public final boolean VK_GOOGLE_user_type; /** When true, {@link HUAWEIClusterCullingShader} is supported. */ public final boolean VK_HUAWEI_cluster_culling_shader; + /** When true, {@link HUAWEIHdrVivid} is supported. */ + public final boolean VK_HUAWEI_hdr_vivid; /** When true, {@link HUAWEIInvocationMask} is supported. */ public final boolean VK_HUAWEI_invocation_mask; /** When true, {@link HUAWEISubpassShading} is supported. */ @@ -1483,6 +1487,8 @@ public class VKCapabilitiesDevice { public final boolean VK_NV_compute_shader_derivatives; /** When true, {@link NVCooperativeMatrix} is supported. */ public final boolean VK_NV_cooperative_matrix; + /** When true, {@link NVCooperativeMatrix2} is supported. */ + public final boolean VK_NV_cooperative_matrix2; /** When true, {@link NVCopyMemoryIndirect} is supported. */ public final boolean VK_NV_copy_memory_indirect; /** When true, {@link NVCornerSampledImage} is supported. */ @@ -1744,6 +1750,7 @@ public class VKCapabilitiesDevice { VK_EXT_pipeline_protected_access = ext.contains("VK_EXT_pipeline_protected_access"); VK_EXT_pipeline_robustness = ext.contains("VK_EXT_pipeline_robustness"); VK_EXT_post_depth_coverage = ext.contains("VK_EXT_post_depth_coverage"); + VK_EXT_present_mode_fifo_latest_ready = ext.contains("VK_EXT_present_mode_fifo_latest_ready"); VK_EXT_primitive_topology_list_restart = ext.contains("VK_EXT_primitive_topology_list_restart"); VK_EXT_primitives_generated_query = ext.contains("VK_EXT_primitives_generated_query"); VK_EXT_private_data = check_EXT_private_data(provider, caps, ext); @@ -1785,6 +1792,7 @@ public class VKCapabilitiesDevice { VK_GOOGLE_hlsl_functionality1 = ext.contains("VK_GOOGLE_hlsl_functionality1"); VK_GOOGLE_user_type = ext.contains("VK_GOOGLE_user_type"); VK_HUAWEI_cluster_culling_shader = check_HUAWEI_cluster_culling_shader(provider, caps, ext); + VK_HUAWEI_hdr_vivid = ext.contains("VK_HUAWEI_hdr_vivid"); VK_HUAWEI_invocation_mask = check_HUAWEI_invocation_mask(provider, caps, ext); VK_HUAWEI_subpass_shading = check_HUAWEI_subpass_shading(provider, caps, ext); VK_IMG_filter_cubic = ext.contains("VK_IMG_filter_cubic"); @@ -1903,6 +1911,7 @@ public class VKCapabilitiesDevice { VK_NV_command_buffer_inheritance = ext.contains("VK_NV_command_buffer_inheritance"); VK_NV_compute_shader_derivatives = ext.contains("VK_NV_compute_shader_derivatives"); VK_NV_cooperative_matrix = ext.contains("VK_NV_cooperative_matrix"); + VK_NV_cooperative_matrix2 = ext.contains("VK_NV_cooperative_matrix2"); VK_NV_copy_memory_indirect = check_NV_copy_memory_indirect(provider, caps, ext); VK_NV_corner_sampled_image = ext.contains("VK_NV_corner_sampled_image"); VK_NV_coverage_reduction_mode = ext.contains("VK_NV_coverage_reduction_mode"); @@ -2162,333 +2171,333 @@ public class VKCapabilitiesDevice { vkGetDeviceImageSparseMemoryRequirements = caps[185]; vkAntiLagUpdateAMD = caps[186]; vkCmdWriteBufferMarkerAMD = caps[187]; - vkSetLocalDimmingAMD = caps[188]; - vkCmdDrawIndirectCountAMD = caps[189]; - vkCmdDrawIndexedIndirectCountAMD = caps[190]; - vkGetShaderInfoAMD = caps[191]; - vkCreateExecutionGraphPipelinesAMDX = caps[192]; - vkGetExecutionGraphPipelineScratchSizeAMDX = caps[193]; - vkGetExecutionGraphPipelineNodeIndexAMDX = caps[194]; - vkCmdInitializeGraphScratchMemoryAMDX = caps[195]; - vkCmdDispatchGraphAMDX = caps[196]; - vkCmdDispatchGraphIndirectAMDX = caps[197]; - vkCmdDispatchGraphIndirectCountAMDX = caps[198]; - vkGetAndroidHardwareBufferPropertiesANDROID = caps[199]; - vkGetMemoryAndroidHardwareBufferANDROID = caps[200]; - vkCmdSetAttachmentFeedbackLoopEnableEXT = caps[201]; - vkGetBufferDeviceAddressEXT = caps[202]; - vkGetCalibratedTimestampsEXT = caps[203]; - vkCmdSetColorWriteEnableEXT = caps[204]; - vkCmdBeginConditionalRenderingEXT = caps[205]; - vkCmdEndConditionalRenderingEXT = caps[206]; - vkDebugMarkerSetObjectTagEXT = caps[207]; - vkDebugMarkerSetObjectNameEXT = caps[208]; - vkCmdDebugMarkerBeginEXT = caps[209]; - vkCmdDebugMarkerEndEXT = caps[210]; - vkCmdDebugMarkerInsertEXT = caps[211]; - vkCmdSetDepthBias2EXT = caps[212]; - vkCmdSetDepthClampRangeEXT = caps[213]; - vkGetDescriptorSetLayoutSizeEXT = caps[214]; - vkGetDescriptorSetLayoutBindingOffsetEXT = caps[215]; - vkGetDescriptorEXT = caps[216]; - vkCmdBindDescriptorBuffersEXT = caps[217]; - vkCmdSetDescriptorBufferOffsetsEXT = caps[218]; - vkCmdBindDescriptorBufferEmbeddedSamplersEXT = caps[219]; - vkGetBufferOpaqueCaptureDescriptorDataEXT = caps[220]; - vkGetImageOpaqueCaptureDescriptorDataEXT = caps[221]; - vkGetImageViewOpaqueCaptureDescriptorDataEXT = caps[222]; - vkGetSamplerOpaqueCaptureDescriptorDataEXT = caps[223]; - vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = caps[224]; - vkGetDeviceFaultInfoEXT = caps[225]; - vkGetGeneratedCommandsMemoryRequirementsEXT = caps[226]; - vkCmdPreprocessGeneratedCommandsEXT = caps[227]; - vkCmdExecuteGeneratedCommandsEXT = caps[228]; - vkCreateIndirectCommandsLayoutEXT = caps[229]; - vkDestroyIndirectCommandsLayoutEXT = caps[230]; - vkCreateIndirectExecutionSetEXT = caps[231]; - vkDestroyIndirectExecutionSetEXT = caps[232]; - vkUpdateIndirectExecutionSetPipelineEXT = caps[233]; - vkUpdateIndirectExecutionSetShaderEXT = caps[234]; - vkCmdSetDiscardRectangleEXT = caps[235]; - vkCmdSetDiscardRectangleEnableEXT = caps[236]; - vkCmdSetDiscardRectangleModeEXT = caps[237]; - vkDisplayPowerControlEXT = caps[238]; - vkRegisterDeviceEventEXT = caps[239]; - vkRegisterDisplayEventEXT = caps[240]; - vkGetSwapchainCounterEXT = caps[241]; - vkCmdSetCullModeEXT = caps[242]; - vkCmdSetFrontFaceEXT = caps[243]; - vkCmdSetPrimitiveTopologyEXT = caps[244]; - vkCmdSetViewportWithCountEXT = caps[245]; - vkCmdSetScissorWithCountEXT = caps[246]; - vkCmdBindVertexBuffers2EXT = caps[247]; - vkCmdSetDepthTestEnableEXT = caps[248]; - vkCmdSetDepthWriteEnableEXT = caps[249]; - vkCmdSetDepthCompareOpEXT = caps[250]; - vkCmdSetDepthBoundsTestEnableEXT = caps[251]; - vkCmdSetStencilTestEnableEXT = caps[252]; - vkCmdSetStencilOpEXT = caps[253]; - vkCmdSetPatchControlPointsEXT = caps[254]; - vkCmdSetRasterizerDiscardEnableEXT = caps[255]; - vkCmdSetDepthBiasEnableEXT = caps[256]; - vkCmdSetLogicOpEXT = caps[257]; - vkCmdSetPrimitiveRestartEnableEXT = caps[258]; - vkCmdSetDepthClampEnableEXT = caps[259]; - vkCmdSetPolygonModeEXT = caps[260]; - vkCmdSetRasterizationSamplesEXT = caps[261]; - vkCmdSetSampleMaskEXT = caps[262]; - vkCmdSetAlphaToCoverageEnableEXT = caps[263]; - vkCmdSetAlphaToOneEnableEXT = caps[264]; - vkCmdSetLogicOpEnableEXT = caps[265]; - vkCmdSetColorBlendEnableEXT = caps[266]; - vkCmdSetColorBlendEquationEXT = caps[267]; - vkCmdSetColorWriteMaskEXT = caps[268]; - vkCmdSetTessellationDomainOriginEXT = caps[269]; - vkCmdSetRasterizationStreamEXT = caps[270]; - vkCmdSetConservativeRasterizationModeEXT = caps[271]; - vkCmdSetExtraPrimitiveOverestimationSizeEXT = caps[272]; - vkCmdSetDepthClipEnableEXT = caps[273]; - vkCmdSetSampleLocationsEnableEXT = caps[274]; - vkCmdSetColorBlendAdvancedEXT = caps[275]; - vkCmdSetProvokingVertexModeEXT = caps[276]; - vkCmdSetLineRasterizationModeEXT = caps[277]; - vkCmdSetLineStippleEnableEXT = caps[278]; - vkCmdSetDepthClipNegativeOneToOneEXT = caps[279]; - vkCmdSetViewportWScalingEnableNV = caps[280]; - vkCmdSetViewportSwizzleNV = caps[281]; - vkCmdSetCoverageToColorEnableNV = caps[282]; - vkCmdSetCoverageToColorLocationNV = caps[283]; - vkCmdSetCoverageModulationModeNV = caps[284]; - vkCmdSetCoverageModulationTableEnableNV = caps[285]; - vkCmdSetCoverageModulationTableNV = caps[286]; - vkCmdSetShadingRateImageEnableNV = caps[287]; - vkCmdSetRepresentativeFragmentTestEnableNV = caps[288]; - vkCmdSetCoverageReductionModeNV = caps[289]; - vkGetMemoryHostPointerPropertiesEXT = caps[290]; - vkAcquireFullScreenExclusiveModeEXT = caps[291]; - vkReleaseFullScreenExclusiveModeEXT = caps[292]; - vkGetDeviceGroupSurfacePresentModes2EXT = caps[293]; - vkSetHdrMetadataEXT = caps[294]; - vkCopyMemoryToImageEXT = caps[295]; - vkCopyImageToMemoryEXT = caps[296]; - vkCopyImageToImageEXT = caps[297]; - vkTransitionImageLayoutEXT = caps[298]; - vkGetImageSubresourceLayout2EXT = caps[299]; - vkResetQueryPoolEXT = caps[300]; - vkGetImageDrmFormatModifierPropertiesEXT = caps[301]; - vkCmdSetLineStippleEXT = caps[302]; - vkCmdDrawMeshTasksEXT = caps[303]; - vkCmdDrawMeshTasksIndirectEXT = caps[304]; - vkCmdDrawMeshTasksIndirectCountEXT = caps[305]; - vkExportMetalObjectsEXT = caps[306]; - vkCmdDrawMultiEXT = caps[307]; - vkCmdDrawMultiIndexedEXT = caps[308]; - vkCreateMicromapEXT = caps[309]; - vkDestroyMicromapEXT = caps[310]; - vkCmdBuildMicromapsEXT = caps[311]; - vkBuildMicromapsEXT = caps[312]; - vkCopyMicromapEXT = caps[313]; - vkCopyMicromapToMemoryEXT = caps[314]; - vkCopyMemoryToMicromapEXT = caps[315]; - vkWriteMicromapsPropertiesEXT = caps[316]; - vkCmdCopyMicromapEXT = caps[317]; - vkCmdCopyMicromapToMemoryEXT = caps[318]; - vkCmdCopyMemoryToMicromapEXT = caps[319]; - vkCmdWriteMicromapsPropertiesEXT = caps[320]; - vkGetDeviceMicromapCompatibilityEXT = caps[321]; - vkGetMicromapBuildSizesEXT = caps[322]; - vkSetDeviceMemoryPriorityEXT = caps[323]; - vkGetPipelinePropertiesEXT = caps[324]; - vkCreatePrivateDataSlotEXT = caps[325]; - vkDestroyPrivateDataSlotEXT = caps[326]; - vkSetPrivateDataEXT = caps[327]; - vkGetPrivateDataEXT = caps[328]; - vkCmdSetSampleLocationsEXT = caps[329]; - vkGetShaderModuleIdentifierEXT = caps[330]; - vkGetShaderModuleCreateInfoIdentifierEXT = caps[331]; - vkCreateShadersEXT = caps[332]; - vkDestroyShaderEXT = caps[333]; - vkGetShaderBinaryDataEXT = caps[334]; - vkCmdBindShadersEXT = caps[335]; - vkCmdSetVertexInputEXT = caps[336]; - vkReleaseSwapchainImagesEXT = caps[337]; - vkCmdBindTransformFeedbackBuffersEXT = caps[338]; - vkCmdBeginTransformFeedbackEXT = caps[339]; - vkCmdEndTransformFeedbackEXT = caps[340]; - vkCmdBeginQueryIndexedEXT = caps[341]; - vkCmdEndQueryIndexedEXT = caps[342]; - vkCmdDrawIndirectByteCountEXT = caps[343]; - vkCreateValidationCacheEXT = caps[344]; - vkDestroyValidationCacheEXT = caps[345]; - vkMergeValidationCachesEXT = caps[346]; - vkGetValidationCacheDataEXT = caps[347]; - vkGetRefreshCycleDurationGOOGLE = caps[348]; - vkGetPastPresentationTimingGOOGLE = caps[349]; - vkCmdDrawClusterHUAWEI = caps[350]; - vkCmdDrawClusterIndirectHUAWEI = caps[351]; - vkCmdBindInvocationMaskHUAWEI = caps[352]; - vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = caps[353]; - vkCmdSubpassShadingHUAWEI = caps[354]; - vkInitializePerformanceApiINTEL = caps[355]; - vkUninitializePerformanceApiINTEL = caps[356]; - vkCmdSetPerformanceMarkerINTEL = caps[357]; - vkCmdSetPerformanceStreamMarkerINTEL = caps[358]; - vkCmdSetPerformanceOverrideINTEL = caps[359]; - vkAcquirePerformanceConfigurationINTEL = caps[360]; - vkReleasePerformanceConfigurationINTEL = caps[361]; - vkQueueSetPerformanceConfigurationINTEL = caps[362]; - vkGetPerformanceParameterINTEL = caps[363]; - vkCreateAccelerationStructureKHR = caps[364]; - vkDestroyAccelerationStructureKHR = caps[365]; - vkCmdBuildAccelerationStructuresKHR = caps[366]; - vkCmdBuildAccelerationStructuresIndirectKHR = caps[367]; - vkBuildAccelerationStructuresKHR = caps[368]; - vkCopyAccelerationStructureKHR = caps[369]; - vkCopyAccelerationStructureToMemoryKHR = caps[370]; - vkCopyMemoryToAccelerationStructureKHR = caps[371]; - vkWriteAccelerationStructuresPropertiesKHR = caps[372]; - vkCmdCopyAccelerationStructureKHR = caps[373]; - vkCmdCopyAccelerationStructureToMemoryKHR = caps[374]; - vkCmdCopyMemoryToAccelerationStructureKHR = caps[375]; - vkGetAccelerationStructureDeviceAddressKHR = caps[376]; - vkCmdWriteAccelerationStructuresPropertiesKHR = caps[377]; - vkGetDeviceAccelerationStructureCompatibilityKHR = caps[378]; - vkGetAccelerationStructureBuildSizesKHR = caps[379]; - vkBindBufferMemory2KHR = caps[380]; - vkBindImageMemory2KHR = caps[381]; - vkGetBufferDeviceAddressKHR = caps[382]; - vkGetBufferOpaqueCaptureAddressKHR = caps[383]; - vkGetDeviceMemoryOpaqueCaptureAddressKHR = caps[384]; - vkGetCalibratedTimestampsKHR = caps[385]; - vkCmdCopyBuffer2KHR = caps[386]; - vkCmdCopyImage2KHR = caps[387]; - vkCmdCopyBufferToImage2KHR = caps[388]; - vkCmdCopyImageToBuffer2KHR = caps[389]; - vkCmdBlitImage2KHR = caps[390]; - vkCmdResolveImage2KHR = caps[391]; - vkCreateRenderPass2KHR = caps[392]; - vkCmdBeginRenderPass2KHR = caps[393]; - vkCmdNextSubpass2KHR = caps[394]; - vkCmdEndRenderPass2KHR = caps[395]; - vkCreateDeferredOperationKHR = caps[396]; - vkDestroyDeferredOperationKHR = caps[397]; - vkGetDeferredOperationMaxConcurrencyKHR = caps[398]; - vkGetDeferredOperationResultKHR = caps[399]; - vkDeferredOperationJoinKHR = caps[400]; - vkCreateDescriptorUpdateTemplateKHR = caps[401]; - vkDestroyDescriptorUpdateTemplateKHR = caps[402]; - vkUpdateDescriptorSetWithTemplateKHR = caps[403]; - vkCmdPushDescriptorSetWithTemplateKHR = caps[404]; - vkGetDeviceGroupPeerMemoryFeaturesKHR = caps[405]; - vkCmdSetDeviceMaskKHR = caps[406]; - vkCmdDispatchBaseKHR = caps[407]; - vkGetDeviceGroupPresentCapabilitiesKHR = caps[408]; - vkGetDeviceGroupSurfacePresentModesKHR = caps[409]; - vkAcquireNextImage2KHR = caps[410]; - vkCreateSharedSwapchainsKHR = caps[411]; - vkCmdDrawIndirectCountKHR = caps[412]; - vkCmdDrawIndexedIndirectCountKHR = caps[413]; - vkCmdBeginRenderingKHR = caps[414]; - vkCmdEndRenderingKHR = caps[415]; - vkCmdSetRenderingAttachmentLocationsKHR = caps[416]; - vkCmdSetRenderingInputAttachmentIndicesKHR = caps[417]; - vkImportFenceFdKHR = caps[418]; - vkGetFenceFdKHR = caps[419]; - vkImportFenceWin32HandleKHR = caps[420]; - vkGetFenceWin32HandleKHR = caps[421]; - vkGetMemoryFdKHR = caps[422]; - vkGetMemoryFdPropertiesKHR = caps[423]; - vkGetMemoryWin32HandleKHR = caps[424]; - vkGetMemoryWin32HandlePropertiesKHR = caps[425]; - vkImportSemaphoreFdKHR = caps[426]; - vkGetSemaphoreFdKHR = caps[427]; - vkImportSemaphoreWin32HandleKHR = caps[428]; - vkGetSemaphoreWin32HandleKHR = caps[429]; - vkCmdSetFragmentShadingRateKHR = caps[430]; - vkGetImageMemoryRequirements2KHR = caps[431]; - vkGetBufferMemoryRequirements2KHR = caps[432]; - vkGetImageSparseMemoryRequirements2KHR = caps[433]; - vkCmdSetLineStippleKHR = caps[434]; - vkTrimCommandPoolKHR = caps[435]; - vkGetDescriptorSetLayoutSupportKHR = caps[436]; - vkGetDeviceBufferMemoryRequirementsKHR = caps[437]; - vkGetDeviceImageMemoryRequirementsKHR = caps[438]; - vkGetDeviceImageSparseMemoryRequirementsKHR = caps[439]; - vkCmdBindIndexBuffer2KHR = caps[440]; - vkGetRenderingAreaGranularityKHR = caps[441]; - vkGetDeviceImageSubresourceLayoutKHR = caps[442]; - vkGetImageSubresourceLayout2KHR = caps[443]; - vkCmdBindDescriptorSets2KHR = caps[444]; - vkCmdPushConstants2KHR = caps[445]; - vkCmdPushDescriptorSet2KHR = caps[446]; - vkCmdPushDescriptorSetWithTemplate2KHR = caps[447]; - vkCmdSetDescriptorBufferOffsets2EXT = caps[448]; - vkCmdBindDescriptorBufferEmbeddedSamplers2EXT = caps[449]; - vkMapMemory2KHR = caps[450]; - vkUnmapMemory2KHR = caps[451]; - vkAcquireProfilingLockKHR = caps[452]; - vkReleaseProfilingLockKHR = caps[453]; - vkCreatePipelineBinariesKHR = caps[454]; - vkDestroyPipelineBinaryKHR = caps[455]; - vkGetPipelineKeyKHR = caps[456]; - vkGetPipelineBinaryDataKHR = caps[457]; - vkReleaseCapturedPipelineDataKHR = caps[458]; - vkGetPipelineExecutablePropertiesKHR = caps[459]; - vkGetPipelineExecutableStatisticsKHR = caps[460]; - vkGetPipelineExecutableInternalRepresentationsKHR = caps[461]; - vkWaitForPresentKHR = caps[462]; - vkCmdPushDescriptorSetKHR = caps[463]; - vkCmdTraceRaysIndirect2KHR = caps[464]; - vkCmdTraceRaysKHR = caps[465]; - vkCreateRayTracingPipelinesKHR = caps[466]; - vkGetRayTracingShaderGroupHandlesKHR = caps[467]; - vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = caps[468]; - vkCmdTraceRaysIndirectKHR = caps[469]; - vkGetRayTracingShaderGroupStackSizeKHR = caps[470]; - vkCmdSetRayTracingPipelineStackSizeKHR = caps[471]; - vkCreateSamplerYcbcrConversionKHR = caps[472]; - vkDestroySamplerYcbcrConversionKHR = caps[473]; - vkGetSwapchainStatusKHR = caps[474]; - vkCreateSwapchainKHR = caps[475]; - vkDestroySwapchainKHR = caps[476]; - vkGetSwapchainImagesKHR = caps[477]; - vkAcquireNextImageKHR = caps[478]; - vkQueuePresentKHR = caps[479]; - vkCmdSetEvent2KHR = caps[480]; - vkCmdResetEvent2KHR = caps[481]; - vkCmdWaitEvents2KHR = caps[482]; - vkCmdPipelineBarrier2KHR = caps[483]; - vkCmdWriteTimestamp2KHR = caps[484]; - vkQueueSubmit2KHR = caps[485]; - vkCmdWriteBufferMarker2AMD = caps[486]; - vkGetQueueCheckpointData2NV = caps[487]; - vkGetSemaphoreCounterValueKHR = caps[488]; - vkWaitSemaphoresKHR = caps[489]; - vkSignalSemaphoreKHR = caps[490]; - vkCmdDecodeVideoKHR = caps[491]; - vkGetEncodedVideoSessionParametersKHR = caps[492]; - vkCmdEncodeVideoKHR = caps[493]; - vkCreateVideoSessionKHR = caps[494]; - vkDestroyVideoSessionKHR = caps[495]; - vkGetVideoSessionMemoryRequirementsKHR = caps[496]; - vkBindVideoSessionMemoryKHR = caps[497]; - vkCreateVideoSessionParametersKHR = caps[498]; - vkUpdateVideoSessionParametersKHR = caps[499]; - vkDestroyVideoSessionParametersKHR = caps[500]; - vkCmdBeginVideoCodingKHR = caps[501]; - vkCmdEndVideoCodingKHR = caps[502]; - vkCmdControlVideoCodingKHR = caps[503]; - vkCmdSetViewportWScalingNV = caps[504]; - vkCmdCopyMemoryIndirectNV = caps[505]; - vkCmdCopyMemoryToImageIndirectNV = caps[506]; - vkCreateCudaModuleNV = caps[507]; - vkGetCudaModuleCacheNV = caps[508]; - vkCreateCudaFunctionNV = caps[509]; - vkDestroyCudaModuleNV = caps[510]; - vkDestroyCudaFunctionNV = caps[511]; - vkCmdCudaLaunchKernelNV = caps[512]; - vkCmdSetCheckpointNV = caps[513]; - vkGetQueueCheckpointDataNV = caps[514]; + vkCmdWriteBufferMarker2AMD = caps[188]; + vkSetLocalDimmingAMD = caps[189]; + vkCmdDrawIndirectCountAMD = caps[190]; + vkCmdDrawIndexedIndirectCountAMD = caps[191]; + vkGetShaderInfoAMD = caps[192]; + vkCreateExecutionGraphPipelinesAMDX = caps[193]; + vkGetExecutionGraphPipelineScratchSizeAMDX = caps[194]; + vkGetExecutionGraphPipelineNodeIndexAMDX = caps[195]; + vkCmdInitializeGraphScratchMemoryAMDX = caps[196]; + vkCmdDispatchGraphAMDX = caps[197]; + vkCmdDispatchGraphIndirectAMDX = caps[198]; + vkCmdDispatchGraphIndirectCountAMDX = caps[199]; + vkGetAndroidHardwareBufferPropertiesANDROID = caps[200]; + vkGetMemoryAndroidHardwareBufferANDROID = caps[201]; + vkCmdSetAttachmentFeedbackLoopEnableEXT = caps[202]; + vkGetBufferDeviceAddressEXT = caps[203]; + vkGetCalibratedTimestampsEXT = caps[204]; + vkCmdSetColorWriteEnableEXT = caps[205]; + vkCmdBeginConditionalRenderingEXT = caps[206]; + vkCmdEndConditionalRenderingEXT = caps[207]; + vkDebugMarkerSetObjectTagEXT = caps[208]; + vkDebugMarkerSetObjectNameEXT = caps[209]; + vkCmdDebugMarkerBeginEXT = caps[210]; + vkCmdDebugMarkerEndEXT = caps[211]; + vkCmdDebugMarkerInsertEXT = caps[212]; + vkCmdSetDepthBias2EXT = caps[213]; + vkCmdSetDepthClampRangeEXT = caps[214]; + vkGetDescriptorSetLayoutSizeEXT = caps[215]; + vkGetDescriptorSetLayoutBindingOffsetEXT = caps[216]; + vkGetDescriptorEXT = caps[217]; + vkCmdBindDescriptorBuffersEXT = caps[218]; + vkCmdSetDescriptorBufferOffsetsEXT = caps[219]; + vkCmdBindDescriptorBufferEmbeddedSamplersEXT = caps[220]; + vkGetBufferOpaqueCaptureDescriptorDataEXT = caps[221]; + vkGetImageOpaqueCaptureDescriptorDataEXT = caps[222]; + vkGetImageViewOpaqueCaptureDescriptorDataEXT = caps[223]; + vkGetSamplerOpaqueCaptureDescriptorDataEXT = caps[224]; + vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = caps[225]; + vkGetDeviceFaultInfoEXT = caps[226]; + vkGetGeneratedCommandsMemoryRequirementsEXT = caps[227]; + vkCmdPreprocessGeneratedCommandsEXT = caps[228]; + vkCmdExecuteGeneratedCommandsEXT = caps[229]; + vkCreateIndirectCommandsLayoutEXT = caps[230]; + vkDestroyIndirectCommandsLayoutEXT = caps[231]; + vkCreateIndirectExecutionSetEXT = caps[232]; + vkDestroyIndirectExecutionSetEXT = caps[233]; + vkUpdateIndirectExecutionSetPipelineEXT = caps[234]; + vkUpdateIndirectExecutionSetShaderEXT = caps[235]; + vkCmdSetDiscardRectangleEXT = caps[236]; + vkCmdSetDiscardRectangleEnableEXT = caps[237]; + vkCmdSetDiscardRectangleModeEXT = caps[238]; + vkDisplayPowerControlEXT = caps[239]; + vkRegisterDeviceEventEXT = caps[240]; + vkRegisterDisplayEventEXT = caps[241]; + vkGetSwapchainCounterEXT = caps[242]; + vkCmdSetCullModeEXT = caps[243]; + vkCmdSetFrontFaceEXT = caps[244]; + vkCmdSetPrimitiveTopologyEXT = caps[245]; + vkCmdSetViewportWithCountEXT = caps[246]; + vkCmdSetScissorWithCountEXT = caps[247]; + vkCmdBindVertexBuffers2EXT = caps[248]; + vkCmdSetDepthTestEnableEXT = caps[249]; + vkCmdSetDepthWriteEnableEXT = caps[250]; + vkCmdSetDepthCompareOpEXT = caps[251]; + vkCmdSetDepthBoundsTestEnableEXT = caps[252]; + vkCmdSetStencilTestEnableEXT = caps[253]; + vkCmdSetStencilOpEXT = caps[254]; + vkCmdSetPatchControlPointsEXT = caps[255]; + vkCmdSetRasterizerDiscardEnableEXT = caps[256]; + vkCmdSetDepthBiasEnableEXT = caps[257]; + vkCmdSetLogicOpEXT = caps[258]; + vkCmdSetPrimitiveRestartEnableEXT = caps[259]; + vkCmdSetDepthClampEnableEXT = caps[260]; + vkCmdSetPolygonModeEXT = caps[261]; + vkCmdSetRasterizationSamplesEXT = caps[262]; + vkCmdSetSampleMaskEXT = caps[263]; + vkCmdSetAlphaToCoverageEnableEXT = caps[264]; + vkCmdSetAlphaToOneEnableEXT = caps[265]; + vkCmdSetLogicOpEnableEXT = caps[266]; + vkCmdSetColorBlendEnableEXT = caps[267]; + vkCmdSetColorBlendEquationEXT = caps[268]; + vkCmdSetColorWriteMaskEXT = caps[269]; + vkCmdSetTessellationDomainOriginEXT = caps[270]; + vkCmdSetRasterizationStreamEXT = caps[271]; + vkCmdSetConservativeRasterizationModeEXT = caps[272]; + vkCmdSetExtraPrimitiveOverestimationSizeEXT = caps[273]; + vkCmdSetDepthClipEnableEXT = caps[274]; + vkCmdSetSampleLocationsEnableEXT = caps[275]; + vkCmdSetColorBlendAdvancedEXT = caps[276]; + vkCmdSetProvokingVertexModeEXT = caps[277]; + vkCmdSetLineRasterizationModeEXT = caps[278]; + vkCmdSetLineStippleEnableEXT = caps[279]; + vkCmdSetDepthClipNegativeOneToOneEXT = caps[280]; + vkCmdSetViewportWScalingEnableNV = caps[281]; + vkCmdSetViewportSwizzleNV = caps[282]; + vkCmdSetCoverageToColorEnableNV = caps[283]; + vkCmdSetCoverageToColorLocationNV = caps[284]; + vkCmdSetCoverageModulationModeNV = caps[285]; + vkCmdSetCoverageModulationTableEnableNV = caps[286]; + vkCmdSetCoverageModulationTableNV = caps[287]; + vkCmdSetShadingRateImageEnableNV = caps[288]; + vkCmdSetRepresentativeFragmentTestEnableNV = caps[289]; + vkCmdSetCoverageReductionModeNV = caps[290]; + vkGetMemoryHostPointerPropertiesEXT = caps[291]; + vkAcquireFullScreenExclusiveModeEXT = caps[292]; + vkReleaseFullScreenExclusiveModeEXT = caps[293]; + vkGetDeviceGroupSurfacePresentModes2EXT = caps[294]; + vkSetHdrMetadataEXT = caps[295]; + vkCopyMemoryToImageEXT = caps[296]; + vkCopyImageToMemoryEXT = caps[297]; + vkCopyImageToImageEXT = caps[298]; + vkTransitionImageLayoutEXT = caps[299]; + vkGetImageSubresourceLayout2EXT = caps[300]; + vkResetQueryPoolEXT = caps[301]; + vkGetImageDrmFormatModifierPropertiesEXT = caps[302]; + vkCmdSetLineStippleEXT = caps[303]; + vkCmdDrawMeshTasksEXT = caps[304]; + vkCmdDrawMeshTasksIndirectEXT = caps[305]; + vkCmdDrawMeshTasksIndirectCountEXT = caps[306]; + vkExportMetalObjectsEXT = caps[307]; + vkCmdDrawMultiEXT = caps[308]; + vkCmdDrawMultiIndexedEXT = caps[309]; + vkCreateMicromapEXT = caps[310]; + vkDestroyMicromapEXT = caps[311]; + vkCmdBuildMicromapsEXT = caps[312]; + vkBuildMicromapsEXT = caps[313]; + vkCopyMicromapEXT = caps[314]; + vkCopyMicromapToMemoryEXT = caps[315]; + vkCopyMemoryToMicromapEXT = caps[316]; + vkWriteMicromapsPropertiesEXT = caps[317]; + vkCmdCopyMicromapEXT = caps[318]; + vkCmdCopyMicromapToMemoryEXT = caps[319]; + vkCmdCopyMemoryToMicromapEXT = caps[320]; + vkCmdWriteMicromapsPropertiesEXT = caps[321]; + vkGetDeviceMicromapCompatibilityEXT = caps[322]; + vkGetMicromapBuildSizesEXT = caps[323]; + vkSetDeviceMemoryPriorityEXT = caps[324]; + vkGetPipelinePropertiesEXT = caps[325]; + vkCreatePrivateDataSlotEXT = caps[326]; + vkDestroyPrivateDataSlotEXT = caps[327]; + vkSetPrivateDataEXT = caps[328]; + vkGetPrivateDataEXT = caps[329]; + vkCmdSetSampleLocationsEXT = caps[330]; + vkGetShaderModuleIdentifierEXT = caps[331]; + vkGetShaderModuleCreateInfoIdentifierEXT = caps[332]; + vkCreateShadersEXT = caps[333]; + vkDestroyShaderEXT = caps[334]; + vkGetShaderBinaryDataEXT = caps[335]; + vkCmdBindShadersEXT = caps[336]; + vkCmdSetVertexInputEXT = caps[337]; + vkReleaseSwapchainImagesEXT = caps[338]; + vkCmdBindTransformFeedbackBuffersEXT = caps[339]; + vkCmdBeginTransformFeedbackEXT = caps[340]; + vkCmdEndTransformFeedbackEXT = caps[341]; + vkCmdBeginQueryIndexedEXT = caps[342]; + vkCmdEndQueryIndexedEXT = caps[343]; + vkCmdDrawIndirectByteCountEXT = caps[344]; + vkCreateValidationCacheEXT = caps[345]; + vkDestroyValidationCacheEXT = caps[346]; + vkMergeValidationCachesEXT = caps[347]; + vkGetValidationCacheDataEXT = caps[348]; + vkGetRefreshCycleDurationGOOGLE = caps[349]; + vkGetPastPresentationTimingGOOGLE = caps[350]; + vkCmdDrawClusterHUAWEI = caps[351]; + vkCmdDrawClusterIndirectHUAWEI = caps[352]; + vkCmdBindInvocationMaskHUAWEI = caps[353]; + vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = caps[354]; + vkCmdSubpassShadingHUAWEI = caps[355]; + vkInitializePerformanceApiINTEL = caps[356]; + vkUninitializePerformanceApiINTEL = caps[357]; + vkCmdSetPerformanceMarkerINTEL = caps[358]; + vkCmdSetPerformanceStreamMarkerINTEL = caps[359]; + vkCmdSetPerformanceOverrideINTEL = caps[360]; + vkAcquirePerformanceConfigurationINTEL = caps[361]; + vkReleasePerformanceConfigurationINTEL = caps[362]; + vkQueueSetPerformanceConfigurationINTEL = caps[363]; + vkGetPerformanceParameterINTEL = caps[364]; + vkCreateAccelerationStructureKHR = caps[365]; + vkDestroyAccelerationStructureKHR = caps[366]; + vkCmdBuildAccelerationStructuresKHR = caps[367]; + vkCmdBuildAccelerationStructuresIndirectKHR = caps[368]; + vkBuildAccelerationStructuresKHR = caps[369]; + vkCopyAccelerationStructureKHR = caps[370]; + vkCopyAccelerationStructureToMemoryKHR = caps[371]; + vkCopyMemoryToAccelerationStructureKHR = caps[372]; + vkWriteAccelerationStructuresPropertiesKHR = caps[373]; + vkCmdCopyAccelerationStructureKHR = caps[374]; + vkCmdCopyAccelerationStructureToMemoryKHR = caps[375]; + vkCmdCopyMemoryToAccelerationStructureKHR = caps[376]; + vkGetAccelerationStructureDeviceAddressKHR = caps[377]; + vkCmdWriteAccelerationStructuresPropertiesKHR = caps[378]; + vkGetDeviceAccelerationStructureCompatibilityKHR = caps[379]; + vkGetAccelerationStructureBuildSizesKHR = caps[380]; + vkBindBufferMemory2KHR = caps[381]; + vkBindImageMemory2KHR = caps[382]; + vkGetBufferDeviceAddressKHR = caps[383]; + vkGetBufferOpaqueCaptureAddressKHR = caps[384]; + vkGetDeviceMemoryOpaqueCaptureAddressKHR = caps[385]; + vkGetCalibratedTimestampsKHR = caps[386]; + vkCmdCopyBuffer2KHR = caps[387]; + vkCmdCopyImage2KHR = caps[388]; + vkCmdCopyBufferToImage2KHR = caps[389]; + vkCmdCopyImageToBuffer2KHR = caps[390]; + vkCmdBlitImage2KHR = caps[391]; + vkCmdResolveImage2KHR = caps[392]; + vkCreateRenderPass2KHR = caps[393]; + vkCmdBeginRenderPass2KHR = caps[394]; + vkCmdNextSubpass2KHR = caps[395]; + vkCmdEndRenderPass2KHR = caps[396]; + vkCreateDeferredOperationKHR = caps[397]; + vkDestroyDeferredOperationKHR = caps[398]; + vkGetDeferredOperationMaxConcurrencyKHR = caps[399]; + vkGetDeferredOperationResultKHR = caps[400]; + vkDeferredOperationJoinKHR = caps[401]; + vkCreateDescriptorUpdateTemplateKHR = caps[402]; + vkDestroyDescriptorUpdateTemplateKHR = caps[403]; + vkUpdateDescriptorSetWithTemplateKHR = caps[404]; + vkCmdPushDescriptorSetWithTemplateKHR = caps[405]; + vkGetDeviceGroupPeerMemoryFeaturesKHR = caps[406]; + vkCmdSetDeviceMaskKHR = caps[407]; + vkCmdDispatchBaseKHR = caps[408]; + vkGetDeviceGroupPresentCapabilitiesKHR = caps[409]; + vkGetDeviceGroupSurfacePresentModesKHR = caps[410]; + vkAcquireNextImage2KHR = caps[411]; + vkCreateSharedSwapchainsKHR = caps[412]; + vkCmdDrawIndirectCountKHR = caps[413]; + vkCmdDrawIndexedIndirectCountKHR = caps[414]; + vkCmdBeginRenderingKHR = caps[415]; + vkCmdEndRenderingKHR = caps[416]; + vkCmdSetRenderingAttachmentLocationsKHR = caps[417]; + vkCmdSetRenderingInputAttachmentIndicesKHR = caps[418]; + vkImportFenceFdKHR = caps[419]; + vkGetFenceFdKHR = caps[420]; + vkImportFenceWin32HandleKHR = caps[421]; + vkGetFenceWin32HandleKHR = caps[422]; + vkGetMemoryFdKHR = caps[423]; + vkGetMemoryFdPropertiesKHR = caps[424]; + vkGetMemoryWin32HandleKHR = caps[425]; + vkGetMemoryWin32HandlePropertiesKHR = caps[426]; + vkImportSemaphoreFdKHR = caps[427]; + vkGetSemaphoreFdKHR = caps[428]; + vkImportSemaphoreWin32HandleKHR = caps[429]; + vkGetSemaphoreWin32HandleKHR = caps[430]; + vkCmdSetFragmentShadingRateKHR = caps[431]; + vkGetImageMemoryRequirements2KHR = caps[432]; + vkGetBufferMemoryRequirements2KHR = caps[433]; + vkGetImageSparseMemoryRequirements2KHR = caps[434]; + vkCmdSetLineStippleKHR = caps[435]; + vkTrimCommandPoolKHR = caps[436]; + vkGetDescriptorSetLayoutSupportKHR = caps[437]; + vkGetDeviceBufferMemoryRequirementsKHR = caps[438]; + vkGetDeviceImageMemoryRequirementsKHR = caps[439]; + vkGetDeviceImageSparseMemoryRequirementsKHR = caps[440]; + vkCmdBindIndexBuffer2KHR = caps[441]; + vkGetRenderingAreaGranularityKHR = caps[442]; + vkGetDeviceImageSubresourceLayoutKHR = caps[443]; + vkGetImageSubresourceLayout2KHR = caps[444]; + vkCmdBindDescriptorSets2KHR = caps[445]; + vkCmdPushConstants2KHR = caps[446]; + vkCmdPushDescriptorSet2KHR = caps[447]; + vkCmdPushDescriptorSetWithTemplate2KHR = caps[448]; + vkCmdSetDescriptorBufferOffsets2EXT = caps[449]; + vkCmdBindDescriptorBufferEmbeddedSamplers2EXT = caps[450]; + vkMapMemory2KHR = caps[451]; + vkUnmapMemory2KHR = caps[452]; + vkAcquireProfilingLockKHR = caps[453]; + vkReleaseProfilingLockKHR = caps[454]; + vkCreatePipelineBinariesKHR = caps[455]; + vkDestroyPipelineBinaryKHR = caps[456]; + vkGetPipelineKeyKHR = caps[457]; + vkGetPipelineBinaryDataKHR = caps[458]; + vkReleaseCapturedPipelineDataKHR = caps[459]; + vkGetPipelineExecutablePropertiesKHR = caps[460]; + vkGetPipelineExecutableStatisticsKHR = caps[461]; + vkGetPipelineExecutableInternalRepresentationsKHR = caps[462]; + vkWaitForPresentKHR = caps[463]; + vkCmdPushDescriptorSetKHR = caps[464]; + vkCmdTraceRaysIndirect2KHR = caps[465]; + vkCmdTraceRaysKHR = caps[466]; + vkCreateRayTracingPipelinesKHR = caps[467]; + vkGetRayTracingShaderGroupHandlesKHR = caps[468]; + vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = caps[469]; + vkCmdTraceRaysIndirectKHR = caps[470]; + vkGetRayTracingShaderGroupStackSizeKHR = caps[471]; + vkCmdSetRayTracingPipelineStackSizeKHR = caps[472]; + vkCreateSamplerYcbcrConversionKHR = caps[473]; + vkDestroySamplerYcbcrConversionKHR = caps[474]; + vkGetSwapchainStatusKHR = caps[475]; + vkCreateSwapchainKHR = caps[476]; + vkDestroySwapchainKHR = caps[477]; + vkGetSwapchainImagesKHR = caps[478]; + vkAcquireNextImageKHR = caps[479]; + vkQueuePresentKHR = caps[480]; + vkCmdSetEvent2KHR = caps[481]; + vkCmdResetEvent2KHR = caps[482]; + vkCmdWaitEvents2KHR = caps[483]; + vkCmdPipelineBarrier2KHR = caps[484]; + vkCmdWriteTimestamp2KHR = caps[485]; + vkQueueSubmit2KHR = caps[486]; + vkGetSemaphoreCounterValueKHR = caps[487]; + vkWaitSemaphoresKHR = caps[488]; + vkSignalSemaphoreKHR = caps[489]; + vkCmdDecodeVideoKHR = caps[490]; + vkGetEncodedVideoSessionParametersKHR = caps[491]; + vkCmdEncodeVideoKHR = caps[492]; + vkCreateVideoSessionKHR = caps[493]; + vkDestroyVideoSessionKHR = caps[494]; + vkGetVideoSessionMemoryRequirementsKHR = caps[495]; + vkBindVideoSessionMemoryKHR = caps[496]; + vkCreateVideoSessionParametersKHR = caps[497]; + vkUpdateVideoSessionParametersKHR = caps[498]; + vkDestroyVideoSessionParametersKHR = caps[499]; + vkCmdBeginVideoCodingKHR = caps[500]; + vkCmdEndVideoCodingKHR = caps[501]; + vkCmdControlVideoCodingKHR = caps[502]; + vkCmdSetViewportWScalingNV = caps[503]; + vkCmdCopyMemoryIndirectNV = caps[504]; + vkCmdCopyMemoryToImageIndirectNV = caps[505]; + vkCreateCudaModuleNV = caps[506]; + vkGetCudaModuleCacheNV = caps[507]; + vkCreateCudaFunctionNV = caps[508]; + vkDestroyCudaModuleNV = caps[509]; + vkDestroyCudaFunctionNV = caps[510]; + vkCmdCudaLaunchKernelNV = caps[511]; + vkCmdSetCheckpointNV = caps[512]; + vkGetQueueCheckpointDataNV = caps[513]; + vkGetQueueCheckpointData2NV = caps[514]; vkGetGeneratedCommandsMemoryRequirementsNV = caps[515]; vkCmdPreprocessGeneratedCommandsNV = caps[516]; vkCmdExecuteGeneratedCommandsNV = caps[517]; @@ -2645,10 +2654,12 @@ private static boolean check_AMD_buffer_marker(FunctionProvider provider, long[] return false; } + int flag0 = ext.contains("Vulkan13") || ext.contains("VK_KHR_synchronization2") ? 0 : Integer.MIN_VALUE; + return checkFunctions(provider, caps, new int[] { - 187 + 187, flag0 + 188 }, - "vkCmdWriteBufferMarkerAMD" + "vkCmdWriteBufferMarkerAMD", "vkCmdWriteBufferMarker2AMD" ) || reportMissing("VK", "VK_AMD_buffer_marker"); } @@ -2658,7 +2669,7 @@ private static boolean check_AMD_display_native_hdr(FunctionProvider provider, l } return checkFunctions(provider, caps, new int[] { - 188 + 189 }, "vkSetLocalDimmingAMD" ) || reportMissing("VK", "VK_AMD_display_native_hdr"); @@ -2670,7 +2681,7 @@ private static boolean check_AMD_draw_indirect_count(FunctionProvider provider, } return checkFunctions(provider, caps, new int[] { - 189, 190 + 190, 191 }, "vkCmdDrawIndirectCountAMD", "vkCmdDrawIndexedIndirectCountAMD" ) || reportMissing("VK", "VK_AMD_draw_indirect_count"); @@ -2682,7 +2693,7 @@ private static boolean check_AMD_shader_info(FunctionProvider provider, long[] c } return checkFunctions(provider, caps, new int[] { - 191 + 192 }, "vkGetShaderInfoAMD" ) || reportMissing("VK", "VK_AMD_shader_info"); @@ -2694,7 +2705,7 @@ private static boolean check_AMDX_shader_enqueue(FunctionProvider provider, long } return checkFunctions(provider, caps, new int[] { - 192, 193, 194, 195, 196, 197, 198 + 193, 194, 195, 196, 197, 198, 199 }, "vkCreateExecutionGraphPipelinesAMDX", "vkGetExecutionGraphPipelineScratchSizeAMDX", "vkGetExecutionGraphPipelineNodeIndexAMDX", "vkCmdInitializeGraphScratchMemoryAMDX", "vkCmdDispatchGraphAMDX", "vkCmdDispatchGraphIndirectAMDX", "vkCmdDispatchGraphIndirectCountAMDX" @@ -2707,7 +2718,7 @@ private static boolean check_ANDROID_external_memory_android_hardware_buffer(Fun } return checkFunctions(provider, caps, new int[] { - 199, 200 + 200, 201 }, "vkGetAndroidHardwareBufferPropertiesANDROID", "vkGetMemoryAndroidHardwareBufferANDROID" ) || reportMissing("VK", "VK_ANDROID_external_memory_android_hardware_buffer"); @@ -2719,7 +2730,7 @@ private static boolean check_EXT_attachment_feedback_loop_dynamic_state(Function } return checkFunctions(provider, caps, new int[] { - 201 + 202 }, "vkCmdSetAttachmentFeedbackLoopEnableEXT" ) || reportMissing("VK", "VK_EXT_attachment_feedback_loop_dynamic_state"); @@ -2731,7 +2742,7 @@ private static boolean check_EXT_buffer_device_address(FunctionProvider provider } return checkFunctions(provider, caps, new int[] { - 202 + 203 }, "vkGetBufferDeviceAddressEXT" ) || reportMissing("VK", "VK_EXT_buffer_device_address"); @@ -2743,7 +2754,7 @@ private static boolean check_EXT_calibrated_timestamps(FunctionProvider provider } return checkFunctions(provider, caps, new int[] { - 203 + 204 }, "vkGetCalibratedTimestampsEXT" ) || reportMissing("VK", "VK_EXT_calibrated_timestamps"); @@ -2755,7 +2766,7 @@ private static boolean check_EXT_color_write_enable(FunctionProvider provider, l } return checkFunctions(provider, caps, new int[] { - 204 + 205 }, "vkCmdSetColorWriteEnableEXT" ) || reportMissing("VK", "VK_EXT_color_write_enable"); @@ -2767,7 +2778,7 @@ private static boolean check_EXT_conditional_rendering(FunctionProvider provider } return checkFunctions(provider, caps, new int[] { - 205, 206 + 206, 207 }, "vkCmdBeginConditionalRenderingEXT", "vkCmdEndConditionalRenderingEXT" ) || reportMissing("VK", "VK_EXT_conditional_rendering"); @@ -2779,7 +2790,7 @@ private static boolean check_EXT_debug_marker(FunctionProvider provider, long[] } return checkFunctions(provider, caps, new int[] { - 207, 208, 209, 210, 211 + 208, 209, 210, 211, 212 }, "vkDebugMarkerSetObjectTagEXT", "vkDebugMarkerSetObjectNameEXT", "vkCmdDebugMarkerBeginEXT", "vkCmdDebugMarkerEndEXT", "vkCmdDebugMarkerInsertEXT" ) || reportMissing("VK", "VK_EXT_debug_marker"); @@ -2791,7 +2802,7 @@ private static boolean check_EXT_depth_bias_control(FunctionProvider provider, l } return checkFunctions(provider, caps, new int[] { - 212 + 213 }, "vkCmdSetDepthBias2EXT" ) || reportMissing("VK", "VK_EXT_depth_bias_control"); @@ -2803,7 +2814,7 @@ private static boolean check_EXT_depth_clamp_control(FunctionProvider provider, } return checkFunctions(provider, caps, new int[] { - 213 + 214 }, "vkCmdSetDepthClampRangeEXT" ) || reportMissing("VK", "VK_EXT_depth_clamp_control"); @@ -2817,7 +2828,7 @@ private static boolean check_EXT_descriptor_buffer(FunctionProvider provider, lo int flag0 = ext.contains("VK_KHR_acceleration_structure") || ext.contains("VK_NV_ray_tracing") ? 0 : Integer.MIN_VALUE; return checkFunctions(provider, caps, new int[] { - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, flag0 + 224 + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, flag0 + 225 }, "vkGetDescriptorSetLayoutSizeEXT", "vkGetDescriptorSetLayoutBindingOffsetEXT", "vkGetDescriptorEXT", "vkCmdBindDescriptorBuffersEXT", "vkCmdSetDescriptorBufferOffsetsEXT", "vkCmdBindDescriptorBufferEmbeddedSamplersEXT", "vkGetBufferOpaqueCaptureDescriptorDataEXT", @@ -2832,7 +2843,7 @@ private static boolean check_EXT_device_fault(FunctionProvider provider, long[] } return checkFunctions(provider, caps, new int[] { - 225 + 226 }, "vkGetDeviceFaultInfoEXT" ) || reportMissing("VK", "VK_EXT_device_fault"); @@ -2844,7 +2855,7 @@ private static boolean check_EXT_device_generated_commands(FunctionProvider prov } return checkFunctions(provider, caps, new int[] { - 226, 227, 228, 229, 230, 231, 232, 233, 234 + 227, 228, 229, 230, 231, 232, 233, 234, 235 }, "vkGetGeneratedCommandsMemoryRequirementsEXT", "vkCmdPreprocessGeneratedCommandsEXT", "vkCmdExecuteGeneratedCommandsEXT", "vkCreateIndirectCommandsLayoutEXT", "vkDestroyIndirectCommandsLayoutEXT", "vkCreateIndirectExecutionSetEXT", "vkDestroyIndirectExecutionSetEXT", @@ -2858,7 +2869,7 @@ private static boolean check_EXT_discard_rectangles(FunctionProvider provider, l } return checkFunctions(provider, caps, new int[] { - 235, 236, 237 + 236, 237, 238 }, "vkCmdSetDiscardRectangleEXT", "vkCmdSetDiscardRectangleEnableEXT", "vkCmdSetDiscardRectangleModeEXT" ) || reportMissing("VK", "VK_EXT_discard_rectangles"); @@ -2870,7 +2881,7 @@ private static boolean check_EXT_display_control(FunctionProvider provider, long } return checkFunctions(provider, caps, new int[] { - 238, 239, 240, 241 + 239, 240, 241, 242 }, "vkDisplayPowerControlEXT", "vkRegisterDeviceEventEXT", "vkRegisterDisplayEventEXT", "vkGetSwapchainCounterEXT" ) || reportMissing("VK", "VK_EXT_display_control"); @@ -2882,7 +2893,7 @@ private static boolean check_EXT_extended_dynamic_state(FunctionProvider provide } return checkFunctions(provider, caps, new int[] { - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253 + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254 }, "vkCmdSetCullModeEXT", "vkCmdSetFrontFaceEXT", "vkCmdSetPrimitiveTopologyEXT", "vkCmdSetViewportWithCountEXT", "vkCmdSetScissorWithCountEXT", "vkCmdBindVertexBuffers2EXT", "vkCmdSetDepthTestEnableEXT", "vkCmdSetDepthWriteEnableEXT", "vkCmdSetDepthCompareOpEXT", @@ -2896,7 +2907,7 @@ private static boolean check_EXT_extended_dynamic_state2(FunctionProvider provid } return checkFunctions(provider, caps, new int[] { - 254, 255, 256, 257, 258 + 255, 256, 257, 258, 259 }, "vkCmdSetPatchControlPointsEXT", "vkCmdSetRasterizerDiscardEnableEXT", "vkCmdSetDepthBiasEnableEXT", "vkCmdSetLogicOpEXT", "vkCmdSetPrimitiveRestartEnableEXT" @@ -2926,9 +2937,9 @@ private static boolean check_EXT_extended_dynamic_state3(FunctionProvider provid int flag20 = ext.contains("VK_NV_coverage_reduction_mode") ? 0 : Integer.MIN_VALUE; return checkFunctions(provider, caps, new int[] { - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, flag0 + 269, flag1 + 270, flag2 + 271, flag2 + 272, flag4 + 273, flag5 + 274, flag6 + 275, - flag7 + 276, flag8 + 277, flag8 + 278, flag10 + 279, flag11 + 280, flag12 + 281, flag13 + 282, flag13 + 283, flag15 + 284, flag15 + 285, - flag15 + 286, flag18 + 287, flag19 + 288, flag20 + 289 + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, flag0 + 270, flag1 + 271, flag2 + 272, flag2 + 273, flag4 + 274, flag5 + 275, flag6 + 276, + flag7 + 277, flag8 + 278, flag8 + 279, flag10 + 280, flag11 + 281, flag12 + 282, flag13 + 283, flag13 + 284, flag15 + 285, flag15 + 286, + flag15 + 287, flag18 + 288, flag19 + 289, flag20 + 290 }, "vkCmdSetDepthClampEnableEXT", "vkCmdSetPolygonModeEXT", "vkCmdSetRasterizationSamplesEXT", "vkCmdSetSampleMaskEXT", "vkCmdSetAlphaToCoverageEnableEXT", "vkCmdSetAlphaToOneEnableEXT", "vkCmdSetLogicOpEnableEXT", "vkCmdSetColorBlendEnableEXT", @@ -2948,7 +2959,7 @@ private static boolean check_EXT_external_memory_host(FunctionProvider provider, } return checkFunctions(provider, caps, new int[] { - 290 + 291 }, "vkGetMemoryHostPointerPropertiesEXT" ) || reportMissing("VK", "VK_EXT_external_memory_host"); @@ -2962,7 +2973,7 @@ private static boolean check_EXT_full_screen_exclusive(FunctionProvider provider int flag0 = ext.contains("VK_KHR_device_group") || ext.contains("Vulkan11") ? 0 : Integer.MIN_VALUE; return checkFunctions(provider, caps, new int[] { - 291, 292, flag0 + 293 + 292, 293, flag0 + 294 }, "vkAcquireFullScreenExclusiveModeEXT", "vkReleaseFullScreenExclusiveModeEXT", "vkGetDeviceGroupSurfacePresentModes2EXT" ) || reportMissing("VK", "VK_EXT_full_screen_exclusive"); @@ -2974,7 +2985,7 @@ private static boolean check_EXT_hdr_metadata(FunctionProvider provider, long[] } return checkFunctions(provider, caps, new int[] { - 294 + 295 }, "vkSetHdrMetadataEXT" ) || reportMissing("VK", "VK_EXT_hdr_metadata"); @@ -2986,7 +2997,7 @@ private static boolean check_EXT_host_image_copy(FunctionProvider provider, long } return checkFunctions(provider, caps, new int[] { - 295, 296, 297, 298, 299 + 296, 297, 298, 299, 300 }, "vkCopyMemoryToImageEXT", "vkCopyImageToMemoryEXT", "vkCopyImageToImageEXT", "vkTransitionImageLayoutEXT", "vkGetImageSubresourceLayout2EXT" ) || reportMissing("VK", "VK_EXT_host_image_copy"); @@ -2998,7 +3009,7 @@ private static boolean check_EXT_host_query_reset(FunctionProvider provider, lon } return checkFunctions(provider, caps, new int[] { - 300 + 301 }, "vkResetQueryPoolEXT" ) || reportMissing("VK", "VK_EXT_host_query_reset"); @@ -3010,7 +3021,7 @@ private static boolean check_EXT_image_compression_control(FunctionProvider prov } return checkFunctions(provider, caps, new int[] { - 299 + 300 }, "vkGetImageSubresourceLayout2EXT" ) || reportMissing("VK", "VK_EXT_image_compression_control"); @@ -3022,7 +3033,7 @@ private static boolean check_EXT_image_drm_format_modifier(FunctionProvider prov } return checkFunctions(provider, caps, new int[] { - 301 + 302 }, "vkGetImageDrmFormatModifierPropertiesEXT" ) || reportMissing("VK", "VK_EXT_image_drm_format_modifier"); @@ -3034,7 +3045,7 @@ private static boolean check_EXT_line_rasterization(FunctionProvider provider, l } return checkFunctions(provider, caps, new int[] { - 302 + 303 }, "vkCmdSetLineStippleEXT" ) || reportMissing("VK", "VK_EXT_line_rasterization"); @@ -3046,7 +3057,7 @@ private static boolean check_EXT_mesh_shader(FunctionProvider provider, long[] c } return checkFunctions(provider, caps, new int[] { - 303, 304, 305 + 304, 305, 306 }, "vkCmdDrawMeshTasksEXT", "vkCmdDrawMeshTasksIndirectEXT", "vkCmdDrawMeshTasksIndirectCountEXT" ) || reportMissing("VK", "VK_EXT_mesh_shader"); @@ -3058,7 +3069,7 @@ private static boolean check_EXT_metal_objects(FunctionProvider provider, long[] } return checkFunctions(provider, caps, new int[] { - 306 + 307 }, "vkExportMetalObjectsEXT" ) || reportMissing("VK", "VK_EXT_metal_objects"); @@ -3070,7 +3081,7 @@ private static boolean check_EXT_multi_draw(FunctionProvider provider, long[] ca } return checkFunctions(provider, caps, new int[] { - 307, 308 + 308, 309 }, "vkCmdDrawMultiEXT", "vkCmdDrawMultiIndexedEXT" ) || reportMissing("VK", "VK_EXT_multi_draw"); @@ -3082,7 +3093,7 @@ private static boolean check_EXT_opacity_micromap(FunctionProvider provider, lon } return checkFunctions(provider, caps, new int[] { - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322 + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323 }, "vkCreateMicromapEXT", "vkDestroyMicromapEXT", "vkCmdBuildMicromapsEXT", "vkBuildMicromapsEXT", "vkCopyMicromapEXT", "vkCopyMicromapToMemoryEXT", "vkCopyMemoryToMicromapEXT", "vkWriteMicromapsPropertiesEXT", "vkCmdCopyMicromapEXT", "vkCmdCopyMicromapToMemoryEXT", @@ -3096,7 +3107,7 @@ private static boolean check_EXT_pageable_device_local_memory(FunctionProvider p } return checkFunctions(provider, caps, new int[] { - 323 + 324 }, "vkSetDeviceMemoryPriorityEXT" ) || reportMissing("VK", "VK_EXT_pageable_device_local_memory"); @@ -3108,7 +3119,7 @@ private static boolean check_EXT_pipeline_properties(FunctionProvider provider, } return checkFunctions(provider, caps, new int[] { - 324 + 325 }, "vkGetPipelinePropertiesEXT" ) || reportMissing("VK", "VK_EXT_pipeline_properties"); @@ -3120,7 +3131,7 @@ private static boolean check_EXT_private_data(FunctionProvider provider, long[] } return checkFunctions(provider, caps, new int[] { - 325, 326, 327, 328 + 326, 327, 328, 329 }, "vkCreatePrivateDataSlotEXT", "vkDestroyPrivateDataSlotEXT", "vkSetPrivateDataEXT", "vkGetPrivateDataEXT" ) || reportMissing("VK", "VK_EXT_private_data"); @@ -3132,7 +3143,7 @@ private static boolean check_EXT_sample_locations(FunctionProvider provider, lon } return checkFunctions(provider, caps, new int[] { - 329 + 330 }, "vkCmdSetSampleLocationsEXT" ) || reportMissing("VK", "VK_EXT_sample_locations"); @@ -3144,7 +3155,7 @@ private static boolean check_EXT_shader_module_identifier(FunctionProvider provi } return checkFunctions(provider, caps, new int[] { - 330, 331 + 331, 332 }, "vkGetShaderModuleIdentifierEXT", "vkGetShaderModuleCreateInfoIdentifierEXT" ) || reportMissing("VK", "VK_EXT_shader_module_identifier"); @@ -3173,10 +3184,10 @@ private static boolean check_EXT_shader_object(FunctionProvider provider, long[] int flag20 = ext.contains("VK_EXT_depth_clamp_control") ? 0 : Integer.MIN_VALUE; return checkFunctions(provider, caps, new int[] { - 332, 333, 334, 335, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 336, 254, 255, 256, 257, 258, 269, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, flag0 + 270, flag1 + 271, flag1 + 272, flag3 + 273, flag4 + 274, flag5 + 275, flag6 + 276, flag7 + 277, flag7 + 278, - flag9 + 279, flag10 + 280, flag11 + 281, flag12 + 282, flag12 + 283, flag14 + 284, flag14 + 285, flag14 + 286, flag17 + 287, flag18 + 288, - flag19 + 289, flag20 + 213 + 333, 334, 335, 336, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 337, 255, 256, 257, 258, 259, 270, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, flag0 + 271, flag1 + 272, flag1 + 273, flag3 + 274, flag4 + 275, flag5 + 276, flag6 + 277, flag7 + 278, flag7 + 279, + flag9 + 280, flag10 + 281, flag11 + 282, flag12 + 283, flag12 + 284, flag14 + 285, flag14 + 286, flag14 + 287, flag17 + 288, flag18 + 289, + flag19 + 290, flag20 + 214 }, "vkCreateShadersEXT", "vkDestroyShaderEXT", "vkGetShaderBinaryDataEXT", "vkCmdBindShadersEXT", "vkCmdSetCullModeEXT", "vkCmdSetFrontFaceEXT", "vkCmdSetPrimitiveTopologyEXT", "vkCmdSetViewportWithCountEXT", "vkCmdSetScissorWithCountEXT", "vkCmdBindVertexBuffers2EXT", @@ -3201,7 +3212,7 @@ private static boolean check_EXT_swapchain_maintenance1(FunctionProvider provide } return checkFunctions(provider, caps, new int[] { - 337 + 338 }, "vkReleaseSwapchainImagesEXT" ) || reportMissing("VK", "VK_EXT_swapchain_maintenance1"); @@ -3213,7 +3224,7 @@ private static boolean check_EXT_transform_feedback(FunctionProvider provider, l } return checkFunctions(provider, caps, new int[] { - 338, 339, 340, 341, 342, 343 + 339, 340, 341, 342, 343, 344 }, "vkCmdBindTransformFeedbackBuffersEXT", "vkCmdBeginTransformFeedbackEXT", "vkCmdEndTransformFeedbackEXT", "vkCmdBeginQueryIndexedEXT", "vkCmdEndQueryIndexedEXT", "vkCmdDrawIndirectByteCountEXT" @@ -3226,7 +3237,7 @@ private static boolean check_EXT_validation_cache(FunctionProvider provider, lon } return checkFunctions(provider, caps, new int[] { - 344, 345, 346, 347 + 345, 346, 347, 348 }, "vkCreateValidationCacheEXT", "vkDestroyValidationCacheEXT", "vkMergeValidationCachesEXT", "vkGetValidationCacheDataEXT" ) || reportMissing("VK", "VK_EXT_validation_cache"); @@ -3238,7 +3249,7 @@ private static boolean check_EXT_vertex_input_dynamic_state(FunctionProvider pro } return checkFunctions(provider, caps, new int[] { - 336 + 337 }, "vkCmdSetVertexInputEXT" ) || reportMissing("VK", "VK_EXT_vertex_input_dynamic_state"); @@ -3250,7 +3261,7 @@ private static boolean check_GOOGLE_display_timing(FunctionProvider provider, lo } return checkFunctions(provider, caps, new int[] { - 348, 349 + 349, 350 }, "vkGetRefreshCycleDurationGOOGLE", "vkGetPastPresentationTimingGOOGLE" ) || reportMissing("VK", "VK_GOOGLE_display_timing"); @@ -3262,7 +3273,7 @@ private static boolean check_HUAWEI_cluster_culling_shader(FunctionProvider prov } return checkFunctions(provider, caps, new int[] { - 350, 351 + 351, 352 }, "vkCmdDrawClusterHUAWEI", "vkCmdDrawClusterIndirectHUAWEI" ) || reportMissing("VK", "VK_HUAWEI_cluster_culling_shader"); @@ -3274,7 +3285,7 @@ private static boolean check_HUAWEI_invocation_mask(FunctionProvider provider, l } return checkFunctions(provider, caps, new int[] { - 352 + 353 }, "vkCmdBindInvocationMaskHUAWEI" ) || reportMissing("VK", "VK_HUAWEI_invocation_mask"); @@ -3286,7 +3297,7 @@ private static boolean check_HUAWEI_subpass_shading(FunctionProvider provider, l } return checkFunctions(provider, caps, new int[] { - 353, 354 + 354, 355 }, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI", "vkCmdSubpassShadingHUAWEI" ) || reportMissing("VK", "VK_HUAWEI_subpass_shading"); @@ -3298,7 +3309,7 @@ private static boolean check_INTEL_performance_query(FunctionProvider provider, } return checkFunctions(provider, caps, new int[] { - 355, 356, 357, 358, 359, 360, 361, 362, 363 + 356, 357, 358, 359, 360, 361, 362, 363, 364 }, "vkInitializePerformanceApiINTEL", "vkUninitializePerformanceApiINTEL", "vkCmdSetPerformanceMarkerINTEL", "vkCmdSetPerformanceStreamMarkerINTEL", "vkCmdSetPerformanceOverrideINTEL", "vkAcquirePerformanceConfigurationINTEL", "vkReleasePerformanceConfigurationINTEL", @@ -3312,7 +3323,7 @@ private static boolean check_KHR_acceleration_structure(FunctionProvider provide } return checkFunctions(provider, caps, new int[] { - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379 + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380 }, "vkCreateAccelerationStructureKHR", "vkDestroyAccelerationStructureKHR", "vkCmdBuildAccelerationStructuresKHR", "vkCmdBuildAccelerationStructuresIndirectKHR", "vkBuildAccelerationStructuresKHR", "vkCopyAccelerationStructureKHR", @@ -3329,7 +3340,7 @@ private static boolean check_KHR_bind_memory2(FunctionProvider provider, long[] } return checkFunctions(provider, caps, new int[] { - 380, 381 + 381, 382 }, "vkBindBufferMemory2KHR", "vkBindImageMemory2KHR" ) || reportMissing("VK", "VK_KHR_bind_memory2"); @@ -3341,7 +3352,7 @@ private static boolean check_KHR_buffer_device_address(FunctionProvider provider } return checkFunctions(provider, caps, new int[] { - 382, 383, 384 + 383, 384, 385 }, "vkGetBufferDeviceAddressKHR", "vkGetBufferOpaqueCaptureAddressKHR", "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) || reportMissing("VK", "VK_KHR_buffer_device_address"); @@ -3353,7 +3364,7 @@ private static boolean check_KHR_calibrated_timestamps(FunctionProvider provider } return checkFunctions(provider, caps, new int[] { - 385 + 386 }, "vkGetCalibratedTimestampsKHR" ) || reportMissing("VK", "VK_KHR_calibrated_timestamps"); @@ -3365,7 +3376,7 @@ private static boolean check_KHR_copy_commands2(FunctionProvider provider, long[ } return checkFunctions(provider, caps, new int[] { - 386, 387, 388, 389, 390, 391 + 387, 388, 389, 390, 391, 392 }, "vkCmdCopyBuffer2KHR", "vkCmdCopyImage2KHR", "vkCmdCopyBufferToImage2KHR", "vkCmdCopyImageToBuffer2KHR", "vkCmdBlitImage2KHR", "vkCmdResolveImage2KHR" @@ -3378,7 +3389,7 @@ private static boolean check_KHR_create_renderpass2(FunctionProvider provider, l } return checkFunctions(provider, caps, new int[] { - 392, 393, 394, 395 + 393, 394, 395, 396 }, "vkCreateRenderPass2KHR", "vkCmdBeginRenderPass2KHR", "vkCmdNextSubpass2KHR", "vkCmdEndRenderPass2KHR" ) || reportMissing("VK", "VK_KHR_create_renderpass2"); @@ -3390,7 +3401,7 @@ private static boolean check_KHR_deferred_host_operations(FunctionProvider provi } return checkFunctions(provider, caps, new int[] { - 396, 397, 398, 399, 400 + 397, 398, 399, 400, 401 }, "vkCreateDeferredOperationKHR", "vkDestroyDeferredOperationKHR", "vkGetDeferredOperationMaxConcurrencyKHR", "vkGetDeferredOperationResultKHR", "vkDeferredOperationJoinKHR" @@ -3405,7 +3416,7 @@ private static boolean check_KHR_descriptor_update_template(FunctionProvider pro int flag0 = ext.contains("VK_KHR_push_descriptor") ? 0 : Integer.MIN_VALUE; return checkFunctions(provider, caps, new int[] { - 401, 402, 403, flag0 + 404 + 402, 403, 404, flag0 + 405 }, "vkCreateDescriptorUpdateTemplateKHR", "vkDestroyDescriptorUpdateTemplateKHR", "vkUpdateDescriptorSetWithTemplateKHR", "vkCmdPushDescriptorSetWithTemplateKHR" @@ -3421,7 +3432,7 @@ private static boolean check_KHR_device_group(FunctionProvider provider, long[] int flag2 = ext.contains("VK_KHR_swapchain") ? 0 : Integer.MIN_VALUE; return checkFunctions(provider, caps, new int[] { - 405, 406, 407, flag0 + 408, flag0 + 409, flag2 + 410 + 406, 407, 408, flag0 + 409, flag0 + 410, flag2 + 411 }, "vkGetDeviceGroupPeerMemoryFeaturesKHR", "vkCmdSetDeviceMaskKHR", "vkCmdDispatchBaseKHR", "vkGetDeviceGroupPresentCapabilitiesKHR", "vkGetDeviceGroupSurfacePresentModesKHR", "vkAcquireNextImage2KHR" @@ -3434,7 +3445,7 @@ private static boolean check_KHR_display_swapchain(FunctionProvider provider, lo } return checkFunctions(provider, caps, new int[] { - 411 + 412 }, "vkCreateSharedSwapchainsKHR" ) || reportMissing("VK", "VK_KHR_display_swapchain"); @@ -3446,7 +3457,7 @@ private static boolean check_KHR_draw_indirect_count(FunctionProvider provider, } return checkFunctions(provider, caps, new int[] { - 412, 413 + 413, 414 }, "vkCmdDrawIndirectCountKHR", "vkCmdDrawIndexedIndirectCountKHR" ) || reportMissing("VK", "VK_KHR_draw_indirect_count"); @@ -3458,7 +3469,7 @@ private static boolean check_KHR_dynamic_rendering(FunctionProvider provider, lo } return checkFunctions(provider, caps, new int[] { - 414, 415 + 415, 416 }, "vkCmdBeginRenderingKHR", "vkCmdEndRenderingKHR" ) || reportMissing("VK", "VK_KHR_dynamic_rendering"); @@ -3470,7 +3481,7 @@ private static boolean check_KHR_dynamic_rendering_local_read(FunctionProvider p } return checkFunctions(provider, caps, new int[] { - 416, 417 + 417, 418 }, "vkCmdSetRenderingAttachmentLocationsKHR", "vkCmdSetRenderingInputAttachmentIndicesKHR" ) || reportMissing("VK", "VK_KHR_dynamic_rendering_local_read"); @@ -3482,7 +3493,7 @@ private static boolean check_KHR_external_fence_fd(FunctionProvider provider, lo } return checkFunctions(provider, caps, new int[] { - 418, 419 + 419, 420 }, "vkImportFenceFdKHR", "vkGetFenceFdKHR" ) || reportMissing("VK", "VK_KHR_external_fence_fd"); @@ -3494,7 +3505,7 @@ private static boolean check_KHR_external_fence_win32(FunctionProvider provider, } return checkFunctions(provider, caps, new int[] { - 420, 421 + 421, 422 }, "vkImportFenceWin32HandleKHR", "vkGetFenceWin32HandleKHR" ) || reportMissing("VK", "VK_KHR_external_fence_win32"); @@ -3506,7 +3517,7 @@ private static boolean check_KHR_external_memory_fd(FunctionProvider provider, l } return checkFunctions(provider, caps, new int[] { - 422, 423 + 423, 424 }, "vkGetMemoryFdKHR", "vkGetMemoryFdPropertiesKHR" ) || reportMissing("VK", "VK_KHR_external_memory_fd"); @@ -3518,7 +3529,7 @@ private static boolean check_KHR_external_memory_win32(FunctionProvider provider } return checkFunctions(provider, caps, new int[] { - 424, 425 + 425, 426 }, "vkGetMemoryWin32HandleKHR", "vkGetMemoryWin32HandlePropertiesKHR" ) || reportMissing("VK", "VK_KHR_external_memory_win32"); @@ -3530,7 +3541,7 @@ private static boolean check_KHR_external_semaphore_fd(FunctionProvider provider } return checkFunctions(provider, caps, new int[] { - 426, 427 + 427, 428 }, "vkImportSemaphoreFdKHR", "vkGetSemaphoreFdKHR" ) || reportMissing("VK", "VK_KHR_external_semaphore_fd"); @@ -3542,7 +3553,7 @@ private static boolean check_KHR_external_semaphore_win32(FunctionProvider provi } return checkFunctions(provider, caps, new int[] { - 428, 429 + 429, 430 }, "vkImportSemaphoreWin32HandleKHR", "vkGetSemaphoreWin32HandleKHR" ) || reportMissing("VK", "VK_KHR_external_semaphore_win32"); @@ -3554,7 +3565,7 @@ private static boolean check_KHR_fragment_shading_rate(FunctionProvider provider } return checkFunctions(provider, caps, new int[] { - 430 + 431 }, "vkCmdSetFragmentShadingRateKHR" ) || reportMissing("VK", "VK_KHR_fragment_shading_rate"); @@ -3566,7 +3577,7 @@ private static boolean check_KHR_get_memory_requirements2(FunctionProvider provi } return checkFunctions(provider, caps, new int[] { - 431, 432, 433 + 432, 433, 434 }, "vkGetImageMemoryRequirements2KHR", "vkGetBufferMemoryRequirements2KHR", "vkGetImageSparseMemoryRequirements2KHR" ) || reportMissing("VK", "VK_KHR_get_memory_requirements2"); @@ -3578,7 +3589,7 @@ private static boolean check_KHR_line_rasterization(FunctionProvider provider, l } return checkFunctions(provider, caps, new int[] { - 434 + 435 }, "vkCmdSetLineStippleKHR" ) || reportMissing("VK", "VK_KHR_line_rasterization"); @@ -3590,7 +3601,7 @@ private static boolean check_KHR_maintenance1(FunctionProvider provider, long[] } return checkFunctions(provider, caps, new int[] { - 435 + 436 }, "vkTrimCommandPoolKHR" ) || reportMissing("VK", "VK_KHR_maintenance1"); @@ -3602,7 +3613,7 @@ private static boolean check_KHR_maintenance3(FunctionProvider provider, long[] } return checkFunctions(provider, caps, new int[] { - 436 + 437 }, "vkGetDescriptorSetLayoutSupportKHR" ) || reportMissing("VK", "VK_KHR_maintenance3"); @@ -3614,7 +3625,7 @@ private static boolean check_KHR_maintenance4(FunctionProvider provider, long[] } return checkFunctions(provider, caps, new int[] { - 437, 438, 439 + 438, 439, 440 }, "vkGetDeviceBufferMemoryRequirementsKHR", "vkGetDeviceImageMemoryRequirementsKHR", "vkGetDeviceImageSparseMemoryRequirementsKHR" ) || reportMissing("VK", "VK_KHR_maintenance4"); @@ -3626,7 +3637,7 @@ private static boolean check_KHR_maintenance5(FunctionProvider provider, long[] } return checkFunctions(provider, caps, new int[] { - 440, 441, 442, 443 + 441, 442, 443, 444 }, "vkCmdBindIndexBuffer2KHR", "vkGetRenderingAreaGranularityKHR", "vkGetDeviceImageSubresourceLayoutKHR", "vkGetImageSubresourceLayout2KHR" ) || reportMissing("VK", "VK_KHR_maintenance5"); @@ -3641,7 +3652,7 @@ private static boolean check_KHR_maintenance6(FunctionProvider provider, long[] int flag2 = ext.contains("VK_EXT_descriptor_buffer") ? 0 : Integer.MIN_VALUE; return checkFunctions(provider, caps, new int[] { - 444, 445, flag0 + 446, flag0 + 447, flag2 + 448, flag2 + 449 + 445, 446, flag0 + 447, flag0 + 448, flag2 + 449, flag2 + 450 }, "vkCmdBindDescriptorSets2KHR", "vkCmdPushConstants2KHR", "vkCmdPushDescriptorSet2KHR", "vkCmdPushDescriptorSetWithTemplate2KHR", "vkCmdSetDescriptorBufferOffsets2EXT", "vkCmdBindDescriptorBufferEmbeddedSamplers2EXT" @@ -3654,7 +3665,7 @@ private static boolean check_KHR_map_memory2(FunctionProvider provider, long[] c } return checkFunctions(provider, caps, new int[] { - 450, 451 + 451, 452 }, "vkMapMemory2KHR", "vkUnmapMemory2KHR" ) || reportMissing("VK", "VK_KHR_map_memory2"); @@ -3666,7 +3677,7 @@ private static boolean check_KHR_performance_query(FunctionProvider provider, lo } return checkFunctions(provider, caps, new int[] { - 452, 453 + 453, 454 }, "vkAcquireProfilingLockKHR", "vkReleaseProfilingLockKHR" ) || reportMissing("VK", "VK_KHR_performance_query"); @@ -3678,7 +3689,7 @@ private static boolean check_KHR_pipeline_binary(FunctionProvider provider, long } return checkFunctions(provider, caps, new int[] { - 454, 455, 456, 457, 458 + 455, 456, 457, 458, 459 }, "vkCreatePipelineBinariesKHR", "vkDestroyPipelineBinaryKHR", "vkGetPipelineKeyKHR", "vkGetPipelineBinaryDataKHR", "vkReleaseCapturedPipelineDataKHR" @@ -3691,7 +3702,7 @@ private static boolean check_KHR_pipeline_executable_properties(FunctionProvider } return checkFunctions(provider, caps, new int[] { - 459, 460, 461 + 460, 461, 462 }, "vkGetPipelineExecutablePropertiesKHR", "vkGetPipelineExecutableStatisticsKHR", "vkGetPipelineExecutableInternalRepresentationsKHR" ) || reportMissing("VK", "VK_KHR_pipeline_executable_properties"); @@ -3703,7 +3714,7 @@ private static boolean check_KHR_present_wait(FunctionProvider provider, long[] } return checkFunctions(provider, caps, new int[] { - 462 + 463 }, "vkWaitForPresentKHR" ) || reportMissing("VK", "VK_KHR_present_wait"); @@ -3717,7 +3728,7 @@ private static boolean check_KHR_push_descriptor(FunctionProvider provider, long int flag0 = ext.contains("Vulkan11") || ext.contains("VK_KHR_descriptor_update_template") ? 0 : Integer.MIN_VALUE; return checkFunctions(provider, caps, new int[] { - 463, flag0 + 404 + 464, flag0 + 405 }, "vkCmdPushDescriptorSetKHR", "vkCmdPushDescriptorSetWithTemplateKHR" ) || reportMissing("VK", "VK_KHR_push_descriptor"); @@ -3731,7 +3742,7 @@ private static boolean check_KHR_ray_tracing_maintenance1(FunctionProvider provi int flag0 = ext.contains("VK_KHR_ray_tracing_pipeline") ? 0 : Integer.MIN_VALUE; return checkFunctions(provider, caps, new int[] { - flag0 + 464 + flag0 + 465 }, "vkCmdTraceRaysIndirect2KHR" ) || reportMissing("VK", "VK_KHR_ray_tracing_maintenance1"); @@ -3743,7 +3754,7 @@ private static boolean check_KHR_ray_tracing_pipeline(FunctionProvider provider, } return checkFunctions(provider, caps, new int[] { - 465, 466, 467, 468, 469, 470, 471 + 466, 467, 468, 469, 470, 471, 472 }, "vkCmdTraceRaysKHR", "vkCreateRayTracingPipelinesKHR", "vkGetRayTracingShaderGroupHandlesKHR", "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR", "vkCmdTraceRaysIndirectKHR", "vkGetRayTracingShaderGroupStackSizeKHR", "vkCmdSetRayTracingPipelineStackSizeKHR" @@ -3756,7 +3767,7 @@ private static boolean check_KHR_sampler_ycbcr_conversion(FunctionProvider provi } return checkFunctions(provider, caps, new int[] { - 472, 473 + 473, 474 }, "vkCreateSamplerYcbcrConversionKHR", "vkDestroySamplerYcbcrConversionKHR" ) || reportMissing("VK", "VK_KHR_sampler_ycbcr_conversion"); @@ -3768,7 +3779,7 @@ private static boolean check_KHR_shared_presentable_image(FunctionProvider provi } return checkFunctions(provider, caps, new int[] { - 474 + 475 }, "vkGetSwapchainStatusKHR" ) || reportMissing("VK", "VK_KHR_shared_presentable_image"); @@ -3782,7 +3793,7 @@ private static boolean check_KHR_swapchain(FunctionProvider provider, long[] cap int flag0 = ext.contains("Vulkan11") ? 0 : Integer.MIN_VALUE; return checkFunctions(provider, caps, new int[] { - 475, 476, 477, 478, 479, flag0 + 408, flag0 + 409, flag0 + 410 + 476, 477, 478, 479, 480, flag0 + 409, flag0 + 410, flag0 + 411 }, "vkCreateSwapchainKHR", "vkDestroySwapchainKHR", "vkGetSwapchainImagesKHR", "vkAcquireNextImageKHR", "vkQueuePresentKHR", "vkGetDeviceGroupPresentCapabilitiesKHR", "vkGetDeviceGroupSurfacePresentModesKHR", "vkAcquireNextImage2KHR" @@ -3794,14 +3805,10 @@ private static boolean check_KHR_synchronization2(FunctionProvider provider, lon return false; } - int flag0 = ext.contains("VK_AMD_buffer_marker") ? 0 : Integer.MIN_VALUE; - int flag1 = ext.contains("VK_NV_device_diagnostic_checkpoints") ? 0 : Integer.MIN_VALUE; - return checkFunctions(provider, caps, new int[] { - 480, 481, 482, 483, 484, 485, flag0 + 486, flag1 + 487 + 481, 482, 483, 484, 485, 486 }, - "vkCmdSetEvent2KHR", "vkCmdResetEvent2KHR", "vkCmdWaitEvents2KHR", "vkCmdPipelineBarrier2KHR", "vkCmdWriteTimestamp2KHR", "vkQueueSubmit2KHR", - "vkCmdWriteBufferMarker2AMD", "vkGetQueueCheckpointData2NV" + "vkCmdSetEvent2KHR", "vkCmdResetEvent2KHR", "vkCmdWaitEvents2KHR", "vkCmdPipelineBarrier2KHR", "vkCmdWriteTimestamp2KHR", "vkQueueSubmit2KHR" ) || reportMissing("VK", "VK_KHR_synchronization2"); } @@ -3811,7 +3818,7 @@ private static boolean check_KHR_timeline_semaphore(FunctionProvider provider, l } return checkFunctions(provider, caps, new int[] { - 488, 489, 490 + 487, 488, 489 }, "vkGetSemaphoreCounterValueKHR", "vkWaitSemaphoresKHR", "vkSignalSemaphoreKHR" ) || reportMissing("VK", "VK_KHR_timeline_semaphore"); @@ -3823,7 +3830,7 @@ private static boolean check_KHR_video_decode_queue(FunctionProvider provider, l } return checkFunctions(provider, caps, new int[] { - 491 + 490 }, "vkCmdDecodeVideoKHR" ) || reportMissing("VK", "VK_KHR_video_decode_queue"); @@ -3835,7 +3842,7 @@ private static boolean check_KHR_video_encode_queue(FunctionProvider provider, l } return checkFunctions(provider, caps, new int[] { - 492, 493 + 491, 492 }, "vkGetEncodedVideoSessionParametersKHR", "vkCmdEncodeVideoKHR" ) || reportMissing("VK", "VK_KHR_video_encode_queue"); @@ -3847,7 +3854,7 @@ private static boolean check_KHR_video_queue(FunctionProvider provider, long[] c } return checkFunctions(provider, caps, new int[] { - 494, 495, 496, 497, 498, 499, 500, 501, 502, 503 + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502 }, "vkCreateVideoSessionKHR", "vkDestroyVideoSessionKHR", "vkGetVideoSessionMemoryRequirementsKHR", "vkBindVideoSessionMemoryKHR", "vkCreateVideoSessionParametersKHR", "vkUpdateVideoSessionParametersKHR", "vkDestroyVideoSessionParametersKHR", "vkCmdBeginVideoCodingKHR", @@ -3861,7 +3868,7 @@ private static boolean check_NV_clip_space_w_scaling(FunctionProvider provider, } return checkFunctions(provider, caps, new int[] { - 504 + 503 }, "vkCmdSetViewportWScalingNV" ) || reportMissing("VK", "VK_NV_clip_space_w_scaling"); @@ -3873,7 +3880,7 @@ private static boolean check_NV_copy_memory_indirect(FunctionProvider provider, } return checkFunctions(provider, caps, new int[] { - 505, 506 + 504, 505 }, "vkCmdCopyMemoryIndirectNV", "vkCmdCopyMemoryToImageIndirectNV" ) || reportMissing("VK", "VK_NV_copy_memory_indirect"); @@ -3885,7 +3892,7 @@ private static boolean check_NV_cuda_kernel_launch(FunctionProvider provider, lo } return checkFunctions(provider, caps, new int[] { - 507, 508, 509, 510, 511, 512 + 506, 507, 508, 509, 510, 511 }, "vkCreateCudaModuleNV", "vkGetCudaModuleCacheNV", "vkCreateCudaFunctionNV", "vkDestroyCudaModuleNV", "vkDestroyCudaFunctionNV", "vkCmdCudaLaunchKernelNV" @@ -3897,10 +3904,12 @@ private static boolean check_NV_device_diagnostic_checkpoints(FunctionProvider p return false; } + int flag0 = ext.contains("Vulkan13") || ext.contains("VK_KHR_synchronization2") ? 0 : Integer.MIN_VALUE; + return checkFunctions(provider, caps, new int[] { - 513, 514 + 512, 513, flag0 + 514 }, - "vkCmdSetCheckpointNV", "vkGetQueueCheckpointDataNV" + "vkCmdSetCheckpointNV", "vkGetQueueCheckpointDataNV", "vkGetQueueCheckpointData2NV" ) || reportMissing("VK", "VK_NV_device_diagnostic_checkpoints"); } diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VKCapabilitiesInstance.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VKCapabilitiesInstance.java index 8266b6f31b..4b6d6ef675 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VKCapabilitiesInstance.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VKCapabilitiesInstance.java @@ -241,6 +241,10 @@ public class VKCapabilitiesInstance { public final long vkGetPhysicalDeviceCooperativeMatrixPropertiesNV; + /** Function pointers for NV_cooperative_matrix2 */ + public final long + vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV; + /** Function pointers for NV_coverage_reduction_mode */ public final long vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV; @@ -336,7 +340,7 @@ public class VKCapabilitiesInstance { VKCapabilitiesInstance(FunctionProvider provider, int apiVersion, Set ext, Set deviceExt) { this.apiVersion = apiVersion; - long[] caps = new long[106]; + long[] caps = new long[107]; Vulkan10 = check_VK10(provider, caps, ext); Vulkan11 = check_VK11(provider, caps, ext); @@ -389,6 +393,7 @@ public class VKCapabilitiesInstance { VK_MVK_macos_surface = check_MVK_macos_surface(provider, caps, ext); check_NV_acquire_winrt_display(provider, caps, deviceExt); check_NV_cooperative_matrix(provider, caps, deviceExt); + check_NV_cooperative_matrix2(provider, caps, deviceExt); check_NV_coverage_reduction_mode(provider, caps, deviceExt); VK_NV_external_memory_capabilities = check_NV_external_memory_capabilities(provider, caps, ext); check_NV_optical_flow(provider, caps, deviceExt); @@ -496,9 +501,10 @@ public class VKCapabilitiesInstance { vkAcquireWinrtDisplayNV = caps[100]; vkGetWinrtDisplayNV = caps[101]; vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = caps[102]; - vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = caps[103]; - vkGetPhysicalDeviceExternalImageFormatPropertiesNV = caps[104]; - vkGetPhysicalDeviceOpticalFlowImageFormatsNV = caps[105]; + vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV = caps[103]; + vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = caps[104]; + vkGetPhysicalDeviceExternalImageFormatPropertiesNV = caps[105]; + vkGetPhysicalDeviceOpticalFlowImageFormatsNV = caps[106]; } private static boolean check_VK10(FunctionProvider provider, long[] caps, Set ext) { @@ -1010,13 +1016,25 @@ private static boolean check_NV_cooperative_matrix(FunctionProvider provider, lo ) || reportMissing("VK", "VK_NV_cooperative_matrix"); } + private static boolean check_NV_cooperative_matrix2(FunctionProvider provider, long[] caps, Set ext) { + if (!ext.contains("VK_NV_cooperative_matrix2")) { + return false; + } + + return checkFunctions(provider, caps, new int[] { + 103 + }, + "vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV" + ) || reportMissing("VK", "VK_NV_cooperative_matrix2"); + } + private static boolean check_NV_coverage_reduction_mode(FunctionProvider provider, long[] caps, Set ext) { if (!ext.contains("VK_NV_coverage_reduction_mode")) { return false; } return checkFunctions(provider, caps, new int[] { - 103 + 104 }, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" ) || reportMissing("VK", "VK_NV_coverage_reduction_mode"); @@ -1028,7 +1046,7 @@ private static boolean check_NV_external_memory_capabilities(FunctionProvider pr } return checkFunctions(provider, caps, new int[] { - 104 + 105 }, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" ) || reportMissing("VK", "VK_NV_external_memory_capabilities"); @@ -1040,7 +1058,7 @@ private static boolean check_NV_optical_flow(FunctionProvider provider, long[] c } return checkFunctions(provider, caps, new int[] { - 105 + 106 }, "vkGetPhysicalDeviceOpticalFlowImageFormatsNV" ) || reportMissing("VK", "VK_NV_optical_flow"); diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkAccelerationStructureInstanceKHR.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkAccelerationStructureInstanceKHR.java index 1696e6283f..341a55847a 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkAccelerationStructureInstanceKHR.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkAccelerationStructureInstanceKHR.java @@ -132,7 +132,7 @@ public VkAccelerationStructureInstanceKHR(ByteBuffer container) { @NativeType("VkGeometryInstanceFlagsKHR") public int flags() { return nflags(address()); } /** - * either: + * either : * *
      *
    • a device address containing the value obtained from {@link KHRAccelerationStructure#vkGetAccelerationStructureDeviceAddressKHR GetAccelerationStructureDeviceAddressKHR} or {@link NVRayTracing#vkGetAccelerationStructureHandleNV GetAccelerationStructureHandleNV} (used by device operations which reference acceleration structures) or,
    • diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkAndroidHardwareBufferFormatResolvePropertiesANDROID.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkAndroidHardwareBufferFormatResolvePropertiesANDROID.java index f540f959cc..808818252c 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkAndroidHardwareBufferFormatResolvePropertiesANDROID.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkAndroidHardwareBufferFormatResolvePropertiesANDROID.java @@ -99,7 +99,7 @@ public VkAndroidHardwareBufferFormatResolvePropertiesANDROID(ByteBuffer containe /** {@code NULL} or a pointer to a structure extending this structure. */ @NativeType("void *") public long pNext() { return npNext(address()); } - /** a {@code VkFormat} specifying the format of color attachment images that must be used for color attachments when resolving to the specified external format. If the implementation supports external format resolves for the specified external format, this value will be set to a color format supporting the {@link VK10#VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT FORMAT_FEATURE_COLOR_ATTACHMENT_BIT} in {@link VkFormatProperties}{@code ::optimalTilingFeatures} as returned by {@link VK10#vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties} with {@code format} equal to {@code colorAttachmentFormat} If external format resolves are not supported, this value will be set to {@code VK_FORMAT_UNDEFINED}. */ + /** a {@code VkFormat} specifying the format of color attachment images that must be used for color attachments when resolving to the specified external format. If the implementation supports external format resolves for the specified external format, this value will be a color format supporting the {@link VK10#VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT FORMAT_FEATURE_COLOR_ATTACHMENT_BIT} in {@link VkFormatProperties}{@code ::optimalTilingFeatures} as returned by {@link VK10#vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties} with {@code format} equal to {@code colorAttachmentFormat} If external format resolves are not supported, this value will be {@link VK10#VK_FORMAT_UNDEFINED FORMAT_UNDEFINED}. */ @NativeType("VkFormat") public int colorAttachmentFormat() { return ncolorAttachmentFormat(address()); } diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkAttachmentSampleCountInfoAMD.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkAttachmentSampleCountInfoAMD.java index cc48cbb601..43552799fa 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkAttachmentSampleCountInfoAMD.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkAttachmentSampleCountInfoAMD.java @@ -27,7 +27,7 @@ *
      Valid Usage (Implicit)
      * *
        - *
      • {@code sType} must be {@link KHRDynamicRendering#VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD}
      • + *
      • {@code sType} must be {@link AMDMixedAttachmentSamples#VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD}
      • *
      * *

      Layout

      @@ -116,8 +116,8 @@ public VkAttachmentSampleCountInfoAMD(ByteBuffer container) { /** Sets the specified value to the {@link #sType} field. */ public VkAttachmentSampleCountInfoAMD sType(@NativeType("VkStructureType") int value) { nsType(address(), value); return this; } - /** Sets the {@link KHRDynamicRendering#VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD} value to the {@link #sType} field. */ - public VkAttachmentSampleCountInfoAMD sType$Default() { return sType(KHRDynamicRendering.VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD); } + /** Sets the {@link AMDMixedAttachmentSamples#VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD} value to the {@link #sType} field. */ + public VkAttachmentSampleCountInfoAMD sType$Default() { return sType(AMDMixedAttachmentSamples.VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD); } /** Sets the specified value to the {@link #pNext} field. */ public VkAttachmentSampleCountInfoAMD pNext(@NativeType("void const *") long value) { npNext(address(), value); return this; } /** Sets the specified value to the {@link #colorAttachmentCount} field. */ @@ -350,8 +350,8 @@ protected VkAttachmentSampleCountInfoAMD getElementFactory() { /** Sets the specified value to the {@link VkAttachmentSampleCountInfoAMD#sType} field. */ public VkAttachmentSampleCountInfoAMD.Buffer sType(@NativeType("VkStructureType") int value) { VkAttachmentSampleCountInfoAMD.nsType(address(), value); return this; } - /** Sets the {@link KHRDynamicRendering#VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD} value to the {@link VkAttachmentSampleCountInfoAMD#sType} field. */ - public VkAttachmentSampleCountInfoAMD.Buffer sType$Default() { return sType(KHRDynamicRendering.VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD); } + /** Sets the {@link AMDMixedAttachmentSamples#VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD} value to the {@link VkAttachmentSampleCountInfoAMD#sType} field. */ + public VkAttachmentSampleCountInfoAMD.Buffer sType$Default() { return sType(AMDMixedAttachmentSamples.VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD); } /** Sets the specified value to the {@link VkAttachmentSampleCountInfoAMD#pNext} field. */ public VkAttachmentSampleCountInfoAMD.Buffer pNext(@NativeType("void const *") long value) { VkAttachmentSampleCountInfoAMD.npNext(address(), value); return this; } /** Sets the specified value to the {@link VkAttachmentSampleCountInfoAMD#colorAttachmentCount} field. */ diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkAttachmentSampleCountInfoNV.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkAttachmentSampleCountInfoNV.java index 6844e0faa7..5f53893e31 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkAttachmentSampleCountInfoNV.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkAttachmentSampleCountInfoNV.java @@ -53,9 +53,9 @@ public VkAttachmentSampleCountInfoNV(ByteBuffer container) { /** Sets the specified value to the {@code sType} field. */ @Override public VkAttachmentSampleCountInfoNV sType(@NativeType("VkStructureType") int value) { nsType(address(), value); return this; } - /** Sets the {@link KHRDynamicRendering#VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD} value to the {@code sType} field. */ + /** Sets the {@link AMDMixedAttachmentSamples#VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD} value to the {@code sType} field. */ @Override - public VkAttachmentSampleCountInfoNV sType$Default() { return sType(KHRDynamicRendering.VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD); } + public VkAttachmentSampleCountInfoNV sType$Default() { return sType(AMDMixedAttachmentSamples.VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD); } /** Sets the specified value to the {@code pNext} field. */ @Override public VkAttachmentSampleCountInfoNV pNext(@NativeType("void const *") long value) { npNext(address(), value); return this; } @@ -254,9 +254,9 @@ protected VkAttachmentSampleCountInfoNV getElementFactory() { /** Sets the specified value to the {@code sType} field. */ @Override public VkAttachmentSampleCountInfoNV.Buffer sType(@NativeType("VkStructureType") int value) { VkAttachmentSampleCountInfoNV.nsType(address(), value); return this; } - /** Sets the {@link KHRDynamicRendering#VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD} value to the {@code sType} field. */ + /** Sets the {@link AMDMixedAttachmentSamples#VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD} value to the {@code sType} field. */ @Override - public VkAttachmentSampleCountInfoNV.Buffer sType$Default() { return sType(KHRDynamicRendering.VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD); } + public VkAttachmentSampleCountInfoNV.Buffer sType$Default() { return sType(AMDMixedAttachmentSamples.VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD); } /** Sets the specified value to the {@code pNext} field. */ @Override public VkAttachmentSampleCountInfoNV.Buffer pNext(@NativeType("void const *") long value) { VkAttachmentSampleCountInfoNV.npNext(address(), value); return this; } diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCheckpointData2NV.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCheckpointData2NV.java index 9a167018c7..e2fac87d2b 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCheckpointData2NV.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCheckpointData2NV.java @@ -21,7 +21,7 @@ *
      Valid Usage (Implicit)
      * *
        - *
      • {@code sType} must be {@link KHRSynchronization2#VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV}
      • + *
      • {@code sType} must be {@link NVDeviceDiagnosticCheckpoints#VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV}
      • *
      • {@code pNext} must be {@code NULL}
      • *
      * @@ -29,7 +29,7 @@ * *
      See Also
      * - *

      {@link KHRSynchronization2#vkGetQueueCheckpointData2NV GetQueueCheckpointData2NV}

      + *

      {@link NVDeviceDiagnosticCheckpoints#vkGetQueueCheckpointData2NV GetQueueCheckpointData2NV}

      * *

      Layout

      * @@ -110,8 +110,8 @@ public VkCheckpointData2NV(ByteBuffer container) { /** Sets the specified value to the {@link #sType} field. */ public VkCheckpointData2NV sType(@NativeType("VkStructureType") int value) { nsType(address(), value); return this; } - /** Sets the {@link KHRSynchronization2#VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV} value to the {@link #sType} field. */ - public VkCheckpointData2NV sType$Default() { return sType(KHRSynchronization2.VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV); } + /** Sets the {@link NVDeviceDiagnosticCheckpoints#VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV} value to the {@link #sType} field. */ + public VkCheckpointData2NV sType$Default() { return sType(NVDeviceDiagnosticCheckpoints.VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV); } /** Sets the specified value to the {@link #pNext} field. */ public VkCheckpointData2NV pNext(@NativeType("void *") long value) { npNext(address(), value); return this; } @@ -321,8 +321,8 @@ protected VkCheckpointData2NV getElementFactory() { /** Sets the specified value to the {@link VkCheckpointData2NV#sType} field. */ public VkCheckpointData2NV.Buffer sType(@NativeType("VkStructureType") int value) { VkCheckpointData2NV.nsType(address(), value); return this; } - /** Sets the {@link KHRSynchronization2#VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV} value to the {@link VkCheckpointData2NV#sType} field. */ - public VkCheckpointData2NV.Buffer sType$Default() { return sType(KHRSynchronization2.VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV); } + /** Sets the {@link NVDeviceDiagnosticCheckpoints#VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV} value to the {@link VkCheckpointData2NV#sType} field. */ + public VkCheckpointData2NV.Buffer sType$Default() { return sType(NVDeviceDiagnosticCheckpoints.VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV); } /** Sets the specified value to the {@link VkCheckpointData2NV#pNext} field. */ public VkCheckpointData2NV.Buffer pNext(@NativeType("void *") long value) { VkCheckpointData2NV.npNext(address(), value); return this; } diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkComputePipelineCreateInfo.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkComputePipelineCreateInfo.java index 374cb7b76e..38f21c40af 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkComputePipelineCreateInfo.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkComputePipelineCreateInfo.java @@ -49,7 +49,7 @@ *
    • {@code flags} must not include {@link NVRayTracingMotionBlur#VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV}
    • *
    • If the {@link VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV}{@code ::deviceGeneratedComputePipelines} is not enabled, {@code flags} must not include {@link NVDeviceGeneratedCommands#VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV}
    • *
    • If {@code flags} includes {@link NVDeviceGeneratedCommands#VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV}, then the {@code pNext} chain must include a pointer to a valid instance of {@link VkComputePipelineIndirectBufferInfoNV} specifying the address where the pipeline’s metadata will be saved
    • - *
    • If {@code flags} includes {@link EXTDeviceGeneratedCommands#VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT}, then the {@code deviceGeneratedCommands} feature must be enabled
    • + *
    • If {@code flags} includes {@link EXTDeviceGeneratedCommands#VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT}, then the {@link VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT}{@code ::deviceGeneratedCommands} feature must be enabled
    • *
    • If the {@code pipelineCreationCacheControl} feature is not enabled, {@code flags} must not include {@link VK13#VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT} or {@link VK13#VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT}
    • *
    • The {@code stage} member of {@code stage} must be {@link VK10#VK_SHADER_STAGE_COMPUTE_BIT SHADER_STAGE_COMPUTE_BIT}
    • *
    • The shader code for the entry point identified by {@code stage} and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter
    • diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCooperativeMatrixFlexibleDimensionsPropertiesNV.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCooperativeMatrixFlexibleDimensionsPropertiesNV.java new file mode 100644 index 0000000000..e3939eb407 --- /dev/null +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCooperativeMatrixFlexibleDimensionsPropertiesNV.java @@ -0,0 +1,438 @@ +/* + * Copyright LWJGL. All rights reserved. + * License terms: https://www.lwjgl.org/license + * MACHINE GENERATED FILE, DO NOT EDIT + */ +package org.lwjgl.vulkan; + +import org.jspecify.annotations.*; + +import java.nio.*; + +import org.lwjgl.*; +import org.lwjgl.system.*; + +import static org.lwjgl.system.MemoryUtil.*; +import static org.lwjgl.system.MemoryStack.*; + +/** + * Structure specifying cooperative matrix properties. + * + *
      Description
      + * + *

      Rather than explicitly enumerating a list of supported sizes, {@link VkCooperativeMatrixFlexibleDimensionsPropertiesNV} advertises size granularities, where the matrix must be a multiple of the advertised size. The M and K granularities apply to rows and columns of matrices with {@code Use} of {@code MatrixA}, K, and N apply to rows and columns of matrices with {@code Use} of {@code MatrixB}, M, and N apply to rows and columns of matrices with {@code Use} of {@code MatrixAccumulator}.

      + * + *

      For a given type combination, if multiple workgroup sizes are supported there may be multiple {@link VkCooperativeMatrixFlexibleDimensionsPropertiesNV} structures with different granularities.

      + * + *

      All granularity values must be powers of two.

      + * + *
      Note
      + * + *

      Different A/B types may require different granularities but share the same accumulator type. In such a case, the supported granularity for a matrix with the accumulator type would be the smallest advertised granularity.

      + *
      + * + *
      Valid Usage (Implicit)
      + * + *
        + *
      • {@code sType} must be {@link NVCooperativeMatrix2#VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV}
      • + *
      • {@code pNext} must be {@code NULL}
      • + *
      + * + *
      See Also
      + * + *

      {@link NVCooperativeMatrix2#vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV}

      + * + *

      Layout

      + * + *
      
      + * struct VkCooperativeMatrixFlexibleDimensionsPropertiesNV {
      + *     VkStructureType {@link #sType};
      + *     void * {@link #pNext};
      + *     uint32_t {@link #MGranularity};
      + *     uint32_t {@link #NGranularity};
      + *     uint32_t {@link #KGranularity};
      + *     VkComponentTypeKHR {@link #AType};
      + *     VkComponentTypeKHR {@link #BType};
      + *     VkComponentTypeKHR {@link #CType};
      + *     VkComponentTypeKHR {@link #ResultType};
      + *     VkBool32 {@link #saturatingAccumulation};
      + *     VkScopeKHR {@link #scope};
      + *     uint32_t {@link #workgroupInvocations};
      + * }
      + */ +public class VkCooperativeMatrixFlexibleDimensionsPropertiesNV extends Struct implements NativeResource { + + /** The struct size in bytes. */ + public static final int SIZEOF; + + /** The struct alignment in bytes. */ + public static final int ALIGNOF; + + /** The struct member offsets. */ + public static final int + STYPE, + PNEXT, + MGRANULARITY, + NGRANULARITY, + KGRANULARITY, + ATYPE, + BTYPE, + CTYPE, + RESULTTYPE, + SATURATINGACCUMULATION, + SCOPE, + WORKGROUPINVOCATIONS; + + static { + Layout layout = __struct( + __member(4), + __member(POINTER_SIZE), + __member(4), + __member(4), + __member(4), + __member(4), + __member(4), + __member(4), + __member(4), + __member(4), + __member(4), + __member(4) + ); + + SIZEOF = layout.getSize(); + ALIGNOF = layout.getAlignment(); + + STYPE = layout.offsetof(0); + PNEXT = layout.offsetof(1); + MGRANULARITY = layout.offsetof(2); + NGRANULARITY = layout.offsetof(3); + KGRANULARITY = layout.offsetof(4); + ATYPE = layout.offsetof(5); + BTYPE = layout.offsetof(6); + CTYPE = layout.offsetof(7); + RESULTTYPE = layout.offsetof(8); + SATURATINGACCUMULATION = layout.offsetof(9); + SCOPE = layout.offsetof(10); + WORKGROUPINVOCATIONS = layout.offsetof(11); + } + + protected VkCooperativeMatrixFlexibleDimensionsPropertiesNV(long address, @Nullable ByteBuffer container) { + super(address, container); + } + + @Override + protected VkCooperativeMatrixFlexibleDimensionsPropertiesNV create(long address, @Nullable ByteBuffer container) { + return new VkCooperativeMatrixFlexibleDimensionsPropertiesNV(address, container); + } + + /** + * Creates a {@code VkCooperativeMatrixFlexibleDimensionsPropertiesNV} instance at the current position of the specified {@link ByteBuffer} container. Changes to the buffer's content will be + * visible to the struct instance and vice versa. + * + *

      The created instance holds a strong reference to the container object.

      + */ + public VkCooperativeMatrixFlexibleDimensionsPropertiesNV(ByteBuffer container) { + super(memAddress(container), __checkContainer(container, SIZEOF)); + } + + @Override + public int sizeof() { return SIZEOF; } + + /** a {@code VkStructureType} value identifying this structure. */ + @NativeType("VkStructureType") + public int sType() { return nsType(address()); } + /** {@code NULL} or a pointer to a structure extending this structure. */ + @NativeType("void *") + public long pNext() { return npNext(address()); } + /** the granularity of the number of rows in matrices {@code A}, {@code C}, and {@code Result}. The rows must be an integer multiple of this value. */ + @NativeType("uint32_t") + public int MGranularity() { return nMGranularity(address()); } + /** the granularity of columns in matrices {@code B}, {@code C}, {@code Result}. The columns must be an integer multiple of this value. */ + @NativeType("uint32_t") + public int NGranularity() { return nNGranularity(address()); } + /** the granularity of columns in matrix {@code A} and rows in matrix {@code B}. The columns/rows must be an integer multiple of this value. */ + @NativeType("uint32_t") + public int KGranularity() { return nKGranularity(address()); } + /** the component type of matrix {@code A}, of type {@code VkComponentTypeKHR}. */ + @NativeType("VkComponentTypeKHR") + public int AType() { return nAType(address()); } + /** the component type of matrix {@code B}, of type {@code VkComponentTypeKHR}. */ + @NativeType("VkComponentTypeKHR") + public int BType() { return nBType(address()); } + /** the component type of matrix {@code C}, of type {@code VkComponentTypeKHR}. */ + @NativeType("VkComponentTypeKHR") + public int CType() { return nCType(address()); } + /** the component type of matrix {@code Result}, of type {@code VkComponentTypeKHR}. */ + @NativeType("VkComponentTypeKHR") + public int ResultType() { return nResultType(address()); } + /** indicates whether the {@code SaturatingAccumulation} operand to {@code OpCooperativeMatrixMulAddKHR} must be present or not. If it is {@link VK10#VK_TRUE TRUE}, the {@code SaturatingAccumulation} operand must be present. If it is {@link VK10#VK_FALSE FALSE}, the {@code SaturatingAccumulation} operand must not be present. */ + @NativeType("VkBool32") + public boolean saturatingAccumulation() { return nsaturatingAccumulation(address()) != 0; } + /** the scope of all the matrix types, of type {@code VkScopeKHR}. */ + @NativeType("VkScopeKHR") + public int scope() { return nscope(address()); } + /** the number of invocations in the local workgroup when this combination of values is supported. */ + @NativeType("uint32_t") + public int workgroupInvocations() { return nworkgroupInvocations(address()); } + + /** Sets the specified value to the {@link #sType} field. */ + public VkCooperativeMatrixFlexibleDimensionsPropertiesNV sType(@NativeType("VkStructureType") int value) { nsType(address(), value); return this; } + /** Sets the {@link NVCooperativeMatrix2#VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV} value to the {@link #sType} field. */ + public VkCooperativeMatrixFlexibleDimensionsPropertiesNV sType$Default() { return sType(NVCooperativeMatrix2.VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV); } + /** Sets the specified value to the {@link #pNext} field. */ + public VkCooperativeMatrixFlexibleDimensionsPropertiesNV pNext(@NativeType("void *") long value) { npNext(address(), value); return this; } + + /** Initializes this struct with the specified values. */ + public VkCooperativeMatrixFlexibleDimensionsPropertiesNV set( + int sType, + long pNext + ) { + sType(sType); + pNext(pNext); + + return this; + } + + /** + * Copies the specified struct data to this struct. + * + * @param src the source struct + * + * @return this struct + */ + public VkCooperativeMatrixFlexibleDimensionsPropertiesNV set(VkCooperativeMatrixFlexibleDimensionsPropertiesNV src) { + memCopy(src.address(), address(), SIZEOF); + return this; + } + + // ----------------------------------- + + /** Returns a new {@code VkCooperativeMatrixFlexibleDimensionsPropertiesNV} instance allocated with {@link MemoryUtil#memAlloc memAlloc}. The instance must be explicitly freed. */ + public static VkCooperativeMatrixFlexibleDimensionsPropertiesNV malloc() { + return new VkCooperativeMatrixFlexibleDimensionsPropertiesNV(nmemAllocChecked(SIZEOF), null); + } + + /** Returns a new {@code VkCooperativeMatrixFlexibleDimensionsPropertiesNV} instance allocated with {@link MemoryUtil#memCalloc memCalloc}. The instance must be explicitly freed. */ + public static VkCooperativeMatrixFlexibleDimensionsPropertiesNV calloc() { + return new VkCooperativeMatrixFlexibleDimensionsPropertiesNV(nmemCallocChecked(1, SIZEOF), null); + } + + /** Returns a new {@code VkCooperativeMatrixFlexibleDimensionsPropertiesNV} instance allocated with {@link BufferUtils}. */ + public static VkCooperativeMatrixFlexibleDimensionsPropertiesNV create() { + ByteBuffer container = BufferUtils.createByteBuffer(SIZEOF); + return new VkCooperativeMatrixFlexibleDimensionsPropertiesNV(memAddress(container), container); + } + + /** Returns a new {@code VkCooperativeMatrixFlexibleDimensionsPropertiesNV} instance for the specified memory address. */ + public static VkCooperativeMatrixFlexibleDimensionsPropertiesNV create(long address) { + return new VkCooperativeMatrixFlexibleDimensionsPropertiesNV(address, null); + } + + /** Like {@link #create(long) create}, but returns {@code null} if {@code address} is {@code NULL}. */ + public static @Nullable VkCooperativeMatrixFlexibleDimensionsPropertiesNV createSafe(long address) { + return address == NULL ? null : new VkCooperativeMatrixFlexibleDimensionsPropertiesNV(address, null); + } + + /** + * Returns a new {@link VkCooperativeMatrixFlexibleDimensionsPropertiesNV.Buffer} instance allocated with {@link MemoryUtil#memAlloc memAlloc}. The instance must be explicitly freed. + * + * @param capacity the buffer capacity + */ + public static VkCooperativeMatrixFlexibleDimensionsPropertiesNV.Buffer malloc(int capacity) { + return new Buffer(nmemAllocChecked(__checkMalloc(capacity, SIZEOF)), capacity); + } + + /** + * Returns a new {@link VkCooperativeMatrixFlexibleDimensionsPropertiesNV.Buffer} instance allocated with {@link MemoryUtil#memCalloc memCalloc}. The instance must be explicitly freed. + * + * @param capacity the buffer capacity + */ + public static VkCooperativeMatrixFlexibleDimensionsPropertiesNV.Buffer calloc(int capacity) { + return new Buffer(nmemCallocChecked(capacity, SIZEOF), capacity); + } + + /** + * Returns a new {@link VkCooperativeMatrixFlexibleDimensionsPropertiesNV.Buffer} instance allocated with {@link BufferUtils}. + * + * @param capacity the buffer capacity + */ + public static VkCooperativeMatrixFlexibleDimensionsPropertiesNV.Buffer create(int capacity) { + ByteBuffer container = __create(capacity, SIZEOF); + return new Buffer(memAddress(container), container, -1, 0, capacity, capacity); + } + + /** + * Create a {@link VkCooperativeMatrixFlexibleDimensionsPropertiesNV.Buffer} instance at the specified memory. + * + * @param address the memory address + * @param capacity the buffer capacity + */ + public static VkCooperativeMatrixFlexibleDimensionsPropertiesNV.Buffer create(long address, int capacity) { + return new Buffer(address, capacity); + } + + /** Like {@link #create(long, int) create}, but returns {@code null} if {@code address} is {@code NULL}. */ + public static VkCooperativeMatrixFlexibleDimensionsPropertiesNV.@Nullable Buffer createSafe(long address, int capacity) { + return address == NULL ? null : new Buffer(address, capacity); + } + + /** + * Returns a new {@code VkCooperativeMatrixFlexibleDimensionsPropertiesNV} instance allocated on the specified {@link MemoryStack}. + * + * @param stack the stack from which to allocate + */ + public static VkCooperativeMatrixFlexibleDimensionsPropertiesNV malloc(MemoryStack stack) { + return new VkCooperativeMatrixFlexibleDimensionsPropertiesNV(stack.nmalloc(ALIGNOF, SIZEOF), null); + } + + /** + * Returns a new {@code VkCooperativeMatrixFlexibleDimensionsPropertiesNV} instance allocated on the specified {@link MemoryStack} and initializes all its bits to zero. + * + * @param stack the stack from which to allocate + */ + public static VkCooperativeMatrixFlexibleDimensionsPropertiesNV calloc(MemoryStack stack) { + return new VkCooperativeMatrixFlexibleDimensionsPropertiesNV(stack.ncalloc(ALIGNOF, 1, SIZEOF), null); + } + + /** + * Returns a new {@link VkCooperativeMatrixFlexibleDimensionsPropertiesNV.Buffer} instance allocated on the specified {@link MemoryStack}. + * + * @param stack the stack from which to allocate + * @param capacity the buffer capacity + */ + public static VkCooperativeMatrixFlexibleDimensionsPropertiesNV.Buffer malloc(int capacity, MemoryStack stack) { + return new Buffer(stack.nmalloc(ALIGNOF, capacity * SIZEOF), capacity); + } + + /** + * Returns a new {@link VkCooperativeMatrixFlexibleDimensionsPropertiesNV.Buffer} instance allocated on the specified {@link MemoryStack} and initializes all its bits to zero. + * + * @param stack the stack from which to allocate + * @param capacity the buffer capacity + */ + public static VkCooperativeMatrixFlexibleDimensionsPropertiesNV.Buffer calloc(int capacity, MemoryStack stack) { + return new Buffer(stack.ncalloc(ALIGNOF, capacity, SIZEOF), capacity); + } + + // ----------------------------------- + + /** Unsafe version of {@link #sType}. */ + public static int nsType(long struct) { return memGetInt(struct + VkCooperativeMatrixFlexibleDimensionsPropertiesNV.STYPE); } + /** Unsafe version of {@link #pNext}. */ + public static long npNext(long struct) { return memGetAddress(struct + VkCooperativeMatrixFlexibleDimensionsPropertiesNV.PNEXT); } + /** Unsafe version of {@link #MGranularity}. */ + public static int nMGranularity(long struct) { return memGetInt(struct + VkCooperativeMatrixFlexibleDimensionsPropertiesNV.MGRANULARITY); } + /** Unsafe version of {@link #NGranularity}. */ + public static int nNGranularity(long struct) { return memGetInt(struct + VkCooperativeMatrixFlexibleDimensionsPropertiesNV.NGRANULARITY); } + /** Unsafe version of {@link #KGranularity}. */ + public static int nKGranularity(long struct) { return memGetInt(struct + VkCooperativeMatrixFlexibleDimensionsPropertiesNV.KGRANULARITY); } + /** Unsafe version of {@link #AType}. */ + public static int nAType(long struct) { return memGetInt(struct + VkCooperativeMatrixFlexibleDimensionsPropertiesNV.ATYPE); } + /** Unsafe version of {@link #BType}. */ + public static int nBType(long struct) { return memGetInt(struct + VkCooperativeMatrixFlexibleDimensionsPropertiesNV.BTYPE); } + /** Unsafe version of {@link #CType}. */ + public static int nCType(long struct) { return memGetInt(struct + VkCooperativeMatrixFlexibleDimensionsPropertiesNV.CTYPE); } + /** Unsafe version of {@link #ResultType}. */ + public static int nResultType(long struct) { return memGetInt(struct + VkCooperativeMatrixFlexibleDimensionsPropertiesNV.RESULTTYPE); } + /** Unsafe version of {@link #saturatingAccumulation}. */ + public static int nsaturatingAccumulation(long struct) { return memGetInt(struct + VkCooperativeMatrixFlexibleDimensionsPropertiesNV.SATURATINGACCUMULATION); } + /** Unsafe version of {@link #scope}. */ + public static int nscope(long struct) { return memGetInt(struct + VkCooperativeMatrixFlexibleDimensionsPropertiesNV.SCOPE); } + /** Unsafe version of {@link #workgroupInvocations}. */ + public static int nworkgroupInvocations(long struct) { return memGetInt(struct + VkCooperativeMatrixFlexibleDimensionsPropertiesNV.WORKGROUPINVOCATIONS); } + + /** Unsafe version of {@link #sType(int) sType}. */ + public static void nsType(long struct, int value) { memPutInt(struct + VkCooperativeMatrixFlexibleDimensionsPropertiesNV.STYPE, value); } + /** Unsafe version of {@link #pNext(long) pNext}. */ + public static void npNext(long struct, long value) { memPutAddress(struct + VkCooperativeMatrixFlexibleDimensionsPropertiesNV.PNEXT, value); } + + // ----------------------------------- + + /** An array of {@link VkCooperativeMatrixFlexibleDimensionsPropertiesNV} structs. */ + public static class Buffer extends StructBuffer implements NativeResource { + + private static final VkCooperativeMatrixFlexibleDimensionsPropertiesNV ELEMENT_FACTORY = VkCooperativeMatrixFlexibleDimensionsPropertiesNV.create(-1L); + + /** + * Creates a new {@code VkCooperativeMatrixFlexibleDimensionsPropertiesNV.Buffer} instance backed by the specified container. + * + *

      Changes to the container's content will be visible to the struct buffer instance and vice versa. The two buffers' position, limit, and mark values + * will be independent. The new buffer's position will be zero, its capacity and its limit will be the number of bytes remaining in this buffer divided + * by {@link VkCooperativeMatrixFlexibleDimensionsPropertiesNV#SIZEOF}, and its mark will be undefined.

      + * + *

      The created buffer instance holds a strong reference to the container object.

      + */ + public Buffer(ByteBuffer container) { + super(container, container.remaining() / SIZEOF); + } + + public Buffer(long address, int cap) { + super(address, null, -1, 0, cap, cap); + } + + Buffer(long address, @Nullable ByteBuffer container, int mark, int pos, int lim, int cap) { + super(address, container, mark, pos, lim, cap); + } + + @Override + protected Buffer self() { + return this; + } + + @Override + protected Buffer create(long address, @Nullable ByteBuffer container, int mark, int position, int limit, int capacity) { + return new Buffer(address, container, mark, position, limit, capacity); + } + + @Override + protected VkCooperativeMatrixFlexibleDimensionsPropertiesNV getElementFactory() { + return ELEMENT_FACTORY; + } + + /** @return the value of the {@link VkCooperativeMatrixFlexibleDimensionsPropertiesNV#sType} field. */ + @NativeType("VkStructureType") + public int sType() { return VkCooperativeMatrixFlexibleDimensionsPropertiesNV.nsType(address()); } + /** @return the value of the {@link VkCooperativeMatrixFlexibleDimensionsPropertiesNV#pNext} field. */ + @NativeType("void *") + public long pNext() { return VkCooperativeMatrixFlexibleDimensionsPropertiesNV.npNext(address()); } + /** @return the value of the {@link VkCooperativeMatrixFlexibleDimensionsPropertiesNV#MGranularity} field. */ + @NativeType("uint32_t") + public int MGranularity() { return VkCooperativeMatrixFlexibleDimensionsPropertiesNV.nMGranularity(address()); } + /** @return the value of the {@link VkCooperativeMatrixFlexibleDimensionsPropertiesNV#NGranularity} field. */ + @NativeType("uint32_t") + public int NGranularity() { return VkCooperativeMatrixFlexibleDimensionsPropertiesNV.nNGranularity(address()); } + /** @return the value of the {@link VkCooperativeMatrixFlexibleDimensionsPropertiesNV#KGranularity} field. */ + @NativeType("uint32_t") + public int KGranularity() { return VkCooperativeMatrixFlexibleDimensionsPropertiesNV.nKGranularity(address()); } + /** @return the value of the {@link VkCooperativeMatrixFlexibleDimensionsPropertiesNV#AType} field. */ + @NativeType("VkComponentTypeKHR") + public int AType() { return VkCooperativeMatrixFlexibleDimensionsPropertiesNV.nAType(address()); } + /** @return the value of the {@link VkCooperativeMatrixFlexibleDimensionsPropertiesNV#BType} field. */ + @NativeType("VkComponentTypeKHR") + public int BType() { return VkCooperativeMatrixFlexibleDimensionsPropertiesNV.nBType(address()); } + /** @return the value of the {@link VkCooperativeMatrixFlexibleDimensionsPropertiesNV#CType} field. */ + @NativeType("VkComponentTypeKHR") + public int CType() { return VkCooperativeMatrixFlexibleDimensionsPropertiesNV.nCType(address()); } + /** @return the value of the {@link VkCooperativeMatrixFlexibleDimensionsPropertiesNV#ResultType} field. */ + @NativeType("VkComponentTypeKHR") + public int ResultType() { return VkCooperativeMatrixFlexibleDimensionsPropertiesNV.nResultType(address()); } + /** @return the value of the {@link VkCooperativeMatrixFlexibleDimensionsPropertiesNV#saturatingAccumulation} field. */ + @NativeType("VkBool32") + public boolean saturatingAccumulation() { return VkCooperativeMatrixFlexibleDimensionsPropertiesNV.nsaturatingAccumulation(address()) != 0; } + /** @return the value of the {@link VkCooperativeMatrixFlexibleDimensionsPropertiesNV#scope} field. */ + @NativeType("VkScopeKHR") + public int scope() { return VkCooperativeMatrixFlexibleDimensionsPropertiesNV.nscope(address()); } + /** @return the value of the {@link VkCooperativeMatrixFlexibleDimensionsPropertiesNV#workgroupInvocations} field. */ + @NativeType("uint32_t") + public int workgroupInvocations() { return VkCooperativeMatrixFlexibleDimensionsPropertiesNV.nworkgroupInvocations(address()); } + + /** Sets the specified value to the {@link VkCooperativeMatrixFlexibleDimensionsPropertiesNV#sType} field. */ + public VkCooperativeMatrixFlexibleDimensionsPropertiesNV.Buffer sType(@NativeType("VkStructureType") int value) { VkCooperativeMatrixFlexibleDimensionsPropertiesNV.nsType(address(), value); return this; } + /** Sets the {@link NVCooperativeMatrix2#VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV} value to the {@link VkCooperativeMatrixFlexibleDimensionsPropertiesNV#sType} field. */ + public VkCooperativeMatrixFlexibleDimensionsPropertiesNV.Buffer sType$Default() { return sType(NVCooperativeMatrix2.VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV); } + /** Sets the specified value to the {@link VkCooperativeMatrixFlexibleDimensionsPropertiesNV#pNext} field. */ + public VkCooperativeMatrixFlexibleDimensionsPropertiesNV.Buffer pNext(@NativeType("void *") long value) { VkCooperativeMatrixFlexibleDimensionsPropertiesNV.npNext(address(), value); return this; } + + } + +} \ No newline at end of file diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCooperativeMatrixPropertiesKHR.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCooperativeMatrixPropertiesKHR.java index 7f1948796b..f665ea0dfd 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCooperativeMatrixPropertiesKHR.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCooperativeMatrixPropertiesKHR.java @@ -24,7 +24,7 @@ * *

      At least one entry in the list must have power of two values for all of {@code MSize}, {@code KSize}, and {@code NSize}.

      * - *

      {@code scope} must be {@link KHRCooperativeMatrix#VK_SCOPE_SUBGROUP_KHR SCOPE_SUBGROUP_KHR}.

      + *

      If {@code cooperativeMatrixWorkgroupScope} is not supported, {@code scope} must be {@link KHRCooperativeMatrix#VK_SCOPE_SUBGROUP_KHR SCOPE_SUBGROUP_KHR}.

      * *
      Valid Usage (Implicit)
      * diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCopyBufferToImageInfo2.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCopyBufferToImageInfo2.java index b13878d167..f41fed4302 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCopyBufferToImageInfo2.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCopyBufferToImageInfo2.java @@ -23,7 +23,7 @@ * *
        *
      • The image region specified by each element of {@code pRegions} that does not contain {@link VkCopyCommandTransformInfoQCOM} in its {@code pNext} chain must be contained within the specified {@code imageSubresource} of {@code dstImage}
      • - *
      • If the image region specified by each element of {@code pRegions} contains {@link VkCopyCommandTransformInfoQCOM} in its {@code pNext} chain, the rotated destination region as described in Buffer and Image Addressing with Rotation must be contained within {@code dstImage}
      • + *
      • If the image region specified by each element of {@code pRegions} contains {@link VkCopyCommandTransformInfoQCOM} in its {@code pNext} chain, the rotated destination region must be contained within {@code dstImage}
      • *
      • If any element of {@code pRegions} contains {@link VkCopyCommandTransformInfoQCOM} in its {@code pNext} chain, then {@code dstImage} must have a 1x1x1 texel block extent
      • *
      • If any element of {@code pRegions} contains {@link VkCopyCommandTransformInfoQCOM} in its {@code pNext} chain, then {@code dstImage} must be of type {@link VK10#VK_IMAGE_TYPE_2D IMAGE_TYPE_2D}
      • *
      • If any element of {@code pRegions} contains {@link VkCopyCommandTransformInfoQCOM} in its {@code pNext} chain, then {@code dstImage} must not have a multi-planar format
      • diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCopyDescriptorSet.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCopyDescriptorSet.java index 1e2f9822fd..62d5ed928f 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCopyDescriptorSet.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCopyDescriptorSet.java @@ -31,11 +31,11 @@ * *
          *
        • {@code srcBinding} must be a valid binding within {@code srcSet}
        • - *
        • The sum of {@code srcArrayElement} and {@code descriptorCount} must be less than or equal to the number of array elements in the descriptor set binding specified by {@code srcBinding}, and all applicable consecutive bindings, as described by consecutive binding updates
        • + *
        • The sum of {@code srcArrayElement} and {@code descriptorCount} must be less than or equal to the number of array elements in the descriptor set binding specified by {@code srcBinding}, and all applicable consecutive bindings
        • *
        • {@code dstBinding} must be a valid binding within {@code dstSet}
        • - *
        • The sum of {@code dstArrayElement} and {@code descriptorCount} must be less than or equal to the number of array elements in the descriptor set binding specified by {@code dstBinding}, and all applicable consecutive bindings, as described by consecutive binding updates
        • + *
        • The sum of {@code dstArrayElement} and {@code descriptorCount} must be less than or equal to the number of array elements in the descriptor set binding specified by {@code dstBinding}, and all applicable consecutive bindings
        • *
        • The type of {@code dstBinding} within {@code dstSet} must be equal to the type of {@code srcBinding} within {@code srcSet}
        • - *
        • If {@code srcSet} is equal to {@code dstSet}, then the source and destination ranges of descriptors must not overlap, where the ranges may include array elements from consecutive bindings as described by consecutive binding updates
        • + *
        • If {@code srcSet} is equal to {@code dstSet}, then the source and destination ranges of descriptors must not overlap, where the ranges may include array elements from consecutive bindings
        • *
        • If the descriptor type of the descriptor set binding specified by {@code srcBinding} is {@link VK13#VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK}, {@code srcArrayElement} must be an integer multiple of 4
        • *
        • If the descriptor type of the descriptor set binding specified by {@code dstBinding} is {@link VK13#VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK}, {@code dstArrayElement} must be an integer multiple of 4
        • *
        • If the descriptor type of the descriptor set binding specified by either {@code srcBinding} or {@code dstBinding} is {@link VK13#VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK}, {@code descriptorCount} must be an integer multiple of 4
        • diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCopyImageToBufferInfo2.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCopyImageToBufferInfo2.java index 697874d600..3cbf67b178 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCopyImageToBufferInfo2.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCopyImageToBufferInfo2.java @@ -23,7 +23,7 @@ * *
            *
          • The image region specified by each element of {@code pRegions} that does not contain {@link VkCopyCommandTransformInfoQCOM} in its {@code pNext} chain must be contained within the specified {@code imageSubresource} of {@code srcImage}
          • - *
          • If the image region specified by each element of {@code pRegions} contains {@link VkCopyCommandTransformInfoQCOM} in its {@code pNext} chain, the rotated source region as described in Buffer and Image Addressing with Rotation must be contained within {@code srcImage}
          • + *
          • If the image region specified by each element of {@code pRegions} contains {@link VkCopyCommandTransformInfoQCOM} in its {@code pNext} chain, the rotated source region must be contained within {@code srcImage}
          • *
          • If any element of {@code pRegions} contains {@link VkCopyCommandTransformInfoQCOM} in its {@code pNext} chain, then {@code srcImage} must have a 1x1x1 texel block extent
          • *
          • If any element of {@code pRegions} contains {@link VkCopyCommandTransformInfoQCOM} in its {@code pNext} chain, then {@code srcImage} must be of type {@link VK10#VK_IMAGE_TYPE_2D IMAGE_TYPE_2D}
          • *
          • If any element of {@code pRegions} contains {@link VkCopyCommandTransformInfoQCOM} in its {@code pNext} chain, then {@code srcImage} must not have a multi-planar format
          • diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCudaLaunchInfoNV.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCudaLaunchInfoNV.java index 1c147d1103..214b055a40 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCudaLaunchInfoNV.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCudaLaunchInfoNV.java @@ -22,7 +22,7 @@ * *

            Kernel parameters of {@code function} are specified via {@code pParams}, very much the same way as described in cuLaunchKernel

            * - *

            If {@code function} has N parameters, then {@code pParams} must be an array of N pointers and {@code paramCount} must be set to N. Each of {@code kernelParams}[0] through {@code kernelParams}[N-1] must point to a region of memory from which the actual kernel parameter will be copied. The number of kernel parameters and their offsets and sizes are not specified here as that information is stored in the {@code VkCudaFunctionNV} object.

            + *

            If {@code function} has N parameters, then {@code pParams} must be an array of N pointers and {@code paramCount} must be N. Each of {@code kernelParams}[0] through {@code kernelParams}[N-1] must point to a region of memory from which the actual kernel parameter will be copied. The number of kernel parameters and their offsets and sizes are not specified here as that information is stored in the {@code VkCudaFunctionNV} object.

            * *

            The application-owned memory pointed to by {@code pParams} and {@code kernelParams}[0] through {@code kernelParams}[N-1] are consumed immediately, and may be altered or freed after {@link NVCudaKernelLaunch#vkCmdCudaLaunchKernelNV CmdCudaLaunchKernelNV} has returned.

            * diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDebugMarkerMarkerInfoEXT.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDebugMarkerMarkerInfoEXT.java index a3c6c5f0cb..8597f7fcb4 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDebugMarkerMarkerInfoEXT.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDebugMarkerMarkerInfoEXT.java @@ -107,10 +107,10 @@ public VkDebugMarkerMarkerInfoEXT(ByteBuffer container) { /** a pointer to a null-terminated UTF-8 string containing the name of the marker. */ @NativeType("char const *") public String pMarkerNameString() { return npMarkerNameString(address()); } - /** an optional RGBA color value that can be associated with the marker. A particular implementation may choose to ignore this color value. The values contain RGBA values in order, in the range 0.0 to 1.0. If all elements in {@code color} are set to 0.0 then it is ignored. */ + /** an optional RGBA color value that can be associated with the marker. A particular implementation may choose to ignore this color value. The values contain RGBA values in order, in the range 0.0 to 1.0. If all elements in {@code color} are 0.0, then it is ignored. */ @NativeType("float[4]") public FloatBuffer color() { return ncolor(address()); } - /** an optional RGBA color value that can be associated with the marker. A particular implementation may choose to ignore this color value. The values contain RGBA values in order, in the range 0.0 to 1.0. If all elements in {@code color} are set to 0.0 then it is ignored. */ + /** an optional RGBA color value that can be associated with the marker. A particular implementation may choose to ignore this color value. The values contain RGBA values in order, in the range 0.0 to 1.0. If all elements in {@code color} are 0.0, then it is ignored. */ public float color(int index) { return ncolor(address(), index); } /** Sets the specified value to the {@link #sType} field. */ diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDebugMarkerObjectNameInfoEXT.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDebugMarkerObjectNameInfoEXT.java index 273388df5f..fc552312c3 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDebugMarkerObjectNameInfoEXT.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDebugMarkerObjectNameInfoEXT.java @@ -21,7 +21,7 @@ * *
            Description
            * - *

            Applications may change the name associated with an object simply by calling {@code vkDebugMarkerSetObjectNameEXT} again with a new string. To remove a previously set name, {@code pObjectName} should be set to an empty string.

            + *

            Applications may change the name associated with an object simply by calling {@code vkDebugMarkerSetObjectNameEXT} again with a new string. To remove a previously set name, {@code pObjectName} should be an empty string.

            * *
            Valid Usage
            * diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDebugUtilsLabelEXT.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDebugUtilsLabelEXT.java index dca41227a3..a24c3b90c8 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDebugUtilsLabelEXT.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDebugUtilsLabelEXT.java @@ -107,10 +107,10 @@ public VkDebugUtilsLabelEXT(ByteBuffer container) { /** a pointer to a null-terminated UTF-8 string containing the name of the label. */ @NativeType("char const *") public String pLabelNameString() { return npLabelNameString(address()); } - /** an optional RGBA color value that can be associated with the label. A particular implementation may choose to ignore this color value. The values contain RGBA values in order, in the range 0.0 to 1.0. If all elements in {@code color} are set to 0.0 then it is ignored. */ + /** an optional RGBA color value that can be associated with the label. A particular implementation may choose to ignore this color value. The values contain RGBA values in order, in the range 0.0 to 1.0. If all elements in {@code color} are 0.0, then it is ignored. */ @NativeType("float[4]") public FloatBuffer color() { return ncolor(address()); } - /** an optional RGBA color value that can be associated with the label. A particular implementation may choose to ignore this color value. The values contain RGBA values in order, in the range 0.0 to 1.0. If all elements in {@code color} are set to 0.0 then it is ignored. */ + /** an optional RGBA color value that can be associated with the label. A particular implementation may choose to ignore this color value. The values contain RGBA values in order, in the range 0.0 to 1.0. If all elements in {@code color} are 0.0, then it is ignored. */ public float color(int index) { return ncolor(address(), index); } /** Sets the specified value to the {@link #sType} field. */ diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDescriptorSetLayoutSupport.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDescriptorSetLayoutSupport.java index 58125d3d25..ad829ac730 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDescriptorSetLayoutSupport.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDescriptorSetLayoutSupport.java @@ -20,7 +20,7 @@ * *
            Description
            * - *

            {@code supported} is set to {@link VK10#VK_TRUE TRUE} if the descriptor set can be created, or else is set to {@link VK10#VK_FALSE FALSE}.

            + *

            {@code supported} will be {@link VK10#VK_TRUE TRUE} if the descriptor set can be created, or else {@link VK10#VK_FALSE FALSE}.

            * *
            Valid Usage (Implicit)
            * diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDescriptorSetVariableDescriptorCountLayoutSupport.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDescriptorSetVariableDescriptorCountLayoutSupport.java index 26764fbd8c..d29062f0b9 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDescriptorSetVariableDescriptorCountLayoutSupport.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDescriptorSetVariableDescriptorCountLayoutSupport.java @@ -20,7 +20,7 @@ * *
            Description
            * - *

            If the {@link VkDescriptorSetLayoutCreateInfo} structure specified in {@link VK11#vkGetDescriptorSetLayoutSupport GetDescriptorSetLayoutSupport}{@code ::pCreateInfo} includes a variable-sized descriptor, then {@code supported} is determined assuming the requested size of the variable-sized descriptor, and {@code maxVariableDescriptorCount} is set to the maximum size of that descriptor that can be successfully created (which is greater than or equal to the requested size passed in). If the {@link VkDescriptorSetLayoutCreateInfo} structure does not include a variable-sized descriptor, or if the {@link VkPhysicalDeviceDescriptorIndexingFeatures}{@code ::descriptorBindingVariableDescriptorCount} feature is not enabled, then {@code maxVariableDescriptorCount} is set to zero. For the purposes of this command, a variable-sized descriptor binding with a {@code descriptorCount} of zero is treated as having a {@code descriptorCount} of four if {@code descriptorType} is {@link VK13#VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK}, or one otherwise, and thus the binding is not ignored and the maximum descriptor count will be returned. If the layout is not supported, then the value written to {@code maxVariableDescriptorCount} is undefined.

            + *

            If the {@link VkDescriptorSetLayoutCreateInfo} structure specified in {@link VK11#vkGetDescriptorSetLayoutSupport GetDescriptorSetLayoutSupport}{@code ::pCreateInfo} includes a variable-sized descriptor, then {@code supported} is determined assuming the requested size of the variable-sized descriptor, and {@code maxVariableDescriptorCount} is the maximum size of that descriptor that can be successfully created (which is greater than or equal to the requested size passed in). If the {@link VkDescriptorSetLayoutCreateInfo} structure does not include a variable-sized descriptor, or if the {@link VkPhysicalDeviceDescriptorIndexingFeatures}{@code ::descriptorBindingVariableDescriptorCount} feature is not enabled, then {@code maxVariableDescriptorCount} is zero. For the purposes of this command, a variable-sized descriptor binding with a {@code descriptorCount} of zero is treated as having a {@code descriptorCount} of four if {@code descriptorType} is {@link VK13#VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK}, or one otherwise, and thus the binding is not ignored and the maximum descriptor count will be returned. If the layout is not supported, then the value written to {@code maxVariableDescriptorCount} is undefined.

            * *
            Valid Usage (Implicit)
            * diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDescriptorUpdateTemplateEntry.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDescriptorUpdateTemplateEntry.java index 1d241ba190..98659dd8d3 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDescriptorUpdateTemplateEntry.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDescriptorUpdateTemplateEntry.java @@ -22,7 +22,7 @@ * *
              *
            • {@code dstBinding} must be a valid binding in the descriptor set layout implicitly specified when using a descriptor update template to update descriptors
            • - *
            • {@code dstArrayElement} and {@code descriptorCount} must be less than or equal to the number of array elements in the descriptor set binding implicitly specified when using a descriptor update template to update descriptors, and all applicable consecutive bindings, as described by consecutive binding updates
            • + *
            • {@code dstArrayElement} and {@code descriptorCount} must be less than or equal to the number of array elements in the descriptor set binding implicitly specified when using a descriptor update template to update descriptors, and all applicable consecutive bindings
            • *
            • If {@code descriptor} type is {@link VK13#VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK}, {@code dstArrayElement} must be an integer multiple of 4
            • *
            • If {@code descriptor} type is {@link VK13#VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK}, {@code descriptorCount} must be an integer multiple of 4
            • *
            diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDeviceCreateInfo.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDeviceCreateInfo.java index d2d09e5531..1e6f36230b 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDeviceCreateInfo.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDeviceCreateInfo.java @@ -59,7 +59,7 @@ * *
              *
            • {@code sType} must be {@link VK10#VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO STRUCTURE_TYPE_DEVICE_CREATE_INFO}
            • - *
            • Each {@code pNext} member of any structure (including this one) in the {@code pNext} chain must be either {@code NULL} or a pointer to a valid instance of {@link VkDeviceDeviceMemoryReportCreateInfoEXT}, {@link VkDeviceDiagnosticsConfigCreateInfoNV}, {@link VkDeviceGroupDeviceCreateInfo}, {@link VkDeviceMemoryOverallocationCreateInfoAMD}, {@link VkDevicePipelineBinaryInternalCacheControlKHR}, {@link VkDevicePrivateDataCreateInfo}, {@link VkDeviceQueueShaderCoreControlCreateInfoARM}, {@link VkPhysicalDevice16BitStorageFeatures}, {@link VkPhysicalDevice4444FormatsFeaturesEXT}, {@link VkPhysicalDevice8BitStorageFeatures}, {@link VkPhysicalDeviceASTCDecodeFeaturesEXT}, {@link VkPhysicalDeviceAccelerationStructureFeaturesKHR}, {@link VkPhysicalDeviceAddressBindingReportFeaturesEXT}, {@link VkPhysicalDeviceAmigoProfilingFeaturesSEC}, {@link VkPhysicalDeviceAntiLagFeaturesAMD}, {@link VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT}, {@link VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT}, {@link VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT}, {@link VkPhysicalDeviceBorderColorSwizzleFeaturesEXT}, {@link VkPhysicalDeviceBufferDeviceAddressFeatures}, {@link VkPhysicalDeviceBufferDeviceAddressFeaturesEXT}, {@link VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI}, {@link VkPhysicalDeviceCoherentMemoryFeaturesAMD}, {@link VkPhysicalDeviceColorWriteEnableFeaturesEXT}, {@link VkPhysicalDeviceCommandBufferInheritanceFeaturesNV}, {@link VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR}, {@link VkPhysicalDeviceConditionalRenderingFeaturesEXT}, {@link VkPhysicalDeviceCooperativeMatrixFeaturesKHR}, {@link VkPhysicalDeviceCooperativeMatrixFeaturesNV}, {@link VkPhysicalDeviceCopyMemoryIndirectFeaturesNV}, {@link VkPhysicalDeviceCornerSampledImageFeaturesNV}, {@link VkPhysicalDeviceCoverageReductionModeFeaturesNV}, {@link VkPhysicalDeviceCubicClampFeaturesQCOM}, {@link VkPhysicalDeviceCubicWeightsFeaturesQCOM}, {@link VkPhysicalDeviceCudaKernelLaunchFeaturesNV}, {@link VkPhysicalDeviceCustomBorderColorFeaturesEXT}, {@link VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV}, {@link VkPhysicalDeviceDepthBiasControlFeaturesEXT}, {@link VkPhysicalDeviceDepthClampControlFeaturesEXT}, {@link VkPhysicalDeviceDepthClampZeroOneFeaturesEXT}, {@link VkPhysicalDeviceDepthClipControlFeaturesEXT}, {@link VkPhysicalDeviceDepthClipEnableFeaturesEXT}, {@link VkPhysicalDeviceDescriptorBufferFeaturesEXT}, {@link VkPhysicalDeviceDescriptorIndexingFeatures}, {@link VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV}, {@link VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE}, {@link VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV}, {@link VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT}, {@link VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV}, {@link VkPhysicalDeviceDeviceMemoryReportFeaturesEXT}, {@link VkPhysicalDeviceDiagnosticsConfigFeaturesNV}, {@link VkPhysicalDeviceDisplacementMicromapFeaturesNV}, {@link VkPhysicalDeviceDynamicRenderingFeatures}, {@link VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR}, {@link VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT}, {@link VkPhysicalDeviceExclusiveScissorFeaturesNV}, {@link VkPhysicalDeviceExtendedDynamicState2FeaturesEXT}, {@link VkPhysicalDeviceExtendedDynamicState3FeaturesEXT}, {@link VkPhysicalDeviceExtendedDynamicStateFeaturesEXT}, {@link VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV}, {@link VkPhysicalDeviceExternalFormatResolveFeaturesANDROID}, {@link VkPhysicalDeviceExternalMemoryRDMAFeaturesNV}, {@link VkPhysicalDeviceFaultFeaturesEXT}, {@link VkPhysicalDeviceFeatures2}, {@link VkPhysicalDeviceFragmentDensityMap2FeaturesEXT}, {@link VkPhysicalDeviceFragmentDensityMapFeaturesEXT}, {@link VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM}, {@link VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR}, {@link VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT}, {@link VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV}, {@link VkPhysicalDeviceFragmentShadingRateFeaturesKHR}, {@link VkPhysicalDeviceFrameBoundaryFeaturesEXT}, {@link VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR}, {@link VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT}, {@link VkPhysicalDeviceHostImageCopyFeaturesEXT}, {@link VkPhysicalDeviceHostQueryResetFeatures}, {@link VkPhysicalDeviceImage2DViewOf3DFeaturesEXT}, {@link VkPhysicalDeviceImageAlignmentControlFeaturesMESA}, {@link VkPhysicalDeviceImageCompressionControlFeaturesEXT}, {@link VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT}, {@link VkPhysicalDeviceImageProcessing2FeaturesQCOM}, {@link VkPhysicalDeviceImageProcessingFeaturesQCOM}, {@link VkPhysicalDeviceImageRobustnessFeatures}, {@link VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT}, {@link VkPhysicalDeviceImageViewMinLodFeaturesEXT}, {@link VkPhysicalDeviceImagelessFramebufferFeatures}, {@link VkPhysicalDeviceIndexTypeUint8FeaturesKHR}, {@link VkPhysicalDeviceInheritedViewportScissorFeaturesNV}, {@link VkPhysicalDeviceInlineUniformBlockFeatures}, {@link VkPhysicalDeviceInvocationMaskFeaturesHUAWEI}, {@link VkPhysicalDeviceLegacyDitheringFeaturesEXT}, {@link VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT}, {@link VkPhysicalDeviceLineRasterizationFeaturesKHR}, {@link VkPhysicalDeviceLinearColorAttachmentFeaturesNV}, {@link VkPhysicalDeviceMaintenance4Features}, {@link VkPhysicalDeviceMaintenance5FeaturesKHR}, {@link VkPhysicalDeviceMaintenance6FeaturesKHR}, {@link VkPhysicalDeviceMaintenance7FeaturesKHR}, {@link VkPhysicalDeviceMapMemoryPlacedFeaturesEXT}, {@link VkPhysicalDeviceMemoryDecompressionFeaturesNV}, {@link VkPhysicalDeviceMemoryPriorityFeaturesEXT}, {@link VkPhysicalDeviceMeshShaderFeaturesEXT}, {@link VkPhysicalDeviceMeshShaderFeaturesNV}, {@link VkPhysicalDeviceMultiDrawFeaturesEXT}, {@link VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT}, {@link VkPhysicalDeviceMultiviewFeatures}, {@link VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM}, {@link VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM}, {@link VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT}, {@link VkPhysicalDeviceNestedCommandBufferFeaturesEXT}, {@link VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT}, {@link VkPhysicalDeviceOpacityMicromapFeaturesEXT}, {@link VkPhysicalDeviceOpticalFlowFeaturesNV}, {@link VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT}, {@link VkPhysicalDevicePerStageDescriptorSetFeaturesNV}, {@link VkPhysicalDevicePerformanceQueryFeaturesKHR}, {@link VkPhysicalDevicePipelineBinaryFeaturesKHR}, {@link VkPhysicalDevicePipelineCreationCacheControlFeatures}, {@link VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR}, {@link VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT}, {@link VkPhysicalDevicePipelinePropertiesFeaturesEXT}, {@link VkPhysicalDevicePipelineProtectedAccessFeaturesEXT}, {@link VkPhysicalDevicePipelineRobustnessFeaturesEXT}, {@link VkPhysicalDevicePortabilitySubsetFeaturesKHR}, {@link VkPhysicalDevicePresentBarrierFeaturesNV}, {@link VkPhysicalDevicePresentIdFeaturesKHR}, {@link VkPhysicalDevicePresentWaitFeaturesKHR}, {@link VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT}, {@link VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT}, {@link VkPhysicalDevicePrivateDataFeatures}, {@link VkPhysicalDeviceProtectedMemoryFeatures}, {@link VkPhysicalDeviceProvokingVertexFeaturesEXT}, {@link VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT}, {@link VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT}, {@link VkPhysicalDeviceRawAccessChainsFeaturesNV}, {@link VkPhysicalDeviceRayQueryFeaturesKHR}, {@link VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV}, {@link VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR}, {@link VkPhysicalDeviceRayTracingMotionBlurFeaturesNV}, {@link VkPhysicalDeviceRayTracingPipelineFeaturesKHR}, {@link VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR}, {@link VkPhysicalDeviceRayTracingValidationFeaturesNV}, {@link VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG}, {@link VkPhysicalDeviceRenderPassStripedFeaturesARM}, {@link VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV}, {@link VkPhysicalDeviceRobustness2FeaturesEXT}, {@link VkPhysicalDeviceSamplerYcbcrConversionFeatures}, {@link VkPhysicalDeviceScalarBlockLayoutFeatures}, {@link VkPhysicalDeviceSchedulingControlsFeaturesARM}, {@link VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures}, {@link VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV}, {@link VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT}, {@link VkPhysicalDeviceShaderAtomicFloatFeaturesEXT}, {@link VkPhysicalDeviceShaderAtomicInt64Features}, {@link VkPhysicalDeviceShaderClockFeaturesKHR}, {@link VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM}, {@link VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures}, {@link VkPhysicalDeviceShaderDrawParametersFeatures}, {@link VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD}, {@link VkPhysicalDeviceShaderEnqueueFeaturesAMDX}, {@link VkPhysicalDeviceShaderExpectAssumeFeaturesKHR}, {@link VkPhysicalDeviceShaderFloat16Int8Features}, {@link VkPhysicalDeviceShaderFloatControls2FeaturesKHR}, {@link VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT}, {@link VkPhysicalDeviceShaderImageFootprintFeaturesNV}, {@link VkPhysicalDeviceShaderIntegerDotProductFeatures}, {@link VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL}, {@link VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR}, {@link VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT}, {@link VkPhysicalDeviceShaderObjectFeaturesEXT}, {@link VkPhysicalDeviceShaderQuadControlFeaturesKHR}, {@link VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR}, {@link VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT}, {@link VkPhysicalDeviceShaderSMBuiltinsFeaturesNV}, {@link VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures}, {@link VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR}, {@link VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR}, {@link VkPhysicalDeviceShaderTerminateInvocationFeatures}, {@link VkPhysicalDeviceShaderTileImageFeaturesEXT}, {@link VkPhysicalDeviceShadingRateImageFeaturesNV}, {@link VkPhysicalDeviceSubgroupSizeControlFeatures}, {@link VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT}, {@link VkPhysicalDeviceSubpassShadingFeaturesHUAWEI}, {@link VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT}, {@link VkPhysicalDeviceSynchronization2Features}, {@link VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT}, {@link VkPhysicalDeviceTextureCompressionASTCHDRFeatures}, {@link VkPhysicalDeviceTilePropertiesFeaturesQCOM}, {@link VkPhysicalDeviceTimelineSemaphoreFeatures}, {@link VkPhysicalDeviceTransformFeedbackFeaturesEXT}, {@link VkPhysicalDeviceUniformBufferStandardLayoutFeatures}, {@link VkPhysicalDeviceVariablePointersFeatures}, {@link VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR}, {@link VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT}, {@link VkPhysicalDeviceVideoMaintenance1FeaturesKHR}, {@link VkPhysicalDeviceVulkan11Features}, {@link VkPhysicalDeviceVulkan12Features}, {@link VkPhysicalDeviceVulkan13Features}, {@link VkPhysicalDeviceVulkanMemoryModelFeatures}, {@link VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR}, {@link VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT}, {@link VkPhysicalDeviceYcbcrDegammaFeaturesQCOM}, {@link VkPhysicalDeviceYcbcrImageArraysFeaturesEXT}, or {@link VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures}
            • + *
            • Each {@code pNext} member of any structure (including this one) in the {@code pNext} chain must be either {@code NULL} or a pointer to a valid instance of {@link VkDeviceDeviceMemoryReportCreateInfoEXT}, {@link VkDeviceDiagnosticsConfigCreateInfoNV}, {@link VkDeviceGroupDeviceCreateInfo}, {@link VkDeviceMemoryOverallocationCreateInfoAMD}, {@link VkDevicePipelineBinaryInternalCacheControlKHR}, {@link VkDevicePrivateDataCreateInfo}, {@link VkDeviceQueueShaderCoreControlCreateInfoARM}, {@link VkPhysicalDevice16BitStorageFeatures}, {@link VkPhysicalDevice4444FormatsFeaturesEXT}, {@link VkPhysicalDevice8BitStorageFeatures}, {@link VkPhysicalDeviceASTCDecodeFeaturesEXT}, {@link VkPhysicalDeviceAccelerationStructureFeaturesKHR}, {@link VkPhysicalDeviceAddressBindingReportFeaturesEXT}, {@link VkPhysicalDeviceAmigoProfilingFeaturesSEC}, {@link VkPhysicalDeviceAntiLagFeaturesAMD}, {@link VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT}, {@link VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT}, {@link VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT}, {@link VkPhysicalDeviceBorderColorSwizzleFeaturesEXT}, {@link VkPhysicalDeviceBufferDeviceAddressFeatures}, {@link VkPhysicalDeviceBufferDeviceAddressFeaturesEXT}, {@link VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI}, {@link VkPhysicalDeviceCoherentMemoryFeaturesAMD}, {@link VkPhysicalDeviceColorWriteEnableFeaturesEXT}, {@link VkPhysicalDeviceCommandBufferInheritanceFeaturesNV}, {@link VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR}, {@link VkPhysicalDeviceConditionalRenderingFeaturesEXT}, {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV}, {@link VkPhysicalDeviceCooperativeMatrixFeaturesKHR}, {@link VkPhysicalDeviceCooperativeMatrixFeaturesNV}, {@link VkPhysicalDeviceCopyMemoryIndirectFeaturesNV}, {@link VkPhysicalDeviceCornerSampledImageFeaturesNV}, {@link VkPhysicalDeviceCoverageReductionModeFeaturesNV}, {@link VkPhysicalDeviceCubicClampFeaturesQCOM}, {@link VkPhysicalDeviceCubicWeightsFeaturesQCOM}, {@link VkPhysicalDeviceCudaKernelLaunchFeaturesNV}, {@link VkPhysicalDeviceCustomBorderColorFeaturesEXT}, {@link VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV}, {@link VkPhysicalDeviceDepthBiasControlFeaturesEXT}, {@link VkPhysicalDeviceDepthClampControlFeaturesEXT}, {@link VkPhysicalDeviceDepthClampZeroOneFeaturesEXT}, {@link VkPhysicalDeviceDepthClipControlFeaturesEXT}, {@link VkPhysicalDeviceDepthClipEnableFeaturesEXT}, {@link VkPhysicalDeviceDescriptorBufferFeaturesEXT}, {@link VkPhysicalDeviceDescriptorIndexingFeatures}, {@link VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV}, {@link VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE}, {@link VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV}, {@link VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT}, {@link VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV}, {@link VkPhysicalDeviceDeviceMemoryReportFeaturesEXT}, {@link VkPhysicalDeviceDiagnosticsConfigFeaturesNV}, {@link VkPhysicalDeviceDisplacementMicromapFeaturesNV}, {@link VkPhysicalDeviceDynamicRenderingFeatures}, {@link VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR}, {@link VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT}, {@link VkPhysicalDeviceExclusiveScissorFeaturesNV}, {@link VkPhysicalDeviceExtendedDynamicState2FeaturesEXT}, {@link VkPhysicalDeviceExtendedDynamicState3FeaturesEXT}, {@link VkPhysicalDeviceExtendedDynamicStateFeaturesEXT}, {@link VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV}, {@link VkPhysicalDeviceExternalFormatResolveFeaturesANDROID}, {@link VkPhysicalDeviceExternalMemoryRDMAFeaturesNV}, {@link VkPhysicalDeviceFaultFeaturesEXT}, {@link VkPhysicalDeviceFeatures2}, {@link VkPhysicalDeviceFragmentDensityMap2FeaturesEXT}, {@link VkPhysicalDeviceFragmentDensityMapFeaturesEXT}, {@link VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM}, {@link VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR}, {@link VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT}, {@link VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV}, {@link VkPhysicalDeviceFragmentShadingRateFeaturesKHR}, {@link VkPhysicalDeviceFrameBoundaryFeaturesEXT}, {@link VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR}, {@link VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT}, {@link VkPhysicalDeviceHdrVividFeaturesHUAWEI}, {@link VkPhysicalDeviceHostImageCopyFeaturesEXT}, {@link VkPhysicalDeviceHostQueryResetFeatures}, {@link VkPhysicalDeviceImage2DViewOf3DFeaturesEXT}, {@link VkPhysicalDeviceImageAlignmentControlFeaturesMESA}, {@link VkPhysicalDeviceImageCompressionControlFeaturesEXT}, {@link VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT}, {@link VkPhysicalDeviceImageProcessing2FeaturesQCOM}, {@link VkPhysicalDeviceImageProcessingFeaturesQCOM}, {@link VkPhysicalDeviceImageRobustnessFeatures}, {@link VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT}, {@link VkPhysicalDeviceImageViewMinLodFeaturesEXT}, {@link VkPhysicalDeviceImagelessFramebufferFeatures}, {@link VkPhysicalDeviceIndexTypeUint8FeaturesKHR}, {@link VkPhysicalDeviceInheritedViewportScissorFeaturesNV}, {@link VkPhysicalDeviceInlineUniformBlockFeatures}, {@link VkPhysicalDeviceInvocationMaskFeaturesHUAWEI}, {@link VkPhysicalDeviceLegacyDitheringFeaturesEXT}, {@link VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT}, {@link VkPhysicalDeviceLineRasterizationFeaturesKHR}, {@link VkPhysicalDeviceLinearColorAttachmentFeaturesNV}, {@link VkPhysicalDeviceMaintenance4Features}, {@link VkPhysicalDeviceMaintenance5FeaturesKHR}, {@link VkPhysicalDeviceMaintenance6FeaturesKHR}, {@link VkPhysicalDeviceMaintenance7FeaturesKHR}, {@link VkPhysicalDeviceMapMemoryPlacedFeaturesEXT}, {@link VkPhysicalDeviceMemoryDecompressionFeaturesNV}, {@link VkPhysicalDeviceMemoryPriorityFeaturesEXT}, {@link VkPhysicalDeviceMeshShaderFeaturesEXT}, {@link VkPhysicalDeviceMeshShaderFeaturesNV}, {@link VkPhysicalDeviceMultiDrawFeaturesEXT}, {@link VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT}, {@link VkPhysicalDeviceMultiviewFeatures}, {@link VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM}, {@link VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM}, {@link VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT}, {@link VkPhysicalDeviceNestedCommandBufferFeaturesEXT}, {@link VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT}, {@link VkPhysicalDeviceOpacityMicromapFeaturesEXT}, {@link VkPhysicalDeviceOpticalFlowFeaturesNV}, {@link VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT}, {@link VkPhysicalDevicePerStageDescriptorSetFeaturesNV}, {@link VkPhysicalDevicePerformanceQueryFeaturesKHR}, {@link VkPhysicalDevicePipelineBinaryFeaturesKHR}, {@link VkPhysicalDevicePipelineCreationCacheControlFeatures}, {@link VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR}, {@link VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT}, {@link VkPhysicalDevicePipelinePropertiesFeaturesEXT}, {@link VkPhysicalDevicePipelineProtectedAccessFeaturesEXT}, {@link VkPhysicalDevicePipelineRobustnessFeaturesEXT}, {@link VkPhysicalDevicePortabilitySubsetFeaturesKHR}, {@link VkPhysicalDevicePresentBarrierFeaturesNV}, {@link VkPhysicalDevicePresentIdFeaturesKHR}, {@link VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT}, {@link VkPhysicalDevicePresentWaitFeaturesKHR}, {@link VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT}, {@link VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT}, {@link VkPhysicalDevicePrivateDataFeatures}, {@link VkPhysicalDeviceProtectedMemoryFeatures}, {@link VkPhysicalDeviceProvokingVertexFeaturesEXT}, {@link VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT}, {@link VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT}, {@link VkPhysicalDeviceRawAccessChainsFeaturesNV}, {@link VkPhysicalDeviceRayQueryFeaturesKHR}, {@link VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV}, {@link VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR}, {@link VkPhysicalDeviceRayTracingMotionBlurFeaturesNV}, {@link VkPhysicalDeviceRayTracingPipelineFeaturesKHR}, {@link VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR}, {@link VkPhysicalDeviceRayTracingValidationFeaturesNV}, {@link VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG}, {@link VkPhysicalDeviceRenderPassStripedFeaturesARM}, {@link VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV}, {@link VkPhysicalDeviceRobustness2FeaturesEXT}, {@link VkPhysicalDeviceSamplerYcbcrConversionFeatures}, {@link VkPhysicalDeviceScalarBlockLayoutFeatures}, {@link VkPhysicalDeviceSchedulingControlsFeaturesARM}, {@link VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures}, {@link VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV}, {@link VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT}, {@link VkPhysicalDeviceShaderAtomicFloatFeaturesEXT}, {@link VkPhysicalDeviceShaderAtomicInt64Features}, {@link VkPhysicalDeviceShaderClockFeaturesKHR}, {@link VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM}, {@link VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures}, {@link VkPhysicalDeviceShaderDrawParametersFeatures}, {@link VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD}, {@link VkPhysicalDeviceShaderEnqueueFeaturesAMDX}, {@link VkPhysicalDeviceShaderExpectAssumeFeaturesKHR}, {@link VkPhysicalDeviceShaderFloat16Int8Features}, {@link VkPhysicalDeviceShaderFloatControls2FeaturesKHR}, {@link VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT}, {@link VkPhysicalDeviceShaderImageFootprintFeaturesNV}, {@link VkPhysicalDeviceShaderIntegerDotProductFeatures}, {@link VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL}, {@link VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR}, {@link VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT}, {@link VkPhysicalDeviceShaderObjectFeaturesEXT}, {@link VkPhysicalDeviceShaderQuadControlFeaturesKHR}, {@link VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR}, {@link VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT}, {@link VkPhysicalDeviceShaderSMBuiltinsFeaturesNV}, {@link VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures}, {@link VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR}, {@link VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR}, {@link VkPhysicalDeviceShaderTerminateInvocationFeatures}, {@link VkPhysicalDeviceShaderTileImageFeaturesEXT}, {@link VkPhysicalDeviceShadingRateImageFeaturesNV}, {@link VkPhysicalDeviceSubgroupSizeControlFeatures}, {@link VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT}, {@link VkPhysicalDeviceSubpassShadingFeaturesHUAWEI}, {@link VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT}, {@link VkPhysicalDeviceSynchronization2Features}, {@link VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT}, {@link VkPhysicalDeviceTextureCompressionASTCHDRFeatures}, {@link VkPhysicalDeviceTilePropertiesFeaturesQCOM}, {@link VkPhysicalDeviceTimelineSemaphoreFeatures}, {@link VkPhysicalDeviceTransformFeedbackFeaturesEXT}, {@link VkPhysicalDeviceUniformBufferStandardLayoutFeatures}, {@link VkPhysicalDeviceVariablePointersFeatures}, {@link VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR}, {@link VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT}, {@link VkPhysicalDeviceVideoMaintenance1FeaturesKHR}, {@link VkPhysicalDeviceVulkan11Features}, {@link VkPhysicalDeviceVulkan12Features}, {@link VkPhysicalDeviceVulkan13Features}, {@link VkPhysicalDeviceVulkanMemoryModelFeatures}, {@link VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR}, {@link VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT}, {@link VkPhysicalDeviceYcbcrDegammaFeaturesQCOM}, {@link VkPhysicalDeviceYcbcrImageArraysFeaturesEXT}, or {@link VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures}
            • *
            • The {@code sType} value of each struct in the {@code pNext} chain must be unique, with the exception of structures of type {@link VkDeviceDeviceMemoryReportCreateInfoEXT} or {@link VkDevicePrivateDataCreateInfo}
            • *
            • {@code flags} must be 0
            • *
            • {@code pQueueCreateInfos} must be a valid pointer to an array of {@code queueCreateInfoCount} valid {@link VkDeviceQueueCreateInfo} structures
            • @@ -266,6 +266,8 @@ public VkDeviceCreateInfo(ByteBuffer container) { public VkDeviceCreateInfo pNext(VkPhysicalDeviceComputeShaderDerivativesFeaturesNV value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceConditionalRenderingFeaturesEXT} value to the {@code pNext} chain. */ public VkDeviceCreateInfo pNext(VkPhysicalDeviceConditionalRenderingFeaturesEXT value) { return this.pNext(value.pNext(this.pNext()).address()); } + /** Prepends the specified {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV} value to the {@code pNext} chain. */ + public VkDeviceCreateInfo pNext(VkPhysicalDeviceCooperativeMatrix2FeaturesNV value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceCooperativeMatrixFeaturesKHR} value to the {@code pNext} chain. */ public VkDeviceCreateInfo pNext(VkPhysicalDeviceCooperativeMatrixFeaturesKHR value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceCooperativeMatrixFeaturesNV} value to the {@code pNext} chain. */ @@ -372,6 +374,8 @@ public VkDeviceCreateInfo(ByteBuffer container) { public VkDeviceCreateInfo pNext(VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT} value to the {@code pNext} chain. */ public VkDeviceCreateInfo pNext(VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT value) { return this.pNext(value.pNext(this.pNext()).address()); } + /** Prepends the specified {@link VkPhysicalDeviceHdrVividFeaturesHUAWEI} value to the {@code pNext} chain. */ + public VkDeviceCreateInfo pNext(VkPhysicalDeviceHdrVividFeaturesHUAWEI value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceHostImageCopyFeaturesEXT} value to the {@code pNext} chain. */ public VkDeviceCreateInfo pNext(VkPhysicalDeviceHostImageCopyFeaturesEXT value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceHostQueryResetFeatures} value to the {@code pNext} chain. */ @@ -496,6 +500,8 @@ public VkDeviceCreateInfo(ByteBuffer container) { public VkDeviceCreateInfo pNext(VkPhysicalDevicePresentBarrierFeaturesNV value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDevicePresentIdFeaturesKHR} value to the {@code pNext} chain. */ public VkDeviceCreateInfo pNext(VkPhysicalDevicePresentIdFeaturesKHR value) { return this.pNext(value.pNext(this.pNext()).address()); } + /** Prepends the specified {@link VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT} value to the {@code pNext} chain. */ + public VkDeviceCreateInfo pNext(VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDevicePresentWaitFeaturesKHR} value to the {@code pNext} chain. */ public VkDeviceCreateInfo pNext(VkPhysicalDevicePresentWaitFeaturesKHR value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT} value to the {@code pNext} chain. */ @@ -1080,6 +1086,8 @@ protected VkDeviceCreateInfo getElementFactory() { public VkDeviceCreateInfo.Buffer pNext(VkPhysicalDeviceComputeShaderDerivativesFeaturesNV value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceConditionalRenderingFeaturesEXT} value to the {@code pNext} chain. */ public VkDeviceCreateInfo.Buffer pNext(VkPhysicalDeviceConditionalRenderingFeaturesEXT value) { return this.pNext(value.pNext(this.pNext()).address()); } + /** Prepends the specified {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV} value to the {@code pNext} chain. */ + public VkDeviceCreateInfo.Buffer pNext(VkPhysicalDeviceCooperativeMatrix2FeaturesNV value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceCooperativeMatrixFeaturesKHR} value to the {@code pNext} chain. */ public VkDeviceCreateInfo.Buffer pNext(VkPhysicalDeviceCooperativeMatrixFeaturesKHR value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceCooperativeMatrixFeaturesNV} value to the {@code pNext} chain. */ @@ -1186,6 +1194,8 @@ protected VkDeviceCreateInfo getElementFactory() { public VkDeviceCreateInfo.Buffer pNext(VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT} value to the {@code pNext} chain. */ public VkDeviceCreateInfo.Buffer pNext(VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT value) { return this.pNext(value.pNext(this.pNext()).address()); } + /** Prepends the specified {@link VkPhysicalDeviceHdrVividFeaturesHUAWEI} value to the {@code pNext} chain. */ + public VkDeviceCreateInfo.Buffer pNext(VkPhysicalDeviceHdrVividFeaturesHUAWEI value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceHostImageCopyFeaturesEXT} value to the {@code pNext} chain. */ public VkDeviceCreateInfo.Buffer pNext(VkPhysicalDeviceHostImageCopyFeaturesEXT value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceHostQueryResetFeatures} value to the {@code pNext} chain. */ @@ -1310,6 +1320,8 @@ protected VkDeviceCreateInfo getElementFactory() { public VkDeviceCreateInfo.Buffer pNext(VkPhysicalDevicePresentBarrierFeaturesNV value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDevicePresentIdFeaturesKHR} value to the {@code pNext} chain. */ public VkDeviceCreateInfo.Buffer pNext(VkPhysicalDevicePresentIdFeaturesKHR value) { return this.pNext(value.pNext(this.pNext()).address()); } + /** Prepends the specified {@link VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT} value to the {@code pNext} chain. */ + public VkDeviceCreateInfo.Buffer pNext(VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDevicePresentWaitFeaturesKHR} value to the {@code pNext} chain. */ public VkDeviceCreateInfo.Buffer pNext(VkPhysicalDevicePresentWaitFeaturesKHR value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT} value to the {@code pNext} chain. */ diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDeviceGroupCommandBufferBeginInfo.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDeviceGroupCommandBufferBeginInfo.java index 33580caccb..b8bd83faa2 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDeviceGroupCommandBufferBeginInfo.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkDeviceGroupCommandBufferBeginInfo.java @@ -22,7 +22,7 @@ * *

              The initial device mask also acts as an upper bound on the set of devices that can ever be in the device mask in the command buffer.

              * - *

              If this structure is not present, the initial value of a command buffer’s device mask is set to include all physical devices in the logical device when the command buffer begins recording.

              + *

              If this structure is not present, the initial value of a command buffer’s device mask includes all physical devices in the logical device when the command buffer begins recording.

              * *
              Valid Usage
              * diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkExecutionGraphPipelineCreateInfoAMDX.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkExecutionGraphPipelineCreateInfoAMDX.java index 41ff0c9dc0..0d633c1a97 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkExecutionGraphPipelineCreateInfoAMDX.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkExecutionGraphPipelineCreateInfoAMDX.java @@ -22,7 +22,7 @@ * *

              The parameters {@code basePipelineHandle} and {@code basePipelineIndex} are described in more detail in Pipeline Derivatives.

              * - *

              Each shader stage provided when creating an execution graph pipeline (including those in libraries) is associated with a name and an index, determined by the inclusion or omission of a {@link VkPipelineShaderStageNodeCreateInfoAMDX} structure in its {@code pNext} chain.

              + *

              Each shader stage provided when creating an execution graph pipeline (including those in libraries) is associated with a name and an index, determined by the inclusion or omission of a {@link VkPipelineShaderStageNodeCreateInfoAMDX} structure in its {@code pNext} chain. For any graphics pipeline libraries, only the name and index of the vertex or mesh shader stage is linked directly to the graph as a node - other shader stages in the pipeline will be executed after those shader stages as normal. Task shaders cannot be included in a graphics pipeline used for a draw node.

              * *

              In addition to the shader name and index, an internal "node index" is also generated for each node, which can be queried with {@link AMDXShaderEnqueue#vkGetExecutionGraphPipelineNodeIndexAMDX GetExecutionGraphPipelineNodeIndexAMDX}, and is used exclusively for initial dispatch of an execution graph.

              * @@ -51,20 +51,24 @@ *
            • {@code flags} must not include {@link NVRayTracingMotionBlur#VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV}
            • *
            • If the {@link VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV}{@code ::deviceGeneratedComputePipelines} is not enabled, {@code flags} must not include {@link NVDeviceGeneratedCommands#VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV}
            • *
            • If {@code flags} includes {@link NVDeviceGeneratedCommands#VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV}, then the {@code pNext} chain must include a pointer to a valid instance of {@link VkComputePipelineIndirectBufferInfoNV} specifying the address where the pipeline’s metadata will be saved
            • - *
            • If {@code flags} includes {@link EXTDeviceGeneratedCommands#VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT}, then the {@code deviceGeneratedCommands} feature must be enabled
            • + *
            • If {@code flags} includes {@link EXTDeviceGeneratedCommands#VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT}, then the {@link VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT}{@code ::deviceGeneratedCommands} feature must be enabled
            • *
            • If the {@code pipelineCreationCacheControl} feature is not enabled, {@code flags} must not include {@link VK13#VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT} or {@link VK13#VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT}
            • *
            • The {@code stage} member of any element of {@code pStages} must be {@link VK10#VK_SHADER_STAGE_COMPUTE_BIT SHADER_STAGE_COMPUTE_BIT}
            • *
            • The shader code for the entry point identified by each element of {@code pStages} and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter
            • *
            • {@code layout} must be consistent with the layout of the shaders specified in {@code pStages}
            • *
            • If {@code pLibraryInfo} is not {@code NULL}, each element of its {@code pLibraries} member must have been created with a {@code layout} that is compatible with the {@code layout} in this pipeline
            • *
            • The number of resources in {@code layout} accessible to each shader stage that is used by the pipeline must be less than or equal to {@link VkPhysicalDeviceLimits}{@code ::maxPerStageResources}
            • - *
            • If {@code pLibraryInfo} is not {@code NULL}, each element of {@code pLibraryInfo→libraries} must be either a compute pipeline or an execution graph pipeline
            • + *
            • If {@code pLibraryInfo} is not {@code NULL}, each element of {@code pLibraryInfo→pLibraries} must be either a compute pipeline, an execution graph pipeline, or a graphics pipeline
            • + *
            • If {@code pLibraryInfo} is not {@code NULL}, each element of {@code pLibraryInfo→pLibraries} that is a compute pipeline or a graphics pipeline must have been created with {@link AMDXShaderEnqueue#VK_PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX} set
            • + *
            • If the {@code shaderMeshEnqueue} feature is not enabled, and {@code pLibraryInfo→pLibraries} is not {@code NULL}, {@code pLibraryInfo→pLibraries} must not contain any graphics pipelines
            • + *
            • Any element of {@code pLibraryInfo→pLibraries} identifying a graphics pipeline must have been created with all possible state subsets
            • *
            • There must be no two nodes in the pipeline that share both the same shader name and index, as specified by {@link VkPipelineShaderStageNodeCreateInfoAMDX}
            • *
            • There must be no two nodes in the pipeline that share the same shader name and have input payload declarations with different sizes
            • *
            • There must be no two nodes in the pipeline that share the same name but have different execution models
            • *
            • There must be no two nodes in the pipeline that share the same name where one includes {@code CoalescedInputCountAMDX} and the other does not
            • *
            • There must be no two nodes in the pipeline that share the same name where one includes {@code StaticNumWorkgroupsAMDX} and the other does not
            • *
            • If an output payload declared in any shader in the pipeline has a {@code PayloadNodeNameAMDX} decoration with a {@code Node} {@code Name} that matches the shader name of any other node in the graph, the size of the output payload must match the size of the input payload in the matching node
            • + *
            • If {@code flags} does not include {@link KHRPipelineLibrary#VK_PIPELINE_CREATE_LIBRARY_BIT_KHR PIPELINE_CREATE_LIBRARY_BIT_KHR}, and an output payload declared in any shader in the pipeline does not have a {@code PayloadNodeSparseArrayAMDX} decoration, there must be a node in the graph corresponding to every index from 0 to its {@code PayloadNodeArraySizeAMDX} decoration
            • *
            * *
            Valid Usage (Implicit)
            diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkExecutionGraphPipelineScratchSizeAMDX.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkExecutionGraphPipelineScratchSizeAMDX.java index cb5cdb5529..4fa988340e 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkExecutionGraphPipelineScratchSizeAMDX.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkExecutionGraphPipelineScratchSizeAMDX.java @@ -18,6 +18,10 @@ /** * Structure describing the scratch space required to dispatch an execution graph. * + *
            Description
            + * + *

            Applications can use any amount of scratch memory greater than {@code minSize} for dispatching a graph, however only the values equal to {@code minSize} + an integer multiple of {@code sizeGranularity} will be used. Greater values may result in higher performance, up to {@code maxSize} which indicates the most memory that an implementation can use effectively.

            + * *
            Valid Usage (Implicit)
            * *
              @@ -34,7 +38,9 @@ * struct VkExecutionGraphPipelineScratchSizeAMDX { * VkStructureType {@link #sType}; * void * {@link #pNext}; - * VkDeviceSize {@link #size}; + * VkDeviceSize {@link #minSize}; + * VkDeviceSize {@link #maxSize}; + * VkDeviceSize {@link #sizeGranularity}; * } */ public class VkExecutionGraphPipelineScratchSizeAMDX extends Struct implements NativeResource { @@ -49,12 +55,16 @@ public class VkExecutionGraphPipelineScratchSizeAMDX extends StructIf {@link VkExportFenceCreateInfo} is not included in the same {@code pNext} chain, this structure is ignored.

              * - *

              If {@link VkExportFenceCreateInfo} is included in the {@code pNext} chain of {@link VkFenceCreateInfo} with a Windows {@code handleType}, but either {@link VkExportFenceWin32HandleInfoKHR} is not included in the {@code pNext} chain, or it is included but {@code pAttributes} is set to {@code NULL}, default security descriptor values will be used, and child processes created by the application will not inherit the handle, as described in the MSDN documentation for “{@code Synchronization Object Security and Access Rights}”1. Further, if the structure is not present, the access rights will be

              + *

              If {@link VkExportFenceCreateInfo} is included in the {@code pNext} chain of {@link VkFenceCreateInfo} with a Windows {@code handleType}, but either {@link VkExportFenceWin32HandleInfoKHR} is not included in the {@code pNext} chain, or it is included but {@code pAttributes} is {@code NULL}, default security descriptor values will be used, and child processes created by the application will not inherit the handle, as described in the MSDN documentation for “{@code Synchronization Object Security and Access Rights}”1. Further, if the structure is not present, the access rights will be

              * *

              {@code DXGI_SHARED_RESOURCE_READ} | {@code DXGI_SHARED_RESOURCE_WRITE}

              * diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkExportMemoryWin32HandleInfoNV.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkExportMemoryWin32HandleInfoNV.java index 97b6b30dca..cdeafb2f89 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkExportMemoryWin32HandleInfoNV.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkExportMemoryWin32HandleInfoNV.java @@ -22,7 +22,7 @@ * *
              Description
              * - *

              If this structure is not present, or if {@code pAttributes} is set to {@code NULL}, default security descriptor values will be used, and child processes created by the application will not inherit the handle, as described in the MSDN documentation for “{@code Synchronization Object Security and Access Rights}”1. Further, if the structure is not present, the access rights will be

              + *

              If this structure is not present, or if {@code pAttributes} is {@code NULL}, default security descriptor values will be used, and child processes created by the application will not inherit the handle, as described in the MSDN documentation for “{@code Synchronization Object Security and Access Rights}”1. Further, if the structure is not present, the access rights will be

              * *

              {@code DXGI_SHARED_RESOURCE_READ} | {@code DXGI_SHARED_RESOURCE_WRITE}

              * diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkExportSemaphoreWin32HandleInfoKHR.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkExportSemaphoreWin32HandleInfoKHR.java index d3d36b1818..db47090690 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkExportSemaphoreWin32HandleInfoKHR.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkExportSemaphoreWin32HandleInfoKHR.java @@ -25,7 +25,7 @@ * *

              If {@link VkExportSemaphoreCreateInfo} is not included in the same {@code pNext} chain, this structure is ignored.

              * - *

              If {@link VkExportSemaphoreCreateInfo} is included in the {@code pNext} chain of {@link VkSemaphoreCreateInfo} with a Windows {@code handleType}, but either {@link VkExportSemaphoreWin32HandleInfoKHR} is not included in the {@code pNext} chain, or it is included but {@code pAttributes} is set to {@code NULL}, default security descriptor values will be used, and child processes created by the application will not inherit the handle, as described in the MSDN documentation for “{@code Synchronization Object Security and Access Rights}”1. Further, if the structure is not present, the access rights used depend on the handle type.

              + *

              If {@link VkExportSemaphoreCreateInfo} is included in the {@code pNext} chain of {@link VkSemaphoreCreateInfo} with a Windows {@code handleType}, but either {@link VkExportSemaphoreWin32HandleInfoKHR} is not included in the {@code pNext} chain, or it is included but {@code pAttributes} is {@code NULL}, default security descriptor values will be used, and child processes created by the application will not inherit the handle, as described in the MSDN documentation for “{@code Synchronization Object Security and Access Rights}”1. Further, if the structure is not present, the access rights used depend on the handle type.

              * *

              For handles of the following types:

              * diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkExternalFenceProperties.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkExternalFenceProperties.java index 6740dab164..ae5f715dff 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkExternalFenceProperties.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkExternalFenceProperties.java @@ -20,7 +20,7 @@ * *
              Description
              * - *

              If {@code handleType} is not supported by the implementation, then {@link VkExternalFenceProperties}{@code ::externalFenceFeatures} will be set to zero.

              + *

              If {@code handleType} is not supported by the implementation, then {@link VkExternalFenceProperties}{@code ::externalFenceFeatures} will be zero.

              * *
              Valid Usage (Implicit)
              * diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkExternalSemaphoreProperties.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkExternalSemaphoreProperties.java index a14928ec6a..7576cfdb5b 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkExternalSemaphoreProperties.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkExternalSemaphoreProperties.java @@ -20,7 +20,7 @@ * *
              Description
              * - *

              If {@code handleType} is not supported by the implementation, then {@link VkExternalSemaphoreProperties}{@code ::externalSemaphoreFeatures} will be set to zero.

              + *

              If {@code handleType} is not supported by the implementation, then {@link VkExternalSemaphoreProperties}{@code ::externalSemaphoreFeatures} will be zero.

              * *
              Valid Usage (Implicit)
              * diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkGeneratedCommandsInfoEXT.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkGeneratedCommandsInfoEXT.java index 9866b165da..d52345ba3e 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkGeneratedCommandsInfoEXT.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkGeneratedCommandsInfoEXT.java @@ -33,12 +33,13 @@ *
            • If the {@code indirectCommandsLayout} uses a token of {@link EXTDeviceGeneratedCommands#VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT}, then the {@code indirectExecutionSet}’s push constant layout must contain the {@code updateRange} specified in {@link VkIndirectCommandsPushConstantTokenEXT}
            • *
            • {@code maxSequenceCount} must be less or equal to {@link VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT}{@code ::maxIndirectSequenceCount} and {@link VkGeneratedCommandsMemoryRequirementsInfoEXT}{@code ::maxSequencesCount} that was used to determine the {@code preprocessSize}
            • *
            • If {@code sequenceCountAddress} is not {@code NULL}, the value contained in the address must be less or equal to {@link VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT}{@code ::maxIndirectSequenceCount} and {@link VkGeneratedCommandsMemoryRequirementsInfoEXT}{@code ::maxSequencesCount} that was used to determine the {@code preprocessSize}
            • + *
            • {@code maxSequenceCount} must not be zero
            • *
            • The underlying buffer for {@code preprocessAddress} must have the {@link EXTDeviceGeneratedCommands#VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT} bit set in its usage flag
            • *
            • If the underlying buffer for {@code preprocessAddress} is non-sparse then it must be bound completely and contiguously to a single {@code VkDeviceMemory} object
            • *
            • If the {@code indirectCommandsLayout} contains a {@link EXTDeviceGeneratedCommands#VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT} token, then the descriptor and push constant layout info provided either by {@code pipelineLayout} or through a {@link VkPipelineLayoutCreateInfo} in {@code pNext} of the {@link VkIndirectCommandsLayoutCreateInfoEXT} used to create {@code indirectCommandsLayout} must be compatible with the descriptor and push constant layout info used by {@code indirectExecutionSet}
            • *
            • If {@code indirectCommandsLayout} was created with a token sequence that contained the {@link EXTDeviceGeneratedCommands#VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT} token, the shader stages used to create the initial shader state of {@code indirectExecutionSet} must equal the {@link VkIndirectCommandsExecutionSetTokenEXT}{@code ::shaderStages} used to create {@code indirectCommandsLayout}
            • *
            • {@code preprocessSize} must be greater than or equal to the memory requirement’s size returned by {@link EXTDeviceGeneratedCommands#vkGetGeneratedCommandsMemoryRequirementsEXT GetGeneratedCommandsMemoryRequirementsEXT} using the matching inputs ({@code indirectCommandsLayout}, …​) as within this structure
            • - *
            • The underlying buffer for {@code sequenceCountAddress} must have the {@link EXTDeviceGeneratedCommands#VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT} bit set in its usage flag
            • + *
            • The underlying buffer for {@code sequenceCountAddress} must have the {@link KHRMaintenance5#VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR} bit set in its usage flag
            • *
            • If {@code sequenceCountAddress} is not {@code NULL}, {@code sequenceCountAddress} must be aligned to 4
            • *
            • {@code indirectAddress} must be aligned to 4
            • *
            • If the underlying buffer for {@code sequenceCountAddress} is non-sparse then it must be bound completely and contiguously to a single {@code VkDeviceMemory} object
            • @@ -47,6 +48,7 @@ *
            • When not ignored, maxDrawCount × maxSequenceCount must be less than 2^24
            • *
            • If {@code indirectCommandsLayout} was created using a {@link EXTDeviceGeneratedCommands#VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT} token and shader objects are not bound then the currently bound graphics pipeline must have been created with {@link VK13#VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE} in {@code pDynamicStates}
            • *
            • If the token sequence of the passed {@code indirectCommandsLayout} contains a {@link EXTDeviceGeneratedCommands#VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT} token, the {@code indirectExecutionSet} must not be {@link VK10#VK_NULL_HANDLE NULL_HANDLE}
            • + *
            • If the token sequence of the passed {@code indirectCommandsLayout} does not contains a {@link EXTDeviceGeneratedCommands#VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT} token, the {@code indirectExecutionSet} must be {@link VK10#VK_NULL_HANDLE NULL_HANDLE}
            • *
            • If {@code indirectExecutionSet} is {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, a {@link VkGeneratedCommandsPipelineInfoEXT} or {@link VkGeneratedCommandsShaderInfoEXT} must be included in the {@code pNext} chain
            • *
            * diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkGeneratedCommandsMemoryRequirementsInfoEXT.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkGeneratedCommandsMemoryRequirementsInfoEXT.java index 7b777f99c7..9d1a212d46 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkGeneratedCommandsMemoryRequirementsInfoEXT.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkGeneratedCommandsMemoryRequirementsInfoEXT.java @@ -53,7 +53,7 @@ *
            
              * struct VkGeneratedCommandsMemoryRequirementsInfoEXT {
              *     VkStructureType {@link #sType};
            - *     void * {@link #pNext};
            + *     void const * {@link #pNext};
              *     VkIndirectExecutionSetEXT {@link #indirectExecutionSet};
              *     VkIndirectCommandsLayoutEXT {@link #indirectCommandsLayout};
              *     uint32_t {@link #maxSequenceCount};
            @@ -124,7 +124,7 @@ public VkGeneratedCommandsMemoryRequirementsInfoEXT(ByteBuffer container) {
                 @NativeType("VkStructureType")
                 public int sType() { return nsType(address()); }
                 /** {@code NULL} or a pointer to a structure extending this structure. */
            -    @NativeType("void *")
            +    @NativeType("void const *")
                 public long pNext() { return npNext(address()); }
                 /** the indirect execution set to be used for binding shaders. */
                 @NativeType("VkIndirectExecutionSetEXT")
            @@ -144,7 +144,7 @@ public VkGeneratedCommandsMemoryRequirementsInfoEXT(ByteBuffer container) {
                 /** Sets the {@link EXTDeviceGeneratedCommands#VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT} value to the {@link #sType} field. */
                 public VkGeneratedCommandsMemoryRequirementsInfoEXT sType$Default() { return sType(EXTDeviceGeneratedCommands.VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT); }
                 /** Sets the specified value to the {@link #pNext} field. */
            -    public VkGeneratedCommandsMemoryRequirementsInfoEXT pNext(@NativeType("void *") long value) { npNext(address(), value); return this; }
            +    public VkGeneratedCommandsMemoryRequirementsInfoEXT pNext(@NativeType("void const *") long value) { npNext(address(), value); return this; }
                 /** Prepends the specified {@link VkGeneratedCommandsPipelineInfoEXT} value to the {@code pNext} chain. */
                 public VkGeneratedCommandsMemoryRequirementsInfoEXT pNext(VkGeneratedCommandsPipelineInfoEXT value) { return this.pNext(value.pNext(this.pNext()).address()); }
                 /** Prepends the specified {@link VkGeneratedCommandsShaderInfoEXT} value to the {@code pNext} chain. */
            @@ -373,7 +373,7 @@ protected VkGeneratedCommandsMemoryRequirementsInfoEXT getElementFactory() {
                     @NativeType("VkStructureType")
                     public int sType() { return VkGeneratedCommandsMemoryRequirementsInfoEXT.nsType(address()); }
                     /** @return the value of the {@link VkGeneratedCommandsMemoryRequirementsInfoEXT#pNext} field. */
            -        @NativeType("void *")
            +        @NativeType("void const *")
                     public long pNext() { return VkGeneratedCommandsMemoryRequirementsInfoEXT.npNext(address()); }
                     /** @return the value of the {@link VkGeneratedCommandsMemoryRequirementsInfoEXT#indirectExecutionSet} field. */
                     @NativeType("VkIndirectExecutionSetEXT")
            @@ -393,7 +393,7 @@ protected VkGeneratedCommandsMemoryRequirementsInfoEXT getElementFactory() {
                     /** Sets the {@link EXTDeviceGeneratedCommands#VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT} value to the {@link VkGeneratedCommandsMemoryRequirementsInfoEXT#sType} field. */
                     public VkGeneratedCommandsMemoryRequirementsInfoEXT.Buffer sType$Default() { return sType(EXTDeviceGeneratedCommands.VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT); }
                     /** Sets the specified value to the {@link VkGeneratedCommandsMemoryRequirementsInfoEXT#pNext} field. */
            -        public VkGeneratedCommandsMemoryRequirementsInfoEXT.Buffer pNext(@NativeType("void *") long value) { VkGeneratedCommandsMemoryRequirementsInfoEXT.npNext(address(), value); return this; }
            +        public VkGeneratedCommandsMemoryRequirementsInfoEXT.Buffer pNext(@NativeType("void const *") long value) { VkGeneratedCommandsMemoryRequirementsInfoEXT.npNext(address(), value); return this; }
                     /** Prepends the specified {@link VkGeneratedCommandsPipelineInfoEXT} value to the {@code pNext} chain. */
                     public VkGeneratedCommandsMemoryRequirementsInfoEXT.Buffer pNext(VkGeneratedCommandsPipelineInfoEXT value) { return this.pNext(value.pNext(this.pNext()).address()); }
                     /** Prepends the specified {@link VkGeneratedCommandsShaderInfoEXT} value to the {@code pNext} chain. */
            diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkGraphicsPipelineCreateInfo.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkGraphicsPipelineCreateInfo.java
            index e9a99e0eaa..28c530bd87 100644
            --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkGraphicsPipelineCreateInfo.java
            +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkGraphicsPipelineCreateInfo.java
            @@ -92,12 +92,12 @@
              * 
          • {@link VkPipelineFragmentShadingRateStateCreateInfoKHR}
          • *
          • {@link VkPipelineFragmentShadingRateEnumStateCreateInfoNV}
          • *
          • {@link VkPipelineRepresentativeFragmentTestStateCreateInfoNV}
          • - *
          • Inclusion/omission of the {@link KHRDynamicRendering#VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR} flag
          • - *
          • Inclusion/omission of the {@link KHRDynamicRendering#VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT} flag
          • + *
          • Inclusion/omission of the {@link KHRFragmentShadingRate#VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR} flag
          • + *
          • Inclusion/omission of the {@link EXTFragmentDensityMap#VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT} flag
          • *
          • {@link VkRenderingInputAttachmentIndexInfoKHR}
          • *
          * - *

          If a pipeline specifies pre-rasterization state either directly or by including it as a pipeline library and {@code rasterizerDiscardEnable} is set to {@link VK10#VK_FALSE FALSE} or {@link VK13#VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE} is used, this state must be specified to create a complete graphics pipeline.

          + *

          If a pipeline specifies pre-rasterization state either directly or by including it as a pipeline library and {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE} or {@link VK13#VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE} is used, this state must be specified to create a complete graphics pipeline.

          * *

          If a pipeline includes {@link EXTGraphicsPipelineLibrary#VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT} in {@link VkGraphicsPipelineLibraryCreateInfoEXT}{@code ::flags} either explicitly or as a default, and either the conditions requiring this state for a complete graphics pipeline are met or this pipeline does not specify pre-rasterization state in any way, that pipeline must specify this state directly.

          * @@ -116,7 +116,7 @@ *
        • {@link VkRenderingAttachmentLocationInfoKHR}
        • *
        * - *

        If a pipeline specifies pre-rasterization state either directly or by including it as a pipeline library and {@code rasterizerDiscardEnable} is set to {@link VK10#VK_FALSE FALSE} or {@link VK13#VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE} is used, this state must be specified to create a complete graphics pipeline.

        + *

        If a pipeline specifies pre-rasterization state either directly or by including it as a pipeline library and {@code rasterizerDiscardEnable} is {@link VK10#VK_FALSE FALSE} or {@link VK13#VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE} is used, this state must be specified to create a complete graphics pipeline.

        * *

        If a pipeline includes {@link EXTGraphicsPipelineLibrary#VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT} in {@link VkGraphicsPipelineLibraryCreateInfoEXT}{@code ::flags} either explicitly or as a default, and either the conditions requiring this state for a complete graphics pipeline are met or this pipeline does not specify pre-rasterization state in any way, that pipeline must specify this state directly.

        * @@ -224,6 +224,11 @@ *
      • If the pipeline requires pre-rasterization shader state, and there are any mesh shader stages in the pipeline there must not be any shader stage in the pipeline with a {@code Xfb} execution mode
      • *
      • If the pipeline requires pre-rasterization shader state and at least one of fragment output interface state or fragment shader state, and {@code pMultisampleState} is not {@code NULL}, the {@code lineRasterizationMode} member of a {@link VkPipelineRasterizationLineStateCreateInfoKHR} structure included in the {@code pNext} chain of {@code pRasterizationState} is {@link EXTLineRasterization#VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR LINE_RASTERIZATION_MODE_BRESENHAM_KHR} or {@link EXTLineRasterization#VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR}, then the {@code alphaToCoverageEnable}, {@code alphaToOneEnable}, and {@code sampleShadingEnable} members of {@code pMultisampleState} must all be {@link VK10#VK_FALSE FALSE}
      • *
      • If the pipeline requires pre-rasterization shader state, the {@code stippledLineEnable} member of {@link VkPipelineRasterizationLineStateCreateInfoKHR} is {@link VK10#VK_TRUE TRUE}, and no element of the {@code pDynamicStates} member of {@code pDynamicState} is {@link EXTLineRasterization#VK_DYNAMIC_STATE_LINE_STIPPLE_EXT DYNAMIC_STATE_LINE_STIPPLE_EXT}, then the {@code lineStippleFactor} member of {@link VkPipelineRasterizationLineStateCreateInfoKHR} must be in the range [1,256]
      • + *
      • If {@code shaderMeshEnqueue} is not enabled, shaders specified by {@code pStages} must not declare the {@code ShaderEnqueueAMDX} capability
      • + *
      • If {@code flags} does not include {@link KHRPipelineLibrary#VK_PIPELINE_CREATE_LIBRARY_BIT_KHR PIPELINE_CREATE_LIBRARY_BIT_KHR}, shaders specified by {@code pStages} must not declare the {@code ShaderEnqueueAMDX} capability
      • + *
      • If any shader stages in {@code pStages} declare the {@code ShaderEnqueueAMDX} capability, {@link AMDXShaderEnqueue#VK_PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX} and {@link KHRMaintenance5#VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR PIPELINE_CREATE_2_LIBRARY_BIT_KHR} must be included in {@code flags}
      • + *
      • If {@link AMDXShaderEnqueue#VK_PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX} is included in {@code flags}, and the pipeline requires pre-rasterization shader state, there must not be a task or vertex shader specified in {@code pStages}
      • + *
      • If {@link AMDXShaderEnqueue#VK_PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX} is included in {@code flags}, all elements of {@link VkPipelineLibraryCreateInfoKHR}{@code ::pLibraries} must have been created with {@link AMDXShaderEnqueue#VK_PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX}
      • *
      • {@code flags} must not include {@link KHRRayTracingPipeline#VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR}
      • *
      • {@code flags} must not include {@link KHRRayTracingPipeline#VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR}
      • *
      • {@code flags} must not include {@link KHRRayTracingPipeline#VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR}
      • @@ -242,11 +247,11 @@ *
      • If the {@code extendedDynamicState2LogicOp} feature is not enabled, there must be no element of the {@code pDynamicStates} member of {@code pDynamicState} set to {@link EXTExtendedDynamicState2#VK_DYNAMIC_STATE_LOGIC_OP_EXT DYNAMIC_STATE_LOGIC_OP_EXT}
      • *
      • If the {@code extendedDynamicState2PatchControlPoints} feature is not enabled, there must be no element of the {@code pDynamicStates} member of {@code pDynamicState} set to {@link EXTExtendedDynamicState2#VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT}
      • *
      • If the pipeline requires pre-rasterization shader state, and includes a mesh shader, there must be no element of the {@code pDynamicStates} member of {@code pDynamicState} set to {@link VK13#VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE}, or {@link EXTExtendedDynamicState2#VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT}
      • - *
      • If {@code flags} includes {@link NVDeviceGeneratedCommands#VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV}, then the {@code deviceGeneratedCommands} feature must be enabled
      • + *
      • If {@code flags} includes {@link NVDeviceGeneratedCommands#VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV}, then the {@link VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV}{@code ::deviceGeneratedCommands} feature must be enabled
      • *
      • If the pipeline requires pre-rasterization shader state and {@code flags} includes {@link NVDeviceGeneratedCommands#VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV}, then all stages must not specify {@code Xfb} execution mode
      • *
      • If the pipeline is not created with a complete set of state, or {@link VkPipelineLibraryCreateInfoKHR}{@code ::libraryCount} is not 0, {@link VkGraphicsPipelineShaderGroupsCreateInfoNV}{@code ::groupCount} and {@link VkGraphicsPipelineShaderGroupsCreateInfoNV}{@code ::pipelineCount} must be 0
      • *
      • If the pipeline is created with a complete set of state, and {@link VkPipelineLibraryCreateInfoKHR}{@code ::libraryCount} is 0, and the {@code pNext} chain includes an instance of {@link VkGraphicsPipelineShaderGroupsCreateInfoNV}, {@link VkGraphicsPipelineShaderGroupsCreateInfoNV}{@code ::groupCount} must be greater than 0
      • - *
      • If {@code flags} includes {@link EXTDeviceGeneratedCommands#VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT}, then the {@code deviceGeneratedCommands} feature must be enabled
      • + *
      • If {@code flags} includes {@link EXTDeviceGeneratedCommands#VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT}, then the {@link VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT}{@code ::deviceGeneratedCommands} feature must be enabled
      • *
      • If the pipeline requires pre-rasterization shader state and {@code flags} includes {@link EXTDeviceGeneratedCommands#VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT}, then all stages must not specify {@code Xfb} execution mode
      • *
      • If the {@code pipelineCreationCacheControl} feature is not enabled, {@code flags} must not include {@link VK13#VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT} or {@link VK13#VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT}
      • *
      • If the {@code pipelineProtectedAccess} feature is not enabled, {@code flags} must not include {@link EXTPipelineProtectedAccess#VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT} or {@link EXTPipelineProtectedAccess#VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT}
      • @@ -335,8 +340,8 @@ *
      • If the pipeline requires fragment shader state or pre-rasterization shader state, {@code layout} must be a valid {@code VkPipelineLayout} handle
      • *
      • If the pipeline requires pre-rasterization shader state, fragment shader state, or fragment output state, and {@code renderPass} is not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, {@code renderPass} must be a valid {@code VkRenderPass} handle
      • *
      • If the pipeline requires pre-rasterization shader state, {@code stageCount} must be greater than 0
      • - *
      • If the {@code graphicsPipelineLibrary} feature is not enabled, {@code flags} must not include {@link KHRPipelineLibrary#VK_PIPELINE_CREATE_LIBRARY_BIT_KHR PIPELINE_CREATE_LIBRARY_BIT_KHR}
      • - *
      • If the pipeline defines, or includes as libraries, all the state subsets required for a complete graphics pipeline, {@code flags} must not include {@link KHRPipelineLibrary#VK_PIPELINE_CREATE_LIBRARY_BIT_KHR PIPELINE_CREATE_LIBRARY_BIT_KHR}
      • + *
      • If the {@code graphicsPipelineLibrary} feature is not enabled, and if the {@code shaderMeshEnqueue} feature is not enabled, {@code flags} must not include {@link KHRPipelineLibrary#VK_PIPELINE_CREATE_LIBRARY_BIT_KHR PIPELINE_CREATE_LIBRARY_BIT_KHR}
      • + *
      • If {@code shaderMeshEnqueue} feature is not enabled, and the pipeline is being created with all possible state subsets, {@code flags} must not include {@link KHRPipelineLibrary#VK_PIPELINE_CREATE_LIBRARY_BIT_KHR PIPELINE_CREATE_LIBRARY_BIT_KHR}
      • *
      • If {@code flags} includes {@link EXTGraphicsPipelineLibrary#VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT}, pipeline libraries included via {@link VkPipelineLibraryCreateInfoKHR} must have been created with {@link EXTGraphicsPipelineLibrary#VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT}
      • *
      • If {@code flags} includes {@link EXTGraphicsPipelineLibrary#VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT}, {@code flags} must also include {@link KHRPipelineLibrary#VK_PIPELINE_CREATE_LIBRARY_BIT_KHR PIPELINE_CREATE_LIBRARY_BIT_KHR}
      • *
      • If {@code flags} includes {@link EXTGraphicsPipelineLibrary#VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT}, pipeline libraries included via {@link VkPipelineLibraryCreateInfoKHR} must have been created with {@link EXTGraphicsPipelineLibrary#VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT}
      • diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkGraphicsPipelineShaderGroupsCreateInfoNV.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkGraphicsPipelineShaderGroupsCreateInfoNV.java index a0a6b0b0b9..f47f79f3d8 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkGraphicsPipelineShaderGroupsCreateInfoNV.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkGraphicsPipelineShaderGroupsCreateInfoNV.java @@ -35,7 +35,7 @@ *
      • All elements of {@code pGroups} must use the same shader stage combinations unless any mesh shader stage is used, then either combination of task and mesh or just mesh shader is valid
      • *
      • Mesh and regular primitive shading stages cannot be mixed across {@code pGroups}
      • *
      • Each element of {@code pPipelines} must have been created with identical state to the pipeline currently created except the state that can be overridden by {@link VkGraphicsShaderGroupCreateInfoNV}
      • - *
      • The {@code deviceGeneratedCommands} feature must be enabled
      • + *
      • The {@link VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV}{@code ::deviceGeneratedCommands} feature must be enabled
      • *
      * *
      Valid Usage (Implicit)
      diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkHdrMetadataEXT.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkHdrMetadataEXT.java index dcd1a01f29..37606c6cf2 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkHdrMetadataEXT.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkHdrMetadataEXT.java @@ -31,7 +31,8 @@ * *
        *
      • {@code sType} must be {@link EXTHdrMetadata#VK_STRUCTURE_TYPE_HDR_METADATA_EXT STRUCTURE_TYPE_HDR_METADATA_EXT}
      • - *
      • {@code pNext} must be {@code NULL}
      • + *
      • {@code pNext} must be {@code NULL} or a pointer to a valid instance of {@link VkHdrVividDynamicMetadataHUAWEI}
      • + *
      • The {@code sType} value of each struct in the {@code pNext} chain must be unique
      • *
      * *
      See Also
      @@ -155,6 +156,8 @@ public VkHdrMetadataEXT(ByteBuffer container) { public VkHdrMetadataEXT sType$Default() { return sType(EXTHdrMetadata.VK_STRUCTURE_TYPE_HDR_METADATA_EXT); } /** Sets the specified value to the {@link #pNext} field. */ public VkHdrMetadataEXT pNext(@NativeType("void const *") long value) { npNext(address(), value); return this; } + /** Prepends the specified {@link VkHdrVividDynamicMetadataHUAWEI} value to the {@code pNext} chain. */ + public VkHdrMetadataEXT pNext(VkHdrVividDynamicMetadataHUAWEI value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Copies the specified {@link VkXYColorEXT} to the {@link #displayPrimaryRed} field. */ public VkHdrMetadataEXT displayPrimaryRed(VkXYColorEXT value) { ndisplayPrimaryRed(address(), value); return this; } /** Passes the {@link #displayPrimaryRed} field to the specified {@link java.util.function.Consumer Consumer}. */ @@ -463,6 +466,8 @@ protected VkHdrMetadataEXT getElementFactory() { public VkHdrMetadataEXT.Buffer sType$Default() { return sType(EXTHdrMetadata.VK_STRUCTURE_TYPE_HDR_METADATA_EXT); } /** Sets the specified value to the {@link VkHdrMetadataEXT#pNext} field. */ public VkHdrMetadataEXT.Buffer pNext(@NativeType("void const *") long value) { VkHdrMetadataEXT.npNext(address(), value); return this; } + /** Prepends the specified {@link VkHdrVividDynamicMetadataHUAWEI} value to the {@code pNext} chain. */ + public VkHdrMetadataEXT.Buffer pNext(VkHdrVividDynamicMetadataHUAWEI value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Copies the specified {@link VkXYColorEXT} to the {@link VkHdrMetadataEXT#displayPrimaryRed} field. */ public VkHdrMetadataEXT.Buffer displayPrimaryRed(VkXYColorEXT value) { VkHdrMetadataEXT.ndisplayPrimaryRed(address(), value); return this; } /** Passes the {@link VkHdrMetadataEXT#displayPrimaryRed} field to the specified {@link java.util.function.Consumer Consumer}. */ diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkHdrVividDynamicMetadataHUAWEI.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkHdrVividDynamicMetadataHUAWEI.java new file mode 100644 index 0000000000..42d8891f52 --- /dev/null +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkHdrVividDynamicMetadataHUAWEI.java @@ -0,0 +1,353 @@ +/* + * Copyright LWJGL. All rights reserved. + * License terms: https://www.lwjgl.org/license + * MACHINE GENERATED FILE, DO NOT EDIT + */ +package org.lwjgl.vulkan; + +import org.jspecify.annotations.*; + +import java.nio.*; + +import org.lwjgl.*; +import org.lwjgl.system.*; + +import static org.lwjgl.system.Checks.*; +import static org.lwjgl.system.MemoryUtil.*; +import static org.lwjgl.system.MemoryStack.*; + +/** + * specify HDR Vivid dynamic metadata. + * + *
      Description
      + * + *
      Note
      + * + *

      The HDR Vivid metadata is intended to be used as defined in the T/UWA 005.1-2022 specification. The validity and use of this data is outside the scope of Vulkan.

      + *
      + * + *
      Valid Usage (Implicit)
      + * + *
        + *
      • {@code sType} must be {@link HUAWEIHdrVivid#VK_STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI}
      • + *
      • {@code pDynamicMetadata} must be a valid pointer to an array of {@code dynamicMetadataSize} bytes
      • + *
      • {@code dynamicMetadataSize} must be greater than 0
      • + *
      + * + *

      Layout

      + * + *
      
      + * struct VkHdrVividDynamicMetadataHUAWEI {
      + *     VkStructureType {@link #sType};
      + *     void const * {@link #pNext};
      + *     size_t {@link #dynamicMetadataSize};
      + *     void const * {@link #pDynamicMetadata};
      + * }
      + */ +public class VkHdrVividDynamicMetadataHUAWEI extends Struct implements NativeResource { + + /** The struct size in bytes. */ + public static final int SIZEOF; + + /** The struct alignment in bytes. */ + public static final int ALIGNOF; + + /** The struct member offsets. */ + public static final int + STYPE, + PNEXT, + DYNAMICMETADATASIZE, + PDYNAMICMETADATA; + + static { + Layout layout = __struct( + __member(4), + __member(POINTER_SIZE), + __member(POINTER_SIZE), + __member(POINTER_SIZE) + ); + + SIZEOF = layout.getSize(); + ALIGNOF = layout.getAlignment(); + + STYPE = layout.offsetof(0); + PNEXT = layout.offsetof(1); + DYNAMICMETADATASIZE = layout.offsetof(2); + PDYNAMICMETADATA = layout.offsetof(3); + } + + protected VkHdrVividDynamicMetadataHUAWEI(long address, @Nullable ByteBuffer container) { + super(address, container); + } + + @Override + protected VkHdrVividDynamicMetadataHUAWEI create(long address, @Nullable ByteBuffer container) { + return new VkHdrVividDynamicMetadataHUAWEI(address, container); + } + + /** + * Creates a {@code VkHdrVividDynamicMetadataHUAWEI} instance at the current position of the specified {@link ByteBuffer} container. Changes to the buffer's content will be + * visible to the struct instance and vice versa. + * + *

      The created instance holds a strong reference to the container object.

      + */ + public VkHdrVividDynamicMetadataHUAWEI(ByteBuffer container) { + super(memAddress(container), __checkContainer(container, SIZEOF)); + } + + @Override + public int sizeof() { return SIZEOF; } + + /** a {@code VkStructureType} value identifying this structure. */ + @NativeType("VkStructureType") + public int sType() { return nsType(address()); } + /** {@code NULL} or a pointer to a structure extending this structure. */ + @NativeType("void const *") + public long pNext() { return npNext(address()); } + /** the size in bytes of the dynamic metadata. */ + @NativeType("size_t") + public long dynamicMetadataSize() { return ndynamicMetadataSize(address()); } + /** a pointer to the dynamic metadata. */ + @NativeType("void const *") + public ByteBuffer pDynamicMetadata() { return npDynamicMetadata(address()); } + + /** Sets the specified value to the {@link #sType} field. */ + public VkHdrVividDynamicMetadataHUAWEI sType(@NativeType("VkStructureType") int value) { nsType(address(), value); return this; } + /** Sets the {@link HUAWEIHdrVivid#VK_STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI} value to the {@link #sType} field. */ + public VkHdrVividDynamicMetadataHUAWEI sType$Default() { return sType(HUAWEIHdrVivid.VK_STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI); } + /** Sets the specified value to the {@link #pNext} field. */ + public VkHdrVividDynamicMetadataHUAWEI pNext(@NativeType("void const *") long value) { npNext(address(), value); return this; } + /** Sets the address of the specified {@link ByteBuffer} to the {@link #pDynamicMetadata} field. */ + public VkHdrVividDynamicMetadataHUAWEI pDynamicMetadata(@NativeType("void const *") ByteBuffer value) { npDynamicMetadata(address(), value); return this; } + + /** Initializes this struct with the specified values. */ + public VkHdrVividDynamicMetadataHUAWEI set( + int sType, + long pNext, + ByteBuffer pDynamicMetadata + ) { + sType(sType); + pNext(pNext); + pDynamicMetadata(pDynamicMetadata); + + return this; + } + + /** + * Copies the specified struct data to this struct. + * + * @param src the source struct + * + * @return this struct + */ + public VkHdrVividDynamicMetadataHUAWEI set(VkHdrVividDynamicMetadataHUAWEI src) { + memCopy(src.address(), address(), SIZEOF); + return this; + } + + // ----------------------------------- + + /** Returns a new {@code VkHdrVividDynamicMetadataHUAWEI} instance allocated with {@link MemoryUtil#memAlloc memAlloc}. The instance must be explicitly freed. */ + public static VkHdrVividDynamicMetadataHUAWEI malloc() { + return new VkHdrVividDynamicMetadataHUAWEI(nmemAllocChecked(SIZEOF), null); + } + + /** Returns a new {@code VkHdrVividDynamicMetadataHUAWEI} instance allocated with {@link MemoryUtil#memCalloc memCalloc}. The instance must be explicitly freed. */ + public static VkHdrVividDynamicMetadataHUAWEI calloc() { + return new VkHdrVividDynamicMetadataHUAWEI(nmemCallocChecked(1, SIZEOF), null); + } + + /** Returns a new {@code VkHdrVividDynamicMetadataHUAWEI} instance allocated with {@link BufferUtils}. */ + public static VkHdrVividDynamicMetadataHUAWEI create() { + ByteBuffer container = BufferUtils.createByteBuffer(SIZEOF); + return new VkHdrVividDynamicMetadataHUAWEI(memAddress(container), container); + } + + /** Returns a new {@code VkHdrVividDynamicMetadataHUAWEI} instance for the specified memory address. */ + public static VkHdrVividDynamicMetadataHUAWEI create(long address) { + return new VkHdrVividDynamicMetadataHUAWEI(address, null); + } + + /** Like {@link #create(long) create}, but returns {@code null} if {@code address} is {@code NULL}. */ + public static @Nullable VkHdrVividDynamicMetadataHUAWEI createSafe(long address) { + return address == NULL ? null : new VkHdrVividDynamicMetadataHUAWEI(address, null); + } + + /** + * Returns a new {@link VkHdrVividDynamicMetadataHUAWEI.Buffer} instance allocated with {@link MemoryUtil#memAlloc memAlloc}. The instance must be explicitly freed. + * + * @param capacity the buffer capacity + */ + public static VkHdrVividDynamicMetadataHUAWEI.Buffer malloc(int capacity) { + return new Buffer(nmemAllocChecked(__checkMalloc(capacity, SIZEOF)), capacity); + } + + /** + * Returns a new {@link VkHdrVividDynamicMetadataHUAWEI.Buffer} instance allocated with {@link MemoryUtil#memCalloc memCalloc}. The instance must be explicitly freed. + * + * @param capacity the buffer capacity + */ + public static VkHdrVividDynamicMetadataHUAWEI.Buffer calloc(int capacity) { + return new Buffer(nmemCallocChecked(capacity, SIZEOF), capacity); + } + + /** + * Returns a new {@link VkHdrVividDynamicMetadataHUAWEI.Buffer} instance allocated with {@link BufferUtils}. + * + * @param capacity the buffer capacity + */ + public static VkHdrVividDynamicMetadataHUAWEI.Buffer create(int capacity) { + ByteBuffer container = __create(capacity, SIZEOF); + return new Buffer(memAddress(container), container, -1, 0, capacity, capacity); + } + + /** + * Create a {@link VkHdrVividDynamicMetadataHUAWEI.Buffer} instance at the specified memory. + * + * @param address the memory address + * @param capacity the buffer capacity + */ + public static VkHdrVividDynamicMetadataHUAWEI.Buffer create(long address, int capacity) { + return new Buffer(address, capacity); + } + + /** Like {@link #create(long, int) create}, but returns {@code null} if {@code address} is {@code NULL}. */ + public static VkHdrVividDynamicMetadataHUAWEI.@Nullable Buffer createSafe(long address, int capacity) { + return address == NULL ? null : new Buffer(address, capacity); + } + + /** + * Returns a new {@code VkHdrVividDynamicMetadataHUAWEI} instance allocated on the specified {@link MemoryStack}. + * + * @param stack the stack from which to allocate + */ + public static VkHdrVividDynamicMetadataHUAWEI malloc(MemoryStack stack) { + return new VkHdrVividDynamicMetadataHUAWEI(stack.nmalloc(ALIGNOF, SIZEOF), null); + } + + /** + * Returns a new {@code VkHdrVividDynamicMetadataHUAWEI} instance allocated on the specified {@link MemoryStack} and initializes all its bits to zero. + * + * @param stack the stack from which to allocate + */ + public static VkHdrVividDynamicMetadataHUAWEI calloc(MemoryStack stack) { + return new VkHdrVividDynamicMetadataHUAWEI(stack.ncalloc(ALIGNOF, 1, SIZEOF), null); + } + + /** + * Returns a new {@link VkHdrVividDynamicMetadataHUAWEI.Buffer} instance allocated on the specified {@link MemoryStack}. + * + * @param stack the stack from which to allocate + * @param capacity the buffer capacity + */ + public static VkHdrVividDynamicMetadataHUAWEI.Buffer malloc(int capacity, MemoryStack stack) { + return new Buffer(stack.nmalloc(ALIGNOF, capacity * SIZEOF), capacity); + } + + /** + * Returns a new {@link VkHdrVividDynamicMetadataHUAWEI.Buffer} instance allocated on the specified {@link MemoryStack} and initializes all its bits to zero. + * + * @param stack the stack from which to allocate + * @param capacity the buffer capacity + */ + public static VkHdrVividDynamicMetadataHUAWEI.Buffer calloc(int capacity, MemoryStack stack) { + return new Buffer(stack.ncalloc(ALIGNOF, capacity, SIZEOF), capacity); + } + + // ----------------------------------- + + /** Unsafe version of {@link #sType}. */ + public static int nsType(long struct) { return memGetInt(struct + VkHdrVividDynamicMetadataHUAWEI.STYPE); } + /** Unsafe version of {@link #pNext}. */ + public static long npNext(long struct) { return memGetAddress(struct + VkHdrVividDynamicMetadataHUAWEI.PNEXT); } + /** Unsafe version of {@link #dynamicMetadataSize}. */ + public static long ndynamicMetadataSize(long struct) { return memGetAddress(struct + VkHdrVividDynamicMetadataHUAWEI.DYNAMICMETADATASIZE); } + /** Unsafe version of {@link #pDynamicMetadata() pDynamicMetadata}. */ + public static ByteBuffer npDynamicMetadata(long struct) { return memByteBuffer(memGetAddress(struct + VkHdrVividDynamicMetadataHUAWEI.PDYNAMICMETADATA), (int)ndynamicMetadataSize(struct)); } + + /** Unsafe version of {@link #sType(int) sType}. */ + public static void nsType(long struct, int value) { memPutInt(struct + VkHdrVividDynamicMetadataHUAWEI.STYPE, value); } + /** Unsafe version of {@link #pNext(long) pNext}. */ + public static void npNext(long struct, long value) { memPutAddress(struct + VkHdrVividDynamicMetadataHUAWEI.PNEXT, value); } + /** Sets the specified value to the {@code dynamicMetadataSize} field of the specified {@code struct}. */ + public static void ndynamicMetadataSize(long struct, long value) { memPutAddress(struct + VkHdrVividDynamicMetadataHUAWEI.DYNAMICMETADATASIZE, value); } + /** Unsafe version of {@link #pDynamicMetadata(ByteBuffer) pDynamicMetadata}. */ + public static void npDynamicMetadata(long struct, ByteBuffer value) { memPutAddress(struct + VkHdrVividDynamicMetadataHUAWEI.PDYNAMICMETADATA, memAddress(value)); ndynamicMetadataSize(struct, value.remaining()); } + + /** + * Validates pointer members that should not be {@code NULL}. + * + * @param struct the struct to validate + */ + public static void validate(long struct) { + check(memGetAddress(struct + VkHdrVividDynamicMetadataHUAWEI.PDYNAMICMETADATA)); + } + + // ----------------------------------- + + /** An array of {@link VkHdrVividDynamicMetadataHUAWEI} structs. */ + public static class Buffer extends StructBuffer implements NativeResource { + + private static final VkHdrVividDynamicMetadataHUAWEI ELEMENT_FACTORY = VkHdrVividDynamicMetadataHUAWEI.create(-1L); + + /** + * Creates a new {@code VkHdrVividDynamicMetadataHUAWEI.Buffer} instance backed by the specified container. + * + *

      Changes to the container's content will be visible to the struct buffer instance and vice versa. The two buffers' position, limit, and mark values + * will be independent. The new buffer's position will be zero, its capacity and its limit will be the number of bytes remaining in this buffer divided + * by {@link VkHdrVividDynamicMetadataHUAWEI#SIZEOF}, and its mark will be undefined.

      + * + *

      The created buffer instance holds a strong reference to the container object.

      + */ + public Buffer(ByteBuffer container) { + super(container, container.remaining() / SIZEOF); + } + + public Buffer(long address, int cap) { + super(address, null, -1, 0, cap, cap); + } + + Buffer(long address, @Nullable ByteBuffer container, int mark, int pos, int lim, int cap) { + super(address, container, mark, pos, lim, cap); + } + + @Override + protected Buffer self() { + return this; + } + + @Override + protected Buffer create(long address, @Nullable ByteBuffer container, int mark, int position, int limit, int capacity) { + return new Buffer(address, container, mark, position, limit, capacity); + } + + @Override + protected VkHdrVividDynamicMetadataHUAWEI getElementFactory() { + return ELEMENT_FACTORY; + } + + /** @return the value of the {@link VkHdrVividDynamicMetadataHUAWEI#sType} field. */ + @NativeType("VkStructureType") + public int sType() { return VkHdrVividDynamicMetadataHUAWEI.nsType(address()); } + /** @return the value of the {@link VkHdrVividDynamicMetadataHUAWEI#pNext} field. */ + @NativeType("void const *") + public long pNext() { return VkHdrVividDynamicMetadataHUAWEI.npNext(address()); } + /** @return the value of the {@link VkHdrVividDynamicMetadataHUAWEI#dynamicMetadataSize} field. */ + @NativeType("size_t") + public long dynamicMetadataSize() { return VkHdrVividDynamicMetadataHUAWEI.ndynamicMetadataSize(address()); } + /** @return a {@link ByteBuffer} view of the data pointed to by the {@link VkHdrVividDynamicMetadataHUAWEI#pDynamicMetadata} field. */ + @NativeType("void const *") + public ByteBuffer pDynamicMetadata() { return VkHdrVividDynamicMetadataHUAWEI.npDynamicMetadata(address()); } + + /** Sets the specified value to the {@link VkHdrVividDynamicMetadataHUAWEI#sType} field. */ + public VkHdrVividDynamicMetadataHUAWEI.Buffer sType(@NativeType("VkStructureType") int value) { VkHdrVividDynamicMetadataHUAWEI.nsType(address(), value); return this; } + /** Sets the {@link HUAWEIHdrVivid#VK_STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI} value to the {@link VkHdrVividDynamicMetadataHUAWEI#sType} field. */ + public VkHdrVividDynamicMetadataHUAWEI.Buffer sType$Default() { return sType(HUAWEIHdrVivid.VK_STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI); } + /** Sets the specified value to the {@link VkHdrVividDynamicMetadataHUAWEI#pNext} field. */ + public VkHdrVividDynamicMetadataHUAWEI.Buffer pNext(@NativeType("void const *") long value) { VkHdrVividDynamicMetadataHUAWEI.npNext(address(), value); return this; } + /** Sets the address of the specified {@link ByteBuffer} to the {@link VkHdrVividDynamicMetadataHUAWEI#pDynamicMetadata} field. */ + public VkHdrVividDynamicMetadataHUAWEI.Buffer pDynamicMetadata(@NativeType("void const *") ByteBuffer value) { VkHdrVividDynamicMetadataHUAWEI.npDynamicMetadata(address(), value); return this; } + + } + +} \ No newline at end of file diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkImageCreateInfo.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkImageCreateInfo.java index a002bcbaf4..b7465bd787 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkImageCreateInfo.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkImageCreateInfo.java @@ -140,7 +140,7 @@ * *
        *
      • {@link VkImageCreateInfo}{@code ::format} equals {@link VkVideoFormatPropertiesKHR}{@code ::format}.
      • - *
      • {@link VkImageCreateInfo}{@code ::flags} only contains bits also set in {@link VkVideoFormatPropertiesKHR}{@code ::imageCreateFlags}.
      • + *
      • {@link VkImageCreateInfo}{@code ::flags} only contains {@link KHRVideoMaintenance1#VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR} and/or bits also set in {@link VkVideoFormatPropertiesKHR}{@code ::imageCreateFlags}.
      • *
      • {@link VkImageCreateInfo}{@code ::imageType} equals {@link VkVideoFormatPropertiesKHR}{@code ::imageType}.
      • *
      • {@link VkImageCreateInfo}{@code ::tiling} equals {@link VkVideoFormatPropertiesKHR}{@code ::imageTiling}.
      • *
      • {@link VkImageCreateInfo}{@code ::usage} only contains bits also set in {@link VkVideoFormatPropertiesKHR}{@code ::imageUsageFlags}, or {@link VkImageCreateInfo}{@code ::flags} includes {@link VK11#VK_IMAGE_CREATE_EXTENDED_USAGE_BIT IMAGE_CREATE_EXTENDED_USAGE_BIT}.
      • @@ -172,6 +172,7 @@ *
      • If {@code flags} contains {@link VK11#VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT}, {@code imageType} must be {@link VK10#VK_IMAGE_TYPE_3D IMAGE_TYPE_3D}
      • *
      • If {@code flags} contains {@link VK11#VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT}, {@code flags} must not include {@link VK10#VK_IMAGE_CREATE_SPARSE_ALIASED_BIT IMAGE_CREATE_SPARSE_ALIASED_BIT}, {@link VK10#VK_IMAGE_CREATE_SPARSE_BINDING_BIT IMAGE_CREATE_SPARSE_BINDING_BIT}, or {@link VK10#VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT IMAGE_CREATE_SPARSE_RESIDENCY_BIT}
      • *
      • If {@code flags} contains {@link EXTImage2dViewOf3d#VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT}, {@code imageType} must be {@link VK10#VK_IMAGE_TYPE_3D IMAGE_TYPE_3D}
      • + *
      • If {@code flags} contains {@link EXTImage2dViewOf3d#VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT}, {@code flags} must not include {@link VK10#VK_IMAGE_CREATE_SPARSE_ALIASED_BIT IMAGE_CREATE_SPARSE_ALIASED_BIT}, {@link VK10#VK_IMAGE_CREATE_SPARSE_BINDING_BIT IMAGE_CREATE_SPARSE_BINDING_BIT}, or {@link VK10#VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT IMAGE_CREATE_SPARSE_RESIDENCY_BIT}
      • *
      • {@code extent.width} must be less than or equal to {@code imageCreateMaxExtent.width} (as defined in Image Creation Limits)
      • *
      • {@code extent.height} must be less than or equal to {@code imageCreateMaxExtent.height} (as defined in Image Creation Limits)
      • *
      • {@code extent.depth} must be less than or equal to {@code imageCreateMaxExtent.depth} (as defined in Image Creation Limits)
      • @@ -275,6 +276,7 @@ *
      • If the {@code pNext} chain includes a {@link VkImportMetalTextureInfoEXT} structure and the image does not have a multi-planar format, then {@link VkImportMetalTextureInfoEXT}{@code ::plane} must be {@link VK11#VK_IMAGE_ASPECT_PLANE_0_BIT IMAGE_ASPECT_PLANE_0_BIT}
      • *
      • If the {@code pNext} chain includes a {@link VkImportMetalTextureInfoEXT} structure and the image has a multi-planar format with only two planes, then {@link VkImportMetalTextureInfoEXT}{@code ::plane} must not be {@link VK11#VK_IMAGE_ASPECT_PLANE_2_BIT IMAGE_ASPECT_PLANE_2_BIT}
      • *
      • If {@code imageCreateFormatFeatures} (as defined in Image Creation Limits) does not contain {@link EXTHostImageCopy#VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT}, then {@code usage} must not contain {@link EXTHostImageCopy#VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT IMAGE_USAGE_HOST_TRANSFER_BIT_EXT}
      • + *
      • If {@code usage} includes {@link EXTHostImageCopy#VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT IMAGE_USAGE_HOST_TRANSFER_BIT_EXT}, then the {@code hostImageCopy} feature must be enabled
      • *
      • If the {@code pNext} chain contains a {@link VkImageAlignmentControlCreateInfoMESA} structure, {@code tiling} must be {@link VK10#VK_IMAGE_TILING_OPTIMAL IMAGE_TILING_OPTIMAL}
      • *
      • If the {@code pNext} chain contains a {@link VkImageAlignmentControlCreateInfoMESA} structure, it must not contain a {@link VkExternalMemoryImageCreateInfo} structure
      • *
      diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkImageViewCreateInfo.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkImageViewCreateInfo.java index bc99eb854b..6aeb7789c9 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkImageViewCreateInfo.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkImageViewCreateInfo.java @@ -76,7 +76,6 @@ *
    • If {@code image} was created with {@link VK10#VK_IMAGE_TYPE_3D IMAGE_TYPE_3D} but without {@link VK11#VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT} set then {@code viewType} must not be {@link VK10#VK_IMAGE_VIEW_TYPE_2D_ARRAY IMAGE_VIEW_TYPE_2D_ARRAY}
    • *
    • If {@code image} was created with {@link VK10#VK_IMAGE_TYPE_3D IMAGE_TYPE_3D} but without {@link VK11#VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT} or {@link EXTImage2dViewOf3d#VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT} set, then {@code viewType} must not be {@link VK10#VK_IMAGE_VIEW_TYPE_2D IMAGE_VIEW_TYPE_2D}
    • *
    • If {@code image} was created with {@link VK10#VK_IMAGE_TYPE_3D IMAGE_TYPE_3D} and {@code viewType} is {@link VK10#VK_IMAGE_VIEW_TYPE_2D IMAGE_VIEW_TYPE_2D} or {@link VK10#VK_IMAGE_VIEW_TYPE_2D_ARRAY IMAGE_VIEW_TYPE_2D_ARRAY} then {@code subresourceRange.levelCount} must be 1
    • - *
    • If {@code image} was created with {@link VK10#VK_IMAGE_TYPE_3D IMAGE_TYPE_3D} and {@code viewType} is {@link VK10#VK_IMAGE_VIEW_TYPE_2D IMAGE_VIEW_TYPE_2D} or {@link VK10#VK_IMAGE_VIEW_TYPE_2D_ARRAY IMAGE_VIEW_TYPE_2D_ARRAY} then {@link VkImageCreateInfo}{@code ::flags} must not contain any of {@link VK10#VK_IMAGE_CREATE_SPARSE_BINDING_BIT IMAGE_CREATE_SPARSE_BINDING_BIT}, {@link VK10#VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT IMAGE_CREATE_SPARSE_RESIDENCY_BIT}, and {@link VK10#VK_IMAGE_CREATE_SPARSE_ALIASED_BIT IMAGE_CREATE_SPARSE_ALIASED_BIT}
    • *
    • If {@code image} was created with a {@code samples} value not equal to {@link VK10#VK_SAMPLE_COUNT_1_BIT SAMPLE_COUNT_1_BIT} then {@code viewType} must be either {@link VK10#VK_IMAGE_VIEW_TYPE_2D IMAGE_VIEW_TYPE_2D} or {@link VK10#VK_IMAGE_VIEW_TYPE_2D_ARRAY IMAGE_VIEW_TYPE_2D_ARRAY}
    • *
    • {@code image} must have been created with a {@code usage} value containing at least one of the usages defined in the valid image usage list for image views
    • *
    • The format features of the resultant image view must contain at least one bit
    • @@ -110,7 +109,7 @@ *
    • If {@code image} was created with the {@link VK10#VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT IMAGE_CREATE_MUTABLE_FORMAT_BIT} flag, but without the {@link VK11#VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT} flag, and if the {@code format} of the {@code image} is not a multi-planar format, {@code format} must be compatible with the {@code format} used to create {@code image}, as defined in Format Compatibility Classes
    • *
    • If {@code image} was created with the {@link VK11#VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT} flag, {@code format} must be compatible with, or must be an uncompressed format that is size-compatible with, the {@code format} used to create {@code image}
    • *
    • If {@code image} was created with the {@link VK11#VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT} flag and {@code format} is a non-compressed format, the {@code levelCount} member of {@code subresourceRange} must be 1
    • - *
    • If {@code image} was created with the {@link VK11#VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT} flag, the {@link VkPhysicalDeviceMaintenance6PropertiesKHR}{@code ::blockTexelViewCompatibleMultipleLayers} property is not set to {@link VK10#VK_TRUE TRUE}, and {@code format} is a non-compressed format, then the {@code layerCount} member of {@code subresourceRange} must be 1
    • + *
    • If {@code image} was created with the {@link VK11#VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT} flag, the {@link VkPhysicalDeviceMaintenance6PropertiesKHR}{@code ::blockTexelViewCompatibleMultipleLayers} property is not {@link VK10#VK_TRUE TRUE}, and {@code format} is a non-compressed format, then the {@code layerCount} member of {@code subresourceRange} must be 1
    • *
    • If a {@link VkImageFormatListCreateInfo} structure was included in the {@code pNext} chain of the {@link VkImageCreateInfo} structure used when creating {@code image} and {@link VkImageFormatListCreateInfo}{@code ::viewFormatCount} is not zero then {@code format} must be one of the formats in {@link VkImageFormatListCreateInfo}{@code ::pViewFormats}
    • *
    • If {@code image} was created with the {@link VK10#VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT IMAGE_CREATE_MUTABLE_FORMAT_BIT} flag, if the {@code format} of the {@code image} is a multi-planar format, and if {@code subresourceRange.aspectMask} is one of the multi-planar aspect mask bits, then {@code format} must be compatible with the {@code VkFormat} for the plane of the {@code image} {@code format} indicated by {@code subresourceRange.aspectMask}, as defined in Compatible formats of planes of multi-planar formats
    • *
    • {@code subresourceRange.aspectMask} must only have at most 1 valid multi-planar aspect mask bit
    • diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkImportMetalSharedEventInfoEXT.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkImportMetalSharedEventInfoEXT.java index 60b6300436..2b4dc2bfc4 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkImportMetalSharedEventInfoEXT.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkImportMetalSharedEventInfoEXT.java @@ -21,7 +21,7 @@ * *
      Description
      * - *

      If the {@code pNext} chain of the {@link VkSemaphoreCreateInfo} structure includes both {@link VkImportMetalSharedEventInfoEXT} and {@link VkSemaphoreTypeCreateInfo}, the {@code signaledValue} property of the imported {@code id<MTLSharedEvent>} object will be set to {@code initialValue} of {@link VkSemaphoreTypeCreateInfo}.

      + *

      If the {@code pNext} chain of the {@link VkSemaphoreCreateInfo} structure includes both {@link VkImportMetalSharedEventInfoEXT} and {@link VkSemaphoreTypeCreateInfo}, the {@code signaledValue} property of the imported {@code id<MTLSharedEvent>} object will be set to {@link VkSemaphoreTypeCreateInfo}{@code ::initialValue}.

      * *
      Valid Usage (Implicit)
      * diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkIndirectCommandsLayoutTokenEXT.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkIndirectCommandsLayoutTokenEXT.java index de96a2a7bd..e9b0ff15bb 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkIndirectCommandsLayoutTokenEXT.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkIndirectCommandsLayoutTokenEXT.java @@ -35,7 +35,7 @@ *
        *
      • {@code sType} must be {@link EXTDeviceGeneratedCommands#VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT}
      • *
      • {@code type} must be a valid {@code VkIndirectCommandsTokenTypeEXT} value
      • - *
      • If {@code type} is {@link EXTDeviceGeneratedCommands#VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT}, the {@code pPushConstant} member of {@code data} must be a valid pointer to a valid {@link VkIndirectCommandsPushConstantTokenEXT} structure
      • + *
      • If {@code type} is {@link EXTDeviceGeneratedCommands#VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT},VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT, the {@code pPushConstant} member of {@code data} must be a valid pointer to a valid {@link VkIndirectCommandsPushConstantTokenEXT} structure
      • *
      • If {@code type} is {@link EXTDeviceGeneratedCommands#VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT}, the {@code pVertexBuffer} member of {@code data} must be a valid pointer to a valid {@link VkIndirectCommandsVertexBufferTokenEXT} structure
      • *
      • If {@code type} is {@link EXTDeviceGeneratedCommands#VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT}, the {@code pIndexBuffer} member of {@code data} must be a valid pointer to a valid {@link VkIndirectCommandsIndexBufferTokenEXT} structure
      • *
      • If {@code type} is {@link EXTDeviceGeneratedCommands#VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT}, the {@code pExecutionSet} member of {@code data} must be a valid pointer to a valid {@link VkIndirectCommandsExecutionSetTokenEXT} structure
      • diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkIndirectCommandsVertexBufferTokenEXT.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkIndirectCommandsVertexBufferTokenEXT.java index 5d61e0e030..1fd4a6b6b4 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkIndirectCommandsVertexBufferTokenEXT.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkIndirectCommandsVertexBufferTokenEXT.java @@ -21,7 +21,7 @@ *
        Valid Usage
        * *
          - *
        • {@code vertexBindingUnit} must be less than the total number of vertex input bindings in use by the current graphics state.
        • + *
        • {@code vertexBindingUnit} must be less than the total number of vertex input bindings in use by the current graphics state
        • *
        * *
        See Also
        diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkInstanceCreateInfo.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkInstanceCreateInfo.java index ce1a58657b..3c082ac5c5 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkInstanceCreateInfo.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkInstanceCreateInfo.java @@ -38,6 +38,9 @@ *
      • If the {@code pNext} chain includes a {@link VkExportMetalObjectCreateInfoEXT} structure, its {@code exportObjectType} member must be either {@link EXTMetalObjects#VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT} or {@link EXTMetalObjects#VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT}
      • *
      • If {@code flags} has the {@link KHRPortabilityEnumeration#VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR} bit set, the list of enabled extensions in {@code ppEnabledExtensionNames} must contain {@link KHRPortabilityEnumeration VK_KHR_portability_enumeration}
      • *
      • If the {@code pNext} chain of {@link VkInstanceCreateInfo} includes a {@link VkDirectDriverLoadingListLUNARG} structure, the list of enabled extensions in {@code ppEnabledExtensionNames} must contain {@link LUNARGDirectDriverLoading VK_LUNARG_direct_driver_loading}
      • + *
      • If the {@code pNext} chain of {@link VkInstanceCreateInfo} includes a {@link VkLayerSettingsCreateInfoEXT} structure, the list of enabled extensions in {@code ppEnabledExtensionNames} must contain {@link EXTLayerSettings VK_EXT_layer_settings}
      • + *
      • If the {@code pNext} chain of {@link VkInstanceCreateInfo} includes a {@link VkValidationFeaturesEXT} structure, the list of enabled extensions in {@code ppEnabledExtensionNames} must contain {@link EXTValidationFeatures VK_EXT_validation_features}
      • + *
      • If the {@code pNext} chain of {@link VkInstanceCreateInfo} includes a {@link VkValidationFlagsEXT} structure, the list of enabled extensions in {@code ppEnabledExtensionNames} must contain {@link EXTValidationFlags VK_EXT_validation_flags}
      • *
      * *
      Valid Usage (Implicit)
      diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkLatencySleepModeInfoNV.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkLatencySleepModeInfoNV.java index 64a993ad6e..ed9764fd4d 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkLatencySleepModeInfoNV.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkLatencySleepModeInfoNV.java @@ -20,7 +20,7 @@ * *
      Description
      * - *

      If {@code lowLatencyMode} is set to {@link VK10#VK_FALSE FALSE}, {@code lowLatencyBoost} will still hint to the GPU to increase its power state and {@code vkLatencySleepNV} will still enforce {@code minimumIntervalUs} between {@code vkQueuePresentKHR} calls.

      + *

      If {@code lowLatencyMode} is {@link VK10#VK_FALSE FALSE}, {@code lowLatencyBoost} will still hint to the GPU to increase its power state and {@code vkLatencySleepNV} will still enforce {@code minimumIntervalUs} between {@code vkQueuePresentKHR} calls.

      * *
      Valid Usage (Implicit)
      * diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkMultiviewPerViewAttributesInfoNVX.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkMultiviewPerViewAttributesInfoNVX.java index 43cda916d1..11f4ad2bd8 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkMultiviewPerViewAttributesInfoNVX.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkMultiviewPerViewAttributesInfoNVX.java @@ -25,7 +25,7 @@ *
      Valid Usage (Implicit)
      * *
        - *
      • {@code sType} must be {@link KHRDynamicRendering#VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX}
      • + *
      • {@code sType} must be {@link NVXMultiviewPerViewAttributes#VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX}
      • *
      * *

      Layout

      @@ -107,8 +107,8 @@ public VkMultiviewPerViewAttributesInfoNVX(ByteBuffer container) { /** Sets the specified value to the {@link #sType} field. */ public VkMultiviewPerViewAttributesInfoNVX sType(@NativeType("VkStructureType") int value) { nsType(address(), value); return this; } - /** Sets the {@link KHRDynamicRendering#VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX} value to the {@link #sType} field. */ - public VkMultiviewPerViewAttributesInfoNVX sType$Default() { return sType(KHRDynamicRendering.VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX); } + /** Sets the {@link NVXMultiviewPerViewAttributes#VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX} value to the {@link #sType} field. */ + public VkMultiviewPerViewAttributesInfoNVX sType$Default() { return sType(NVXMultiviewPerViewAttributes.VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX); } /** Sets the specified value to the {@link #pNext} field. */ public VkMultiviewPerViewAttributesInfoNVX pNext(@NativeType("void const *") long value) { npNext(address(), value); return this; } /** Sets the specified value to the {@link #perViewAttributes} field. */ @@ -330,8 +330,8 @@ protected VkMultiviewPerViewAttributesInfoNVX getElementFactory() { /** Sets the specified value to the {@link VkMultiviewPerViewAttributesInfoNVX#sType} field. */ public VkMultiviewPerViewAttributesInfoNVX.Buffer sType(@NativeType("VkStructureType") int value) { VkMultiviewPerViewAttributesInfoNVX.nsType(address(), value); return this; } - /** Sets the {@link KHRDynamicRendering#VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX} value to the {@link VkMultiviewPerViewAttributesInfoNVX#sType} field. */ - public VkMultiviewPerViewAttributesInfoNVX.Buffer sType$Default() { return sType(KHRDynamicRendering.VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX); } + /** Sets the {@link NVXMultiviewPerViewAttributes#VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX} value to the {@link VkMultiviewPerViewAttributesInfoNVX#sType} field. */ + public VkMultiviewPerViewAttributesInfoNVX.Buffer sType$Default() { return sType(NVXMultiviewPerViewAttributes.VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX); } /** Sets the specified value to the {@link VkMultiviewPerViewAttributesInfoNVX#pNext} field. */ public VkMultiviewPerViewAttributesInfoNVX.Buffer pNext(@NativeType("void const *") long value) { VkMultiviewPerViewAttributesInfoNVX.npNext(address(), value); return this; } /** Sets the specified value to the {@link VkMultiviewPerViewAttributesInfoNVX#perViewAttributes} field. */ diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM.java index 57cbd0d7b3..4f69ecf732 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM.java @@ -23,7 +23,7 @@ * *

      If {@code perViewRenderAreaCount} is not zero, then the elements of {@code pPerViewRenderAreas} override the value of {@link VkRenderPassBeginInfo}{@code ::renderArea} or {@link VkRenderingInfo}{@code ::renderArea} and define per-view render areas for the individual views of a multiview render pass. The render area for the view with view index {@code i} is specified by {@code pPerViewRenderAreas}[i].

      * - *

      The per-view render areas define per-view regions of attachments that are loaded, stored, and resolved according to the {@code loadOp}, {@code storeOp}, and {@code resolveMode} values of the render pass instance. When per-view render areas are defined, the value of {@link VkRenderPassBeginInfo}{@code ::renderArea} or {@link VkRenderingInfo}{@code ::renderArea} must be set to a render area that includes the union of all per-view render areas, may be used by the implementation for optimizations, but does not affect loads, stores, or resolves.

      + *

      The per-view render areas define per-view regions of attachments that are loaded, stored, and resolved according to the {@code loadOp}, {@code storeOp}, and {@code resolveMode} values of the render pass instance. When per-view render areas are defined, the value of {@link VkRenderPassBeginInfo}{@code ::renderArea} or {@link VkRenderingInfo}{@code ::renderArea} must be a render area that includes the union of all per-view render areas, may be used by the implementation for optimizations, but does not affect loads, stores, or resolves.

      * *

      If this structure is present and if {@code perViewRenderAreaCount} is not zero, then {@code perViewRenderAreaCount} must be at least one greater than the most significant bit set in any element of {@link VkRenderPassMultiviewCreateInfo}{@code ::pViewMasks}. or {@link VkRenderingInfo}{@code ::viewMask}

      * diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceCooperativeMatrix2FeaturesNV.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceCooperativeMatrix2FeaturesNV.java new file mode 100644 index 0000000000..d5966ce39f --- /dev/null +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceCooperativeMatrix2FeaturesNV.java @@ -0,0 +1,444 @@ +/* + * Copyright LWJGL. All rights reserved. + * License terms: https://www.lwjgl.org/license + * MACHINE GENERATED FILE, DO NOT EDIT + */ +package org.lwjgl.vulkan; + +import org.jspecify.annotations.*; + +import java.nio.*; + +import org.lwjgl.*; +import org.lwjgl.system.*; + +import static org.lwjgl.system.MemoryUtil.*; +import static org.lwjgl.system.MemoryStack.*; + +/** + * Structure describing cooperative matrix features that can be supported by an implementation. + * + *
      Description
      + * + *

      If the {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV} structure is included in the {@code pNext} chain of the {@link VkPhysicalDeviceFeatures2} structure passed to {@link VK11#vkGetPhysicalDeviceFeatures2 GetPhysicalDeviceFeatures2}, it is filled in to indicate whether each corresponding feature is supported. {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV} can also be used in the {@code pNext} chain of {@link VkDeviceCreateInfo} to selectively enable these features.

      + * + *
      Valid Usage (Implicit)
      + * + *
        + *
      • {@code sType} must be {@link NVCooperativeMatrix2#VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV}
      • + *
      + * + *

      Layout

      + * + *
      
      + * struct VkPhysicalDeviceCooperativeMatrix2FeaturesNV {
      + *     VkStructureType {@link #sType};
      + *     void * {@link #pNext};
      + *     VkBool32 {@link #cooperativeMatrixWorkgroupScope};
      + *     VkBool32 {@link #cooperativeMatrixFlexibleDimensions};
      + *     VkBool32 {@link #cooperativeMatrixReductions};
      + *     VkBool32 {@link #cooperativeMatrixConversions};
      + *     VkBool32 {@link #cooperativeMatrixPerElementOperations};
      + *     VkBool32 {@link #cooperativeMatrixTensorAddressing};
      + *     VkBool32 {@link #cooperativeMatrixBlockLoads};
      + * }
      + */ +public class VkPhysicalDeviceCooperativeMatrix2FeaturesNV extends Struct implements NativeResource { + + /** The struct size in bytes. */ + public static final int SIZEOF; + + /** The struct alignment in bytes. */ + public static final int ALIGNOF; + + /** The struct member offsets. */ + public static final int + STYPE, + PNEXT, + COOPERATIVEMATRIXWORKGROUPSCOPE, + COOPERATIVEMATRIXFLEXIBLEDIMENSIONS, + COOPERATIVEMATRIXREDUCTIONS, + COOPERATIVEMATRIXCONVERSIONS, + COOPERATIVEMATRIXPERELEMENTOPERATIONS, + COOPERATIVEMATRIXTENSORADDRESSING, + COOPERATIVEMATRIXBLOCKLOADS; + + static { + Layout layout = __struct( + __member(4), + __member(POINTER_SIZE), + __member(4), + __member(4), + __member(4), + __member(4), + __member(4), + __member(4), + __member(4) + ); + + SIZEOF = layout.getSize(); + ALIGNOF = layout.getAlignment(); + + STYPE = layout.offsetof(0); + PNEXT = layout.offsetof(1); + COOPERATIVEMATRIXWORKGROUPSCOPE = layout.offsetof(2); + COOPERATIVEMATRIXFLEXIBLEDIMENSIONS = layout.offsetof(3); + COOPERATIVEMATRIXREDUCTIONS = layout.offsetof(4); + COOPERATIVEMATRIXCONVERSIONS = layout.offsetof(5); + COOPERATIVEMATRIXPERELEMENTOPERATIONS = layout.offsetof(6); + COOPERATIVEMATRIXTENSORADDRESSING = layout.offsetof(7); + COOPERATIVEMATRIXBLOCKLOADS = layout.offsetof(8); + } + + protected VkPhysicalDeviceCooperativeMatrix2FeaturesNV(long address, @Nullable ByteBuffer container) { + super(address, container); + } + + @Override + protected VkPhysicalDeviceCooperativeMatrix2FeaturesNV create(long address, @Nullable ByteBuffer container) { + return new VkPhysicalDeviceCooperativeMatrix2FeaturesNV(address, container); + } + + /** + * Creates a {@code VkPhysicalDeviceCooperativeMatrix2FeaturesNV} instance at the current position of the specified {@link ByteBuffer} container. Changes to the buffer's content will be + * visible to the struct instance and vice versa. + * + *

      The created instance holds a strong reference to the container object.

      + */ + public VkPhysicalDeviceCooperativeMatrix2FeaturesNV(ByteBuffer container) { + super(memAddress(container), __checkContainer(container, SIZEOF)); + } + + @Override + public int sizeof() { return SIZEOF; } + + /** a {@code VkStructureType} value identifying this structure. */ + @NativeType("VkStructureType") + public int sType() { return nsType(address()); } + /** {@code NULL} or a pointer to a structure extending this structure. */ + @NativeType("void *") + public long pNext() { return npNext(address()); } + /** indicates that the implementation supports workgroup scope cooperative matrices. */ + @NativeType("VkBool32") + public boolean cooperativeMatrixWorkgroupScope() { return ncooperativeMatrixWorkgroupScope(address()) != 0; } + /** indicates that the implementation supports cooperative matrix sizes that are a multiple of the granularity advertised in {@link VkCooperativeMatrixFlexibleDimensionsPropertiesNV}. */ + @NativeType("VkBool32") + public boolean cooperativeMatrixFlexibleDimensions() { return ncooperativeMatrixFlexibleDimensions(address()) != 0; } + /** indicates that the implementation supports the {@code CooperativeMatrixReductionsNV} SPIR-V capability. This allows performing (row, column, 2x2, or all element) reductions on matrices. */ + @NativeType("VkBool32") + public boolean cooperativeMatrixReductions() { return ncooperativeMatrixReductions(address()) != 0; } + /** indicates that the implementation supports the {@code CooperativeMatrixConversionsNV} SPIR-V capability. This allows converting accumulator matrices to A or B matrices. */ + @NativeType("VkBool32") + public boolean cooperativeMatrixConversions() { return ncooperativeMatrixConversions(address()) != 0; } + /** indicates that the implementation supports the {@code CooperativeMatrixPerElementOperationsNV} SPIR-V capability. This allows performing element-wise operations on matrix elements using a callback function. */ + @NativeType("VkBool32") + public boolean cooperativeMatrixPerElementOperations() { return ncooperativeMatrixPerElementOperations(address()) != 0; } + /** indicates that the implementation supports the {@code TensorAddressingNV} and {@code CooperativeMatrixTensorAddressingNV} SPIR-V capabilities. This allows using tensor layout and tensor view types for matrix loads and stores. */ + @NativeType("VkBool32") + public boolean cooperativeMatrixTensorAddressing() { return ncooperativeMatrixTensorAddressing(address()) != 0; } + /** indicates that the implementation supports the {@code CooperativeMatrixBlockLoadsNV} SPIR-V capability. This allows setting block size for loads and using a callback function to decode block elements. */ + @NativeType("VkBool32") + public boolean cooperativeMatrixBlockLoads() { return ncooperativeMatrixBlockLoads(address()) != 0; } + + /** Sets the specified value to the {@link #sType} field. */ + public VkPhysicalDeviceCooperativeMatrix2FeaturesNV sType(@NativeType("VkStructureType") int value) { nsType(address(), value); return this; } + /** Sets the {@link NVCooperativeMatrix2#VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV} value to the {@link #sType} field. */ + public VkPhysicalDeviceCooperativeMatrix2FeaturesNV sType$Default() { return sType(NVCooperativeMatrix2.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV); } + /** Sets the specified value to the {@link #pNext} field. */ + public VkPhysicalDeviceCooperativeMatrix2FeaturesNV pNext(@NativeType("void *") long value) { npNext(address(), value); return this; } + /** Sets the specified value to the {@link #cooperativeMatrixWorkgroupScope} field. */ + public VkPhysicalDeviceCooperativeMatrix2FeaturesNV cooperativeMatrixWorkgroupScope(@NativeType("VkBool32") boolean value) { ncooperativeMatrixWorkgroupScope(address(), value ? 1 : 0); return this; } + /** Sets the specified value to the {@link #cooperativeMatrixFlexibleDimensions} field. */ + public VkPhysicalDeviceCooperativeMatrix2FeaturesNV cooperativeMatrixFlexibleDimensions(@NativeType("VkBool32") boolean value) { ncooperativeMatrixFlexibleDimensions(address(), value ? 1 : 0); return this; } + /** Sets the specified value to the {@link #cooperativeMatrixReductions} field. */ + public VkPhysicalDeviceCooperativeMatrix2FeaturesNV cooperativeMatrixReductions(@NativeType("VkBool32") boolean value) { ncooperativeMatrixReductions(address(), value ? 1 : 0); return this; } + /** Sets the specified value to the {@link #cooperativeMatrixConversions} field. */ + public VkPhysicalDeviceCooperativeMatrix2FeaturesNV cooperativeMatrixConversions(@NativeType("VkBool32") boolean value) { ncooperativeMatrixConversions(address(), value ? 1 : 0); return this; } + /** Sets the specified value to the {@link #cooperativeMatrixPerElementOperations} field. */ + public VkPhysicalDeviceCooperativeMatrix2FeaturesNV cooperativeMatrixPerElementOperations(@NativeType("VkBool32") boolean value) { ncooperativeMatrixPerElementOperations(address(), value ? 1 : 0); return this; } + /** Sets the specified value to the {@link #cooperativeMatrixTensorAddressing} field. */ + public VkPhysicalDeviceCooperativeMatrix2FeaturesNV cooperativeMatrixTensorAddressing(@NativeType("VkBool32") boolean value) { ncooperativeMatrixTensorAddressing(address(), value ? 1 : 0); return this; } + /** Sets the specified value to the {@link #cooperativeMatrixBlockLoads} field. */ + public VkPhysicalDeviceCooperativeMatrix2FeaturesNV cooperativeMatrixBlockLoads(@NativeType("VkBool32") boolean value) { ncooperativeMatrixBlockLoads(address(), value ? 1 : 0); return this; } + + /** Initializes this struct with the specified values. */ + public VkPhysicalDeviceCooperativeMatrix2FeaturesNV set( + int sType, + long pNext, + boolean cooperativeMatrixWorkgroupScope, + boolean cooperativeMatrixFlexibleDimensions, + boolean cooperativeMatrixReductions, + boolean cooperativeMatrixConversions, + boolean cooperativeMatrixPerElementOperations, + boolean cooperativeMatrixTensorAddressing, + boolean cooperativeMatrixBlockLoads + ) { + sType(sType); + pNext(pNext); + cooperativeMatrixWorkgroupScope(cooperativeMatrixWorkgroupScope); + cooperativeMatrixFlexibleDimensions(cooperativeMatrixFlexibleDimensions); + cooperativeMatrixReductions(cooperativeMatrixReductions); + cooperativeMatrixConversions(cooperativeMatrixConversions); + cooperativeMatrixPerElementOperations(cooperativeMatrixPerElementOperations); + cooperativeMatrixTensorAddressing(cooperativeMatrixTensorAddressing); + cooperativeMatrixBlockLoads(cooperativeMatrixBlockLoads); + + return this; + } + + /** + * Copies the specified struct data to this struct. + * + * @param src the source struct + * + * @return this struct + */ + public VkPhysicalDeviceCooperativeMatrix2FeaturesNV set(VkPhysicalDeviceCooperativeMatrix2FeaturesNV src) { + memCopy(src.address(), address(), SIZEOF); + return this; + } + + // ----------------------------------- + + /** Returns a new {@code VkPhysicalDeviceCooperativeMatrix2FeaturesNV} instance allocated with {@link MemoryUtil#memAlloc memAlloc}. The instance must be explicitly freed. */ + public static VkPhysicalDeviceCooperativeMatrix2FeaturesNV malloc() { + return new VkPhysicalDeviceCooperativeMatrix2FeaturesNV(nmemAllocChecked(SIZEOF), null); + } + + /** Returns a new {@code VkPhysicalDeviceCooperativeMatrix2FeaturesNV} instance allocated with {@link MemoryUtil#memCalloc memCalloc}. The instance must be explicitly freed. */ + public static VkPhysicalDeviceCooperativeMatrix2FeaturesNV calloc() { + return new VkPhysicalDeviceCooperativeMatrix2FeaturesNV(nmemCallocChecked(1, SIZEOF), null); + } + + /** Returns a new {@code VkPhysicalDeviceCooperativeMatrix2FeaturesNV} instance allocated with {@link BufferUtils}. */ + public static VkPhysicalDeviceCooperativeMatrix2FeaturesNV create() { + ByteBuffer container = BufferUtils.createByteBuffer(SIZEOF); + return new VkPhysicalDeviceCooperativeMatrix2FeaturesNV(memAddress(container), container); + } + + /** Returns a new {@code VkPhysicalDeviceCooperativeMatrix2FeaturesNV} instance for the specified memory address. */ + public static VkPhysicalDeviceCooperativeMatrix2FeaturesNV create(long address) { + return new VkPhysicalDeviceCooperativeMatrix2FeaturesNV(address, null); + } + + /** Like {@link #create(long) create}, but returns {@code null} if {@code address} is {@code NULL}. */ + public static @Nullable VkPhysicalDeviceCooperativeMatrix2FeaturesNV createSafe(long address) { + return address == NULL ? null : new VkPhysicalDeviceCooperativeMatrix2FeaturesNV(address, null); + } + + /** + * Returns a new {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV.Buffer} instance allocated with {@link MemoryUtil#memAlloc memAlloc}. The instance must be explicitly freed. + * + * @param capacity the buffer capacity + */ + public static VkPhysicalDeviceCooperativeMatrix2FeaturesNV.Buffer malloc(int capacity) { + return new Buffer(nmemAllocChecked(__checkMalloc(capacity, SIZEOF)), capacity); + } + + /** + * Returns a new {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV.Buffer} instance allocated with {@link MemoryUtil#memCalloc memCalloc}. The instance must be explicitly freed. + * + * @param capacity the buffer capacity + */ + public static VkPhysicalDeviceCooperativeMatrix2FeaturesNV.Buffer calloc(int capacity) { + return new Buffer(nmemCallocChecked(capacity, SIZEOF), capacity); + } + + /** + * Returns a new {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV.Buffer} instance allocated with {@link BufferUtils}. + * + * @param capacity the buffer capacity + */ + public static VkPhysicalDeviceCooperativeMatrix2FeaturesNV.Buffer create(int capacity) { + ByteBuffer container = __create(capacity, SIZEOF); + return new Buffer(memAddress(container), container, -1, 0, capacity, capacity); + } + + /** + * Create a {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV.Buffer} instance at the specified memory. + * + * @param address the memory address + * @param capacity the buffer capacity + */ + public static VkPhysicalDeviceCooperativeMatrix2FeaturesNV.Buffer create(long address, int capacity) { + return new Buffer(address, capacity); + } + + /** Like {@link #create(long, int) create}, but returns {@code null} if {@code address} is {@code NULL}. */ + public static VkPhysicalDeviceCooperativeMatrix2FeaturesNV.@Nullable Buffer createSafe(long address, int capacity) { + return address == NULL ? null : new Buffer(address, capacity); + } + + /** + * Returns a new {@code VkPhysicalDeviceCooperativeMatrix2FeaturesNV} instance allocated on the specified {@link MemoryStack}. + * + * @param stack the stack from which to allocate + */ + public static VkPhysicalDeviceCooperativeMatrix2FeaturesNV malloc(MemoryStack stack) { + return new VkPhysicalDeviceCooperativeMatrix2FeaturesNV(stack.nmalloc(ALIGNOF, SIZEOF), null); + } + + /** + * Returns a new {@code VkPhysicalDeviceCooperativeMatrix2FeaturesNV} instance allocated on the specified {@link MemoryStack} and initializes all its bits to zero. + * + * @param stack the stack from which to allocate + */ + public static VkPhysicalDeviceCooperativeMatrix2FeaturesNV calloc(MemoryStack stack) { + return new VkPhysicalDeviceCooperativeMatrix2FeaturesNV(stack.ncalloc(ALIGNOF, 1, SIZEOF), null); + } + + /** + * Returns a new {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV.Buffer} instance allocated on the specified {@link MemoryStack}. + * + * @param stack the stack from which to allocate + * @param capacity the buffer capacity + */ + public static VkPhysicalDeviceCooperativeMatrix2FeaturesNV.Buffer malloc(int capacity, MemoryStack stack) { + return new Buffer(stack.nmalloc(ALIGNOF, capacity * SIZEOF), capacity); + } + + /** + * Returns a new {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV.Buffer} instance allocated on the specified {@link MemoryStack} and initializes all its bits to zero. + * + * @param stack the stack from which to allocate + * @param capacity the buffer capacity + */ + public static VkPhysicalDeviceCooperativeMatrix2FeaturesNV.Buffer calloc(int capacity, MemoryStack stack) { + return new Buffer(stack.ncalloc(ALIGNOF, capacity, SIZEOF), capacity); + } + + // ----------------------------------- + + /** Unsafe version of {@link #sType}. */ + public static int nsType(long struct) { return memGetInt(struct + VkPhysicalDeviceCooperativeMatrix2FeaturesNV.STYPE); } + /** Unsafe version of {@link #pNext}. */ + public static long npNext(long struct) { return memGetAddress(struct + VkPhysicalDeviceCooperativeMatrix2FeaturesNV.PNEXT); } + /** Unsafe version of {@link #cooperativeMatrixWorkgroupScope}. */ + public static int ncooperativeMatrixWorkgroupScope(long struct) { return memGetInt(struct + VkPhysicalDeviceCooperativeMatrix2FeaturesNV.COOPERATIVEMATRIXWORKGROUPSCOPE); } + /** Unsafe version of {@link #cooperativeMatrixFlexibleDimensions}. */ + public static int ncooperativeMatrixFlexibleDimensions(long struct) { return memGetInt(struct + VkPhysicalDeviceCooperativeMatrix2FeaturesNV.COOPERATIVEMATRIXFLEXIBLEDIMENSIONS); } + /** Unsafe version of {@link #cooperativeMatrixReductions}. */ + public static int ncooperativeMatrixReductions(long struct) { return memGetInt(struct + VkPhysicalDeviceCooperativeMatrix2FeaturesNV.COOPERATIVEMATRIXREDUCTIONS); } + /** Unsafe version of {@link #cooperativeMatrixConversions}. */ + public static int ncooperativeMatrixConversions(long struct) { return memGetInt(struct + VkPhysicalDeviceCooperativeMatrix2FeaturesNV.COOPERATIVEMATRIXCONVERSIONS); } + /** Unsafe version of {@link #cooperativeMatrixPerElementOperations}. */ + public static int ncooperativeMatrixPerElementOperations(long struct) { return memGetInt(struct + VkPhysicalDeviceCooperativeMatrix2FeaturesNV.COOPERATIVEMATRIXPERELEMENTOPERATIONS); } + /** Unsafe version of {@link #cooperativeMatrixTensorAddressing}. */ + public static int ncooperativeMatrixTensorAddressing(long struct) { return memGetInt(struct + VkPhysicalDeviceCooperativeMatrix2FeaturesNV.COOPERATIVEMATRIXTENSORADDRESSING); } + /** Unsafe version of {@link #cooperativeMatrixBlockLoads}. */ + public static int ncooperativeMatrixBlockLoads(long struct) { return memGetInt(struct + VkPhysicalDeviceCooperativeMatrix2FeaturesNV.COOPERATIVEMATRIXBLOCKLOADS); } + + /** Unsafe version of {@link #sType(int) sType}. */ + public static void nsType(long struct, int value) { memPutInt(struct + VkPhysicalDeviceCooperativeMatrix2FeaturesNV.STYPE, value); } + /** Unsafe version of {@link #pNext(long) pNext}. */ + public static void npNext(long struct, long value) { memPutAddress(struct + VkPhysicalDeviceCooperativeMatrix2FeaturesNV.PNEXT, value); } + /** Unsafe version of {@link #cooperativeMatrixWorkgroupScope(boolean) cooperativeMatrixWorkgroupScope}. */ + public static void ncooperativeMatrixWorkgroupScope(long struct, int value) { memPutInt(struct + VkPhysicalDeviceCooperativeMatrix2FeaturesNV.COOPERATIVEMATRIXWORKGROUPSCOPE, value); } + /** Unsafe version of {@link #cooperativeMatrixFlexibleDimensions(boolean) cooperativeMatrixFlexibleDimensions}. */ + public static void ncooperativeMatrixFlexibleDimensions(long struct, int value) { memPutInt(struct + VkPhysicalDeviceCooperativeMatrix2FeaturesNV.COOPERATIVEMATRIXFLEXIBLEDIMENSIONS, value); } + /** Unsafe version of {@link #cooperativeMatrixReductions(boolean) cooperativeMatrixReductions}. */ + public static void ncooperativeMatrixReductions(long struct, int value) { memPutInt(struct + VkPhysicalDeviceCooperativeMatrix2FeaturesNV.COOPERATIVEMATRIXREDUCTIONS, value); } + /** Unsafe version of {@link #cooperativeMatrixConversions(boolean) cooperativeMatrixConversions}. */ + public static void ncooperativeMatrixConversions(long struct, int value) { memPutInt(struct + VkPhysicalDeviceCooperativeMatrix2FeaturesNV.COOPERATIVEMATRIXCONVERSIONS, value); } + /** Unsafe version of {@link #cooperativeMatrixPerElementOperations(boolean) cooperativeMatrixPerElementOperations}. */ + public static void ncooperativeMatrixPerElementOperations(long struct, int value) { memPutInt(struct + VkPhysicalDeviceCooperativeMatrix2FeaturesNV.COOPERATIVEMATRIXPERELEMENTOPERATIONS, value); } + /** Unsafe version of {@link #cooperativeMatrixTensorAddressing(boolean) cooperativeMatrixTensorAddressing}. */ + public static void ncooperativeMatrixTensorAddressing(long struct, int value) { memPutInt(struct + VkPhysicalDeviceCooperativeMatrix2FeaturesNV.COOPERATIVEMATRIXTENSORADDRESSING, value); } + /** Unsafe version of {@link #cooperativeMatrixBlockLoads(boolean) cooperativeMatrixBlockLoads}. */ + public static void ncooperativeMatrixBlockLoads(long struct, int value) { memPutInt(struct + VkPhysicalDeviceCooperativeMatrix2FeaturesNV.COOPERATIVEMATRIXBLOCKLOADS, value); } + + // ----------------------------------- + + /** An array of {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV} structs. */ + public static class Buffer extends StructBuffer implements NativeResource { + + private static final VkPhysicalDeviceCooperativeMatrix2FeaturesNV ELEMENT_FACTORY = VkPhysicalDeviceCooperativeMatrix2FeaturesNV.create(-1L); + + /** + * Creates a new {@code VkPhysicalDeviceCooperativeMatrix2FeaturesNV.Buffer} instance backed by the specified container. + * + *

      Changes to the container's content will be visible to the struct buffer instance and vice versa. The two buffers' position, limit, and mark values + * will be independent. The new buffer's position will be zero, its capacity and its limit will be the number of bytes remaining in this buffer divided + * by {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV#SIZEOF}, and its mark will be undefined.

      + * + *

      The created buffer instance holds a strong reference to the container object.

      + */ + public Buffer(ByteBuffer container) { + super(container, container.remaining() / SIZEOF); + } + + public Buffer(long address, int cap) { + super(address, null, -1, 0, cap, cap); + } + + Buffer(long address, @Nullable ByteBuffer container, int mark, int pos, int lim, int cap) { + super(address, container, mark, pos, lim, cap); + } + + @Override + protected Buffer self() { + return this; + } + + @Override + protected Buffer create(long address, @Nullable ByteBuffer container, int mark, int position, int limit, int capacity) { + return new Buffer(address, container, mark, position, limit, capacity); + } + + @Override + protected VkPhysicalDeviceCooperativeMatrix2FeaturesNV getElementFactory() { + return ELEMENT_FACTORY; + } + + /** @return the value of the {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV#sType} field. */ + @NativeType("VkStructureType") + public int sType() { return VkPhysicalDeviceCooperativeMatrix2FeaturesNV.nsType(address()); } + /** @return the value of the {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV#pNext} field. */ + @NativeType("void *") + public long pNext() { return VkPhysicalDeviceCooperativeMatrix2FeaturesNV.npNext(address()); } + /** @return the value of the {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV#cooperativeMatrixWorkgroupScope} field. */ + @NativeType("VkBool32") + public boolean cooperativeMatrixWorkgroupScope() { return VkPhysicalDeviceCooperativeMatrix2FeaturesNV.ncooperativeMatrixWorkgroupScope(address()) != 0; } + /** @return the value of the {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV#cooperativeMatrixFlexibleDimensions} field. */ + @NativeType("VkBool32") + public boolean cooperativeMatrixFlexibleDimensions() { return VkPhysicalDeviceCooperativeMatrix2FeaturesNV.ncooperativeMatrixFlexibleDimensions(address()) != 0; } + /** @return the value of the {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV#cooperativeMatrixReductions} field. */ + @NativeType("VkBool32") + public boolean cooperativeMatrixReductions() { return VkPhysicalDeviceCooperativeMatrix2FeaturesNV.ncooperativeMatrixReductions(address()) != 0; } + /** @return the value of the {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV#cooperativeMatrixConversions} field. */ + @NativeType("VkBool32") + public boolean cooperativeMatrixConversions() { return VkPhysicalDeviceCooperativeMatrix2FeaturesNV.ncooperativeMatrixConversions(address()) != 0; } + /** @return the value of the {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV#cooperativeMatrixPerElementOperations} field. */ + @NativeType("VkBool32") + public boolean cooperativeMatrixPerElementOperations() { return VkPhysicalDeviceCooperativeMatrix2FeaturesNV.ncooperativeMatrixPerElementOperations(address()) != 0; } + /** @return the value of the {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV#cooperativeMatrixTensorAddressing} field. */ + @NativeType("VkBool32") + public boolean cooperativeMatrixTensorAddressing() { return VkPhysicalDeviceCooperativeMatrix2FeaturesNV.ncooperativeMatrixTensorAddressing(address()) != 0; } + /** @return the value of the {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV#cooperativeMatrixBlockLoads} field. */ + @NativeType("VkBool32") + public boolean cooperativeMatrixBlockLoads() { return VkPhysicalDeviceCooperativeMatrix2FeaturesNV.ncooperativeMatrixBlockLoads(address()) != 0; } + + /** Sets the specified value to the {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV#sType} field. */ + public VkPhysicalDeviceCooperativeMatrix2FeaturesNV.Buffer sType(@NativeType("VkStructureType") int value) { VkPhysicalDeviceCooperativeMatrix2FeaturesNV.nsType(address(), value); return this; } + /** Sets the {@link NVCooperativeMatrix2#VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV} value to the {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV#sType} field. */ + public VkPhysicalDeviceCooperativeMatrix2FeaturesNV.Buffer sType$Default() { return sType(NVCooperativeMatrix2.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV); } + /** Sets the specified value to the {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV#pNext} field. */ + public VkPhysicalDeviceCooperativeMatrix2FeaturesNV.Buffer pNext(@NativeType("void *") long value) { VkPhysicalDeviceCooperativeMatrix2FeaturesNV.npNext(address(), value); return this; } + /** Sets the specified value to the {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV#cooperativeMatrixWorkgroupScope} field. */ + public VkPhysicalDeviceCooperativeMatrix2FeaturesNV.Buffer cooperativeMatrixWorkgroupScope(@NativeType("VkBool32") boolean value) { VkPhysicalDeviceCooperativeMatrix2FeaturesNV.ncooperativeMatrixWorkgroupScope(address(), value ? 1 : 0); return this; } + /** Sets the specified value to the {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV#cooperativeMatrixFlexibleDimensions} field. */ + public VkPhysicalDeviceCooperativeMatrix2FeaturesNV.Buffer cooperativeMatrixFlexibleDimensions(@NativeType("VkBool32") boolean value) { VkPhysicalDeviceCooperativeMatrix2FeaturesNV.ncooperativeMatrixFlexibleDimensions(address(), value ? 1 : 0); return this; } + /** Sets the specified value to the {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV#cooperativeMatrixReductions} field. */ + public VkPhysicalDeviceCooperativeMatrix2FeaturesNV.Buffer cooperativeMatrixReductions(@NativeType("VkBool32") boolean value) { VkPhysicalDeviceCooperativeMatrix2FeaturesNV.ncooperativeMatrixReductions(address(), value ? 1 : 0); return this; } + /** Sets the specified value to the {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV#cooperativeMatrixConversions} field. */ + public VkPhysicalDeviceCooperativeMatrix2FeaturesNV.Buffer cooperativeMatrixConversions(@NativeType("VkBool32") boolean value) { VkPhysicalDeviceCooperativeMatrix2FeaturesNV.ncooperativeMatrixConversions(address(), value ? 1 : 0); return this; } + /** Sets the specified value to the {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV#cooperativeMatrixPerElementOperations} field. */ + public VkPhysicalDeviceCooperativeMatrix2FeaturesNV.Buffer cooperativeMatrixPerElementOperations(@NativeType("VkBool32") boolean value) { VkPhysicalDeviceCooperativeMatrix2FeaturesNV.ncooperativeMatrixPerElementOperations(address(), value ? 1 : 0); return this; } + /** Sets the specified value to the {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV#cooperativeMatrixTensorAddressing} field. */ + public VkPhysicalDeviceCooperativeMatrix2FeaturesNV.Buffer cooperativeMatrixTensorAddressing(@NativeType("VkBool32") boolean value) { VkPhysicalDeviceCooperativeMatrix2FeaturesNV.ncooperativeMatrixTensorAddressing(address(), value ? 1 : 0); return this; } + /** Sets the specified value to the {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV#cooperativeMatrixBlockLoads} field. */ + public VkPhysicalDeviceCooperativeMatrix2FeaturesNV.Buffer cooperativeMatrixBlockLoads(@NativeType("VkBool32") boolean value) { VkPhysicalDeviceCooperativeMatrix2FeaturesNV.ncooperativeMatrixBlockLoads(address(), value ? 1 : 0); return this; } + + } + +} \ No newline at end of file diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceCooperativeMatrix2PropertiesNV.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceCooperativeMatrix2PropertiesNV.java new file mode 100644 index 0000000000..96e087e989 --- /dev/null +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceCooperativeMatrix2PropertiesNV.java @@ -0,0 +1,340 @@ +/* + * Copyright LWJGL. All rights reserved. + * License terms: https://www.lwjgl.org/license + * MACHINE GENERATED FILE, DO NOT EDIT + */ +package org.lwjgl.vulkan; + +import org.jspecify.annotations.*; + +import java.nio.*; + +import org.lwjgl.*; +import org.lwjgl.system.*; + +import static org.lwjgl.system.MemoryUtil.*; +import static org.lwjgl.system.MemoryStack.*; + +/** + * Structure describing cooperative matrix properties supported by an implementation. + * + *
      Description
      + * + *

      If the {@link VkPhysicalDeviceCooperativeMatrix2PropertiesNV} structure is included in the {@code pNext} chain of the {@link VkPhysicalDeviceProperties2} structure passed to {@link VK11#vkGetPhysicalDeviceProperties2 GetPhysicalDeviceProperties2}, it is filled in with each corresponding implementation-dependent property.

      + * + *
      Valid Usage (Implicit)
      + * + *
        + *
      • {@code sType} must be {@link NVCooperativeMatrix2#VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV}
      • + *
      + * + *

      Layout

      + * + *
      
      + * struct VkPhysicalDeviceCooperativeMatrix2PropertiesNV {
      + *     VkStructureType {@link #sType};
      + *     void * {@link #pNext};
      + *     uint32_t {@link #cooperativeMatrixWorkgroupScopeMaxWorkgroupSize};
      + *     uint32_t {@link #cooperativeMatrixFlexibleDimensionsMaxDimension};
      + *     uint32_t {@link #cooperativeMatrixWorkgroupScopeReservedSharedMemory};
      + * }
      + */ +public class VkPhysicalDeviceCooperativeMatrix2PropertiesNV extends Struct implements NativeResource { + + /** The struct size in bytes. */ + public static final int SIZEOF; + + /** The struct alignment in bytes. */ + public static final int ALIGNOF; + + /** The struct member offsets. */ + public static final int + STYPE, + PNEXT, + COOPERATIVEMATRIXWORKGROUPSCOPEMAXWORKGROUPSIZE, + COOPERATIVEMATRIXFLEXIBLEDIMENSIONSMAXDIMENSION, + COOPERATIVEMATRIXWORKGROUPSCOPERESERVEDSHAREDMEMORY; + + static { + Layout layout = __struct( + __member(4), + __member(POINTER_SIZE), + __member(4), + __member(4), + __member(4) + ); + + SIZEOF = layout.getSize(); + ALIGNOF = layout.getAlignment(); + + STYPE = layout.offsetof(0); + PNEXT = layout.offsetof(1); + COOPERATIVEMATRIXWORKGROUPSCOPEMAXWORKGROUPSIZE = layout.offsetof(2); + COOPERATIVEMATRIXFLEXIBLEDIMENSIONSMAXDIMENSION = layout.offsetof(3); + COOPERATIVEMATRIXWORKGROUPSCOPERESERVEDSHAREDMEMORY = layout.offsetof(4); + } + + protected VkPhysicalDeviceCooperativeMatrix2PropertiesNV(long address, @Nullable ByteBuffer container) { + super(address, container); + } + + @Override + protected VkPhysicalDeviceCooperativeMatrix2PropertiesNV create(long address, @Nullable ByteBuffer container) { + return new VkPhysicalDeviceCooperativeMatrix2PropertiesNV(address, container); + } + + /** + * Creates a {@code VkPhysicalDeviceCooperativeMatrix2PropertiesNV} instance at the current position of the specified {@link ByteBuffer} container. Changes to the buffer's content will be + * visible to the struct instance and vice versa. + * + *

      The created instance holds a strong reference to the container object.

      + */ + public VkPhysicalDeviceCooperativeMatrix2PropertiesNV(ByteBuffer container) { + super(memAddress(container), __checkContainer(container, SIZEOF)); + } + + @Override + public int sizeof() { return SIZEOF; } + + /** a {@code VkStructureType} value identifying this structure. */ + @NativeType("VkStructureType") + public int sType() { return nsType(address()); } + /** {@code NULL} or a pointer to a structure extending this structure. */ + @NativeType("void *") + public long pNext() { return npNext(address()); } + /** the maximum number of invocations in a workgroup when the module uses {@code OpTypeCooperativeMatrixKHR} with {@code Scope} equal to {@code Workgroup}. */ + @NativeType("uint32_t") + public int cooperativeMatrixWorkgroupScopeMaxWorkgroupSize() { return ncooperativeMatrixWorkgroupScopeMaxWorkgroupSize(address()); } + /** the maximum supported dimension for cooperative matrix types when {@code cooperativeMatrixFlexibleDimensions} is enabled. */ + @NativeType("uint32_t") + public int cooperativeMatrixFlexibleDimensionsMaxDimension() { return ncooperativeMatrixFlexibleDimensionsMaxDimension(address()); } + /** the number of bytes of shared memory reserved for the implementation when the module uses {@code OpTypeCooperativeMatrixKHR} with {@code Scope} equal to {@code Workgroup}. */ + @NativeType("uint32_t") + public int cooperativeMatrixWorkgroupScopeReservedSharedMemory() { return ncooperativeMatrixWorkgroupScopeReservedSharedMemory(address()); } + + /** Sets the specified value to the {@link #sType} field. */ + public VkPhysicalDeviceCooperativeMatrix2PropertiesNV sType(@NativeType("VkStructureType") int value) { nsType(address(), value); return this; } + /** Sets the {@link NVCooperativeMatrix2#VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV} value to the {@link #sType} field. */ + public VkPhysicalDeviceCooperativeMatrix2PropertiesNV sType$Default() { return sType(NVCooperativeMatrix2.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV); } + /** Sets the specified value to the {@link #pNext} field. */ + public VkPhysicalDeviceCooperativeMatrix2PropertiesNV pNext(@NativeType("void *") long value) { npNext(address(), value); return this; } + + /** Initializes this struct with the specified values. */ + public VkPhysicalDeviceCooperativeMatrix2PropertiesNV set( + int sType, + long pNext + ) { + sType(sType); + pNext(pNext); + + return this; + } + + /** + * Copies the specified struct data to this struct. + * + * @param src the source struct + * + * @return this struct + */ + public VkPhysicalDeviceCooperativeMatrix2PropertiesNV set(VkPhysicalDeviceCooperativeMatrix2PropertiesNV src) { + memCopy(src.address(), address(), SIZEOF); + return this; + } + + // ----------------------------------- + + /** Returns a new {@code VkPhysicalDeviceCooperativeMatrix2PropertiesNV} instance allocated with {@link MemoryUtil#memAlloc memAlloc}. The instance must be explicitly freed. */ + public static VkPhysicalDeviceCooperativeMatrix2PropertiesNV malloc() { + return new VkPhysicalDeviceCooperativeMatrix2PropertiesNV(nmemAllocChecked(SIZEOF), null); + } + + /** Returns a new {@code VkPhysicalDeviceCooperativeMatrix2PropertiesNV} instance allocated with {@link MemoryUtil#memCalloc memCalloc}. The instance must be explicitly freed. */ + public static VkPhysicalDeviceCooperativeMatrix2PropertiesNV calloc() { + return new VkPhysicalDeviceCooperativeMatrix2PropertiesNV(nmemCallocChecked(1, SIZEOF), null); + } + + /** Returns a new {@code VkPhysicalDeviceCooperativeMatrix2PropertiesNV} instance allocated with {@link BufferUtils}. */ + public static VkPhysicalDeviceCooperativeMatrix2PropertiesNV create() { + ByteBuffer container = BufferUtils.createByteBuffer(SIZEOF); + return new VkPhysicalDeviceCooperativeMatrix2PropertiesNV(memAddress(container), container); + } + + /** Returns a new {@code VkPhysicalDeviceCooperativeMatrix2PropertiesNV} instance for the specified memory address. */ + public static VkPhysicalDeviceCooperativeMatrix2PropertiesNV create(long address) { + return new VkPhysicalDeviceCooperativeMatrix2PropertiesNV(address, null); + } + + /** Like {@link #create(long) create}, but returns {@code null} if {@code address} is {@code NULL}. */ + public static @Nullable VkPhysicalDeviceCooperativeMatrix2PropertiesNV createSafe(long address) { + return address == NULL ? null : new VkPhysicalDeviceCooperativeMatrix2PropertiesNV(address, null); + } + + /** + * Returns a new {@link VkPhysicalDeviceCooperativeMatrix2PropertiesNV.Buffer} instance allocated with {@link MemoryUtil#memAlloc memAlloc}. The instance must be explicitly freed. + * + * @param capacity the buffer capacity + */ + public static VkPhysicalDeviceCooperativeMatrix2PropertiesNV.Buffer malloc(int capacity) { + return new Buffer(nmemAllocChecked(__checkMalloc(capacity, SIZEOF)), capacity); + } + + /** + * Returns a new {@link VkPhysicalDeviceCooperativeMatrix2PropertiesNV.Buffer} instance allocated with {@link MemoryUtil#memCalloc memCalloc}. The instance must be explicitly freed. + * + * @param capacity the buffer capacity + */ + public static VkPhysicalDeviceCooperativeMatrix2PropertiesNV.Buffer calloc(int capacity) { + return new Buffer(nmemCallocChecked(capacity, SIZEOF), capacity); + } + + /** + * Returns a new {@link VkPhysicalDeviceCooperativeMatrix2PropertiesNV.Buffer} instance allocated with {@link BufferUtils}. + * + * @param capacity the buffer capacity + */ + public static VkPhysicalDeviceCooperativeMatrix2PropertiesNV.Buffer create(int capacity) { + ByteBuffer container = __create(capacity, SIZEOF); + return new Buffer(memAddress(container), container, -1, 0, capacity, capacity); + } + + /** + * Create a {@link VkPhysicalDeviceCooperativeMatrix2PropertiesNV.Buffer} instance at the specified memory. + * + * @param address the memory address + * @param capacity the buffer capacity + */ + public static VkPhysicalDeviceCooperativeMatrix2PropertiesNV.Buffer create(long address, int capacity) { + return new Buffer(address, capacity); + } + + /** Like {@link #create(long, int) create}, but returns {@code null} if {@code address} is {@code NULL}. */ + public static VkPhysicalDeviceCooperativeMatrix2PropertiesNV.@Nullable Buffer createSafe(long address, int capacity) { + return address == NULL ? null : new Buffer(address, capacity); + } + + /** + * Returns a new {@code VkPhysicalDeviceCooperativeMatrix2PropertiesNV} instance allocated on the specified {@link MemoryStack}. + * + * @param stack the stack from which to allocate + */ + public static VkPhysicalDeviceCooperativeMatrix2PropertiesNV malloc(MemoryStack stack) { + return new VkPhysicalDeviceCooperativeMatrix2PropertiesNV(stack.nmalloc(ALIGNOF, SIZEOF), null); + } + + /** + * Returns a new {@code VkPhysicalDeviceCooperativeMatrix2PropertiesNV} instance allocated on the specified {@link MemoryStack} and initializes all its bits to zero. + * + * @param stack the stack from which to allocate + */ + public static VkPhysicalDeviceCooperativeMatrix2PropertiesNV calloc(MemoryStack stack) { + return new VkPhysicalDeviceCooperativeMatrix2PropertiesNV(stack.ncalloc(ALIGNOF, 1, SIZEOF), null); + } + + /** + * Returns a new {@link VkPhysicalDeviceCooperativeMatrix2PropertiesNV.Buffer} instance allocated on the specified {@link MemoryStack}. + * + * @param stack the stack from which to allocate + * @param capacity the buffer capacity + */ + public static VkPhysicalDeviceCooperativeMatrix2PropertiesNV.Buffer malloc(int capacity, MemoryStack stack) { + return new Buffer(stack.nmalloc(ALIGNOF, capacity * SIZEOF), capacity); + } + + /** + * Returns a new {@link VkPhysicalDeviceCooperativeMatrix2PropertiesNV.Buffer} instance allocated on the specified {@link MemoryStack} and initializes all its bits to zero. + * + * @param stack the stack from which to allocate + * @param capacity the buffer capacity + */ + public static VkPhysicalDeviceCooperativeMatrix2PropertiesNV.Buffer calloc(int capacity, MemoryStack stack) { + return new Buffer(stack.ncalloc(ALIGNOF, capacity, SIZEOF), capacity); + } + + // ----------------------------------- + + /** Unsafe version of {@link #sType}. */ + public static int nsType(long struct) { return memGetInt(struct + VkPhysicalDeviceCooperativeMatrix2PropertiesNV.STYPE); } + /** Unsafe version of {@link #pNext}. */ + public static long npNext(long struct) { return memGetAddress(struct + VkPhysicalDeviceCooperativeMatrix2PropertiesNV.PNEXT); } + /** Unsafe version of {@link #cooperativeMatrixWorkgroupScopeMaxWorkgroupSize}. */ + public static int ncooperativeMatrixWorkgroupScopeMaxWorkgroupSize(long struct) { return memGetInt(struct + VkPhysicalDeviceCooperativeMatrix2PropertiesNV.COOPERATIVEMATRIXWORKGROUPSCOPEMAXWORKGROUPSIZE); } + /** Unsafe version of {@link #cooperativeMatrixFlexibleDimensionsMaxDimension}. */ + public static int ncooperativeMatrixFlexibleDimensionsMaxDimension(long struct) { return memGetInt(struct + VkPhysicalDeviceCooperativeMatrix2PropertiesNV.COOPERATIVEMATRIXFLEXIBLEDIMENSIONSMAXDIMENSION); } + /** Unsafe version of {@link #cooperativeMatrixWorkgroupScopeReservedSharedMemory}. */ + public static int ncooperativeMatrixWorkgroupScopeReservedSharedMemory(long struct) { return memGetInt(struct + VkPhysicalDeviceCooperativeMatrix2PropertiesNV.COOPERATIVEMATRIXWORKGROUPSCOPERESERVEDSHAREDMEMORY); } + + /** Unsafe version of {@link #sType(int) sType}. */ + public static void nsType(long struct, int value) { memPutInt(struct + VkPhysicalDeviceCooperativeMatrix2PropertiesNV.STYPE, value); } + /** Unsafe version of {@link #pNext(long) pNext}. */ + public static void npNext(long struct, long value) { memPutAddress(struct + VkPhysicalDeviceCooperativeMatrix2PropertiesNV.PNEXT, value); } + + // ----------------------------------- + + /** An array of {@link VkPhysicalDeviceCooperativeMatrix2PropertiesNV} structs. */ + public static class Buffer extends StructBuffer implements NativeResource { + + private static final VkPhysicalDeviceCooperativeMatrix2PropertiesNV ELEMENT_FACTORY = VkPhysicalDeviceCooperativeMatrix2PropertiesNV.create(-1L); + + /** + * Creates a new {@code VkPhysicalDeviceCooperativeMatrix2PropertiesNV.Buffer} instance backed by the specified container. + * + *

      Changes to the container's content will be visible to the struct buffer instance and vice versa. The two buffers' position, limit, and mark values + * will be independent. The new buffer's position will be zero, its capacity and its limit will be the number of bytes remaining in this buffer divided + * by {@link VkPhysicalDeviceCooperativeMatrix2PropertiesNV#SIZEOF}, and its mark will be undefined.

      + * + *

      The created buffer instance holds a strong reference to the container object.

      + */ + public Buffer(ByteBuffer container) { + super(container, container.remaining() / SIZEOF); + } + + public Buffer(long address, int cap) { + super(address, null, -1, 0, cap, cap); + } + + Buffer(long address, @Nullable ByteBuffer container, int mark, int pos, int lim, int cap) { + super(address, container, mark, pos, lim, cap); + } + + @Override + protected Buffer self() { + return this; + } + + @Override + protected Buffer create(long address, @Nullable ByteBuffer container, int mark, int position, int limit, int capacity) { + return new Buffer(address, container, mark, position, limit, capacity); + } + + @Override + protected VkPhysicalDeviceCooperativeMatrix2PropertiesNV getElementFactory() { + return ELEMENT_FACTORY; + } + + /** @return the value of the {@link VkPhysicalDeviceCooperativeMatrix2PropertiesNV#sType} field. */ + @NativeType("VkStructureType") + public int sType() { return VkPhysicalDeviceCooperativeMatrix2PropertiesNV.nsType(address()); } + /** @return the value of the {@link VkPhysicalDeviceCooperativeMatrix2PropertiesNV#pNext} field. */ + @NativeType("void *") + public long pNext() { return VkPhysicalDeviceCooperativeMatrix2PropertiesNV.npNext(address()); } + /** @return the value of the {@link VkPhysicalDeviceCooperativeMatrix2PropertiesNV#cooperativeMatrixWorkgroupScopeMaxWorkgroupSize} field. */ + @NativeType("uint32_t") + public int cooperativeMatrixWorkgroupScopeMaxWorkgroupSize() { return VkPhysicalDeviceCooperativeMatrix2PropertiesNV.ncooperativeMatrixWorkgroupScopeMaxWorkgroupSize(address()); } + /** @return the value of the {@link VkPhysicalDeviceCooperativeMatrix2PropertiesNV#cooperativeMatrixFlexibleDimensionsMaxDimension} field. */ + @NativeType("uint32_t") + public int cooperativeMatrixFlexibleDimensionsMaxDimension() { return VkPhysicalDeviceCooperativeMatrix2PropertiesNV.ncooperativeMatrixFlexibleDimensionsMaxDimension(address()); } + /** @return the value of the {@link VkPhysicalDeviceCooperativeMatrix2PropertiesNV#cooperativeMatrixWorkgroupScopeReservedSharedMemory} field. */ + @NativeType("uint32_t") + public int cooperativeMatrixWorkgroupScopeReservedSharedMemory() { return VkPhysicalDeviceCooperativeMatrix2PropertiesNV.ncooperativeMatrixWorkgroupScopeReservedSharedMemory(address()); } + + /** Sets the specified value to the {@link VkPhysicalDeviceCooperativeMatrix2PropertiesNV#sType} field. */ + public VkPhysicalDeviceCooperativeMatrix2PropertiesNV.Buffer sType(@NativeType("VkStructureType") int value) { VkPhysicalDeviceCooperativeMatrix2PropertiesNV.nsType(address(), value); return this; } + /** Sets the {@link NVCooperativeMatrix2#VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV} value to the {@link VkPhysicalDeviceCooperativeMatrix2PropertiesNV#sType} field. */ + public VkPhysicalDeviceCooperativeMatrix2PropertiesNV.Buffer sType$Default() { return sType(NVCooperativeMatrix2.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV); } + /** Sets the specified value to the {@link VkPhysicalDeviceCooperativeMatrix2PropertiesNV#pNext} field. */ + public VkPhysicalDeviceCooperativeMatrix2PropertiesNV.Buffer pNext(@NativeType("void *") long value) { VkPhysicalDeviceCooperativeMatrix2PropertiesNV.npNext(address(), value); return this; } + + } + +} \ No newline at end of file diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceDepthClipEnableFeaturesEXT.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceDepthClipEnableFeaturesEXT.java index bbab8317ec..1bb6eae9f4 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceDepthClipEnableFeaturesEXT.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceDepthClipEnableFeaturesEXT.java @@ -94,7 +94,7 @@ public VkPhysicalDeviceDepthClipEnableFeaturesEXT(ByteBuffer container) { /** {@code NULL} or a pointer to a structure extending this structure. */ @NativeType("void *") public long pNext() { return npNext(address()); } - /** indicates that the implementation supports setting the depth clipping operation explicitly via the {@link VkPipelineRasterizationDepthClipStateCreateInfoEXT} pipeline state. Otherwise depth clipping is only enabled when {@link VkPipelineRasterizationStateCreateInfo}{@code ::depthClampEnable} is set to {@link VK10#VK_FALSE FALSE}. */ + /** indicates that the implementation supports setting the depth clipping operation explicitly via the {@link VkPipelineRasterizationDepthClipStateCreateInfoEXT} pipeline state. Otherwise depth clipping is only enabled when {@link VkPipelineRasterizationStateCreateInfo}{@code ::depthClampEnable} is {@link VK10#VK_FALSE FALSE}. */ @NativeType("VkBool32") public boolean depthClipEnable() { return ndepthClipEnable(address()) != 0; } diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceFeatures.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceFeatures.java index 2e70bd0884..ca9fb35552 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceFeatures.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceFeatures.java @@ -385,13 +385,13 @@ public VkPhysicalDeviceFeatures(ByteBuffer container) { /** specifies whether tessellation control and evaluation shaders are supported. If this feature is not enabled, the {@link VK10#VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT SHADER_STAGE_TESSELLATION_CONTROL_BIT}, {@link VK10#VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT SHADER_STAGE_TESSELLATION_EVALUATION_BIT}, {@link VK10#VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT}, {@link VK10#VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT}, and {@link VK10#VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO} enum values must not be used. This also specifies whether shader modules can declare the {@code Tessellation} capability. */ @NativeType("VkBool32") public boolean tessellationShader() { return ntessellationShader(address()) != 0; } - /** specifies whether Sample Shading and multisample interpolation are supported. If this feature is not enabled, the {@code sampleShadingEnable} member of the {@link VkPipelineMultisampleStateCreateInfo} structure must be set to {@link VK10#VK_FALSE FALSE} and the {@code minSampleShading} member is ignored. This also specifies whether shader modules can declare the {@code SampleRateShading} capability. */ + /** specifies whether Sample Shading and multisample interpolation are supported. If this feature is not enabled, the {@code sampleShadingEnable} member of the {@link VkPipelineMultisampleStateCreateInfo} structure must be {@link VK10#VK_FALSE FALSE} and the {@code minSampleShading} member is ignored. This also specifies whether shader modules can declare the {@code SampleRateShading} capability. */ @NativeType("VkBool32") public boolean sampleRateShading() { return nsampleRateShading(address()) != 0; } /** specifies whether blend operations which take two sources are supported. If this feature is not enabled, the {@link VK10#VK_BLEND_FACTOR_SRC1_COLOR BLEND_FACTOR_SRC1_COLOR}, {@link VK10#VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR BLEND_FACTOR_ONE_MINUS_SRC1_COLOR}, {@link VK10#VK_BLEND_FACTOR_SRC1_ALPHA BLEND_FACTOR_SRC1_ALPHA}, and {@link VK10#VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA} enum values must not be used as source or destination blending factors. See Dual-Source Blending. */ @NativeType("VkBool32") public boolean dualSrcBlend() { return ndualSrcBlend(address()) != 0; } - /** specifies whether logic operations are supported. If this feature is not enabled, the {@code logicOpEnable} member of the {@link VkPipelineColorBlendStateCreateInfo} structure must be set to {@link VK10#VK_FALSE FALSE}, and the {@code logicOp} member is ignored. */ + /** specifies whether logic operations are supported. If this feature is not enabled, the {@code logicOpEnable} member of the {@link VkPipelineColorBlendStateCreateInfo} structure must be {@link VK10#VK_FALSE FALSE}, and the {@code logicOp} member is ignored. */ @NativeType("VkBool32") public boolean logicOp() { return nlogicOp(address()) != 0; } /** specifies whether multiple draw indirect is supported. If this feature is not enabled, the {@code drawCount} parameter to the {@link VK10#vkCmdDrawIndirect CmdDrawIndirect} and {@link VK10#vkCmdDrawIndexedIndirect CmdDrawIndexedIndirect} commands must be 0 or 1. The {@code maxDrawIndirectCount} member of the {@link VkPhysicalDeviceLimits} structure must also be 1 if this feature is not supported. See {@code maxDrawIndirectCount}. */ @@ -403,7 +403,7 @@ public VkPhysicalDeviceFeatures(ByteBuffer container) { /** specifies whether depth clamping is supported. If this feature is not enabled, the {@code depthClampEnable} member of the {@link VkPipelineRasterizationStateCreateInfo} structure must be {@link VK10#VK_FALSE FALSE}. Otherwise, setting {@code depthClampEnable} to {@link VK10#VK_TRUE TRUE} will enable depth clamping. */ @NativeType("VkBool32") public boolean depthClamp() { return ndepthClamp(address()) != 0; } - /** specifies whether depth bias clamping is supported. If this feature is not enabled, the {@code depthBiasClamp} member of the {@link VkPipelineRasterizationStateCreateInfo} structure must be set to 0.0 unless the {@link VK10#VK_DYNAMIC_STATE_DEPTH_BIAS DYNAMIC_STATE_DEPTH_BIAS} dynamic state is enabled, in which case the {@code depthBiasClamp} parameter to {@link VK10#vkCmdSetDepthBias CmdSetDepthBias} must be set to 0.0. */ + /** specifies whether depth bias clamping is supported. If this feature is not enabled, the {@code depthBiasClamp} member of the {@link VkPipelineRasterizationStateCreateInfo} structure must be 0.0 unless the {@link VK10#VK_DYNAMIC_STATE_DEPTH_BIAS DYNAMIC_STATE_DEPTH_BIAS} dynamic state is enabled, in which case the {@code depthBiasClamp} parameter to {@link VK10#vkCmdSetDepthBias CmdSetDepthBias} must be 0.0. */ @NativeType("VkBool32") public boolean depthBiasClamp() { return ndepthBiasClamp(address()) != 0; } /** specifies whether point and wireframe fill modes are supported. If this feature is not enabled, the {@link VK10#VK_POLYGON_MODE_POINT POLYGON_MODE_POINT} and {@link VK10#VK_POLYGON_MODE_LINE POLYGON_MODE_LINE} enum values must not be used. */ @@ -412,7 +412,7 @@ public VkPhysicalDeviceFeatures(ByteBuffer container) { /** specifies whether depth bounds tests are supported. If this feature is not enabled, the {@code depthBoundsTestEnable} member of the {@link VkPipelineDepthStencilStateCreateInfo} structure must be {@link VK10#VK_FALSE FALSE} unless the {@link VK13#VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE} dynamic state is enabled, in which case the {@code depthBoundsTestEnable} parameter to {@link VK13#vkCmdSetDepthBoundsTestEnable CmdSetDepthBoundsTestEnable} must be {@link VK10#VK_FALSE FALSE}. When {@code depthBoundsTestEnable} is {@link VK10#VK_FALSE FALSE}, the {@code minDepthBounds} and {@code maxDepthBounds} members of the {@link VkPipelineDepthStencilStateCreateInfo} structure are ignored. */ @NativeType("VkBool32") public boolean depthBounds() { return ndepthBounds(address()) != 0; } - /** specifies whether lines with width other than 1.0 are supported. If this feature is not enabled, the {@code lineWidth} member of the {@link VkPipelineRasterizationStateCreateInfo} structure must be set to 1.0 unless the {@link VK10#VK_DYNAMIC_STATE_LINE_WIDTH DYNAMIC_STATE_LINE_WIDTH} dynamic state is enabled, in which case the {@code lineWidth} parameter to {@link VK10#vkCmdSetLineWidth CmdSetLineWidth} must be set to 1.0. When this feature is supported, the range and granularity of supported line widths are indicated by the {@code lineWidthRange} and {@code lineWidthGranularity} members of the {@link VkPhysicalDeviceLimits} structure, respectively. */ + /** specifies whether lines with width other than 1.0 are supported. If this feature is not enabled, the {@code lineWidth} member of the {@link VkPipelineRasterizationStateCreateInfo} structure must be 1.0 unless the {@link VK10#VK_DYNAMIC_STATE_LINE_WIDTH DYNAMIC_STATE_LINE_WIDTH} dynamic state is enabled, in which case the {@code lineWidth} parameter to {@link VK10#vkCmdSetLineWidth CmdSetLineWidth} must be 1.0. When this feature is supported, the range and granularity of supported line widths are indicated by the {@code lineWidthRange} and {@code lineWidthGranularity} members of the {@link VkPhysicalDeviceLimits} structure, respectively. */ @NativeType("VkBool32") public boolean wideLines() { return nwideLines(address()) != 0; } /** specifies whether points with size greater than 1.0 are supported. If this feature is not enabled, only a point size of 1.0 written by a shader is supported. The range and granularity of supported point sizes are indicated by the {@code pointSizeRange} and {@code pointSizeGranularity} members of the {@link VkPhysicalDeviceLimits} structure, respectively. */ @@ -425,11 +425,11 @@ public VkPhysicalDeviceFeatures(ByteBuffer container) { * specifies whether more than one viewport is supported. If this feature is not enabled: * *
        - *
      • The {@code viewportCount} and {@code scissorCount} members of the {@link VkPipelineViewportStateCreateInfo} structure must be set to 1.
      • - *
      • The {@code firstViewport} and {@code viewportCount} parameters to the {@link VK10#vkCmdSetViewport CmdSetViewport} command must be set to 0 and 1, respectively.
      • - *
      • The {@code firstScissor} and {@code scissorCount} parameters to the {@link VK10#vkCmdSetScissor CmdSetScissor} command must be set to 0 and 1, respectively.
      • - *
      • The {@code exclusiveScissorCount} member of the {@link VkPipelineViewportExclusiveScissorStateCreateInfoNV} structure must be set to 0 or 1.
      • - *
      • The {@code firstExclusiveScissor} and {@code exclusiveScissorCount} parameters to the {@link NVScissorExclusive#vkCmdSetExclusiveScissorNV CmdSetExclusiveScissorNV} command must be set to 0 and 1, respectively.
      • + *
      • The {@code viewportCount} and {@code scissorCount} members of the {@link VkPipelineViewportStateCreateInfo} structure must be 1.
      • + *
      • The {@code firstViewport} and {@code viewportCount} parameters to the {@link VK10#vkCmdSetViewport CmdSetViewport} command must be 0 and 1, respectively.
      • + *
      • The {@code firstScissor} and {@code scissorCount} parameters to the {@link VK10#vkCmdSetScissor CmdSetScissor} command must be 0 and 1, respectively.
      • + *
      • The {@code exclusiveScissorCount} member of the {@link VkPipelineViewportExclusiveScissorStateCreateInfoNV} structure must be 0 or 1.
      • + *
      • The {@code firstExclusiveScissor} and {@code exclusiveScissorCount} parameters to the {@link NVScissorExclusive#vkCmdSetExclusiveScissorNV CmdSetExclusiveScissorNV} command must be 0 and 1, respectively.
      • *
      */ @NativeType("VkBool32") diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceFeatures2.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceFeatures2.java index b8397b60f8..16539cda02 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceFeatures2.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceFeatures2.java @@ -157,6 +157,8 @@ public VkPhysicalDeviceFeatures2(ByteBuffer container) { public VkPhysicalDeviceFeatures2 pNext(VkPhysicalDeviceComputeShaderDerivativesFeaturesNV value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceConditionalRenderingFeaturesEXT} value to the {@code pNext} chain. */ public VkPhysicalDeviceFeatures2 pNext(VkPhysicalDeviceConditionalRenderingFeaturesEXT value) { return this.pNext(value.pNext(this.pNext()).address()); } + /** Prepends the specified {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV} value to the {@code pNext} chain. */ + public VkPhysicalDeviceFeatures2 pNext(VkPhysicalDeviceCooperativeMatrix2FeaturesNV value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceCooperativeMatrixFeaturesKHR} value to the {@code pNext} chain. */ public VkPhysicalDeviceFeatures2 pNext(VkPhysicalDeviceCooperativeMatrixFeaturesKHR value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceCooperativeMatrixFeaturesNV} value to the {@code pNext} chain. */ @@ -259,6 +261,8 @@ public VkPhysicalDeviceFeatures2(ByteBuffer container) { public VkPhysicalDeviceFeatures2 pNext(VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT} value to the {@code pNext} chain. */ public VkPhysicalDeviceFeatures2 pNext(VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT value) { return this.pNext(value.pNext(this.pNext()).address()); } + /** Prepends the specified {@link VkPhysicalDeviceHdrVividFeaturesHUAWEI} value to the {@code pNext} chain. */ + public VkPhysicalDeviceFeatures2 pNext(VkPhysicalDeviceHdrVividFeaturesHUAWEI value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceHostImageCopyFeaturesEXT} value to the {@code pNext} chain. */ public VkPhysicalDeviceFeatures2 pNext(VkPhysicalDeviceHostImageCopyFeaturesEXT value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceHostQueryResetFeatures} value to the {@code pNext} chain. */ @@ -383,6 +387,8 @@ public VkPhysicalDeviceFeatures2(ByteBuffer container) { public VkPhysicalDeviceFeatures2 pNext(VkPhysicalDevicePresentBarrierFeaturesNV value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDevicePresentIdFeaturesKHR} value to the {@code pNext} chain. */ public VkPhysicalDeviceFeatures2 pNext(VkPhysicalDevicePresentIdFeaturesKHR value) { return this.pNext(value.pNext(this.pNext()).address()); } + /** Prepends the specified {@link VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT} value to the {@code pNext} chain. */ + public VkPhysicalDeviceFeatures2 pNext(VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDevicePresentWaitFeaturesKHR} value to the {@code pNext} chain. */ public VkPhysicalDeviceFeatures2 pNext(VkPhysicalDevicePresentWaitFeaturesKHR value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT} value to the {@code pNext} chain. */ @@ -867,6 +873,8 @@ protected VkPhysicalDeviceFeatures2 getElementFactory() { public VkPhysicalDeviceFeatures2.Buffer pNext(VkPhysicalDeviceComputeShaderDerivativesFeaturesNV value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceConditionalRenderingFeaturesEXT} value to the {@code pNext} chain. */ public VkPhysicalDeviceFeatures2.Buffer pNext(VkPhysicalDeviceConditionalRenderingFeaturesEXT value) { return this.pNext(value.pNext(this.pNext()).address()); } + /** Prepends the specified {@link VkPhysicalDeviceCooperativeMatrix2FeaturesNV} value to the {@code pNext} chain. */ + public VkPhysicalDeviceFeatures2.Buffer pNext(VkPhysicalDeviceCooperativeMatrix2FeaturesNV value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceCooperativeMatrixFeaturesKHR} value to the {@code pNext} chain. */ public VkPhysicalDeviceFeatures2.Buffer pNext(VkPhysicalDeviceCooperativeMatrixFeaturesKHR value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceCooperativeMatrixFeaturesNV} value to the {@code pNext} chain. */ @@ -969,6 +977,8 @@ protected VkPhysicalDeviceFeatures2 getElementFactory() { public VkPhysicalDeviceFeatures2.Buffer pNext(VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT} value to the {@code pNext} chain. */ public VkPhysicalDeviceFeatures2.Buffer pNext(VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT value) { return this.pNext(value.pNext(this.pNext()).address()); } + /** Prepends the specified {@link VkPhysicalDeviceHdrVividFeaturesHUAWEI} value to the {@code pNext} chain. */ + public VkPhysicalDeviceFeatures2.Buffer pNext(VkPhysicalDeviceHdrVividFeaturesHUAWEI value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceHostImageCopyFeaturesEXT} value to the {@code pNext} chain. */ public VkPhysicalDeviceFeatures2.Buffer pNext(VkPhysicalDeviceHostImageCopyFeaturesEXT value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceHostQueryResetFeatures} value to the {@code pNext} chain. */ @@ -1093,6 +1103,8 @@ protected VkPhysicalDeviceFeatures2 getElementFactory() { public VkPhysicalDeviceFeatures2.Buffer pNext(VkPhysicalDevicePresentBarrierFeaturesNV value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDevicePresentIdFeaturesKHR} value to the {@code pNext} chain. */ public VkPhysicalDeviceFeatures2.Buffer pNext(VkPhysicalDevicePresentIdFeaturesKHR value) { return this.pNext(value.pNext(this.pNext()).address()); } + /** Prepends the specified {@link VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT} value to the {@code pNext} chain. */ + public VkPhysicalDeviceFeatures2.Buffer pNext(VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDevicePresentWaitFeaturesKHR} value to the {@code pNext} chain. */ public VkPhysicalDeviceFeatures2.Buffer pNext(VkPhysicalDevicePresentWaitFeaturesKHR value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT} value to the {@code pNext} chain. */ diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceHdrVividFeaturesHUAWEI.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceHdrVividFeaturesHUAWEI.java new file mode 100644 index 0000000000..06fc3a7cad --- /dev/null +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceHdrVividFeaturesHUAWEI.java @@ -0,0 +1,324 @@ +/* + * Copyright LWJGL. All rights reserved. + * License terms: https://www.lwjgl.org/license + * MACHINE GENERATED FILE, DO NOT EDIT + */ +package org.lwjgl.vulkan; + +import org.jspecify.annotations.*; + +import java.nio.*; + +import org.lwjgl.*; +import org.lwjgl.system.*; + +import static org.lwjgl.system.MemoryUtil.*; +import static org.lwjgl.system.MemoryStack.*; + +/** + * Structure describing whether HDR Vivid metadata is supported. + * + *
      Description
      + * + *

      If the {@link VkPhysicalDeviceHdrVividFeaturesHUAWEI} structure is included in the {@code pNext} chain of the {@link VkPhysicalDeviceFeatures2} structure passed to {@link VK11#vkGetPhysicalDeviceFeatures2 GetPhysicalDeviceFeatures2}, it is filled in to indicate whether each corresponding feature is supported. {@link VkPhysicalDeviceHdrVividFeaturesHUAWEI} can also be used in the {@code pNext} chain of {@link VkDeviceCreateInfo} to selectively enable these features.

      + * + *
      Valid Usage (Implicit)
      + * + *
        + *
      • {@code sType} must be {@link HUAWEIHdrVivid#VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI}
      • + *
      + * + *

      Layout

      + * + *
      
      + * struct VkPhysicalDeviceHdrVividFeaturesHUAWEI {
      + *     VkStructureType {@link #sType};
      + *     void * {@link #pNext};
      + *     VkBool32 {@link #hdrVivid};
      + * }
      + */ +public class VkPhysicalDeviceHdrVividFeaturesHUAWEI extends Struct implements NativeResource { + + /** The struct size in bytes. */ + public static final int SIZEOF; + + /** The struct alignment in bytes. */ + public static final int ALIGNOF; + + /** The struct member offsets. */ + public static final int + STYPE, + PNEXT, + HDRVIVID; + + static { + Layout layout = __struct( + __member(4), + __member(POINTER_SIZE), + __member(4) + ); + + SIZEOF = layout.getSize(); + ALIGNOF = layout.getAlignment(); + + STYPE = layout.offsetof(0); + PNEXT = layout.offsetof(1); + HDRVIVID = layout.offsetof(2); + } + + protected VkPhysicalDeviceHdrVividFeaturesHUAWEI(long address, @Nullable ByteBuffer container) { + super(address, container); + } + + @Override + protected VkPhysicalDeviceHdrVividFeaturesHUAWEI create(long address, @Nullable ByteBuffer container) { + return new VkPhysicalDeviceHdrVividFeaturesHUAWEI(address, container); + } + + /** + * Creates a {@code VkPhysicalDeviceHdrVividFeaturesHUAWEI} instance at the current position of the specified {@link ByteBuffer} container. Changes to the buffer's content will be + * visible to the struct instance and vice versa. + * + *

      The created instance holds a strong reference to the container object.

      + */ + public VkPhysicalDeviceHdrVividFeaturesHUAWEI(ByteBuffer container) { + super(memAddress(container), __checkContainer(container, SIZEOF)); + } + + @Override + public int sizeof() { return SIZEOF; } + + /** a {@code VkStructureType} value identifying this structure. */ + @NativeType("VkStructureType") + public int sType() { return nsType(address()); } + /** {@code NULL} or a pointer to a structure extending this structure. */ + @NativeType("void *") + public long pNext() { return npNext(address()); } + /** specifies whether HDR Vivid metadata is supported. */ + @NativeType("VkBool32") + public boolean hdrVivid() { return nhdrVivid(address()) != 0; } + + /** Sets the specified value to the {@link #sType} field. */ + public VkPhysicalDeviceHdrVividFeaturesHUAWEI sType(@NativeType("VkStructureType") int value) { nsType(address(), value); return this; } + /** Sets the {@link HUAWEIHdrVivid#VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI} value to the {@link #sType} field. */ + public VkPhysicalDeviceHdrVividFeaturesHUAWEI sType$Default() { return sType(HUAWEIHdrVivid.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI); } + /** Sets the specified value to the {@link #pNext} field. */ + public VkPhysicalDeviceHdrVividFeaturesHUAWEI pNext(@NativeType("void *") long value) { npNext(address(), value); return this; } + /** Sets the specified value to the {@link #hdrVivid} field. */ + public VkPhysicalDeviceHdrVividFeaturesHUAWEI hdrVivid(@NativeType("VkBool32") boolean value) { nhdrVivid(address(), value ? 1 : 0); return this; } + + /** Initializes this struct with the specified values. */ + public VkPhysicalDeviceHdrVividFeaturesHUAWEI set( + int sType, + long pNext, + boolean hdrVivid + ) { + sType(sType); + pNext(pNext); + hdrVivid(hdrVivid); + + return this; + } + + /** + * Copies the specified struct data to this struct. + * + * @param src the source struct + * + * @return this struct + */ + public VkPhysicalDeviceHdrVividFeaturesHUAWEI set(VkPhysicalDeviceHdrVividFeaturesHUAWEI src) { + memCopy(src.address(), address(), SIZEOF); + return this; + } + + // ----------------------------------- + + /** Returns a new {@code VkPhysicalDeviceHdrVividFeaturesHUAWEI} instance allocated with {@link MemoryUtil#memAlloc memAlloc}. The instance must be explicitly freed. */ + public static VkPhysicalDeviceHdrVividFeaturesHUAWEI malloc() { + return new VkPhysicalDeviceHdrVividFeaturesHUAWEI(nmemAllocChecked(SIZEOF), null); + } + + /** Returns a new {@code VkPhysicalDeviceHdrVividFeaturesHUAWEI} instance allocated with {@link MemoryUtil#memCalloc memCalloc}. The instance must be explicitly freed. */ + public static VkPhysicalDeviceHdrVividFeaturesHUAWEI calloc() { + return new VkPhysicalDeviceHdrVividFeaturesHUAWEI(nmemCallocChecked(1, SIZEOF), null); + } + + /** Returns a new {@code VkPhysicalDeviceHdrVividFeaturesHUAWEI} instance allocated with {@link BufferUtils}. */ + public static VkPhysicalDeviceHdrVividFeaturesHUAWEI create() { + ByteBuffer container = BufferUtils.createByteBuffer(SIZEOF); + return new VkPhysicalDeviceHdrVividFeaturesHUAWEI(memAddress(container), container); + } + + /** Returns a new {@code VkPhysicalDeviceHdrVividFeaturesHUAWEI} instance for the specified memory address. */ + public static VkPhysicalDeviceHdrVividFeaturesHUAWEI create(long address) { + return new VkPhysicalDeviceHdrVividFeaturesHUAWEI(address, null); + } + + /** Like {@link #create(long) create}, but returns {@code null} if {@code address} is {@code NULL}. */ + public static @Nullable VkPhysicalDeviceHdrVividFeaturesHUAWEI createSafe(long address) { + return address == NULL ? null : new VkPhysicalDeviceHdrVividFeaturesHUAWEI(address, null); + } + + /** + * Returns a new {@link VkPhysicalDeviceHdrVividFeaturesHUAWEI.Buffer} instance allocated with {@link MemoryUtil#memAlloc memAlloc}. The instance must be explicitly freed. + * + * @param capacity the buffer capacity + */ + public static VkPhysicalDeviceHdrVividFeaturesHUAWEI.Buffer malloc(int capacity) { + return new Buffer(nmemAllocChecked(__checkMalloc(capacity, SIZEOF)), capacity); + } + + /** + * Returns a new {@link VkPhysicalDeviceHdrVividFeaturesHUAWEI.Buffer} instance allocated with {@link MemoryUtil#memCalloc memCalloc}. The instance must be explicitly freed. + * + * @param capacity the buffer capacity + */ + public static VkPhysicalDeviceHdrVividFeaturesHUAWEI.Buffer calloc(int capacity) { + return new Buffer(nmemCallocChecked(capacity, SIZEOF), capacity); + } + + /** + * Returns a new {@link VkPhysicalDeviceHdrVividFeaturesHUAWEI.Buffer} instance allocated with {@link BufferUtils}. + * + * @param capacity the buffer capacity + */ + public static VkPhysicalDeviceHdrVividFeaturesHUAWEI.Buffer create(int capacity) { + ByteBuffer container = __create(capacity, SIZEOF); + return new Buffer(memAddress(container), container, -1, 0, capacity, capacity); + } + + /** + * Create a {@link VkPhysicalDeviceHdrVividFeaturesHUAWEI.Buffer} instance at the specified memory. + * + * @param address the memory address + * @param capacity the buffer capacity + */ + public static VkPhysicalDeviceHdrVividFeaturesHUAWEI.Buffer create(long address, int capacity) { + return new Buffer(address, capacity); + } + + /** Like {@link #create(long, int) create}, but returns {@code null} if {@code address} is {@code NULL}. */ + public static VkPhysicalDeviceHdrVividFeaturesHUAWEI.@Nullable Buffer createSafe(long address, int capacity) { + return address == NULL ? null : new Buffer(address, capacity); + } + + /** + * Returns a new {@code VkPhysicalDeviceHdrVividFeaturesHUAWEI} instance allocated on the specified {@link MemoryStack}. + * + * @param stack the stack from which to allocate + */ + public static VkPhysicalDeviceHdrVividFeaturesHUAWEI malloc(MemoryStack stack) { + return new VkPhysicalDeviceHdrVividFeaturesHUAWEI(stack.nmalloc(ALIGNOF, SIZEOF), null); + } + + /** + * Returns a new {@code VkPhysicalDeviceHdrVividFeaturesHUAWEI} instance allocated on the specified {@link MemoryStack} and initializes all its bits to zero. + * + * @param stack the stack from which to allocate + */ + public static VkPhysicalDeviceHdrVividFeaturesHUAWEI calloc(MemoryStack stack) { + return new VkPhysicalDeviceHdrVividFeaturesHUAWEI(stack.ncalloc(ALIGNOF, 1, SIZEOF), null); + } + + /** + * Returns a new {@link VkPhysicalDeviceHdrVividFeaturesHUAWEI.Buffer} instance allocated on the specified {@link MemoryStack}. + * + * @param stack the stack from which to allocate + * @param capacity the buffer capacity + */ + public static VkPhysicalDeviceHdrVividFeaturesHUAWEI.Buffer malloc(int capacity, MemoryStack stack) { + return new Buffer(stack.nmalloc(ALIGNOF, capacity * SIZEOF), capacity); + } + + /** + * Returns a new {@link VkPhysicalDeviceHdrVividFeaturesHUAWEI.Buffer} instance allocated on the specified {@link MemoryStack} and initializes all its bits to zero. + * + * @param stack the stack from which to allocate + * @param capacity the buffer capacity + */ + public static VkPhysicalDeviceHdrVividFeaturesHUAWEI.Buffer calloc(int capacity, MemoryStack stack) { + return new Buffer(stack.ncalloc(ALIGNOF, capacity, SIZEOF), capacity); + } + + // ----------------------------------- + + /** Unsafe version of {@link #sType}. */ + public static int nsType(long struct) { return memGetInt(struct + VkPhysicalDeviceHdrVividFeaturesHUAWEI.STYPE); } + /** Unsafe version of {@link #pNext}. */ + public static long npNext(long struct) { return memGetAddress(struct + VkPhysicalDeviceHdrVividFeaturesHUAWEI.PNEXT); } + /** Unsafe version of {@link #hdrVivid}. */ + public static int nhdrVivid(long struct) { return memGetInt(struct + VkPhysicalDeviceHdrVividFeaturesHUAWEI.HDRVIVID); } + + /** Unsafe version of {@link #sType(int) sType}. */ + public static void nsType(long struct, int value) { memPutInt(struct + VkPhysicalDeviceHdrVividFeaturesHUAWEI.STYPE, value); } + /** Unsafe version of {@link #pNext(long) pNext}. */ + public static void npNext(long struct, long value) { memPutAddress(struct + VkPhysicalDeviceHdrVividFeaturesHUAWEI.PNEXT, value); } + /** Unsafe version of {@link #hdrVivid(boolean) hdrVivid}. */ + public static void nhdrVivid(long struct, int value) { memPutInt(struct + VkPhysicalDeviceHdrVividFeaturesHUAWEI.HDRVIVID, value); } + + // ----------------------------------- + + /** An array of {@link VkPhysicalDeviceHdrVividFeaturesHUAWEI} structs. */ + public static class Buffer extends StructBuffer implements NativeResource { + + private static final VkPhysicalDeviceHdrVividFeaturesHUAWEI ELEMENT_FACTORY = VkPhysicalDeviceHdrVividFeaturesHUAWEI.create(-1L); + + /** + * Creates a new {@code VkPhysicalDeviceHdrVividFeaturesHUAWEI.Buffer} instance backed by the specified container. + * + *

      Changes to the container's content will be visible to the struct buffer instance and vice versa. The two buffers' position, limit, and mark values + * will be independent. The new buffer's position will be zero, its capacity and its limit will be the number of bytes remaining in this buffer divided + * by {@link VkPhysicalDeviceHdrVividFeaturesHUAWEI#SIZEOF}, and its mark will be undefined.

      + * + *

      The created buffer instance holds a strong reference to the container object.

      + */ + public Buffer(ByteBuffer container) { + super(container, container.remaining() / SIZEOF); + } + + public Buffer(long address, int cap) { + super(address, null, -1, 0, cap, cap); + } + + Buffer(long address, @Nullable ByteBuffer container, int mark, int pos, int lim, int cap) { + super(address, container, mark, pos, lim, cap); + } + + @Override + protected Buffer self() { + return this; + } + + @Override + protected Buffer create(long address, @Nullable ByteBuffer container, int mark, int position, int limit, int capacity) { + return new Buffer(address, container, mark, position, limit, capacity); + } + + @Override + protected VkPhysicalDeviceHdrVividFeaturesHUAWEI getElementFactory() { + return ELEMENT_FACTORY; + } + + /** @return the value of the {@link VkPhysicalDeviceHdrVividFeaturesHUAWEI#sType} field. */ + @NativeType("VkStructureType") + public int sType() { return VkPhysicalDeviceHdrVividFeaturesHUAWEI.nsType(address()); } + /** @return the value of the {@link VkPhysicalDeviceHdrVividFeaturesHUAWEI#pNext} field. */ + @NativeType("void *") + public long pNext() { return VkPhysicalDeviceHdrVividFeaturesHUAWEI.npNext(address()); } + /** @return the value of the {@link VkPhysicalDeviceHdrVividFeaturesHUAWEI#hdrVivid} field. */ + @NativeType("VkBool32") + public boolean hdrVivid() { return VkPhysicalDeviceHdrVividFeaturesHUAWEI.nhdrVivid(address()) != 0; } + + /** Sets the specified value to the {@link VkPhysicalDeviceHdrVividFeaturesHUAWEI#sType} field. */ + public VkPhysicalDeviceHdrVividFeaturesHUAWEI.Buffer sType(@NativeType("VkStructureType") int value) { VkPhysicalDeviceHdrVividFeaturesHUAWEI.nsType(address(), value); return this; } + /** Sets the {@link HUAWEIHdrVivid#VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI} value to the {@link VkPhysicalDeviceHdrVividFeaturesHUAWEI#sType} field. */ + public VkPhysicalDeviceHdrVividFeaturesHUAWEI.Buffer sType$Default() { return sType(HUAWEIHdrVivid.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI); } + /** Sets the specified value to the {@link VkPhysicalDeviceHdrVividFeaturesHUAWEI#pNext} field. */ + public VkPhysicalDeviceHdrVividFeaturesHUAWEI.Buffer pNext(@NativeType("void *") long value) { VkPhysicalDeviceHdrVividFeaturesHUAWEI.npNext(address(), value); return this; } + /** Sets the specified value to the {@link VkPhysicalDeviceHdrVividFeaturesHUAWEI#hdrVivid} field. */ + public VkPhysicalDeviceHdrVividFeaturesHUAWEI.Buffer hdrVivid(@NativeType("VkBool32") boolean value) { VkPhysicalDeviceHdrVividFeaturesHUAWEI.nhdrVivid(address(), value ? 1 : 0); return this; } + + } + +} \ No newline at end of file diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceLimits.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceLimits.java index 1ad82e2f9f..2d448cd3dd 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceLimits.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceLimits.java @@ -794,7 +794,7 @@ public VkPhysicalDeviceLimits(ByteBuffer container) { /** the maximum number of array elements of a variable decorated with the {@code SampleMask} built-in decoration. */ @NativeType("uint32_t") public int maxSampleMaskWords() { return nmaxSampleMaskWords(address()); } - /** specifies support for timestamps on all graphics and compute queues. If this limit is set to {@link VK10#VK_TRUE TRUE}, all queues that advertise the {@link VK10#VK_QUEUE_GRAPHICS_BIT QUEUE_GRAPHICS_BIT} or {@link VK10#VK_QUEUE_COMPUTE_BIT QUEUE_COMPUTE_BIT} in the {@link VkQueueFamilyProperties}{@code ::queueFlags} support {@link VkQueueFamilyProperties}{@code ::timestampValidBits} of at least 36. See Timestamp Queries. */ + /** specifies support for timestamps on all graphics and compute queues. If this limit is {@link VK10#VK_TRUE TRUE}, all queues that advertise the {@link VK10#VK_QUEUE_GRAPHICS_BIT QUEUE_GRAPHICS_BIT} or {@link VK10#VK_QUEUE_COMPUTE_BIT QUEUE_COMPUTE_BIT} in the {@link VkQueueFamilyProperties}{@code ::queueFlags} support {@link VkQueueFamilyProperties}{@code ::timestampValidBits} of at least 36. See Timestamp Queries. */ @NativeType("VkBool32") public boolean timestampComputeAndGraphics() { return ntimestampComputeAndGraphics(address()) != 0; } /** the number of nanoseconds required for a timestamp query to be incremented by 1. See Timestamp Queries. */ diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.java new file mode 100644 index 0000000000..fbe1cd6249 --- /dev/null +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.java @@ -0,0 +1,324 @@ +/* + * Copyright LWJGL. All rights reserved. + * License terms: https://www.lwjgl.org/license + * MACHINE GENERATED FILE, DO NOT EDIT + */ +package org.lwjgl.vulkan; + +import org.jspecify.annotations.*; + +import java.nio.*; + +import org.lwjgl.*; +import org.lwjgl.system.*; + +import static org.lwjgl.system.MemoryUtil.*; +import static org.lwjgl.system.MemoryStack.*; + +/** + * Structure describing support for VK_PRESENT_MODE_FIFO_LATEST_READY_EXT. + * + *
      Description
      + * + *

      If the {@link VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT} structure is included in the {@code pNext} chain of the {@link VkPhysicalDeviceFeatures2} structure passed to {@link VK11#vkGetPhysicalDeviceFeatures2 GetPhysicalDeviceFeatures2}, it is filled in to indicate whether each corresponding feature is supported. {@link VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT} can also be used in the {@code pNext} chain of {@link VkDeviceCreateInfo} to selectively enable these features.

      + * + *
      Valid Usage (Implicit)
      + * + *
        + *
      • {@code sType} must be {@link EXTPresentModeFifoLatestReady#VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT}
      • + *
      + * + *

      Layout

      + * + *
      
      + * struct VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT {
      + *     VkStructureType {@link #sType};
      + *     void * {@link #pNext};
      + *     VkBool32 {@link #presentModeFifoLatestReady};
      + * }
      + */ +public class VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT extends Struct implements NativeResource { + + /** The struct size in bytes. */ + public static final int SIZEOF; + + /** The struct alignment in bytes. */ + public static final int ALIGNOF; + + /** The struct member offsets. */ + public static final int + STYPE, + PNEXT, + PRESENTMODEFIFOLATESTREADY; + + static { + Layout layout = __struct( + __member(4), + __member(POINTER_SIZE), + __member(4) + ); + + SIZEOF = layout.getSize(); + ALIGNOF = layout.getAlignment(); + + STYPE = layout.offsetof(0); + PNEXT = layout.offsetof(1); + PRESENTMODEFIFOLATESTREADY = layout.offsetof(2); + } + + protected VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT(long address, @Nullable ByteBuffer container) { + super(address, container); + } + + @Override + protected VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT create(long address, @Nullable ByteBuffer container) { + return new VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT(address, container); + } + + /** + * Creates a {@code VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT} instance at the current position of the specified {@link ByteBuffer} container. Changes to the buffer's content will be + * visible to the struct instance and vice versa. + * + *

      The created instance holds a strong reference to the container object.

      + */ + public VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT(ByteBuffer container) { + super(memAddress(container), __checkContainer(container, SIZEOF)); + } + + @Override + public int sizeof() { return SIZEOF; } + + /** a {@code VkStructureType} value identifying this structure. */ + @NativeType("VkStructureType") + public int sType() { return nsType(address()); } + /** {@code NULL} or a pointer to a structure extending this structure. */ + @NativeType("void *") + public long pNext() { return npNext(address()); } + /** specifies whether the implementation supports the {@link EXTPresentModeFifoLatestReady#VK_PRESENT_MODE_FIFO_LATEST_READY_EXT PRESENT_MODE_FIFO_LATEST_READY_EXT} present mode. */ + @NativeType("VkBool32") + public boolean presentModeFifoLatestReady() { return npresentModeFifoLatestReady(address()) != 0; } + + /** Sets the specified value to the {@link #sType} field. */ + public VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT sType(@NativeType("VkStructureType") int value) { nsType(address(), value); return this; } + /** Sets the {@link EXTPresentModeFifoLatestReady#VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT} value to the {@link #sType} field. */ + public VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT sType$Default() { return sType(EXTPresentModeFifoLatestReady.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT); } + /** Sets the specified value to the {@link #pNext} field. */ + public VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT pNext(@NativeType("void *") long value) { npNext(address(), value); return this; } + /** Sets the specified value to the {@link #presentModeFifoLatestReady} field. */ + public VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT presentModeFifoLatestReady(@NativeType("VkBool32") boolean value) { npresentModeFifoLatestReady(address(), value ? 1 : 0); return this; } + + /** Initializes this struct with the specified values. */ + public VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT set( + int sType, + long pNext, + boolean presentModeFifoLatestReady + ) { + sType(sType); + pNext(pNext); + presentModeFifoLatestReady(presentModeFifoLatestReady); + + return this; + } + + /** + * Copies the specified struct data to this struct. + * + * @param src the source struct + * + * @return this struct + */ + public VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT set(VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT src) { + memCopy(src.address(), address(), SIZEOF); + return this; + } + + // ----------------------------------- + + /** Returns a new {@code VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT} instance allocated with {@link MemoryUtil#memAlloc memAlloc}. The instance must be explicitly freed. */ + public static VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT malloc() { + return new VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT(nmemAllocChecked(SIZEOF), null); + } + + /** Returns a new {@code VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT} instance allocated with {@link MemoryUtil#memCalloc memCalloc}. The instance must be explicitly freed. */ + public static VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT calloc() { + return new VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT(nmemCallocChecked(1, SIZEOF), null); + } + + /** Returns a new {@code VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT} instance allocated with {@link BufferUtils}. */ + public static VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT create() { + ByteBuffer container = BufferUtils.createByteBuffer(SIZEOF); + return new VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT(memAddress(container), container); + } + + /** Returns a new {@code VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT} instance for the specified memory address. */ + public static VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT create(long address) { + return new VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT(address, null); + } + + /** Like {@link #create(long) create}, but returns {@code null} if {@code address} is {@code NULL}. */ + public static @Nullable VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT createSafe(long address) { + return address == NULL ? null : new VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT(address, null); + } + + /** + * Returns a new {@link VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.Buffer} instance allocated with {@link MemoryUtil#memAlloc memAlloc}. The instance must be explicitly freed. + * + * @param capacity the buffer capacity + */ + public static VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.Buffer malloc(int capacity) { + return new Buffer(nmemAllocChecked(__checkMalloc(capacity, SIZEOF)), capacity); + } + + /** + * Returns a new {@link VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.Buffer} instance allocated with {@link MemoryUtil#memCalloc memCalloc}. The instance must be explicitly freed. + * + * @param capacity the buffer capacity + */ + public static VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.Buffer calloc(int capacity) { + return new Buffer(nmemCallocChecked(capacity, SIZEOF), capacity); + } + + /** + * Returns a new {@link VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.Buffer} instance allocated with {@link BufferUtils}. + * + * @param capacity the buffer capacity + */ + public static VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.Buffer create(int capacity) { + ByteBuffer container = __create(capacity, SIZEOF); + return new Buffer(memAddress(container), container, -1, 0, capacity, capacity); + } + + /** + * Create a {@link VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.Buffer} instance at the specified memory. + * + * @param address the memory address + * @param capacity the buffer capacity + */ + public static VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.Buffer create(long address, int capacity) { + return new Buffer(address, capacity); + } + + /** Like {@link #create(long, int) create}, but returns {@code null} if {@code address} is {@code NULL}. */ + public static VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.@Nullable Buffer createSafe(long address, int capacity) { + return address == NULL ? null : new Buffer(address, capacity); + } + + /** + * Returns a new {@code VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT} instance allocated on the specified {@link MemoryStack}. + * + * @param stack the stack from which to allocate + */ + public static VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT malloc(MemoryStack stack) { + return new VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT(stack.nmalloc(ALIGNOF, SIZEOF), null); + } + + /** + * Returns a new {@code VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT} instance allocated on the specified {@link MemoryStack} and initializes all its bits to zero. + * + * @param stack the stack from which to allocate + */ + public static VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT calloc(MemoryStack stack) { + return new VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT(stack.ncalloc(ALIGNOF, 1, SIZEOF), null); + } + + /** + * Returns a new {@link VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.Buffer} instance allocated on the specified {@link MemoryStack}. + * + * @param stack the stack from which to allocate + * @param capacity the buffer capacity + */ + public static VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.Buffer malloc(int capacity, MemoryStack stack) { + return new Buffer(stack.nmalloc(ALIGNOF, capacity * SIZEOF), capacity); + } + + /** + * Returns a new {@link VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.Buffer} instance allocated on the specified {@link MemoryStack} and initializes all its bits to zero. + * + * @param stack the stack from which to allocate + * @param capacity the buffer capacity + */ + public static VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.Buffer calloc(int capacity, MemoryStack stack) { + return new Buffer(stack.ncalloc(ALIGNOF, capacity, SIZEOF), capacity); + } + + // ----------------------------------- + + /** Unsafe version of {@link #sType}. */ + public static int nsType(long struct) { return memGetInt(struct + VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.STYPE); } + /** Unsafe version of {@link #pNext}. */ + public static long npNext(long struct) { return memGetAddress(struct + VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.PNEXT); } + /** Unsafe version of {@link #presentModeFifoLatestReady}. */ + public static int npresentModeFifoLatestReady(long struct) { return memGetInt(struct + VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.PRESENTMODEFIFOLATESTREADY); } + + /** Unsafe version of {@link #sType(int) sType}. */ + public static void nsType(long struct, int value) { memPutInt(struct + VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.STYPE, value); } + /** Unsafe version of {@link #pNext(long) pNext}. */ + public static void npNext(long struct, long value) { memPutAddress(struct + VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.PNEXT, value); } + /** Unsafe version of {@link #presentModeFifoLatestReady(boolean) presentModeFifoLatestReady}. */ + public static void npresentModeFifoLatestReady(long struct, int value) { memPutInt(struct + VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.PRESENTMODEFIFOLATESTREADY, value); } + + // ----------------------------------- + + /** An array of {@link VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT} structs. */ + public static class Buffer extends StructBuffer implements NativeResource { + + private static final VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT ELEMENT_FACTORY = VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.create(-1L); + + /** + * Creates a new {@code VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.Buffer} instance backed by the specified container. + * + *

      Changes to the container's content will be visible to the struct buffer instance and vice versa. The two buffers' position, limit, and mark values + * will be independent. The new buffer's position will be zero, its capacity and its limit will be the number of bytes remaining in this buffer divided + * by {@link VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT#SIZEOF}, and its mark will be undefined.

      + * + *

      The created buffer instance holds a strong reference to the container object.

      + */ + public Buffer(ByteBuffer container) { + super(container, container.remaining() / SIZEOF); + } + + public Buffer(long address, int cap) { + super(address, null, -1, 0, cap, cap); + } + + Buffer(long address, @Nullable ByteBuffer container, int mark, int pos, int lim, int cap) { + super(address, container, mark, pos, lim, cap); + } + + @Override + protected Buffer self() { + return this; + } + + @Override + protected Buffer create(long address, @Nullable ByteBuffer container, int mark, int position, int limit, int capacity) { + return new Buffer(address, container, mark, position, limit, capacity); + } + + @Override + protected VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT getElementFactory() { + return ELEMENT_FACTORY; + } + + /** @return the value of the {@link VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT#sType} field. */ + @NativeType("VkStructureType") + public int sType() { return VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.nsType(address()); } + /** @return the value of the {@link VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT#pNext} field. */ + @NativeType("void *") + public long pNext() { return VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.npNext(address()); } + /** @return the value of the {@link VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT#presentModeFifoLatestReady} field. */ + @NativeType("VkBool32") + public boolean presentModeFifoLatestReady() { return VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.npresentModeFifoLatestReady(address()) != 0; } + + /** Sets the specified value to the {@link VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT#sType} field. */ + public VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.Buffer sType(@NativeType("VkStructureType") int value) { VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.nsType(address(), value); return this; } + /** Sets the {@link EXTPresentModeFifoLatestReady#VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT} value to the {@link VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT#sType} field. */ + public VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.Buffer sType$Default() { return sType(EXTPresentModeFifoLatestReady.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT); } + /** Sets the specified value to the {@link VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT#pNext} field. */ + public VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.Buffer pNext(@NativeType("void *") long value) { VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.npNext(address(), value); return this; } + /** Sets the specified value to the {@link VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT#presentModeFifoLatestReady} field. */ + public VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.Buffer presentModeFifoLatestReady(@NativeType("VkBool32") boolean value) { VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.npresentModeFifoLatestReady(address(), value ? 1 : 0); return this; } + + } + +} \ No newline at end of file diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceProperties.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceProperties.java index 556c863376..d16e7a61c8 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceProperties.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceProperties.java @@ -49,9 +49,9 @@ *

      For example, in the case of a discrete GPU implementation, this should be the GPU chipset vendor. In the case of a hardware accelerator integrated into a system-on-chip (SoC), this should be the supplier of the silicon IP used to create the accelerator.

      * * - *

      If the vendor has a PCI vendor ID, the low 16 bits of {@code vendorID} must contain that PCI vendor ID, and the remaining bits must be set to zero. Otherwise, the value returned must be a valid Khronos vendor ID, obtained as described in the Vulkan Documentation and Extensions: Procedures and Conventions document in the section “{@code Registering a Vendor ID with Khronos}”. Khronos vendor IDs are allocated starting at 0x10000, to distinguish them from the PCI vendor ID namespace. Khronos vendor IDs are symbolically defined in the {@code VkVendorId} type.

      + *

      If the vendor has a PCI vendor ID, the low 16 bits of {@code vendorID} must contain that PCI vendor ID, and the remaining bits must be zero. Otherwise, the value returned must be a valid Khronos vendor ID, obtained as described in the Vulkan Documentation and Extensions: Procedures and Conventions document in the section “{@code Registering a Vendor ID with Khronos}”. Khronos vendor IDs are allocated starting at 0x10000, to distinguish them from the PCI vendor ID namespace. Khronos vendor IDs are symbolically defined in the {@code VkVendorId} type.

      * - *

      The vendor is also responsible for the value returned in {@code deviceID}. If the implementation is driven primarily by a PCI device with a PCI device ID, the low 16 bits of {@code deviceID} must contain that PCI device ID, and the remaining bits must be set to zero. Otherwise, the choice of what values to return may be dictated by operating system or platform policies - but should uniquely identify both the device version and any major configuration options (for example, core count in the case of multicore devices).

      + *

      The vendor is also responsible for the value returned in {@code deviceID}. If the implementation is driven primarily by a PCI device with a PCI device ID, the low 16 bits of {@code deviceID} must contain that PCI device ID, and the remaining bits must be zero. Otherwise, the choice of what values to return may be dictated by operating system or platform policies - but should uniquely identify both the device version and any major configuration options (for example, core count in the case of multicore devices).

      * *
      Note
      * diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceProperties2.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceProperties2.java index c7a39c3831..f52aba646b 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceProperties2.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceProperties2.java @@ -26,7 +26,7 @@ * *
        *
      • {@code sType} must be {@link VK11#VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2}
      • - *
      • Each {@code pNext} member of any structure (including this one) in the {@code pNext} chain must be either {@code NULL} or a pointer to a valid instance of {@link VkPhysicalDeviceAccelerationStructurePropertiesKHR}, {@link VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT}, {@link VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI}, {@link VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR}, {@link VkPhysicalDeviceConservativeRasterizationPropertiesEXT}, {@link VkPhysicalDeviceCooperativeMatrixPropertiesKHR}, {@link VkPhysicalDeviceCooperativeMatrixPropertiesNV}, {@link VkPhysicalDeviceCopyMemoryIndirectPropertiesNV}, {@link VkPhysicalDeviceCudaKernelLaunchPropertiesNV}, {@link VkPhysicalDeviceCustomBorderColorPropertiesEXT}, {@link VkPhysicalDeviceDepthStencilResolveProperties}, {@link VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT}, {@link VkPhysicalDeviceDescriptorBufferPropertiesEXT}, {@link VkPhysicalDeviceDescriptorIndexingProperties}, {@link VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT}, {@link VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV}, {@link VkPhysicalDeviceDiscardRectanglePropertiesEXT}, {@link VkPhysicalDeviceDisplacementMicromapPropertiesNV}, {@link VkPhysicalDeviceDriverProperties}, {@link VkPhysicalDeviceDrmPropertiesEXT}, {@link VkPhysicalDeviceExtendedDynamicState3PropertiesEXT}, {@link VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV}, {@link VkPhysicalDeviceExternalFormatResolvePropertiesANDROID}, {@link VkPhysicalDeviceExternalMemoryHostPropertiesEXT}, {@link VkPhysicalDeviceFloatControlsProperties}, {@link VkPhysicalDeviceFragmentDensityMap2PropertiesEXT}, {@link VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM}, {@link VkPhysicalDeviceFragmentDensityMapPropertiesEXT}, {@link VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR}, {@link VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV}, {@link VkPhysicalDeviceFragmentShadingRatePropertiesKHR}, {@link VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT}, {@link VkPhysicalDeviceHostImageCopyPropertiesEXT}, {@link VkPhysicalDeviceIDProperties}, {@link VkPhysicalDeviceImageAlignmentControlPropertiesMESA}, {@link VkPhysicalDeviceImageProcessing2PropertiesQCOM}, {@link VkPhysicalDeviceImageProcessingPropertiesQCOM}, {@link VkPhysicalDeviceInlineUniformBlockProperties}, {@link VkPhysicalDeviceLayeredApiPropertiesListKHR}, {@link VkPhysicalDeviceLayeredDriverPropertiesMSFT}, {@link VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT}, {@link VkPhysicalDeviceLineRasterizationPropertiesKHR}, {@link VkPhysicalDeviceMaintenance3Properties}, {@link VkPhysicalDeviceMaintenance4Properties}, {@link VkPhysicalDeviceMaintenance5PropertiesKHR}, {@link VkPhysicalDeviceMaintenance6PropertiesKHR}, {@link VkPhysicalDeviceMaintenance7PropertiesKHR}, {@link VkPhysicalDeviceMapMemoryPlacedPropertiesEXT}, {@link VkPhysicalDeviceMemoryDecompressionPropertiesNV}, {@link VkPhysicalDeviceMeshShaderPropertiesEXT}, {@link VkPhysicalDeviceMeshShaderPropertiesNV}, {@link VkPhysicalDeviceMultiDrawPropertiesEXT}, {@link VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX}, {@link VkPhysicalDeviceMultiviewProperties}, {@link VkPhysicalDeviceNestedCommandBufferPropertiesEXT}, {@link VkPhysicalDeviceOpacityMicromapPropertiesEXT}, {@link VkPhysicalDeviceOpticalFlowPropertiesNV}, {@link VkPhysicalDevicePCIBusInfoPropertiesEXT}, {@link VkPhysicalDevicePerformanceQueryPropertiesKHR}, {@link VkPhysicalDevicePipelineBinaryPropertiesKHR}, {@link VkPhysicalDevicePipelineRobustnessPropertiesEXT}, {@link VkPhysicalDevicePointClippingProperties}, {@link VkPhysicalDevicePortabilitySubsetPropertiesKHR}, {@link VkPhysicalDeviceProtectedMemoryProperties}, {@link VkPhysicalDeviceProvokingVertexPropertiesEXT}, {@link VkPhysicalDevicePushDescriptorPropertiesKHR}, {@link VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV}, {@link VkPhysicalDeviceRayTracingPipelinePropertiesKHR}, {@link VkPhysicalDeviceRayTracingPropertiesNV}, {@link VkPhysicalDeviceRenderPassStripedPropertiesARM}, {@link VkPhysicalDeviceRobustness2PropertiesEXT}, {@link VkPhysicalDeviceSampleLocationsPropertiesEXT}, {@link VkPhysicalDeviceSamplerFilterMinmaxProperties}, {@link VkPhysicalDeviceSchedulingControlsPropertiesARM}, {@link VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM}, {@link VkPhysicalDeviceShaderCoreProperties2AMD}, {@link VkPhysicalDeviceShaderCorePropertiesAMD}, {@link VkPhysicalDeviceShaderCorePropertiesARM}, {@link VkPhysicalDeviceShaderEnqueuePropertiesAMDX}, {@link VkPhysicalDeviceShaderIntegerDotProductProperties}, {@link VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT}, {@link VkPhysicalDeviceShaderObjectPropertiesEXT}, {@link VkPhysicalDeviceShaderSMBuiltinsPropertiesNV}, {@link VkPhysicalDeviceShaderTileImagePropertiesEXT}, {@link VkPhysicalDeviceShadingRateImagePropertiesNV}, {@link VkPhysicalDeviceSubgroupProperties}, {@link VkPhysicalDeviceSubgroupSizeControlProperties}, {@link VkPhysicalDeviceSubpassShadingPropertiesHUAWEI}, {@link VkPhysicalDeviceTexelBufferAlignmentProperties}, {@link VkPhysicalDeviceTimelineSemaphoreProperties}, {@link VkPhysicalDeviceTransformFeedbackPropertiesEXT}, {@link VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT}, {@link VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR}, {@link VkPhysicalDeviceVulkan11Properties}, {@link VkPhysicalDeviceVulkan12Properties}, or {@link VkPhysicalDeviceVulkan13Properties}
      • + *
      • Each {@code pNext} member of any structure (including this one) in the {@code pNext} chain must be either {@code NULL} or a pointer to a valid instance of {@link VkPhysicalDeviceAccelerationStructurePropertiesKHR}, {@link VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT}, {@link VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI}, {@link VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR}, {@link VkPhysicalDeviceConservativeRasterizationPropertiesEXT}, {@link VkPhysicalDeviceCooperativeMatrix2PropertiesNV}, {@link VkPhysicalDeviceCooperativeMatrixPropertiesKHR}, {@link VkPhysicalDeviceCooperativeMatrixPropertiesNV}, {@link VkPhysicalDeviceCopyMemoryIndirectPropertiesNV}, {@link VkPhysicalDeviceCudaKernelLaunchPropertiesNV}, {@link VkPhysicalDeviceCustomBorderColorPropertiesEXT}, {@link VkPhysicalDeviceDepthStencilResolveProperties}, {@link VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT}, {@link VkPhysicalDeviceDescriptorBufferPropertiesEXT}, {@link VkPhysicalDeviceDescriptorIndexingProperties}, {@link VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT}, {@link VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV}, {@link VkPhysicalDeviceDiscardRectanglePropertiesEXT}, {@link VkPhysicalDeviceDisplacementMicromapPropertiesNV}, {@link VkPhysicalDeviceDriverProperties}, {@link VkPhysicalDeviceDrmPropertiesEXT}, {@link VkPhysicalDeviceExtendedDynamicState3PropertiesEXT}, {@link VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV}, {@link VkPhysicalDeviceExternalFormatResolvePropertiesANDROID}, {@link VkPhysicalDeviceExternalMemoryHostPropertiesEXT}, {@link VkPhysicalDeviceFloatControlsProperties}, {@link VkPhysicalDeviceFragmentDensityMap2PropertiesEXT}, {@link VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM}, {@link VkPhysicalDeviceFragmentDensityMapPropertiesEXT}, {@link VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR}, {@link VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV}, {@link VkPhysicalDeviceFragmentShadingRatePropertiesKHR}, {@link VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT}, {@link VkPhysicalDeviceHostImageCopyPropertiesEXT}, {@link VkPhysicalDeviceIDProperties}, {@link VkPhysicalDeviceImageAlignmentControlPropertiesMESA}, {@link VkPhysicalDeviceImageProcessing2PropertiesQCOM}, {@link VkPhysicalDeviceImageProcessingPropertiesQCOM}, {@link VkPhysicalDeviceInlineUniformBlockProperties}, {@link VkPhysicalDeviceLayeredApiPropertiesListKHR}, {@link VkPhysicalDeviceLayeredDriverPropertiesMSFT}, {@link VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT}, {@link VkPhysicalDeviceLineRasterizationPropertiesKHR}, {@link VkPhysicalDeviceMaintenance3Properties}, {@link VkPhysicalDeviceMaintenance4Properties}, {@link VkPhysicalDeviceMaintenance5PropertiesKHR}, {@link VkPhysicalDeviceMaintenance6PropertiesKHR}, {@link VkPhysicalDeviceMaintenance7PropertiesKHR}, {@link VkPhysicalDeviceMapMemoryPlacedPropertiesEXT}, {@link VkPhysicalDeviceMemoryDecompressionPropertiesNV}, {@link VkPhysicalDeviceMeshShaderPropertiesEXT}, {@link VkPhysicalDeviceMeshShaderPropertiesNV}, {@link VkPhysicalDeviceMultiDrawPropertiesEXT}, {@link VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX}, {@link VkPhysicalDeviceMultiviewProperties}, {@link VkPhysicalDeviceNestedCommandBufferPropertiesEXT}, {@link VkPhysicalDeviceOpacityMicromapPropertiesEXT}, {@link VkPhysicalDeviceOpticalFlowPropertiesNV}, {@link VkPhysicalDevicePCIBusInfoPropertiesEXT}, {@link VkPhysicalDevicePerformanceQueryPropertiesKHR}, {@link VkPhysicalDevicePipelineBinaryPropertiesKHR}, {@link VkPhysicalDevicePipelineRobustnessPropertiesEXT}, {@link VkPhysicalDevicePointClippingProperties}, {@link VkPhysicalDevicePortabilitySubsetPropertiesKHR}, {@link VkPhysicalDeviceProtectedMemoryProperties}, {@link VkPhysicalDeviceProvokingVertexPropertiesEXT}, {@link VkPhysicalDevicePushDescriptorPropertiesKHR}, {@link VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV}, {@link VkPhysicalDeviceRayTracingPipelinePropertiesKHR}, {@link VkPhysicalDeviceRayTracingPropertiesNV}, {@link VkPhysicalDeviceRenderPassStripedPropertiesARM}, {@link VkPhysicalDeviceRobustness2PropertiesEXT}, {@link VkPhysicalDeviceSampleLocationsPropertiesEXT}, {@link VkPhysicalDeviceSamplerFilterMinmaxProperties}, {@link VkPhysicalDeviceSchedulingControlsPropertiesARM}, {@link VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM}, {@link VkPhysicalDeviceShaderCoreProperties2AMD}, {@link VkPhysicalDeviceShaderCorePropertiesAMD}, {@link VkPhysicalDeviceShaderCorePropertiesARM}, {@link VkPhysicalDeviceShaderEnqueuePropertiesAMDX}, {@link VkPhysicalDeviceShaderIntegerDotProductProperties}, {@link VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT}, {@link VkPhysicalDeviceShaderObjectPropertiesEXT}, {@link VkPhysicalDeviceShaderSMBuiltinsPropertiesNV}, {@link VkPhysicalDeviceShaderTileImagePropertiesEXT}, {@link VkPhysicalDeviceShadingRateImagePropertiesNV}, {@link VkPhysicalDeviceSubgroupProperties}, {@link VkPhysicalDeviceSubgroupSizeControlProperties}, {@link VkPhysicalDeviceSubpassShadingPropertiesHUAWEI}, {@link VkPhysicalDeviceTexelBufferAlignmentProperties}, {@link VkPhysicalDeviceTimelineSemaphoreProperties}, {@link VkPhysicalDeviceTransformFeedbackPropertiesEXT}, {@link VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT}, {@link VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR}, {@link VkPhysicalDeviceVulkan11Properties}, {@link VkPhysicalDeviceVulkan12Properties}, or {@link VkPhysicalDeviceVulkan13Properties}
      • *
      • The {@code sType} value of each struct in the {@code pNext} chain must be unique
      • *
      * @@ -119,6 +119,8 @@ public VkPhysicalDeviceProperties2(ByteBuffer container) { public VkPhysicalDeviceProperties2 pNext(VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceConservativeRasterizationPropertiesEXT} value to the {@code pNext} chain. */ public VkPhysicalDeviceProperties2 pNext(VkPhysicalDeviceConservativeRasterizationPropertiesEXT value) { return this.pNext(value.pNext(this.pNext()).address()); } + /** Prepends the specified {@link VkPhysicalDeviceCooperativeMatrix2PropertiesNV} value to the {@code pNext} chain. */ + public VkPhysicalDeviceProperties2 pNext(VkPhysicalDeviceCooperativeMatrix2PropertiesNV value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceCooperativeMatrixPropertiesKHR} value to the {@code pNext} chain. */ public VkPhysicalDeviceProperties2 pNext(VkPhysicalDeviceCooperativeMatrixPropertiesKHR value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceCooperativeMatrixPropertiesNV} value to the {@code pNext} chain. */ @@ -567,6 +569,8 @@ protected VkPhysicalDeviceProperties2 getElementFactory() { public VkPhysicalDeviceProperties2.Buffer pNext(VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceConservativeRasterizationPropertiesEXT} value to the {@code pNext} chain. */ public VkPhysicalDeviceProperties2.Buffer pNext(VkPhysicalDeviceConservativeRasterizationPropertiesEXT value) { return this.pNext(value.pNext(this.pNext()).address()); } + /** Prepends the specified {@link VkPhysicalDeviceCooperativeMatrix2PropertiesNV} value to the {@code pNext} chain. */ + public VkPhysicalDeviceProperties2.Buffer pNext(VkPhysicalDeviceCooperativeMatrix2PropertiesNV value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceCooperativeMatrixPropertiesKHR} value to the {@code pNext} chain. */ public VkPhysicalDeviceProperties2.Buffer pNext(VkPhysicalDeviceCooperativeMatrixPropertiesKHR value) { return this.pNext(value.pNext(this.pNext()).address()); } /** Prepends the specified {@link VkPhysicalDeviceCooperativeMatrixPropertiesNV} value to the {@code pNext} chain. */ diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceShaderEnqueueFeaturesAMDX.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceShaderEnqueueFeaturesAMDX.java index 1867471422..03297e5944 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceShaderEnqueueFeaturesAMDX.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceShaderEnqueueFeaturesAMDX.java @@ -35,6 +35,7 @@ * VkStructureType sType; * void * pNext; * VkBool32 {@link #shaderEnqueue}; + * VkBool32 {@link #shaderMeshEnqueue}; * }
      */ public class VkPhysicalDeviceShaderEnqueueFeaturesAMDX extends Struct implements NativeResource { @@ -49,12 +50,14 @@ public class VkPhysicalDeviceShaderEnqueueFeaturesAMDX extends Structexecution graphs. */ @NativeType("VkBool32") public boolean shaderEnqueue() { return nshaderEnqueue(address()) != 0; } + /** indicates whether the implementation supports mesh nodes in execution graphs. */ + @NativeType("VkBool32") + public boolean shaderMeshEnqueue() { return nshaderMeshEnqueue(address()) != 0; } /** Sets the specified value to the {@code sType} field. */ public VkPhysicalDeviceShaderEnqueueFeaturesAMDX sType(@NativeType("VkStructureType") int value) { nsType(address(), value); return this; } @@ -106,16 +113,20 @@ public VkPhysicalDeviceShaderEnqueueFeaturesAMDX(ByteBuffer container) { public VkPhysicalDeviceShaderEnqueueFeaturesAMDX pNext(@NativeType("void *") long value) { npNext(address(), value); return this; } /** Sets the specified value to the {@link #shaderEnqueue} field. */ public VkPhysicalDeviceShaderEnqueueFeaturesAMDX shaderEnqueue(@NativeType("VkBool32") boolean value) { nshaderEnqueue(address(), value ? 1 : 0); return this; } + /** Sets the specified value to the {@link #shaderMeshEnqueue} field. */ + public VkPhysicalDeviceShaderEnqueueFeaturesAMDX shaderMeshEnqueue(@NativeType("VkBool32") boolean value) { nshaderMeshEnqueue(address(), value ? 1 : 0); return this; } /** Initializes this struct with the specified values. */ public VkPhysicalDeviceShaderEnqueueFeaturesAMDX set( int sType, long pNext, - boolean shaderEnqueue + boolean shaderEnqueue, + boolean shaderMeshEnqueue ) { sType(sType); pNext(pNext); shaderEnqueue(shaderEnqueue); + shaderMeshEnqueue(shaderMeshEnqueue); return this; } @@ -249,6 +260,8 @@ public static VkPhysicalDeviceShaderEnqueueFeaturesAMDX.Buffer calloc(int capaci public static long npNext(long struct) { return memGetAddress(struct + VkPhysicalDeviceShaderEnqueueFeaturesAMDX.PNEXT); } /** Unsafe version of {@link #shaderEnqueue}. */ public static int nshaderEnqueue(long struct) { return memGetInt(struct + VkPhysicalDeviceShaderEnqueueFeaturesAMDX.SHADERENQUEUE); } + /** Unsafe version of {@link #shaderMeshEnqueue}. */ + public static int nshaderMeshEnqueue(long struct) { return memGetInt(struct + VkPhysicalDeviceShaderEnqueueFeaturesAMDX.SHADERMESHENQUEUE); } /** Unsafe version of {@link #sType(int) sType}. */ public static void nsType(long struct, int value) { memPutInt(struct + VkPhysicalDeviceShaderEnqueueFeaturesAMDX.STYPE, value); } @@ -256,6 +269,8 @@ public static VkPhysicalDeviceShaderEnqueueFeaturesAMDX.Buffer calloc(int capaci public static void npNext(long struct, long value) { memPutAddress(struct + VkPhysicalDeviceShaderEnqueueFeaturesAMDX.PNEXT, value); } /** Unsafe version of {@link #shaderEnqueue(boolean) shaderEnqueue}. */ public static void nshaderEnqueue(long struct, int value) { memPutInt(struct + VkPhysicalDeviceShaderEnqueueFeaturesAMDX.SHADERENQUEUE, value); } + /** Unsafe version of {@link #shaderMeshEnqueue(boolean) shaderMeshEnqueue}. */ + public static void nshaderMeshEnqueue(long struct, int value) { memPutInt(struct + VkPhysicalDeviceShaderEnqueueFeaturesAMDX.SHADERMESHENQUEUE, value); } // ----------------------------------- @@ -309,6 +324,9 @@ protected VkPhysicalDeviceShaderEnqueueFeaturesAMDX getElementFactory() { /** @return the value of the {@link VkPhysicalDeviceShaderEnqueueFeaturesAMDX#shaderEnqueue} field. */ @NativeType("VkBool32") public boolean shaderEnqueue() { return VkPhysicalDeviceShaderEnqueueFeaturesAMDX.nshaderEnqueue(address()) != 0; } + /** @return the value of the {@link VkPhysicalDeviceShaderEnqueueFeaturesAMDX#shaderMeshEnqueue} field. */ + @NativeType("VkBool32") + public boolean shaderMeshEnqueue() { return VkPhysicalDeviceShaderEnqueueFeaturesAMDX.nshaderMeshEnqueue(address()) != 0; } /** Sets the specified value to the {@code sType} field. */ public VkPhysicalDeviceShaderEnqueueFeaturesAMDX.Buffer sType(@NativeType("VkStructureType") int value) { VkPhysicalDeviceShaderEnqueueFeaturesAMDX.nsType(address(), value); return this; } @@ -318,6 +336,8 @@ protected VkPhysicalDeviceShaderEnqueueFeaturesAMDX getElementFactory() { public VkPhysicalDeviceShaderEnqueueFeaturesAMDX.Buffer pNext(@NativeType("void *") long value) { VkPhysicalDeviceShaderEnqueueFeaturesAMDX.npNext(address(), value); return this; } /** Sets the specified value to the {@link VkPhysicalDeviceShaderEnqueueFeaturesAMDX#shaderEnqueue} field. */ public VkPhysicalDeviceShaderEnqueueFeaturesAMDX.Buffer shaderEnqueue(@NativeType("VkBool32") boolean value) { VkPhysicalDeviceShaderEnqueueFeaturesAMDX.nshaderEnqueue(address(), value ? 1 : 0); return this; } + /** Sets the specified value to the {@link VkPhysicalDeviceShaderEnqueueFeaturesAMDX#shaderMeshEnqueue} field. */ + public VkPhysicalDeviceShaderEnqueueFeaturesAMDX.Buffer shaderMeshEnqueue(@NativeType("VkBool32") boolean value) { VkPhysicalDeviceShaderEnqueueFeaturesAMDX.nshaderMeshEnqueue(address(), value ? 1 : 0); return this; } } diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceShaderEnqueuePropertiesAMDX.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceShaderEnqueuePropertiesAMDX.java index c6b2dfcfa6..b08431a5b5 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceShaderEnqueuePropertiesAMDX.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceShaderEnqueuePropertiesAMDX.java @@ -12,6 +12,7 @@ import org.lwjgl.*; import org.lwjgl.system.*; +import static org.lwjgl.system.Checks.*; import static org.lwjgl.system.MemoryUtil.*; import static org.lwjgl.system.MemoryStack.*; @@ -39,6 +40,8 @@ * uint32_t {@link #maxExecutionGraphShaderPayloadSize}; * uint32_t {@link #maxExecutionGraphShaderPayloadCount}; * uint32_t {@link #executionGraphDispatchAddressAlignment}; + * uint32_t {@link #maxExecutionGraphWorkgroupCount}[3]; + * uint32_t {@link #maxExecutionGraphWorkgroups}; * } */ public class VkPhysicalDeviceShaderEnqueuePropertiesAMDX extends Struct implements NativeResource { @@ -57,7 +60,9 @@ public class VkPhysicalDeviceShaderEnqueuePropertiesAMDX extends Structcan be dispatched with in X, Y, and Z dimensions, respectively. */ + @NativeType("uint32_t[3]") + public IntBuffer maxExecutionGraphWorkgroupCount() { return nmaxExecutionGraphWorkgroupCount(address()); } + /** the maximum number of local workgroups that a shader can be dispatched with in X, Y, and Z dimensions, respectively. */ + @NativeType("uint32_t") + public int maxExecutionGraphWorkgroupCount(int index) { return nmaxExecutionGraphWorkgroupCount(address(), index); } + /** the total number of local workgroups that a shader can be dispatched with. */ + @NativeType("uint32_t") + public int maxExecutionGraphWorkgroups() { return nmaxExecutionGraphWorkgroups(address()); } /** Sets the specified value to the {@link #sType} field. */ public VkPhysicalDeviceShaderEnqueuePropertiesAMDX sType(@NativeType("VkStructureType") int value) { nsType(address(), value); return this; } @@ -142,6 +160,12 @@ public VkPhysicalDeviceShaderEnqueuePropertiesAMDX(ByteBuffer container) { public VkPhysicalDeviceShaderEnqueuePropertiesAMDX maxExecutionGraphShaderPayloadCount(@NativeType("uint32_t") int value) { nmaxExecutionGraphShaderPayloadCount(address(), value); return this; } /** Sets the specified value to the {@link #executionGraphDispatchAddressAlignment} field. */ public VkPhysicalDeviceShaderEnqueuePropertiesAMDX executionGraphDispatchAddressAlignment(@NativeType("uint32_t") int value) { nexecutionGraphDispatchAddressAlignment(address(), value); return this; } + /** Copies the specified {@link IntBuffer} to the {@link #maxExecutionGraphWorkgroupCount} field. */ + public VkPhysicalDeviceShaderEnqueuePropertiesAMDX maxExecutionGraphWorkgroupCount(@NativeType("uint32_t[3]") IntBuffer value) { nmaxExecutionGraphWorkgroupCount(address(), value); return this; } + /** Sets the specified value at the specified index of the {@link #maxExecutionGraphWorkgroupCount} field. */ + public VkPhysicalDeviceShaderEnqueuePropertiesAMDX maxExecutionGraphWorkgroupCount(int index, @NativeType("uint32_t") int value) { nmaxExecutionGraphWorkgroupCount(address(), index, value); return this; } + /** Sets the specified value to the {@link #maxExecutionGraphWorkgroups} field. */ + public VkPhysicalDeviceShaderEnqueuePropertiesAMDX maxExecutionGraphWorkgroups(@NativeType("uint32_t") int value) { nmaxExecutionGraphWorkgroups(address(), value); return this; } /** Initializes this struct with the specified values. */ public VkPhysicalDeviceShaderEnqueuePropertiesAMDX set( @@ -151,7 +175,9 @@ public VkPhysicalDeviceShaderEnqueuePropertiesAMDX set( int maxExecutionGraphShaderOutputNodes, int maxExecutionGraphShaderPayloadSize, int maxExecutionGraphShaderPayloadCount, - int executionGraphDispatchAddressAlignment + int executionGraphDispatchAddressAlignment, + IntBuffer maxExecutionGraphWorkgroupCount, + int maxExecutionGraphWorkgroups ) { sType(sType); pNext(pNext); @@ -160,6 +186,8 @@ public VkPhysicalDeviceShaderEnqueuePropertiesAMDX set( maxExecutionGraphShaderPayloadSize(maxExecutionGraphShaderPayloadSize); maxExecutionGraphShaderPayloadCount(maxExecutionGraphShaderPayloadCount); executionGraphDispatchAddressAlignment(executionGraphDispatchAddressAlignment); + maxExecutionGraphWorkgroupCount(maxExecutionGraphWorkgroupCount); + maxExecutionGraphWorkgroups(maxExecutionGraphWorkgroups); return this; } @@ -301,6 +329,14 @@ public static VkPhysicalDeviceShaderEnqueuePropertiesAMDX.Buffer calloc(int capa public static int nmaxExecutionGraphShaderPayloadCount(long struct) { return memGetInt(struct + VkPhysicalDeviceShaderEnqueuePropertiesAMDX.MAXEXECUTIONGRAPHSHADERPAYLOADCOUNT); } /** Unsafe version of {@link #executionGraphDispatchAddressAlignment}. */ public static int nexecutionGraphDispatchAddressAlignment(long struct) { return memGetInt(struct + VkPhysicalDeviceShaderEnqueuePropertiesAMDX.EXECUTIONGRAPHDISPATCHADDRESSALIGNMENT); } + /** Unsafe version of {@link #maxExecutionGraphWorkgroupCount}. */ + public static IntBuffer nmaxExecutionGraphWorkgroupCount(long struct) { return memIntBuffer(struct + VkPhysicalDeviceShaderEnqueuePropertiesAMDX.MAXEXECUTIONGRAPHWORKGROUPCOUNT, 3); } + /** Unsafe version of {@link #maxExecutionGraphWorkgroupCount(int) maxExecutionGraphWorkgroupCount}. */ + public static int nmaxExecutionGraphWorkgroupCount(long struct, int index) { + return memGetInt(struct + VkPhysicalDeviceShaderEnqueuePropertiesAMDX.MAXEXECUTIONGRAPHWORKGROUPCOUNT + check(index, 3) * 4); + } + /** Unsafe version of {@link #maxExecutionGraphWorkgroups}. */ + public static int nmaxExecutionGraphWorkgroups(long struct) { return memGetInt(struct + VkPhysicalDeviceShaderEnqueuePropertiesAMDX.MAXEXECUTIONGRAPHWORKGROUPS); } /** Unsafe version of {@link #sType(int) sType}. */ public static void nsType(long struct, int value) { memPutInt(struct + VkPhysicalDeviceShaderEnqueuePropertiesAMDX.STYPE, value); } @@ -316,6 +352,17 @@ public static VkPhysicalDeviceShaderEnqueuePropertiesAMDX.Buffer calloc(int capa public static void nmaxExecutionGraphShaderPayloadCount(long struct, int value) { memPutInt(struct + VkPhysicalDeviceShaderEnqueuePropertiesAMDX.MAXEXECUTIONGRAPHSHADERPAYLOADCOUNT, value); } /** Unsafe version of {@link #executionGraphDispatchAddressAlignment(int) executionGraphDispatchAddressAlignment}. */ public static void nexecutionGraphDispatchAddressAlignment(long struct, int value) { memPutInt(struct + VkPhysicalDeviceShaderEnqueuePropertiesAMDX.EXECUTIONGRAPHDISPATCHADDRESSALIGNMENT, value); } + /** Unsafe version of {@link #maxExecutionGraphWorkgroupCount(IntBuffer) maxExecutionGraphWorkgroupCount}. */ + public static void nmaxExecutionGraphWorkgroupCount(long struct, IntBuffer value) { + if (CHECKS) { checkGT(value, 3); } + memCopy(memAddress(value), struct + VkPhysicalDeviceShaderEnqueuePropertiesAMDX.MAXEXECUTIONGRAPHWORKGROUPCOUNT, value.remaining() * 4); + } + /** Unsafe version of {@link #maxExecutionGraphWorkgroupCount(int, int) maxExecutionGraphWorkgroupCount}. */ + public static void nmaxExecutionGraphWorkgroupCount(long struct, int index, int value) { + memPutInt(struct + VkPhysicalDeviceShaderEnqueuePropertiesAMDX.MAXEXECUTIONGRAPHWORKGROUPCOUNT + check(index, 3) * 4, value); + } + /** Unsafe version of {@link #maxExecutionGraphWorkgroups(int) maxExecutionGraphWorkgroups}. */ + public static void nmaxExecutionGraphWorkgroups(long struct, int value) { memPutInt(struct + VkPhysicalDeviceShaderEnqueuePropertiesAMDX.MAXEXECUTIONGRAPHWORKGROUPS, value); } // ----------------------------------- @@ -381,6 +428,15 @@ protected VkPhysicalDeviceShaderEnqueuePropertiesAMDX getElementFactory() { /** @return the value of the {@link VkPhysicalDeviceShaderEnqueuePropertiesAMDX#executionGraphDispatchAddressAlignment} field. */ @NativeType("uint32_t") public int executionGraphDispatchAddressAlignment() { return VkPhysicalDeviceShaderEnqueuePropertiesAMDX.nexecutionGraphDispatchAddressAlignment(address()); } + /** @return a {@link IntBuffer} view of the {@link VkPhysicalDeviceShaderEnqueuePropertiesAMDX#maxExecutionGraphWorkgroupCount} field. */ + @NativeType("uint32_t[3]") + public IntBuffer maxExecutionGraphWorkgroupCount() { return VkPhysicalDeviceShaderEnqueuePropertiesAMDX.nmaxExecutionGraphWorkgroupCount(address()); } + /** @return the value at the specified index of the {@link VkPhysicalDeviceShaderEnqueuePropertiesAMDX#maxExecutionGraphWorkgroupCount} field. */ + @NativeType("uint32_t") + public int maxExecutionGraphWorkgroupCount(int index) { return VkPhysicalDeviceShaderEnqueuePropertiesAMDX.nmaxExecutionGraphWorkgroupCount(address(), index); } + /** @return the value of the {@link VkPhysicalDeviceShaderEnqueuePropertiesAMDX#maxExecutionGraphWorkgroups} field. */ + @NativeType("uint32_t") + public int maxExecutionGraphWorkgroups() { return VkPhysicalDeviceShaderEnqueuePropertiesAMDX.nmaxExecutionGraphWorkgroups(address()); } /** Sets the specified value to the {@link VkPhysicalDeviceShaderEnqueuePropertiesAMDX#sType} field. */ public VkPhysicalDeviceShaderEnqueuePropertiesAMDX.Buffer sType(@NativeType("VkStructureType") int value) { VkPhysicalDeviceShaderEnqueuePropertiesAMDX.nsType(address(), value); return this; } @@ -398,6 +454,12 @@ protected VkPhysicalDeviceShaderEnqueuePropertiesAMDX getElementFactory() { public VkPhysicalDeviceShaderEnqueuePropertiesAMDX.Buffer maxExecutionGraphShaderPayloadCount(@NativeType("uint32_t") int value) { VkPhysicalDeviceShaderEnqueuePropertiesAMDX.nmaxExecutionGraphShaderPayloadCount(address(), value); return this; } /** Sets the specified value to the {@link VkPhysicalDeviceShaderEnqueuePropertiesAMDX#executionGraphDispatchAddressAlignment} field. */ public VkPhysicalDeviceShaderEnqueuePropertiesAMDX.Buffer executionGraphDispatchAddressAlignment(@NativeType("uint32_t") int value) { VkPhysicalDeviceShaderEnqueuePropertiesAMDX.nexecutionGraphDispatchAddressAlignment(address(), value); return this; } + /** Copies the specified {@link IntBuffer} to the {@link VkPhysicalDeviceShaderEnqueuePropertiesAMDX#maxExecutionGraphWorkgroupCount} field. */ + public VkPhysicalDeviceShaderEnqueuePropertiesAMDX.Buffer maxExecutionGraphWorkgroupCount(@NativeType("uint32_t[3]") IntBuffer value) { VkPhysicalDeviceShaderEnqueuePropertiesAMDX.nmaxExecutionGraphWorkgroupCount(address(), value); return this; } + /** Sets the specified value at the specified index of the {@link VkPhysicalDeviceShaderEnqueuePropertiesAMDX#maxExecutionGraphWorkgroupCount} field. */ + public VkPhysicalDeviceShaderEnqueuePropertiesAMDX.Buffer maxExecutionGraphWorkgroupCount(int index, @NativeType("uint32_t") int value) { VkPhysicalDeviceShaderEnqueuePropertiesAMDX.nmaxExecutionGraphWorkgroupCount(address(), index, value); return this; } + /** Sets the specified value to the {@link VkPhysicalDeviceShaderEnqueuePropertiesAMDX#maxExecutionGraphWorkgroups} field. */ + public VkPhysicalDeviceShaderEnqueuePropertiesAMDX.Buffer maxExecutionGraphWorkgroups(@NativeType("uint32_t") int value) { VkPhysicalDeviceShaderEnqueuePropertiesAMDX.nmaxExecutionGraphWorkgroups(address(), value); return this; } } diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceTransformFeedbackPropertiesEXT.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceTransformFeedbackPropertiesEXT.java index 6e188b840b..96b4ba116d 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceTransformFeedbackPropertiesEXT.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPhysicalDeviceTransformFeedbackPropertiesEXT.java @@ -130,7 +130,7 @@ public VkPhysicalDeviceTransformFeedbackPropertiesEXT(ByteBuffer container) { /** {@code NULL} or a pointer to a structure extending this structure. */ @NativeType("void *") public long pNext() { return npNext(address()); } - /** the maximum number of vertex streams that can be output from geometry shaders declared with the {@code GeometryStreams} capability. If the implementation does not support {@link VkPhysicalDeviceTransformFeedbackFeaturesEXT}{@code ::geometryStreams} then {@code maxTransformFeedbackStreams} must be set to 1. */ + /** the maximum number of vertex streams that can be output from geometry shaders declared with the {@code GeometryStreams} capability. If the implementation does not support {@link VkPhysicalDeviceTransformFeedbackFeaturesEXT}{@code ::geometryStreams} then {@code maxTransformFeedbackStreams} must be 1. */ @NativeType("uint32_t") public int maxTransformFeedbackStreams() { return nmaxTransformFeedbackStreams(address()); } /** the maximum number of transform feedback buffers that can be bound for capturing shader outputs from the last pre-rasterization shader stage. */ diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPipelineBinaryHandlesInfoKHR.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPipelineBinaryHandlesInfoKHR.java index 7ed4f9ba75..2723801548 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPipelineBinaryHandlesInfoKHR.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPipelineBinaryHandlesInfoKHR.java @@ -20,7 +20,7 @@ * *
      Description
      * - *

      If {@code pPipelineBinaries} is {@code NULL}, the number of binaries that would be created is returned in {@code pipelineBinaryCount}. Otherwise, {@code pipelineBinaryCount} must be set to the number of entries in the {@code pPipelineBinaries} array, and on return from {@link KHRPipelineBinary#vkCreatePipelineBinariesKHR CreatePipelineBinariesKHR} {@code pipelineBinaryCount} is overwritten with the number of handles actually written to {@code pPipelineBinaries}. If the value of {@code pipelineBinaryCount} is less than the number of binaries that would have been created, at most {@code pipelineBinaryCount} handles will be written to {@code pPipelineBinaries} and {@link VK10#VK_INCOMPLETE INCOMPLETE} will be returned instead of {@link VK10#VK_SUCCESS SUCCESS}, to indicate that {@code pPipelineBinaries} was not large enough to create all the binaries.

      + *

      If {@code pPipelineBinaries} is {@code NULL}, the number of binaries that would be created is returned in {@code pipelineBinaryCount}. Otherwise, {@code pipelineBinaryCount} must be the number of entries in the {@code pPipelineBinaries} array, and on return from {@link KHRPipelineBinary#vkCreatePipelineBinariesKHR CreatePipelineBinariesKHR} {@code pipelineBinaryCount} is overwritten with the number of handles actually written to {@code pPipelineBinaries}. If the value of {@code pipelineBinaryCount} is less than the number of binaries that would have been created, at most {@code pipelineBinaryCount} handles will be written to {@code pPipelineBinaries} and {@link VK10#VK_INCOMPLETE INCOMPLETE} will be returned instead of {@link VK10#VK_SUCCESS SUCCESS}, to indicate that {@code pPipelineBinaries} was not large enough to create all the binaries.

      * *
      Valid Usage (Implicit)
      * diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPipelineMultisampleStateCreateInfo.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPipelineMultisampleStateCreateInfo.java index 25cc50427a..ff09b09de6 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPipelineMultisampleStateCreateInfo.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPipelineMultisampleStateCreateInfo.java @@ -147,7 +147,7 @@ public VkPipelineMultisampleStateCreateInfo(ByteBuffer container) { /** can be used to enable Sample Shading. */ @NativeType("VkBool32") public boolean sampleShadingEnable() { return nsampleShadingEnable(address()) != 0; } - /** specifies a minimum fraction of sample shading if {@code sampleShadingEnable} is set to {@link VK10#VK_TRUE TRUE}. */ + /** specifies a minimum fraction of sample shading if {@code sampleShadingEnable} is {@link VK10#VK_TRUE TRUE}. */ public float minSampleShading() { return nminSampleShading(address()); } /** * @param capacity the number of elements in the returned buffer diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPipelineShaderStageCreateInfo.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPipelineShaderStageCreateInfo.java index 8733177121..d60453ead3 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPipelineShaderStageCreateInfo.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPipelineShaderStageCreateInfo.java @@ -65,6 +65,7 @@ *
    • If {@code flags} has both the {@link VK13#VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT} and {@link VK13#VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT} flags set, the local workgroup size in the X dimension of the pipeline must be a multiple of {@code maxSubgroupSize}
    • *
    • If {@code flags} has the {@link VK13#VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT} flag set and {@code flags} does not have the {@link VK13#VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT} flag set and no {@link VkPipelineShaderStageRequiredSubgroupSizeCreateInfo} structure is included in the {@code pNext} chain, the local workgroup size in the X dimension of the pipeline must be a multiple of {@code subgroupSize}
    • *
    • If {@code module} uses the {@code OpTypeCooperativeMatrixKHR} instruction with a {@code Scope} equal to {@code Subgroup}, then the local workgroup size in the X dimension of the pipeline must be a multiple of {@code subgroupSize}
    • + *
    • If {@code module} uses the {@code OpTypeCooperativeMatrixKHR} instruction with a {@code Scope} equal to {@code Workgroup}, then the local workgroup size in the X dimension of the pipeline must be a multiple of {@code subgroupSize} and the total local workgroup size must be a power of two multiple of {@code subgroupSize} and must be less than or equal to cooperativeMatrixWorkgroupScopeMaxWorkgroupSize
    • *
    • If a shader module identifier is not specified for this {@code stage}, {@code module} must be a valid {@code VkShaderModule} , or the {@code pNext} chain of the parent stext:Vk*CreateInfo structure must set {@link VkPipelineBinaryInfoKHR}{@code ::binaryCount} to a value greater than 0, if none of the following features are enabled: * *
        diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPipelineShaderStageNodeCreateInfoAMDX.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPipelineShaderStageNodeCreateInfoAMDX.java index aaf05acb43..605b28beb9 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPipelineShaderStageNodeCreateInfoAMDX.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPipelineShaderStageNodeCreateInfoAMDX.java @@ -25,6 +25,11 @@ * *

        When dispatching a node from another shader, the name is fixed at pipeline creation, but the index can be set dynamically. By associating multiple shaders with the same name but different indexes, applications can dynamically select different nodes to execute. Applications must ensure each node has a unique name and index.

        * + *
        Note
        + * + *

        Shaders with the same name must be of the same type - e.g. a compute and graphics shader, or even two compute shaders where one is coalescing and the other is not, cannot share the same name.

        + *
        + * *
        Valid Usage (Implicit)
        * *
          diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPipelineViewportDepthClampControlCreateInfoEXT.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPipelineViewportDepthClampControlCreateInfoEXT.java index d08ddacb5f..bb2f9b5677 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPipelineViewportDepthClampControlCreateInfoEXT.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPipelineViewportDepthClampControlCreateInfoEXT.java @@ -25,7 +25,7 @@ *
          Valid Usage
          * *
            - *
          • If {@code depthClampMode} is set to {@link EXTShaderObject#VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT}, and the pipeline is not created with {@link EXTDepthClampControl#VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT}, then {@code pDepthClampRange} must be a valid pointer to a valid {@link VkDepthClampRangeEXT} structure.
          • + *
          • If {@code depthClampMode} is {@link EXTShaderObject#VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT}, and the pipeline is not created with {@link EXTDepthClampControl#VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT}, then {@code pDepthClampRange} must be a valid pointer to a valid {@link VkDepthClampRangeEXT} structure
          • *
          * *
          Valid Usage (Implicit)
          @@ -113,7 +113,7 @@ public VkPipelineViewportDepthClampControlCreateInfoEXT(ByteBuffer container) { /** determines how the clamp range is determined for each viewport. */ @NativeType("VkDepthClampModeEXT") public int depthClampMode() { return ndepthClampMode(address()); } - /** sets the depth clamp range for all viewports if {@code depthClampMode} is set to {@link EXTShaderObject#VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT}. */ + /** sets the depth clamp range for all viewports if {@code depthClampMode} is {@link EXTShaderObject#VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT}. */ @NativeType("VkDepthClampRangeEXT const *") public @Nullable VkDepthClampRangeEXT pDepthClampRange() { return npDepthClampRange(address()); } diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPresentIdKHR.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPresentIdKHR.java index 94fae2f171..85b24fd8ef 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPresentIdKHR.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPresentIdKHR.java @@ -22,7 +22,7 @@ * *

          For applications to be able to reference specific presentation events queued by a call to {@code vkQueuePresentKHR}, an identifier needs to be associated with them. When the {@code presentId} feature is enabled, applications can include the {@link VkPresentIdKHR} structure in the {@code pNext} chain of the {@link VkPresentInfoKHR} structure to supply identifiers.

          * - *

          Each {@code VkSwapchainKHR} has a presentId associated with it. This value is initially set to zero when the {@code VkSwapchainKHR} is created.

          + *

          Each {@code VkSwapchainKHR} has a presentId associated with it. This value is initially zero when the {@code VkSwapchainKHR} is created.

          * *

          When a {@link VkPresentIdKHR} structure with a non-NULL {@code pPresentIds} is included in the {@code pNext} chain of a {@link VkPresentInfoKHR} structure, each {@code pSwapchains} entry has a presentId associated in the {@code pPresentIds} array at the same index as the swapchain in the {@code pSwapchains} array. If this presentId is non-zero, then the application can later use this value to refer to that image presentation. A value of zero indicates that this presentation has no associated presentId. A non-zero presentId must be greater than any non-zero presentId passed previously by the application for the same swapchain.

          * diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPresentInfoKHR.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPresentInfoKHR.java index ed531ba01e..c68527219a 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPresentInfoKHR.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkPresentInfoKHR.java @@ -25,7 +25,7 @@ * *
          Note
          * - *

          When transitioning the image to {@link KHRSharedPresentableImage#VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR IMAGE_LAYOUT_SHARED_PRESENT_KHR} or {@link KHRSwapchain#VK_IMAGE_LAYOUT_PRESENT_SRC_KHR IMAGE_LAYOUT_PRESENT_SRC_KHR}, there is no need to delay subsequent processing, or perform any visibility operations (as {@link KHRSwapchain#vkQueuePresentKHR QueuePresentKHR} performs automatic visibility operations). To achieve this, the {@code dstAccessMask} member of the {@link VkImageMemoryBarrier} should be set to 0, and the {@code dstStageMask} parameter should be set to {@link VK10#VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT}.

          + *

          When transitioning the image to {@link KHRSharedPresentableImage#VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR IMAGE_LAYOUT_SHARED_PRESENT_KHR} or {@link KHRSwapchain#VK_IMAGE_LAYOUT_PRESENT_SRC_KHR IMAGE_LAYOUT_PRESENT_SRC_KHR}, there is no need to delay subsequent processing, or perform any visibility operations (as {@link KHRSwapchain#vkQueuePresentKHR QueuePresentKHR} performs automatic visibility operations). To achieve this, the {@code dstAccessMask} member of the {@link VkImageMemoryBarrier} should be 0, and the {@code dstStageMask} parameter should be {@link VK10#VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT}.

          *
          * *
          Valid Usage
          diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkQueueFamilyCheckpointProperties2NV.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkQueueFamilyCheckpointProperties2NV.java index 95df6d5e73..9d805a1c4c 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkQueueFamilyCheckpointProperties2NV.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkQueueFamilyCheckpointProperties2NV.java @@ -25,7 +25,7 @@ *
          Valid Usage (Implicit)
          * *
            - *
          • {@code sType} must be {@link KHRSynchronization2#VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV}
          • + *
          • {@code sType} must be {@link NVDeviceDiagnosticCheckpoints#VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV}
          • *
          * *

          Layout

          @@ -100,8 +100,8 @@ public VkQueueFamilyCheckpointProperties2NV(ByteBuffer container) { /** Sets the specified value to the {@link #sType} field. */ public VkQueueFamilyCheckpointProperties2NV sType(@NativeType("VkStructureType") int value) { nsType(address(), value); return this; } - /** Sets the {@link KHRSynchronization2#VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV} value to the {@link #sType} field. */ - public VkQueueFamilyCheckpointProperties2NV sType$Default() { return sType(KHRSynchronization2.VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV); } + /** Sets the {@link NVDeviceDiagnosticCheckpoints#VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV} value to the {@link #sType} field. */ + public VkQueueFamilyCheckpointProperties2NV sType$Default() { return sType(NVDeviceDiagnosticCheckpoints.VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV); } /** Sets the specified value to the {@link #pNext} field. */ public VkQueueFamilyCheckpointProperties2NV pNext(@NativeType("void *") long value) { npNext(address(), value); return this; } @@ -306,8 +306,8 @@ protected VkQueueFamilyCheckpointProperties2NV getElementFactory() { /** Sets the specified value to the {@link VkQueueFamilyCheckpointProperties2NV#sType} field. */ public VkQueueFamilyCheckpointProperties2NV.Buffer sType(@NativeType("VkStructureType") int value) { VkQueueFamilyCheckpointProperties2NV.nsType(address(), value); return this; } - /** Sets the {@link KHRSynchronization2#VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV} value to the {@link VkQueueFamilyCheckpointProperties2NV#sType} field. */ - public VkQueueFamilyCheckpointProperties2NV.Buffer sType$Default() { return sType(KHRSynchronization2.VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV); } + /** Sets the {@link NVDeviceDiagnosticCheckpoints#VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV} value to the {@link VkQueueFamilyCheckpointProperties2NV#sType} field. */ + public VkQueueFamilyCheckpointProperties2NV.Buffer sType$Default() { return sType(NVDeviceDiagnosticCheckpoints.VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV); } /** Sets the specified value to the {@link VkQueueFamilyCheckpointProperties2NV#pNext} field. */ public VkQueueFamilyCheckpointProperties2NV.Buffer pNext(@NativeType("void *") long value) { VkQueueFamilyCheckpointProperties2NV.npNext(address(), value); return this; } diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRayTracingPipelineCreateInfoKHR.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRayTracingPipelineCreateInfoKHR.java index bd72fa28b5..509b04675c 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRayTracingPipelineCreateInfoKHR.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRayTracingPipelineCreateInfoKHR.java @@ -51,7 +51,6 @@ *
        • The shader code for the entry points identified by {@code pStages}, and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter
        • *
        • The number of resources in {@code layout} accessible to each shader stage that is used by the pipeline must be less than or equal to {@link VkPhysicalDeviceLimits}{@code ::maxPerStageResources}
        • *
        • {@code flags} must not include {@link NVDeviceGeneratedCommands#VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV}
        • - *
        • {@code flags} must not include {@link EXTDeviceGeneratedCommands#VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT}
        • *
        • If the {@code pipelineCreationCacheControl} feature is not enabled, {@code flags} must not include {@link VK13#VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT} or {@link VK13#VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT}
        • *
        • If {@code flags} does not include {@link KHRPipelineLibrary#VK_PIPELINE_CREATE_LIBRARY_BIT_KHR PIPELINE_CREATE_LIBRARY_BIT_KHR}, the {@code stage} member of at least one element of {@code pStages}, including those implicitly added by {@code pLibraryInfo}, must be {@link KHRRayTracingPipeline#VK_SHADER_STAGE_RAYGEN_BIT_KHR SHADER_STAGE_RAYGEN_BIT_KHR}
        • *
        • {@code maxPipelineRayRecursionDepth} must be less than or equal to {@link VkPhysicalDeviceRayTracingPipelinePropertiesKHR}{@code ::maxRayRecursionDepth}
        • diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRayTracingPipelineCreateInfoNV.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRayTracingPipelineCreateInfoNV.java index ce229b77f9..e615246f0b 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRayTracingPipelineCreateInfoNV.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRayTracingPipelineCreateInfoNV.java @@ -43,7 +43,6 @@ *
        • The shader code for the entry points identified by {@code pStages}, and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter
        • *
        • The number of resources in {@code layout} accessible to each shader stage that is used by the pipeline must be less than or equal to {@link VkPhysicalDeviceLimits}{@code ::maxPerStageResources}
        • *
        • {@code flags} must not include {@link NVDeviceGeneratedCommands#VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV}
        • - *
        • {@code flags} must not include {@link EXTDeviceGeneratedCommands#VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT}
        • *
        • If the {@code pipelineCreationCacheControl} feature is not enabled, {@code flags} must not include {@link VK13#VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT} or {@link VK13#VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT}
        • *
        • The {@code stage} member of at least one element of {@code pStages} must be {@link KHRRayTracingPipeline#VK_SHADER_STAGE_RAYGEN_BIT_KHR SHADER_STAGE_RAYGEN_BIT_KHR}
        • *
        • {@code flags} must not include {@link KHRPipelineLibrary#VK_PIPELINE_CREATE_LIBRARY_BIT_KHR PIPELINE_CREATE_LIBRARY_BIT_KHR}
        • @@ -61,6 +60,7 @@ *
        • The {@code stage} value in all {@code pStages} elements must be one of {@link KHRRayTracingPipeline#VK_SHADER_STAGE_RAYGEN_BIT_KHR SHADER_STAGE_RAYGEN_BIT_KHR}, {@link KHRRayTracingPipeline#VK_SHADER_STAGE_ANY_HIT_BIT_KHR SHADER_STAGE_ANY_HIT_BIT_KHR}, {@link KHRRayTracingPipeline#VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR SHADER_STAGE_CLOSEST_HIT_BIT_KHR}, {@link KHRRayTracingPipeline#VK_SHADER_STAGE_MISS_BIT_KHR SHADER_STAGE_MISS_BIT_KHR}, {@link KHRRayTracingPipeline#VK_SHADER_STAGE_INTERSECTION_BIT_KHR SHADER_STAGE_INTERSECTION_BIT_KHR}, or {@link KHRRayTracingPipeline#VK_SHADER_STAGE_CALLABLE_BIT_KHR SHADER_STAGE_CALLABLE_BIT_KHR}
        • *
        • {@code flags} must not include {@link EXTOpacityMicromap#VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT}
        • *
        • {@code flags} must not include {@link NVDisplacementMicromap#VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV}
        • + *
        • {@code flags} must not include {@link EXTDeviceGeneratedCommands#VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT}
        • *
        * *
        Valid Usage (Implicit)
        diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRenderPassBeginInfo.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRenderPassBeginInfo.java index c56ce64b7d..0568c173e3 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRenderPassBeginInfo.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRenderPassBeginInfo.java @@ -24,7 +24,7 @@ * *

        If render pass transform is enabled, then {@code renderArea} must equal the framebuffer pre-transformed dimensions. After {@code renderArea} has been transformed by {@link VkRenderPassTransformBeginInfoQCOM}{@code ::transform}, the resulting render area must be equal to the framebuffer dimensions.

        * - *

        If multiview is enabled in {@code renderPass}, and {@code multiviewPerViewRenderAreas} feature is enabled, and there is an instance of {@link VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM} included in the {@code pNext} chain with {@code perViewRenderAreaCount} not equal to 0, then the elements of {@link VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM}{@code ::pPerViewRenderAreas} override {@code renderArea} and define a render area for each view. In this case, {@code renderArea} must be set to an area at least as large as the union of all the per-view render areas.

        + *

        If multiview is enabled in {@code renderPass}, and {@code multiviewPerViewRenderAreas} feature is enabled, and there is an instance of {@link VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM} included in the {@code pNext} chain with {@code perViewRenderAreaCount} not equal to 0, then the elements of {@link VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM}{@code ::pPerViewRenderAreas} override {@code renderArea} and define a render area for each view. In this case, {@code renderArea} must be an area at least as large as the union of all the per-view render areas.

        * *

        If the {@code subpassShading} feature is enabled, then {@code renderArea} must equal the framebuffer dimensions.

        * diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRenderPassMultiviewCreateInfo.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRenderPassMultiviewCreateInfo.java index 38b8d544a9..63f44302a0 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRenderPassMultiviewCreateInfo.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRenderPassMultiviewCreateInfo.java @@ -25,7 +25,7 @@ * *

        If the view mask is zero for all subpasses, multiview is considered to be disabled and all drawing commands execute normally, without this additional broadcasting.

        * - *

        Some implementations may not support multiview in conjunction with mesh shaders, geometry shaders or tessellation shaders.

        + *

        Some implementations may not support multiview in conjunction with mesh shaders, geometry shaders or tessellation shaders.

        * *

        When multiview is enabled, the {@link VK11#VK_DEPENDENCY_VIEW_LOCAL_BIT DEPENDENCY_VIEW_LOCAL_BIT} bit in a dependency can be used to express a view-local dependency, meaning that each view in the destination subpass depends on a single view in the source subpass. Unlike pipeline barriers, a subpass dependency can potentially have a different view mask in the source subpass and the destination subpass. If the dependency is view-local, then each view (dstView) in the destination subpass depends on the view dstView + pViewOffsets[dependency] in the source subpass. If there is not such a view in the source subpass, then this dependency does not affect that view in the destination subpass. If the dependency is not view-local, then all views in the destination subpass depend on all views in the source subpass, and the view offset is ignored. A non-zero view offset is not allowed in a self-dependency.

        * diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRenderingAttachmentLocationInfoKHR.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRenderingAttachmentLocationInfoKHR.java index 76e26873b1..6af5b1db60 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRenderingAttachmentLocationInfoKHR.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRenderingAttachmentLocationInfoKHR.java @@ -43,7 +43,7 @@ *
        Valid Usage
        * *
          - *
        • If the {@code dynamicRenderingLocalRead} feature is not enabled, and {@code pColorAttachmentLocations} is not {@code NULL}, each element must be set to the value of its index within the array
        • + *
        • If the {@code dynamicRenderingLocalRead} feature is not enabled, and {@code pColorAttachmentLocations} is not {@code NULL}, each element must be the value of its index within the array
        • *
        • Elements of {@code pColorAttachmentLocations} that are not {@link VK10#VK_ATTACHMENT_UNUSED ATTACHMENT_UNUSED} must each be unique
        • *
        • {@code colorAttachmentCount} must be less than or equal to {@code maxColorAttachments}
        • *
        • Each element of {@code pColorAttachmentLocations} must be less than {@code maxColorAttachments}
        • diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRenderingFragmentDensityMapAttachmentInfoEXT.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRenderingFragmentDensityMapAttachmentInfoEXT.java index 4317d26270..b58303c501 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRenderingFragmentDensityMapAttachmentInfoEXT.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRenderingFragmentDensityMapAttachmentInfoEXT.java @@ -34,7 +34,7 @@ *
          Valid Usage (Implicit)
          * *
            - *
          • {@code sType} must be {@link KHRDynamicRendering#VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT}
          • + *
          • {@code sType} must be {@link EXTFragmentDensityMap#VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT}
          • *
          • {@code imageView} must be a valid {@code VkImageView} handle
          • *
          • {@code imageLayout} must be a valid {@code VkImageLayout} value
          • *
          @@ -118,8 +118,8 @@ public VkRenderingFragmentDensityMapAttachmentInfoEXT(ByteBuffer container) { /** Sets the specified value to the {@link #sType} field. */ public VkRenderingFragmentDensityMapAttachmentInfoEXT sType(@NativeType("VkStructureType") int value) { nsType(address(), value); return this; } - /** Sets the {@link KHRDynamicRendering#VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT} value to the {@link #sType} field. */ - public VkRenderingFragmentDensityMapAttachmentInfoEXT sType$Default() { return sType(KHRDynamicRendering.VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT); } + /** Sets the {@link EXTFragmentDensityMap#VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT} value to the {@link #sType} field. */ + public VkRenderingFragmentDensityMapAttachmentInfoEXT sType$Default() { return sType(EXTFragmentDensityMap.VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT); } /** Sets the specified value to the {@link #pNext} field. */ public VkRenderingFragmentDensityMapAttachmentInfoEXT pNext(@NativeType("void const *") long value) { npNext(address(), value); return this; } /** Sets the specified value to the {@link #imageView} field. */ @@ -341,8 +341,8 @@ protected VkRenderingFragmentDensityMapAttachmentInfoEXT getElementFactory() { /** Sets the specified value to the {@link VkRenderingFragmentDensityMapAttachmentInfoEXT#sType} field. */ public VkRenderingFragmentDensityMapAttachmentInfoEXT.Buffer sType(@NativeType("VkStructureType") int value) { VkRenderingFragmentDensityMapAttachmentInfoEXT.nsType(address(), value); return this; } - /** Sets the {@link KHRDynamicRendering#VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT} value to the {@link VkRenderingFragmentDensityMapAttachmentInfoEXT#sType} field. */ - public VkRenderingFragmentDensityMapAttachmentInfoEXT.Buffer sType$Default() { return sType(KHRDynamicRendering.VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT); } + /** Sets the {@link EXTFragmentDensityMap#VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT} value to the {@link VkRenderingFragmentDensityMapAttachmentInfoEXT#sType} field. */ + public VkRenderingFragmentDensityMapAttachmentInfoEXT.Buffer sType$Default() { return sType(EXTFragmentDensityMap.VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT); } /** Sets the specified value to the {@link VkRenderingFragmentDensityMapAttachmentInfoEXT#pNext} field. */ public VkRenderingFragmentDensityMapAttachmentInfoEXT.Buffer pNext(@NativeType("void const *") long value) { VkRenderingFragmentDensityMapAttachmentInfoEXT.npNext(address(), value); return this; } /** Sets the specified value to the {@link VkRenderingFragmentDensityMapAttachmentInfoEXT#imageView} field. */ diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRenderingFragmentShadingRateAttachmentInfoKHR.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRenderingFragmentShadingRateAttachmentInfoKHR.java index 84b8445a67..39ff88a72e 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRenderingFragmentShadingRateAttachmentInfoKHR.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRenderingFragmentShadingRateAttachmentInfoKHR.java @@ -40,7 +40,7 @@ *
          Valid Usage (Implicit)
          * *
            - *
          • {@code sType} must be {@link KHRDynamicRendering#VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR}
          • + *
          • {@code sType} must be {@link KHRFragmentShadingRate#VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR}
          • *
          • If {@code imageView} is not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, {@code imageView} must be a valid {@code VkImageView} handle
          • *
          • {@code imageLayout} must be a valid {@code VkImageLayout} value
          • *
          @@ -134,8 +134,8 @@ public VkRenderingFragmentShadingRateAttachmentInfoKHR(ByteBuffer container) { /** Sets the specified value to the {@link #sType} field. */ public VkRenderingFragmentShadingRateAttachmentInfoKHR sType(@NativeType("VkStructureType") int value) { nsType(address(), value); return this; } - /** Sets the {@link KHRDynamicRendering#VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR} value to the {@link #sType} field. */ - public VkRenderingFragmentShadingRateAttachmentInfoKHR sType$Default() { return sType(KHRDynamicRendering.VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR); } + /** Sets the {@link KHRFragmentShadingRate#VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR} value to the {@link #sType} field. */ + public VkRenderingFragmentShadingRateAttachmentInfoKHR sType$Default() { return sType(KHRFragmentShadingRate.VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR); } /** Sets the specified value to the {@link #pNext} field. */ public VkRenderingFragmentShadingRateAttachmentInfoKHR pNext(@NativeType("void const *") long value) { npNext(address(), value); return this; } /** Sets the specified value to the {@link #imageView} field. */ @@ -369,8 +369,8 @@ protected VkRenderingFragmentShadingRateAttachmentInfoKHR getElementFactory() { /** Sets the specified value to the {@link VkRenderingFragmentShadingRateAttachmentInfoKHR#sType} field. */ public VkRenderingFragmentShadingRateAttachmentInfoKHR.Buffer sType(@NativeType("VkStructureType") int value) { VkRenderingFragmentShadingRateAttachmentInfoKHR.nsType(address(), value); return this; } - /** Sets the {@link KHRDynamicRendering#VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR} value to the {@link VkRenderingFragmentShadingRateAttachmentInfoKHR#sType} field. */ - public VkRenderingFragmentShadingRateAttachmentInfoKHR.Buffer sType$Default() { return sType(KHRDynamicRendering.VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR); } + /** Sets the {@link KHRFragmentShadingRate#VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR} value to the {@link VkRenderingFragmentShadingRateAttachmentInfoKHR#sType} field. */ + public VkRenderingFragmentShadingRateAttachmentInfoKHR.Buffer sType$Default() { return sType(KHRFragmentShadingRate.VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR); } /** Sets the specified value to the {@link VkRenderingFragmentShadingRateAttachmentInfoKHR#pNext} field. */ public VkRenderingFragmentShadingRateAttachmentInfoKHR.Buffer pNext(@NativeType("void const *") long value) { VkRenderingFragmentShadingRateAttachmentInfoKHR.npNext(address(), value); return this; } /** Sets the specified value to the {@link VkRenderingFragmentShadingRateAttachmentInfoKHR#imageView} field. */ diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRenderingInfo.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRenderingInfo.java index faa1075266..f41c9a806e 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRenderingInfo.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRenderingInfo.java @@ -25,7 +25,7 @@ * *

          If there is an instance of {@link VkDeviceGroupRenderPassBeginInfo} included in the {@code pNext} chain and its {@code deviceRenderAreaCount} member is not 0, then {@code renderArea} is ignored, and the render area is defined per-device by that structure.

          * - *

          If multiview is enabled, and the {@code multiviewPerViewRenderAreas} feature is enabled, and there is an instance of {@link VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM} included in the {@code pNext} chain with {@code perViewRenderAreaCount} not equal to 0, then the elements of {@link VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM}{@code ::pPerViewRenderAreas} override {@code renderArea} and define a render area for each view. In this case, {@code renderArea} must be set to an area at least as large as the union of all the per-view render areas.

          + *

          If multiview is enabled, and the {@code multiviewPerViewRenderAreas} feature is enabled, and there is an instance of {@link VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM} included in the {@code pNext} chain with {@code perViewRenderAreaCount} not equal to 0, then the elements of {@link VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM}{@code ::pPerViewRenderAreas} override {@code renderArea} and define a render area for each view. In this case, {@code renderArea} must be an area at least as large as the union of all the per-view render areas.

          * *

          Each element of the {@code pColorAttachments} array corresponds to an output location in the shader, i.e. if the shader declares an output variable decorated with a {@code Location} value of X, then it uses the attachment provided in {@code pColorAttachments}[X]. If the {@code imageView} member of any element of {@code pColorAttachments} is {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, and {@code resolveMode} is not {@link ANDROIDExternalFormatResolve#VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID}, writes to the corresponding location by a fragment are discarded.

          * diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRenderingInputAttachmentIndexInfoKHR.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRenderingInputAttachmentIndexInfoKHR.java index a6d83dc98c..a4d79f5d3f 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRenderingInputAttachmentIndexInfoKHR.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkRenderingInputAttachmentIndexInfoKHR.java @@ -49,7 +49,7 @@ *
          Valid Usage
          * *
            - *
          • If the {@code dynamicRenderingLocalRead} feature is not enabled, and {@code pColorAttachmentInputIndices} is not {@code NULL}, each element must be set to {@link VK10#VK_ATTACHMENT_UNUSED ATTACHMENT_UNUSED}
          • + *
          • If the {@code dynamicRenderingLocalRead} feature is not enabled, and {@code pColorAttachmentInputIndices} is not {@code NULL}, each element must be {@link VK10#VK_ATTACHMENT_UNUSED ATTACHMENT_UNUSED}
          • *
          • If the {@code dynamicRenderingLocalRead} feature is not enabled, {@code pDepthInputAttachmentIndex} must be a valid pointer to a value of {@link VK10#VK_ATTACHMENT_UNUSED ATTACHMENT_UNUSED}
          • *
          • If the {@code dynamicRenderingLocalRead} feature is not enabled, {@code pStencilInputAttachmentIndex} must be a valid pointer to a value of {@link VK10#VK_ATTACHMENT_UNUSED ATTACHMENT_UNUSED}
          • *
          • Elements of {@code pColorAttachmentInputIndices} that are not {@link VK10#VK_ATTACHMENT_UNUSED ATTACHMENT_UNUSED} must each be unique
          • diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkSamplerCreateInfo.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkSamplerCreateInfo.java index 880c28b1f4..ad814f7399 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkSamplerCreateInfo.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkSamplerCreateInfo.java @@ -55,8 +55,8 @@ *
          • If {@code unnormalizedCoordinates} is {@link VK10#VK_TRUE TRUE}, {@code compareEnable} must be {@link VK10#VK_FALSE FALSE}
          • *
          • If any of {@code addressModeU}, {@code addressModeV} or {@code addressModeW} are {@link VK10#VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER}, {@code borderColor} must be a valid {@code VkBorderColor} value
          • *
          • If sampler Y′CBCR conversion is enabled, {@code addressModeU}, {@code addressModeV}, and {@code addressModeW} must be {@link VK10#VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE}, {@code anisotropyEnable} must be {@link VK10#VK_FALSE FALSE}, and {@code unnormalizedCoordinates} must be {@link VK10#VK_FALSE FALSE}
          • - *
          • If sampler Y′CBCR conversion is enabled and the {@code pNext} chain includes a {@link VkSamplerReductionModeCreateInfo} structure, then the sampler reduction mode must be set to {@link VK12#VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE}
          • - *
          • If {@code samplerFilterMinmax} is not enabled and the {@code pNext} chain includes a {@link VkSamplerReductionModeCreateInfo} structure, then the sampler reduction mode must be set to {@link VK12#VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE}
          • + *
          • If sampler Y′CBCR conversion is enabled and the {@code pNext} chain includes a {@link VkSamplerReductionModeCreateInfo} structure, then the sampler reduction mode must be {@link VK12#VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE}
          • + *
          • If {@code samplerFilterMinmax} is not enabled and the {@code pNext} chain includes a {@link VkSamplerReductionModeCreateInfo} structure, then the sampler reduction mode must be {@link VK12#VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE}
          • *
          • If {@code samplerMirrorClampToEdge} is not enabled, and if the {@link KHRSamplerMirrorClampToEdge VK_KHR_sampler_mirror_clamp_to_edge} extension is not enabled, {@code addressModeU}, {@code addressModeV} and {@code addressModeW} must not be {@link VK12#VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE}
          • *
          • If {@code compareEnable} is {@link VK10#VK_TRUE TRUE}, {@code compareOp} must be a valid {@code VkCompareOp} value
          • *
          • If either {@code magFilter} or {@code minFilter} is {@link EXTFilterCubic#VK_FILTER_CUBIC_EXT FILTER_CUBIC_EXT}, {@code anisotropyEnable} must be {@link VK10#VK_FALSE FALSE}
          • @@ -278,7 +278,7 @@ public VkSamplerCreateInfo(ByteBuffer container) { @NativeType("VkBorderColor") public int borderColor() { return nborderColor(address()); } /** - * controls whether to use unnormalized or normalized texel coordinates to address texels of the image. When set to {@link VK10#VK_TRUE TRUE}, the range of the image coordinates used to lookup the texel is in the range of zero to the image size in each dimension. When set to {@link VK10#VK_FALSE FALSE} the range of image coordinates is zero to one. + * controls whether to use unnormalized or normalized texel coordinates to address texels of the image. When {@code unnormalizedCoordinates} is {@link VK10#VK_TRUE TRUE}, the range of the image coordinates used to lookup the texel is in the range of zero to the image size in each dimension. When {@code unnormalizedCoordinates} is {@link VK10#VK_FALSE FALSE}, the range of image coordinates is zero to one. * *

            When {@code unnormalizedCoordinates} is {@link VK10#VK_TRUE TRUE}, images the sampler is used with in the shader have the following requirements:

            * diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkSamplerYcbcrConversionCreateInfo.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkSamplerYcbcrConversionCreateInfo.java index 8c6e2b906f..747abb869f 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkSamplerYcbcrConversionCreateInfo.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkSamplerYcbcrConversionCreateInfo.java @@ -24,7 +24,7 @@ * *

            Setting {@code forceExplicitReconstruction} to {@link VK10#VK_TRUE TRUE} may have a performance penalty on implementations where explicit reconstruction is not the default mode of operation.

            * - *

            If {@code format} supports {@link VK11#VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT} the {@code forceExplicitReconstruction} value behaves as if it was set to {@link VK10#VK_TRUE TRUE}.

            + *

            If {@code format} supports {@link VK11#VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT} the {@code forceExplicitReconstruction} value behaves as if it were {@link VK10#VK_TRUE TRUE}.

            *
    • * *

      If the {@code pNext} chain includes a {@link VkExternalFormatANDROID} structure with non-zero {@code externalFormat} member, the sampler Y′CBCR conversion object represents an external format conversion, and {@code format} must be {@link VK10#VK_FORMAT_UNDEFINED FORMAT_UNDEFINED}. Such conversions must only be used to sample image views with a matching external format. When creating an external format conversion, the value of {@code components} is ignored.

      diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkShaderCreateInfoEXT.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkShaderCreateInfoEXT.java index 0f9f58b91d..f38cc618ef 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkShaderCreateInfoEXT.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkShaderCreateInfoEXT.java @@ -37,7 +37,7 @@ *
    • If the {@code fragmentDensityMap} feature is not enabled, {@code flags} must not include {@link EXTShaderObject#VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT}
    • *
    • If {@code flags} includes {@link EXTShaderObject#VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT}, the {@code subgroupSizeControl} feature must be enabled
    • *
    • If {@code flags} includes {@link EXTShaderObject#VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT}, the {@code computeFullSubgroups} feature must be enabled
    • - *
    • If {@code flags} includes {@link EXTDeviceGeneratedCommands#VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT}, then the {@code deviceGeneratedCommands} feature must be enabled
    • + *
    • If {@code flags} includes {@link EXTDeviceGeneratedCommands#VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT}, then the {@link VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT}{@code ::deviceGeneratedCommands} feature must be enabled
    • *
    • If {@code flags} includes {@link EXTDeviceGeneratedCommands#VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT}, then the identified entry point must not specify {@code Xfb} execution mode
    • *
    • If {@code flags} includes {@link EXTShaderObject#VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT}, {@code stage} must be one of {@link EXTMeshShader#VK_SHADER_STAGE_MESH_BIT_EXT SHADER_STAGE_MESH_BIT_EXT}, {@link EXTMeshShader#VK_SHADER_STAGE_TASK_BIT_EXT SHADER_STAGE_TASK_BIT_EXT}, or {@link VK10#VK_SHADER_STAGE_COMPUTE_BIT SHADER_STAGE_COMPUTE_BIT}
    • *
    • If {@code stage} is not {@link VK10#VK_SHADER_STAGE_COMPUTE_BIT SHADER_STAGE_COMPUTE_BIT}, {@code flags} must not include {@link EXTShaderObject#VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT SHADER_CREATE_DISPATCH_BASE_BIT_EXT}
    • diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkSurfaceCapabilities2EXT.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkSurfaceCapabilities2EXT.java index f99b97a001..e76ecff5c0 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkSurfaceCapabilities2EXT.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkSurfaceCapabilities2EXT.java @@ -165,7 +165,7 @@ public VkSurfaceCapabilities2EXT(ByteBuffer container) { /** a bitmask of {@code VkCompositeAlphaFlagBitsKHR}, representing the alpha compositing modes supported by the presentation engine for the surface on the specified device, and at least one bit will be set. Opaque composition can be achieved in any alpha compositing mode by either using an image format that has no alpha component, or by ensuring that all pixels in the presentable images have an alpha value of 1.0. */ @NativeType("VkCompositeAlphaFlagsKHR") public int supportedCompositeAlpha() { return nsupportedCompositeAlpha(address()); } - /** a bitmask of {@code VkImageUsageFlagBits} representing the ways the application can use the presentable images of a swapchain created with {@code VkPresentModeKHR} set to {@link KHRSurface#VK_PRESENT_MODE_IMMEDIATE_KHR PRESENT_MODE_IMMEDIATE_KHR}, {@link KHRSurface#VK_PRESENT_MODE_MAILBOX_KHR PRESENT_MODE_MAILBOX_KHR}, {@link KHRSurface#VK_PRESENT_MODE_FIFO_KHR PRESENT_MODE_FIFO_KHR} or {@link KHRSurface#VK_PRESENT_MODE_FIFO_RELAXED_KHR PRESENT_MODE_FIFO_RELAXED_KHR} for the surface on the specified device. {@link VK10#VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT IMAGE_USAGE_COLOR_ATTACHMENT_BIT} must be included in the set. Implementations may support additional usages. */ + /** a bitmask of {@code VkImageUsageFlagBits} representing the ways the application can use the presentable images of a swapchain created with {@code VkPresentModeKHR} set to {@link EXTPresentModeFifoLatestReady#VK_PRESENT_MODE_FIFO_LATEST_READY_EXT PRESENT_MODE_FIFO_LATEST_READY_EXT}, {@link KHRSurface#VK_PRESENT_MODE_IMMEDIATE_KHR PRESENT_MODE_IMMEDIATE_KHR}, {@link KHRSurface#VK_PRESENT_MODE_MAILBOX_KHR PRESENT_MODE_MAILBOX_KHR}, {@link KHRSurface#VK_PRESENT_MODE_FIFO_KHR PRESENT_MODE_FIFO_KHR} or {@link KHRSurface#VK_PRESENT_MODE_FIFO_RELAXED_KHR PRESENT_MODE_FIFO_RELAXED_KHR} for the surface on the specified device. {@link VK10#VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT IMAGE_USAGE_COLOR_ATTACHMENT_BIT} must be included in the set. Implementations may support additional usages. */ @NativeType("VkImageUsageFlags") public int supportedUsageFlags() { return nsupportedUsageFlags(address()); } /** a bitmask of {@code VkSurfaceCounterFlagBitsEXT} indicating the supported surface counter types. */ diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkSurfaceCapabilitiesKHR.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkSurfaceCapabilitiesKHR.java index 5d19ab6cb7..f6c7e76808 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkSurfaceCapabilitiesKHR.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkSurfaceCapabilitiesKHR.java @@ -146,7 +146,7 @@ public VkSurfaceCapabilitiesKHR(ByteBuffer container) { /** a bitmask of {@code VkCompositeAlphaFlagBitsKHR}, representing the alpha compositing modes supported by the presentation engine for the surface on the specified device, and at least one bit will be set. Opaque composition can be achieved in any alpha compositing mode by either using an image format that has no alpha component, or by ensuring that all pixels in the presentable images have an alpha value of 1.0. */ @NativeType("VkCompositeAlphaFlagsKHR") public int supportedCompositeAlpha() { return nsupportedCompositeAlpha(address()); } - /** a bitmask of {@code VkImageUsageFlagBits} representing the ways the application can use the presentable images of a swapchain created with {@code VkPresentModeKHR} set to {@link KHRSurface#VK_PRESENT_MODE_IMMEDIATE_KHR PRESENT_MODE_IMMEDIATE_KHR}, {@link KHRSurface#VK_PRESENT_MODE_MAILBOX_KHR PRESENT_MODE_MAILBOX_KHR}, {@link KHRSurface#VK_PRESENT_MODE_FIFO_KHR PRESENT_MODE_FIFO_KHR} or {@link KHRSurface#VK_PRESENT_MODE_FIFO_RELAXED_KHR PRESENT_MODE_FIFO_RELAXED_KHR} for the surface on the specified device. {@link VK10#VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT IMAGE_USAGE_COLOR_ATTACHMENT_BIT} must be included in the set. Implementations may support additional usages. */ + /** a bitmask of {@code VkImageUsageFlagBits} representing the ways the application can use the presentable images of a swapchain created with {@code VkPresentModeKHR} set to {@link EXTPresentModeFifoLatestReady#VK_PRESENT_MODE_FIFO_LATEST_READY_EXT PRESENT_MODE_FIFO_LATEST_READY_EXT}, {@link KHRSurface#VK_PRESENT_MODE_IMMEDIATE_KHR PRESENT_MODE_IMMEDIATE_KHR}, {@link KHRSurface#VK_PRESENT_MODE_MAILBOX_KHR PRESENT_MODE_MAILBOX_KHR}, {@link KHRSurface#VK_PRESENT_MODE_FIFO_KHR PRESENT_MODE_FIFO_KHR} or {@link KHRSurface#VK_PRESENT_MODE_FIFO_RELAXED_KHR PRESENT_MODE_FIFO_RELAXED_KHR} for the surface on the specified device. {@link VK10#VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT IMAGE_USAGE_COLOR_ATTACHMENT_BIT} must be included in the set. Implementations may support additional usages. */ @NativeType("VkImageUsageFlags") public int supportedUsageFlags() { return nsupportedUsageFlags(address()); } diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkSwapchainCreateInfoKHR.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkSwapchainCreateInfoKHR.java index 0cbdeda8a8..33e1277100 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkSwapchainCreateInfoKHR.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkSwapchainCreateInfoKHR.java @@ -23,9 +23,8 @@ *
        *
      • {@code surface} must be a surface that is supported by the device as determined using {@link KHRSurface#vkGetPhysicalDeviceSurfaceSupportKHR GetPhysicalDeviceSurfaceSupportKHR}
      • *
      • {@code minImageCount} must be less than or equal to the value returned in the {@code maxImageCount} member of the {@link VkSurfaceCapabilitiesKHR} structure returned by {@code vkGetPhysicalDeviceSurfaceCapabilitiesKHR} for the surface if the returned {@code maxImageCount} is not zero
      • - *
      • *
      • If the {@code swapchainMaintenance1} feature is not enabled, then the {@code pNext} chain must not include a {@link VkSwapchainPresentModesCreateInfoEXT} structure
      • - *
      • If the {@code swapchainMaintenance1} feature is not enabled, then the {@code pNext} chain must not include a {@link VkSwapchainPresentScalingCreateInfoEXT} structure If {@code presentMode} is not {@link KHRSharedPresentableImage#VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR} nor {@link KHRSharedPresentableImage#VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR}, then {@code minImageCount} must be greater than or equal to the value returned in the {@code minImageCount} member of the {@link VkSurfaceCapabilitiesKHR} structure returned by {@link KHRSurface#vkGetPhysicalDeviceSurfaceCapabilitiesKHR GetPhysicalDeviceSurfaceCapabilitiesKHR} for the surface
      • + *
      • If {@code presentMode} is not {@link KHRSharedPresentableImage#VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR} nor {@link KHRSharedPresentableImage#VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR}, then {@code minImageCount} must be greater than or equal to the value returned in the {@code minImageCount} member of the {@link VkSurfaceCapabilitiesKHR} structure returned by {@link KHRSurface#vkGetPhysicalDeviceSurfaceCapabilitiesKHR GetPhysicalDeviceSurfaceCapabilitiesKHR} for the surface
      • *
      • {@code minImageCount} must be 1 if {@code presentMode} is either {@link KHRSharedPresentableImage#VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR} or {@link KHRSharedPresentableImage#VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR}
      • *
      • {@code imageFormat} and {@code imageColorSpace} must match the {@code format} and {@code colorSpace} members, respectively, of one of the {@link VkSurfaceFormatKHR} structures returned by {@code vkGetPhysicalDeviceSurfaceFormatsKHR} for the surface
      • *
      • If a {@link VkSwapchainPresentScalingCreateInfoEXT} structure was not included in the {@code pNext} chain, or it is included and {@link VkSwapchainPresentScalingCreateInfoEXT}{@code ::scalingBehavior} is zero then {@code imageExtent} must be between {@code minImageExtent} and {@code maxImageExtent}, inclusive, where {@code minImageExtent} and {@code maxImageExtent} are members of the {@link VkSurfaceCapabilitiesKHR} structure returned by {@code vkGetPhysicalDeviceSurfaceCapabilitiesKHR} for the surface
      • @@ -33,7 +32,7 @@ *
      • If the {@code swapchainMaintenance1} feature is not enabled, then {@code flags} must not include {@link EXTSwapchainMaintenance1#VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT}
      • *
      • {@code imageExtent} members {@code width} and {@code height} must both be non-zero
      • *
      • {@code imageArrayLayers} must be greater than 0 and less than or equal to the {@code maxImageArrayLayers} member of the {@link VkSurfaceCapabilitiesKHR} structure returned by {@code vkGetPhysicalDeviceSurfaceCapabilitiesKHR} for the surface
      • - *
      • If {@code presentMode} is {@link KHRSurface#VK_PRESENT_MODE_IMMEDIATE_KHR PRESENT_MODE_IMMEDIATE_KHR}, {@link KHRSurface#VK_PRESENT_MODE_MAILBOX_KHR PRESENT_MODE_MAILBOX_KHR}, {@link KHRSurface#VK_PRESENT_MODE_FIFO_KHR PRESENT_MODE_FIFO_KHR} or {@link KHRSurface#VK_PRESENT_MODE_FIFO_RELAXED_KHR PRESENT_MODE_FIFO_RELAXED_KHR}, {@code imageUsage} must be a subset of the supported usage flags present in the {@code supportedUsageFlags} member of the {@link VkSurfaceCapabilitiesKHR} structure returned by {@link KHRSurface#vkGetPhysicalDeviceSurfaceCapabilitiesKHR GetPhysicalDeviceSurfaceCapabilitiesKHR} for {@code surface}
      • + *
      • If {@code presentMode} is {@link EXTPresentModeFifoLatestReady#VK_PRESENT_MODE_FIFO_LATEST_READY_EXT PRESENT_MODE_FIFO_LATEST_READY_EXT}, {@link KHRSurface#VK_PRESENT_MODE_IMMEDIATE_KHR PRESENT_MODE_IMMEDIATE_KHR}, {@link KHRSurface#VK_PRESENT_MODE_MAILBOX_KHR PRESENT_MODE_MAILBOX_KHR}, {@link KHRSurface#VK_PRESENT_MODE_FIFO_KHR PRESENT_MODE_FIFO_KHR} or {@link KHRSurface#VK_PRESENT_MODE_FIFO_RELAXED_KHR PRESENT_MODE_FIFO_RELAXED_KHR}, {@code imageUsage} must be a subset of the supported usage flags present in the {@code supportedUsageFlags} member of the {@link VkSurfaceCapabilitiesKHR} structure returned by {@link KHRSurface#vkGetPhysicalDeviceSurfaceCapabilitiesKHR GetPhysicalDeviceSurfaceCapabilitiesKHR} for {@code surface}
      • *
      • If {@code presentMode} is {@link KHRSharedPresentableImage#VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR} or {@link KHRSharedPresentableImage#VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR}, {@code imageUsage} must be a subset of the supported usage flags present in the {@code sharedPresentSupportedUsageFlags} member of the {@link VkSharedPresentSurfaceCapabilitiesKHR} structure returned by {@link KHRGetSurfaceCapabilities2#vkGetPhysicalDeviceSurfaceCapabilities2KHR GetPhysicalDeviceSurfaceCapabilities2KHR} for {@code surface}
      • *
      • If {@code imageSharingMode} is {@link VK10#VK_SHARING_MODE_CONCURRENT SHARING_MODE_CONCURRENT}, {@code pQueueFamilyIndices} must be a valid pointer to an array of {@code queueFamilyIndexCount} {@code uint32_t} values
      • *
      • If {@code imageSharingMode} is {@link VK10#VK_SHARING_MODE_CONCURRENT SHARING_MODE_CONCURRENT}, {@code queueFamilyIndexCount} must be greater than 1
      • @@ -41,6 +40,7 @@ *
      • {@code preTransform} must be one of the bits present in the {@code supportedTransforms} member of the {@link VkSurfaceCapabilitiesKHR} structure returned by {@code vkGetPhysicalDeviceSurfaceCapabilitiesKHR} for the surface
      • *
      • {@code compositeAlpha} must be one of the bits present in the {@code supportedCompositeAlpha} member of the {@link VkSurfaceCapabilitiesKHR} structure returned by {@code vkGetPhysicalDeviceSurfaceCapabilitiesKHR} for the surface
      • *
      • {@code presentMode} must be one of the {@code VkPresentModeKHR} values returned by {@code vkGetPhysicalDeviceSurfacePresentModesKHR} for the surface
      • + *
      • If the {@code presentModeFifoLatestReady} feature is not enabled, {@code presentMode} must not be {@link EXTPresentModeFifoLatestReady#VK_PRESENT_MODE_FIFO_LATEST_READY_EXT PRESENT_MODE_FIFO_LATEST_READY_EXT}
      • *
      • If the logical device was created with {@link VkDeviceGroupDeviceCreateInfo}{@code ::physicalDeviceCount} equal to 1, {@code flags} must not contain {@link KHRSwapchain#VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR}
      • *
      • If {@code oldSwapchain} is not {@link VK10#VK_NULL_HANDLE NULL_HANDLE}, {@code oldSwapchain} must be a non-retired swapchain associated with native window referred to by {@code surface}
      • *
      • The implied image creation parameters of the swapchain must be supported as reported by {@link VK10#vkGetPhysicalDeviceImageFormatProperties GetPhysicalDeviceImageFormatProperties}
      • @@ -254,8 +254,8 @@ public VkSwapchainCreateInfoKHR(ByteBuffer container) { * specifies whether the Vulkan implementation is allowed to discard rendering operations that affect regions of the surface that are not visible. * *
          - *
        • If set to {@link VK10#VK_TRUE TRUE}, the presentable images associated with the swapchain may not own all of their pixels. Pixels in the presentable images that correspond to regions of the target surface obscured by another window on the desktop, or subject to some other clipping mechanism will have undefined content when read back. Fragment shaders may not execute for these pixels, and thus any side effects they would have had will not occur. Setting {@link VK10#VK_TRUE TRUE} does not guarantee any clipping will occur, but allows more efficient presentation methods to be used on some platforms.
        • - *
        • If set to {@link VK10#VK_FALSE FALSE}, presentable images associated with the swapchain will own all of the pixels they contain. + *
        • If {@code clipped} is {@link VK10#VK_TRUE TRUE}, the presentable images associated with the swapchain may not own all of their pixels. Pixels in the presentable images that correspond to regions of the target surface obscured by another window on the desktop, or subject to some other clipping mechanism will have undefined content when read back. Fragment shaders may not execute for these pixels, and thus any side effects they would have had will not occur. Setting {@link VK10#VK_TRUE TRUE} does not guarantee any clipping will occur, but allows more efficient presentation methods to be used on some platforms.
        • + *
        • If {@code clipped} is {@link VK10#VK_FALSE FALSE}, presentable images associated with the swapchain will own all of the pixels they contain. * *
          Note
          * diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkSwapchainPresentModeInfoEXT.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkSwapchainPresentModeInfoEXT.java index 4f52ac0ebf..0f89ada112 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkSwapchainPresentModeInfoEXT.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkSwapchainPresentModeInfoEXT.java @@ -29,9 +29,10 @@ *
        • Transition from {@link KHRSharedPresentableImage#VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR} to {@link KHRSharedPresentableImage#VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR}: the presentation engine updates the shared presentable image according to the behavior of {@link KHRSharedPresentableImage#VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR}.
        • *
        • Transition from {@link KHRSharedPresentableImage#VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR} to {@link KHRSharedPresentableImage#VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR}: the presentation engine may update the shared presentable image or defer that to its regular refresh cycle, according to the behavior of {@link KHRSharedPresentableImage#VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR}.
        • *
        • Transition between {@link KHRSurface#VK_PRESENT_MODE_FIFO_KHR PRESENT_MODE_FIFO_KHR} and {@link KHRSurface#VK_PRESENT_MODE_FIFO_RELAXED_KHR PRESENT_MODE_FIFO_RELAXED_KHR}: Images continue to be appended to the same FIFO queue, and the behavior with respect to waiting for vertical blanking period will follow the new mode for current and subsequent images.
        • - *
        • Transition from {@link KHRSurface#VK_PRESENT_MODE_IMMEDIATE_KHR PRESENT_MODE_IMMEDIATE_KHR} to {@link KHRSurface#VK_PRESENT_MODE_FIFO_KHR PRESENT_MODE_FIFO_KHR} or {@link KHRSurface#VK_PRESENT_MODE_FIFO_RELAXED_KHR PRESENT_MODE_FIFO_RELAXED_KHR}: As all prior present requests in the {@link KHRSurface#VK_PRESENT_MODE_IMMEDIATE_KHR PRESENT_MODE_IMMEDIATE_KHR} mode are applied immediately, there are no outstanding present operations in this mode, and current and subsequent images are appended to the FIFO queue and presented according to the new mode.
        • - *
        • Transition from {@link KHRSurface#VK_PRESENT_MODE_MAILBOX_KHR PRESENT_MODE_MAILBOX_KHR} to {@link KHRSurface#VK_PRESENT_MODE_FIFO_KHR PRESENT_MODE_FIFO_KHR} or {@link KHRSurface#VK_PRESENT_MODE_FIFO_RELAXED_KHR PRESENT_MODE_FIFO_RELAXED_KHR}: Presentation in both modes require waiting for the next vertical blanking period, with {@link KHRSurface#VK_PRESENT_MODE_MAILBOX_KHR PRESENT_MODE_MAILBOX_KHR} allowing the pending present operation to be replaced by a new one. In this case, the current present operation will replace the pending present operation and is applied according to the new mode.
        • - *
        • Transition from {@link KHRSurface#VK_PRESENT_MODE_FIFO_KHR PRESENT_MODE_FIFO_KHR} or {@link KHRSurface#VK_PRESENT_MODE_FIFO_RELAXED_KHR PRESENT_MODE_FIFO_RELAXED_KHR} to {@link KHRSurface#VK_PRESENT_MODE_IMMEDIATE_KHR PRESENT_MODE_IMMEDIATE_KHR} or {@link KHRSurface#VK_PRESENT_MODE_MAILBOX_KHR PRESENT_MODE_MAILBOX_KHR}: If the FIFO queue is empty, presentation is done according to the behavior of the new mode. If there are present operations in the FIFO queue, once the last present operation is performed based on the respective vertical blanking period, the current and subsequent updates are applied according to the new mode.
        • + *
        • Transition from {@link KHRSurface#VK_PRESENT_MODE_IMMEDIATE_KHR PRESENT_MODE_IMMEDIATE_KHR} to {@link KHRSurface#VK_PRESENT_MODE_FIFO_KHR PRESENT_MODE_FIFO_KHR} or {@link KHRSurface#VK_PRESENT_MODE_FIFO_RELAXED_KHR PRESENT_MODE_FIFO_RELAXED_KHR} or {@link EXTPresentModeFifoLatestReady#VK_PRESENT_MODE_FIFO_LATEST_READY_EXT PRESENT_MODE_FIFO_LATEST_READY_EXT} : As all prior present requests in the {@link KHRSurface#VK_PRESENT_MODE_IMMEDIATE_KHR PRESENT_MODE_IMMEDIATE_KHR} mode are applied immediately, there are no outstanding present operations in this mode, and current and subsequent images are appended to the FIFO queue and presented according to the new mode.
        • + *
        • Transition from {@link KHRSurface#VK_PRESENT_MODE_MAILBOX_KHR PRESENT_MODE_MAILBOX_KHR} to {@link KHRSurface#VK_PRESENT_MODE_FIFO_KHR PRESENT_MODE_FIFO_KHR} or {@link KHRSurface#VK_PRESENT_MODE_FIFO_RELAXED_KHR PRESENT_MODE_FIFO_RELAXED_KHR} or {@link EXTPresentModeFifoLatestReady#VK_PRESENT_MODE_FIFO_LATEST_READY_EXT PRESENT_MODE_FIFO_LATEST_READY_EXT} : Presentation in FIFO modes require waiting for the next vertical blanking period, with {@link KHRSurface#VK_PRESENT_MODE_MAILBOX_KHR PRESENT_MODE_MAILBOX_KHR} allowing the pending present operation to be replaced by a new one. In this case, the current present operation will replace the pending present operation and is applied according to the new mode.
        • + *
        • Transition from {@link KHRSurface#VK_PRESENT_MODE_FIFO_KHR PRESENT_MODE_FIFO_KHR} or {@link KHRSurface#VK_PRESENT_MODE_FIFO_RELAXED_KHR PRESENT_MODE_FIFO_RELAXED_KHR} or {@link EXTPresentModeFifoLatestReady#VK_PRESENT_MODE_FIFO_LATEST_READY_EXT PRESENT_MODE_FIFO_LATEST_READY_EXT} to {@link KHRSurface#VK_PRESENT_MODE_IMMEDIATE_KHR PRESENT_MODE_IMMEDIATE_KHR} or {@link KHRSurface#VK_PRESENT_MODE_MAILBOX_KHR PRESENT_MODE_MAILBOX_KHR}: If the FIFO queue is empty, presentation is done according to the behavior of the new mode. If there are present operations in the FIFO queue, once the last present operation is performed based on the respective vertical blanking period, the current and subsequent updates are applied according to the new mode.
        • + *
        • Transition between {@link KHRSurface#VK_PRESENT_MODE_FIFO_KHR PRESENT_MODE_FIFO_KHR} or {@link KHRSurface#VK_PRESENT_MODE_FIFO_RELAXED_KHR PRESENT_MODE_FIFO_RELAXED_KHR}, and {@link EXTPresentModeFifoLatestReady#VK_PRESENT_MODE_FIFO_LATEST_READY_EXT PRESENT_MODE_FIFO_LATEST_READY_EXT}: Images continue to be appended to the same FIFO queue, and the behavior with respect to waiting for vertical blanking period and dequeuing requests will follow the new mode for current and subsequent images.
        • *
        • The behavior during transition between any other present modes, if possible, is implementation defined.
        • *
        * diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkSwapchainPresentModesCreateInfoEXT.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkSwapchainPresentModesCreateInfoEXT.java index 4989476ee1..9874f80995 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkSwapchainPresentModesCreateInfoEXT.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkSwapchainPresentModesCreateInfoEXT.java @@ -23,6 +23,7 @@ * *
          *
        • Each entry in pPresentModes must be one of the {@code VkPresentModeKHR} values returned by {@code vkGetPhysicalDeviceSurfacePresentModesKHR} for the surface
        • + *
        • If the {@code presentModeFifoLatestReady} feature is not enabled, pPresentModes must not contain {@link EXTPresentModeFifoLatestReady#VK_PRESENT_MODE_FIFO_LATEST_READY_EXT PRESENT_MODE_FIFO_LATEST_READY_EXT}
        • *
        • The entries in pPresentModes must be a subset of the present modes returned in {@link VkSurfacePresentModeCompatibilityEXT}{@code ::pPresentModes}, given {@link VkSwapchainCreateInfoKHR}{@code ::presentMode} in {@link VkSurfacePresentModeEXT}
        • *
        • {@link VkSwapchainCreateInfoKHR}{@code ::presentMode} must be included in {@code pPresentModes}
        • *
        diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkTraceRaysIndirectCommand2KHR.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkTraceRaysIndirectCommand2KHR.java index 138325498f..17e508c205 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkTraceRaysIndirectCommand2KHR.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkTraceRaysIndirectCommand2KHR.java @@ -47,10 +47,10 @@ *
      • {@code callableShaderBindingTableStride} must be less than or equal to {@link VkPhysicalDeviceRayTracingPipelinePropertiesKHR}{@code ::maxShaderGroupStride}
      • *
      • If the currently bound ray tracing pipeline was created with {@code flags} that included {@link KHRRayTracingPipeline#VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR}, {@code hitShaderBindingTableAddress} must not be zero
      • *
      • If the currently bound ray tracing pipeline was created with {@code flags} that included {@link KHRRayTracingPipeline#VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR}, {@code hitShaderBindingTableAddress} must not be zero
      • - *
      • If the currently bound ray tracing pipeline was created with {@code flags} that included {@link KHRRayTracingPipeline#VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR}, the shader group handle identified by {@code missShaderBindingTableAddress} must not be set to zero
      • - *
      • If the currently bound ray tracing pipeline was created with {@code flags} that included {@link KHRRayTracingPipeline#VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR}, entries in the table identified by {@code hitShaderBindingTableAddress} accessed as a result of this command in order to execute an any-hit shader must not be set to zero
      • - *
      • If the currently bound ray tracing pipeline was created with {@code flags} that included {@link KHRRayTracingPipeline#VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR}, entries in the table identified by {@code hitShaderBindingTableAddress} accessed as a result of this command in order to execute a closest hit shader must not be set to zero
      • - *
      • If the currently bound ray tracing pipeline was created with {@code flags} that included {@link KHRRayTracingPipeline#VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR}, entries in the table identified by {@code hitShaderBindingTableAddress} accessed as a result of this command in order to execute an intersection shader must not be set to zero
      • + *
      • If the currently bound ray tracing pipeline was created with {@code flags} that included {@link KHRRayTracingPipeline#VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR}, the shader group handle identified by {@code missShaderBindingTableAddress} must not be zero
      • + *
      • If the currently bound ray tracing pipeline was created with {@code flags} that included {@link KHRRayTracingPipeline#VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR}, entries in the table identified by {@code hitShaderBindingTableAddress} accessed as a result of this command in order to execute an any-hit shader must not be zero
      • + *
      • If the currently bound ray tracing pipeline was created with {@code flags} that included {@link KHRRayTracingPipeline#VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR}, entries in the table identified by {@code hitShaderBindingTableAddress} accessed as a result of this command in order to execute a closest hit shader must not be zero
      • + *
      • If the currently bound ray tracing pipeline was created with {@code flags} that included {@link KHRRayTracingPipeline#VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR}, entries in the table identified by {@code hitShaderBindingTableAddress} accessed as a result of this command in order to execute an intersection shader must not be zero
      • *
      • Any non-zero hit shader group entries in the table identified by {@code hitShaderBindingTableAddress} accessed by this call from a geometry with a {@code geometryType} of {@link KHRAccelerationStructure#VK_GEOMETRY_TYPE_TRIANGLES_KHR GEOMETRY_TYPE_TRIANGLES_KHR} must have been created with {@link KHRRayTracingPipeline#VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR}
      • *
      • Any non-zero hit shader group entries in the table identified by {@code hitShaderBindingTableAddress} accessed by this call from a geometry with a {@code geometryType} of {@link KHRAccelerationStructure#VK_GEOMETRY_TYPE_AABBS_KHR GEOMETRY_TYPE_AABBS_KHR} must have been created with {@link KHRRayTracingPipeline#VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR}
      • *
      diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVertexInputBindingDescription2EXT.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVertexInputBindingDescription2EXT.java index 027e3c9268..6f35d39129 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVertexInputBindingDescription2EXT.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVertexInputBindingDescription2EXT.java @@ -127,7 +127,7 @@ public VkVertexInputBindingDescription2EXT(ByteBuffer container) { /** a {@code VkVertexInputRate} value specifying whether vertex attribute addressing is a function of the vertex index or of the instance index. */ @NativeType("VkVertexInputRate") public int inputRate() { return ninputRate(address()); } - /** the number of successive instances that will use the same value of the vertex attribute when instanced rendering is enabled. This member can be set to a value other than 1 if the {@code vertexAttributeInstanceRateDivisor} feature is enabled. For example, if the divisor is N, the same vertex attribute will be applied to N successive instances before moving on to the next vertex attribute. The maximum value of {@code divisor} is implementation-dependent and can be queried using {@link VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT}{@code ::maxVertexAttribDivisor}. A value of 0 can be used for the divisor if the {@code vertexAttributeInstanceRateZeroDivisor} feature is enabled. In this case, the same vertex attribute will be applied to all instances. */ + /** the number of successive instances that will use the same value of the vertex attribute when instanced rendering is enabled. This member can be a value other than 1 if the {@code vertexAttributeInstanceRateDivisor} feature is enabled. For example, if the divisor is N, the same vertex attribute will be applied to N successive instances before moving on to the next vertex attribute. The maximum value of {@code divisor} is implementation-dependent and can be queried using {@link VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT}{@code ::maxVertexAttribDivisor}. A value of 0 can be used for the divisor if the {@code vertexAttributeInstanceRateZeroDivisor} feature is enabled. In this case, the same vertex attribute will be applied to all instances. */ @NativeType("uint32_t") public int divisor() { return ndivisor(address()); } diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoDecodeAV1ProfileInfoKHR.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoDecodeAV1ProfileInfoKHR.java index b70adb2fca..cec06410ac 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoDecodeAV1ProfileInfoKHR.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoDecodeAV1ProfileInfoKHR.java @@ -106,7 +106,7 @@ public VkVideoDecodeAV1ProfileInfoKHR(ByteBuffer container) { /** a {@code StdVideoAV1Profile} value specifying the AV1 codec profile, as defined in section A.2 of the AV1 Specification. */ @NativeType("StdVideoAV1Profile") public int stdProfile() { return nstdProfile(address()); } - /** specifies whether AV1 film grain, as defined in section 7.8.3 of the AV1 Specification, can be used with the video profile. When this member is set to {@link VK10#VK_TRUE TRUE}, video session objects created against the video profile will be able to decode pictures that have film grain enabled. */ + /** specifies whether AV1 film grain, as defined in section 7.8.3 of the AV1 Specification, can be used with the video profile. When this member is {@link VK10#VK_TRUE TRUE}, video session objects created against the video profile will be able to decode pictures that have film grain enabled. */ @NativeType("VkBool32") public boolean filmGrainSupport() { return nfilmGrainSupport(address()) != 0; } diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH264RateControlInfoKHR.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH264RateControlInfoKHR.java index c1cfc746f7..2d1bc16f8c 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH264RateControlInfoKHR.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH264RateControlInfoKHR.java @@ -132,10 +132,10 @@ public VkVideoEncodeH264RateControlInfoKHR(ByteBuffer container) { /** a bitmask of {@code VkVideoEncodeH264RateControlFlagBitsKHR} specifying H.264 rate control flags. */ @NativeType("VkVideoEncodeH264RateControlFlagsKHR") public int flags() { return nflags(address()); } - /** the number of frames within a group of pictures (GOP) intended to be used by the application. If it is set to 0, the rate control algorithm may assume an implementation-dependent GOP length. If it is set to {@code UINT32_MAX}, the GOP length is treated as infinite. */ + /** the number of frames within a group of pictures (GOP) intended to be used by the application. If it is 0, the rate control algorithm may assume an implementation-dependent GOP length. If it is {@code UINT32_MAX}, the GOP length is treated as infinite. */ @NativeType("uint32_t") public int gopFrameCount() { return ngopFrameCount(address()); } - /** the interval, in terms of number of frames, between two IDR frames (see IDR period). If it is set to 0, the rate control algorithm may assume an implementation-dependent IDR period. If it is set to {@code UINT32_MAX}, the IDR period is treated as infinite. */ + /** the interval, in terms of number of frames, between two IDR frames (see IDR period). If it is 0, the rate control algorithm may assume an implementation-dependent IDR period. If it is {@code UINT32_MAX}, the IDR period is treated as infinite. */ @NativeType("uint32_t") public int idrPeriod() { return nidrPeriod(address()); } /** the number of consecutive B frames between I and/or P frames within the GOP. */ diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH264RateControlLayerInfoKHR.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH264RateControlLayerInfoKHR.java index f56ba70e37..60a6ad9e1e 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH264RateControlLayerInfoKHR.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH264RateControlLayerInfoKHR.java @@ -146,17 +146,17 @@ public VkVideoEncodeH264RateControlLayerInfoKHR(ByteBuffer container) { /** indicates whether the QP values determined by rate control will be clamped to the lower bounds on the QP values specified in {@code minQp}. */ @NativeType("VkBool32") public boolean useMinQp() { return nuseMinQp(address()) != 0; } - /** specifies the lower bounds on the QP values, for each picture type, that the implementation’s rate control algorithm will use when {@code useMinQp} is set to {@link VK10#VK_TRUE TRUE}. */ + /** specifies the lower bounds on the QP values, for each picture type, that the implementation’s rate control algorithm will use when {@code useMinQp} is {@link VK10#VK_TRUE TRUE}. */ public VkVideoEncodeH264QpKHR minQp() { return nminQp(address()); } /** indicates whether the QP values determined by rate control will be clamped to the upper bounds on the QP values specified in {@code maxQp}. */ @NativeType("VkBool32") public boolean useMaxQp() { return nuseMaxQp(address()) != 0; } - /** specifies the upper bounds on the QP values, for each picture type, that the implementation’s rate control algorithm will use when {@code useMaxQp} is set to {@link VK10#VK_TRUE TRUE}. */ + /** specifies the upper bounds on the QP values, for each picture type, that the implementation’s rate control algorithm will use when {@code useMaxQp} is {@link VK10#VK_TRUE TRUE}. */ public VkVideoEncodeH264QpKHR maxQp() { return nmaxQp(address()); } /** indicates whether the implementation’s rate control algorithm should use the values specified in {@code maxFrameSize} as the upper bounds on the encoded frame size for each picture type. */ @NativeType("VkBool32") public boolean useMaxFrameSize() { return nuseMaxFrameSize(address()) != 0; } - /** specifies the upper bounds on the encoded frame size, for each picture type, when {@code useMaxFrameSize} is set to {@link VK10#VK_TRUE TRUE}. */ + /** specifies the upper bounds on the encoded frame size, for each picture type, when {@code useMaxFrameSize} is {@link VK10#VK_TRUE TRUE}. */ public VkVideoEncodeH264FrameSizeKHR maxFrameSize() { return nmaxFrameSize(address()); } /** Sets the specified value to the {@link #sType} field. */ diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH264SessionCreateInfoKHR.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH264SessionCreateInfoKHR.java index 9d65c59cb9..8063085c35 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH264SessionCreateInfoKHR.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH264SessionCreateInfoKHR.java @@ -96,7 +96,7 @@ public VkVideoEncodeH264SessionCreateInfoKHR(ByteBuffer container) { /** {@code NULL} or a pointer to a structure extending this structure. */ @NativeType("void const *") public long pNext() { return npNext(address()); } - /** indicates whether the value of {@code maxLevelIdc} should be used by the implementation. When it is set to {@link VK10#VK_FALSE FALSE}, the implementation ignores the value of {@code maxLevelIdc} and uses the value of {@link VkVideoEncodeH264CapabilitiesKHR}{@code ::maxLevelIdc}, as reported by {@link KHRVideoQueue#vkGetPhysicalDeviceVideoCapabilitiesKHR GetPhysicalDeviceVideoCapabilitiesKHR} for the video profile. */ + /** indicates whether the value of {@code maxLevelIdc} should be used by the implementation. When it is {@link VK10#VK_FALSE FALSE}, the implementation ignores the value of {@code maxLevelIdc} and uses the value of {@link VkVideoEncodeH264CapabilitiesKHR}{@code ::maxLevelIdc}, as reported by {@link KHRVideoQueue#vkGetPhysicalDeviceVideoCapabilitiesKHR GetPhysicalDeviceVideoCapabilitiesKHR} for the video profile. */ @NativeType("VkBool32") public boolean useMaxLevelIdc() { return nuseMaxLevelIdc(address()) != 0; } /** a {@code StdVideoH264LevelIdc} value specifying the upper bound on the H.264 level for the video bitstreams produced by the created video session, where enum constant {@code STD_VIDEO_H264_LEVEL_IDC_<major>_<minor>} identifies H.264 level {@code <major>.<minor>} as defined in section A.3 of the ITU-T H.264 Specification. */ diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH264SessionParametersGetInfoKHR.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH264SessionParametersGetInfoKHR.java index 4ce1e96772..a51d95e530 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH264SessionParametersGetInfoKHR.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH264SessionParametersGetInfoKHR.java @@ -23,8 +23,8 @@ *

      When this structure is specified in the {@code pNext} chain of the {@link VkVideoEncodeSessionParametersGetInfoKHR} structure passed to {@link KHRVideoEncodeQueue#vkGetEncodedVideoSessionParametersKHR GetEncodedVideoSessionParametersKHR}, the command will write encoded parameter data to the output buffer in the following order:

      * *
        - *
      • The H.264 sequence parameter set identified by {@code stdSPSId}, if {@code writeStdSPS} is set to {@link VK10#VK_TRUE TRUE}.
      • - *
      • The H.264 picture parameter set identified by the pair constructed from {@code stdSPSId} and {@code stdPPSId}, if {@code writeStdPPS} is set to {@link VK10#VK_TRUE TRUE}.
      • + *
      • The H.264 sequence parameter set identified by {@code stdSPSId}, if {@code writeStdSPS} is {@link VK10#VK_TRUE TRUE}.
      • + *
      • The H.264 picture parameter set identified by the pair constructed from {@code stdSPSId} and {@code stdPPSId}, if {@code writeStdPPS} is {@link VK10#VK_TRUE TRUE}.
      • *
      * *
      Valid Usage
      @@ -126,7 +126,7 @@ public VkVideoEncodeH264SessionParametersGetInfoKHR(ByteBuffer container) { /** specifies the H.264 sequence parameter set ID used to identify the retrieved H.264 sequence and/or picture parameter set(s). */ @NativeType("uint32_t") public int stdSPSId() { return nstdSPSId(address()); } - /** specifies the H.264 picture parameter set ID used to identify the retrieved H.264 picture parameter set when {@code writeStdPPS} is set to {@link VK10#VK_TRUE TRUE}. */ + /** specifies the H.264 picture parameter set ID used to identify the retrieved H.264 picture parameter set when {@code writeStdPPS} is {@link VK10#VK_TRUE TRUE}. */ @NativeType("uint32_t") public int stdPPSId() { return nstdPPSId(address()); } diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH265RateControlInfoKHR.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH265RateControlInfoKHR.java index 7ea330cb73..14b6b6d1a8 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH265RateControlInfoKHR.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH265RateControlInfoKHR.java @@ -132,10 +132,10 @@ public VkVideoEncodeH265RateControlInfoKHR(ByteBuffer container) { /** a bitmask of {@code VkVideoEncodeH265RateControlFlagBitsKHR} specifying H.265 rate control flags. */ @NativeType("VkVideoEncodeH265RateControlFlagsKHR") public int flags() { return nflags(address()); } - /** the number of frames within a group of pictures (GOP) intended to be used by the application. If it is set to 0, the rate control algorithm may assume an implementation-dependent GOP length. If it is set to {@code UINT32_MAX}, the GOP length is treated as infinite. */ + /** the number of frames within a group of pictures (GOP) intended to be used by the application. If it is 0, the rate control algorithm may assume an implementation-dependent GOP length. If it is {@code UINT32_MAX}, the GOP length is treated as infinite. */ @NativeType("uint32_t") public int gopFrameCount() { return ngopFrameCount(address()); } - /** the interval, in terms of number of frames, between two IDR frames (see IDR period). If it is set to 0, the rate control algorithm may assume an implementation-dependent IDR period. If it is set to {@code UINT32_MAX}, the IDR period is treated as infinite. */ + /** the interval, in terms of number of frames, between two IDR frames (see IDR period). If it is 0, the rate control algorithm may assume an implementation-dependent IDR period. If it is {@code UINT32_MAX}, the IDR period is treated as infinite. */ @NativeType("uint32_t") public int idrPeriod() { return nidrPeriod(address()); } /** the number of consecutive B frames between I and/or P frames within the GOP. */ diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH265RateControlLayerInfoKHR.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH265RateControlLayerInfoKHR.java index d2a7eb5060..1be552baaf 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH265RateControlLayerInfoKHR.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH265RateControlLayerInfoKHR.java @@ -146,17 +146,17 @@ public VkVideoEncodeH265RateControlLayerInfoKHR(ByteBuffer container) { /** indicates whether the QP values determined by rate control will be clamped to the lower bounds on the QP values specified in {@code minQp}. */ @NativeType("VkBool32") public boolean useMinQp() { return nuseMinQp(address()) != 0; } - /** specifies the lower bounds on the QP values, for each picture type, that the implementation’s rate control algorithm will use when {@code useMinQp} is set to {@link VK10#VK_TRUE TRUE}. */ + /** specifies the lower bounds on the QP values, for each picture type, that the implementation’s rate control algorithm will use when {@code useMinQp} is {@link VK10#VK_TRUE TRUE}. */ public VkVideoEncodeH265QpKHR minQp() { return nminQp(address()); } /** indicates whether the QP values determined by rate control will be clamped to the upper bounds on the QP values specified in {@code maxQp}. */ @NativeType("VkBool32") public boolean useMaxQp() { return nuseMaxQp(address()) != 0; } - /** specifies the upper bounds on the QP values, for each picture type, that the implementation’s rate control algorithm will use when {@code useMaxQp} is set to {@link VK10#VK_TRUE TRUE}. */ + /** specifies the upper bounds on the QP values, for each picture type, that the implementation’s rate control algorithm will use when {@code useMaxQp} is {@link VK10#VK_TRUE TRUE}. */ public VkVideoEncodeH265QpKHR maxQp() { return nmaxQp(address()); } /** indicates whether the implementation’s rate control algorithm should use the values specified in {@code maxFrameSize} as the upper bounds on the encoded frame size for each picture type. */ @NativeType("VkBool32") public boolean useMaxFrameSize() { return nuseMaxFrameSize(address()) != 0; } - /** specifies the upper bounds on the encoded frame size, for each picture type, when {@code useMaxFrameSize} is set to {@link VK10#VK_TRUE TRUE}. */ + /** specifies the upper bounds on the encoded frame size, for each picture type, when {@code useMaxFrameSize} is {@link VK10#VK_TRUE TRUE}. */ public VkVideoEncodeH265FrameSizeKHR maxFrameSize() { return nmaxFrameSize(address()); } /** Sets the specified value to the {@link #sType} field. */ diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH265SessionCreateInfoKHR.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH265SessionCreateInfoKHR.java index bda7717b1b..dbf53eec83 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH265SessionCreateInfoKHR.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH265SessionCreateInfoKHR.java @@ -96,7 +96,7 @@ public VkVideoEncodeH265SessionCreateInfoKHR(ByteBuffer container) { /** {@code NULL} or a pointer to a structure extending this structure. */ @NativeType("void const *") public long pNext() { return npNext(address()); } - /** indicates whether the value of {@code maxLevelIdc} should be used by the implementation. When it is set to {@link VK10#VK_FALSE FALSE}, the implementation ignores the value of {@code maxLevelIdc} and uses the value of {@link VkVideoEncodeH265CapabilitiesKHR}{@code ::maxLevelIdc}, as reported by {@link KHRVideoQueue#vkGetPhysicalDeviceVideoCapabilitiesKHR GetPhysicalDeviceVideoCapabilitiesKHR} for the video profile. */ + /** indicates whether the value of {@code maxLevelIdc} should be used by the implementation. When it is {@link VK10#VK_FALSE FALSE}, the implementation ignores the value of {@code maxLevelIdc} and uses the value of {@link VkVideoEncodeH265CapabilitiesKHR}{@code ::maxLevelIdc}, as reported by {@link KHRVideoQueue#vkGetPhysicalDeviceVideoCapabilitiesKHR GetPhysicalDeviceVideoCapabilitiesKHR} for the video profile. */ @NativeType("VkBool32") public boolean useMaxLevelIdc() { return nuseMaxLevelIdc(address()) != 0; } /** a {@code StdVideoH265LevelIdc} value specifying the upper bound on the H.265 level for the video bitstreams produced by the created video session, where enum constant {@code STD_VIDEO_H265_LEVEL_IDC_<major>_<minor>} identifies H.265 level {@code <major>.<minor>} as defined in section A.4 of the ITU-T H.265 Specification. */ diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH265SessionParametersGetInfoKHR.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH265SessionParametersGetInfoKHR.java index 8551287afe..6686d0e55a 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH265SessionParametersGetInfoKHR.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeH265SessionParametersGetInfoKHR.java @@ -23,9 +23,9 @@ *

      When this structure is specified in the {@code pNext} chain of the {@link VkVideoEncodeSessionParametersGetInfoKHR} structure passed to {@link KHRVideoEncodeQueue#vkGetEncodedVideoSessionParametersKHR GetEncodedVideoSessionParametersKHR}, the command will write encoded parameter data to the output buffer in the following order:

      * *
        - *
      • The H.265 video parameter set identified by {@code stdVPSId}, if {@code writeStdVPS} is set to {@link VK10#VK_TRUE TRUE}.
      • - *
      • The H.265 sequence parameter set identified by the pair constructed from {@code stdVPSId} and {@code stdSPSId}, if {@code writeStdSPS} is set to {@link VK10#VK_TRUE TRUE}.
      • - *
      • The H.265 picture parameter set identified by the triplet constructed from {@code stdVPSId}, {@code stdSPSId}, and {@code stdPPSId}, if {@code writeStdPPS} is set to {@link VK10#VK_TRUE TRUE}.
      • + *
      • The H.265 video parameter set identified by {@code stdVPSId}, if {@code writeStdVPS} is {@link VK10#VK_TRUE TRUE}.
      • + *
      • The H.265 sequence parameter set identified by the pair constructed from {@code stdVPSId} and {@code stdSPSId}, if {@code writeStdSPS} is {@link VK10#VK_TRUE TRUE}.
      • + *
      • The H.265 picture parameter set identified by the triplet constructed from {@code stdVPSId}, {@code stdSPSId}, and {@code stdPPSId}, if {@code writeStdPPS} is {@link VK10#VK_TRUE TRUE}.
      • *
      * *
      Valid Usage
      @@ -138,10 +138,10 @@ public VkVideoEncodeH265SessionParametersGetInfoKHR(ByteBuffer container) { /** specifies the H.265 video parameter set ID used to identify the retrieved H.265 video, sequence, and/or picture parameter set(s). */ @NativeType("uint32_t") public int stdVPSId() { return nstdVPSId(address()); } - /** specifies the H.265 sequence parameter set ID used to identify the retrieved H.265 sequence and/or picture parameter set(s) when {@code writeStdSPS} and/or {@code writeStdPPS} is set to {@link VK10#VK_TRUE TRUE}. */ + /** specifies the H.265 sequence parameter set ID used to identify the retrieved H.265 sequence and/or picture parameter set(s) when {@code writeStdSPS} and/or {@code writeStdPPS} is {@link VK10#VK_TRUE TRUE}. */ @NativeType("uint32_t") public int stdSPSId() { return nstdSPSId(address()); } - /** specifies the H.265 picture parameter set ID used to identify the retrieved H.265 picture parameter set when {@code writeStdPPS} is set to {@link VK10#VK_TRUE TRUE}. */ + /** specifies the H.265 picture parameter set ID used to identify the retrieved H.265 picture parameter set when {@code writeStdPPS} is {@link VK10#VK_TRUE TRUE}. */ @NativeType("uint32_t") public int stdPPSId() { return nstdPPSId(address()); } diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeRateControlInfoKHR.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeRateControlInfoKHR.java index 9e27b7b4a4..ace87bad5e 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeRateControlInfoKHR.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkVideoEncodeRateControlInfoKHR.java @@ -61,7 +61,7 @@ *
    • If {@code rateControlMode} is {@link KHRVideoEncodeQueue#VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR}, then for each element of {@code pLayers}, its {@code averageBitrate} member must equal its {@code maxBitrate} member
    • *
    • If {@code rateControlMode} is {@link KHRVideoEncodeQueue#VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR}, then for each element of {@code pLayers}, its {@code averageBitrate} member must be less than or equal to its {@code maxBitrate} member
    • *
    • If {@code layerCount} is not zero, then {@code virtualBufferSizeInMs} must be greater than zero
    • - *
    • If {@code layerCount} is not zero, then {@code initialVirtualBufferSizeInMs} must be less than {@code virtualBufferSizeInMs}
    • + *
    • If {@code layerCount} is not zero, then {@code initialVirtualBufferSizeInMs} must be less than or equal to {@code virtualBufferSizeInMs}
    • *
    • If the {@code videoCodecOperation} of the used video profile is {@link KHRVideoEncodeH264#VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR}, the {@code pNext} chain this structure is included in also includes an instance of the {@link VkVideoEncodeH264RateControlInfoKHR} structure, and {@code layerCount} is greater than 1, then {@code layerCount} must equal {@link VkVideoEncodeH264RateControlInfoKHR}{@code ::temporalLayerCount}
    • *
    • If the {@code videoCodecOperation} of the used video profile is {@link KHRVideoEncodeH265#VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR}, the {@code pNext} chain this structure is included in also includes an instance of the {@link VkVideoEncodeH265RateControlInfoKHR} structure, and {@code layerCount} is greater than 1, then {@code layerCount} must equal {@link VkVideoEncodeH265RateControlInfoKHR}{@code ::subLayerCount}
    • *
    diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkWriteDescriptorSet.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkWriteDescriptorSet.java index f55e8a10c0..0cf7f1441d 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkWriteDescriptorSet.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkWriteDescriptorSet.java @@ -43,7 +43,7 @@ *
  • All consecutive bindings updated via a single {@link VkWriteDescriptorSet} structure, except those with a {@code descriptorCount} of zero, must all either use immutable samplers or must all not use immutable samplers
  • *
  • {@code descriptorType} must match the type of {@code dstBinding} within {@code dstSet}
  • *
  • {@code dstSet} must be a valid {@code VkDescriptorSet} handle
  • - *
  • The sum of {@code dstArrayElement} and {@code descriptorCount} must be less than or equal to the number of array elements in the descriptor set binding specified by {@code dstBinding}, and all applicable consecutive bindings, as described by consecutive binding updates
  • + *
  • The sum of {@code dstArrayElement} and {@code descriptorCount} must be less than or equal to the number of array elements in the descriptor set binding specified by {@code dstBinding}, and all applicable consecutive bindings
  • *
  • If {@code descriptorType} is {@link VK13#VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK}, {@code dstArrayElement} must be an integer multiple of 4
  • *
  • If {@code descriptorType} is {@link VK13#VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK}, {@code descriptorCount} must be an integer multiple of 4
  • *
  • If {@code descriptorType} is {@link VK10#VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER} or {@link VK10#VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER}, each element of {@code pTexelBufferView} must be either a valid {@code VkBufferView} handle or {@link VK10#VK_NULL_HANDLE NULL_HANDLE}
  • @@ -210,7 +210,7 @@ public VkWriteDescriptorSet(ByteBuffer container) { *
  • the number of elements in {@code pBufferInfo}
  • *
  • the number of elements in {@code pTexelBufferView}
  • *
  • a value matching the {@code dataSize} member of a {@link VkWriteDescriptorSetInlineUniformBlock} structure in the {@code pNext} chain
  • - *
  • a value matching the {@code accelerationStructureCount} of a {@link VkWriteDescriptorSetAccelerationStructureKHR} structure in the {@code pNext} chain
  • + *
  • a value matching the {@code accelerationStructureCount} of a {@link VkWriteDescriptorSetAccelerationStructureKHR} or {@link VkWriteDescriptorSetAccelerationStructureNV} structure in the {@code pNext} chain
  • * */ @NativeType("uint32_t") diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkWriteIndirectExecutionSetPipelineEXT.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkWriteIndirectExecutionSetPipelineEXT.java index 5d2b1ac5a8..1b83f5bdc5 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkWriteIndirectExecutionSetPipelineEXT.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkWriteIndirectExecutionSetPipelineEXT.java @@ -23,7 +23,6 @@ *
      *
    • {@code index} must be less than the value of {@link VkIndirectExecutionSetPipelineInfoEXT}{@code ::maxPipelineCount} used to create the set
    • *
    • {@code pipeline} must have been created with {@link EXTDeviceGeneratedCommands#VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT}
    • - *
    • The descriptor layout info used to create {@code pipeline} must be compatible with the descriptor layout info used to create the indirect execution set
    • *
    • {@code index} must not be referenced by submitted command buffers
    • *
    • The shader stages contained in {@code pipeline} must be supported by {@link VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT}{@code ::supportedIndirectCommandsShaderStagesPipelineBinding}
    • *
    diff --git a/modules/lwjgl/vulkan/src/main/c/vulkan/vulkan_beta.h b/modules/lwjgl/vulkan/src/main/c/vulkan/vulkan_beta.h index df18b4042b..f5e947507f 100644 --- a/modules/lwjgl/vulkan/src/main/c/vulkan/vulkan_beta.h +++ b/modules/lwjgl/vulkan/src/main/c/vulkan/vulkan_beta.h @@ -53,13 +53,14 @@ typedef struct VkPhysicalDevicePortabilitySubsetPropertiesKHR { // VK_AMDX_shader_enqueue is a preprocessor guard. Do not pass it to API calls. #define VK_AMDX_shader_enqueue 1 -#define VK_AMDX_SHADER_ENQUEUE_SPEC_VERSION 1 +#define VK_AMDX_SHADER_ENQUEUE_SPEC_VERSION 2 #define VK_AMDX_SHADER_ENQUEUE_EXTENSION_NAME "VK_AMDX_shader_enqueue" #define VK_SHADER_INDEX_UNUSED_AMDX (~0U) typedef struct VkPhysicalDeviceShaderEnqueueFeaturesAMDX { VkStructureType sType; void* pNext; VkBool32 shaderEnqueue; + VkBool32 shaderMeshEnqueue; } VkPhysicalDeviceShaderEnqueueFeaturesAMDX; typedef struct VkPhysicalDeviceShaderEnqueuePropertiesAMDX { @@ -70,12 +71,16 @@ typedef struct VkPhysicalDeviceShaderEnqueuePropertiesAMDX { uint32_t maxExecutionGraphShaderPayloadSize; uint32_t maxExecutionGraphShaderPayloadCount; uint32_t executionGraphDispatchAddressAlignment; + uint32_t maxExecutionGraphWorkgroupCount[3]; + uint32_t maxExecutionGraphWorkgroups; } VkPhysicalDeviceShaderEnqueuePropertiesAMDX; typedef struct VkExecutionGraphPipelineScratchSizeAMDX { VkStructureType sType; void* pNext; - VkDeviceSize size; + VkDeviceSize minSize; + VkDeviceSize maxSize; + VkDeviceSize sizeGranularity; } VkExecutionGraphPipelineScratchSizeAMDX; typedef struct VkExecutionGraphPipelineCreateInfoAMDX { @@ -116,12 +121,12 @@ typedef struct VkPipelineShaderStageNodeCreateInfoAMDX { } VkPipelineShaderStageNodeCreateInfoAMDX; typedef VkResult (VKAPI_PTR *PFN_vkCreateExecutionGraphPipelinesAMDX)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkExecutionGraphPipelineCreateInfoAMDX* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); -typedef VkResult (VKAPI_PTR *PFN_vkGetExecutionGraphPipelineScratchSizeAMDX)(VkDevice device, VkPipeline executionGraph, VkExecutionGraphPipelineScratchSizeAMDX* pSizeInfo); -typedef VkResult (VKAPI_PTR *PFN_vkGetExecutionGraphPipelineNodeIndexAMDX)(VkDevice device, VkPipeline executionGraph, const VkPipelineShaderStageNodeCreateInfoAMDX* pNodeInfo, uint32_t* pNodeIndex); -typedef void (VKAPI_PTR *PFN_vkCmdInitializeGraphScratchMemoryAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch); -typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, const VkDispatchGraphCountInfoAMDX* pCountInfo); -typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphIndirectAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, const VkDispatchGraphCountInfoAMDX* pCountInfo); -typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphIndirectCountAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, VkDeviceAddress countInfo); +typedef VkResult (VKAPI_PTR *PFN_vkGetExecutionGraphPipelineScratchSizeAMDX)(VkDevice device, VkPipeline executionGraph, VkExecutionGraphPipelineScratchSizeAMDX* pSizeInfo); +typedef VkResult (VKAPI_PTR *PFN_vkGetExecutionGraphPipelineNodeIndexAMDX)(VkDevice device, VkPipeline executionGraph, const VkPipelineShaderStageNodeCreateInfoAMDX* pNodeInfo, uint32_t* pNodeIndex); +typedef void (VKAPI_PTR *PFN_vkCmdInitializeGraphScratchMemoryAMDX)(VkCommandBuffer commandBuffer, VkPipeline executionGraph, VkDeviceAddress scratch, VkDeviceSize scratchSize); +typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, VkDeviceSize scratchSize, const VkDispatchGraphCountInfoAMDX* pCountInfo); +typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphIndirectAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, VkDeviceSize scratchSize, const VkDispatchGraphCountInfoAMDX* pCountInfo); +typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphIndirectCountAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, VkDeviceSize scratchSize, VkDeviceAddress countInfo); #ifndef VK_NO_PROTOTYPES VKAPI_ATTR VkResult VKAPI_CALL vkCreateExecutionGraphPipelinesAMDX( @@ -145,21 +150,26 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetExecutionGraphPipelineNodeIndexAMDX( VKAPI_ATTR void VKAPI_CALL vkCmdInitializeGraphScratchMemoryAMDX( VkCommandBuffer commandBuffer, - VkDeviceAddress scratch); + VkPipeline executionGraph, + VkDeviceAddress scratch, + VkDeviceSize scratchSize); VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphAMDX( VkCommandBuffer commandBuffer, VkDeviceAddress scratch, + VkDeviceSize scratchSize, const VkDispatchGraphCountInfoAMDX* pCountInfo); VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphIndirectAMDX( VkCommandBuffer commandBuffer, VkDeviceAddress scratch, + VkDeviceSize scratchSize, const VkDispatchGraphCountInfoAMDX* pCountInfo); VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphIndirectCountAMDX( VkCommandBuffer commandBuffer, VkDeviceAddress scratch, + VkDeviceSize scratchSize, VkDeviceAddress countInfo); #endif diff --git a/modules/lwjgl/vulkan/src/main/c/vulkan/vulkan_core.h b/modules/lwjgl/vulkan/src/main/c/vulkan/vulkan_core.h index e6c16498af..d9cdd13732 100644 --- a/modules/lwjgl/vulkan/src/main/c/vulkan/vulkan_core.h +++ b/modules/lwjgl/vulkan/src/main/c/vulkan/vulkan_core.h @@ -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 296 +#define VK_HEADER_VERSION 301 // Complete version of this file #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) @@ -508,10 +508,6 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005, VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006, VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000, - VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006, - VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007, - VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = 1000044008, - VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX = 1000044009, VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000, VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000, @@ -553,6 +549,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003, VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000, + VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX = 1000044009, VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000, VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001, @@ -612,6 +609,7 @@ typedef enum VkStructureType { #ifdef VK_ENABLE_BETA_EXTENSIONS VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX = 1000134004, #endif + VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = 1000044008, VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000, VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001, VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002, @@ -703,6 +701,8 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002, VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000, VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001, + VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008, + VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000, VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = 1000210000, VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001, @@ -718,11 +718,13 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001, VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002, + VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007, VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000226000, VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = 1000226001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = 1000226002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = 1000226003, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = 1000226004, + VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR = 1000232000, @@ -848,8 +850,6 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009, VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010, VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011, - VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008, - VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002, @@ -902,6 +902,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000, VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT = 1000361000, VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000, VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001, VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002, @@ -1162,6 +1163,11 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA = 1000575002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT = 1000582000, VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT = 1000582001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI = 1000590000, + VK_STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI = 1000590001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV = 1000593000, + VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV = 1000593001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV = 1000593002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, // VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT is a deprecated alias @@ -1171,7 +1177,6 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES, VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO, - VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD, VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES, @@ -1245,6 +1250,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2, VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2, VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO, + VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD, VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO, VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO, VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO, @@ -2646,8 +2652,6 @@ typedef enum VkPipelineCreateFlagBits { VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010, VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100, VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200, - VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000, - VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000, VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000, VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000, VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000, @@ -2656,6 +2660,8 @@ typedef enum VkPipelineCreateFlagBits { VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000, VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000, VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020, + VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000, + VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000, VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040, VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080, VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000, @@ -2673,12 +2679,12 @@ typedef enum VkPipelineCreateFlagBits { VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = 0x08000000, VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = 0x40000000, VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT, - // VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR is a deprecated alias - VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, - // VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT is a deprecated alias - VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT, VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT, VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE, + // VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT is a deprecated alias + VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT, + // VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR is a deprecated alias + VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT, VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT, VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF @@ -7633,6 +7639,7 @@ typedef enum VkPresentModeKHR { VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3, VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000, VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001, + VK_PRESENT_MODE_FIFO_LATEST_READY_EXT = 1000361000, VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF } VkPresentModeKHR; @@ -8901,38 +8908,6 @@ typedef VkPhysicalDeviceDynamicRenderingFeatures VkPhysicalDeviceDynamicRenderin typedef VkCommandBufferInheritanceRenderingInfo VkCommandBufferInheritanceRenderingInfoKHR; -typedef struct VkRenderingFragmentShadingRateAttachmentInfoKHR { - VkStructureType sType; - const void* pNext; - VkImageView imageView; - VkImageLayout imageLayout; - VkExtent2D shadingRateAttachmentTexelSize; -} VkRenderingFragmentShadingRateAttachmentInfoKHR; - -typedef struct VkRenderingFragmentDensityMapAttachmentInfoEXT { - VkStructureType sType; - const void* pNext; - VkImageView imageView; - VkImageLayout imageLayout; -} VkRenderingFragmentDensityMapAttachmentInfoEXT; - -typedef struct VkAttachmentSampleCountInfoAMD { - VkStructureType sType; - const void* pNext; - uint32_t colorAttachmentCount; - const VkSampleCountFlagBits* pColorAttachmentSamples; - VkSampleCountFlagBits depthStencilAttachmentSamples; -} VkAttachmentSampleCountInfoAMD; - -typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV; - -typedef struct VkMultiviewPerViewAttributesInfoNVX { - VkStructureType sType; - const void* pNext; - VkBool32 perViewAttributes; - VkBool32 perViewAttributesPositionXOnly; -} VkMultiviewPerViewAttributesInfoNVX; - typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderingKHR)(VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo); typedef void (VKAPI_PTR *PFN_vkCmdEndRenderingKHR)(VkCommandBuffer commandBuffer); @@ -10307,6 +10282,14 @@ typedef struct VkPhysicalDeviceFragmentShadingRateKHR { VkExtent2D fragmentSize; } VkPhysicalDeviceFragmentShadingRateKHR; +typedef struct VkRenderingFragmentShadingRateAttachmentInfoKHR { + VkStructureType sType; + const void* pNext; + VkImageView imageView; + VkImageLayout imageLayout; + VkExtent2D shadingRateAttachmentTexelSize; +} VkRenderingFragmentShadingRateAttachmentInfoKHR; + typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates); typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateKHR)(VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]); @@ -10888,27 +10871,12 @@ typedef VkCommandBufferSubmitInfo VkCommandBufferSubmitInfoKHR; typedef VkPhysicalDeviceSynchronization2Features VkPhysicalDeviceSynchronization2FeaturesKHR; -typedef struct VkQueueFamilyCheckpointProperties2NV { - VkStructureType sType; - void* pNext; - VkPipelineStageFlags2 checkpointExecutionStageMask; -} VkQueueFamilyCheckpointProperties2NV; - -typedef struct VkCheckpointData2NV { - VkStructureType sType; - void* pNext; - VkPipelineStageFlags2 stage; - void* pCheckpointMarker; -} VkCheckpointData2NV; - typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo); typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask); typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2KHR)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos); typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2KHR)(VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo); typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2KHR)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query); typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2KHR)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence); -typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarker2AMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker); -typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointData2NV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData); #ifndef VK_NO_PROTOTYPES VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2KHR( @@ -10942,18 +10910,6 @@ VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2KHR( uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence); - -VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarker2AMD( - VkCommandBuffer commandBuffer, - VkPipelineStageFlags2 stage, - VkBuffer dstBuffer, - VkDeviceSize dstOffset, - uint32_t marker); - -VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointData2NV( - VkQueue queue, - uint32_t* pCheckpointDataCount, - VkCheckpointData2NV* pCheckpointData); #endif @@ -11196,6 +11152,9 @@ typedef VkFlags64 VkPipelineCreateFlagBits2KHR; static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR = 0x00000001ULL; static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR = 0x00000002ULL; static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR = 0x00000004ULL; +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX = 0x100000000ULL; +#endif static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x400000000ULL; static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008ULL; static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR = 0x00000010ULL; @@ -11241,7 +11200,9 @@ static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR = 0x00000040ULL; static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR = 0x00000080ULL; static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR = 0x00000100ULL; +#ifdef VK_ENABLE_BETA_EXTENSIONS static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000ULL; +#endif static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200ULL; static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400ULL; static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_RAY_TRACING_BIT_NV = 0x00000400ULL; @@ -13006,6 +12967,13 @@ typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { VkBool32 perViewPositionAllComponents; } VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX; +typedef struct VkMultiviewPerViewAttributesInfoNVX { + VkStructureType sType; + const void* pNext; + VkBool32 perViewAttributes; + VkBool32 perViewAttributesPositionXOnly; +} VkMultiviewPerViewAttributesInfoNVX; + // VK_NV_viewport_swizzle is a preprocessor guard. Do not pass it to API calls. @@ -13374,6 +13342,14 @@ typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFil #define VK_AMD_mixed_attachment_samples 1 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples" +typedef struct VkAttachmentSampleCountInfoAMD { + VkStructureType sType; + const void* pNext; + uint32_t colorAttachmentCount; + const VkSampleCountFlagBits* pColorAttachmentSamples; + VkSampleCountFlagBits depthStencilAttachmentSamples; +} VkAttachmentSampleCountInfoAMD; + // VK_AMD_shader_fragment_mask is a preprocessor guard. Do not pass it to API calls. @@ -13553,6 +13529,8 @@ typedef struct VkPipelineCoverageModulationStateCreateInfoNV { const float* pCoverageModulationTable; } VkPipelineCoverageModulationStateCreateInfoNV; +typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV; + // VK_NV_fill_rectangle is a preprocessor guard. Do not pass it to API calls. @@ -14310,6 +14288,7 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT( #define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1 #define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker" typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker); +typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarker2AMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker); #ifndef VK_NO_PROTOTYPES VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD( @@ -14318,6 +14297,13 @@ VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD( VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker); + +VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarker2AMD( + VkCommandBuffer commandBuffer, + VkPipelineStageFlags2 stage, + VkBuffer dstBuffer, + VkDeviceSize dstOffset, + uint32_t marker); #endif @@ -14588,8 +14574,22 @@ typedef struct VkCheckpointDataNV { void* pCheckpointMarker; } VkCheckpointDataNV; +typedef struct VkQueueFamilyCheckpointProperties2NV { + VkStructureType sType; + void* pNext; + VkPipelineStageFlags2 checkpointExecutionStageMask; +} VkQueueFamilyCheckpointProperties2NV; + +typedef struct VkCheckpointData2NV { + VkStructureType sType; + void* pNext; + VkPipelineStageFlags2 stage; + void* pCheckpointMarker; +} VkCheckpointData2NV; + typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker); typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData); +typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointData2NV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData); #ifndef VK_NO_PROTOTYPES VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV( @@ -14600,6 +14600,11 @@ VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV( VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData); + +VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointData2NV( + VkQueue queue, + uint32_t* pCheckpointDataCount, + VkCheckpointData2NV* pCheckpointData); #endif @@ -14821,6 +14826,13 @@ typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT { VkAttachmentReference fragmentDensityMapAttachment; } VkRenderPassFragmentDensityMapCreateInfoEXT; +typedef struct VkRenderingFragmentDensityMapAttachmentInfoEXT { + VkStructureType sType; + const void* pNext; + VkImageView imageView; + VkImageLayout imageLayout; +} VkRenderingFragmentDensityMapAttachmentInfoEXT; + // VK_EXT_scalar_block_layout is a preprocessor guard. Do not pass it to API calls. @@ -17097,6 +17109,18 @@ typedef struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT { +// VK_EXT_present_mode_fifo_latest_ready is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_present_mode_fifo_latest_ready 1 +#define VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION 1 +#define VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME "VK_EXT_present_mode_fifo_latest_ready" +typedef struct VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 presentModeFifoLatestReady; +} VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT; + + + // VK_HUAWEI_subpass_shading is a preprocessor guard. Do not pass it to API calls. #define VK_HUAWEI_subpass_shading 1 #define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 3 @@ -19627,7 +19651,7 @@ typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT { typedef struct VkGeneratedCommandsMemoryRequirementsInfoEXT { VkStructureType sType; - void* pNext; + const void* pNext; VkIndirectExecutionSetEXT indirectExecutionSet; VkIndirectCommandsLayoutEXT indirectCommandsLayout; uint32_t maxSequenceCount; @@ -19879,6 +19903,74 @@ typedef struct VkPipelineViewportDepthClampControlCreateInfoEXT { +// VK_HUAWEI_hdr_vivid is a preprocessor guard. Do not pass it to API calls. +#define VK_HUAWEI_hdr_vivid 1 +#define VK_HUAWEI_HDR_VIVID_SPEC_VERSION 1 +#define VK_HUAWEI_HDR_VIVID_EXTENSION_NAME "VK_HUAWEI_hdr_vivid" +typedef struct VkPhysicalDeviceHdrVividFeaturesHUAWEI { + VkStructureType sType; + void* pNext; + VkBool32 hdrVivid; +} VkPhysicalDeviceHdrVividFeaturesHUAWEI; + +typedef struct VkHdrVividDynamicMetadataHUAWEI { + VkStructureType sType; + const void* pNext; + size_t dynamicMetadataSize; + const void* pDynamicMetadata; +} VkHdrVividDynamicMetadataHUAWEI; + + + +// VK_NV_cooperative_matrix2 is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_cooperative_matrix2 1 +#define VK_NV_COOPERATIVE_MATRIX_2_SPEC_VERSION 1 +#define VK_NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME "VK_NV_cooperative_matrix2" +typedef struct VkCooperativeMatrixFlexibleDimensionsPropertiesNV { + VkStructureType sType; + void* pNext; + uint32_t MGranularity; + uint32_t NGranularity; + uint32_t KGranularity; + VkComponentTypeKHR AType; + VkComponentTypeKHR BType; + VkComponentTypeKHR CType; + VkComponentTypeKHR ResultType; + VkBool32 saturatingAccumulation; + VkScopeKHR scope; + uint32_t workgroupInvocations; +} VkCooperativeMatrixFlexibleDimensionsPropertiesNV; + +typedef struct VkPhysicalDeviceCooperativeMatrix2FeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 cooperativeMatrixWorkgroupScope; + VkBool32 cooperativeMatrixFlexibleDimensions; + VkBool32 cooperativeMatrixReductions; + VkBool32 cooperativeMatrixConversions; + VkBool32 cooperativeMatrixPerElementOperations; + VkBool32 cooperativeMatrixTensorAddressing; + VkBool32 cooperativeMatrixBlockLoads; +} VkPhysicalDeviceCooperativeMatrix2FeaturesNV; + +typedef struct VkPhysicalDeviceCooperativeMatrix2PropertiesNV { + VkStructureType sType; + void* pNext; + uint32_t cooperativeMatrixWorkgroupScopeMaxWorkgroupSize; + uint32_t cooperativeMatrixFlexibleDimensionsMaxDimension; + uint32_t cooperativeMatrixWorkgroupScopeReservedSharedMemory; +} VkPhysicalDeviceCooperativeMatrix2PropertiesNV; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV( + VkPhysicalDevice physicalDevice, + uint32_t* pPropertyCount, + VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties); +#endif + + // VK_KHR_acceleration_structure is a preprocessor guard. Do not pass it to API calls. #define VK_KHR_acceleration_structure 1 #define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13 diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/Custom.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/Custom.kt index 5bf45ffc3d..9fa12f4f56 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/Custom.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/Custom.kt @@ -55,7 +55,7 @@ fun templateCustomization() { IntConstant( "The Vulkan registry version used to generate the LWJGL bindings.", - "HEADER_VERSION".."296" + "HEADER_VERSION".."301" ) LongConstant( diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/ExtensionTypes.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/ExtensionTypes.kt index 6b8af91002..5bc8f96b25 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/ExtensionTypes.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/ExtensionTypes.kt @@ -516,7 +516,7 @@ val VkSurfaceCapabilitiesKHR = struct(Module.VULKAN, "VkSurfaceCapabilitiesKHR", VkSurfaceTransformFlagsKHR("supportedTransforms", "a bitmask of {@code VkSurfaceTransformFlagBitsKHR} indicating the presentation transforms supported for the surface on the specified device. At least one bit will be set.") VkSurfaceTransformFlagBitsKHR("currentTransform", "{@code VkSurfaceTransformFlagBitsKHR} value indicating the surface’s current transform relative to the presentation engine’s natural orientation.") VkCompositeAlphaFlagsKHR("supportedCompositeAlpha", "a bitmask of {@code VkCompositeAlphaFlagBitsKHR}, representing the alpha compositing modes supported by the presentation engine for the surface on the specified device, and at least one bit will be set. Opaque composition can be achieved in any alpha compositing mode by either using an image format that has no alpha component, or by ensuring that all pixels in the presentable images have an alpha value of 1.0.") - VkImageUsageFlags("supportedUsageFlags", "a bitmask of {@code VkImageUsageFlagBits} representing the ways the application can use the presentable images of a swapchain created with {@code VkPresentModeKHR} set to #PRESENT_MODE_IMMEDIATE_KHR, #PRESENT_MODE_MAILBOX_KHR, #PRESENT_MODE_FIFO_KHR or #PRESENT_MODE_FIFO_RELAXED_KHR for the surface on the specified device. #IMAGE_USAGE_COLOR_ATTACHMENT_BIT must be included in the set. Implementations may support additional usages.") + VkImageUsageFlags("supportedUsageFlags", "a bitmask of {@code VkImageUsageFlagBits} representing the ways the application can use the presentable images of a swapchain created with {@code VkPresentModeKHR} set to #PRESENT_MODE_FIFO_LATEST_READY_EXT, #PRESENT_MODE_IMMEDIATE_KHR, #PRESENT_MODE_MAILBOX_KHR, #PRESENT_MODE_FIFO_KHR or #PRESENT_MODE_FIFO_RELAXED_KHR for the surface on the specified device. #IMAGE_USAGE_COLOR_ATTACHMENT_BIT must be included in the set. Implementations may support additional usages.") } val VkSurfaceFormatKHR = struct(Module.VULKAN, "VkSurfaceFormatKHR", mutable = false) { @@ -541,9 +541,8 @@ val VkSwapchainCreateInfoKHR = struct(Module.VULKAN, "VkSwapchainCreateInfoKHR")
    • {@code surface} must be a surface that is supported by the device as determined using #GetPhysicalDeviceSurfaceSupportKHR()
    • {@code minImageCount} must be less than or equal to the value returned in the {@code maxImageCount} member of the ##VkSurfaceCapabilitiesKHR structure returned by {@code vkGetPhysicalDeviceSurfaceCapabilitiesKHR} for the surface if the returned {@code maxImageCount} is not zero
    • -
    • If the {@code swapchainMaintenance1} feature is not enabled, then the {@code pNext} chain must not include a ##VkSwapchainPresentModesCreateInfoEXT structure
    • -
    • If the {@code swapchainMaintenance1} feature is not enabled, then the {@code pNext} chain must not include a ##VkSwapchainPresentScalingCreateInfoEXT structure If {@code presentMode} is not #PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR nor #PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR, then {@code minImageCount} must be greater than or equal to the value returned in the {@code minImageCount} member of the ##VkSurfaceCapabilitiesKHR structure returned by #GetPhysicalDeviceSurfaceCapabilitiesKHR() for the surface
    • +
    • If {@code presentMode} is not #PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR nor #PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR, then {@code minImageCount} must be greater than or equal to the value returned in the {@code minImageCount} member of the ##VkSurfaceCapabilitiesKHR structure returned by #GetPhysicalDeviceSurfaceCapabilitiesKHR() for the surface
    • {@code minImageCount} must be 1 if {@code presentMode} is either #PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR or #PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR
    • {@code imageFormat} and {@code imageColorSpace} must match the {@code format} and {@code colorSpace} members, respectively, of one of the ##VkSurfaceFormatKHR structures returned by {@code vkGetPhysicalDeviceSurfaceFormatsKHR} for the surface
    • If a ##VkSwapchainPresentScalingCreateInfoEXT structure was not included in the {@code pNext} chain, or it is included and ##VkSwapchainPresentScalingCreateInfoEXT{@code ::scalingBehavior} is zero then {@code imageExtent} must be between {@code minImageExtent} and {@code maxImageExtent}, inclusive, where {@code minImageExtent} and {@code maxImageExtent} are members of the ##VkSurfaceCapabilitiesKHR structure returned by {@code vkGetPhysicalDeviceSurfaceCapabilitiesKHR} for the surface
    • @@ -551,7 +550,7 @@ val VkSwapchainCreateInfoKHR = struct(Module.VULKAN, "VkSwapchainCreateInfoKHR")
    • If the {@code swapchainMaintenance1} feature is not enabled, then {@code flags} must not include #SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT
    • {@code imageExtent} members {@code width} and {@code height} must both be non-zero
    • {@code imageArrayLayers} must be greater than 0 and less than or equal to the {@code maxImageArrayLayers} member of the ##VkSurfaceCapabilitiesKHR structure returned by {@code vkGetPhysicalDeviceSurfaceCapabilitiesKHR} for the surface
    • -
    • If {@code presentMode} is #PRESENT_MODE_IMMEDIATE_KHR, #PRESENT_MODE_MAILBOX_KHR, #PRESENT_MODE_FIFO_KHR or #PRESENT_MODE_FIFO_RELAXED_KHR, {@code imageUsage} must be a subset of the supported usage flags present in the {@code supportedUsageFlags} member of the ##VkSurfaceCapabilitiesKHR structure returned by #GetPhysicalDeviceSurfaceCapabilitiesKHR() for {@code surface}
    • +
    • If {@code presentMode} is #PRESENT_MODE_FIFO_LATEST_READY_EXT, #PRESENT_MODE_IMMEDIATE_KHR, #PRESENT_MODE_MAILBOX_KHR, #PRESENT_MODE_FIFO_KHR or #PRESENT_MODE_FIFO_RELAXED_KHR, {@code imageUsage} must be a subset of the supported usage flags present in the {@code supportedUsageFlags} member of the ##VkSurfaceCapabilitiesKHR structure returned by #GetPhysicalDeviceSurfaceCapabilitiesKHR() for {@code surface}
    • If {@code presentMode} is #PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR or #PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR, {@code imageUsage} must be a subset of the supported usage flags present in the {@code sharedPresentSupportedUsageFlags} member of the ##VkSharedPresentSurfaceCapabilitiesKHR structure returned by #GetPhysicalDeviceSurfaceCapabilities2KHR() for {@code surface}
    • If {@code imageSharingMode} is #SHARING_MODE_CONCURRENT, {@code pQueueFamilyIndices} must be a valid pointer to an array of {@code queueFamilyIndexCount} {@code uint32_t} values
    • If {@code imageSharingMode} is #SHARING_MODE_CONCURRENT, {@code queueFamilyIndexCount} must be greater than 1
    • @@ -559,6 +558,7 @@ val VkSwapchainCreateInfoKHR = struct(Module.VULKAN, "VkSwapchainCreateInfoKHR")
    • {@code preTransform} must be one of the bits present in the {@code supportedTransforms} member of the ##VkSurfaceCapabilitiesKHR structure returned by {@code vkGetPhysicalDeviceSurfaceCapabilitiesKHR} for the surface
    • {@code compositeAlpha} must be one of the bits present in the {@code supportedCompositeAlpha} member of the ##VkSurfaceCapabilitiesKHR structure returned by {@code vkGetPhysicalDeviceSurfaceCapabilitiesKHR} for the surface
    • {@code presentMode} must be one of the {@code VkPresentModeKHR} values returned by {@code vkGetPhysicalDeviceSurfacePresentModesKHR} for the surface
    • +
    • If the {@code presentModeFifoLatestReady} feature is not enabled, {@code presentMode} must not be #PRESENT_MODE_FIFO_LATEST_READY_EXT
    • If the logical device was created with ##VkDeviceGroupDeviceCreateInfo{@code ::physicalDeviceCount} equal to 1, {@code flags} must not contain #SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR
    • If {@code oldSwapchain} is not #NULL_HANDLE, {@code oldSwapchain} must be a non-retired swapchain associated with native window referred to by {@code surface}
    • The implied image creation parameters of the swapchain must be supported as reported by #GetPhysicalDeviceImageFormatProperties()
    • @@ -619,9 +619,9 @@ val VkSwapchainCreateInfoKHR = struct(Module.VULKAN, "VkSwapchainCreateInfoKHR") VkBool32("clipped", """specifies whether the Vulkan implementation is allowed to discard rendering operations that affect regions of the surface that are not visible.
        -
      • If set to #TRUE, the presentable images associated with the swapchain may not own all of their pixels. Pixels in the presentable images that correspond to regions of the target surface obscured by another window on the desktop, or subject to some other clipping mechanism will have undefined content when read back. Fragment shaders may not execute for these pixels, and thus any side effects they would have had will not occur. Setting #TRUE does not guarantee any clipping will occur, but allows more efficient presentation methods to be used on some platforms.
      • +
      • If {@code clipped} is #TRUE, the presentable images associated with the swapchain may not own all of their pixels. Pixels in the presentable images that correspond to regions of the target surface obscured by another window on the desktop, or subject to some other clipping mechanism will have undefined content when read back. Fragment shaders may not execute for these pixels, and thus any side effects they would have had will not occur. Setting #TRUE does not guarantee any clipping will occur, but allows more efficient presentation methods to be used on some platforms.
      • - If set to #FALSE, presentable images associated with the swapchain will own all of the pixels they contain. + If {@code clipped} is #FALSE, presentable images associated with the swapchain will own all of the pixels they contain.
        Note
        Applications should set this value to #TRUE if they do not expect to read back the content of presentable images before presenting them or after reacquiring them, and if their fragment shaders do not have any side effects that require them to run for all pixels in the presentable image.
        @@ -651,7 +651,7 @@ val VkPresentInfoKHR = struct(Module.VULKAN, "VkPresentInfoKHR") { Before an application can present an image, the image’s layout must be transitioned to the #IMAGE_LAYOUT_PRESENT_SRC_KHR layout, or for a shared presentable image the #IMAGE_LAYOUT_SHARED_PRESENT_KHR layout.
        Note
        - When transitioning the image to #IMAGE_LAYOUT_SHARED_PRESENT_KHR or #IMAGE_LAYOUT_PRESENT_SRC_KHR, there is no need to delay subsequent processing, or perform any visibility operations (as #QueuePresentKHR() performs automatic visibility operations). To achieve this, the {@code dstAccessMask} member of the ##VkImageMemoryBarrier should be set to 0, and the {@code dstStageMask} parameter should be set to #PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT. + When transitioning the image to #IMAGE_LAYOUT_SHARED_PRESENT_KHR or #IMAGE_LAYOUT_PRESENT_SRC_KHR, there is no need to delay subsequent processing, or perform any visibility operations (as #QueuePresentKHR() performs automatic visibility operations). To achieve this, the {@code dstAccessMask} member of the ##VkImageMemoryBarrier should be 0, and the {@code dstStageMask} parameter should be #PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT.
        Valid Usage
        @@ -1305,7 +1305,7 @@ val VkDebugMarkerObjectNameInfoEXT = struct(Module.VULKAN, "VkDebugMarkerObjectN Specify parameters of a name to give to an object.
        Description
        - Applications may change the name associated with an object simply by calling {@code vkDebugMarkerSetObjectNameEXT} again with a new string. To remove a previously set name, {@code pObjectName} should be set to an empty string. + Applications may change the name associated with an object simply by calling {@code vkDebugMarkerSetObjectNameEXT} again with a new string. To remove a previously set name, {@code pObjectName} should be an empty string.
        Valid Usage
          @@ -1389,7 +1389,7 @@ val VkDebugMarkerMarkerInfoEXT = struct(Module.VULKAN, "VkDebugMarkerMarkerInfoE Expression("#STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.") nullable..opaque_const_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.") charUTF8.const.p("pMarkerName", "a pointer to a null-terminated UTF-8 string containing the name of the marker.") - float("color", "an optional RGBA color value that can be associated with the marker. A particular implementation may choose to ignore this color value. The values contain RGBA values in order, in the range 0.0 to 1.0. If all elements in {@code color} are set to 0.0 then it is ignored.")[4] + float("color", "an optional RGBA color value that can be associated with the marker. A particular implementation may choose to ignore this color value. The values contain RGBA values in order, in the range 0.0 to 1.0. If all elements in {@code color} are 0.0, then it is ignored.")[4] } val VkQueueFamilyQueryResultStatusPropertiesKHR = struct(Module.VULKAN, "VkQueueFamilyQueryResultStatusPropertiesKHR", mutable = false) { @@ -2251,7 +2251,7 @@ val VkPhysicalDeviceTransformFeedbackPropertiesEXT = struct(Module.VULKAN, "VkPh Expression("#STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.").mutable() nullable..opaque_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.").mutable() - uint32_t("maxTransformFeedbackStreams", "the maximum number of vertex streams that can be output from geometry shaders declared with the {@code GeometryStreams} capability. If the implementation does not support ##VkPhysicalDeviceTransformFeedbackFeaturesEXT{@code ::geometryStreams} then {@code maxTransformFeedbackStreams} must be set to 1.") + uint32_t("maxTransformFeedbackStreams", "the maximum number of vertex streams that can be output from geometry shaders declared with the {@code GeometryStreams} capability. If the implementation does not support ##VkPhysicalDeviceTransformFeedbackFeaturesEXT{@code ::geometryStreams} then {@code maxTransformFeedbackStreams} must be 1.") uint32_t("maxTransformFeedbackBuffers", "the maximum number of transform feedback buffers that can be bound for capturing shader outputs from the last pre-rasterization shader stage.") VkDeviceSize("maxTransformFeedbackBufferSize", "the maximum size that can be specified when binding a buffer for transform feedback in #CmdBindTransformFeedbackBuffersEXT().") uint32_t("maxTransformFeedbackStreamDataSize", "the maximum amount of data in bytes for each vertex that captured to one or more transform feedback buffers associated with a specific vertex stream.") @@ -2517,7 +2517,7 @@ val VkVideoEncodeH264SessionCreateInfoKHR = struct(Module.VULKAN, "VkVideoEncode Expression("#STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.") nullable..opaque_const_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.") - VkBool32("useMaxLevelIdc", "indicates whether the value of {@code maxLevelIdc} should be used by the implementation. When it is set to #FALSE, the implementation ignores the value of {@code maxLevelIdc} and uses the value of ##VkVideoEncodeH264CapabilitiesKHR{@code ::maxLevelIdc}, as reported by #GetPhysicalDeviceVideoCapabilitiesKHR() for the video profile.") + VkBool32("useMaxLevelIdc", "indicates whether the value of {@code maxLevelIdc} should be used by the implementation. When it is #FALSE, the implementation ignores the value of {@code maxLevelIdc} and uses the value of ##VkVideoEncodeH264CapabilitiesKHR{@code ::maxLevelIdc}, as reported by #GetPhysicalDeviceVideoCapabilitiesKHR() for the video profile.") StdVideoH264LevelIdc("maxLevelIdc", "a {@code StdVideoH264LevelIdc} value specifying the upper bound on the H.264 level for the video bitstreams produced by the created video session, where enum constant {@code STD_VIDEO_H264_LEVEL_IDC_<major>_<minor>} identifies H.264 level {@code <major>.<minor>} as defined in section A.3 of the ITU-T H.264 Specification.") } @@ -2591,8 +2591,8 @@ val VkVideoEncodeH264SessionParametersGetInfoKHR = struct(Module.VULKAN, "VkVide When this structure is specified in the {@code pNext} chain of the ##VkVideoEncodeSessionParametersGetInfoKHR structure passed to #GetEncodedVideoSessionParametersKHR(), the command will write encoded parameter data to the output buffer in the following order:
          Valid Usage
          @@ -2611,7 +2611,7 @@ val VkVideoEncodeH264SessionParametersGetInfoKHR = struct(Module.VULKAN, "VkVide VkBool32("writeStdSPS", "indicates whether the encoded H.264 sequence parameter set identified by {@code stdSPSId} is requested to be retrieved.") VkBool32("writeStdPPS", "indicates whether the encoded H.264 picture parameter set identified by the pair constructed from {@code stdSPSId} and {@code stdPPSId} is requested to be retrieved.") uint32_t("stdSPSId", "specifies the H.264 sequence parameter set ID used to identify the retrieved H.264 sequence and/or picture parameter set(s).") - uint32_t("stdPPSId", "specifies the H.264 picture parameter set ID used to identify the retrieved H.264 picture parameter set when {@code writeStdPPS} is set to #TRUE.") + uint32_t("stdPPSId", "specifies the H.264 picture parameter set ID used to identify the retrieved H.264 picture parameter set when {@code writeStdPPS} is #TRUE.") } val VkVideoEncodeH264SessionParametersFeedbackInfoKHR = struct(Module.VULKAN, "VkVideoEncodeH264SessionParametersFeedbackInfoKHR", mutable = false) { @@ -2860,8 +2860,8 @@ val VkVideoEncodeH264RateControlInfoKHR = struct(Module.VULKAN, "VkVideoEncodeH2 Expression("#STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.") nullable..opaque_const_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.") VkVideoEncodeH264RateControlFlagsKHR("flags", "a bitmask of {@code VkVideoEncodeH264RateControlFlagBitsKHR} specifying H.264 rate control flags.") - uint32_t("gopFrameCount", "the number of frames within a group of pictures (GOP) intended to be used by the application. If it is set to 0, the rate control algorithm may assume an implementation-dependent GOP length. If it is set to {@code UINT32_MAX}, the GOP length is treated as infinite.") - uint32_t("idrPeriod", "the interval, in terms of number of frames, between two IDR frames (see IDR period). If it is set to 0, the rate control algorithm may assume an implementation-dependent IDR period. If it is set to {@code UINT32_MAX}, the IDR period is treated as infinite.") + uint32_t("gopFrameCount", "the number of frames within a group of pictures (GOP) intended to be used by the application. If it is 0, the rate control algorithm may assume an implementation-dependent GOP length. If it is {@code UINT32_MAX}, the GOP length is treated as infinite.") + uint32_t("idrPeriod", "the interval, in terms of number of frames, between two IDR frames (see IDR period). If it is 0, the rate control algorithm may assume an implementation-dependent IDR period. If it is {@code UINT32_MAX}, the IDR period is treated as infinite.") uint32_t("consecutiveBFrameCount", "the number of consecutive B frames between I and/or P frames within the GOP.") uint32_t("temporalLayerCount", "specifies the number of H.264 temporal layers that the application intends to use.") } @@ -2923,11 +2923,11 @@ val VkVideoEncodeH264RateControlLayerInfoKHR = struct(Module.VULKAN, "VkVideoEnc Expression("#STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.") nullable..opaque_const_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.") VkBool32("useMinQp", "indicates whether the QP values determined by rate control will be clamped to the lower bounds on the QP values specified in {@code minQp}.") - VkVideoEncodeH264QpKHR("minQp", "specifies the lower bounds on the QP values, for each picture type, that the implementation’s rate control algorithm will use when {@code useMinQp} is set to #TRUE.") + VkVideoEncodeH264QpKHR("minQp", "specifies the lower bounds on the QP values, for each picture type, that the implementation’s rate control algorithm will use when {@code useMinQp} is #TRUE.") VkBool32("useMaxQp", "indicates whether the QP values determined by rate control will be clamped to the upper bounds on the QP values specified in {@code maxQp}.") - VkVideoEncodeH264QpKHR("maxQp", "specifies the upper bounds on the QP values, for each picture type, that the implementation’s rate control algorithm will use when {@code useMaxQp} is set to #TRUE.") + VkVideoEncodeH264QpKHR("maxQp", "specifies the upper bounds on the QP values, for each picture type, that the implementation’s rate control algorithm will use when {@code useMaxQp} is #TRUE.") VkBool32("useMaxFrameSize", "indicates whether the implementation’s rate control algorithm should use the values specified in {@code maxFrameSize} as the upper bounds on the encoded frame size for each picture type.") - VkVideoEncodeH264FrameSizeKHR("maxFrameSize", "specifies the upper bounds on the encoded frame size, for each picture type, when {@code useMaxFrameSize} is set to #TRUE.") + VkVideoEncodeH264FrameSizeKHR("maxFrameSize", "specifies the upper bounds on the encoded frame size, for each picture type, when {@code useMaxFrameSize} is #TRUE.") } val VkVideoEncodeH264GopRemainingFrameInfoKHR = struct(Module.VULKAN, "VkVideoEncodeH264GopRemainingFrameInfoKHR") { @@ -3013,7 +3013,7 @@ val VkVideoEncodeH265SessionCreateInfoKHR = struct(Module.VULKAN, "VkVideoEncode Expression("#STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.") nullable..opaque_const_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.") - VkBool32("useMaxLevelIdc", "indicates whether the value of {@code maxLevelIdc} should be used by the implementation. When it is set to #FALSE, the implementation ignores the value of {@code maxLevelIdc} and uses the value of ##VkVideoEncodeH265CapabilitiesKHR{@code ::maxLevelIdc}, as reported by #GetPhysicalDeviceVideoCapabilitiesKHR() for the video profile.") + VkBool32("useMaxLevelIdc", "indicates whether the value of {@code maxLevelIdc} should be used by the implementation. When it is #FALSE, the implementation ignores the value of {@code maxLevelIdc} and uses the value of ##VkVideoEncodeH265CapabilitiesKHR{@code ::maxLevelIdc}, as reported by #GetPhysicalDeviceVideoCapabilitiesKHR() for the video profile.") StdVideoH265LevelIdc("maxLevelIdc", "a {@code StdVideoH265LevelIdc} value specifying the upper bound on the H.265 level for the video bitstreams produced by the created video session, where enum constant {@code STD_VIDEO_H265_LEVEL_IDC_<major>_<minor>} identifies H.265 level {@code <major>.<minor>} as defined in section A.4 of the ITU-T H.265 Specification.") } @@ -3132,9 +3132,9 @@ val VkVideoEncodeH265SessionParametersGetInfoKHR = struct(Module.VULKAN, "VkVide When this structure is specified in the {@code pNext} chain of the ##VkVideoEncodeSessionParametersGetInfoKHR structure passed to #GetEncodedVideoSessionParametersKHR(), the command will write encoded parameter data to the output buffer in the following order:
            -
          • The H.265 video parameter set identified by {@code stdVPSId}, if {@code writeStdVPS} is set to #TRUE.
          • -
          • The H.265 sequence parameter set identified by the pair constructed from {@code stdVPSId} and {@code stdSPSId}, if {@code writeStdSPS} is set to #TRUE.
          • -
          • The H.265 picture parameter set identified by the triplet constructed from {@code stdVPSId}, {@code stdSPSId}, and {@code stdPPSId}, if {@code writeStdPPS} is set to #TRUE.
          • +
          • The H.265 video parameter set identified by {@code stdVPSId}, if {@code writeStdVPS} is #TRUE.
          • +
          • The H.265 sequence parameter set identified by the pair constructed from {@code stdVPSId} and {@code stdSPSId}, if {@code writeStdSPS} is #TRUE.
          • +
          • The H.265 picture parameter set identified by the triplet constructed from {@code stdVPSId}, {@code stdSPSId}, and {@code stdPPSId}, if {@code writeStdPPS} is #TRUE.
          Valid Usage
          @@ -3154,8 +3154,8 @@ val VkVideoEncodeH265SessionParametersGetInfoKHR = struct(Module.VULKAN, "VkVide VkBool32("writeStdSPS", "indicates whether the encoded H.265 sequence parameter set identified by the pair constructed from {@code stdVPSId} and {@code stdSPSId} is requested to be retrieved.") VkBool32("writeStdPPS", "indicates whether the encoded H.265 picture parameter set identified by the triplet constructed from {@code stdVPSId}, {@code stdSPSId}, and {@code stdPPSId} is requested to be retrieved.") uint32_t("stdVPSId", "specifies the H.265 video parameter set ID used to identify the retrieved H.265 video, sequence, and/or picture parameter set(s).") - uint32_t("stdSPSId", "specifies the H.265 sequence parameter set ID used to identify the retrieved H.265 sequence and/or picture parameter set(s) when {@code writeStdSPS} and/or {@code writeStdPPS} is set to #TRUE.") - uint32_t("stdPPSId", "specifies the H.265 picture parameter set ID used to identify the retrieved H.265 picture parameter set when {@code writeStdPPS} is set to #TRUE.") + uint32_t("stdSPSId", "specifies the H.265 sequence parameter set ID used to identify the retrieved H.265 sequence and/or picture parameter set(s) when {@code writeStdSPS} and/or {@code writeStdPPS} is #TRUE.") + uint32_t("stdPPSId", "specifies the H.265 picture parameter set ID used to identify the retrieved H.265 picture parameter set when {@code writeStdPPS} is #TRUE.") } val VkVideoEncodeH265SessionParametersFeedbackInfoKHR = struct(Module.VULKAN, "VkVideoEncodeH265SessionParametersFeedbackInfoKHR", mutable = false) { @@ -3420,8 +3420,8 @@ val VkVideoEncodeH265RateControlInfoKHR = struct(Module.VULKAN, "VkVideoEncodeH2 Expression("#STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.") nullable..opaque_const_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.") VkVideoEncodeH265RateControlFlagsKHR("flags", "a bitmask of {@code VkVideoEncodeH265RateControlFlagBitsKHR} specifying H.265 rate control flags.") - uint32_t("gopFrameCount", "the number of frames within a group of pictures (GOP) intended to be used by the application. If it is set to 0, the rate control algorithm may assume an implementation-dependent GOP length. If it is set to {@code UINT32_MAX}, the GOP length is treated as infinite.") - uint32_t("idrPeriod", "the interval, in terms of number of frames, between two IDR frames (see IDR period). If it is set to 0, the rate control algorithm may assume an implementation-dependent IDR period. If it is set to {@code UINT32_MAX}, the IDR period is treated as infinite.") + uint32_t("gopFrameCount", "the number of frames within a group of pictures (GOP) intended to be used by the application. If it is 0, the rate control algorithm may assume an implementation-dependent GOP length. If it is {@code UINT32_MAX}, the GOP length is treated as infinite.") + uint32_t("idrPeriod", "the interval, in terms of number of frames, between two IDR frames (see IDR period). If it is 0, the rate control algorithm may assume an implementation-dependent IDR period. If it is {@code UINT32_MAX}, the IDR period is treated as infinite.") uint32_t("consecutiveBFrameCount", "the number of consecutive B frames between I and/or P frames within the GOP.") uint32_t("subLayerCount", "specifies the number of H.265 sub-layers that the application intends to use.") } @@ -3483,11 +3483,11 @@ val VkVideoEncodeH265RateControlLayerInfoKHR = struct(Module.VULKAN, "VkVideoEnc Expression("#STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.") nullable..opaque_const_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.") VkBool32("useMinQp", "indicates whether the QP values determined by rate control will be clamped to the lower bounds on the QP values specified in {@code minQp}.") - VkVideoEncodeH265QpKHR("minQp", "specifies the lower bounds on the QP values, for each picture type, that the implementation’s rate control algorithm will use when {@code useMinQp} is set to #TRUE.") + VkVideoEncodeH265QpKHR("minQp", "specifies the lower bounds on the QP values, for each picture type, that the implementation’s rate control algorithm will use when {@code useMinQp} is #TRUE.") VkBool32("useMaxQp", "indicates whether the QP values determined by rate control will be clamped to the upper bounds on the QP values specified in {@code maxQp}.") - VkVideoEncodeH265QpKHR("maxQp", "specifies the upper bounds on the QP values, for each picture type, that the implementation’s rate control algorithm will use when {@code useMaxQp} is set to #TRUE.") + VkVideoEncodeH265QpKHR("maxQp", "specifies the upper bounds on the QP values, for each picture type, that the implementation’s rate control algorithm will use when {@code useMaxQp} is #TRUE.") VkBool32("useMaxFrameSize", "indicates whether the implementation’s rate control algorithm should use the values specified in {@code maxFrameSize} as the upper bounds on the encoded frame size for each picture type.") - VkVideoEncodeH265FrameSizeKHR("maxFrameSize", "specifies the upper bounds on the encoded frame size, for each picture type, when {@code useMaxFrameSize} is set to #TRUE.") + VkVideoEncodeH265FrameSizeKHR("maxFrameSize", "specifies the upper bounds on the encoded frame size, for each picture type, when {@code useMaxFrameSize} is #TRUE.") } val VkVideoEncodeH265GopRemainingFrameInfoKHR = struct(Module.VULKAN, "VkVideoEncodeH265GopRemainingFrameInfoKHR") { @@ -3859,129 +3859,6 @@ val VkCommandBufferInheritanceRenderingInfoKHR = struct(Module.VULKAN, "VkComman VkSampleCountFlagBits("rasterizationSamples", "") } -val VkRenderingFragmentShadingRateAttachmentInfoKHR = struct(Module.VULKAN, "VkRenderingFragmentShadingRateAttachmentInfoKHR") { - documentation = - """ - Structure specifying fragment shading rate attachment information. - -
          Description
          - This structure can be included in the {@code pNext} chain of ##VkRenderingInfo to define a fragment shading rate attachment. If {@code imageView} is #NULL_HANDLE, or if this structure is not specified, the implementation behaves as if a valid shading rate attachment was specified with all texels specifying a single pixel per fragment. - -
          Valid Usage
          -
            -
          • If {@code imageView} is not #NULL_HANDLE, {@code layout} must be #IMAGE_LAYOUT_GENERAL or #IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR
          • -
          • If {@code imageView} is not #NULL_HANDLE, it must have been created with #IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
          • -
          • If {@code imageView} is not #NULL_HANDLE, {@code shadingRateAttachmentTexelSize.width} must be a power of two value
          • -
          • If {@code imageView} is not #NULL_HANDLE, {@code shadingRateAttachmentTexelSize.width} must be less than or equal to {@code maxFragmentShadingRateAttachmentTexelSize.width}
          • -
          • If {@code imageView} is not #NULL_HANDLE, {@code shadingRateAttachmentTexelSize.width} must be greater than or equal to {@code minFragmentShadingRateAttachmentTexelSize.width}
          • -
          • If {@code imageView} is not #NULL_HANDLE, {@code shadingRateAttachmentTexelSize.height} must be a power of two value
          • -
          • If {@code imageView} is not #NULL_HANDLE, {@code shadingRateAttachmentTexelSize.height} must be less than or equal to {@code maxFragmentShadingRateAttachmentTexelSize.height}
          • -
          • If {@code imageView} is not #NULL_HANDLE, {@code shadingRateAttachmentTexelSize.height} must be greater than or equal to {@code minFragmentShadingRateAttachmentTexelSize.height}
          • -
          • If {@code imageView} is not #NULL_HANDLE, the quotient of {@code shadingRateAttachmentTexelSize.width} and {@code shadingRateAttachmentTexelSize.height} must be less than or equal to {@code maxFragmentShadingRateAttachmentTexelSizeAspectRatio}
          • -
          • If {@code imageView} is not #NULL_HANDLE, the quotient of {@code shadingRateAttachmentTexelSize.height} and {@code shadingRateAttachmentTexelSize.width} must be less than or equal to {@code maxFragmentShadingRateAttachmentTexelSizeAspectRatio}
          • -
          - -
          Valid Usage (Implicit)
          -
            -
          • {@code sType} must be #STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR
          • -
          • If {@code imageView} is not #NULL_HANDLE, {@code imageView} must be a valid {@code VkImageView} handle
          • -
          • {@code imageLayout} must be a valid {@code VkImageLayout} value
          • -
          - -
          See Also
          - ##VkExtent2D - """ - - Expression("#STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.") - nullable..opaque_const_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.") - VkImageView("imageView", "the image view that will be used as a fragment shading rate attachment.") - VkImageLayout("imageLayout", "the layout that {@code imageView} will be in during rendering.") - VkExtent2D("shadingRateAttachmentTexelSize", "specifies the number of pixels corresponding to each texel in {@code imageView}.") -} - -val VkRenderingFragmentDensityMapAttachmentInfoEXT = struct(Module.VULKAN, "VkRenderingFragmentDensityMapAttachmentInfoEXT") { - documentation = - """ - Structure specifying fragment shading rate attachment information. - -
          Description
          - This structure can be included in the {@code pNext} chain of ##VkRenderingInfo to define a fragment density map. If this structure is not included in the {@code pNext} chain, {@code imageView} is treated as #NULL_HANDLE. - -
          Valid Usage
          -
            -
          • If {@code imageView} is not #NULL_HANDLE, {@code imageLayout} must be #IMAGE_LAYOUT_GENERAL or #IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT
          • -
          • If {@code imageView} is not #NULL_HANDLE, it must have been created with #IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT
          • -
          • If {@code imageView} is not #NULL_HANDLE, it must not have been created with #IMAGE_CREATE_SUBSAMPLED_BIT_EXT
          • -
          • If the {@code multiview} feature is not enabled, ##VkPhysicalDeviceProperties{@code ::apiVersion} is less than Vulkan 1.1, and {@code imageView} is not #NULL_HANDLE, it must have a {@code layerCount} equal to 1
          • -
          - -
          Valid Usage (Implicit)
          -
            -
          • {@code sType} must be #STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT
          • -
          • {@code imageView} must be a valid {@code VkImageView} handle
          • -
          • {@code imageLayout} must be a valid {@code VkImageLayout} value
          • -
          - """ - - Expression("#STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.") - nullable..opaque_const_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.") - VkImageView("imageView", "the image view that will be used as a fragment density map attachment.") - VkImageLayout("imageLayout", "the layout that {@code imageView} will be in during rendering.") -} - -val VkAttachmentSampleCountInfoAMD = struct(Module.VULKAN, "VkAttachmentSampleCountInfoAMD") { - documentation = - """ - Structure specifying command buffer inheritance info for dynamic render pass instances. - -
          Description
          - If ##VkCommandBufferInheritanceInfo{@code ::renderPass} is #NULL_HANDLE, #COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT is specified in ##VkCommandBufferBeginInfo{@code ::flags}, and the {@code pNext} chain of ##VkCommandBufferInheritanceInfo includes ##VkAttachmentSampleCountInfoAMD, then this structure defines the sample counts of each attachment within the render pass instance. If ##VkAttachmentSampleCountInfoAMD is not included, the value of ##VkCommandBufferInheritanceRenderingInfo{@code ::rasterizationSamples} is used as the sample count for each attachment. If ##VkCommandBufferInheritanceInfo{@code ::renderPass} is not #NULL_HANDLE, or #COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT is not specified in ##VkCommandBufferBeginInfo{@code ::flags}, parameters of this structure are ignored. - - ##VkAttachmentSampleCountInfoAMD can also be included in the {@code pNext} chain of ##VkGraphicsPipelineCreateInfo. When a graphics pipeline is created without a {@code VkRenderPass}, if this structure is included in the {@code pNext} chain of ##VkGraphicsPipelineCreateInfo, it specifies the sample count of attachments used for rendering. If this structure is not specified, and the pipeline does not include a {@code VkRenderPass}, the value of ##VkPipelineMultisampleStateCreateInfo{@code ::rasterizationSamples} is used as the sample count for each attachment. If a graphics pipeline is created with a valid {@code VkRenderPass}, parameters of this structure are ignored. - -
          Valid Usage (Implicit)
          -
            -
          • {@code sType} must be #STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD
          • -
          - """ - - Expression("#STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.") - nullable..opaque_const_p("pNext", "{@code NULL} or a pointer to a structure extending this structure") - AutoSize("pColorAttachmentSamples", optional = true)..uint32_t("colorAttachmentCount", "the number of color attachments specified in a render pass instance.") - nullable..VkSampleCountFlagBits.const.p("pColorAttachmentSamples", "a pointer to an array of {@code VkSampleCountFlagBits} values defining the sample count of color attachments.") - VkSampleCountFlagBits("depthStencilAttachmentSamples", "a {@code VkSampleCountFlagBits} value defining the sample count of a depth/stencil attachment.") -} - -val VkAttachmentSampleCountInfoNV = struct(Module.VULKAN, "VkAttachmentSampleCountInfoNV", alias = VkAttachmentSampleCountInfoAMD) { - documentation = "See ##VkAttachmentSampleCountInfoAMD." - - Expression("#STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD")..VkStructureType("sType", "") - nullable..opaque_const_p("pNext", "") - AutoSize("pColorAttachmentSamples", optional = true)..uint32_t("colorAttachmentCount", "") - nullable..VkSampleCountFlagBits.const.p("pColorAttachmentSamples", "") - VkSampleCountFlagBits("depthStencilAttachmentSamples", "") -} - -val VkMultiviewPerViewAttributesInfoNVX = struct(Module.VULKAN, "VkMultiviewPerViewAttributesInfoNVX") { - documentation = - """ - Structure specifying the multiview per-attribute properties. - -
          Description
          - When dynamic render pass instances are being used, instead of specifying #SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX or #SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX in the subpass description flags, the per-attribute properties of the render pass instance must be specified by the ##VkMultiviewPerViewAttributesInfoNVX structure Include the ##VkMultiviewPerViewAttributesInfoNVX structure in the {@code pNext} chain of ##VkGraphicsPipelineCreateInfo when creating a graphics pipeline for dynamic rendering, ##VkRenderingInfo when starting a dynamic render pass instance, and ##VkCommandBufferInheritanceInfo when specifying the dynamic render pass instance parameters for secondary command buffers. - -
          Valid Usage (Implicit)
          -
            -
          • {@code sType} must be #STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX
          • -
          - """ - - Expression("#STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.") - nullable..opaque_const_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.") - VkBool32("perViewAttributes", "specifies that shaders compiled for this pipeline write the attributes for all views in a single invocation of each vertex processing stage. All pipelines executed within a render pass instance that includes this bit must write per-view attributes to the {@code *PerViewNV[]} shader outputs, in addition to the non-per-view (e.g. {@code Position}) outputs.") - VkBool32("perViewAttributesPositionXOnly", "specifies that shaders compiled for this pipeline use per-view positions which only differ in value in the x component. Per-view viewport mask can also be used.") -} - val VkPhysicalDeviceCornerSampledImageFeaturesNV = struct(Module.VULKAN, "VkPhysicalDeviceCornerSampledImageFeaturesNV") { documentation = """ @@ -4117,7 +3994,7 @@ val VkExportMemoryWin32HandleInfoNV = struct(Module.VULKAN, "VkExportMemoryWin32 Specify security attributes and access rights for Win32 memory handles.
          Description
          - If this structure is not present, or if {@code pAttributes} is set to {@code NULL}, default security descriptor values will be used, and child processes created by the application will not inherit the handle, as described in the MSDN documentation for “{@code Synchronization Object Security and Access Rights}”1. Further, if the structure is not present, the access rights will be + If this structure is not present, or if {@code pAttributes} is {@code NULL}, default security descriptor values will be used, and child processes created by the application will not inherit the handle, as described in the MSDN documentation for “{@code Synchronization Object Security and Access Rights}”1. Further, if the structure is not present, the access rights will be {@code DXGI_SHARED_RESOURCE_READ} | {@code DXGI_SHARED_RESOURCE_WRITE} @@ -4959,7 +4836,7 @@ val VkExportSemaphoreWin32HandleInfoKHR = struct(Module.VULKAN, "VkExportSemapho
          Description
          If ##VkExportSemaphoreCreateInfo is not included in the same {@code pNext} chain, this structure is ignored. - If ##VkExportSemaphoreCreateInfo is included in the {@code pNext} chain of ##VkSemaphoreCreateInfo with a Windows {@code handleType}, but either ##VkExportSemaphoreWin32HandleInfoKHR is not included in the {@code pNext} chain, or it is included but {@code pAttributes} is set to {@code NULL}, default security descriptor values will be used, and child processes created by the application will not inherit the handle, as described in the MSDN documentation for “{@code Synchronization Object Security and Access Rights}”1. Further, if the structure is not present, the access rights used depend on the handle type. + If ##VkExportSemaphoreCreateInfo is included in the {@code pNext} chain of ##VkSemaphoreCreateInfo with a Windows {@code handleType}, but either ##VkExportSemaphoreWin32HandleInfoKHR is not included in the {@code pNext} chain, or it is included but {@code pAttributes} is {@code NULL}, default security descriptor values will be used, and child processes created by the application will not inherit the handle, as described in the MSDN documentation for “{@code Synchronization Object Security and Access Rights}”1. Further, if the structure is not present, the access rights used depend on the handle type. For handles of the following types: @@ -5452,7 +5329,7 @@ val VkSurfaceCapabilities2EXT = struct(Module.VULKAN, "VkSurfaceCapabilities2EXT VkSurfaceTransformFlagsKHR("supportedTransforms", "a bitmask of {@code VkSurfaceTransformFlagBitsKHR} indicating the presentation transforms supported for the surface on the specified device. At least one bit will be set.") VkSurfaceTransformFlagBitsKHR("currentTransform", "{@code VkSurfaceTransformFlagBitsKHR} value indicating the surface’s current transform relative to the presentation engine’s natural orientation.") VkCompositeAlphaFlagsKHR("supportedCompositeAlpha", "a bitmask of {@code VkCompositeAlphaFlagBitsKHR}, representing the alpha compositing modes supported by the presentation engine for the surface on the specified device, and at least one bit will be set. Opaque composition can be achieved in any alpha compositing mode by either using an image format that has no alpha component, or by ensuring that all pixels in the presentable images have an alpha value of 1.0.") - VkImageUsageFlags("supportedUsageFlags", "a bitmask of {@code VkImageUsageFlagBits} representing the ways the application can use the presentable images of a swapchain created with {@code VkPresentModeKHR} set to #PRESENT_MODE_IMMEDIATE_KHR, #PRESENT_MODE_MAILBOX_KHR, #PRESENT_MODE_FIFO_KHR or #PRESENT_MODE_FIFO_RELAXED_KHR for the surface on the specified device. #IMAGE_USAGE_COLOR_ATTACHMENT_BIT must be included in the set. Implementations may support additional usages.") + VkImageUsageFlags("supportedUsageFlags", "a bitmask of {@code VkImageUsageFlagBits} representing the ways the application can use the presentable images of a swapchain created with {@code VkPresentModeKHR} set to #PRESENT_MODE_FIFO_LATEST_READY_EXT, #PRESENT_MODE_IMMEDIATE_KHR, #PRESENT_MODE_MAILBOX_KHR, #PRESENT_MODE_FIFO_KHR or #PRESENT_MODE_FIFO_RELAXED_KHR for the surface on the specified device. #IMAGE_USAGE_COLOR_ATTACHMENT_BIT must be included in the set. Implementations may support additional usages.") VkSurfaceCounterFlagsEXT("supportedSurfaceCounters", "a bitmask of {@code VkSurfaceCounterFlagBitsEXT} indicating the supported surface counter types.") } @@ -5633,6 +5510,26 @@ val VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = struct(Module.VULK VkBool32("perViewPositionAllComponents", "#TRUE if the implementation supports per-view position values that differ in components other than the X component.") } +val VkMultiviewPerViewAttributesInfoNVX = struct(Module.VULKAN, "VkMultiviewPerViewAttributesInfoNVX") { + documentation = + """ + Structure specifying the multiview per-attribute properties. + +
          Description
          + When dynamic render pass instances are being used, instead of specifying #SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX or #SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX in the subpass description flags, the per-attribute properties of the render pass instance must be specified by the ##VkMultiviewPerViewAttributesInfoNVX structure Include the ##VkMultiviewPerViewAttributesInfoNVX structure in the {@code pNext} chain of ##VkGraphicsPipelineCreateInfo when creating a graphics pipeline for dynamic rendering, ##VkRenderingInfo when starting a dynamic render pass instance, and ##VkCommandBufferInheritanceInfo when specifying the dynamic render pass instance parameters for secondary command buffers. + +
          Valid Usage (Implicit)
          +
            +
          • {@code sType} must be #STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX
          • +
          + """ + + Expression("#STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.") + nullable..opaque_const_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.") + VkBool32("perViewAttributes", "specifies that shaders compiled for this pipeline write the attributes for all views in a single invocation of each vertex processing stage. All pipelines executed within a render pass instance that includes this bit must write per-view attributes to the {@code *PerViewNV[]} shader outputs, in addition to the non-per-view (e.g. {@code Position}) outputs.") + VkBool32("perViewAttributesPositionXOnly", "specifies that shaders compiled for this pipeline use per-view positions which only differ in value in the x component. Per-view viewport mask can also be used.") +} + val VkViewportSwizzleNV = struct(Module.VULKAN, "VkViewportSwizzleNV") { documentation = """ @@ -5815,7 +5712,7 @@ val VkPhysicalDeviceDepthClipEnableFeaturesEXT = struct(Module.VULKAN, "VkPhysic Expression("#STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.") nullable..opaque_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.") - VkBool32("depthClipEnable", "indicates that the implementation supports setting the depth clipping operation explicitly via the ##VkPipelineRasterizationDepthClipStateCreateInfoEXT pipeline state. Otherwise depth clipping is only enabled when ##VkPipelineRasterizationStateCreateInfo{@code ::depthClampEnable} is set to #FALSE.") + VkBool32("depthClipEnable", "indicates that the implementation supports setting the depth clipping operation explicitly via the ##VkPipelineRasterizationDepthClipStateCreateInfoEXT pipeline state. Otherwise depth clipping is only enabled when ##VkPipelineRasterizationStateCreateInfo{@code ::depthClampEnable} is #FALSE.") } val VkPipelineRasterizationDepthClipStateCreateInfoEXT = struct(Module.VULKAN, "VkPipelineRasterizationDepthClipStateCreateInfoEXT") { @@ -5867,7 +5764,8 @@ val VkHdrMetadataEXT = struct(Module.VULKAN, "VkHdrMetadataEXT") {
          Valid Usage (Implicit)
          • {@code sType} must be #STRUCTURE_TYPE_HDR_METADATA_EXT
          • -
          • {@code pNext} must be {@code NULL}
          • +
          • {@code pNext} must be {@code NULL} or a pointer to a valid instance of ##VkHdrVividDynamicMetadataHUAWEI
          • +
          • The {@code sType} value of each struct in the {@code pNext} chain must be unique
          See Also
          @@ -5875,7 +5773,10 @@ val VkHdrMetadataEXT = struct(Module.VULKAN, "VkHdrMetadataEXT") { """ Expression("#STRUCTURE_TYPE_HDR_METADATA_EXT")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.") - nullable..opaque_const_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.") + PointerSetter( + "VkHdrVividDynamicMetadataHUAWEI", + prepend = true + )..nullable..opaque_const_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.") VkXYColorEXT("displayPrimaryRed", "a ##VkXYColorEXT structure specifying the red primary of the display used to optimize the content") VkXYColorEXT("displayPrimaryGreen", "a ##VkXYColorEXT structure specifying the green primary of the display used to optimize the content") VkXYColorEXT("displayPrimaryBlue", "a ##VkXYColorEXT structure specifying the blue primary of the display used to optimize the content") @@ -6141,7 +6042,7 @@ val VkExportFenceWin32HandleInfoKHR = struct(Module.VULKAN, "VkExportFenceWin32H
          Description
          If ##VkExportFenceCreateInfo is not included in the same {@code pNext} chain, this structure is ignored. - If ##VkExportFenceCreateInfo is included in the {@code pNext} chain of ##VkFenceCreateInfo with a Windows {@code handleType}, but either ##VkExportFenceWin32HandleInfoKHR is not included in the {@code pNext} chain, or it is included but {@code pAttributes} is set to {@code NULL}, default security descriptor values will be used, and child processes created by the application will not inherit the handle, as described in the MSDN documentation for “{@code Synchronization Object Security and Access Rights}”1. Further, if the structure is not present, the access rights will be + If ##VkExportFenceCreateInfo is included in the {@code pNext} chain of ##VkFenceCreateInfo with a Windows {@code handleType}, but either ##VkExportFenceWin32HandleInfoKHR is not included in the {@code pNext} chain, or it is included but {@code pAttributes} is {@code NULL}, default security descriptor values will be used, and child processes created by the application will not inherit the handle, as described in the MSDN documentation for “{@code Synchronization Object Security and Access Rights}”1. Further, if the structure is not present, the access rights will be {@code DXGI_SHARED_RESOURCE_READ} | {@code DXGI_SHARED_RESOURCE_WRITE} @@ -6819,7 +6720,7 @@ val VkDebugUtilsLabelEXT = struct(Module.VULKAN, "VkDebugUtilsLabelEXT") { Expression("#STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.") nullable..opaque_const_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.") charUTF8.const.p("pLabelName", "a pointer to a null-terminated UTF-8 string containing the name of the label.") - float("color", "an optional RGBA color value that can be associated with the label. A particular implementation may choose to ignore this color value. The values contain RGBA values in order, in the range 0.0 to 1.0. If all elements in {@code color} are set to 0.0 then it is ignored.")[4] + float("color", "an optional RGBA color value that can be associated with the label. A particular implementation may choose to ignore this color value. The values contain RGBA values in order, in the range 0.0 to 1.0. If all elements in {@code color} are 0.0, then it is ignored.")[4] } val VkDebugUtilsObjectNameInfoEXT = struct(Module.VULKAN, "VkDebugUtilsObjectNameInfoEXT") { @@ -7231,6 +7132,7 @@ val VkPhysicalDeviceShaderEnqueueFeaturesAMDX = struct(Module.VULKAN, "VkPhysica Expression("#STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX")..VkStructureType("sType", "") nullable..opaque_p("pNext", "") VkBool32("shaderEnqueue", "indicates whether the implementation supports execution graphs.") + VkBool32("shaderMeshEnqueue", "indicates whether the implementation supports mesh nodes in execution graphs.") } val VkPhysicalDeviceShaderEnqueuePropertiesAMDX = struct(Module.VULKAN, "VkPhysicalDeviceShaderEnqueuePropertiesAMDX") { @@ -7254,6 +7156,8 @@ val VkPhysicalDeviceShaderEnqueuePropertiesAMDX = struct(Module.VULKAN, "VkPhysi uint32_t("maxExecutionGraphShaderPayloadSize", "specifies the maximum total size of payload declarations in a shader. For any payload declarations that share resources, indicated by {@code NodeSharesPayloadLimitsWithAMDX} decorations, the maximum size of each set of shared payload declarations is taken. The sum of each shared set’s maximum size and the size of each unshared payload is counted against this limit.") uint32_t("maxExecutionGraphShaderPayloadCount", "specifies the maximum number of output payloads that can be initialized in a single workgroup.") uint32_t("executionGraphDispatchAddressAlignment", "specifies the alignment of non-scratch {@code VkDeviceAddress} arguments consumed by graph dispatch commands.") + uint32_t("maxExecutionGraphWorkgroupCount", "the maximum number of local workgroups that a shader can be dispatched with in X, Y, and Z dimensions, respectively.")[3] + uint32_t("maxExecutionGraphWorkgroups", "the total number of local workgroups that a shader can be dispatched with.") } val VkExecutionGraphPipelineScratchSizeAMDX = struct(Module.VULKAN, "VkExecutionGraphPipelineScratchSizeAMDX") { @@ -7261,6 +7165,9 @@ val VkExecutionGraphPipelineScratchSizeAMDX = struct(Module.VULKAN, "VkExecution """ Structure describing the scratch space required to dispatch an execution graph. +
          Description
          + Applications can use any amount of scratch memory greater than {@code minSize} for dispatching a graph, however only the values equal to {@code minSize} + an integer multiple of {@code sizeGranularity} will be used. Greater values may result in higher performance, up to {@code maxSize} which indicates the most memory that an implementation can use effectively. +
          Valid Usage (Implicit)
          • {@code sType} must be #STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX
          • @@ -7272,7 +7179,9 @@ val VkExecutionGraphPipelineScratchSizeAMDX = struct(Module.VULKAN, "VkExecution Expression("#STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.") nullable..opaque_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.") - VkDeviceSize("size", "indicates the scratch space required for dispatch the queried execution graph.") + VkDeviceSize("minSize", "indicates the minimum scratch space required for dispatching the queried execution graph.") + VkDeviceSize("maxSize", "indicates the maximum scratch space that can be used for dispatching the queried execution graph.") + VkDeviceSize("sizeGranularity", "indicates the granularity at which the scratch space can be increased from {@code minSize}.") } val VkPipelineLibraryCreateInfoKHR = struct(Module.VULKAN, "VkPipelineLibraryCreateInfoKHR") { @@ -7315,7 +7224,7 @@ val VkExecutionGraphPipelineCreateInfoAMDX = struct(Module.VULKAN, "VkExecutionG
            Description
            The parameters {@code basePipelineHandle} and {@code basePipelineIndex} are described in more detail in Pipeline Derivatives. - Each shader stage provided when creating an execution graph pipeline (including those in libraries) is associated with a name and an index, determined by the inclusion or omission of a ##VkPipelineShaderStageNodeCreateInfoAMDX structure in its {@code pNext} chain. + Each shader stage provided when creating an execution graph pipeline (including those in libraries) is associated with a name and an index, determined by the inclusion or omission of a ##VkPipelineShaderStageNodeCreateInfoAMDX structure in its {@code pNext} chain. For any graphics pipeline libraries, only the name and index of the vertex or mesh shader stage is linked directly to the graph as a node - other shader stages in the pipeline will be executed after those shader stages as normal. Task shaders cannot be included in a graphics pipeline used for a draw node. In addition to the shader name and index, an internal "node index" is also generated for each node, which can be queried with #GetExecutionGraphPipelineNodeIndexAMDX(), and is used exclusively for initial dispatch of an execution graph. @@ -7343,20 +7252,24 @@ val VkExecutionGraphPipelineCreateInfoAMDX = struct(Module.VULKAN, "VkExecutionG
          • {@code flags} must not include #PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV
          • If the ##VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV{@code ::deviceGeneratedComputePipelines} is not enabled, {@code flags} must not include #PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
          • If {@code flags} includes #PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then the {@code pNext} chain must include a pointer to a valid instance of ##VkComputePipelineIndirectBufferInfoNV specifying the address where the pipeline’s metadata will be saved
          • -
          • If {@code flags} includes #PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT, then the {@code deviceGeneratedCommands} feature must be enabled
          • +
          • If {@code flags} includes #PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT, then the ##VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT{@code ::deviceGeneratedCommands} feature must be enabled
          • If the {@code pipelineCreationCacheControl} feature is not enabled, {@code flags} must not include #PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT or #PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT
          • The {@code stage} member of any element of {@code pStages} must be #SHADER_STAGE_COMPUTE_BIT
          • The shader code for the entry point identified by each element of {@code pStages} and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter
          • {@code layout} must be consistent with the layout of the shaders specified in {@code pStages}
          • If {@code pLibraryInfo} is not {@code NULL}, each element of its {@code pLibraries} member must have been created with a {@code layout} that is compatible with the {@code layout} in this pipeline
          • The number of resources in {@code layout} accessible to each shader stage that is used by the pipeline must be less than or equal to ##VkPhysicalDeviceLimits{@code ::maxPerStageResources}
          • -
          • If {@code pLibraryInfo} is not {@code NULL}, each element of {@code pLibraryInfo→libraries} must be either a compute pipeline or an execution graph pipeline
          • +
          • If {@code pLibraryInfo} is not {@code NULL}, each element of {@code pLibraryInfo→pLibraries} must be either a compute pipeline, an execution graph pipeline, or a graphics pipeline
          • +
          • If {@code pLibraryInfo} is not {@code NULL}, each element of {@code pLibraryInfo→pLibraries} that is a compute pipeline or a graphics pipeline must have been created with #PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX set
          • +
          • If the {@code shaderMeshEnqueue} feature is not enabled, and {@code pLibraryInfo→pLibraries} is not {@code NULL}, {@code pLibraryInfo→pLibraries} must not contain any graphics pipelines
          • +
          • Any element of {@code pLibraryInfo→pLibraries} identifying a graphics pipeline must have been created with all possible state subsets
          • There must be no two nodes in the pipeline that share both the same shader name and index, as specified by ##VkPipelineShaderStageNodeCreateInfoAMDX
          • There must be no two nodes in the pipeline that share the same shader name and have input payload declarations with different sizes
          • There must be no two nodes in the pipeline that share the same name but have different execution models
          • There must be no two nodes in the pipeline that share the same name where one includes {@code CoalescedInputCountAMDX} and the other does not
          • There must be no two nodes in the pipeline that share the same name where one includes {@code StaticNumWorkgroupsAMDX} and the other does not
          • If an output payload declared in any shader in the pipeline has a {@code PayloadNodeNameAMDX} decoration with a {@code Node} {@code Name} that matches the shader name of any other node in the graph, the size of the output payload must match the size of the input payload in the matching node
          • +
          • If {@code flags} does not include #PIPELINE_CREATE_LIBRARY_BIT_KHR, and an output payload declared in any shader in the pipeline does not have a {@code PayloadNodeSparseArrayAMDX} decoration, there must be a node in the graph corresponding to every index from 0 to its {@code PayloadNodeArraySizeAMDX} decoration
          Valid Usage (Implicit)
          @@ -7451,6 +7364,10 @@ val VkPipelineShaderStageNodeCreateInfoAMDX = struct(Module.VULKAN, "VkPipelineS When dispatching a node from another shader, the name is fixed at pipeline creation, but the index can be set dynamically. By associating multiple shaders with the same name but different indexes, applications can dynamically select different nodes to execute. Applications must ensure each node has a unique name and index. +
          Note
          + Shaders with the same name must be of the same type - e.g. a compute and graphics shader, or even two compute shaders where one is coalescing and the other is not, cannot share the same name. +
          +
          Valid Usage (Implicit)
          • {@code sType} must be #STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX
          • @@ -7467,6 +7384,29 @@ val VkPipelineShaderStageNodeCreateInfoAMDX = struct(Module.VULKAN, "VkPipelineS uint32_t("index", "the shader index to use when creating a node in an execution graph. If {@code index} is #SHADER_INDEX_UNUSED_AMDX then the original index is used, either as specified by the {@code ShaderIndexAMDX} execution mode, or 0 if that too is not specified.") } +val VkAttachmentSampleCountInfoAMD = struct(Module.VULKAN, "VkAttachmentSampleCountInfoAMD") { + documentation = + """ + Structure specifying command buffer inheritance info for dynamic render pass instances. + +
            Description
            + If ##VkCommandBufferInheritanceInfo{@code ::renderPass} is #NULL_HANDLE, #COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT is specified in ##VkCommandBufferBeginInfo{@code ::flags}, and the {@code pNext} chain of ##VkCommandBufferInheritanceInfo includes ##VkAttachmentSampleCountInfoAMD, then this structure defines the sample counts of each attachment within the render pass instance. If ##VkAttachmentSampleCountInfoAMD is not included, the value of ##VkCommandBufferInheritanceRenderingInfo{@code ::rasterizationSamples} is used as the sample count for each attachment. If ##VkCommandBufferInheritanceInfo{@code ::renderPass} is not #NULL_HANDLE, or #COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT is not specified in ##VkCommandBufferBeginInfo{@code ::flags}, parameters of this structure are ignored. + + ##VkAttachmentSampleCountInfoAMD can also be included in the {@code pNext} chain of ##VkGraphicsPipelineCreateInfo. When a graphics pipeline is created without a {@code VkRenderPass}, if this structure is included in the {@code pNext} chain of ##VkGraphicsPipelineCreateInfo, it specifies the sample count of attachments used for rendering. If this structure is not specified, and the pipeline does not include a {@code VkRenderPass}, the value of ##VkPipelineMultisampleStateCreateInfo{@code ::rasterizationSamples} is used as the sample count for each attachment. If a graphics pipeline is created with a valid {@code VkRenderPass}, parameters of this structure are ignored. + +
            Valid Usage (Implicit)
            +
              +
            • {@code sType} must be #STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD
            • +
            + """ + + Expression("#STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.") + nullable..opaque_const_p("pNext", "{@code NULL} or a pointer to a structure extending this structure") + AutoSize("pColorAttachmentSamples", optional = true)..uint32_t("colorAttachmentCount", "the number of color attachments specified in a render pass instance.") + nullable..VkSampleCountFlagBits.const.p("pColorAttachmentSamples", "a pointer to an array of {@code VkSampleCountFlagBits} values defining the sample count of color attachments.") + VkSampleCountFlagBits("depthStencilAttachmentSamples", "a {@code VkSampleCountFlagBits} value defining the sample count of a depth/stencil attachment.") +} + val VkPhysicalDeviceInlineUniformBlockFeaturesEXT = struct(Module.VULKAN, "VkPhysicalDeviceInlineUniformBlockFeaturesEXT", alias = VkPhysicalDeviceInlineUniformBlockFeatures) { documentation = "See ##VkPhysicalDeviceInlineUniformBlockFeatures." @@ -8197,7 +8137,7 @@ val VkAccelerationStructureInstanceKHR = struct(Module.VULKAN, "VkAccelerationSt uint32_t("mask", "an 8-bit visibility mask for the geometry. The instance may only be hit if {@code Cull Mask & instance.mask != 0}", bits = 8) uint32_t("instanceShaderBindingTableRecordOffset", "a 24-bit offset used in calculating the hit shader binding table index.", bits = 24) VkGeometryInstanceFlagsKHR("flags", "an 8-bit mask of {@code VkGeometryInstanceFlagBitsKHR} values to apply to this instance.", bits = 8) - uint64_t("accelerationStructureReference", """either: + uint64_t("accelerationStructureReference", """either :
            • a device address containing the value obtained from #GetAccelerationStructureDeviceAddressKHR() or #GetAccelerationStructureHandleNV() (used by device operations which reference acceleration structures) or,
            • @@ -8629,7 +8569,6 @@ val VkRayTracingPipelineCreateInfoKHR = struct(Module.VULKAN, "VkRayTracingPipel
            • The shader code for the entry points identified by {@code pStages}, and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter
            • The number of resources in {@code layout} accessible to each shader stage that is used by the pipeline must be less than or equal to ##VkPhysicalDeviceLimits{@code ::maxPerStageResources}
            • {@code flags} must not include #PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
            • -
            • {@code flags} must not include #PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT
            • If the {@code pipelineCreationCacheControl} feature is not enabled, {@code flags} must not include #PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT or #PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT
            • If {@code flags} does not include #PIPELINE_CREATE_LIBRARY_BIT_KHR, the {@code stage} member of at least one element of {@code pStages}, including those implicitly added by {@code pLibraryInfo}, must be #SHADER_STAGE_RAYGEN_BIT_KHR
            • {@code maxPipelineRayRecursionDepth} must be less than or equal to ##VkPhysicalDeviceRayTracingPipelinePropertiesKHR{@code ::maxRayRecursionDepth}
            • @@ -8868,6 +8807,16 @@ val VkPipelineCoverageModulationStateCreateInfoNV = struct(Module.VULKAN, "VkPip nullable..float.const.p("pCoverageModulationTable", "a table of modulation factors containing a value for each number of covered samples.") } +val VkAttachmentSampleCountInfoNV = struct(Module.VULKAN, "VkAttachmentSampleCountInfoNV", alias = VkAttachmentSampleCountInfoAMD) { + documentation = "See ##VkAttachmentSampleCountInfoAMD." + + Expression("#STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD")..VkStructureType("sType", "") + nullable..opaque_const_p("pNext", "") + AutoSize("pColorAttachmentSamples", optional = true)..uint32_t("colorAttachmentCount", "") + nullable..VkSampleCountFlagBits.const.p("pColorAttachmentSamples", "") + VkSampleCountFlagBits("depthStencilAttachmentSamples", "") +} + val VkPhysicalDeviceShaderSMBuiltinsPropertiesNV = struct(Module.VULKAN, "VkPhysicalDeviceShaderSMBuiltinsPropertiesNV", mutable = false) { documentation = """ @@ -9633,7 +9582,6 @@ val VkRayTracingPipelineCreateInfoNV = struct(Module.VULKAN, "VkRayTracingPipeli
            • The shader code for the entry points identified by {@code pStages}, and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter
            • The number of resources in {@code layout} accessible to each shader stage that is used by the pipeline must be less than or equal to ##VkPhysicalDeviceLimits{@code ::maxPerStageResources}
            • {@code flags} must not include #PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
            • -
            • {@code flags} must not include #PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT
            • If the {@code pipelineCreationCacheControl} feature is not enabled, {@code flags} must not include #PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT or #PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT
            • The {@code stage} member of at least one element of {@code pStages} must be #SHADER_STAGE_RAYGEN_BIT_KHR
            • {@code flags} must not include #PIPELINE_CREATE_LIBRARY_BIT_KHR
            • @@ -9651,6 +9599,7 @@ val VkRayTracingPipelineCreateInfoNV = struct(Module.VULKAN, "VkRayTracingPipeli
            • The {@code stage} value in all {@code pStages} elements must be one of #SHADER_STAGE_RAYGEN_BIT_KHR, #SHADER_STAGE_ANY_HIT_BIT_KHR, #SHADER_STAGE_CLOSEST_HIT_BIT_KHR, #SHADER_STAGE_MISS_BIT_KHR, #SHADER_STAGE_INTERSECTION_BIT_KHR, or #SHADER_STAGE_CALLABLE_BIT_KHR
            • {@code flags} must not include #PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT
            • {@code flags} must not include #PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV
            • +
            • {@code flags} must not include #PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT
            Valid Usage (Implicit)
            @@ -11020,6 +10969,48 @@ val VkCheckpointDataNV = struct(Module.VULKAN, "VkCheckpointDataNV", mutable = f nullable..opaque_p("pCheckpointMarker", "contains the value of the last checkpoint marker executed in the stage that {@code stage} refers to.") } +val VkQueueFamilyCheckpointProperties2NV = struct(Module.VULKAN, "VkQueueFamilyCheckpointProperties2NV", mutable = false) { + documentation = + """ + Return structure for queue family checkpoint information query. + +
            Description
            + Additional queue family information can be queried by setting ##VkQueueFamilyProperties2{@code ::pNext} to point to a ##VkQueueFamilyCheckpointProperties2NV structure. + +
            Valid Usage (Implicit)
            +
              +
            • {@code sType} must be #STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV
            • +
            + """ + + Expression("#STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.").mutable() + nullable..opaque_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.").mutable() + VkPipelineStageFlags2("checkpointExecutionStageMask", "a mask indicating which pipeline stages the implementation can execute checkpoint markers in.") +} + +val VkCheckpointData2NV = struct(Module.VULKAN, "VkCheckpointData2NV", mutable = false) { + documentation = + """ + Return structure for command buffer checkpoint data. + +
            Valid Usage (Implicit)
            +
              +
            • {@code sType} must be #STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV
            • +
            • {@code pNext} must be {@code NULL}
            • +
            + + The stages at which a checkpoint marker can be executed are implementation-defined and can be queried by calling #GetPhysicalDeviceQueueFamilyProperties2(). + +
            See Also
            + #GetQueueCheckpointData2NV() + """ + + Expression("#STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.").mutable() + nullable..opaque_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.").mutable() + VkPipelineStageFlags2("stage", "indicates a single pipeline stage which the checkpoint marker data refers to.") + nullable..opaque_p("pCheckpointMarker", "contains the value of the last checkpoint marker executed in the stage that {@code stage} refers to.") +} + val VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = struct(Module.VULKAN, "VkPhysicalDeviceTimelineSemaphoreFeaturesKHR", alias = VkPhysicalDeviceTimelineSemaphoreFeatures) { documentation = "See ##VkPhysicalDeviceTimelineSemaphoreFeatures." @@ -11452,6 +11443,36 @@ val VkRenderPassFragmentDensityMapCreateInfoEXT = struct(Module.VULKAN, "VkRende VkAttachmentReference("fragmentDensityMapAttachment", "the fragment density map to use for the render pass.") } +val VkRenderingFragmentDensityMapAttachmentInfoEXT = struct(Module.VULKAN, "VkRenderingFragmentDensityMapAttachmentInfoEXT") { + documentation = + """ + Structure specifying fragment shading rate attachment information. + +
            Description
            + This structure can be included in the {@code pNext} chain of ##VkRenderingInfo to define a fragment density map. If this structure is not included in the {@code pNext} chain, {@code imageView} is treated as #NULL_HANDLE. + +
            Valid Usage
            +
              +
            • If {@code imageView} is not #NULL_HANDLE, {@code imageLayout} must be #IMAGE_LAYOUT_GENERAL or #IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT
            • +
            • If {@code imageView} is not #NULL_HANDLE, it must have been created with #IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT
            • +
            • If {@code imageView} is not #NULL_HANDLE, it must not have been created with #IMAGE_CREATE_SUBSAMPLED_BIT_EXT
            • +
            • If the {@code multiview} feature is not enabled, ##VkPhysicalDeviceProperties{@code ::apiVersion} is less than Vulkan 1.1, and {@code imageView} is not #NULL_HANDLE, it must have a {@code layerCount} equal to 1
            • +
            + +
            Valid Usage (Implicit)
            +
              +
            • {@code sType} must be #STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT
            • +
            • {@code imageView} must be a valid {@code VkImageView} handle
            • +
            • {@code imageLayout} must be a valid {@code VkImageLayout} value
            • +
            + """ + + Expression("#STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.") + nullable..opaque_const_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.") + VkImageView("imageView", "the image view that will be used as a fragment density map attachment.") + VkImageLayout("imageLayout", "the layout that {@code imageView} will be in during rendering.") +} + val VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = struct(Module.VULKAN, "VkPhysicalDeviceScalarBlockLayoutFeaturesEXT", alias = VkPhysicalDeviceScalarBlockLayoutFeatures) { documentation = "See ##VkPhysicalDeviceScalarBlockLayoutFeatures." @@ -11636,6 +11657,46 @@ val VkPhysicalDeviceFragmentShadingRateKHR = struct(Module.VULKAN, "VkPhysicalDe VkExtent2D("fragmentSize", "a ##VkExtent2D describing the width and height of a supported shading rate.") } +val VkRenderingFragmentShadingRateAttachmentInfoKHR = struct(Module.VULKAN, "VkRenderingFragmentShadingRateAttachmentInfoKHR") { + documentation = + """ + Structure specifying fragment shading rate attachment information. + +
            Description
            + This structure can be included in the {@code pNext} chain of ##VkRenderingInfo to define a fragment shading rate attachment. If {@code imageView} is #NULL_HANDLE, or if this structure is not specified, the implementation behaves as if a valid shading rate attachment was specified with all texels specifying a single pixel per fragment. + +
            Valid Usage
            +
              +
            • If {@code imageView} is not #NULL_HANDLE, {@code layout} must be #IMAGE_LAYOUT_GENERAL or #IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR
            • +
            • If {@code imageView} is not #NULL_HANDLE, it must have been created with #IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
            • +
            • If {@code imageView} is not #NULL_HANDLE, {@code shadingRateAttachmentTexelSize.width} must be a power of two value
            • +
            • If {@code imageView} is not #NULL_HANDLE, {@code shadingRateAttachmentTexelSize.width} must be less than or equal to {@code maxFragmentShadingRateAttachmentTexelSize.width}
            • +
            • If {@code imageView} is not #NULL_HANDLE, {@code shadingRateAttachmentTexelSize.width} must be greater than or equal to {@code minFragmentShadingRateAttachmentTexelSize.width}
            • +
            • If {@code imageView} is not #NULL_HANDLE, {@code shadingRateAttachmentTexelSize.height} must be a power of two value
            • +
            • If {@code imageView} is not #NULL_HANDLE, {@code shadingRateAttachmentTexelSize.height} must be less than or equal to {@code maxFragmentShadingRateAttachmentTexelSize.height}
            • +
            • If {@code imageView} is not #NULL_HANDLE, {@code shadingRateAttachmentTexelSize.height} must be greater than or equal to {@code minFragmentShadingRateAttachmentTexelSize.height}
            • +
            • If {@code imageView} is not #NULL_HANDLE, the quotient of {@code shadingRateAttachmentTexelSize.width} and {@code shadingRateAttachmentTexelSize.height} must be less than or equal to {@code maxFragmentShadingRateAttachmentTexelSizeAspectRatio}
            • +
            • If {@code imageView} is not #NULL_HANDLE, the quotient of {@code shadingRateAttachmentTexelSize.height} and {@code shadingRateAttachmentTexelSize.width} must be less than or equal to {@code maxFragmentShadingRateAttachmentTexelSizeAspectRatio}
            • +
            + +
            Valid Usage (Implicit)
            +
              +
            • {@code sType} must be #STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR
            • +
            • If {@code imageView} is not #NULL_HANDLE, {@code imageView} must be a valid {@code VkImageView} handle
            • +
            • {@code imageLayout} must be a valid {@code VkImageLayout} value
            • +
            + +
            See Also
            + ##VkExtent2D + """ + + Expression("#STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.") + nullable..opaque_const_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.") + VkImageView("imageView", "the image view that will be used as a fragment shading rate attachment.") + VkImageLayout("imageLayout", "the layout that {@code imageView} will be in during rendering.") + VkExtent2D("shadingRateAttachmentTexelSize", "specifies the number of pixels corresponding to each texel in {@code imageView}.") +} + val VkPhysicalDeviceShaderCoreProperties2AMD = struct(Module.VULKAN, "VkPhysicalDeviceShaderCoreProperties2AMD", mutable = false) { documentation = """ @@ -11722,7 +11783,7 @@ val VkRenderingAttachmentLocationInfoKHR = struct(Module.VULKAN, "VkRenderingAtt
            Valid Usage
              -
            • If the {@code dynamicRenderingLocalRead} feature is not enabled, and {@code pColorAttachmentLocations} is not {@code NULL}, each element must be set to the value of its index within the array
            • +
            • If the {@code dynamicRenderingLocalRead} feature is not enabled, and {@code pColorAttachmentLocations} is not {@code NULL}, each element must be the value of its index within the array
            • Elements of {@code pColorAttachmentLocations} that are not #ATTACHMENT_UNUSED must each be unique
            • {@code colorAttachmentCount} must be less than or equal to {@code maxColorAttachments}
            • Each element of {@code pColorAttachmentLocations} must be less than {@code maxColorAttachments}
            • @@ -11777,7 +11838,7 @@ val VkRenderingInputAttachmentIndexInfoKHR = struct(Module.VULKAN, "VkRenderingI
              Valid Usage
                -
              • If the {@code dynamicRenderingLocalRead} feature is not enabled, and {@code pColorAttachmentInputIndices} is not {@code NULL}, each element must be set to #ATTACHMENT_UNUSED
              • +
              • If the {@code dynamicRenderingLocalRead} feature is not enabled, and {@code pColorAttachmentInputIndices} is not {@code NULL}, each element must be #ATTACHMENT_UNUSED
              • If the {@code dynamicRenderingLocalRead} feature is not enabled, {@code pDepthInputAttachmentIndex} must be a valid pointer to a value of #ATTACHMENT_UNUSED
              • If the {@code dynamicRenderingLocalRead} feature is not enabled, {@code pStencilInputAttachmentIndex} must be a valid pointer to a value of #ATTACHMENT_UNUSED
              • Elements of {@code pColorAttachmentInputIndices} that are not #ATTACHMENT_UNUSED must each be unique
              • @@ -13762,6 +13823,7 @@ val VkSwapchainPresentModesCreateInfoEXT = struct(Module.VULKAN, "VkSwapchainPre
                Valid Usage
                • Each entry in pPresentModes must be one of the {@code VkPresentModeKHR} values returned by {@code vkGetPhysicalDeviceSurfacePresentModesKHR} for the surface
                • +
                • If the {@code presentModeFifoLatestReady} feature is not enabled, pPresentModes must not contain #PRESENT_MODE_FIFO_LATEST_READY_EXT
                • The entries in pPresentModes must be a subset of the present modes returned in ##VkSurfacePresentModeCompatibilityEXT{@code ::pPresentModes}, given ##VkSwapchainCreateInfoKHR{@code ::presentMode} in ##VkSurfacePresentModeEXT
                • ##VkSwapchainCreateInfoKHR{@code ::presentMode} must be included in {@code pPresentModes}
                @@ -13794,9 +13856,10 @@ val VkSwapchainPresentModeInfoEXT = struct(Module.VULKAN, "VkSwapchainPresentMod
              • Transition from #PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR to #PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR: the presentation engine updates the shared presentable image according to the behavior of #PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR.
              • Transition from #PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR to #PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR: the presentation engine may update the shared presentable image or defer that to its regular refresh cycle, according to the behavior of #PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR.
              • Transition between #PRESENT_MODE_FIFO_KHR and #PRESENT_MODE_FIFO_RELAXED_KHR: Images continue to be appended to the same FIFO queue, and the behavior with respect to waiting for vertical blanking period will follow the new mode for current and subsequent images.
              • -
              • Transition from #PRESENT_MODE_IMMEDIATE_KHR to #PRESENT_MODE_FIFO_KHR or #PRESENT_MODE_FIFO_RELAXED_KHR: As all prior present requests in the #PRESENT_MODE_IMMEDIATE_KHR mode are applied immediately, there are no outstanding present operations in this mode, and current and subsequent images are appended to the FIFO queue and presented according to the new mode.
              • -
              • Transition from #PRESENT_MODE_MAILBOX_KHR to #PRESENT_MODE_FIFO_KHR or #PRESENT_MODE_FIFO_RELAXED_KHR: Presentation in both modes require waiting for the next vertical blanking period, with #PRESENT_MODE_MAILBOX_KHR allowing the pending present operation to be replaced by a new one. In this case, the current present operation will replace the pending present operation and is applied according to the new mode.
              • -
              • Transition from #PRESENT_MODE_FIFO_KHR or #PRESENT_MODE_FIFO_RELAXED_KHR to #PRESENT_MODE_IMMEDIATE_KHR or #PRESENT_MODE_MAILBOX_KHR: If the FIFO queue is empty, presentation is done according to the behavior of the new mode. If there are present operations in the FIFO queue, once the last present operation is performed based on the respective vertical blanking period, the current and subsequent updates are applied according to the new mode.
              • +
              • Transition from #PRESENT_MODE_IMMEDIATE_KHR to #PRESENT_MODE_FIFO_KHR or #PRESENT_MODE_FIFO_RELAXED_KHR or #PRESENT_MODE_FIFO_LATEST_READY_EXT : As all prior present requests in the #PRESENT_MODE_IMMEDIATE_KHR mode are applied immediately, there are no outstanding present operations in this mode, and current and subsequent images are appended to the FIFO queue and presented according to the new mode.
              • +
              • Transition from #PRESENT_MODE_MAILBOX_KHR to #PRESENT_MODE_FIFO_KHR or #PRESENT_MODE_FIFO_RELAXED_KHR or #PRESENT_MODE_FIFO_LATEST_READY_EXT : Presentation in FIFO modes require waiting for the next vertical blanking period, with #PRESENT_MODE_MAILBOX_KHR allowing the pending present operation to be replaced by a new one. In this case, the current present operation will replace the pending present operation and is applied according to the new mode.
              • +
              • Transition from #PRESENT_MODE_FIFO_KHR or #PRESENT_MODE_FIFO_RELAXED_KHR or #PRESENT_MODE_FIFO_LATEST_READY_EXT to #PRESENT_MODE_IMMEDIATE_KHR or #PRESENT_MODE_MAILBOX_KHR: If the FIFO queue is empty, presentation is done according to the behavior of the new mode. If there are present operations in the FIFO queue, once the last present operation is performed based on the respective vertical blanking period, the current and subsequent updates are applied according to the new mode.
              • +
              • Transition between #PRESENT_MODE_FIFO_KHR or #PRESENT_MODE_FIFO_RELAXED_KHR, and #PRESENT_MODE_FIFO_LATEST_READY_EXT: Images continue to be appended to the same FIFO queue, and the behavior with respect to waiting for vertical blanking period and dequeuing requests will follow the new mode for current and subsequent images.
              • The behavior during transition between any other present modes, if possible, is implementation defined.
              @@ -14002,7 +14065,7 @@ val VkGraphicsPipelineShaderGroupsCreateInfoNV = struct(Module.VULKAN, "VkGraphi
            • All elements of {@code pGroups} must use the same shader stage combinations unless any mesh shader stage is used, then either combination of task and mesh or just mesh shader is valid
            • Mesh and regular primitive shading stages cannot be mixed across {@code pGroups}
            • Each element of {@code pPipelines} must have been created with identical state to the pipeline currently created except the state that can be overridden by ##VkGraphicsShaderGroupCreateInfoNV
            • -
            • The {@code deviceGeneratedCommands} feature must be enabled
            • +
            • The ##VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV{@code ::deviceGeneratedCommands} feature must be enabled
            Valid Usage (Implicit)
            @@ -14925,7 +14988,7 @@ val VkPresentIdKHR = struct(Module.VULKAN, "VkPresentIdKHR") {
            Description
            For applications to be able to reference specific presentation events queued by a call to {@code vkQueuePresentKHR}, an identifier needs to be associated with them. When the {@code presentId} feature is enabled, applications can include the ##VkPresentIdKHR structure in the {@code pNext} chain of the ##VkPresentInfoKHR structure to supply identifiers. - Each {@code VkSwapchainKHR} has a presentId associated with it. This value is initially set to zero when the {@code VkSwapchainKHR} is created. + Each {@code VkSwapchainKHR} has a presentId associated with it. This value is initially zero when the {@code VkSwapchainKHR} is created. When a ##VkPresentIdKHR structure with a non-NULL {@code pPresentIds} is included in the {@code pNext} chain of a ##VkPresentInfoKHR structure, each {@code pSwapchains} entry has a presentId associated in the {@code pPresentIds} array at the same index as the swapchain in the {@code pSwapchains} array. If this presentId is non-zero, then the application can later use this value to refer to that image presentation. A value of zero indicates that this presentation has no associated presentId. A non-zero presentId must be greater than any non-zero presentId passed previously by the application for the same swapchain. @@ -15220,7 +15283,7 @@ val VkVideoEncodeRateControlInfoKHR = struct(Module.VULKAN, "VkVideoEncodeRateCo
          • If {@code rateControlMode} is #VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR, then for each element of {@code pLayers}, its {@code averageBitrate} member must equal its {@code maxBitrate} member
          • If {@code rateControlMode} is #VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR, then for each element of {@code pLayers}, its {@code averageBitrate} member must be less than or equal to its {@code maxBitrate} member
          • If {@code layerCount} is not zero, then {@code virtualBufferSizeInMs} must be greater than zero
          • -
          • If {@code layerCount} is not zero, then {@code initialVirtualBufferSizeInMs} must be less than {@code virtualBufferSizeInMs}
          • +
          • If {@code layerCount} is not zero, then {@code initialVirtualBufferSizeInMs} must be less than or equal to {@code virtualBufferSizeInMs}
          • If the {@code videoCodecOperation} of the used video profile is #VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR, the {@code pNext} chain this structure is included in also includes an instance of the ##VkVideoEncodeH264RateControlInfoKHR structure, and {@code layerCount} is greater than 1, then {@code layerCount} must equal ##VkVideoEncodeH264RateControlInfoKHR{@code ::temporalLayerCount}
          • If the {@code videoCodecOperation} of the used video profile is #VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR, the {@code pNext} chain this structure is included in also includes an instance of the ##VkVideoEncodeH265RateControlInfoKHR structure, and {@code layerCount} is greater than 1, then {@code layerCount} must equal ##VkVideoEncodeH265RateControlInfoKHR{@code ::subLayerCount}
          @@ -15480,7 +15543,7 @@ val VkCudaLaunchInfoNV = struct(Module.VULKAN, "VkCudaLaunchInfoNV") {
          Description
          Kernel parameters of {@code function} are specified via {@code pParams}, very much the same way as described in cuLaunchKernel - If {@code function} has N parameters, then {@code pParams} must be an array of N pointers and {@code paramCount} must be set to N. Each of {@code kernelParams}[0] through {@code kernelParams}[N-1] must point to a region of memory from which the actual kernel parameter will be copied. The number of kernel parameters and their offsets and sizes are not specified here as that information is stored in the {@code VkCudaFunctionNV} object. + If {@code function} has N parameters, then {@code pParams} must be an array of N pointers and {@code paramCount} must be N. Each of {@code kernelParams}[0] through {@code kernelParams}[N-1] must point to a region of memory from which the actual kernel parameter will be copied. The number of kernel parameters and their offsets and sizes are not specified here as that information is stored in the {@code VkCudaFunctionNV} object. The application-owned memory pointed to by {@code pParams} and {@code kernelParams}[0] through {@code kernelParams}[N-1] are consumed immediately, and may be altered or freed after #CmdCudaLaunchKernelNV() has returned. @@ -15821,7 +15884,7 @@ val VkImportMetalSharedEventInfoEXT = struct(Module.VULKAN, "VkImportMetalShared Structure that identifies a VkSemaphore or VkEvent object and corresponding Metal Shared Event object to use.
          Description
          - If the {@code pNext} chain of the ##VkSemaphoreCreateInfo structure includes both ##VkImportMetalSharedEventInfoEXT and ##VkSemaphoreTypeCreateInfo, the {@code signaledValue} property of the imported {@code id<MTLSharedEvent>} object will be set to {@code initialValue} of ##VkSemaphoreTypeCreateInfo. + If the {@code pNext} chain of the ##VkSemaphoreCreateInfo structure includes both ##VkImportMetalSharedEventInfoEXT and ##VkSemaphoreTypeCreateInfo, the {@code signaledValue} property of the imported {@code id<MTLSharedEvent>} object will be set to ##VkSemaphoreTypeCreateInfo{@code ::initialValue}.
          Valid Usage (Implicit)
            @@ -15934,48 +15997,6 @@ val VkPhysicalDeviceSynchronization2FeaturesKHR = struct(Module.VULKAN, "VkPhysi VkBool32("synchronization2", "") } -val VkQueueFamilyCheckpointProperties2NV = struct(Module.VULKAN, "VkQueueFamilyCheckpointProperties2NV", mutable = false) { - documentation = - """ - Return structure for queue family checkpoint information query. - -
            Description
            - Additional queue family information can be queried by setting ##VkQueueFamilyProperties2{@code ::pNext} to point to a ##VkQueueFamilyCheckpointProperties2NV structure. - -
            Valid Usage (Implicit)
            -
              -
            • {@code sType} must be #STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV
            • -
            - """ - - Expression("#STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.").mutable() - nullable..opaque_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.").mutable() - VkPipelineStageFlags2("checkpointExecutionStageMask", "a mask indicating which pipeline stages the implementation can execute checkpoint markers in.") -} - -val VkCheckpointData2NV = struct(Module.VULKAN, "VkCheckpointData2NV", mutable = false) { - documentation = - """ - Return structure for command buffer checkpoint data. - -
            Valid Usage (Implicit)
            -
              -
            • {@code sType} must be #STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV
            • -
            • {@code pNext} must be {@code NULL}
            • -
            - - The stages at which a checkpoint marker can be executed are implementation-defined and can be queried by calling #GetPhysicalDeviceQueueFamilyProperties2(). - -
            See Also
            - #GetQueueCheckpointData2NV() - """ - - Expression("#STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.").mutable() - nullable..opaque_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.").mutable() - VkPipelineStageFlags2("stage", "indicates a single pipeline stage which the checkpoint marker data refers to.") - nullable..opaque_p("pCheckpointMarker", "contains the value of the last checkpoint marker executed in the stage that {@code stage} refers to.") -} - val VkPhysicalDeviceDescriptorBufferPropertiesEXT = struct(Module.VULKAN, "VkPhysicalDeviceDescriptorBufferPropertiesEXT", mutable = false) { documentation = """ @@ -17735,7 +17756,7 @@ val VkVertexInputBindingDescription2EXT = struct(Module.VULKAN, "VkVertexInputBi uint32_t("binding", "the binding number that this structure describes.") uint32_t("stride", "the byte stride between consecutive elements within the buffer.") VkVertexInputRate("inputRate", "a {@code VkVertexInputRate} value specifying whether vertex attribute addressing is a function of the vertex index or of the instance index.") - uint32_t("divisor", "the number of successive instances that will use the same value of the vertex attribute when instanced rendering is enabled. This member can be set to a value other than 1 if the {@code vertexAttributeInstanceRateDivisor} feature is enabled. For example, if the divisor is N, the same vertex attribute will be applied to N successive instances before moving on to the next vertex attribute. The maximum value of {@code divisor} is implementation-dependent and can be queried using ##VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT{@code ::maxVertexAttribDivisor}. A value of 0 can be used for the divisor if the {@code vertexAttributeInstanceRateZeroDivisor} feature is enabled. In this case, the same vertex attribute will be applied to all instances.") + uint32_t("divisor", "the number of successive instances that will use the same value of the vertex attribute when instanced rendering is enabled. This member can be a value other than 1 if the {@code vertexAttributeInstanceRateDivisor} feature is enabled. For example, if the divisor is N, the same vertex attribute will be applied to N successive instances before moving on to the next vertex attribute. The maximum value of {@code divisor} is implementation-dependent and can be queried using ##VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT{@code ::maxVertexAttribDivisor}. A value of 0 can be used for the divisor if the {@code vertexAttributeInstanceRateZeroDivisor} feature is enabled. In this case, the same vertex attribute will be applied to all instances.") } val VkVertexInputAttributeDescription2EXT = struct(Module.VULKAN, "VkVertexInputAttributeDescription2EXT") { @@ -17924,6 +17945,25 @@ val VkFormatProperties3KHR = struct(Module.VULKAN, "VkFormatProperties3KHR", mut VkFormatFeatureFlags2("bufferFeatures", "") } +val VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT = struct(Module.VULKAN, "VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT") { + documentation = + """ + Structure describing support for VK_PRESENT_MODE_FIFO_LATEST_READY_EXT. + +
            Description
            + If the ##VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT structure is included in the {@code pNext} chain of the ##VkPhysicalDeviceFeatures2 structure passed to #GetPhysicalDeviceFeatures2(), it is filled in to indicate whether each corresponding feature is supported. ##VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT can also be used in the {@code pNext} chain of ##VkDeviceCreateInfo to selectively enable these features. + +
            Valid Usage (Implicit)
            +
              +
            • {@code sType} must be #STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT
            • +
            + """ + + Expression("#STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.") + nullable..opaque_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.") + VkBool32("presentModeFifoLatestReady", "specifies whether the implementation supports the #PRESENT_MODE_FIFO_LATEST_READY_EXT present mode.") +} + val VkSubpassShadingPipelineCreateInfoHUAWEI = struct(Module.VULKAN, "VkSubpassShadingPipelineCreateInfoHUAWEI") { documentation = """ @@ -18390,10 +18430,10 @@ val VkTraceRaysIndirectCommand2KHR = struct(Module.VULKAN, "VkTraceRaysIndirectC
          • {@code callableShaderBindingTableStride} must be less than or equal to ##VkPhysicalDeviceRayTracingPipelinePropertiesKHR{@code ::maxShaderGroupStride}
          • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, {@code hitShaderBindingTableAddress} must not be zero
          • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, {@code hitShaderBindingTableAddress} must not be zero
          • -
          • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR, the shader group handle identified by {@code missShaderBindingTableAddress} must not be set to zero
          • -
          • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, entries in the table identified by {@code hitShaderBindingTableAddress} accessed as a result of this command in order to execute an any-hit shader must not be set to zero
          • -
          • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, entries in the table identified by {@code hitShaderBindingTableAddress} accessed as a result of this command in order to execute a closest hit shader must not be set to zero
          • -
          • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, entries in the table identified by {@code hitShaderBindingTableAddress} accessed as a result of this command in order to execute an intersection shader must not be set to zero
          • +
          • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR, the shader group handle identified by {@code missShaderBindingTableAddress} must not be zero
          • +
          • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, entries in the table identified by {@code hitShaderBindingTableAddress} accessed as a result of this command in order to execute an any-hit shader must not be zero
          • +
          • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, entries in the table identified by {@code hitShaderBindingTableAddress} accessed as a result of this command in order to execute a closest hit shader must not be zero
          • +
          • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, entries in the table identified by {@code hitShaderBindingTableAddress} accessed as a result of this command in order to execute an intersection shader must not be zero
          • Any non-zero hit shader group entries in the table identified by {@code hitShaderBindingTableAddress} accessed by this call from a geometry with a {@code geometryType} of #GEOMETRY_TYPE_TRIANGLES_KHR must have been created with #RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR
          • Any non-zero hit shader group entries in the table identified by {@code hitShaderBindingTableAddress} accessed by this call from a geometry with a {@code geometryType} of #GEOMETRY_TYPE_AABBS_KHR must have been created with #RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR
          @@ -21058,7 +21098,7 @@ val VkAndroidHardwareBufferFormatResolvePropertiesANDROID = struct(Module.VULKAN Expression("#STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.").mutable() nullable..opaque_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.").mutable() - VkFormat("colorAttachmentFormat", "a {@code VkFormat} specifying the format of color attachment images that must be used for color attachments when resolving to the specified external format. If the implementation supports external format resolves for the specified external format, this value will be set to a color format supporting the #FORMAT_FEATURE_COLOR_ATTACHMENT_BIT in ##VkFormatProperties{@code ::optimalTilingFeatures} as returned by #GetPhysicalDeviceFormatProperties() with {@code format} equal to {@code colorAttachmentFormat} If external format resolves are not supported, this value will be set to {@code VK_FORMAT_UNDEFINED}.") + VkFormat("colorAttachmentFormat", "a {@code VkFormat} specifying the format of color attachment images that must be used for color attachments when resolving to the specified external format. If the implementation supports external format resolves for the specified external format, this value will be a color format supporting the #FORMAT_FEATURE_COLOR_ATTACHMENT_BIT in ##VkFormatProperties{@code ::optimalTilingFeatures} as returned by #GetPhysicalDeviceFormatProperties() with {@code format} equal to {@code colorAttachmentFormat} If external format resolves are not supported, this value will be #FORMAT_UNDEFINED.") } val VkPhysicalDeviceMaintenance5FeaturesKHR = struct(Module.VULKAN, "VkPhysicalDeviceMaintenance5FeaturesKHR") { @@ -21378,7 +21418,7 @@ val VkShaderCreateInfoEXT = struct(Module.VULKAN, "VkShaderCreateInfoEXT") {
        • If the {@code fragmentDensityMap} feature is not enabled, {@code flags} must not include #SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
        • If {@code flags} includes #SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT, the {@code subgroupSizeControl} feature must be enabled
        • If {@code flags} includes #SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT, the {@code computeFullSubgroups} feature must be enabled
        • -
        • If {@code flags} includes #SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT, then the {@code deviceGeneratedCommands} feature must be enabled
        • +
        • If {@code flags} includes #SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT, then the ##VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT{@code ::deviceGeneratedCommands} feature must be enabled
        • If {@code flags} includes #SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT, then the identified entry point must not specify {@code Xfb} execution mode
        • If {@code flags} includes #SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT, {@code stage} must be one of #SHADER_STAGE_MESH_BIT_EXT, #SHADER_STAGE_TASK_BIT_EXT, or #SHADER_STAGE_COMPUTE_BIT
        • If {@code stage} is not #SHADER_STAGE_COMPUTE_BIT, {@code flags} must not include #SHADER_CREATE_DISPATCH_BASE_BIT_EXT
        • @@ -21790,7 +21830,7 @@ val VkPipelineBinaryHandlesInfoKHR = struct(Module.VULKAN, "VkPipelineBinaryHand Structure containing newly created pipeline binaries.
          Description
          - If {@code pPipelineBinaries} is {@code NULL}, the number of binaries that would be created is returned in {@code pipelineBinaryCount}. Otherwise, {@code pipelineBinaryCount} must be set to the number of entries in the {@code pPipelineBinaries} array, and on return from #CreatePipelineBinariesKHR() {@code pipelineBinaryCount} is overwritten with the number of handles actually written to {@code pPipelineBinaries}. If the value of {@code pipelineBinaryCount} is less than the number of binaries that would have been created, at most {@code pipelineBinaryCount} handles will be written to {@code pPipelineBinaries} and #INCOMPLETE will be returned instead of #SUCCESS, to indicate that {@code pPipelineBinaries} was not large enough to create all the binaries. + If {@code pPipelineBinaries} is {@code NULL}, the number of binaries that would be created is returned in {@code pipelineBinaryCount}. Otherwise, {@code pipelineBinaryCount} must be the number of entries in the {@code pPipelineBinaries} array, and on return from #CreatePipelineBinariesKHR() {@code pipelineBinaryCount} is overwritten with the number of handles actually written to {@code pPipelineBinaries}. If the value of {@code pipelineBinaryCount} is less than the number of binaries that would have been created, at most {@code pipelineBinaryCount} handles will be written to {@code pPipelineBinaries} and #INCOMPLETE will be returned instead of #SUCCESS, to indicate that {@code pPipelineBinaries} was not large enough to create all the binaries.
          Valid Usage (Implicit)
            @@ -22225,7 +22265,7 @@ val VkLatencySleepModeInfoNV = struct(Module.VULKAN, "VkLatencySleepModeInfoNV") Structure to set low latency mode.
            Description
            - If {@code lowLatencyMode} is set to #FALSE, {@code lowLatencyBoost} will still hint to the GPU to increase its power state and {@code vkLatencySleepNV} will still enforce {@code minimumIntervalUs} between {@code vkQueuePresentKHR} calls. + If {@code lowLatencyMode} is #FALSE, {@code lowLatencyBoost} will still hint to the GPU to increase its power state and {@code vkLatencySleepNV} will still enforce {@code minimumIntervalUs} between {@code vkQueuePresentKHR} calls.
            Valid Usage (Implicit)
              @@ -22432,7 +22472,7 @@ val VkCooperativeMatrixPropertiesKHR = struct(Module.VULKAN, "VkCooperativeMatri At least one entry in the list must have power of two values for all of {@code MSize}, {@code KSize}, and {@code NSize}. - {@code scope} must be #SCOPE_SUBGROUP_KHR. + If {@code cooperativeMatrixWorkgroupScope} is not supported, {@code scope} must be #SCOPE_SUBGROUP_KHR.
              Valid Usage (Implicit)
                @@ -22525,7 +22565,7 @@ val VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM = struct(Module.VULKAN,
                Description
                If {@code perViewRenderAreaCount} is not zero, then the elements of {@code pPerViewRenderAreas} override the value of ##VkRenderPassBeginInfo{@code ::renderArea} or ##VkRenderingInfo{@code ::renderArea} and define per-view render areas for the individual views of a multiview render pass. The render area for the view with view index {@code i} is specified by {@code pPerViewRenderAreas}[i]. - The per-view render areas define per-view regions of attachments that are loaded, stored, and resolved according to the {@code loadOp}, {@code storeOp}, and {@code resolveMode} values of the render pass instance. When per-view render areas are defined, the value of ##VkRenderPassBeginInfo{@code ::renderArea} or ##VkRenderingInfo{@code ::renderArea} must be set to a render area that includes the union of all per-view render areas, may be used by the implementation for optimizations, but does not affect loads, stores, or resolves. + The per-view render areas define per-view regions of attachments that are loaded, stored, and resolved according to the {@code loadOp}, {@code storeOp}, and {@code resolveMode} values of the render pass instance. When per-view render areas are defined, the value of ##VkRenderPassBeginInfo{@code ::renderArea} or ##VkRenderingInfo{@code ::renderArea} must be a render area that includes the union of all per-view render areas, may be used by the implementation for optimizations, but does not affect loads, stores, or resolves. If this structure is present and if {@code perViewRenderAreaCount} is not zero, then {@code perViewRenderAreaCount} must be at least one greater than the most significant bit set in any element of ##VkRenderPassMultiviewCreateInfo{@code ::pViewMasks}. or ##VkRenderingInfo{@code ::viewMask} @@ -22618,7 +22658,7 @@ val VkVideoDecodeAV1ProfileInfoKHR = struct(Module.VULKAN, "VkVideoDecodeAV1Prof Expression("#STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.") nullable..opaque_const_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.") StdVideoAV1Profile("stdProfile", "a {@code StdVideoAV1Profile} value specifying the AV1 codec profile, as defined in section A.2 of the AV1 Specification.") - VkBool32("filmGrainSupport", "specifies whether AV1 film grain, as defined in section 7.8.3 of the AV1 Specification, can be used with the video profile. When this member is set to #TRUE, video session objects created against the video profile will be able to decode pictures that have film grain enabled.") + VkBool32("filmGrainSupport", "specifies whether AV1 film grain, as defined in section 7.8.3 of the AV1 Specification, can be used with the video profile. When this member is #TRUE, video session objects created against the video profile will be able to decode pictures that have film grain enabled.") } val VkVideoDecodeAV1CapabilitiesKHR = struct(Module.VULKAN, "VkVideoDecodeAV1CapabilitiesKHR", mutable = false) { @@ -24064,7 +24104,7 @@ val VkGeneratedCommandsMemoryRequirementsInfoEXT = struct(Module.VULKAN, "VkGene PointerSetter( "VkGeneratedCommandsPipelineInfoEXT", "VkGeneratedCommandsShaderInfoEXT", prepend = true - )..nullable..opaque_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.") + )..nullable..opaque_const_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.") VkIndirectExecutionSetEXT("indirectExecutionSet", "the indirect execution set to be used for binding shaders.") VkIndirectCommandsLayoutEXT("indirectCommandsLayout", "the {@code VkIndirectCommandsLayoutEXT} that this buffer memory is intended to be used with.") uint32_t("maxSequenceCount", "the maximum number of sequences that this buffer memory can be used with.") @@ -24235,12 +24275,13 @@ val VkGeneratedCommandsInfoEXT = struct(Module.VULKAN, "VkGeneratedCommandsInfoE
              • If the {@code indirectCommandsLayout} uses a token of #INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT, then the {@code indirectExecutionSet}’s push constant layout must contain the {@code updateRange} specified in ##VkIndirectCommandsPushConstantTokenEXT
              • {@code maxSequenceCount} must be less or equal to ##VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT{@code ::maxIndirectSequenceCount} and ##VkGeneratedCommandsMemoryRequirementsInfoEXT{@code ::maxSequencesCount} that was used to determine the {@code preprocessSize}
              • If {@code sequenceCountAddress} is not {@code NULL}, the value contained in the address must be less or equal to ##VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT{@code ::maxIndirectSequenceCount} and ##VkGeneratedCommandsMemoryRequirementsInfoEXT{@code ::maxSequencesCount} that was used to determine the {@code preprocessSize}
              • +
              • {@code maxSequenceCount} must not be zero
              • The underlying buffer for {@code preprocessAddress} must have the #BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT bit set in its usage flag
              • If the underlying buffer for {@code preprocessAddress} is non-sparse then it must be bound completely and contiguously to a single {@code VkDeviceMemory} object
              • If the {@code indirectCommandsLayout} contains a #INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT token, then the descriptor and push constant layout info provided either by {@code pipelineLayout} or through a ##VkPipelineLayoutCreateInfo in {@code pNext} of the ##VkIndirectCommandsLayoutCreateInfoEXT used to create {@code indirectCommandsLayout} must be compatible with the descriptor and push constant layout info used by {@code indirectExecutionSet}
              • If {@code indirectCommandsLayout} was created with a token sequence that contained the #INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT token, the shader stages used to create the initial shader state of {@code indirectExecutionSet} must equal the ##VkIndirectCommandsExecutionSetTokenEXT{@code ::shaderStages} used to create {@code indirectCommandsLayout}
              • {@code preprocessSize} must be greater than or equal to the memory requirement’s size returned by #GetGeneratedCommandsMemoryRequirementsEXT() using the matching inputs ({@code indirectCommandsLayout}, …​) as within this structure
              • -
              • The underlying buffer for {@code sequenceCountAddress} must have the #BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT bit set in its usage flag
              • +
              • The underlying buffer for {@code sequenceCountAddress} must have the #BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR bit set in its usage flag
              • If {@code sequenceCountAddress} is not {@code NULL}, {@code sequenceCountAddress} must be aligned to 4
              • {@code indirectAddress} must be aligned to 4
              • If the underlying buffer for {@code sequenceCountAddress} is non-sparse then it must be bound completely and contiguously to a single {@code VkDeviceMemory} object
              • @@ -24249,6 +24290,7 @@ val VkGeneratedCommandsInfoEXT = struct(Module.VULKAN, "VkGeneratedCommandsInfoE
              • When not ignored, maxDrawCount × maxSequenceCount must be less than 2^24
              • If {@code indirectCommandsLayout} was created using a #INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT token and shader objects are not bound then the currently bound graphics pipeline must have been created with #DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE in {@code pDynamicStates}
              • If the token sequence of the passed {@code indirectCommandsLayout} contains a #INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT token, the {@code indirectExecutionSet} must not be #NULL_HANDLE
              • +
              • If the token sequence of the passed {@code indirectCommandsLayout} does not contains a #INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT token, the {@code indirectExecutionSet} must be #NULL_HANDLE
              • If {@code indirectExecutionSet} is #NULL_HANDLE, a ##VkGeneratedCommandsPipelineInfoEXT or ##VkGeneratedCommandsShaderInfoEXT must be included in the {@code pNext} chain
              @@ -24292,7 +24334,6 @@ val VkWriteIndirectExecutionSetPipelineEXT = struct(Module.VULKAN, "VkWriteIndir
              • {@code index} must be less than the value of ##VkIndirectExecutionSetPipelineInfoEXT{@code ::maxPipelineCount} used to create the set
              • {@code pipeline} must have been created with #PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT
              • -
              • The descriptor layout info used to create {@code pipeline} must be compatible with the descriptor layout info used to create the indirect execution set
              • {@code index} must not be referenced by submitted command buffers
              • The shader stages contained in {@code pipeline} must be supported by ##VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT{@code ::supportedIndirectCommandsShaderStagesPipelineBinding}
              @@ -24346,7 +24387,7 @@ val VkIndirectCommandsVertexBufferTokenEXT = struct(Module.VULKAN, "VkIndirectCo
              Valid Usage
                -
              • {@code vertexBindingUnit} must be less than the total number of vertex input bindings in use by the current graphics state.
              • +
              • {@code vertexBindingUnit} must be less than the total number of vertex input bindings in use by the current graphics state
              See Also
              @@ -24447,7 +24488,7 @@ val VkIndirectCommandsLayoutTokenEXT = struct(Module.VULKAN, "VkIndirectCommands
              • {@code sType} must be #STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT
              • {@code type} must be a valid {@code VkIndirectCommandsTokenTypeEXT} value
              • -
              • If {@code type} is #INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT, the {@code pPushConstant} member of {@code data} must be a valid pointer to a valid ##VkIndirectCommandsPushConstantTokenEXT structure
              • +
              • If {@code type} is #INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT,VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT, the {@code pPushConstant} member of {@code data} must be a valid pointer to a valid ##VkIndirectCommandsPushConstantTokenEXT structure
              • If {@code type} is #INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT, the {@code pVertexBuffer} member of {@code data} must be a valid pointer to a valid ##VkIndirectCommandsVertexBufferTokenEXT structure
              • If {@code type} is #INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT, the {@code pIndexBuffer} member of {@code data} must be a valid pointer to a valid ##VkIndirectCommandsIndexBufferTokenEXT structure
              • If {@code type} is #INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT, the {@code pExecutionSet} member of {@code data} must be a valid pointer to a valid ##VkIndirectCommandsExecutionSetTokenEXT structure
              • @@ -24784,7 +24825,7 @@ val VkPipelineViewportDepthClampControlCreateInfoEXT = struct(Module.VULKAN, "Vk
                Valid Usage
                  -
                • If {@code depthClampMode} is set to #DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT, and the pipeline is not created with #DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT, then {@code pDepthClampRange} must be a valid pointer to a valid ##VkDepthClampRangeEXT structure.
                • +
                • If {@code depthClampMode} is #DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT, and the pipeline is not created with #DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT, then {@code pDepthClampRange} must be a valid pointer to a valid ##VkDepthClampRangeEXT structure
                Valid Usage (Implicit)
                @@ -24801,5 +24842,134 @@ val VkPipelineViewportDepthClampControlCreateInfoEXT = struct(Module.VULKAN, "Vk Expression("#STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.") nullable..opaque_const_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.") VkDepthClampModeEXT("depthClampMode", "determines how the clamp range is determined for each viewport.") - nullable..VkDepthClampRangeEXT.const.p("pDepthClampRange", "sets the depth clamp range for all viewports if {@code depthClampMode} is set to #DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT.") + nullable..VkDepthClampRangeEXT.const.p("pDepthClampRange", "sets the depth clamp range for all viewports if {@code depthClampMode} is #DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT.") +} + +val VkPhysicalDeviceHdrVividFeaturesHUAWEI = struct(Module.VULKAN, "VkPhysicalDeviceHdrVividFeaturesHUAWEI") { + documentation = + """ + Structure describing whether HDR Vivid metadata is supported. + +
                Description
                + If the ##VkPhysicalDeviceHdrVividFeaturesHUAWEI structure is included in the {@code pNext} chain of the ##VkPhysicalDeviceFeatures2 structure passed to #GetPhysicalDeviceFeatures2(), it is filled in to indicate whether each corresponding feature is supported. ##VkPhysicalDeviceHdrVividFeaturesHUAWEI can also be used in the {@code pNext} chain of ##VkDeviceCreateInfo to selectively enable these features. + +
                Valid Usage (Implicit)
                +
                  +
                • {@code sType} must be #STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI
                • +
                + """ + + Expression("#STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.") + nullable..opaque_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.") + VkBool32("hdrVivid", "specifies whether HDR Vivid metadata is supported.") +} + +val VkHdrVividDynamicMetadataHUAWEI = struct(Module.VULKAN, "VkHdrVividDynamicMetadataHUAWEI") { + documentation = + """ + specify HDR Vivid dynamic metadata. + +
                Description
                +
                Note
                + The HDR Vivid metadata is intended to be used as defined in the T/UWA 005.1-2022 specification. The validity and use of this data is outside the scope of Vulkan. +
                + +
                Valid Usage (Implicit)
                +
                  +
                • {@code sType} must be #STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI
                • +
                • {@code pDynamicMetadata} must be a valid pointer to an array of {@code dynamicMetadataSize} bytes
                • +
                • {@code dynamicMetadataSize} must be greater than 0
                • +
                + """ + + Expression("#STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.") + nullable..opaque_const_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.") + AutoSize("pDynamicMetadata")..size_t("dynamicMetadataSize", "the size in bytes of the dynamic metadata.") + void.const.p("pDynamicMetadata", "a pointer to the dynamic metadata.") +} + +val VkCooperativeMatrixFlexibleDimensionsPropertiesNV = struct(Module.VULKAN, "VkCooperativeMatrixFlexibleDimensionsPropertiesNV", mutable = false) { + documentation = + """ + Structure specifying cooperative matrix properties. + +
                Description
                + Rather than explicitly enumerating a list of supported sizes, ##VkCooperativeMatrixFlexibleDimensionsPropertiesNV advertises size granularities, where the matrix must be a multiple of the advertised size. The M and K granularities apply to rows and columns of matrices with {@code Use} of {@code MatrixA}, K, and N apply to rows and columns of matrices with {@code Use} of {@code MatrixB}, M, and N apply to rows and columns of matrices with {@code Use} of {@code MatrixAccumulator}. + + For a given type combination, if multiple workgroup sizes are supported there may be multiple ##VkCooperativeMatrixFlexibleDimensionsPropertiesNV structures with different granularities. + + All granularity values must be powers of two. + +
                Note
                + Different A/B types may require different granularities but share the same accumulator type. In such a case, the supported granularity for a matrix with the accumulator type would be the smallest advertised granularity. +
                + +
                Valid Usage (Implicit)
                +
                  +
                • {@code sType} must be #STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV
                • +
                • {@code pNext} must be {@code NULL}
                • +
                + +
                See Also
                + #GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV() + """ + + Expression("#STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.").mutable() + nullable..opaque_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.").mutable() + uint32_t("MGranularity", "the granularity of the number of rows in matrices {@code A}, {@code C}, and {@code Result}. The rows must be an integer multiple of this value.") + uint32_t("NGranularity", "the granularity of columns in matrices {@code B}, {@code C}, {@code Result}. The columns must be an integer multiple of this value.") + uint32_t("KGranularity", "the granularity of columns in matrix {@code A} and rows in matrix {@code B}. The columns/rows must be an integer multiple of this value.") + VkComponentTypeKHR("AType", "the component type of matrix {@code A}, of type {@code VkComponentTypeKHR}.") + VkComponentTypeKHR("BType", "the component type of matrix {@code B}, of type {@code VkComponentTypeKHR}.") + VkComponentTypeKHR("CType", "the component type of matrix {@code C}, of type {@code VkComponentTypeKHR}.") + VkComponentTypeKHR("ResultType", "the component type of matrix {@code Result}, of type {@code VkComponentTypeKHR}.") + VkBool32("saturatingAccumulation", "indicates whether the {@code SaturatingAccumulation} operand to {@code OpCooperativeMatrixMulAddKHR} must be present or not. If it is #TRUE, the {@code SaturatingAccumulation} operand must be present. If it is #FALSE, the {@code SaturatingAccumulation} operand must not be present.") + VkScopeKHR("scope", "the scope of all the matrix types, of type {@code VkScopeKHR}.") + uint32_t("workgroupInvocations", "the number of invocations in the local workgroup when this combination of values is supported.") +} + +val VkPhysicalDeviceCooperativeMatrix2FeaturesNV = struct(Module.VULKAN, "VkPhysicalDeviceCooperativeMatrix2FeaturesNV") { + documentation = + """ + Structure describing cooperative matrix features that can be supported by an implementation. + +
                Description
                + If the ##VkPhysicalDeviceCooperativeMatrix2FeaturesNV structure is included in the {@code pNext} chain of the ##VkPhysicalDeviceFeatures2 structure passed to #GetPhysicalDeviceFeatures2(), it is filled in to indicate whether each corresponding feature is supported. ##VkPhysicalDeviceCooperativeMatrix2FeaturesNV can also be used in the {@code pNext} chain of ##VkDeviceCreateInfo to selectively enable these features. + +
                Valid Usage (Implicit)
                +
                  +
                • {@code sType} must be #STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV
                • +
                + """ + + Expression("#STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.") + nullable..opaque_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.") + VkBool32("cooperativeMatrixWorkgroupScope", "indicates that the implementation supports workgroup scope cooperative matrices.") + VkBool32("cooperativeMatrixFlexibleDimensions", "indicates that the implementation supports cooperative matrix sizes that are a multiple of the granularity advertised in ##VkCooperativeMatrixFlexibleDimensionsPropertiesNV.") + VkBool32("cooperativeMatrixReductions", "indicates that the implementation supports the {@code CooperativeMatrixReductionsNV} SPIR-V capability. This allows performing (row, column, 2x2, or all element) reductions on matrices.") + VkBool32("cooperativeMatrixConversions", "indicates that the implementation supports the {@code CooperativeMatrixConversionsNV} SPIR-V capability. This allows converting accumulator matrices to A or B matrices.") + VkBool32("cooperativeMatrixPerElementOperations", "indicates that the implementation supports the {@code CooperativeMatrixPerElementOperationsNV} SPIR-V capability. This allows performing element-wise operations on matrix elements using a callback function.") + VkBool32("cooperativeMatrixTensorAddressing", "indicates that the implementation supports the {@code TensorAddressingNV} and {@code CooperativeMatrixTensorAddressingNV} SPIR-V capabilities. This allows using tensor layout and tensor view types for matrix loads and stores.") + VkBool32("cooperativeMatrixBlockLoads", "indicates that the implementation supports the {@code CooperativeMatrixBlockLoadsNV} SPIR-V capability. This allows setting block size for loads and using a callback function to decode block elements.") +} + +val VkPhysicalDeviceCooperativeMatrix2PropertiesNV = struct(Module.VULKAN, "VkPhysicalDeviceCooperativeMatrix2PropertiesNV", mutable = false) { + documentation = + """ + Structure describing cooperative matrix properties supported by an implementation. + +
                Description
                + If the ##VkPhysicalDeviceCooperativeMatrix2PropertiesNV structure is included in the {@code pNext} chain of the ##VkPhysicalDeviceProperties2 structure passed to #GetPhysicalDeviceProperties2(), it is filled in with each corresponding implementation-dependent property. + +
                Valid Usage (Implicit)
                +
                  +
                • {@code sType} must be #STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV
                • +
                + """ + + Expression("#STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.").mutable() + nullable..opaque_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.").mutable() + uint32_t("cooperativeMatrixWorkgroupScopeMaxWorkgroupSize", "the maximum number of invocations in a workgroup when the module uses {@code OpTypeCooperativeMatrixKHR} with {@code Scope} equal to {@code Workgroup}.") + uint32_t("cooperativeMatrixFlexibleDimensionsMaxDimension", "the maximum supported dimension for cooperative matrix types when {@code cooperativeMatrixFlexibleDimensions} is enabled.") + uint32_t("cooperativeMatrixWorkgroupScopeReservedSharedMemory", "the number of bytes of shared memory reserved for the implementation when the module uses {@code OpTypeCooperativeMatrixKHR} with {@code Scope} equal to {@code Workgroup}.") } \ No newline at end of file diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/VKTypes.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/VKTypes.kt index ed418abafe..b1a484cc0d 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/VKTypes.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/VKTypes.kt @@ -1057,6 +1057,9 @@ val VkInstanceCreateInfo = struct(Module.VULKAN, "VkInstanceCreateInfo") {
              • If the {@code pNext} chain includes a ##VkExportMetalObjectCreateInfoEXT structure, its {@code exportObjectType} member must be either #EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT or #EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT
              • If {@code flags} has the #INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR bit set, the list of enabled extensions in {@code ppEnabledExtensionNames} must contain {@link KHRPortabilityEnumeration VK_KHR_portability_enumeration}
              • If the {@code pNext} chain of ##VkInstanceCreateInfo includes a ##VkDirectDriverLoadingListLUNARG structure, the list of enabled extensions in {@code ppEnabledExtensionNames} must contain {@link LUNARGDirectDriverLoading VK_LUNARG_direct_driver_loading}
              • +
              • If the {@code pNext} chain of ##VkInstanceCreateInfo includes a ##VkLayerSettingsCreateInfoEXT structure, the list of enabled extensions in {@code ppEnabledExtensionNames} must contain {@link EXTLayerSettings VK_EXT_layer_settings}
              • +
              • If the {@code pNext} chain of ##VkInstanceCreateInfo includes a ##VkValidationFeaturesEXT structure, the list of enabled extensions in {@code ppEnabledExtensionNames} must contain {@link EXTValidationFeatures VK_EXT_validation_features}
              • +
              • If the {@code pNext} chain of ##VkInstanceCreateInfo includes a ##VkValidationFlagsEXT structure, the list of enabled extensions in {@code ppEnabledExtensionNames} must contain {@link EXTValidationFlags VK_EXT_validation_flags}
              Valid Usage (Implicit)
              @@ -1203,26 +1206,26 @@ val VkPhysicalDeviceFeatures = struct(Module.VULKAN, "VkPhysicalDeviceFeatures") VkBool32("independentBlend", "specifies whether the ##VkPipelineColorBlendAttachmentState settings are controlled independently per-attachment. If this feature is not enabled, the ##VkPipelineColorBlendAttachmentState settings for all color attachments must be identical. Otherwise, a different ##VkPipelineColorBlendAttachmentState can be provided for each bound color attachment.") VkBool32("geometryShader", "specifies whether geometry shaders are supported. If this feature is not enabled, the #SHADER_STAGE_GEOMETRY_BIT and #PIPELINE_STAGE_GEOMETRY_SHADER_BIT enum values must not be used. This also specifies whether shader modules can declare the {@code Geometry} capability.") VkBool32("tessellationShader", "specifies whether tessellation control and evaluation shaders are supported. If this feature is not enabled, the #SHADER_STAGE_TESSELLATION_CONTROL_BIT, #SHADER_STAGE_TESSELLATION_EVALUATION_BIT, #PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, #PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, and #STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO enum values must not be used. This also specifies whether shader modules can declare the {@code Tessellation} capability.") - VkBool32("sampleRateShading", "specifies whether Sample Shading and multisample interpolation are supported. If this feature is not enabled, the {@code sampleShadingEnable} member of the ##VkPipelineMultisampleStateCreateInfo structure must be set to #FALSE and the {@code minSampleShading} member is ignored. This also specifies whether shader modules can declare the {@code SampleRateShading} capability.") + VkBool32("sampleRateShading", "specifies whether Sample Shading and multisample interpolation are supported. If this feature is not enabled, the {@code sampleShadingEnable} member of the ##VkPipelineMultisampleStateCreateInfo structure must be #FALSE and the {@code minSampleShading} member is ignored. This also specifies whether shader modules can declare the {@code SampleRateShading} capability.") VkBool32("dualSrcBlend", "specifies whether blend operations which take two sources are supported. If this feature is not enabled, the #BLEND_FACTOR_SRC1_COLOR, #BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, #BLEND_FACTOR_SRC1_ALPHA, and #BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA enum values must not be used as source or destination blending factors. See Dual-Source Blending.") - VkBool32("logicOp", "specifies whether logic operations are supported. If this feature is not enabled, the {@code logicOpEnable} member of the ##VkPipelineColorBlendStateCreateInfo structure must be set to #FALSE, and the {@code logicOp} member is ignored.") + VkBool32("logicOp", "specifies whether logic operations are supported. If this feature is not enabled, the {@code logicOpEnable} member of the ##VkPipelineColorBlendStateCreateInfo structure must be #FALSE, and the {@code logicOp} member is ignored.") VkBool32("multiDrawIndirect", "specifies whether multiple draw indirect is supported. If this feature is not enabled, the {@code drawCount} parameter to the #CmdDrawIndirect() and #CmdDrawIndexedIndirect() commands must be 0 or 1. The {@code maxDrawIndirectCount} member of the ##VkPhysicalDeviceLimits structure must also be 1 if this feature is not supported. See {@code maxDrawIndirectCount}.") VkBool32("drawIndirectFirstInstance", "specifies whether indirect drawing calls support the {@code firstInstance} parameter. If this feature is not enabled, the {@code firstInstance} member of all ##VkDrawIndirectCommand and ##VkDrawIndexedIndirectCommand structures that are provided to the #CmdDrawIndirect() and #CmdDrawIndexedIndirect() commands must be 0.") VkBool32("depthClamp", "specifies whether depth clamping is supported. If this feature is not enabled, the {@code depthClampEnable} member of the ##VkPipelineRasterizationStateCreateInfo structure must be #FALSE. Otherwise, setting {@code depthClampEnable} to #TRUE will enable depth clamping.") - VkBool32("depthBiasClamp", "specifies whether depth bias clamping is supported. If this feature is not enabled, the {@code depthBiasClamp} member of the ##VkPipelineRasterizationStateCreateInfo structure must be set to 0.0 unless the #DYNAMIC_STATE_DEPTH_BIAS dynamic state is enabled, in which case the {@code depthBiasClamp} parameter to #CmdSetDepthBias() must be set to 0.0.") + VkBool32("depthBiasClamp", "specifies whether depth bias clamping is supported. If this feature is not enabled, the {@code depthBiasClamp} member of the ##VkPipelineRasterizationStateCreateInfo structure must be 0.0 unless the #DYNAMIC_STATE_DEPTH_BIAS dynamic state is enabled, in which case the {@code depthBiasClamp} parameter to #CmdSetDepthBias() must be 0.0.") VkBool32("fillModeNonSolid", "specifies whether point and wireframe fill modes are supported. If this feature is not enabled, the #POLYGON_MODE_POINT and #POLYGON_MODE_LINE enum values must not be used.") VkBool32("depthBounds", "specifies whether depth bounds tests are supported. If this feature is not enabled, the {@code depthBoundsTestEnable} member of the ##VkPipelineDepthStencilStateCreateInfo structure must be #FALSE unless the #DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state is enabled, in which case the {@code depthBoundsTestEnable} parameter to #CmdSetDepthBoundsTestEnable() must be #FALSE. When {@code depthBoundsTestEnable} is #FALSE, the {@code minDepthBounds} and {@code maxDepthBounds} members of the ##VkPipelineDepthStencilStateCreateInfo structure are ignored.") - VkBool32("wideLines", "specifies whether lines with width other than 1.0 are supported. If this feature is not enabled, the {@code lineWidth} member of the ##VkPipelineRasterizationStateCreateInfo structure must be set to 1.0 unless the #DYNAMIC_STATE_LINE_WIDTH dynamic state is enabled, in which case the {@code lineWidth} parameter to #CmdSetLineWidth() must be set to 1.0. When this feature is supported, the range and granularity of supported line widths are indicated by the {@code lineWidthRange} and {@code lineWidthGranularity} members of the ##VkPhysicalDeviceLimits structure, respectively.") + VkBool32("wideLines", "specifies whether lines with width other than 1.0 are supported. If this feature is not enabled, the {@code lineWidth} member of the ##VkPipelineRasterizationStateCreateInfo structure must be 1.0 unless the #DYNAMIC_STATE_LINE_WIDTH dynamic state is enabled, in which case the {@code lineWidth} parameter to #CmdSetLineWidth() must be 1.0. When this feature is supported, the range and granularity of supported line widths are indicated by the {@code lineWidthRange} and {@code lineWidthGranularity} members of the ##VkPhysicalDeviceLimits structure, respectively.") VkBool32("largePoints", "specifies whether points with size greater than 1.0 are supported. If this feature is not enabled, only a point size of 1.0 written by a shader is supported. The range and granularity of supported point sizes are indicated by the {@code pointSizeRange} and {@code pointSizeGranularity} members of the ##VkPhysicalDeviceLimits structure, respectively.") VkBool32("alphaToOne", "specifies whether the implementation is able to replace the alpha value of the fragment shader color output in the Multisample Coverage fragment operation. If this feature is not enabled, then the {@code alphaToOneEnable} member of the ##VkPipelineMultisampleStateCreateInfo structure must be #FALSE. Otherwise setting {@code alphaToOneEnable} to #TRUE will enable alpha-to-one behavior.") VkBool32("multiViewport", """specifies whether more than one viewport is supported. If this feature is not enabled:
                -
              • The {@code viewportCount} and {@code scissorCount} members of the ##VkPipelineViewportStateCreateInfo structure must be set to 1.
              • -
              • The {@code firstViewport} and {@code viewportCount} parameters to the #CmdSetViewport() command must be set to 0 and 1, respectively.
              • -
              • The {@code firstScissor} and {@code scissorCount} parameters to the #CmdSetScissor() command must be set to 0 and 1, respectively.
              • -
              • The {@code exclusiveScissorCount} member of the ##VkPipelineViewportExclusiveScissorStateCreateInfoNV structure must be set to 0 or 1.
              • -
              • The {@code firstExclusiveScissor} and {@code exclusiveScissorCount} parameters to the #CmdSetExclusiveScissorNV() command must be set to 0 and 1, respectively.
              • +
              • The {@code viewportCount} and {@code scissorCount} members of the ##VkPipelineViewportStateCreateInfo structure must be 1.
              • +
              • The {@code firstViewport} and {@code viewportCount} parameters to the #CmdSetViewport() command must be 0 and 1, respectively.
              • +
              • The {@code firstScissor} and {@code scissorCount} parameters to the #CmdSetScissor() command must be 0 and 1, respectively.
              • +
              • The {@code exclusiveScissorCount} member of the ##VkPipelineViewportExclusiveScissorStateCreateInfoNV structure must be 0 or 1.
              • +
              • The {@code firstExclusiveScissor} and {@code exclusiveScissorCount} parameters to the #CmdSetExclusiveScissorNV() command must be 0 and 1, respectively.
              """) VkBool32("samplerAnisotropy", "specifies whether anisotropic filtering is supported. If this feature is not enabled, the {@code anisotropyEnable} member of the ##VkSamplerCreateInfo structure must be #FALSE.") VkBool32("textureCompressionETC2", """specifies whether all of the ETC2 and EAC compressed texture formats are supported. If this feature is enabled, then the #FORMAT_FEATURE_SAMPLED_IMAGE_BIT, #FORMAT_FEATURE_BLIT_SRC_BIT and #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT features must be supported in {@code optimalTilingFeatures} for the following formats: @@ -1479,7 +1482,7 @@ val VkPhysicalDeviceLimits = struct(Module.VULKAN, "VkPhysicalDeviceLimits", mut VkSampleCountFlags("sampledImageStencilSampleCounts", "a bitmask1 of {@code VkSampleCountFlagBits} indicating the sample counts supported for all 2D images created with #IMAGE_TILING_OPTIMAL, {@code usage} containing #IMAGE_USAGE_SAMPLED_BIT, and a stencil format.") VkSampleCountFlags("storageImageSampleCounts", "a bitmask1 of {@code VkSampleCountFlagBits} indicating the sample counts supported for all 2D images created with #IMAGE_TILING_OPTIMAL, and {@code usage} containing #IMAGE_USAGE_STORAGE_BIT.") uint32_t("maxSampleMaskWords", "the maximum number of array elements of a variable decorated with the {@code SampleMask} built-in decoration.") - VkBool32("timestampComputeAndGraphics", "specifies support for timestamps on all graphics and compute queues. If this limit is set to #TRUE, all queues that advertise the #QUEUE_GRAPHICS_BIT or #QUEUE_COMPUTE_BIT in the ##VkQueueFamilyProperties{@code ::queueFlags} support ##VkQueueFamilyProperties{@code ::timestampValidBits} of at least 36. See Timestamp Queries.") + VkBool32("timestampComputeAndGraphics", "specifies support for timestamps on all graphics and compute queues. If this limit is #TRUE, all queues that advertise the #QUEUE_GRAPHICS_BIT or #QUEUE_COMPUTE_BIT in the ##VkQueueFamilyProperties{@code ::queueFlags} support ##VkQueueFamilyProperties{@code ::timestampValidBits} of at least 36. See Timestamp Queries.") float("timestampPeriod", "the number of nanoseconds required for a timestamp query to be incremented by 1. See Timestamp Queries.") uint32_t("maxClipDistances", "the maximum number of clip distances that can be used in a single shader stage. The size of any array declared with the {@code ClipDistance} built-in decoration in a shader module must be less than or equal to this limit.") uint32_t("maxCullDistances", "the maximum number of cull distances that can be used in a single shader stage. The size of any array declared with the {@code CullDistance} built-in decoration in a shader module must be less than or equal to this limit.") @@ -1646,9 +1649,9 @@ val VkPhysicalDeviceProperties = struct(Module.VULKAN, "VkPhysicalDeviceProperti For example, in the case of a discrete GPU implementation, this should be the GPU chipset vendor. In the case of a hardware accelerator integrated into a system-on-chip (SoC), this should be the supplier of the silicon IP used to create the accelerator. - If the vendor has a PCI vendor ID, the low 16 bits of {@code vendorID} must contain that PCI vendor ID, and the remaining bits must be set to zero. Otherwise, the value returned must be a valid Khronos vendor ID, obtained as described in the Vulkan Documentation and Extensions: Procedures and Conventions document in the section “{@code Registering a Vendor ID with Khronos}”. Khronos vendor IDs are allocated starting at 0x10000, to distinguish them from the PCI vendor ID namespace. Khronos vendor IDs are symbolically defined in the {@code VkVendorId} type. + If the vendor has a PCI vendor ID, the low 16 bits of {@code vendorID} must contain that PCI vendor ID, and the remaining bits must be zero. Otherwise, the value returned must be a valid Khronos vendor ID, obtained as described in the Vulkan Documentation and Extensions: Procedures and Conventions document in the section “{@code Registering a Vendor ID with Khronos}”. Khronos vendor IDs are allocated starting at 0x10000, to distinguish them from the PCI vendor ID namespace. Khronos vendor IDs are symbolically defined in the {@code VkVendorId} type. - The vendor is also responsible for the value returned in {@code deviceID}. If the implementation is driven primarily by a PCI device with a PCI device ID, the low 16 bits of {@code deviceID} must contain that PCI device ID, and the remaining bits must be set to zero. Otherwise, the choice of what values to return may be dictated by operating system or platform policies - but should uniquely identify both the device version and any major configuration options (for example, core count in the case of multicore devices). + The vendor is also responsible for the value returned in {@code deviceID}. If the implementation is driven primarily by a PCI device with a PCI device ID, the low 16 bits of {@code deviceID} must contain that PCI device ID, and the remaining bits must be zero. Otherwise, the choice of what values to return may be dictated by operating system or platform policies - but should uniquely identify both the device version and any major configuration options (for example, core count in the case of multicore devices).
              Note
              The same device ID should be used for all physical implementations of that device version and configuration. For example, all uses of a specific silicon IP GPU version and configuration should use the same device ID, even if those uses occur in different SoCs. @@ -1798,7 +1801,7 @@ val VkDeviceCreateInfo = struct(Module.VULKAN, "VkDeviceCreateInfo") {
              Valid Usage (Implicit)
              • {@code sType} must be #STRUCTURE_TYPE_DEVICE_CREATE_INFO
              • -
              • Each {@code pNext} member of any structure (including this one) in the {@code pNext} chain must be either {@code NULL} or a pointer to a valid instance of ##VkDeviceDeviceMemoryReportCreateInfoEXT, ##VkDeviceDiagnosticsConfigCreateInfoNV, ##VkDeviceGroupDeviceCreateInfo, ##VkDeviceMemoryOverallocationCreateInfoAMD, ##VkDevicePipelineBinaryInternalCacheControlKHR, ##VkDevicePrivateDataCreateInfo, ##VkDeviceQueueShaderCoreControlCreateInfoARM, ##VkPhysicalDevice16BitStorageFeatures, ##VkPhysicalDevice4444FormatsFeaturesEXT, ##VkPhysicalDevice8BitStorageFeatures, ##VkPhysicalDeviceASTCDecodeFeaturesEXT, ##VkPhysicalDeviceAccelerationStructureFeaturesKHR, ##VkPhysicalDeviceAddressBindingReportFeaturesEXT, ##VkPhysicalDeviceAmigoProfilingFeaturesSEC, ##VkPhysicalDeviceAntiLagFeaturesAMD, ##VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT, ##VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, ##VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, ##VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, ##VkPhysicalDeviceBufferDeviceAddressFeatures, ##VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, ##VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI, ##VkPhysicalDeviceCoherentMemoryFeaturesAMD, ##VkPhysicalDeviceColorWriteEnableFeaturesEXT, ##VkPhysicalDeviceCommandBufferInheritanceFeaturesNV, ##VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR, ##VkPhysicalDeviceConditionalRenderingFeaturesEXT, ##VkPhysicalDeviceCooperativeMatrixFeaturesKHR, ##VkPhysicalDeviceCooperativeMatrixFeaturesNV, ##VkPhysicalDeviceCopyMemoryIndirectFeaturesNV, ##VkPhysicalDeviceCornerSampledImageFeaturesNV, ##VkPhysicalDeviceCoverageReductionModeFeaturesNV, ##VkPhysicalDeviceCubicClampFeaturesQCOM, ##VkPhysicalDeviceCubicWeightsFeaturesQCOM, ##VkPhysicalDeviceCudaKernelLaunchFeaturesNV, ##VkPhysicalDeviceCustomBorderColorFeaturesEXT, ##VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, ##VkPhysicalDeviceDepthBiasControlFeaturesEXT, ##VkPhysicalDeviceDepthClampControlFeaturesEXT, ##VkPhysicalDeviceDepthClampZeroOneFeaturesEXT, ##VkPhysicalDeviceDepthClipControlFeaturesEXT, ##VkPhysicalDeviceDepthClipEnableFeaturesEXT, ##VkPhysicalDeviceDescriptorBufferFeaturesEXT, ##VkPhysicalDeviceDescriptorIndexingFeatures, ##VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV, ##VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, ##VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV, ##VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT, ##VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, ##VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, ##VkPhysicalDeviceDiagnosticsConfigFeaturesNV, ##VkPhysicalDeviceDisplacementMicromapFeaturesNV, ##VkPhysicalDeviceDynamicRenderingFeatures, ##VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR, ##VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT, ##VkPhysicalDeviceExclusiveScissorFeaturesNV, ##VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, ##VkPhysicalDeviceExtendedDynamicState3FeaturesEXT, ##VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, ##VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV, ##VkPhysicalDeviceExternalFormatResolveFeaturesANDROID, ##VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, ##VkPhysicalDeviceFaultFeaturesEXT, ##VkPhysicalDeviceFeatures2, ##VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, ##VkPhysicalDeviceFragmentDensityMapFeaturesEXT, ##VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, ##VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, ##VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, ##VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, ##VkPhysicalDeviceFragmentShadingRateFeaturesKHR, ##VkPhysicalDeviceFrameBoundaryFeaturesEXT, ##VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR, ##VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, ##VkPhysicalDeviceHostImageCopyFeaturesEXT, ##VkPhysicalDeviceHostQueryResetFeatures, ##VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, ##VkPhysicalDeviceImageAlignmentControlFeaturesMESA, ##VkPhysicalDeviceImageCompressionControlFeaturesEXT, ##VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, ##VkPhysicalDeviceImageProcessing2FeaturesQCOM, ##VkPhysicalDeviceImageProcessingFeaturesQCOM, ##VkPhysicalDeviceImageRobustnessFeatures, ##VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT, ##VkPhysicalDeviceImageViewMinLodFeaturesEXT, ##VkPhysicalDeviceImagelessFramebufferFeatures, ##VkPhysicalDeviceIndexTypeUint8FeaturesKHR, ##VkPhysicalDeviceInheritedViewportScissorFeaturesNV, ##VkPhysicalDeviceInlineUniformBlockFeatures, ##VkPhysicalDeviceInvocationMaskFeaturesHUAWEI, ##VkPhysicalDeviceLegacyDitheringFeaturesEXT, ##VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT, ##VkPhysicalDeviceLineRasterizationFeaturesKHR, ##VkPhysicalDeviceLinearColorAttachmentFeaturesNV, ##VkPhysicalDeviceMaintenance4Features, ##VkPhysicalDeviceMaintenance5FeaturesKHR, ##VkPhysicalDeviceMaintenance6FeaturesKHR, ##VkPhysicalDeviceMaintenance7FeaturesKHR, ##VkPhysicalDeviceMapMemoryPlacedFeaturesEXT, ##VkPhysicalDeviceMemoryDecompressionFeaturesNV, ##VkPhysicalDeviceMemoryPriorityFeaturesEXT, ##VkPhysicalDeviceMeshShaderFeaturesEXT, ##VkPhysicalDeviceMeshShaderFeaturesNV, ##VkPhysicalDeviceMultiDrawFeaturesEXT, ##VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, ##VkPhysicalDeviceMultiviewFeatures, ##VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM, ##VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM, ##VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT, ##VkPhysicalDeviceNestedCommandBufferFeaturesEXT, ##VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT, ##VkPhysicalDeviceOpacityMicromapFeaturesEXT, ##VkPhysicalDeviceOpticalFlowFeaturesNV, ##VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, ##VkPhysicalDevicePerStageDescriptorSetFeaturesNV, ##VkPhysicalDevicePerformanceQueryFeaturesKHR, ##VkPhysicalDevicePipelineBinaryFeaturesKHR, ##VkPhysicalDevicePipelineCreationCacheControlFeatures, ##VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, ##VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT, ##VkPhysicalDevicePipelinePropertiesFeaturesEXT, ##VkPhysicalDevicePipelineProtectedAccessFeaturesEXT, ##VkPhysicalDevicePipelineRobustnessFeaturesEXT, ##VkPhysicalDevicePortabilitySubsetFeaturesKHR, ##VkPhysicalDevicePresentBarrierFeaturesNV, ##VkPhysicalDevicePresentIdFeaturesKHR, ##VkPhysicalDevicePresentWaitFeaturesKHR, ##VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, ##VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, ##VkPhysicalDevicePrivateDataFeatures, ##VkPhysicalDeviceProtectedMemoryFeatures, ##VkPhysicalDeviceProvokingVertexFeaturesEXT, ##VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT, ##VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT, ##VkPhysicalDeviceRawAccessChainsFeaturesNV, ##VkPhysicalDeviceRayQueryFeaturesKHR, ##VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV, ##VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, ##VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, ##VkPhysicalDeviceRayTracingPipelineFeaturesKHR, ##VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR, ##VkPhysicalDeviceRayTracingValidationFeaturesNV, ##VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG, ##VkPhysicalDeviceRenderPassStripedFeaturesARM, ##VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, ##VkPhysicalDeviceRobustness2FeaturesEXT, ##VkPhysicalDeviceSamplerYcbcrConversionFeatures, ##VkPhysicalDeviceScalarBlockLayoutFeatures, ##VkPhysicalDeviceSchedulingControlsFeaturesARM, ##VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, ##VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV, ##VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, ##VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, ##VkPhysicalDeviceShaderAtomicInt64Features, ##VkPhysicalDeviceShaderClockFeaturesKHR, ##VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM, ##VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, ##VkPhysicalDeviceShaderDrawParametersFeatures, ##VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, ##VkPhysicalDeviceShaderEnqueueFeaturesAMDX, ##VkPhysicalDeviceShaderExpectAssumeFeaturesKHR, ##VkPhysicalDeviceShaderFloat16Int8Features, ##VkPhysicalDeviceShaderFloatControls2FeaturesKHR, ##VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, ##VkPhysicalDeviceShaderImageFootprintFeaturesNV, ##VkPhysicalDeviceShaderIntegerDotProductFeatures, ##VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, ##VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR, ##VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT, ##VkPhysicalDeviceShaderObjectFeaturesEXT, ##VkPhysicalDeviceShaderQuadControlFeaturesKHR, ##VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR, ##VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT, ##VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, ##VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, ##VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR, ##VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, ##VkPhysicalDeviceShaderTerminateInvocationFeatures, ##VkPhysicalDeviceShaderTileImageFeaturesEXT, ##VkPhysicalDeviceShadingRateImageFeaturesNV, ##VkPhysicalDeviceSubgroupSizeControlFeatures, ##VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT, ##VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, ##VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT, ##VkPhysicalDeviceSynchronization2Features, ##VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, ##VkPhysicalDeviceTextureCompressionASTCHDRFeatures, ##VkPhysicalDeviceTilePropertiesFeaturesQCOM, ##VkPhysicalDeviceTimelineSemaphoreFeatures, ##VkPhysicalDeviceTransformFeedbackFeaturesEXT, ##VkPhysicalDeviceUniformBufferStandardLayoutFeatures, ##VkPhysicalDeviceVariablePointersFeatures, ##VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR, ##VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, ##VkPhysicalDeviceVideoMaintenance1FeaturesKHR, ##VkPhysicalDeviceVulkan11Features, ##VkPhysicalDeviceVulkan12Features, ##VkPhysicalDeviceVulkan13Features, ##VkPhysicalDeviceVulkanMemoryModelFeatures, ##VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, ##VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, ##VkPhysicalDeviceYcbcrDegammaFeaturesQCOM, ##VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, or ##VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures
              • +
              • Each {@code pNext} member of any structure (including this one) in the {@code pNext} chain must be either {@code NULL} or a pointer to a valid instance of ##VkDeviceDeviceMemoryReportCreateInfoEXT, ##VkDeviceDiagnosticsConfigCreateInfoNV, ##VkDeviceGroupDeviceCreateInfo, ##VkDeviceMemoryOverallocationCreateInfoAMD, ##VkDevicePipelineBinaryInternalCacheControlKHR, ##VkDevicePrivateDataCreateInfo, ##VkDeviceQueueShaderCoreControlCreateInfoARM, ##VkPhysicalDevice16BitStorageFeatures, ##VkPhysicalDevice4444FormatsFeaturesEXT, ##VkPhysicalDevice8BitStorageFeatures, ##VkPhysicalDeviceASTCDecodeFeaturesEXT, ##VkPhysicalDeviceAccelerationStructureFeaturesKHR, ##VkPhysicalDeviceAddressBindingReportFeaturesEXT, ##VkPhysicalDeviceAmigoProfilingFeaturesSEC, ##VkPhysicalDeviceAntiLagFeaturesAMD, ##VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT, ##VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, ##VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, ##VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, ##VkPhysicalDeviceBufferDeviceAddressFeatures, ##VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, ##VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI, ##VkPhysicalDeviceCoherentMemoryFeaturesAMD, ##VkPhysicalDeviceColorWriteEnableFeaturesEXT, ##VkPhysicalDeviceCommandBufferInheritanceFeaturesNV, ##VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR, ##VkPhysicalDeviceConditionalRenderingFeaturesEXT, ##VkPhysicalDeviceCooperativeMatrix2FeaturesNV, ##VkPhysicalDeviceCooperativeMatrixFeaturesKHR, ##VkPhysicalDeviceCooperativeMatrixFeaturesNV, ##VkPhysicalDeviceCopyMemoryIndirectFeaturesNV, ##VkPhysicalDeviceCornerSampledImageFeaturesNV, ##VkPhysicalDeviceCoverageReductionModeFeaturesNV, ##VkPhysicalDeviceCubicClampFeaturesQCOM, ##VkPhysicalDeviceCubicWeightsFeaturesQCOM, ##VkPhysicalDeviceCudaKernelLaunchFeaturesNV, ##VkPhysicalDeviceCustomBorderColorFeaturesEXT, ##VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, ##VkPhysicalDeviceDepthBiasControlFeaturesEXT, ##VkPhysicalDeviceDepthClampControlFeaturesEXT, ##VkPhysicalDeviceDepthClampZeroOneFeaturesEXT, ##VkPhysicalDeviceDepthClipControlFeaturesEXT, ##VkPhysicalDeviceDepthClipEnableFeaturesEXT, ##VkPhysicalDeviceDescriptorBufferFeaturesEXT, ##VkPhysicalDeviceDescriptorIndexingFeatures, ##VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV, ##VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, ##VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV, ##VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT, ##VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, ##VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, ##VkPhysicalDeviceDiagnosticsConfigFeaturesNV, ##VkPhysicalDeviceDisplacementMicromapFeaturesNV, ##VkPhysicalDeviceDynamicRenderingFeatures, ##VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR, ##VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT, ##VkPhysicalDeviceExclusiveScissorFeaturesNV, ##VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, ##VkPhysicalDeviceExtendedDynamicState3FeaturesEXT, ##VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, ##VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV, ##VkPhysicalDeviceExternalFormatResolveFeaturesANDROID, ##VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, ##VkPhysicalDeviceFaultFeaturesEXT, ##VkPhysicalDeviceFeatures2, ##VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, ##VkPhysicalDeviceFragmentDensityMapFeaturesEXT, ##VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, ##VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, ##VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, ##VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, ##VkPhysicalDeviceFragmentShadingRateFeaturesKHR, ##VkPhysicalDeviceFrameBoundaryFeaturesEXT, ##VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR, ##VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, ##VkPhysicalDeviceHdrVividFeaturesHUAWEI, ##VkPhysicalDeviceHostImageCopyFeaturesEXT, ##VkPhysicalDeviceHostQueryResetFeatures, ##VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, ##VkPhysicalDeviceImageAlignmentControlFeaturesMESA, ##VkPhysicalDeviceImageCompressionControlFeaturesEXT, ##VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, ##VkPhysicalDeviceImageProcessing2FeaturesQCOM, ##VkPhysicalDeviceImageProcessingFeaturesQCOM, ##VkPhysicalDeviceImageRobustnessFeatures, ##VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT, ##VkPhysicalDeviceImageViewMinLodFeaturesEXT, ##VkPhysicalDeviceImagelessFramebufferFeatures, ##VkPhysicalDeviceIndexTypeUint8FeaturesKHR, ##VkPhysicalDeviceInheritedViewportScissorFeaturesNV, ##VkPhysicalDeviceInlineUniformBlockFeatures, ##VkPhysicalDeviceInvocationMaskFeaturesHUAWEI, ##VkPhysicalDeviceLegacyDitheringFeaturesEXT, ##VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT, ##VkPhysicalDeviceLineRasterizationFeaturesKHR, ##VkPhysicalDeviceLinearColorAttachmentFeaturesNV, ##VkPhysicalDeviceMaintenance4Features, ##VkPhysicalDeviceMaintenance5FeaturesKHR, ##VkPhysicalDeviceMaintenance6FeaturesKHR, ##VkPhysicalDeviceMaintenance7FeaturesKHR, ##VkPhysicalDeviceMapMemoryPlacedFeaturesEXT, ##VkPhysicalDeviceMemoryDecompressionFeaturesNV, ##VkPhysicalDeviceMemoryPriorityFeaturesEXT, ##VkPhysicalDeviceMeshShaderFeaturesEXT, ##VkPhysicalDeviceMeshShaderFeaturesNV, ##VkPhysicalDeviceMultiDrawFeaturesEXT, ##VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, ##VkPhysicalDeviceMultiviewFeatures, ##VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM, ##VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM, ##VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT, ##VkPhysicalDeviceNestedCommandBufferFeaturesEXT, ##VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT, ##VkPhysicalDeviceOpacityMicromapFeaturesEXT, ##VkPhysicalDeviceOpticalFlowFeaturesNV, ##VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, ##VkPhysicalDevicePerStageDescriptorSetFeaturesNV, ##VkPhysicalDevicePerformanceQueryFeaturesKHR, ##VkPhysicalDevicePipelineBinaryFeaturesKHR, ##VkPhysicalDevicePipelineCreationCacheControlFeatures, ##VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, ##VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT, ##VkPhysicalDevicePipelinePropertiesFeaturesEXT, ##VkPhysicalDevicePipelineProtectedAccessFeaturesEXT, ##VkPhysicalDevicePipelineRobustnessFeaturesEXT, ##VkPhysicalDevicePortabilitySubsetFeaturesKHR, ##VkPhysicalDevicePresentBarrierFeaturesNV, ##VkPhysicalDevicePresentIdFeaturesKHR, ##VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT, ##VkPhysicalDevicePresentWaitFeaturesKHR, ##VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, ##VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, ##VkPhysicalDevicePrivateDataFeatures, ##VkPhysicalDeviceProtectedMemoryFeatures, ##VkPhysicalDeviceProvokingVertexFeaturesEXT, ##VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT, ##VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT, ##VkPhysicalDeviceRawAccessChainsFeaturesNV, ##VkPhysicalDeviceRayQueryFeaturesKHR, ##VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV, ##VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, ##VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, ##VkPhysicalDeviceRayTracingPipelineFeaturesKHR, ##VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR, ##VkPhysicalDeviceRayTracingValidationFeaturesNV, ##VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG, ##VkPhysicalDeviceRenderPassStripedFeaturesARM, ##VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, ##VkPhysicalDeviceRobustness2FeaturesEXT, ##VkPhysicalDeviceSamplerYcbcrConversionFeatures, ##VkPhysicalDeviceScalarBlockLayoutFeatures, ##VkPhysicalDeviceSchedulingControlsFeaturesARM, ##VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, ##VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV, ##VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, ##VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, ##VkPhysicalDeviceShaderAtomicInt64Features, ##VkPhysicalDeviceShaderClockFeaturesKHR, ##VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM, ##VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, ##VkPhysicalDeviceShaderDrawParametersFeatures, ##VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, ##VkPhysicalDeviceShaderEnqueueFeaturesAMDX, ##VkPhysicalDeviceShaderExpectAssumeFeaturesKHR, ##VkPhysicalDeviceShaderFloat16Int8Features, ##VkPhysicalDeviceShaderFloatControls2FeaturesKHR, ##VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, ##VkPhysicalDeviceShaderImageFootprintFeaturesNV, ##VkPhysicalDeviceShaderIntegerDotProductFeatures, ##VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, ##VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR, ##VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT, ##VkPhysicalDeviceShaderObjectFeaturesEXT, ##VkPhysicalDeviceShaderQuadControlFeaturesKHR, ##VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR, ##VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT, ##VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, ##VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, ##VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR, ##VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, ##VkPhysicalDeviceShaderTerminateInvocationFeatures, ##VkPhysicalDeviceShaderTileImageFeaturesEXT, ##VkPhysicalDeviceShadingRateImageFeaturesNV, ##VkPhysicalDeviceSubgroupSizeControlFeatures, ##VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT, ##VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, ##VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT, ##VkPhysicalDeviceSynchronization2Features, ##VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, ##VkPhysicalDeviceTextureCompressionASTCHDRFeatures, ##VkPhysicalDeviceTilePropertiesFeaturesQCOM, ##VkPhysicalDeviceTimelineSemaphoreFeatures, ##VkPhysicalDeviceTransformFeedbackFeaturesEXT, ##VkPhysicalDeviceUniformBufferStandardLayoutFeatures, ##VkPhysicalDeviceVariablePointersFeatures, ##VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR, ##VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, ##VkPhysicalDeviceVideoMaintenance1FeaturesKHR, ##VkPhysicalDeviceVulkan11Features, ##VkPhysicalDeviceVulkan12Features, ##VkPhysicalDeviceVulkan13Features, ##VkPhysicalDeviceVulkanMemoryModelFeatures, ##VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, ##VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, ##VkPhysicalDeviceYcbcrDegammaFeaturesQCOM, ##VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, or ##VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures
              • The {@code sType} value of each struct in the {@code pNext} chain must be unique, with the exception of structures of type ##VkDeviceDeviceMemoryReportCreateInfoEXT or ##VkDevicePrivateDataCreateInfo
              • {@code flags} must be 0
              • {@code pQueueCreateInfos} must be a valid pointer to an array of {@code queueCreateInfoCount} valid ##VkDeviceQueueCreateInfo structures
              • @@ -1814,7 +1817,7 @@ val VkDeviceCreateInfo = struct(Module.VULKAN, "VkDeviceCreateInfo") { Expression("#STRUCTURE_TYPE_DEVICE_CREATE_INFO")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.") PointerSetter( - "VkDeviceDeviceMemoryReportCreateInfoEXT", "VkDeviceDiagnosticsConfigCreateInfoNV", "VkDeviceGroupDeviceCreateInfo", "VkDeviceGroupDeviceCreateInfoKHR", "VkDeviceMemoryOverallocationCreateInfoAMD", "VkDevicePipelineBinaryInternalCacheControlKHR", "VkDevicePrivateDataCreateInfo", "VkDevicePrivateDataCreateInfoEXT", "VkDeviceQueueShaderCoreControlCreateInfoARM", "VkPhysicalDevice16BitStorageFeatures", "VkPhysicalDevice16BitStorageFeaturesKHR", "VkPhysicalDevice4444FormatsFeaturesEXT", "VkPhysicalDevice8BitStorageFeatures", "VkPhysicalDevice8BitStorageFeaturesKHR", "VkPhysicalDeviceASTCDecodeFeaturesEXT", "VkPhysicalDeviceAccelerationStructureFeaturesKHR", "VkPhysicalDeviceAddressBindingReportFeaturesEXT", "VkPhysicalDeviceAmigoProfilingFeaturesSEC", "VkPhysicalDeviceAntiLagFeaturesAMD", "VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT", "VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT", "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT", "VkPhysicalDeviceBorderColorSwizzleFeaturesEXT", "VkPhysicalDeviceBufferAddressFeaturesEXT", "VkPhysicalDeviceBufferDeviceAddressFeatures", "VkPhysicalDeviceBufferDeviceAddressFeaturesEXT", "VkPhysicalDeviceBufferDeviceAddressFeaturesKHR", "VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI", "VkPhysicalDeviceCoherentMemoryFeaturesAMD", "VkPhysicalDeviceColorWriteEnableFeaturesEXT", "VkPhysicalDeviceCommandBufferInheritanceFeaturesNV", "VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR", "VkPhysicalDeviceComputeShaderDerivativesFeaturesNV", "VkPhysicalDeviceConditionalRenderingFeaturesEXT", "VkPhysicalDeviceCooperativeMatrixFeaturesKHR", "VkPhysicalDeviceCooperativeMatrixFeaturesNV", "VkPhysicalDeviceCopyMemoryIndirectFeaturesNV", "VkPhysicalDeviceCornerSampledImageFeaturesNV", "VkPhysicalDeviceCoverageReductionModeFeaturesNV", "VkPhysicalDeviceCubicClampFeaturesQCOM", "VkPhysicalDeviceCubicWeightsFeaturesQCOM", "VkPhysicalDeviceCudaKernelLaunchFeaturesNV", "VkPhysicalDeviceCustomBorderColorFeaturesEXT", "VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV", "VkPhysicalDeviceDepthBiasControlFeaturesEXT", "VkPhysicalDeviceDepthClampControlFeaturesEXT", "VkPhysicalDeviceDepthClampZeroOneFeaturesEXT", "VkPhysicalDeviceDepthClipControlFeaturesEXT", "VkPhysicalDeviceDepthClipEnableFeaturesEXT", "VkPhysicalDeviceDescriptorBufferFeaturesEXT", "VkPhysicalDeviceDescriptorIndexingFeatures", "VkPhysicalDeviceDescriptorIndexingFeaturesEXT", "VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV", "VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE", "VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV", "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT", "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV", "VkPhysicalDeviceDeviceMemoryReportFeaturesEXT", "VkPhysicalDeviceDiagnosticsConfigFeaturesNV", "VkPhysicalDeviceDisplacementMicromapFeaturesNV", "VkPhysicalDeviceDynamicRenderingFeatures", "VkPhysicalDeviceDynamicRenderingFeaturesKHR", "VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR", "VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT", "VkPhysicalDeviceExclusiveScissorFeaturesNV", "VkPhysicalDeviceExtendedDynamicState2FeaturesEXT", "VkPhysicalDeviceExtendedDynamicState3FeaturesEXT", "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT", "VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV", "VkPhysicalDeviceExternalFormatResolveFeaturesANDROID", "VkPhysicalDeviceExternalMemoryRDMAFeaturesNV", "VkPhysicalDeviceFaultFeaturesEXT", "VkPhysicalDeviceFeatures2", "VkPhysicalDeviceFeatures2KHR", "VkPhysicalDeviceFloat16Int8FeaturesKHR", "VkPhysicalDeviceFragmentDensityMap2FeaturesEXT", "VkPhysicalDeviceFragmentDensityMapFeaturesEXT", "VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM", "VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR", "VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV", "VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT", "VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV", "VkPhysicalDeviceFragmentShadingRateFeaturesKHR", "VkPhysicalDeviceFrameBoundaryFeaturesEXT", "VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT", "VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR", "VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT", "VkPhysicalDeviceHostImageCopyFeaturesEXT", "VkPhysicalDeviceHostQueryResetFeatures", "VkPhysicalDeviceHostQueryResetFeaturesEXT", "VkPhysicalDeviceImage2DViewOf3DFeaturesEXT", "VkPhysicalDeviceImageAlignmentControlFeaturesMESA", "VkPhysicalDeviceImageCompressionControlFeaturesEXT", "VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT", "VkPhysicalDeviceImageProcessing2FeaturesQCOM", "VkPhysicalDeviceImageProcessingFeaturesQCOM", "VkPhysicalDeviceImageRobustnessFeatures", "VkPhysicalDeviceImageRobustnessFeaturesEXT", "VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT", "VkPhysicalDeviceImageViewMinLodFeaturesEXT", "VkPhysicalDeviceImagelessFramebufferFeatures", "VkPhysicalDeviceImagelessFramebufferFeaturesKHR", "VkPhysicalDeviceIndexTypeUint8FeaturesEXT", "VkPhysicalDeviceIndexTypeUint8FeaturesKHR", "VkPhysicalDeviceInheritedViewportScissorFeaturesNV", "VkPhysicalDeviceInlineUniformBlockFeatures", "VkPhysicalDeviceInlineUniformBlockFeaturesEXT", "VkPhysicalDeviceInvocationMaskFeaturesHUAWEI", "VkPhysicalDeviceLegacyDitheringFeaturesEXT", "VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT", "VkPhysicalDeviceLineRasterizationFeaturesEXT", "VkPhysicalDeviceLineRasterizationFeaturesKHR", "VkPhysicalDeviceLinearColorAttachmentFeaturesNV", "VkPhysicalDeviceMaintenance4Features", "VkPhysicalDeviceMaintenance4FeaturesKHR", "VkPhysicalDeviceMaintenance5FeaturesKHR", "VkPhysicalDeviceMaintenance6FeaturesKHR", "VkPhysicalDeviceMaintenance7FeaturesKHR", "VkPhysicalDeviceMapMemoryPlacedFeaturesEXT", "VkPhysicalDeviceMemoryDecompressionFeaturesNV", "VkPhysicalDeviceMemoryPriorityFeaturesEXT", "VkPhysicalDeviceMeshShaderFeaturesEXT", "VkPhysicalDeviceMeshShaderFeaturesNV", "VkPhysicalDeviceMultiDrawFeaturesEXT", "VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT", "VkPhysicalDeviceMultiviewFeatures", "VkPhysicalDeviceMultiviewFeaturesKHR", "VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM", "VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM", "VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT", "VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE", "VkPhysicalDeviceNestedCommandBufferFeaturesEXT", "VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT", "VkPhysicalDeviceOpacityMicromapFeaturesEXT", "VkPhysicalDeviceOpticalFlowFeaturesNV", "VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT", "VkPhysicalDevicePerStageDescriptorSetFeaturesNV", "VkPhysicalDevicePerformanceQueryFeaturesKHR", "VkPhysicalDevicePipelineBinaryFeaturesKHR", "VkPhysicalDevicePipelineCreationCacheControlFeatures", "VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT", "VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR", "VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT", "VkPhysicalDevicePipelinePropertiesFeaturesEXT", "VkPhysicalDevicePipelineProtectedAccessFeaturesEXT", "VkPhysicalDevicePipelineRobustnessFeaturesEXT", "VkPhysicalDevicePortabilitySubsetFeaturesKHR", "VkPhysicalDevicePresentBarrierFeaturesNV", "VkPhysicalDevicePresentIdFeaturesKHR", "VkPhysicalDevicePresentWaitFeaturesKHR", "VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT", "VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT", "VkPhysicalDevicePrivateDataFeatures", "VkPhysicalDevicePrivateDataFeaturesEXT", "VkPhysicalDeviceProtectedMemoryFeatures", "VkPhysicalDeviceProvokingVertexFeaturesEXT", "VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT", "VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM", "VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT", "VkPhysicalDeviceRawAccessChainsFeaturesNV", "VkPhysicalDeviceRayQueryFeaturesKHR", "VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV", "VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR", "VkPhysicalDeviceRayTracingMotionBlurFeaturesNV", "VkPhysicalDeviceRayTracingPipelineFeaturesKHR", "VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR", "VkPhysicalDeviceRayTracingValidationFeaturesNV", "VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG", "VkPhysicalDeviceRenderPassStripedFeaturesARM", "VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV", "VkPhysicalDeviceRobustness2FeaturesEXT", "VkPhysicalDeviceSamplerYcbcrConversionFeatures", "VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR", "VkPhysicalDeviceScalarBlockLayoutFeatures", "VkPhysicalDeviceScalarBlockLayoutFeaturesEXT", "VkPhysicalDeviceSchedulingControlsFeaturesARM", "VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures", "VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR", "VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV", "VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT", "VkPhysicalDeviceShaderAtomicFloatFeaturesEXT", "VkPhysicalDeviceShaderAtomicInt64Features", "VkPhysicalDeviceShaderAtomicInt64FeaturesKHR", "VkPhysicalDeviceShaderClockFeaturesKHR", "VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM", "VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures", "VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT", "VkPhysicalDeviceShaderDrawParameterFeatures", "VkPhysicalDeviceShaderDrawParametersFeatures", "VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD", "VkPhysicalDeviceShaderEnqueueFeaturesAMDX", "VkPhysicalDeviceShaderExpectAssumeFeaturesKHR", "VkPhysicalDeviceShaderFloat16Int8Features", "VkPhysicalDeviceShaderFloat16Int8FeaturesKHR", "VkPhysicalDeviceShaderFloatControls2FeaturesKHR", "VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT", "VkPhysicalDeviceShaderImageFootprintFeaturesNV", "VkPhysicalDeviceShaderIntegerDotProductFeatures", "VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR", "VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL", "VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR", "VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT", "VkPhysicalDeviceShaderObjectFeaturesEXT", "VkPhysicalDeviceShaderQuadControlFeaturesKHR", "VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR", "VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT", "VkPhysicalDeviceShaderSMBuiltinsFeaturesNV", "VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures", "VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR", "VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR", "VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR", "VkPhysicalDeviceShaderTerminateInvocationFeatures", "VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR", "VkPhysicalDeviceShaderTileImageFeaturesEXT", "VkPhysicalDeviceShadingRateImageFeaturesNV", "VkPhysicalDeviceSubgroupSizeControlFeatures", "VkPhysicalDeviceSubgroupSizeControlFeaturesEXT", "VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT", "VkPhysicalDeviceSubpassShadingFeaturesHUAWEI", "VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT", "VkPhysicalDeviceSynchronization2Features", "VkPhysicalDeviceSynchronization2FeaturesKHR", "VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT", "VkPhysicalDeviceTextureCompressionASTCHDRFeatures", "VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT", "VkPhysicalDeviceTilePropertiesFeaturesQCOM", "VkPhysicalDeviceTimelineSemaphoreFeatures", "VkPhysicalDeviceTimelineSemaphoreFeaturesKHR", "VkPhysicalDeviceTransformFeedbackFeaturesEXT", "VkPhysicalDeviceUniformBufferStandardLayoutFeatures", "VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR", "VkPhysicalDeviceVariablePointerFeatures", "VkPhysicalDeviceVariablePointerFeaturesKHR", "VkPhysicalDeviceVariablePointersFeatures", "VkPhysicalDeviceVariablePointersFeaturesKHR", "VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT", "VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR", "VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT", "VkPhysicalDeviceVideoMaintenance1FeaturesKHR", "VkPhysicalDeviceVulkan11Features", "VkPhysicalDeviceVulkan12Features", "VkPhysicalDeviceVulkan13Features", "VkPhysicalDeviceVulkanMemoryModelFeatures", "VkPhysicalDeviceVulkanMemoryModelFeaturesKHR", "VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR", "VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT", "VkPhysicalDeviceYcbcrDegammaFeaturesQCOM", "VkPhysicalDeviceYcbcrImageArraysFeaturesEXT", "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures", "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR", + "VkDeviceDeviceMemoryReportCreateInfoEXT", "VkDeviceDiagnosticsConfigCreateInfoNV", "VkDeviceGroupDeviceCreateInfo", "VkDeviceGroupDeviceCreateInfoKHR", "VkDeviceMemoryOverallocationCreateInfoAMD", "VkDevicePipelineBinaryInternalCacheControlKHR", "VkDevicePrivateDataCreateInfo", "VkDevicePrivateDataCreateInfoEXT", "VkDeviceQueueShaderCoreControlCreateInfoARM", "VkPhysicalDevice16BitStorageFeatures", "VkPhysicalDevice16BitStorageFeaturesKHR", "VkPhysicalDevice4444FormatsFeaturesEXT", "VkPhysicalDevice8BitStorageFeatures", "VkPhysicalDevice8BitStorageFeaturesKHR", "VkPhysicalDeviceASTCDecodeFeaturesEXT", "VkPhysicalDeviceAccelerationStructureFeaturesKHR", "VkPhysicalDeviceAddressBindingReportFeaturesEXT", "VkPhysicalDeviceAmigoProfilingFeaturesSEC", "VkPhysicalDeviceAntiLagFeaturesAMD", "VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT", "VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT", "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT", "VkPhysicalDeviceBorderColorSwizzleFeaturesEXT", "VkPhysicalDeviceBufferAddressFeaturesEXT", "VkPhysicalDeviceBufferDeviceAddressFeatures", "VkPhysicalDeviceBufferDeviceAddressFeaturesEXT", "VkPhysicalDeviceBufferDeviceAddressFeaturesKHR", "VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI", "VkPhysicalDeviceCoherentMemoryFeaturesAMD", "VkPhysicalDeviceColorWriteEnableFeaturesEXT", "VkPhysicalDeviceCommandBufferInheritanceFeaturesNV", "VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR", "VkPhysicalDeviceComputeShaderDerivativesFeaturesNV", "VkPhysicalDeviceConditionalRenderingFeaturesEXT", "VkPhysicalDeviceCooperativeMatrix2FeaturesNV", "VkPhysicalDeviceCooperativeMatrixFeaturesKHR", "VkPhysicalDeviceCooperativeMatrixFeaturesNV", "VkPhysicalDeviceCopyMemoryIndirectFeaturesNV", "VkPhysicalDeviceCornerSampledImageFeaturesNV", "VkPhysicalDeviceCoverageReductionModeFeaturesNV", "VkPhysicalDeviceCubicClampFeaturesQCOM", "VkPhysicalDeviceCubicWeightsFeaturesQCOM", "VkPhysicalDeviceCudaKernelLaunchFeaturesNV", "VkPhysicalDeviceCustomBorderColorFeaturesEXT", "VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV", "VkPhysicalDeviceDepthBiasControlFeaturesEXT", "VkPhysicalDeviceDepthClampControlFeaturesEXT", "VkPhysicalDeviceDepthClampZeroOneFeaturesEXT", "VkPhysicalDeviceDepthClipControlFeaturesEXT", "VkPhysicalDeviceDepthClipEnableFeaturesEXT", "VkPhysicalDeviceDescriptorBufferFeaturesEXT", "VkPhysicalDeviceDescriptorIndexingFeatures", "VkPhysicalDeviceDescriptorIndexingFeaturesEXT", "VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV", "VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE", "VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV", "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT", "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV", "VkPhysicalDeviceDeviceMemoryReportFeaturesEXT", "VkPhysicalDeviceDiagnosticsConfigFeaturesNV", "VkPhysicalDeviceDisplacementMicromapFeaturesNV", "VkPhysicalDeviceDynamicRenderingFeatures", "VkPhysicalDeviceDynamicRenderingFeaturesKHR", "VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR", "VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT", "VkPhysicalDeviceExclusiveScissorFeaturesNV", "VkPhysicalDeviceExtendedDynamicState2FeaturesEXT", "VkPhysicalDeviceExtendedDynamicState3FeaturesEXT", "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT", "VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV", "VkPhysicalDeviceExternalFormatResolveFeaturesANDROID", "VkPhysicalDeviceExternalMemoryRDMAFeaturesNV", "VkPhysicalDeviceFaultFeaturesEXT", "VkPhysicalDeviceFeatures2", "VkPhysicalDeviceFeatures2KHR", "VkPhysicalDeviceFloat16Int8FeaturesKHR", "VkPhysicalDeviceFragmentDensityMap2FeaturesEXT", "VkPhysicalDeviceFragmentDensityMapFeaturesEXT", "VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM", "VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR", "VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV", "VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT", "VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV", "VkPhysicalDeviceFragmentShadingRateFeaturesKHR", "VkPhysicalDeviceFrameBoundaryFeaturesEXT", "VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT", "VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR", "VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT", "VkPhysicalDeviceHdrVividFeaturesHUAWEI", "VkPhysicalDeviceHostImageCopyFeaturesEXT", "VkPhysicalDeviceHostQueryResetFeatures", "VkPhysicalDeviceHostQueryResetFeaturesEXT", "VkPhysicalDeviceImage2DViewOf3DFeaturesEXT", "VkPhysicalDeviceImageAlignmentControlFeaturesMESA", "VkPhysicalDeviceImageCompressionControlFeaturesEXT", "VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT", "VkPhysicalDeviceImageProcessing2FeaturesQCOM", "VkPhysicalDeviceImageProcessingFeaturesQCOM", "VkPhysicalDeviceImageRobustnessFeatures", "VkPhysicalDeviceImageRobustnessFeaturesEXT", "VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT", "VkPhysicalDeviceImageViewMinLodFeaturesEXT", "VkPhysicalDeviceImagelessFramebufferFeatures", "VkPhysicalDeviceImagelessFramebufferFeaturesKHR", "VkPhysicalDeviceIndexTypeUint8FeaturesEXT", "VkPhysicalDeviceIndexTypeUint8FeaturesKHR", "VkPhysicalDeviceInheritedViewportScissorFeaturesNV", "VkPhysicalDeviceInlineUniformBlockFeatures", "VkPhysicalDeviceInlineUniformBlockFeaturesEXT", "VkPhysicalDeviceInvocationMaskFeaturesHUAWEI", "VkPhysicalDeviceLegacyDitheringFeaturesEXT", "VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT", "VkPhysicalDeviceLineRasterizationFeaturesEXT", "VkPhysicalDeviceLineRasterizationFeaturesKHR", "VkPhysicalDeviceLinearColorAttachmentFeaturesNV", "VkPhysicalDeviceMaintenance4Features", "VkPhysicalDeviceMaintenance4FeaturesKHR", "VkPhysicalDeviceMaintenance5FeaturesKHR", "VkPhysicalDeviceMaintenance6FeaturesKHR", "VkPhysicalDeviceMaintenance7FeaturesKHR", "VkPhysicalDeviceMapMemoryPlacedFeaturesEXT", "VkPhysicalDeviceMemoryDecompressionFeaturesNV", "VkPhysicalDeviceMemoryPriorityFeaturesEXT", "VkPhysicalDeviceMeshShaderFeaturesEXT", "VkPhysicalDeviceMeshShaderFeaturesNV", "VkPhysicalDeviceMultiDrawFeaturesEXT", "VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT", "VkPhysicalDeviceMultiviewFeatures", "VkPhysicalDeviceMultiviewFeaturesKHR", "VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM", "VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM", "VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT", "VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE", "VkPhysicalDeviceNestedCommandBufferFeaturesEXT", "VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT", "VkPhysicalDeviceOpacityMicromapFeaturesEXT", "VkPhysicalDeviceOpticalFlowFeaturesNV", "VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT", "VkPhysicalDevicePerStageDescriptorSetFeaturesNV", "VkPhysicalDevicePerformanceQueryFeaturesKHR", "VkPhysicalDevicePipelineBinaryFeaturesKHR", "VkPhysicalDevicePipelineCreationCacheControlFeatures", "VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT", "VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR", "VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT", "VkPhysicalDevicePipelinePropertiesFeaturesEXT", "VkPhysicalDevicePipelineProtectedAccessFeaturesEXT", "VkPhysicalDevicePipelineRobustnessFeaturesEXT", "VkPhysicalDevicePortabilitySubsetFeaturesKHR", "VkPhysicalDevicePresentBarrierFeaturesNV", "VkPhysicalDevicePresentIdFeaturesKHR", "VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT", "VkPhysicalDevicePresentWaitFeaturesKHR", "VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT", "VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT", "VkPhysicalDevicePrivateDataFeatures", "VkPhysicalDevicePrivateDataFeaturesEXT", "VkPhysicalDeviceProtectedMemoryFeatures", "VkPhysicalDeviceProvokingVertexFeaturesEXT", "VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT", "VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM", "VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT", "VkPhysicalDeviceRawAccessChainsFeaturesNV", "VkPhysicalDeviceRayQueryFeaturesKHR", "VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV", "VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR", "VkPhysicalDeviceRayTracingMotionBlurFeaturesNV", "VkPhysicalDeviceRayTracingPipelineFeaturesKHR", "VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR", "VkPhysicalDeviceRayTracingValidationFeaturesNV", "VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG", "VkPhysicalDeviceRenderPassStripedFeaturesARM", "VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV", "VkPhysicalDeviceRobustness2FeaturesEXT", "VkPhysicalDeviceSamplerYcbcrConversionFeatures", "VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR", "VkPhysicalDeviceScalarBlockLayoutFeatures", "VkPhysicalDeviceScalarBlockLayoutFeaturesEXT", "VkPhysicalDeviceSchedulingControlsFeaturesARM", "VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures", "VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR", "VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV", "VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT", "VkPhysicalDeviceShaderAtomicFloatFeaturesEXT", "VkPhysicalDeviceShaderAtomicInt64Features", "VkPhysicalDeviceShaderAtomicInt64FeaturesKHR", "VkPhysicalDeviceShaderClockFeaturesKHR", "VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM", "VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures", "VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT", "VkPhysicalDeviceShaderDrawParameterFeatures", "VkPhysicalDeviceShaderDrawParametersFeatures", "VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD", "VkPhysicalDeviceShaderEnqueueFeaturesAMDX", "VkPhysicalDeviceShaderExpectAssumeFeaturesKHR", "VkPhysicalDeviceShaderFloat16Int8Features", "VkPhysicalDeviceShaderFloat16Int8FeaturesKHR", "VkPhysicalDeviceShaderFloatControls2FeaturesKHR", "VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT", "VkPhysicalDeviceShaderImageFootprintFeaturesNV", "VkPhysicalDeviceShaderIntegerDotProductFeatures", "VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR", "VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL", "VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR", "VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT", "VkPhysicalDeviceShaderObjectFeaturesEXT", "VkPhysicalDeviceShaderQuadControlFeaturesKHR", "VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR", "VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT", "VkPhysicalDeviceShaderSMBuiltinsFeaturesNV", "VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures", "VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR", "VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR", "VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR", "VkPhysicalDeviceShaderTerminateInvocationFeatures", "VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR", "VkPhysicalDeviceShaderTileImageFeaturesEXT", "VkPhysicalDeviceShadingRateImageFeaturesNV", "VkPhysicalDeviceSubgroupSizeControlFeatures", "VkPhysicalDeviceSubgroupSizeControlFeaturesEXT", "VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT", "VkPhysicalDeviceSubpassShadingFeaturesHUAWEI", "VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT", "VkPhysicalDeviceSynchronization2Features", "VkPhysicalDeviceSynchronization2FeaturesKHR", "VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT", "VkPhysicalDeviceTextureCompressionASTCHDRFeatures", "VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT", "VkPhysicalDeviceTilePropertiesFeaturesQCOM", "VkPhysicalDeviceTimelineSemaphoreFeatures", "VkPhysicalDeviceTimelineSemaphoreFeaturesKHR", "VkPhysicalDeviceTransformFeedbackFeaturesEXT", "VkPhysicalDeviceUniformBufferStandardLayoutFeatures", "VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR", "VkPhysicalDeviceVariablePointerFeatures", "VkPhysicalDeviceVariablePointerFeaturesKHR", "VkPhysicalDeviceVariablePointersFeatures", "VkPhysicalDeviceVariablePointersFeaturesKHR", "VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT", "VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR", "VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT", "VkPhysicalDeviceVideoMaintenance1FeaturesKHR", "VkPhysicalDeviceVulkan11Features", "VkPhysicalDeviceVulkan12Features", "VkPhysicalDeviceVulkan13Features", "VkPhysicalDeviceVulkanMemoryModelFeatures", "VkPhysicalDeviceVulkanMemoryModelFeaturesKHR", "VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR", "VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT", "VkPhysicalDeviceYcbcrDegammaFeaturesQCOM", "VkPhysicalDeviceYcbcrImageArraysFeaturesEXT", "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures", "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR", prepend = true )..nullable..opaque_const_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.") VkDeviceCreateFlags("flags", "reserved for future use.") @@ -2731,7 +2734,7 @@ val VkImageCreateInfo = struct(Module.VULKAN, "VkImageCreateInfo") { {@code supportedVideoFormat} is #TRUE if there exists an element in the {@code videoFormatProperties} list for which all of the following conditions are true:
                • ##VkImageCreateInfo{@code ::format} equals ##VkVideoFormatPropertiesKHR{@code ::format}.
                • -
                • ##VkImageCreateInfo{@code ::flags} only contains bits also set in ##VkVideoFormatPropertiesKHR{@code ::imageCreateFlags}.
                • +
                • ##VkImageCreateInfo{@code ::flags} only contains #IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR and/or bits also set in ##VkVideoFormatPropertiesKHR{@code ::imageCreateFlags}.
                • ##VkImageCreateInfo{@code ::imageType} equals ##VkVideoFormatPropertiesKHR{@code ::imageType}.
                • ##VkImageCreateInfo{@code ::tiling} equals ##VkVideoFormatPropertiesKHR{@code ::imageTiling}.
                • ##VkImageCreateInfo{@code ::usage} only contains bits also set in ##VkVideoFormatPropertiesKHR{@code ::imageUsageFlags}, or ##VkImageCreateInfo{@code ::flags} includes #IMAGE_CREATE_EXTENDED_USAGE_BIT.
                • @@ -2762,6 +2765,7 @@ val VkImageCreateInfo = struct(Module.VULKAN, "VkImageCreateInfo") {
                • If {@code flags} contains #IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, {@code imageType} must be #IMAGE_TYPE_3D
                • If {@code flags} contains #IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, {@code flags} must not include #IMAGE_CREATE_SPARSE_ALIASED_BIT, #IMAGE_CREATE_SPARSE_BINDING_BIT, or #IMAGE_CREATE_SPARSE_RESIDENCY_BIT
                • If {@code flags} contains #IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT, {@code imageType} must be #IMAGE_TYPE_3D
                • +
                • If {@code flags} contains #IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT, {@code flags} must not include #IMAGE_CREATE_SPARSE_ALIASED_BIT, #IMAGE_CREATE_SPARSE_BINDING_BIT, or #IMAGE_CREATE_SPARSE_RESIDENCY_BIT
                • {@code extent.width} must be less than or equal to {@code imageCreateMaxExtent.width} (as defined in Image Creation Limits)
                • {@code extent.height} must be less than or equal to {@code imageCreateMaxExtent.height} (as defined in Image Creation Limits)
                • {@code extent.depth} must be less than or equal to {@code imageCreateMaxExtent.depth} (as defined in Image Creation Limits)
                • @@ -2865,6 +2869,7 @@ val VkImageCreateInfo = struct(Module.VULKAN, "VkImageCreateInfo") {
                • If the {@code pNext} chain includes a ##VkImportMetalTextureInfoEXT structure and the image does not have a multi-planar format, then ##VkImportMetalTextureInfoEXT{@code ::plane} must be #IMAGE_ASPECT_PLANE_0_BIT
                • If the {@code pNext} chain includes a ##VkImportMetalTextureInfoEXT structure and the image has a multi-planar format with only two planes, then ##VkImportMetalTextureInfoEXT{@code ::plane} must not be #IMAGE_ASPECT_PLANE_2_BIT
                • If {@code imageCreateFormatFeatures} (as defined in Image Creation Limits) does not contain #FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT, then {@code usage} must not contain #IMAGE_USAGE_HOST_TRANSFER_BIT_EXT
                • +
                • If {@code usage} includes #IMAGE_USAGE_HOST_TRANSFER_BIT_EXT, then the {@code hostImageCopy} feature must be enabled
                • If the {@code pNext} chain contains a ##VkImageAlignmentControlCreateInfoMESA structure, {@code tiling} must be #IMAGE_TILING_OPTIMAL
                • If the {@code pNext} chain contains a ##VkImageAlignmentControlCreateInfoMESA structure, it must not contain a ##VkExternalMemoryImageCreateInfo structure
                @@ -3030,7 +3035,6 @@ val VkImageViewCreateInfo = struct(Module.VULKAN, "VkImageViewCreateInfo") {
              • If {@code image} was created with #IMAGE_TYPE_3D but without #IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set then {@code viewType} must not be #IMAGE_VIEW_TYPE_2D_ARRAY
              • If {@code image} was created with #IMAGE_TYPE_3D but without #IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT or #IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT set, then {@code viewType} must not be #IMAGE_VIEW_TYPE_2D
              • If {@code image} was created with #IMAGE_TYPE_3D and {@code viewType} is #IMAGE_VIEW_TYPE_2D or #IMAGE_VIEW_TYPE_2D_ARRAY then {@code subresourceRange.levelCount} must be 1
              • -
              • If {@code image} was created with #IMAGE_TYPE_3D and {@code viewType} is #IMAGE_VIEW_TYPE_2D or #IMAGE_VIEW_TYPE_2D_ARRAY then ##VkImageCreateInfo{@code ::flags} must not contain any of #IMAGE_CREATE_SPARSE_BINDING_BIT, #IMAGE_CREATE_SPARSE_RESIDENCY_BIT, and #IMAGE_CREATE_SPARSE_ALIASED_BIT
              • If {@code image} was created with a {@code samples} value not equal to #SAMPLE_COUNT_1_BIT then {@code viewType} must be either #IMAGE_VIEW_TYPE_2D or #IMAGE_VIEW_TYPE_2D_ARRAY
              • {@code image} must have been created with a {@code usage} value containing at least one of the usages defined in the valid image usage list for image views
              • The format features of the resultant image view must contain at least one bit
              • @@ -3064,7 +3068,7 @@ val VkImageViewCreateInfo = struct(Module.VULKAN, "VkImageViewCreateInfo") {
              • If {@code image} was created with the #IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, but without the #IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, and if the {@code format} of the {@code image} is not a multi-planar format, {@code format} must be compatible with the {@code format} used to create {@code image}, as defined in Format Compatibility Classes
              • If {@code image} was created with the #IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, {@code format} must be compatible with, or must be an uncompressed format that is size-compatible with, the {@code format} used to create {@code image}
              • If {@code image} was created with the #IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag and {@code format} is a non-compressed format, the {@code levelCount} member of {@code subresourceRange} must be 1
              • -
              • If {@code image} was created with the #IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, the ##VkPhysicalDeviceMaintenance6PropertiesKHR{@code ::blockTexelViewCompatibleMultipleLayers} property is not set to #TRUE, and {@code format} is a non-compressed format, then the {@code layerCount} member of {@code subresourceRange} must be 1
              • +
              • If {@code image} was created with the #IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, the ##VkPhysicalDeviceMaintenance6PropertiesKHR{@code ::blockTexelViewCompatibleMultipleLayers} property is not #TRUE, and {@code format} is a non-compressed format, then the {@code layerCount} member of {@code subresourceRange} must be 1
              • If a ##VkImageFormatListCreateInfo structure was included in the {@code pNext} chain of the ##VkImageCreateInfo structure used when creating {@code image} and ##VkImageFormatListCreateInfo{@code ::viewFormatCount} is not zero then {@code format} must be one of the formats in ##VkImageFormatListCreateInfo{@code ::pViewFormats}
              • If {@code image} was created with the #IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, if the {@code format} of the {@code image} is a multi-planar format, and if {@code subresourceRange.aspectMask} is one of the multi-planar aspect mask bits, then {@code format} must be compatible with the {@code VkFormat} for the plane of the {@code image} {@code format} indicated by {@code subresourceRange.aspectMask}, as defined in Compatible formats of planes of multi-planar formats
              • {@code subresourceRange.aspectMask} must only have at most 1 valid multi-planar aspect mask bit
              • @@ -3322,6 +3326,7 @@ val VkPipelineShaderStageCreateInfo = struct(Module.VULKAN, "VkPipelineShaderSta
              • If {@code flags} has both the #PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT and #PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT flags set, the local workgroup size in the X dimension of the pipeline must be a multiple of {@code maxSubgroupSize}
              • If {@code flags} has the #PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT flag set and {@code flags} does not have the #PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT flag set and no ##VkPipelineShaderStageRequiredSubgroupSizeCreateInfo structure is included in the {@code pNext} chain, the local workgroup size in the X dimension of the pipeline must be a multiple of {@code subgroupSize}
              • If {@code module} uses the {@code OpTypeCooperativeMatrixKHR} instruction with a {@code Scope} equal to {@code Subgroup}, then the local workgroup size in the X dimension of the pipeline must be a multiple of {@code subgroupSize}
              • +
              • If {@code module} uses the {@code OpTypeCooperativeMatrixKHR} instruction with a {@code Scope} equal to {@code Workgroup}, then the local workgroup size in the X dimension of the pipeline must be a multiple of {@code subgroupSize} and the total local workgroup size must be a power of two multiple of {@code subgroupSize} and must be less than or equal to cooperativeMatrixWorkgroupScopeMaxWorkgroupSize
              • If a shader module identifier is not specified for this {@code stage}, {@code module} must be a valid {@code VkShaderModule} , or the {@code pNext} chain of the parent stext:Vk*CreateInfo structure must set ##VkPipelineBinaryInfoKHR{@code ::binaryCount} to a value greater than 0, if none of the following features are enabled:
                  @@ -3397,7 +3402,7 @@ val VkComputePipelineCreateInfo = struct(Module.VULKAN, "VkComputePipelineCreate
                • {@code flags} must not include #PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV
                • If the ##VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV{@code ::deviceGeneratedComputePipelines} is not enabled, {@code flags} must not include #PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
                • If {@code flags} includes #PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then the {@code pNext} chain must include a pointer to a valid instance of ##VkComputePipelineIndirectBufferInfoNV specifying the address where the pipeline’s metadata will be saved
                • -
                • If {@code flags} includes #PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT, then the {@code deviceGeneratedCommands} feature must be enabled
                • +
                • If {@code flags} includes #PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT, then the ##VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT{@code ::deviceGeneratedCommands} feature must be enabled
                • If the {@code pipelineCreationCacheControl} feature is not enabled, {@code flags} must not include #PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT or #PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT
                • The {@code stage} member of {@code stage} must be #SHADER_STAGE_COMPUTE_BIT
                • The shader code for the entry point identified by {@code stage} and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter
                • @@ -3794,7 +3799,7 @@ val VkPipelineMultisampleStateCreateInfo = struct(Module.VULKAN, "VkPipelineMult VkPipelineMultisampleStateCreateFlags("flags", "reserved for future use.") VkSampleCountFlagBits("rasterizationSamples", "a {@code VkSampleCountFlagBits} value specifying the number of samples used in rasterization. This value is ignored for the purposes of setting the number of samples used in rasterization if the pipeline is created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state set, but if #DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state is not set, it is still used to define the size of the {@code pSampleMask} array as described below.") VkBool32("sampleShadingEnable", "can be used to enable Sample Shading.") - float("minSampleShading", "specifies a minimum fraction of sample shading if {@code sampleShadingEnable} is set to #TRUE.") + float("minSampleShading", "specifies a minimum fraction of sample shading if {@code sampleShadingEnable} is #TRUE.") nullable..VkSampleMask.const.p("pSampleMask", "a pointer to an array of {@code VkSampleMask} values used in the sample mask test.") VkBool32("alphaToCoverageEnable", "controls whether a temporary coverage value is generated based on the alpha component of the fragment’s first color output as specified in the Multisample Coverage section.") VkBool32("alphaToOneEnable", "controls whether the alpha component of the fragment’s first color output is replaced with one as described in Multisample Coverage.") @@ -4063,7 +4068,7 @@ val VkGraphicsPipelineCreateInfo = struct(Module.VULKAN, "VkGraphicsPipelineCrea
                • ##VkRenderingInputAttachmentIndexInfoKHR
                - If a pipeline specifies pre-rasterization state either directly or by including it as a pipeline library and {@code rasterizerDiscardEnable} is set to #FALSE or #DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE is used, this state must be specified to create a complete graphics pipeline. + If a pipeline specifies pre-rasterization state either directly or by including it as a pipeline library and {@code rasterizerDiscardEnable} is #FALSE or #DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE is used, this state must be specified to create a complete graphics pipeline. If a pipeline includes #GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT in ##VkGraphicsPipelineLibraryCreateInfoEXT{@code ::flags} either explicitly or as a default, and either the conditions requiring this state for a complete graphics pipeline are met or this pipeline does not specify pre-rasterization state in any way, that pipeline must specify this state directly. @@ -4082,7 +4087,7 @@ val VkGraphicsPipelineCreateInfo = struct(Module.VULKAN, "VkGraphicsPipelineCrea
              • ##VkRenderingAttachmentLocationInfoKHR
              - If a pipeline specifies pre-rasterization state either directly or by including it as a pipeline library and {@code rasterizerDiscardEnable} is set to #FALSE or #DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE is used, this state must be specified to create a complete graphics pipeline. + If a pipeline specifies pre-rasterization state either directly or by including it as a pipeline library and {@code rasterizerDiscardEnable} is #FALSE or #DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE is used, this state must be specified to create a complete graphics pipeline. If a pipeline includes #GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT in ##VkGraphicsPipelineLibraryCreateInfoEXT{@code ::flags} either explicitly or as a default, and either the conditions requiring this state for a complete graphics pipeline are met or this pipeline does not specify pre-rasterization state in any way, that pipeline must specify this state directly. @@ -4189,6 +4194,11 @@ val VkGraphicsPipelineCreateInfo = struct(Module.VULKAN, "VkGraphicsPipelineCrea
            • If the pipeline requires pre-rasterization shader state, and there are any mesh shader stages in the pipeline there must not be any shader stage in the pipeline with a {@code Xfb} execution mode
            • If the pipeline requires pre-rasterization shader state and at least one of fragment output interface state or fragment shader state, and {@code pMultisampleState} is not {@code NULL}, the {@code lineRasterizationMode} member of a ##VkPipelineRasterizationLineStateCreateInfoKHR structure included in the {@code pNext} chain of {@code pRasterizationState} is #LINE_RASTERIZATION_MODE_BRESENHAM_KHR or #LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR, then the {@code alphaToCoverageEnable}, {@code alphaToOneEnable}, and {@code sampleShadingEnable} members of {@code pMultisampleState} must all be #FALSE
            • If the pipeline requires pre-rasterization shader state, the {@code stippledLineEnable} member of ##VkPipelineRasterizationLineStateCreateInfoKHR is #TRUE, and no element of the {@code pDynamicStates} member of {@code pDynamicState} is #DYNAMIC_STATE_LINE_STIPPLE_EXT, then the {@code lineStippleFactor} member of ##VkPipelineRasterizationLineStateCreateInfoKHR must be in the range [1,256]
            • +
            • If {@code shaderMeshEnqueue} is not enabled, shaders specified by {@code pStages} must not declare the {@code ShaderEnqueueAMDX} capability
            • +
            • If {@code flags} does not include #PIPELINE_CREATE_LIBRARY_BIT_KHR, shaders specified by {@code pStages} must not declare the {@code ShaderEnqueueAMDX} capability
            • +
            • If any shader stages in {@code pStages} declare the {@code ShaderEnqueueAMDX} capability, #PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX and #PIPELINE_CREATE_2_LIBRARY_BIT_KHR must be included in {@code flags}
            • +
            • If #PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX is included in {@code flags}, and the pipeline requires pre-rasterization shader state, there must not be a task or vertex shader specified in {@code pStages}
            • +
            • If #PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX is included in {@code flags}, all elements of ##VkPipelineLibraryCreateInfoKHR{@code ::pLibraries} must have been created with #PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX
            • {@code flags} must not include #PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR
            • {@code flags} must not include #PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR
            • {@code flags} must not include #PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR
            • @@ -4207,11 +4217,11 @@ val VkGraphicsPipelineCreateInfo = struct(Module.VULKAN, "VkGraphicsPipelineCrea
            • If the {@code extendedDynamicState2LogicOp} feature is not enabled, there must be no element of the {@code pDynamicStates} member of {@code pDynamicState} set to #DYNAMIC_STATE_LOGIC_OP_EXT
            • If the {@code extendedDynamicState2PatchControlPoints} feature is not enabled, there must be no element of the {@code pDynamicStates} member of {@code pDynamicState} set to #DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT
            • If the pipeline requires pre-rasterization shader state, and includes a mesh shader, there must be no element of the {@code pDynamicStates} member of {@code pDynamicState} set to #DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE, or #DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT
            • -
            • If {@code flags} includes #PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then the {@code deviceGeneratedCommands} feature must be enabled
            • +
            • If {@code flags} includes #PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then the ##VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV{@code ::deviceGeneratedCommands} feature must be enabled
            • If the pipeline requires pre-rasterization shader state and {@code flags} includes #PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then all stages must not specify {@code Xfb} execution mode
            • If the pipeline is not created with a complete set of state, or ##VkPipelineLibraryCreateInfoKHR{@code ::libraryCount} is not 0, ##VkGraphicsPipelineShaderGroupsCreateInfoNV{@code ::groupCount} and ##VkGraphicsPipelineShaderGroupsCreateInfoNV{@code ::pipelineCount} must be 0
            • If the pipeline is created with a complete set of state, and ##VkPipelineLibraryCreateInfoKHR{@code ::libraryCount} is 0, and the {@code pNext} chain includes an instance of ##VkGraphicsPipelineShaderGroupsCreateInfoNV, ##VkGraphicsPipelineShaderGroupsCreateInfoNV{@code ::groupCount} must be greater than 0
            • -
            • If {@code flags} includes #PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT, then the {@code deviceGeneratedCommands} feature must be enabled
            • +
            • If {@code flags} includes #PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT, then the ##VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT{@code ::deviceGeneratedCommands} feature must be enabled
            • If the pipeline requires pre-rasterization shader state and {@code flags} includes #PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT, then all stages must not specify {@code Xfb} execution mode
            • If the {@code pipelineCreationCacheControl} feature is not enabled, {@code flags} must not include #PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT or #PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT
            • If the {@code pipelineProtectedAccess} feature is not enabled, {@code flags} must not include #PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT or #PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT
            • @@ -4300,8 +4310,8 @@ val VkGraphicsPipelineCreateInfo = struct(Module.VULKAN, "VkGraphicsPipelineCrea
            • If the pipeline requires fragment shader state or pre-rasterization shader state, {@code layout} must be a valid {@code VkPipelineLayout} handle
            • If the pipeline requires pre-rasterization shader state, fragment shader state, or fragment output state, and {@code renderPass} is not #NULL_HANDLE, {@code renderPass} must be a valid {@code VkRenderPass} handle
            • If the pipeline requires pre-rasterization shader state, {@code stageCount} must be greater than 0
            • -
            • If the {@code graphicsPipelineLibrary} feature is not enabled, {@code flags} must not include #PIPELINE_CREATE_LIBRARY_BIT_KHR
            • -
            • If the pipeline defines, or includes as libraries, all the state subsets required for a complete graphics pipeline, {@code flags} must not include #PIPELINE_CREATE_LIBRARY_BIT_KHR
            • +
            • If the {@code graphicsPipelineLibrary} feature is not enabled, and if the {@code shaderMeshEnqueue} feature is not enabled, {@code flags} must not include #PIPELINE_CREATE_LIBRARY_BIT_KHR
            • +
            • If {@code shaderMeshEnqueue} feature is not enabled, and the pipeline is being created with all possible state subsets, {@code flags} must not include #PIPELINE_CREATE_LIBRARY_BIT_KHR
            • If {@code flags} includes #PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT, pipeline libraries included via ##VkPipelineLibraryCreateInfoKHR must have been created with #PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT
            • If {@code flags} includes #PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT, {@code flags} must also include #PIPELINE_CREATE_LIBRARY_BIT_KHR
            • If {@code flags} includes #PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT, pipeline libraries included via ##VkPipelineLibraryCreateInfoKHR must have been created with #PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT
            • @@ -4615,8 +4625,8 @@ val VkSamplerCreateInfo = struct(Module.VULKAN, "VkSamplerCreateInfo") {
            • If {@code unnormalizedCoordinates} is #TRUE, {@code compareEnable} must be #FALSE
            • If any of {@code addressModeU}, {@code addressModeV} or {@code addressModeW} are #SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, {@code borderColor} must be a valid {@code VkBorderColor} value
            • If sampler Y′CBCR conversion is enabled, {@code addressModeU}, {@code addressModeV}, and {@code addressModeW} must be #SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, {@code anisotropyEnable} must be #FALSE, and {@code unnormalizedCoordinates} must be #FALSE
            • -
            • If sampler Y′CBCR conversion is enabled and the {@code pNext} chain includes a ##VkSamplerReductionModeCreateInfo structure, then the sampler reduction mode must be set to #SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE
            • -
            • If {@code samplerFilterMinmax} is not enabled and the {@code pNext} chain includes a ##VkSamplerReductionModeCreateInfo structure, then the sampler reduction mode must be set to #SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE
            • +
            • If sampler Y′CBCR conversion is enabled and the {@code pNext} chain includes a ##VkSamplerReductionModeCreateInfo structure, then the sampler reduction mode must be #SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE
            • +
            • If {@code samplerFilterMinmax} is not enabled and the {@code pNext} chain includes a ##VkSamplerReductionModeCreateInfo structure, then the sampler reduction mode must be #SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE
            • If {@code samplerMirrorClampToEdge} is not enabled, and if the {@link KHRSamplerMirrorClampToEdge VK_KHR_sampler_mirror_clamp_to_edge} extension is not enabled, {@code addressModeU}, {@code addressModeV} and {@code addressModeW} must not be #SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE
            • If {@code compareEnable} is #TRUE, {@code compareOp} must be a valid {@code VkCompareOp} value
            • If either {@code magFilter} or {@code minFilter} is #FILTER_CUBIC_EXT, {@code anisotropyEnable} must be #FALSE
            • @@ -4687,7 +4697,7 @@ val VkSamplerCreateInfo = struct(Module.VULKAN, "VkSamplerCreateInfo") { float("minLod", "used to clamp the minimum of the computed LOD value.") float("maxLod", "used to clamp the maximum of the computed LOD value. To avoid clamping the maximum value, set {@code maxLod} to the constant #LOD_CLAMP_NONE.") VkBorderColor("borderColor", "a {@code VkBorderColor} value specifying the predefined border color to use.") - VkBool32("unnormalizedCoordinates", """controls whether to use unnormalized or normalized texel coordinates to address texels of the image. When set to #TRUE, the range of the image coordinates used to lookup the texel is in the range of zero to the image size in each dimension. When set to #FALSE the range of image coordinates is zero to one. + VkBool32("unnormalizedCoordinates", """controls whether to use unnormalized or normalized texel coordinates to address texels of the image. When {@code unnormalizedCoordinates} is #TRUE, the range of the image coordinates used to lookup the texel is in the range of zero to the image size in each dimension. When {@code unnormalizedCoordinates} is #FALSE, the range of image coordinates is zero to one. When {@code unnormalizedCoordinates} is #TRUE, images the sampler is used with in the shader have the following requirements: @@ -4717,11 +4727,11 @@ val VkCopyDescriptorSet = struct(Module.VULKAN, "VkCopyDescriptorSet") {
              Valid Usage
              • {@code srcBinding} must be a valid binding within {@code srcSet}
              • -
              • The sum of {@code srcArrayElement} and {@code descriptorCount} must be less than or equal to the number of array elements in the descriptor set binding specified by {@code srcBinding}, and all applicable consecutive bindings, as described by consecutive binding updates
              • +
              • The sum of {@code srcArrayElement} and {@code descriptorCount} must be less than or equal to the number of array elements in the descriptor set binding specified by {@code srcBinding}, and all applicable consecutive bindings
              • {@code dstBinding} must be a valid binding within {@code dstSet}
              • -
              • The sum of {@code dstArrayElement} and {@code descriptorCount} must be less than or equal to the number of array elements in the descriptor set binding specified by {@code dstBinding}, and all applicable consecutive bindings, as described by consecutive binding updates
              • +
              • The sum of {@code dstArrayElement} and {@code descriptorCount} must be less than or equal to the number of array elements in the descriptor set binding specified by {@code dstBinding}, and all applicable consecutive bindings
              • The type of {@code dstBinding} within {@code dstSet} must be equal to the type of {@code srcBinding} within {@code srcSet}
              • -
              • If {@code srcSet} is equal to {@code dstSet}, then the source and destination ranges of descriptors must not overlap, where the ranges may include array elements from consecutive bindings as described by consecutive binding updates
              • +
              • If {@code srcSet} is equal to {@code dstSet}, then the source and destination ranges of descriptors must not overlap, where the ranges may include array elements from consecutive bindings
              • If the descriptor type of the descriptor set binding specified by {@code srcBinding} is #DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, {@code srcArrayElement} must be an integer multiple of 4
              • If the descriptor type of the descriptor set binding specified by {@code dstBinding} is #DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, {@code dstArrayElement} must be an integer multiple of 4
              • If the descriptor type of the descriptor set binding specified by either {@code srcBinding} or {@code dstBinding} is #DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, {@code descriptorCount} must be an integer multiple of 4
              • @@ -5086,7 +5096,7 @@ val VkWriteDescriptorSet = struct(Module.VULKAN, "VkWriteDescriptorSet") {
              • All consecutive bindings updated via a single ##VkWriteDescriptorSet structure, except those with a {@code descriptorCount} of zero, must all either use immutable samplers or must all not use immutable samplers
              • {@code descriptorType} must match the type of {@code dstBinding} within {@code dstSet}
              • {@code dstSet} must be a valid {@code VkDescriptorSet} handle
              • -
              • The sum of {@code dstArrayElement} and {@code descriptorCount} must be less than or equal to the number of array elements in the descriptor set binding specified by {@code dstBinding}, and all applicable consecutive bindings, as described by consecutive binding updates
              • +
              • The sum of {@code dstArrayElement} and {@code descriptorCount} must be less than or equal to the number of array elements in the descriptor set binding specified by {@code dstBinding}, and all applicable consecutive bindings
              • If {@code descriptorType} is #DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, {@code dstArrayElement} must be an integer multiple of 4
              • If {@code descriptorType} is #DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, {@code descriptorCount} must be an integer multiple of 4
              • If {@code descriptorType} is #DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER or #DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, each element of {@code pTexelBufferView} must be either a valid {@code VkBufferView} handle or #NULL_HANDLE
              • @@ -5156,7 +5166,7 @@ val VkWriteDescriptorSet = struct(Module.VULKAN, "VkWriteDescriptorSet") {
              • the number of elements in {@code pBufferInfo}
              • the number of elements in {@code pTexelBufferView}
              • a value matching the {@code dataSize} member of a ##VkWriteDescriptorSetInlineUniformBlock structure in the {@code pNext} chain
              • -
              • a value matching the {@code accelerationStructureCount} of a ##VkWriteDescriptorSetAccelerationStructureKHR structure in the {@code pNext} chain
              • +
              • a value matching the {@code accelerationStructureCount} of a ##VkWriteDescriptorSetAccelerationStructureKHR or ##VkWriteDescriptorSetAccelerationStructureNV structure in the {@code pNext} chain
              """) VkDescriptorType("descriptorType", "a {@code VkDescriptorType} specifying the type of each descriptor in {@code pImageInfo}, {@code pBufferInfo}, or {@code pTexelBufferView}, as described below. If ##VkDescriptorSetLayoutBinding for {@code dstSet} at {@code dstBinding} is not equal to #DESCRIPTOR_TYPE_MUTABLE_EXT, {@code descriptorType} must be the same type as the {@code descriptorType} specified in ##VkDescriptorSetLayoutBinding for {@code dstSet} at {@code dstBinding}. The type of the descriptor also controls which array the descriptors are taken from.") nullable..VkDescriptorImageInfo.const.p("pImageInfo", "a pointer to an array of ##VkDescriptorImageInfo structures or is ignored, as described below.") @@ -6069,7 +6079,7 @@ val VkRenderPassBeginInfo = struct(Module.VULKAN, "VkRenderPassBeginInfo") { If render pass transform is enabled, then {@code renderArea} must equal the framebuffer pre-transformed dimensions. After {@code renderArea} has been transformed by ##VkRenderPassTransformBeginInfoQCOM{@code ::transform}, the resulting render area must be equal to the framebuffer dimensions. - If multiview is enabled in {@code renderPass}, and {@code multiviewPerViewRenderAreas} feature is enabled, and there is an instance of ##VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM included in the {@code pNext} chain with {@code perViewRenderAreaCount} not equal to 0, then the elements of ##VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM{@code ::pPerViewRenderAreas} override {@code renderArea} and define a render area for each view. In this case, {@code renderArea} must be set to an area at least as large as the union of all the per-view render areas. + If multiview is enabled in {@code renderPass}, and {@code multiviewPerViewRenderAreas} feature is enabled, and there is an instance of ##VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM included in the {@code pNext} chain with {@code perViewRenderAreaCount} not equal to 0, then the elements of ##VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM{@code ::pPerViewRenderAreas} override {@code renderArea} and define a render area for each view. In this case, {@code renderArea} must be an area at least as large as the union of all the per-view render areas. If the {@code subpassShading} feature is enabled, then {@code renderArea} must equal the framebuffer dimensions. @@ -6461,7 +6471,7 @@ val VkDeviceGroupCommandBufferBeginInfo = struct(Module.VULKAN, "VkDeviceGroupCo
              Description
              The initial device mask also acts as an upper bound on the set of devices that can ever be in the device mask in the command buffer. - If this structure is not present, the initial value of a command buffer’s device mask is set to include all physical devices in the logical device when the command buffer begins recording. + If this structure is not present, the initial value of a command buffer’s device mask includes all physical devices in the logical device when the command buffer begins recording.
              Valid Usage
                @@ -6817,7 +6827,7 @@ val VkPhysicalDeviceFeatures2 = struct(Module.VULKAN, "VkPhysicalDeviceFeatures2 Expression("#STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.") PointerSetter( - "VkPhysicalDevice16BitStorageFeatures", "VkPhysicalDevice16BitStorageFeaturesKHR", "VkPhysicalDevice4444FormatsFeaturesEXT", "VkPhysicalDevice8BitStorageFeatures", "VkPhysicalDevice8BitStorageFeaturesKHR", "VkPhysicalDeviceASTCDecodeFeaturesEXT", "VkPhysicalDeviceAccelerationStructureFeaturesKHR", "VkPhysicalDeviceAddressBindingReportFeaturesEXT", "VkPhysicalDeviceAmigoProfilingFeaturesSEC", "VkPhysicalDeviceAntiLagFeaturesAMD", "VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT", "VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT", "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT", "VkPhysicalDeviceBorderColorSwizzleFeaturesEXT", "VkPhysicalDeviceBufferAddressFeaturesEXT", "VkPhysicalDeviceBufferDeviceAddressFeatures", "VkPhysicalDeviceBufferDeviceAddressFeaturesEXT", "VkPhysicalDeviceBufferDeviceAddressFeaturesKHR", "VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI", "VkPhysicalDeviceCoherentMemoryFeaturesAMD", "VkPhysicalDeviceColorWriteEnableFeaturesEXT", "VkPhysicalDeviceCommandBufferInheritanceFeaturesNV", "VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR", "VkPhysicalDeviceComputeShaderDerivativesFeaturesNV", "VkPhysicalDeviceConditionalRenderingFeaturesEXT", "VkPhysicalDeviceCooperativeMatrixFeaturesKHR", "VkPhysicalDeviceCooperativeMatrixFeaturesNV", "VkPhysicalDeviceCopyMemoryIndirectFeaturesNV", "VkPhysicalDeviceCornerSampledImageFeaturesNV", "VkPhysicalDeviceCoverageReductionModeFeaturesNV", "VkPhysicalDeviceCubicClampFeaturesQCOM", "VkPhysicalDeviceCubicWeightsFeaturesQCOM", "VkPhysicalDeviceCudaKernelLaunchFeaturesNV", "VkPhysicalDeviceCustomBorderColorFeaturesEXT", "VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV", "VkPhysicalDeviceDepthBiasControlFeaturesEXT", "VkPhysicalDeviceDepthClampControlFeaturesEXT", "VkPhysicalDeviceDepthClampZeroOneFeaturesEXT", "VkPhysicalDeviceDepthClipControlFeaturesEXT", "VkPhysicalDeviceDepthClipEnableFeaturesEXT", "VkPhysicalDeviceDescriptorBufferFeaturesEXT", "VkPhysicalDeviceDescriptorIndexingFeatures", "VkPhysicalDeviceDescriptorIndexingFeaturesEXT", "VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV", "VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE", "VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV", "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT", "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV", "VkPhysicalDeviceDeviceMemoryReportFeaturesEXT", "VkPhysicalDeviceDiagnosticsConfigFeaturesNV", "VkPhysicalDeviceDisplacementMicromapFeaturesNV", "VkPhysicalDeviceDynamicRenderingFeatures", "VkPhysicalDeviceDynamicRenderingFeaturesKHR", "VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR", "VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT", "VkPhysicalDeviceExclusiveScissorFeaturesNV", "VkPhysicalDeviceExtendedDynamicState2FeaturesEXT", "VkPhysicalDeviceExtendedDynamicState3FeaturesEXT", "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT", "VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV", "VkPhysicalDeviceExternalFormatResolveFeaturesANDROID", "VkPhysicalDeviceExternalMemoryRDMAFeaturesNV", "VkPhysicalDeviceFaultFeaturesEXT", "VkPhysicalDeviceFloat16Int8FeaturesKHR", "VkPhysicalDeviceFragmentDensityMap2FeaturesEXT", "VkPhysicalDeviceFragmentDensityMapFeaturesEXT", "VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM", "VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR", "VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV", "VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT", "VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV", "VkPhysicalDeviceFragmentShadingRateFeaturesKHR", "VkPhysicalDeviceFrameBoundaryFeaturesEXT", "VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT", "VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR", "VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT", "VkPhysicalDeviceHostImageCopyFeaturesEXT", "VkPhysicalDeviceHostQueryResetFeatures", "VkPhysicalDeviceHostQueryResetFeaturesEXT", "VkPhysicalDeviceImage2DViewOf3DFeaturesEXT", "VkPhysicalDeviceImageAlignmentControlFeaturesMESA", "VkPhysicalDeviceImageCompressionControlFeaturesEXT", "VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT", "VkPhysicalDeviceImageProcessing2FeaturesQCOM", "VkPhysicalDeviceImageProcessingFeaturesQCOM", "VkPhysicalDeviceImageRobustnessFeatures", "VkPhysicalDeviceImageRobustnessFeaturesEXT", "VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT", "VkPhysicalDeviceImageViewMinLodFeaturesEXT", "VkPhysicalDeviceImagelessFramebufferFeatures", "VkPhysicalDeviceImagelessFramebufferFeaturesKHR", "VkPhysicalDeviceIndexTypeUint8FeaturesEXT", "VkPhysicalDeviceIndexTypeUint8FeaturesKHR", "VkPhysicalDeviceInheritedViewportScissorFeaturesNV", "VkPhysicalDeviceInlineUniformBlockFeatures", "VkPhysicalDeviceInlineUniformBlockFeaturesEXT", "VkPhysicalDeviceInvocationMaskFeaturesHUAWEI", "VkPhysicalDeviceLegacyDitheringFeaturesEXT", "VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT", "VkPhysicalDeviceLineRasterizationFeaturesEXT", "VkPhysicalDeviceLineRasterizationFeaturesKHR", "VkPhysicalDeviceLinearColorAttachmentFeaturesNV", "VkPhysicalDeviceMaintenance4Features", "VkPhysicalDeviceMaintenance4FeaturesKHR", "VkPhysicalDeviceMaintenance5FeaturesKHR", "VkPhysicalDeviceMaintenance6FeaturesKHR", "VkPhysicalDeviceMaintenance7FeaturesKHR", "VkPhysicalDeviceMapMemoryPlacedFeaturesEXT", "VkPhysicalDeviceMemoryDecompressionFeaturesNV", "VkPhysicalDeviceMemoryPriorityFeaturesEXT", "VkPhysicalDeviceMeshShaderFeaturesEXT", "VkPhysicalDeviceMeshShaderFeaturesNV", "VkPhysicalDeviceMultiDrawFeaturesEXT", "VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT", "VkPhysicalDeviceMultiviewFeatures", "VkPhysicalDeviceMultiviewFeaturesKHR", "VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM", "VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM", "VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT", "VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE", "VkPhysicalDeviceNestedCommandBufferFeaturesEXT", "VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT", "VkPhysicalDeviceOpacityMicromapFeaturesEXT", "VkPhysicalDeviceOpticalFlowFeaturesNV", "VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT", "VkPhysicalDevicePerStageDescriptorSetFeaturesNV", "VkPhysicalDevicePerformanceQueryFeaturesKHR", "VkPhysicalDevicePipelineBinaryFeaturesKHR", "VkPhysicalDevicePipelineCreationCacheControlFeatures", "VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT", "VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR", "VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT", "VkPhysicalDevicePipelinePropertiesFeaturesEXT", "VkPhysicalDevicePipelineProtectedAccessFeaturesEXT", "VkPhysicalDevicePipelineRobustnessFeaturesEXT", "VkPhysicalDevicePortabilitySubsetFeaturesKHR", "VkPhysicalDevicePresentBarrierFeaturesNV", "VkPhysicalDevicePresentIdFeaturesKHR", "VkPhysicalDevicePresentWaitFeaturesKHR", "VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT", "VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT", "VkPhysicalDevicePrivateDataFeatures", "VkPhysicalDevicePrivateDataFeaturesEXT", "VkPhysicalDeviceProtectedMemoryFeatures", "VkPhysicalDeviceProvokingVertexFeaturesEXT", "VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT", "VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM", "VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT", "VkPhysicalDeviceRawAccessChainsFeaturesNV", "VkPhysicalDeviceRayQueryFeaturesKHR", "VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV", "VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR", "VkPhysicalDeviceRayTracingMotionBlurFeaturesNV", "VkPhysicalDeviceRayTracingPipelineFeaturesKHR", "VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR", "VkPhysicalDeviceRayTracingValidationFeaturesNV", "VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG", "VkPhysicalDeviceRenderPassStripedFeaturesARM", "VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV", "VkPhysicalDeviceRobustness2FeaturesEXT", "VkPhysicalDeviceSamplerYcbcrConversionFeatures", "VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR", "VkPhysicalDeviceScalarBlockLayoutFeatures", "VkPhysicalDeviceScalarBlockLayoutFeaturesEXT", "VkPhysicalDeviceSchedulingControlsFeaturesARM", "VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures", "VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR", "VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV", "VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT", "VkPhysicalDeviceShaderAtomicFloatFeaturesEXT", "VkPhysicalDeviceShaderAtomicInt64Features", "VkPhysicalDeviceShaderAtomicInt64FeaturesKHR", "VkPhysicalDeviceShaderClockFeaturesKHR", "VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM", "VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures", "VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT", "VkPhysicalDeviceShaderDrawParameterFeatures", "VkPhysicalDeviceShaderDrawParametersFeatures", "VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD", "VkPhysicalDeviceShaderEnqueueFeaturesAMDX", "VkPhysicalDeviceShaderExpectAssumeFeaturesKHR", "VkPhysicalDeviceShaderFloat16Int8Features", "VkPhysicalDeviceShaderFloat16Int8FeaturesKHR", "VkPhysicalDeviceShaderFloatControls2FeaturesKHR", "VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT", "VkPhysicalDeviceShaderImageFootprintFeaturesNV", "VkPhysicalDeviceShaderIntegerDotProductFeatures", "VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR", "VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL", "VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR", "VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT", "VkPhysicalDeviceShaderObjectFeaturesEXT", "VkPhysicalDeviceShaderQuadControlFeaturesKHR", "VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR", "VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT", "VkPhysicalDeviceShaderSMBuiltinsFeaturesNV", "VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures", "VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR", "VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR", "VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR", "VkPhysicalDeviceShaderTerminateInvocationFeatures", "VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR", "VkPhysicalDeviceShaderTileImageFeaturesEXT", "VkPhysicalDeviceShadingRateImageFeaturesNV", "VkPhysicalDeviceSubgroupSizeControlFeatures", "VkPhysicalDeviceSubgroupSizeControlFeaturesEXT", "VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT", "VkPhysicalDeviceSubpassShadingFeaturesHUAWEI", "VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT", "VkPhysicalDeviceSynchronization2Features", "VkPhysicalDeviceSynchronization2FeaturesKHR", "VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT", "VkPhysicalDeviceTextureCompressionASTCHDRFeatures", "VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT", "VkPhysicalDeviceTilePropertiesFeaturesQCOM", "VkPhysicalDeviceTimelineSemaphoreFeatures", "VkPhysicalDeviceTimelineSemaphoreFeaturesKHR", "VkPhysicalDeviceTransformFeedbackFeaturesEXT", "VkPhysicalDeviceUniformBufferStandardLayoutFeatures", "VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR", "VkPhysicalDeviceVariablePointerFeatures", "VkPhysicalDeviceVariablePointerFeaturesKHR", "VkPhysicalDeviceVariablePointersFeatures", "VkPhysicalDeviceVariablePointersFeaturesKHR", "VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT", "VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR", "VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT", "VkPhysicalDeviceVideoMaintenance1FeaturesKHR", "VkPhysicalDeviceVulkan11Features", "VkPhysicalDeviceVulkan12Features", "VkPhysicalDeviceVulkan13Features", "VkPhysicalDeviceVulkanMemoryModelFeatures", "VkPhysicalDeviceVulkanMemoryModelFeaturesKHR", "VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR", "VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT", "VkPhysicalDeviceYcbcrDegammaFeaturesQCOM", "VkPhysicalDeviceYcbcrImageArraysFeaturesEXT", "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures", "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR", + "VkPhysicalDevice16BitStorageFeatures", "VkPhysicalDevice16BitStorageFeaturesKHR", "VkPhysicalDevice4444FormatsFeaturesEXT", "VkPhysicalDevice8BitStorageFeatures", "VkPhysicalDevice8BitStorageFeaturesKHR", "VkPhysicalDeviceASTCDecodeFeaturesEXT", "VkPhysicalDeviceAccelerationStructureFeaturesKHR", "VkPhysicalDeviceAddressBindingReportFeaturesEXT", "VkPhysicalDeviceAmigoProfilingFeaturesSEC", "VkPhysicalDeviceAntiLagFeaturesAMD", "VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT", "VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT", "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT", "VkPhysicalDeviceBorderColorSwizzleFeaturesEXT", "VkPhysicalDeviceBufferAddressFeaturesEXT", "VkPhysicalDeviceBufferDeviceAddressFeatures", "VkPhysicalDeviceBufferDeviceAddressFeaturesEXT", "VkPhysicalDeviceBufferDeviceAddressFeaturesKHR", "VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI", "VkPhysicalDeviceCoherentMemoryFeaturesAMD", "VkPhysicalDeviceColorWriteEnableFeaturesEXT", "VkPhysicalDeviceCommandBufferInheritanceFeaturesNV", "VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR", "VkPhysicalDeviceComputeShaderDerivativesFeaturesNV", "VkPhysicalDeviceConditionalRenderingFeaturesEXT", "VkPhysicalDeviceCooperativeMatrix2FeaturesNV", "VkPhysicalDeviceCooperativeMatrixFeaturesKHR", "VkPhysicalDeviceCooperativeMatrixFeaturesNV", "VkPhysicalDeviceCopyMemoryIndirectFeaturesNV", "VkPhysicalDeviceCornerSampledImageFeaturesNV", "VkPhysicalDeviceCoverageReductionModeFeaturesNV", "VkPhysicalDeviceCubicClampFeaturesQCOM", "VkPhysicalDeviceCubicWeightsFeaturesQCOM", "VkPhysicalDeviceCudaKernelLaunchFeaturesNV", "VkPhysicalDeviceCustomBorderColorFeaturesEXT", "VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV", "VkPhysicalDeviceDepthBiasControlFeaturesEXT", "VkPhysicalDeviceDepthClampControlFeaturesEXT", "VkPhysicalDeviceDepthClampZeroOneFeaturesEXT", "VkPhysicalDeviceDepthClipControlFeaturesEXT", "VkPhysicalDeviceDepthClipEnableFeaturesEXT", "VkPhysicalDeviceDescriptorBufferFeaturesEXT", "VkPhysicalDeviceDescriptorIndexingFeatures", "VkPhysicalDeviceDescriptorIndexingFeaturesEXT", "VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV", "VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE", "VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV", "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT", "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV", "VkPhysicalDeviceDeviceMemoryReportFeaturesEXT", "VkPhysicalDeviceDiagnosticsConfigFeaturesNV", "VkPhysicalDeviceDisplacementMicromapFeaturesNV", "VkPhysicalDeviceDynamicRenderingFeatures", "VkPhysicalDeviceDynamicRenderingFeaturesKHR", "VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR", "VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT", "VkPhysicalDeviceExclusiveScissorFeaturesNV", "VkPhysicalDeviceExtendedDynamicState2FeaturesEXT", "VkPhysicalDeviceExtendedDynamicState3FeaturesEXT", "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT", "VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV", "VkPhysicalDeviceExternalFormatResolveFeaturesANDROID", "VkPhysicalDeviceExternalMemoryRDMAFeaturesNV", "VkPhysicalDeviceFaultFeaturesEXT", "VkPhysicalDeviceFloat16Int8FeaturesKHR", "VkPhysicalDeviceFragmentDensityMap2FeaturesEXT", "VkPhysicalDeviceFragmentDensityMapFeaturesEXT", "VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM", "VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR", "VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV", "VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT", "VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV", "VkPhysicalDeviceFragmentShadingRateFeaturesKHR", "VkPhysicalDeviceFrameBoundaryFeaturesEXT", "VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT", "VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR", "VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT", "VkPhysicalDeviceHdrVividFeaturesHUAWEI", "VkPhysicalDeviceHostImageCopyFeaturesEXT", "VkPhysicalDeviceHostQueryResetFeatures", "VkPhysicalDeviceHostQueryResetFeaturesEXT", "VkPhysicalDeviceImage2DViewOf3DFeaturesEXT", "VkPhysicalDeviceImageAlignmentControlFeaturesMESA", "VkPhysicalDeviceImageCompressionControlFeaturesEXT", "VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT", "VkPhysicalDeviceImageProcessing2FeaturesQCOM", "VkPhysicalDeviceImageProcessingFeaturesQCOM", "VkPhysicalDeviceImageRobustnessFeatures", "VkPhysicalDeviceImageRobustnessFeaturesEXT", "VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT", "VkPhysicalDeviceImageViewMinLodFeaturesEXT", "VkPhysicalDeviceImagelessFramebufferFeatures", "VkPhysicalDeviceImagelessFramebufferFeaturesKHR", "VkPhysicalDeviceIndexTypeUint8FeaturesEXT", "VkPhysicalDeviceIndexTypeUint8FeaturesKHR", "VkPhysicalDeviceInheritedViewportScissorFeaturesNV", "VkPhysicalDeviceInlineUniformBlockFeatures", "VkPhysicalDeviceInlineUniformBlockFeaturesEXT", "VkPhysicalDeviceInvocationMaskFeaturesHUAWEI", "VkPhysicalDeviceLegacyDitheringFeaturesEXT", "VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT", "VkPhysicalDeviceLineRasterizationFeaturesEXT", "VkPhysicalDeviceLineRasterizationFeaturesKHR", "VkPhysicalDeviceLinearColorAttachmentFeaturesNV", "VkPhysicalDeviceMaintenance4Features", "VkPhysicalDeviceMaintenance4FeaturesKHR", "VkPhysicalDeviceMaintenance5FeaturesKHR", "VkPhysicalDeviceMaintenance6FeaturesKHR", "VkPhysicalDeviceMaintenance7FeaturesKHR", "VkPhysicalDeviceMapMemoryPlacedFeaturesEXT", "VkPhysicalDeviceMemoryDecompressionFeaturesNV", "VkPhysicalDeviceMemoryPriorityFeaturesEXT", "VkPhysicalDeviceMeshShaderFeaturesEXT", "VkPhysicalDeviceMeshShaderFeaturesNV", "VkPhysicalDeviceMultiDrawFeaturesEXT", "VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT", "VkPhysicalDeviceMultiviewFeatures", "VkPhysicalDeviceMultiviewFeaturesKHR", "VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM", "VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM", "VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT", "VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE", "VkPhysicalDeviceNestedCommandBufferFeaturesEXT", "VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT", "VkPhysicalDeviceOpacityMicromapFeaturesEXT", "VkPhysicalDeviceOpticalFlowFeaturesNV", "VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT", "VkPhysicalDevicePerStageDescriptorSetFeaturesNV", "VkPhysicalDevicePerformanceQueryFeaturesKHR", "VkPhysicalDevicePipelineBinaryFeaturesKHR", "VkPhysicalDevicePipelineCreationCacheControlFeatures", "VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT", "VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR", "VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT", "VkPhysicalDevicePipelinePropertiesFeaturesEXT", "VkPhysicalDevicePipelineProtectedAccessFeaturesEXT", "VkPhysicalDevicePipelineRobustnessFeaturesEXT", "VkPhysicalDevicePortabilitySubsetFeaturesKHR", "VkPhysicalDevicePresentBarrierFeaturesNV", "VkPhysicalDevicePresentIdFeaturesKHR", "VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT", "VkPhysicalDevicePresentWaitFeaturesKHR", "VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT", "VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT", "VkPhysicalDevicePrivateDataFeatures", "VkPhysicalDevicePrivateDataFeaturesEXT", "VkPhysicalDeviceProtectedMemoryFeatures", "VkPhysicalDeviceProvokingVertexFeaturesEXT", "VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT", "VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM", "VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT", "VkPhysicalDeviceRawAccessChainsFeaturesNV", "VkPhysicalDeviceRayQueryFeaturesKHR", "VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV", "VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR", "VkPhysicalDeviceRayTracingMotionBlurFeaturesNV", "VkPhysicalDeviceRayTracingPipelineFeaturesKHR", "VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR", "VkPhysicalDeviceRayTracingValidationFeaturesNV", "VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG", "VkPhysicalDeviceRenderPassStripedFeaturesARM", "VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV", "VkPhysicalDeviceRobustness2FeaturesEXT", "VkPhysicalDeviceSamplerYcbcrConversionFeatures", "VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR", "VkPhysicalDeviceScalarBlockLayoutFeatures", "VkPhysicalDeviceScalarBlockLayoutFeaturesEXT", "VkPhysicalDeviceSchedulingControlsFeaturesARM", "VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures", "VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR", "VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV", "VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT", "VkPhysicalDeviceShaderAtomicFloatFeaturesEXT", "VkPhysicalDeviceShaderAtomicInt64Features", "VkPhysicalDeviceShaderAtomicInt64FeaturesKHR", "VkPhysicalDeviceShaderClockFeaturesKHR", "VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM", "VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures", "VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT", "VkPhysicalDeviceShaderDrawParameterFeatures", "VkPhysicalDeviceShaderDrawParametersFeatures", "VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD", "VkPhysicalDeviceShaderEnqueueFeaturesAMDX", "VkPhysicalDeviceShaderExpectAssumeFeaturesKHR", "VkPhysicalDeviceShaderFloat16Int8Features", "VkPhysicalDeviceShaderFloat16Int8FeaturesKHR", "VkPhysicalDeviceShaderFloatControls2FeaturesKHR", "VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT", "VkPhysicalDeviceShaderImageFootprintFeaturesNV", "VkPhysicalDeviceShaderIntegerDotProductFeatures", "VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR", "VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL", "VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR", "VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT", "VkPhysicalDeviceShaderObjectFeaturesEXT", "VkPhysicalDeviceShaderQuadControlFeaturesKHR", "VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR", "VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT", "VkPhysicalDeviceShaderSMBuiltinsFeaturesNV", "VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures", "VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR", "VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR", "VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR", "VkPhysicalDeviceShaderTerminateInvocationFeatures", "VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR", "VkPhysicalDeviceShaderTileImageFeaturesEXT", "VkPhysicalDeviceShadingRateImageFeaturesNV", "VkPhysicalDeviceSubgroupSizeControlFeatures", "VkPhysicalDeviceSubgroupSizeControlFeaturesEXT", "VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT", "VkPhysicalDeviceSubpassShadingFeaturesHUAWEI", "VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT", "VkPhysicalDeviceSynchronization2Features", "VkPhysicalDeviceSynchronization2FeaturesKHR", "VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT", "VkPhysicalDeviceTextureCompressionASTCHDRFeatures", "VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT", "VkPhysicalDeviceTilePropertiesFeaturesQCOM", "VkPhysicalDeviceTimelineSemaphoreFeatures", "VkPhysicalDeviceTimelineSemaphoreFeaturesKHR", "VkPhysicalDeviceTransformFeedbackFeaturesEXT", "VkPhysicalDeviceUniformBufferStandardLayoutFeatures", "VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR", "VkPhysicalDeviceVariablePointerFeatures", "VkPhysicalDeviceVariablePointerFeaturesKHR", "VkPhysicalDeviceVariablePointersFeatures", "VkPhysicalDeviceVariablePointersFeaturesKHR", "VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT", "VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR", "VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT", "VkPhysicalDeviceVideoMaintenance1FeaturesKHR", "VkPhysicalDeviceVulkan11Features", "VkPhysicalDeviceVulkan12Features", "VkPhysicalDeviceVulkan13Features", "VkPhysicalDeviceVulkanMemoryModelFeatures", "VkPhysicalDeviceVulkanMemoryModelFeaturesKHR", "VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR", "VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT", "VkPhysicalDeviceYcbcrDegammaFeaturesQCOM", "VkPhysicalDeviceYcbcrImageArraysFeaturesEXT", "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures", "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR", prepend = true )..nullable..opaque_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.") VkPhysicalDeviceFeatures("features", "a ##VkPhysicalDeviceFeatures structure describing the fine-grained features of the Vulkan 1.0 API.") @@ -6834,7 +6844,7 @@ val VkPhysicalDeviceProperties2 = struct(Module.VULKAN, "VkPhysicalDevicePropert
                Valid Usage (Implicit)
                • {@code sType} must be #STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2
                • -
                • Each {@code pNext} member of any structure (including this one) in the {@code pNext} chain must be either {@code NULL} or a pointer to a valid instance of ##VkPhysicalDeviceAccelerationStructurePropertiesKHR, ##VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, ##VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI, ##VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR, ##VkPhysicalDeviceConservativeRasterizationPropertiesEXT, ##VkPhysicalDeviceCooperativeMatrixPropertiesKHR, ##VkPhysicalDeviceCooperativeMatrixPropertiesNV, ##VkPhysicalDeviceCopyMemoryIndirectPropertiesNV, ##VkPhysicalDeviceCudaKernelLaunchPropertiesNV, ##VkPhysicalDeviceCustomBorderColorPropertiesEXT, ##VkPhysicalDeviceDepthStencilResolveProperties, ##VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT, ##VkPhysicalDeviceDescriptorBufferPropertiesEXT, ##VkPhysicalDeviceDescriptorIndexingProperties, ##VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT, ##VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, ##VkPhysicalDeviceDiscardRectanglePropertiesEXT, ##VkPhysicalDeviceDisplacementMicromapPropertiesNV, ##VkPhysicalDeviceDriverProperties, ##VkPhysicalDeviceDrmPropertiesEXT, ##VkPhysicalDeviceExtendedDynamicState3PropertiesEXT, ##VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV, ##VkPhysicalDeviceExternalFormatResolvePropertiesANDROID, ##VkPhysicalDeviceExternalMemoryHostPropertiesEXT, ##VkPhysicalDeviceFloatControlsProperties, ##VkPhysicalDeviceFragmentDensityMap2PropertiesEXT, ##VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM, ##VkPhysicalDeviceFragmentDensityMapPropertiesEXT, ##VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR, ##VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV, ##VkPhysicalDeviceFragmentShadingRatePropertiesKHR, ##VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, ##VkPhysicalDeviceHostImageCopyPropertiesEXT, ##VkPhysicalDeviceIDProperties, ##VkPhysicalDeviceImageAlignmentControlPropertiesMESA, ##VkPhysicalDeviceImageProcessing2PropertiesQCOM, ##VkPhysicalDeviceImageProcessingPropertiesQCOM, ##VkPhysicalDeviceInlineUniformBlockProperties, ##VkPhysicalDeviceLayeredApiPropertiesListKHR, ##VkPhysicalDeviceLayeredDriverPropertiesMSFT, ##VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT, ##VkPhysicalDeviceLineRasterizationPropertiesKHR, ##VkPhysicalDeviceMaintenance3Properties, ##VkPhysicalDeviceMaintenance4Properties, ##VkPhysicalDeviceMaintenance5PropertiesKHR, ##VkPhysicalDeviceMaintenance6PropertiesKHR, ##VkPhysicalDeviceMaintenance7PropertiesKHR, ##VkPhysicalDeviceMapMemoryPlacedPropertiesEXT, ##VkPhysicalDeviceMemoryDecompressionPropertiesNV, ##VkPhysicalDeviceMeshShaderPropertiesEXT, ##VkPhysicalDeviceMeshShaderPropertiesNV, ##VkPhysicalDeviceMultiDrawPropertiesEXT, ##VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, ##VkPhysicalDeviceMultiviewProperties, ##VkPhysicalDeviceNestedCommandBufferPropertiesEXT, ##VkPhysicalDeviceOpacityMicromapPropertiesEXT, ##VkPhysicalDeviceOpticalFlowPropertiesNV, ##VkPhysicalDevicePCIBusInfoPropertiesEXT, ##VkPhysicalDevicePerformanceQueryPropertiesKHR, ##VkPhysicalDevicePipelineBinaryPropertiesKHR, ##VkPhysicalDevicePipelineRobustnessPropertiesEXT, ##VkPhysicalDevicePointClippingProperties, ##VkPhysicalDevicePortabilitySubsetPropertiesKHR, ##VkPhysicalDeviceProtectedMemoryProperties, ##VkPhysicalDeviceProvokingVertexPropertiesEXT, ##VkPhysicalDevicePushDescriptorPropertiesKHR, ##VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV, ##VkPhysicalDeviceRayTracingPipelinePropertiesKHR, ##VkPhysicalDeviceRayTracingPropertiesNV, ##VkPhysicalDeviceRenderPassStripedPropertiesARM, ##VkPhysicalDeviceRobustness2PropertiesEXT, ##VkPhysicalDeviceSampleLocationsPropertiesEXT, ##VkPhysicalDeviceSamplerFilterMinmaxProperties, ##VkPhysicalDeviceSchedulingControlsPropertiesARM, ##VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM, ##VkPhysicalDeviceShaderCoreProperties2AMD, ##VkPhysicalDeviceShaderCorePropertiesAMD, ##VkPhysicalDeviceShaderCorePropertiesARM, ##VkPhysicalDeviceShaderEnqueuePropertiesAMDX, ##VkPhysicalDeviceShaderIntegerDotProductProperties, ##VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT, ##VkPhysicalDeviceShaderObjectPropertiesEXT, ##VkPhysicalDeviceShaderSMBuiltinsPropertiesNV, ##VkPhysicalDeviceShaderTileImagePropertiesEXT, ##VkPhysicalDeviceShadingRateImagePropertiesNV, ##VkPhysicalDeviceSubgroupProperties, ##VkPhysicalDeviceSubgroupSizeControlProperties, ##VkPhysicalDeviceSubpassShadingPropertiesHUAWEI, ##VkPhysicalDeviceTexelBufferAlignmentProperties, ##VkPhysicalDeviceTimelineSemaphoreProperties, ##VkPhysicalDeviceTransformFeedbackPropertiesEXT, ##VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, ##VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR, ##VkPhysicalDeviceVulkan11Properties, ##VkPhysicalDeviceVulkan12Properties, or ##VkPhysicalDeviceVulkan13Properties
                • +
                • Each {@code pNext} member of any structure (including this one) in the {@code pNext} chain must be either {@code NULL} or a pointer to a valid instance of ##VkPhysicalDeviceAccelerationStructurePropertiesKHR, ##VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, ##VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI, ##VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR, ##VkPhysicalDeviceConservativeRasterizationPropertiesEXT, ##VkPhysicalDeviceCooperativeMatrix2PropertiesNV, ##VkPhysicalDeviceCooperativeMatrixPropertiesKHR, ##VkPhysicalDeviceCooperativeMatrixPropertiesNV, ##VkPhysicalDeviceCopyMemoryIndirectPropertiesNV, ##VkPhysicalDeviceCudaKernelLaunchPropertiesNV, ##VkPhysicalDeviceCustomBorderColorPropertiesEXT, ##VkPhysicalDeviceDepthStencilResolveProperties, ##VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT, ##VkPhysicalDeviceDescriptorBufferPropertiesEXT, ##VkPhysicalDeviceDescriptorIndexingProperties, ##VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT, ##VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, ##VkPhysicalDeviceDiscardRectanglePropertiesEXT, ##VkPhysicalDeviceDisplacementMicromapPropertiesNV, ##VkPhysicalDeviceDriverProperties, ##VkPhysicalDeviceDrmPropertiesEXT, ##VkPhysicalDeviceExtendedDynamicState3PropertiesEXT, ##VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV, ##VkPhysicalDeviceExternalFormatResolvePropertiesANDROID, ##VkPhysicalDeviceExternalMemoryHostPropertiesEXT, ##VkPhysicalDeviceFloatControlsProperties, ##VkPhysicalDeviceFragmentDensityMap2PropertiesEXT, ##VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM, ##VkPhysicalDeviceFragmentDensityMapPropertiesEXT, ##VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR, ##VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV, ##VkPhysicalDeviceFragmentShadingRatePropertiesKHR, ##VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, ##VkPhysicalDeviceHostImageCopyPropertiesEXT, ##VkPhysicalDeviceIDProperties, ##VkPhysicalDeviceImageAlignmentControlPropertiesMESA, ##VkPhysicalDeviceImageProcessing2PropertiesQCOM, ##VkPhysicalDeviceImageProcessingPropertiesQCOM, ##VkPhysicalDeviceInlineUniformBlockProperties, ##VkPhysicalDeviceLayeredApiPropertiesListKHR, ##VkPhysicalDeviceLayeredDriverPropertiesMSFT, ##VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT, ##VkPhysicalDeviceLineRasterizationPropertiesKHR, ##VkPhysicalDeviceMaintenance3Properties, ##VkPhysicalDeviceMaintenance4Properties, ##VkPhysicalDeviceMaintenance5PropertiesKHR, ##VkPhysicalDeviceMaintenance6PropertiesKHR, ##VkPhysicalDeviceMaintenance7PropertiesKHR, ##VkPhysicalDeviceMapMemoryPlacedPropertiesEXT, ##VkPhysicalDeviceMemoryDecompressionPropertiesNV, ##VkPhysicalDeviceMeshShaderPropertiesEXT, ##VkPhysicalDeviceMeshShaderPropertiesNV, ##VkPhysicalDeviceMultiDrawPropertiesEXT, ##VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, ##VkPhysicalDeviceMultiviewProperties, ##VkPhysicalDeviceNestedCommandBufferPropertiesEXT, ##VkPhysicalDeviceOpacityMicromapPropertiesEXT, ##VkPhysicalDeviceOpticalFlowPropertiesNV, ##VkPhysicalDevicePCIBusInfoPropertiesEXT, ##VkPhysicalDevicePerformanceQueryPropertiesKHR, ##VkPhysicalDevicePipelineBinaryPropertiesKHR, ##VkPhysicalDevicePipelineRobustnessPropertiesEXT, ##VkPhysicalDevicePointClippingProperties, ##VkPhysicalDevicePortabilitySubsetPropertiesKHR, ##VkPhysicalDeviceProtectedMemoryProperties, ##VkPhysicalDeviceProvokingVertexPropertiesEXT, ##VkPhysicalDevicePushDescriptorPropertiesKHR, ##VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV, ##VkPhysicalDeviceRayTracingPipelinePropertiesKHR, ##VkPhysicalDeviceRayTracingPropertiesNV, ##VkPhysicalDeviceRenderPassStripedPropertiesARM, ##VkPhysicalDeviceRobustness2PropertiesEXT, ##VkPhysicalDeviceSampleLocationsPropertiesEXT, ##VkPhysicalDeviceSamplerFilterMinmaxProperties, ##VkPhysicalDeviceSchedulingControlsPropertiesARM, ##VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM, ##VkPhysicalDeviceShaderCoreProperties2AMD, ##VkPhysicalDeviceShaderCorePropertiesAMD, ##VkPhysicalDeviceShaderCorePropertiesARM, ##VkPhysicalDeviceShaderEnqueuePropertiesAMDX, ##VkPhysicalDeviceShaderIntegerDotProductProperties, ##VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT, ##VkPhysicalDeviceShaderObjectPropertiesEXT, ##VkPhysicalDeviceShaderSMBuiltinsPropertiesNV, ##VkPhysicalDeviceShaderTileImagePropertiesEXT, ##VkPhysicalDeviceShadingRateImagePropertiesNV, ##VkPhysicalDeviceSubgroupProperties, ##VkPhysicalDeviceSubgroupSizeControlProperties, ##VkPhysicalDeviceSubpassShadingPropertiesHUAWEI, ##VkPhysicalDeviceTexelBufferAlignmentProperties, ##VkPhysicalDeviceTimelineSemaphoreProperties, ##VkPhysicalDeviceTransformFeedbackPropertiesEXT, ##VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, ##VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR, ##VkPhysicalDeviceVulkan11Properties, ##VkPhysicalDeviceVulkan12Properties, or ##VkPhysicalDeviceVulkan13Properties
                • The {@code sType} value of each struct in the {@code pNext} chain must be unique
                @@ -6844,7 +6854,7 @@ val VkPhysicalDeviceProperties2 = struct(Module.VULKAN, "VkPhysicalDevicePropert Expression("#STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2")..VkStructureType("sType", "a {@code VkStructureType} value identifying this structure.").mutable() PointerSetter( - "VkPhysicalDeviceAccelerationStructurePropertiesKHR", "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT", "VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI", "VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR", "VkPhysicalDeviceConservativeRasterizationPropertiesEXT", "VkPhysicalDeviceCooperativeMatrixPropertiesKHR", "VkPhysicalDeviceCooperativeMatrixPropertiesNV", "VkPhysicalDeviceCopyMemoryIndirectPropertiesNV", "VkPhysicalDeviceCudaKernelLaunchPropertiesNV", "VkPhysicalDeviceCustomBorderColorPropertiesEXT", "VkPhysicalDeviceDepthStencilResolveProperties", "VkPhysicalDeviceDepthStencilResolvePropertiesKHR", "VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT", "VkPhysicalDeviceDescriptorBufferPropertiesEXT", "VkPhysicalDeviceDescriptorIndexingProperties", "VkPhysicalDeviceDescriptorIndexingPropertiesEXT", "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT", "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV", "VkPhysicalDeviceDiscardRectanglePropertiesEXT", "VkPhysicalDeviceDisplacementMicromapPropertiesNV", "VkPhysicalDeviceDriverProperties", "VkPhysicalDeviceDriverPropertiesKHR", "VkPhysicalDeviceDrmPropertiesEXT", "VkPhysicalDeviceExtendedDynamicState3PropertiesEXT", "VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV", "VkPhysicalDeviceExternalFormatResolvePropertiesANDROID", "VkPhysicalDeviceExternalMemoryHostPropertiesEXT", "VkPhysicalDeviceFloatControlsProperties", "VkPhysicalDeviceFloatControlsPropertiesKHR", "VkPhysicalDeviceFragmentDensityMap2PropertiesEXT", "VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM", "VkPhysicalDeviceFragmentDensityMapPropertiesEXT", "VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR", "VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV", "VkPhysicalDeviceFragmentShadingRatePropertiesKHR", "VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT", "VkPhysicalDeviceHostImageCopyPropertiesEXT", "VkPhysicalDeviceIDProperties", "VkPhysicalDeviceIDPropertiesKHR", "VkPhysicalDeviceImageAlignmentControlPropertiesMESA", "VkPhysicalDeviceImageProcessing2PropertiesQCOM", "VkPhysicalDeviceImageProcessingPropertiesQCOM", "VkPhysicalDeviceInlineUniformBlockProperties", "VkPhysicalDeviceInlineUniformBlockPropertiesEXT", "VkPhysicalDeviceLayeredApiPropertiesListKHR", "VkPhysicalDeviceLayeredDriverPropertiesMSFT", "VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT", "VkPhysicalDeviceLineRasterizationPropertiesEXT", "VkPhysicalDeviceLineRasterizationPropertiesKHR", "VkPhysicalDeviceMaintenance3Properties", "VkPhysicalDeviceMaintenance3PropertiesKHR", "VkPhysicalDeviceMaintenance4Properties", "VkPhysicalDeviceMaintenance4PropertiesKHR", "VkPhysicalDeviceMaintenance5PropertiesKHR", "VkPhysicalDeviceMaintenance6PropertiesKHR", "VkPhysicalDeviceMaintenance7PropertiesKHR", "VkPhysicalDeviceMapMemoryPlacedPropertiesEXT", "VkPhysicalDeviceMemoryDecompressionPropertiesNV", "VkPhysicalDeviceMeshShaderPropertiesEXT", "VkPhysicalDeviceMeshShaderPropertiesNV", "VkPhysicalDeviceMultiDrawPropertiesEXT", "VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX", "VkPhysicalDeviceMultiviewProperties", "VkPhysicalDeviceMultiviewPropertiesKHR", "VkPhysicalDeviceNestedCommandBufferPropertiesEXT", "VkPhysicalDeviceOpacityMicromapPropertiesEXT", "VkPhysicalDeviceOpticalFlowPropertiesNV", "VkPhysicalDevicePCIBusInfoPropertiesEXT", "VkPhysicalDevicePerformanceQueryPropertiesKHR", "VkPhysicalDevicePipelineBinaryPropertiesKHR", "VkPhysicalDevicePipelineRobustnessPropertiesEXT", "VkPhysicalDevicePointClippingProperties", "VkPhysicalDevicePointClippingPropertiesKHR", "VkPhysicalDevicePortabilitySubsetPropertiesKHR", "VkPhysicalDeviceProtectedMemoryProperties", "VkPhysicalDeviceProvokingVertexPropertiesEXT", "VkPhysicalDevicePushDescriptorPropertiesKHR", "VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV", "VkPhysicalDeviceRayTracingPipelinePropertiesKHR", "VkPhysicalDeviceRayTracingPropertiesNV", "VkPhysicalDeviceRenderPassStripedPropertiesARM", "VkPhysicalDeviceRobustness2PropertiesEXT", "VkPhysicalDeviceSampleLocationsPropertiesEXT", "VkPhysicalDeviceSamplerFilterMinmaxProperties", "VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT", "VkPhysicalDeviceSchedulingControlsPropertiesARM", "VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM", "VkPhysicalDeviceShaderCoreProperties2AMD", "VkPhysicalDeviceShaderCorePropertiesAMD", "VkPhysicalDeviceShaderCorePropertiesARM", "VkPhysicalDeviceShaderEnqueuePropertiesAMDX", "VkPhysicalDeviceShaderIntegerDotProductProperties", "VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR", "VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT", "VkPhysicalDeviceShaderObjectPropertiesEXT", "VkPhysicalDeviceShaderSMBuiltinsPropertiesNV", "VkPhysicalDeviceShaderTileImagePropertiesEXT", "VkPhysicalDeviceShadingRateImagePropertiesNV", "VkPhysicalDeviceSubgroupProperties", "VkPhysicalDeviceSubgroupSizeControlProperties", "VkPhysicalDeviceSubgroupSizeControlPropertiesEXT", "VkPhysicalDeviceSubpassShadingPropertiesHUAWEI", "VkPhysicalDeviceTexelBufferAlignmentProperties", "VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT", "VkPhysicalDeviceTimelineSemaphoreProperties", "VkPhysicalDeviceTimelineSemaphorePropertiesKHR", "VkPhysicalDeviceTransformFeedbackPropertiesEXT", "VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT", "VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR", "VkPhysicalDeviceVulkan11Properties", "VkPhysicalDeviceVulkan12Properties", "VkPhysicalDeviceVulkan13Properties", + "VkPhysicalDeviceAccelerationStructurePropertiesKHR", "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT", "VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI", "VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR", "VkPhysicalDeviceConservativeRasterizationPropertiesEXT", "VkPhysicalDeviceCooperativeMatrix2PropertiesNV", "VkPhysicalDeviceCooperativeMatrixPropertiesKHR", "VkPhysicalDeviceCooperativeMatrixPropertiesNV", "VkPhysicalDeviceCopyMemoryIndirectPropertiesNV", "VkPhysicalDeviceCudaKernelLaunchPropertiesNV", "VkPhysicalDeviceCustomBorderColorPropertiesEXT", "VkPhysicalDeviceDepthStencilResolveProperties", "VkPhysicalDeviceDepthStencilResolvePropertiesKHR", "VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT", "VkPhysicalDeviceDescriptorBufferPropertiesEXT", "VkPhysicalDeviceDescriptorIndexingProperties", "VkPhysicalDeviceDescriptorIndexingPropertiesEXT", "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT", "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV", "VkPhysicalDeviceDiscardRectanglePropertiesEXT", "VkPhysicalDeviceDisplacementMicromapPropertiesNV", "VkPhysicalDeviceDriverProperties", "VkPhysicalDeviceDriverPropertiesKHR", "VkPhysicalDeviceDrmPropertiesEXT", "VkPhysicalDeviceExtendedDynamicState3PropertiesEXT", "VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV", "VkPhysicalDeviceExternalFormatResolvePropertiesANDROID", "VkPhysicalDeviceExternalMemoryHostPropertiesEXT", "VkPhysicalDeviceFloatControlsProperties", "VkPhysicalDeviceFloatControlsPropertiesKHR", "VkPhysicalDeviceFragmentDensityMap2PropertiesEXT", "VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM", "VkPhysicalDeviceFragmentDensityMapPropertiesEXT", "VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR", "VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV", "VkPhysicalDeviceFragmentShadingRatePropertiesKHR", "VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT", "VkPhysicalDeviceHostImageCopyPropertiesEXT", "VkPhysicalDeviceIDProperties", "VkPhysicalDeviceIDPropertiesKHR", "VkPhysicalDeviceImageAlignmentControlPropertiesMESA", "VkPhysicalDeviceImageProcessing2PropertiesQCOM", "VkPhysicalDeviceImageProcessingPropertiesQCOM", "VkPhysicalDeviceInlineUniformBlockProperties", "VkPhysicalDeviceInlineUniformBlockPropertiesEXT", "VkPhysicalDeviceLayeredApiPropertiesListKHR", "VkPhysicalDeviceLayeredDriverPropertiesMSFT", "VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT", "VkPhysicalDeviceLineRasterizationPropertiesEXT", "VkPhysicalDeviceLineRasterizationPropertiesKHR", "VkPhysicalDeviceMaintenance3Properties", "VkPhysicalDeviceMaintenance3PropertiesKHR", "VkPhysicalDeviceMaintenance4Properties", "VkPhysicalDeviceMaintenance4PropertiesKHR", "VkPhysicalDeviceMaintenance5PropertiesKHR", "VkPhysicalDeviceMaintenance6PropertiesKHR", "VkPhysicalDeviceMaintenance7PropertiesKHR", "VkPhysicalDeviceMapMemoryPlacedPropertiesEXT", "VkPhysicalDeviceMemoryDecompressionPropertiesNV", "VkPhysicalDeviceMeshShaderPropertiesEXT", "VkPhysicalDeviceMeshShaderPropertiesNV", "VkPhysicalDeviceMultiDrawPropertiesEXT", "VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX", "VkPhysicalDeviceMultiviewProperties", "VkPhysicalDeviceMultiviewPropertiesKHR", "VkPhysicalDeviceNestedCommandBufferPropertiesEXT", "VkPhysicalDeviceOpacityMicromapPropertiesEXT", "VkPhysicalDeviceOpticalFlowPropertiesNV", "VkPhysicalDevicePCIBusInfoPropertiesEXT", "VkPhysicalDevicePerformanceQueryPropertiesKHR", "VkPhysicalDevicePipelineBinaryPropertiesKHR", "VkPhysicalDevicePipelineRobustnessPropertiesEXT", "VkPhysicalDevicePointClippingProperties", "VkPhysicalDevicePointClippingPropertiesKHR", "VkPhysicalDevicePortabilitySubsetPropertiesKHR", "VkPhysicalDeviceProtectedMemoryProperties", "VkPhysicalDeviceProvokingVertexPropertiesEXT", "VkPhysicalDevicePushDescriptorPropertiesKHR", "VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV", "VkPhysicalDeviceRayTracingPipelinePropertiesKHR", "VkPhysicalDeviceRayTracingPropertiesNV", "VkPhysicalDeviceRenderPassStripedPropertiesARM", "VkPhysicalDeviceRobustness2PropertiesEXT", "VkPhysicalDeviceSampleLocationsPropertiesEXT", "VkPhysicalDeviceSamplerFilterMinmaxProperties", "VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT", "VkPhysicalDeviceSchedulingControlsPropertiesARM", "VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM", "VkPhysicalDeviceShaderCoreProperties2AMD", "VkPhysicalDeviceShaderCorePropertiesAMD", "VkPhysicalDeviceShaderCorePropertiesARM", "VkPhysicalDeviceShaderEnqueuePropertiesAMDX", "VkPhysicalDeviceShaderIntegerDotProductProperties", "VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR", "VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT", "VkPhysicalDeviceShaderObjectPropertiesEXT", "VkPhysicalDeviceShaderSMBuiltinsPropertiesNV", "VkPhysicalDeviceShaderTileImagePropertiesEXT", "VkPhysicalDeviceShadingRateImagePropertiesNV", "VkPhysicalDeviceSubgroupProperties", "VkPhysicalDeviceSubgroupSizeControlProperties", "VkPhysicalDeviceSubgroupSizeControlPropertiesEXT", "VkPhysicalDeviceSubpassShadingPropertiesHUAWEI", "VkPhysicalDeviceTexelBufferAlignmentProperties", "VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT", "VkPhysicalDeviceTimelineSemaphoreProperties", "VkPhysicalDeviceTimelineSemaphorePropertiesKHR", "VkPhysicalDeviceTransformFeedbackPropertiesEXT", "VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT", "VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR", "VkPhysicalDeviceVulkan11Properties", "VkPhysicalDeviceVulkan12Properties", "VkPhysicalDeviceVulkan13Properties", prepend = true )..nullable..opaque_p("pNext", "{@code NULL} or a pointer to a structure extending this structure.").mutable() VkPhysicalDeviceProperties("properties", "a ##VkPhysicalDeviceProperties structure describing properties of the physical device. This structure is written with the same values as if it were written by #GetPhysicalDeviceProperties().") @@ -7182,7 +7192,7 @@ val VkRenderPassMultiviewCreateInfo = struct(Module.VULKAN, "VkRenderPassMultivi If the view mask is zero for all subpasses, multiview is considered to be disabled and all drawing commands execute normally, without this additional broadcasting. - Some implementations may not support multiview in conjunction with mesh shaders, geometry shaders or tessellation shaders. + Some implementations may not support multiview in conjunction with mesh shaders, geometry shaders or tessellation shaders. When multiview is enabled, the #DEPENDENCY_VIEW_LOCAL_BIT bit in a dependency can be used to express a view-local dependency, meaning that each view in the destination subpass depends on a single view in the source subpass. Unlike pipeline barriers, a subpass dependency can potentially have a different view mask in the source subpass and the destination subpass. If the dependency is view-local, then each view (dstView) in the destination subpass depends on the view dstView + pViewOffsets[dependency] in the source subpass. If there is not such a view in the source subpass, then this dependency does not affect that view in the destination subpass. If the dependency is not view-local, then all views in the destination subpass depend on all views in the source subpass, and the view offset is ignored. A non-zero view offset is not allowed in a self-dependency. @@ -7408,7 +7418,7 @@ val VkSamplerYcbcrConversionCreateInfo = struct(Module.VULKAN, "VkSamplerYcbcrCo
                Note
                Setting {@code forceExplicitReconstruction} to #TRUE may have a performance penalty on implementations where explicit reconstruction is not the default mode of operation. - If {@code format} supports #FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT the {@code forceExplicitReconstruction} value behaves as if it was set to #TRUE. + If {@code format} supports #FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT the {@code forceExplicitReconstruction} value behaves as if it were #TRUE.
                If the {@code pNext} chain includes a ##VkExternalFormatANDROID structure with non-zero {@code externalFormat} member, the sampler Y′CBCR conversion object represents an external format conversion, and {@code format} must be #FORMAT_UNDEFINED. Such conversions must only be used to sample image views with a matching external format. When creating an external format conversion, the value of {@code components} is ignored. @@ -7575,7 +7585,7 @@ val VkDescriptorUpdateTemplateEntry = struct(Module.VULKAN, "VkDescriptorUpdateT
                Valid Usage
                • {@code dstBinding} must be a valid binding in the descriptor set layout implicitly specified when using a descriptor update template to update descriptors
                • -
                • {@code dstArrayElement} and {@code descriptorCount} must be less than or equal to the number of array elements in the descriptor set binding implicitly specified when using a descriptor update template to update descriptors, and all applicable consecutive bindings, as described by consecutive binding updates
                • +
                • {@code dstArrayElement} and {@code descriptorCount} must be less than or equal to the number of array elements in the descriptor set binding implicitly specified when using a descriptor update template to update descriptors, and all applicable consecutive bindings
                • If {@code descriptor} type is #DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, {@code dstArrayElement} must be an integer multiple of 4
                • If {@code descriptor} type is #DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, {@code descriptorCount} must be an integer multiple of 4
                @@ -7905,7 +7915,7 @@ val VkExternalFenceProperties = struct(Module.VULKAN, "VkExternalFenceProperties Structure describing supported external fence handle features.
                Description
                - If {@code handleType} is not supported by the implementation, then ##VkExternalFenceProperties{@code ::externalFenceFeatures} will be set to zero. + If {@code handleType} is not supported by the implementation, then ##VkExternalFenceProperties{@code ::externalFenceFeatures} will be zero.
                Valid Usage (Implicit)
                  @@ -7999,7 +8009,7 @@ val VkExternalSemaphoreProperties = struct(Module.VULKAN, "VkExternalSemaphorePr Structure describing supported external semaphore handle features.
                  Description
                  - If {@code handleType} is not supported by the implementation, then ##VkExternalSemaphoreProperties{@code ::externalSemaphoreFeatures} will be set to zero. + If {@code handleType} is not supported by the implementation, then ##VkExternalSemaphoreProperties{@code ::externalSemaphoreFeatures} will be zero.
                  Valid Usage (Implicit)
                    @@ -8044,7 +8054,7 @@ val VkDescriptorSetLayoutSupport = struct(Module.VULKAN, "VkDescriptorSetLayoutS Structure returning information about whether a descriptor set layout can be supported.
                    Description
                    - {@code supported} is set to #TRUE if the descriptor set can be created, or else is set to #FALSE. + {@code supported} will be #TRUE if the descriptor set can be created, or else #FALSE.
                    Valid Usage (Implicit)
                      @@ -9128,7 +9138,7 @@ val VkDescriptorSetVariableDescriptorCountLayoutSupport = struct(Module.VULKAN, Structure returning information about whether a descriptor set layout can be supported.
                      Description
                      - If the ##VkDescriptorSetLayoutCreateInfo structure specified in #GetDescriptorSetLayoutSupport(){@code ::pCreateInfo} includes a variable-sized descriptor, then {@code supported} is determined assuming the requested size of the variable-sized descriptor, and {@code maxVariableDescriptorCount} is set to the maximum size of that descriptor that can be successfully created (which is greater than or equal to the requested size passed in). If the ##VkDescriptorSetLayoutCreateInfo structure does not include a variable-sized descriptor, or if the ##VkPhysicalDeviceDescriptorIndexingFeatures{@code ::descriptorBindingVariableDescriptorCount} feature is not enabled, then {@code maxVariableDescriptorCount} is set to zero. For the purposes of this command, a variable-sized descriptor binding with a {@code descriptorCount} of zero is treated as having a {@code descriptorCount} of four if {@code descriptorType} is #DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, or one otherwise, and thus the binding is not ignored and the maximum descriptor count will be returned. If the layout is not supported, then the value written to {@code maxVariableDescriptorCount} is undefined. + If the ##VkDescriptorSetLayoutCreateInfo structure specified in #GetDescriptorSetLayoutSupport(){@code ::pCreateInfo} includes a variable-sized descriptor, then {@code supported} is determined assuming the requested size of the variable-sized descriptor, and {@code maxVariableDescriptorCount} is the maximum size of that descriptor that can be successfully created (which is greater than or equal to the requested size passed in). If the ##VkDescriptorSetLayoutCreateInfo structure does not include a variable-sized descriptor, or if the ##VkPhysicalDeviceDescriptorIndexingFeatures{@code ::descriptorBindingVariableDescriptorCount} feature is not enabled, then {@code maxVariableDescriptorCount} is zero. For the purposes of this command, a variable-sized descriptor binding with a {@code descriptorCount} of zero is treated as having a {@code descriptorCount} of four if {@code descriptorType} is #DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, or one otherwise, and thus the binding is not ignored and the maximum descriptor count will be returned. If the layout is not supported, then the value written to {@code maxVariableDescriptorCount} is undefined.
                      Valid Usage (Implicit)
                        @@ -11262,7 +11272,7 @@ val VkCopyBufferToImageInfo2 = struct(Module.VULKAN, "VkCopyBufferToImageInfo2")
                        Valid Usage
                        • The image region specified by each element of {@code pRegions} that does not contain ##VkCopyCommandTransformInfoQCOM in its {@code pNext} chain must be contained within the specified {@code imageSubresource} of {@code dstImage}
                        • -
                        • If the image region specified by each element of {@code pRegions} contains ##VkCopyCommandTransformInfoQCOM in its {@code pNext} chain, the rotated destination region as described in Buffer and Image Addressing with Rotation must be contained within {@code dstImage}
                        • +
                        • If the image region specified by each element of {@code pRegions} contains ##VkCopyCommandTransformInfoQCOM in its {@code pNext} chain, the rotated destination region must be contained within {@code dstImage}
                        • If any element of {@code pRegions} contains ##VkCopyCommandTransformInfoQCOM in its {@code pNext} chain, then {@code dstImage} must have a 1x1x1 texel block extent
                        • If any element of {@code pRegions} contains ##VkCopyCommandTransformInfoQCOM in its {@code pNext} chain, then {@code dstImage} must be of type #IMAGE_TYPE_2D
                        • If any element of {@code pRegions} contains ##VkCopyCommandTransformInfoQCOM in its {@code pNext} chain, then {@code dstImage} must not have a multi-planar format
                        • @@ -11361,7 +11371,7 @@ val VkCopyImageToBufferInfo2 = struct(Module.VULKAN, "VkCopyImageToBufferInfo2")
                          Valid Usage
                          • The image region specified by each element of {@code pRegions} that does not contain ##VkCopyCommandTransformInfoQCOM in its {@code pNext} chain must be contained within the specified {@code imageSubresource} of {@code srcImage}
                          • -
                          • If the image region specified by each element of {@code pRegions} contains ##VkCopyCommandTransformInfoQCOM in its {@code pNext} chain, the rotated source region as described in Buffer and Image Addressing with Rotation must be contained within {@code srcImage}
                          • +
                          • If the image region specified by each element of {@code pRegions} contains ##VkCopyCommandTransformInfoQCOM in its {@code pNext} chain, the rotated source region must be contained within {@code srcImage}
                          • If any element of {@code pRegions} contains ##VkCopyCommandTransformInfoQCOM in its {@code pNext} chain, then {@code srcImage} must have a 1x1x1 texel block extent
                          • If any element of {@code pRegions} contains ##VkCopyCommandTransformInfoQCOM in its {@code pNext} chain, then {@code srcImage} must be of type #IMAGE_TYPE_2D
                          • If any element of {@code pRegions} contains ##VkCopyCommandTransformInfoQCOM in its {@code pNext} chain, then {@code srcImage} must not have a multi-planar format
                          • @@ -11989,7 +11999,7 @@ val VkRenderingInfo = struct(Module.VULKAN, "VkRenderingInfo") { If there is an instance of ##VkDeviceGroupRenderPassBeginInfo included in the {@code pNext} chain and its {@code deviceRenderAreaCount} member is not 0, then {@code renderArea} is ignored, and the render area is defined per-device by that structure. - If multiview is enabled, and the {@code multiviewPerViewRenderAreas} feature is enabled, and there is an instance of ##VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM included in the {@code pNext} chain with {@code perViewRenderAreaCount} not equal to 0, then the elements of ##VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM{@code ::pPerViewRenderAreas} override {@code renderArea} and define a render area for each view. In this case, {@code renderArea} must be set to an area at least as large as the union of all the per-view render areas. + If multiview is enabled, and the {@code multiviewPerViewRenderAreas} feature is enabled, and there is an instance of ##VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM included in the {@code pNext} chain with {@code perViewRenderAreaCount} not equal to 0, then the elements of ##VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM{@code ::pPerViewRenderAreas} override {@code renderArea} and define a render area for each view. In this case, {@code renderArea} must be an area at least as large as the union of all the per-view render areas. Each element of the {@code pColorAttachments} array corresponds to an output location in the shader, i.e. if the shader declares an output variable decorated with a {@code Location} value of X, then it uses the attachment provided in {@code pColorAttachments}[X]. If the {@code imageView} member of any element of {@code pColorAttachments} is #NULL_HANDLE, and {@code resolveMode} is not #RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, writes to the corresponding location by a fragment are discarded. diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/AMDX_shader_enqueue.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/AMDX_shader_enqueue.kt index 0ec1241193..30a7d6168d 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/AMDX_shader_enqueue.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/AMDX_shader_enqueue.kt @@ -11,7 +11,7 @@ import vulkan.* val AMDX_shader_enqueue = "AMDXShaderEnqueue".nativeClassVK("AMDX_shader_enqueue", type = "device", postfix = "AMDX") { documentation = """ - This extension adds the ability for developers to enqueue compute shader workgroups from other compute shaders. + This extension adds the ability for developers to enqueue mesh and compute shader workgroups from other compute shaders.
                            Name String
                            @@ -24,10 +24,10 @@ val AMDX_shader_enqueue = "AMDXShaderEnqueue".nativeClassVK("AMDX_shader_enqueue
                            135
                            Revision
                            -
                            1
                            +
                            2
                            Extension and Version Dependencies
                            -
                            {@link KHRGetPhysicalDeviceProperties2 VK_KHR_get_physical_device_properties2} or Version 1.1 and {@link KHRSynchronization2 VK_KHR_synchronization2} or Version 1.3 and {@link KHRPipelineLibrary VK_KHR_pipeline_library} and {@link KHRSpirv14 VK_KHR_spirv_1_4} +
                            {@link KHRSynchronization2 VK_KHR_synchronization2} and {@link KHRSpirv14 VK_KHR_spirv_1_4} and {@link EXTExtendedDynamicState VK_EXT_extended_dynamic_state} or Version 1.3 and {@link KHRMaintenance5 VK_KHR_maintenance5} and {@link KHRPipelineLibrary VK_KHR_pipeline_library}
                            • This is a provisional extension and must be used with caution. See the description of provisional header files for enablement and stability details.
                            • @@ -35,6 +35,7 @@ val AMDX_shader_enqueue = "AMDXShaderEnqueue".nativeClassVK("AMDX_shader_enqueue
                              API Interactions
                                +
                              • Interacts with VK_EXT_mesh_shader
                              • Interacts with VK_KHR_maintenance5
                              @@ -55,7 +56,7 @@ val AMDX_shader_enqueue = "AMDXShaderEnqueue".nativeClassVK("AMDX_shader_enqueue
                              Other Extension Metadata
                              Last Modified Date
                              -
                              2021-07-22
                              +
                              2024-07-17
                              Provisional
                              This extension is provisional and should not be used in production applications. The functionality may change in ways that break backwards compatibility between revisions, and before final release.
                              @@ -79,7 +80,7 @@ val AMDX_shader_enqueue = "AMDXShaderEnqueue".nativeClassVK("AMDX_shader_enqueue IntConstant( "The extension specification version.", - "AMDX_SHADER_ENQUEUE_SPEC_VERSION".."1" + "AMDX_SHADER_ENQUEUE_SPEC_VERSION".."2" ) StringConstant( @@ -122,6 +123,12 @@ val AMDX_shader_enqueue = "AMDXShaderEnqueue".nativeClassVK("AMDX_shader_enqueue "BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX".enum(0x02000000L) ) + EnumConstantLong( + "Extends {@code VkPipelineCreateFlagBits2KHR}.", + + "PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX".enum(0x100000000L) + ) + VkResult( "CreateExecutionGraphPipelinesAMDX", """ @@ -238,7 +245,7 @@ val AMDX_shader_enqueue = "AMDXShaderEnqueue".nativeClassVK("AMDX_shader_enqueue ##VkExecutionGraphPipelineScratchSizeAMDX """, - VkDevice("device", "the that {@code executionGraph} was created on."), + VkDevice("device", "the logical device that {@code executionGraph} was created on."), VkPipeline("executionGraph", "the execution graph pipeline to query the scratch space for."), VkExecutionGraphPipelineScratchSizeAMDX.p("pSizeInfo", "a pointer to a ##VkExecutionGraphPipelineScratchSizeAMDX structure that will contain the required scratch size.") ) @@ -294,7 +301,7 @@ val AMDX_shader_enqueue = "AMDXShaderEnqueue".nativeClassVK("AMDX_shader_enqueue ##VkPipelineShaderStageNodeCreateInfoAMDX """, - VkDevice("device", "the that {@code executionGraph} was created on."), + VkDevice("device", "the logical device that {@code executionGraph} was created on."), VkPipeline("executionGraph", "the execution graph pipeline to query the internal node index for."), VkPipelineShaderStageNodeCreateInfoAMDX.const.p("pNodeInfo", "a pointer to a ##VkPipelineShaderStageNodeCreateInfoAMDX structure identifying the name and index of the node to query."), Check(1)..uint32_t.p("pNodeIndex", "the returned internal node index of the identified node.") @@ -311,29 +318,33 @@ val AMDX_shader_enqueue = "AMDXShaderEnqueue".nativeClassVK("AMDX_shader_enqueue
                              
                               ￿void vkCmdInitializeGraphScratchMemoryAMDX(
                               ￿    VkCommandBuffer                             commandBuffer,
                              -￿    VkDeviceAddress                             scratch);
                              +￿ VkPipeline executionGraph, +￿ VkDeviceAddress scratch, +￿ VkDeviceSize scratchSize);
                              Description
                              This command must be called before using {@code scratch} to dispatch the currently bound execution graph pipeline. - Execution of this command may modify any memory locations in the range [{@code scratch},{@code scratch} + {@code size}), where {@code size} is the value returned in ##VkExecutionGraphPipelineScratchSizeAMDX{@code ::size} by ##VkExecutionGraphPipelineScratchSizeAMDX for the currently bound execution graph pipeline. Accesses to this memory range are performed in the #PIPELINE_STAGE_2_COMPUTE_SHADER_BIT pipeline stage with the #ACCESS_2_SHADER_STORAGE_READ_BIT and #ACCESS_2_SHADER_STORAGE_WRITE_BIT access flags. + Execution of this command may modify any memory locations in the range [{@code scratch},{@code scratch} + {@code scratchSize}). Accesses to this memory range are performed in the #PIPELINE_STAGE_2_COMPUTE_SHADER_BIT pipeline stage with the #ACCESS_2_SHADER_STORAGE_READ_BIT and #ACCESS_2_SHADER_STORAGE_WRITE_BIT access flags. - If any portion of {@code scratch} is modified by any command other than #CmdDispatchGraphAMDX(), #CmdDispatchGraphIndirectAMDX(), #CmdDispatchGraphIndirectCountAMDX(), or {@code vkCmdInitializeGraphScratchMemoryAMDX} with the same execution graph, it must be reinitialized for the execution graph again before dispatching against it. + If any portion of {@code scratch} is modified by any command other than #CmdDispatchGraphAMDX(), #CmdDispatchGraphIndirectAMDX(), #CmdDispatchGraphIndirectCountAMDX(), or #CmdInitializeGraphScratchMemoryAMDX() with the same execution graph, it must be reinitialized for the execution graph again before dispatching against it.
                              Valid Usage
                                -
                              • {@code scratch} must be the device address of an allocated memory range at least as large as the value of ##VkExecutionGraphPipelineScratchSizeAMDX{@code ::size} returned by ##VkExecutionGraphPipelineScratchSizeAMDX for the currently bound execution graph pipeline.
                              • +
                              • {@code scratch} must be the device address of an allocated memory range at least as large as {@code scratchSize}
                              • +
                              • {@code scratchSize} must be greater than or equal to ##VkExecutionGraphPipelineScratchSizeAMDX{@code ::minSize} returned by #GetExecutionGraphPipelineScratchSizeAMDX() for the currently bound execution graph pipeline
                              • {@code scratch} must be a multiple of 64
                              Valid Usage (Implicit)
                              • {@code commandBuffer} must be a valid {@code VkCommandBuffer} handle
                              • +
                              • {@code executionGraph} must be a valid {@code VkPipeline} handle
                              • {@code commandBuffer} must be in the recording state
                              • The {@code VkCommandPool} that {@code commandBuffer} was allocated from must support graphics, or compute operations
                              • -
                              • This command must only be called outside of a render pass instance
                              • This command must only be called outside of a video coding scope
                              • {@code commandBuffer} must be a primary {@code VkCommandBuffer}
                              • +
                              • Both of {@code commandBuffer}, and {@code executionGraph} must have been created, allocated, or retrieved from the same {@code VkDevice}
                              Host Synchronization
                              @@ -344,12 +355,14 @@ val AMDX_shader_enqueue = "AMDXShaderEnqueue".nativeClassVK("AMDX_shader_enqueue
                              Command Properties
                              - +
                              Command Buffer LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
                              PrimaryOutsideOutsideGraphics ComputeAction
                              PrimaryBothOutsideGraphics ComputeAction
                              """, VkCommandBuffer("commandBuffer", "the command buffer into which the command will be recorded."), - VkDeviceAddress("scratch", "a pointer to the scratch memory to be initialized.") + VkPipeline("executionGraph", "the execution graph pipeline to initialize the scratch memory for."), + VkDeviceAddress("scratch", "the address of scratch memory to be initialized."), + VkDeviceSize("scratchSize", "a range in bytes of scratch memory to be initialized.") ) void( @@ -364,14 +377,17 @@ val AMDX_shader_enqueue = "AMDXShaderEnqueue".nativeClassVK("AMDX_shader_enqueue ￿void vkCmdDispatchGraphAMDX( ￿ VkCommandBuffer commandBuffer, ￿ VkDeviceAddress scratch, +￿ VkDeviceSize scratchSize, ￿ const VkDispatchGraphCountInfoAMDX* pCountInfo);
                              Description
                              - When this command is executed, the nodes specified in {@code pCountInfo} are executed. Nodes executed as part of this command are not implicitly synchronized in any way against each other once they are dispatched. + When this command is executed, the nodes specified in {@code pCountInfo} are executed. Nodes executed as part of this command are not implicitly synchronized in any way against each other once they are dispatched. There are no rasterization order guarantees between separately dispatched graphics nodes, though individual primitives within a single dispatch do adhere to rasterization order. Draw calls executed before or after the execution graph also execute relative to each graphics node with respect to rasterization order. For this command, all device/host pointers in substructures are treated as host pointers and read only during host execution of this command. Once this command returns, no reference to the original pointers is retained. - Execution of this command may modify any memory locations in the range [{@code scratch},{@code scratch} + {@code size}), where {@code size} is the value returned in ##VkExecutionGraphPipelineScratchSizeAMDX{@code ::size} by ##VkExecutionGraphPipelineScratchSizeAMDX for the currently bound execution graph pipeline Accesses to this memory range are performed in the #PIPELINE_STAGE_2_COMPUTE_SHADER_BIT pipeline stage with the #ACCESS_2_SHADER_STORAGE_READ_BIT and #ACCESS_2_SHADER_STORAGE_WRITE_BIT access flags. + Execution of this command may modify any memory locations in the range [{@code scratch},{@code scratch} + {@code scratchSize}). Accesses to this memory range are performed in the #PIPELINE_STAGE_2_COMPUTE_SHADER_BIT pipeline stage with the #ACCESS_2_SHADER_STORAGE_READ_BIT and #ACCESS_2_SHADER_STORAGE_WRITE_BIT access flags. + + This command captures command buffer state for mesh nodes similarly to draw commands.
                              Valid Usage
                                @@ -412,7 +428,7 @@ val AMDX_shader_enqueue = "AMDXShaderEnqueue".nativeClassVK("AMDX_shader_enqueue
                              • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
                              • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
                              • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
                              • -
                              • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
                              • +
                              • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
                              • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                              • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                              • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                              • @@ -446,12 +462,14 @@ val AMDX_shader_enqueue = "AMDXShaderEnqueue".nativeClassVK("AMDX_shader_enqueue
                              • If a descriptor with type equal to any of #DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, #DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, #DESCRIPTOR_TYPE_SAMPLED_IMAGE, #DESCRIPTOR_TYPE_STORAGE_IMAGE, or #DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
                              • {@code commandBuffer} must not be a protected command buffer
                              • {@code commandBuffer} must be a primary command buffer
                              • -
                              • {@code scratch} must be the device address of an allocated memory range at least as large as the value of ##VkExecutionGraphPipelineScratchSizeAMDX{@code ::size} returned by ##VkExecutionGraphPipelineScratchSizeAMDX for the currently bound execution graph pipeline
                              • +
                              • {@code scratch} must be the device address of an allocated memory range at least as large as {@code scratchSize}
                              • +
                              • {@code scratchSize} must be greater than or equal to ##VkExecutionGraphPipelineScratchSizeAMDX{@code ::minSize} returned by #GetExecutionGraphPipelineScratchSizeAMDX() for the currently bound execution graph pipeline
                              • {@code scratch} must be a device address within a {@code VkBuffer} created with the #BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX or #BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX flag
                              • -
                              • Device memory in the range [{@code scratch},{@code scratch} ##VkExecutionGraphPipelineScratchSizeAMDX{@code ::size}) must have been initialized with #CmdInitializeGraphScratchMemoryAMDX() using the currently bound execution graph pipeline, and not modified after that by anything other than another execution graph dispatch command
                              • +
                              • The device memory range [{@code scratch},{@code scratch} {@code scratchSize}] must have been initialized with #CmdInitializeGraphScratchMemoryAMDX() using the currently bound execution graph pipeline, and not modified after that by anything other than another execution graph dispatch command
                              • Execution of this command must not cause a node to be dispatched with a larger number of workgroups than that specified by either a {@code MaxNumWorkgroupsAMDX} decoration in the dispatched node or {@code maxComputeWorkGroupCount}
                              • Execution of this command must not cause any shader to initialize more than {@code maxExecutionGraphShaderPayloadCount} output payloads
                              • Execution of this command must not cause any shader that declares {@code NodeMaxPayloadsAMDX} to initialize more output payloads than specified by the max number of payloads for that decoration. This requirement applies to each {@code NodeMaxPayloadsAMDX} decoration separately
                              • +
                              • If the currently bound execution graph pipeline includes draw nodes, this command must be called within a render pass instance that is compatible with the graphics pipeline used to create each of those nodes
                              • {@code pCountInfo→infos} must be a host pointer to a memory allocation at least as large as the product of {@code count} and {@code stride}
                              • Host memory locations at indexes in the range [{@code infos}, {@code infos} + ({@code count}*{@code stride})), at a granularity of {@code stride} must contain valid ##VkDispatchGraphInfoAMDX structures in the first 24 bytes
                              • For each ##VkDispatchGraphInfoAMDX structure in {@code pCountInfo→infos}, {@code payloads} must be a host pointer to a memory allocation at least as large as the product of {@code payloadCount} and {@code payloadStride}
                              • @@ -465,7 +483,6 @@ val AMDX_shader_enqueue = "AMDXShaderEnqueue".nativeClassVK("AMDX_shader_enqueue
                              • {@code pCountInfo} must be a valid pointer to a valid ##VkDispatchGraphCountInfoAMDX structure
                              • {@code commandBuffer} must be in the recording state
                              • The {@code VkCommandPool} that {@code commandBuffer} was allocated from must support graphics, or compute operations
                              • -
                              • This command must only be called outside of a render pass instance
                              • This command must only be called outside of a video coding scope
                              • {@code commandBuffer} must be a primary {@code VkCommandBuffer}
                              @@ -478,7 +495,7 @@ val AMDX_shader_enqueue = "AMDXShaderEnqueue".nativeClassVK("AMDX_shader_enqueue
                              Command Properties
                              - +
                              Command Buffer LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
                              PrimaryOutsideOutsideGraphics ComputeAction
                              PrimaryBothOutsideGraphics ComputeAction
                              See Also
                              @@ -486,7 +503,8 @@ val AMDX_shader_enqueue = "AMDXShaderEnqueue".nativeClassVK("AMDX_shader_enqueue """, VkCommandBuffer("commandBuffer", "the command buffer into which the command will be recorded."), - VkDeviceAddress("scratch", "a pointer to the scratch memory to be used."), + VkDeviceAddress("scratch", "the address of scratch memory to be used."), + VkDeviceSize("scratchSize", "a range in bytes of scratch memory to be used."), VkDispatchGraphCountInfoAMDX.const.p("pCountInfo", "a host pointer to a ##VkDispatchGraphCountInfoAMDX structure defining the nodes which will be initially executed.") ) @@ -502,14 +520,17 @@ val AMDX_shader_enqueue = "AMDXShaderEnqueue".nativeClassVK("AMDX_shader_enqueue ￿void vkCmdDispatchGraphIndirectAMDX( ￿ VkCommandBuffer commandBuffer, ￿ VkDeviceAddress scratch, +￿ VkDeviceSize scratchSize, ￿ const VkDispatchGraphCountInfoAMDX* pCountInfo);
                              Description
                              - When this command is executed, the nodes specified in {@code pCountInfo} are executed. Nodes executed as part of this command are not implicitly synchronized in any way against each other once they are dispatched. + When this command is executed, the nodes specified in {@code pCountInfo} are executed. Nodes executed as part of this command are not implicitly synchronized in any way against each other once they are dispatched. There are no rasterization order guarantees between separately dispatched graphics nodes, though individual primitives within a single dispatch do adhere to rasterization order. Draw calls executed before or after the execution graph also execute relative to each graphics node with respect to rasterization order. For this command, all device/host pointers in substructures are treated as device pointers and read during device execution of this command. The allocation and contents of these pointers only needs to be valid during device execution. All of these addresses will be read in the #PIPELINE_STAGE_2_COMPUTE_SHADER_BIT pipeline stage with the #ACCESS_2_SHADER_STORAGE_READ_BIT access flag. - Execution of this command may modify any memory locations in the range [{@code scratch},{@code scratch} + {@code size}), where {@code size} is the value returned in ##VkExecutionGraphPipelineScratchSizeAMDX{@code ::size} by ##VkExecutionGraphPipelineScratchSizeAMDX for the currently bound execution graph pipeline. Accesses to this memory range are performed in the #PIPELINE_STAGE_2_COMPUTE_SHADER_BIT pipeline stage with the #ACCESS_2_SHADER_STORAGE_READ_BIT and #ACCESS_2_SHADER_STORAGE_WRITE_BIT access flags. + Execution of this command may modify any memory locations in the range [{@code scratch},{@code scratch} + {@code scratchSize}). Accesses to this memory range are performed in the #PIPELINE_STAGE_2_COMPUTE_SHADER_BIT pipeline stage with the #ACCESS_2_SHADER_STORAGE_READ_BIT and #ACCESS_2_SHADER_STORAGE_WRITE_BIT access flags. + + This command captures command buffer state for mesh nodes similarly to draw commands.
                              Valid Usage
                                @@ -550,7 +571,7 @@ val AMDX_shader_enqueue = "AMDXShaderEnqueue".nativeClassVK("AMDX_shader_enqueue
                              • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
                              • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
                              • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
                              • -
                              • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
                              • +
                              • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
                              • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                              • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                              • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                              • @@ -584,12 +605,14 @@ val AMDX_shader_enqueue = "AMDXShaderEnqueue".nativeClassVK("AMDX_shader_enqueue
                              • If a descriptor with type equal to any of #DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, #DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, #DESCRIPTOR_TYPE_SAMPLED_IMAGE, #DESCRIPTOR_TYPE_STORAGE_IMAGE, or #DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
                              • {@code commandBuffer} must not be a protected command buffer
                              • {@code commandBuffer} must be a primary command buffer
                              • -
                              • {@code scratch} must be the device address of an allocated memory range at least as large as the value of ##VkExecutionGraphPipelineScratchSizeAMDX{@code ::size} returned by ##VkExecutionGraphPipelineScratchSizeAMDX for the currently bound execution graph pipeline
                              • +
                              • {@code scratch} must be the device address of an allocated memory range at least as large as {@code scratchSize}
                              • +
                              • {@code scratchSize} must be greater than or equal to ##VkExecutionGraphPipelineScratchSizeAMDX{@code ::minSize} returned by #GetExecutionGraphPipelineScratchSizeAMDX() for the currently bound execution graph pipeline
                              • {@code scratch} must be a device address within a {@code VkBuffer} created with the #BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX or #BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX flag
                              • -
                              • Device memory in the range [{@code scratch},{@code scratch} ##VkExecutionGraphPipelineScratchSizeAMDX{@code ::size}) must have been initialized with #CmdInitializeGraphScratchMemoryAMDX() using the currently bound execution graph pipeline, and not modified after that by anything other than another execution graph dispatch command
                              • +
                              • The device memory range [{@code scratch},{@code scratch} {@code scratchSize}] must have been initialized with #CmdInitializeGraphScratchMemoryAMDX() using the currently bound execution graph pipeline, and not modified after that by anything other than another execution graph dispatch command
                              • Execution of this command must not cause a node to be dispatched with a larger number of workgroups than that specified by either a {@code MaxNumWorkgroupsAMDX} decoration in the dispatched node or {@code maxComputeWorkGroupCount}
                              • Execution of this command must not cause any shader to initialize more than {@code maxExecutionGraphShaderPayloadCount} output payloads
                              • Execution of this command must not cause any shader that declares {@code NodeMaxPayloadsAMDX} to initialize more output payloads than specified by the max number of payloads for that decoration. This requirement applies to each {@code NodeMaxPayloadsAMDX} decoration separately
                              • +
                              • If the currently bound execution graph pipeline includes draw nodes, this command must be called within a render pass instance that is compatible with the graphics pipeline used to create each of those nodes
                              • {@code pCountInfo→infos} must be a device pointer to a memory allocation at least as large as the product of {@code count} and {@code stride} when this command is executed on the device
                              • {@code pCountInfo→infos} must be a device address within a {@code VkBuffer} created with the #BUFFER_USAGE_INDIRECT_BUFFER_BIT flag
                              • {@code pCountInfo→infos} must be a multiple of {@code executionGraphDispatchAddressAlignment}
                              • @@ -607,7 +630,6 @@ val AMDX_shader_enqueue = "AMDXShaderEnqueue".nativeClassVK("AMDX_shader_enqueue
                              • {@code pCountInfo} must be a valid pointer to a valid ##VkDispatchGraphCountInfoAMDX structure
                              • {@code commandBuffer} must be in the recording state
                              • The {@code VkCommandPool} that {@code commandBuffer} was allocated from must support graphics, or compute operations
                              • -
                              • This command must only be called outside of a render pass instance
                              • This command must only be called outside of a video coding scope
                              • {@code commandBuffer} must be a primary {@code VkCommandBuffer}
                              @@ -620,7 +642,7 @@ val AMDX_shader_enqueue = "AMDXShaderEnqueue".nativeClassVK("AMDX_shader_enqueue
                              Command Properties
                              - +
                              Command Buffer LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
                              PrimaryOutsideOutsideGraphics ComputeAction
                              PrimaryBothOutsideGraphics ComputeAction
                              See Also
                              @@ -628,7 +650,8 @@ val AMDX_shader_enqueue = "AMDXShaderEnqueue".nativeClassVK("AMDX_shader_enqueue """, VkCommandBuffer("commandBuffer", "the command buffer into which the command will be recorded."), - VkDeviceAddress("scratch", "a pointer to the scratch memory to be used."), + VkDeviceAddress("scratch", "the address of scratch memory to be used."), + VkDeviceSize("scratchSize", "a range in bytes of scratch memory to be used."), VkDispatchGraphCountInfoAMDX.const.p("pCountInfo", "a host pointer to a ##VkDispatchGraphCountInfoAMDX structure defining the nodes which will be initially executed.") ) @@ -644,6 +667,7 @@ val AMDX_shader_enqueue = "AMDXShaderEnqueue".nativeClassVK("AMDX_shader_enqueue ￿void vkCmdDispatchGraphIndirectCountAMDX( ￿ VkCommandBuffer commandBuffer, ￿ VkDeviceAddress scratch, +￿ VkDeviceSize scratchSize, ￿ VkDeviceAddress countInfo);
                              Description
                              @@ -651,7 +675,7 @@ val AMDX_shader_enqueue = "AMDXShaderEnqueue".nativeClassVK("AMDX_shader_enqueue For this command, all pointers in substructures are treated as device pointers and read during device execution of this command. The allocation and contents of these pointers only needs to be valid during device execution. All of these addresses will be read in the #PIPELINE_STAGE_2_COMPUTE_SHADER_BIT pipeline stage with the #ACCESS_2_SHADER_STORAGE_READ_BIT access flag. - Execution of this command may modify any memory locations in the range [{@code scratch},{@code scratch} + {@code size}), where {@code size} is the value returned in ##VkExecutionGraphPipelineScratchSizeAMDX{@code ::size} by ##VkExecutionGraphPipelineScratchSizeAMDX for the currently bound execution graph pipeline. Accesses to this memory range are performed in the #PIPELINE_STAGE_2_COMPUTE_SHADER_BIT pipeline stage with the #ACCESS_2_SHADER_STORAGE_READ_BIT and #ACCESS_2_SHADER_STORAGE_WRITE_BIT access flags. + Execution of this command may modify any memory locations in the range [{@code scratch},{@code scratch} + {@code scratchSize}). Accesses to this memory range are performed in the #PIPELINE_STAGE_2_COMPUTE_SHADER_BIT pipeline stage with the #ACCESS_2_SHADER_STORAGE_READ_BIT and #ACCESS_2_SHADER_STORAGE_WRITE_BIT access flags.
                              Valid Usage
                                @@ -692,7 +716,7 @@ val AMDX_shader_enqueue = "AMDXShaderEnqueue".nativeClassVK("AMDX_shader_enqueue
                              • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
                              • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
                              • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
                              • -
                              • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
                              • +
                              • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
                              • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                              • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                              • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                              • @@ -726,12 +750,14 @@ val AMDX_shader_enqueue = "AMDXShaderEnqueue".nativeClassVK("AMDX_shader_enqueue
                              • If a descriptor with type equal to any of #DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, #DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, #DESCRIPTOR_TYPE_SAMPLED_IMAGE, #DESCRIPTOR_TYPE_STORAGE_IMAGE, or #DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, the image subresource identified by that descriptor must be in the image layout identified when the descriptor was written
                              • {@code commandBuffer} must not be a protected command buffer
                              • {@code commandBuffer} must be a primary command buffer
                              • -
                              • {@code scratch} must be the device address of an allocated memory range at least as large as the value of ##VkExecutionGraphPipelineScratchSizeAMDX{@code ::size} returned by ##VkExecutionGraphPipelineScratchSizeAMDX for the currently bound execution graph pipeline
                              • +
                              • {@code scratch} must be the device address of an allocated memory range at least as large as {@code scratchSize}
                              • +
                              • {@code scratchSize} must be greater than or equal to ##VkExecutionGraphPipelineScratchSizeAMDX{@code ::minSize} returned by #GetExecutionGraphPipelineScratchSizeAMDX() for the currently bound execution graph pipeline
                              • {@code scratch} must be a device address within a {@code VkBuffer} created with the #BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX or #BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX flag
                              • -
                              • Device memory in the range [{@code scratch},{@code scratch} ##VkExecutionGraphPipelineScratchSizeAMDX{@code ::size}) must have been initialized with #CmdInitializeGraphScratchMemoryAMDX() using the currently bound execution graph pipeline, and not modified after that by anything other than another execution graph dispatch command
                              • +
                              • The device memory range [{@code scratch},{@code scratch} {@code scratchSize}] must have been initialized with #CmdInitializeGraphScratchMemoryAMDX() using the currently bound execution graph pipeline, and not modified after that by anything other than another execution graph dispatch command
                              • Execution of this command must not cause a node to be dispatched with a larger number of workgroups than that specified by either a {@code MaxNumWorkgroupsAMDX} decoration in the dispatched node or {@code maxComputeWorkGroupCount}
                              • Execution of this command must not cause any shader to initialize more than {@code maxExecutionGraphShaderPayloadCount} output payloads
                              • Execution of this command must not cause any shader that declares {@code NodeMaxPayloadsAMDX} to initialize more output payloads than specified by the max number of payloads for that decoration. This requirement applies to each {@code NodeMaxPayloadsAMDX} decoration separately
                              • +
                              • If the currently bound execution graph pipeline includes draw nodes, this command must be called within a render pass instance that is compatible with the graphics pipeline used to create each of those nodes
                              • {@code countInfo} must be a device pointer to a memory allocation containing a valid ##VkDispatchGraphCountInfoAMDX structure when this command is executed on the device
                              • {@code countInfo} must be a device address within a {@code VkBuffer} created with the #BUFFER_USAGE_INDIRECT_BUFFER_BIT flag
                              • {@code countInfo} must be a multiple of {@code executionGraphDispatchAddressAlignment}
                              • @@ -751,7 +777,6 @@ val AMDX_shader_enqueue = "AMDXShaderEnqueue".nativeClassVK("AMDX_shader_enqueue
                              • {@code commandBuffer} must be a valid {@code VkCommandBuffer} handle
                              • {@code commandBuffer} must be in the recording state
                              • The {@code VkCommandPool} that {@code commandBuffer} was allocated from must support graphics, or compute operations
                              • -
                              • This command must only be called outside of a render pass instance
                              • This command must only be called outside of a video coding scope
                              • {@code commandBuffer} must be a primary {@code VkCommandBuffer}
                              @@ -764,12 +789,13 @@ val AMDX_shader_enqueue = "AMDXShaderEnqueue".nativeClassVK("AMDX_shader_enqueue
                              Command Properties
                              - +
                              Command Buffer LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
                              PrimaryOutsideOutsideGraphics ComputeAction
                              PrimaryBothOutsideGraphics ComputeAction
                              """, VkCommandBuffer("commandBuffer", "the command buffer into which the command will be recorded."), - VkDeviceAddress("scratch", "a pointer to the scratch memory to be used."), + VkDeviceAddress("scratch", "the address of scratch memory to be used."), + VkDeviceSize("scratchSize", "a range in bytes of scratch memory to be used."), VkDeviceAddress("countInfo", "a device address of a ##VkDispatchGraphCountInfoAMDX structure defining the nodes which will be initially executed.") ) } \ No newline at end of file diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/AMD_buffer_marker.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/AMD_buffer_marker.kt index fd91a09b32..65322508da 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/AMD_buffer_marker.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/AMD_buffer_marker.kt @@ -31,6 +31,12 @@ val AMD_buffer_marker = "AMDBufferMarker".nativeClassVK("AMD_buffer_marker", typ
                              Revision
                              1
                              +
                              API Interactions
                              +
                                +
                              • Interacts with VK_VERSION_1_3
                              • +
                              • Interacts with VK_KHR_synchronization2
                              • +
                              +
                              Special Use
                              • Developer tools
                              • @@ -149,4 +155,86 @@ val AMD_buffer_marker = "AMDBufferMarker".nativeClassVK("AMD_buffer_marker", typ VkDeviceSize("dstOffset", "the byte offset into the buffer where the marker will be written to."), uint32_t("marker", "the 32-bit value of the marker.") ) + + DependsOn("""ext.contains("Vulkan13") || ext.contains("VK_KHR_synchronization2")""")..void( + "CmdWriteBufferMarker2AMD", + """ + Execute a pipelined write of a marker value into a buffer. + +
                                C Specification
                                + To write a 32-bit marker value into a buffer as a pipelined operation, call: + +
                                
                                +￿void vkCmdWriteBufferMarker2AMD(
                                +￿    VkCommandBuffer                             commandBuffer,
                                +￿    VkPipelineStageFlags2                       stage,
                                +￿    VkBuffer                                    dstBuffer,
                                +￿    VkDeviceSize                                dstOffset,
                                +￿    uint32_t                                    marker);
                                + +
                                Description
                                + The command will write the 32-bit marker value into the buffer only after all preceding commands have finished executing up to at least the specified pipeline stage. This includes the completion of other preceding {@code vkCmdWriteBufferMarker2AMD} commands so long as their specified pipeline stages occur either at the same time or earlier than this command’s specified {@code stage}. + + While consecutive buffer marker writes with the same {@code stage} parameter implicitly complete in submission order, memory and execution dependencies between buffer marker writes and other operations must still be explicitly ordered using synchronization commands. The access scope for buffer marker writes falls under the #ACCESS_TRANSFER_WRITE_BIT, and the pipeline stages for identifying the synchronization scope must include both {@code stage} and #PIPELINE_STAGE_TRANSFER_BIT. + +
                                Note
                                + Similar to {@code vkCmdWriteTimestamp2}, if an implementation is unable to write a marker at any specific pipeline stage, it may instead do so at any logically later stage. +
                                + +
                                Note
                                + Implementations may only support a limited number of pipelined marker write operations in flight at a given time. Thus an excessive number of marker write operations may degrade command execution performance. +
                                + +
                                Valid Usage
                                +
                                  +
                                • If the {@code geometryShader} feature is not enabled, {@code stage} must not contain #PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
                                • +
                                • If the {@code tessellationShader} feature is not enabled, {@code stage} must not contain #PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or #PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT
                                • +
                                • If the {@code conditionalRendering} feature is not enabled, {@code stage} must not contain #PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
                                • +
                                • If the {@code fragmentDensityMap} feature is not enabled, {@code stage} must not contain #PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
                                • +
                                • If the {@code transformFeedback} feature is not enabled, {@code stage} must not contain #PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
                                • +
                                • If the {@code meshShader} feature is not enabled, {@code stage} must not contain #PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
                                • +
                                • If the {@code taskShader} feature is not enabled, {@code stage} must not contain #PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
                                • +
                                • If neither the {@code shadingRateImage} or {@code attachmentFragmentShadingRate} are enabled, {@code stage} must not contain #PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
                                • +
                                • If the {@code subpassShading} feature is not enabled, {@code stage} must not contain #PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI
                                • +
                                • If the {@code invocationMask} feature is not enabled, {@code stage} must not contain #PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
                                • +
                                • If neither the {@link NVRayTracing VK_NV_ray_tracing} extension or {@code rayTracingPipeline} feature are enabled, {@code stage} must not contain #PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
                                • +
                                • The {@code synchronization2} feature must be enabled
                                • +
                                • {@code stage} must include only a single pipeline stage
                                • +
                                • {@code stage} must include only stages that are valid for the queue family that was used to create the command pool that {@code commandBuffer} was allocated from
                                • +
                                • {@code dstOffset} must be less than or equal to the size of {@code dstBuffer} minus 4
                                • +
                                • {@code dstBuffer} must have been created with the #BUFFER_USAGE_TRANSFER_DST_BIT usage flag
                                • +
                                • If {@code dstBuffer} is non-sparse then it must be bound completely and contiguously to a single {@code VkDeviceMemory} object
                                • +
                                • {@code dstOffset} must be a multiple of 4
                                • +
                                + +
                                Valid Usage (Implicit)
                                +
                                  +
                                • {@code commandBuffer} must be a valid {@code VkCommandBuffer} handle
                                • +
                                • {@code stage} must be a valid combination of {@code VkPipelineStageFlagBits2} values
                                • +
                                • {@code dstBuffer} must be a valid {@code VkBuffer} handle
                                • +
                                • {@code commandBuffer} must be in the recording state
                                • +
                                • The {@code VkCommandPool} that {@code commandBuffer} was allocated from must support transfer, graphics, or compute operations
                                • +
                                • This command must only be called outside of a video coding scope
                                • +
                                • Both of {@code commandBuffer}, and {@code dstBuffer} must have been created, allocated, or retrieved from the same {@code VkDevice}
                                • +
                                + +
                                Host Synchronization
                                +
                                  +
                                • Host access to {@code commandBuffer} must be externally synchronized
                                • +
                                • Host access to the {@code VkCommandPool} that {@code commandBuffer} was allocated from must be externally synchronized
                                • +
                                + +
                                Command Properties
                                + + + +
                                Command Buffer LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
                                Primary SecondaryBothOutsideTransfer Graphics ComputeAction
                                + """, + + VkCommandBuffer("commandBuffer", "the command buffer into which the command will be recorded."), + VkPipelineStageFlags2("stage", "specifies the pipeline stage whose completion triggers the marker write."), + VkBuffer("dstBuffer", "the buffer where the marker will be written."), + VkDeviceSize("dstOffset", "the byte offset into the buffer where the marker will be written."), + uint32_t("marker", "the 32-bit value of the marker.") + ) } \ No newline at end of file diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/AMD_gpu_shader_half_float.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/AMD_gpu_shader_half_float.kt index 2c5fa607b8..404a0c45b4 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/AMD_gpu_shader_half_float.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/AMD_gpu_shader_half_float.kt @@ -14,7 +14,7 @@ val AMD_gpu_shader_half_float = "AMDGPUShaderHalfFloat".nativeClassVK("AMD_gpu_s This extension adds support for using half float variables in shaders.
                                Deprecation by {@code VK_KHR_shader_float16_int8}
                                - Functionality in this extension was included in {@link KHRShaderFloat16Int8 VK_KHR_shader_float16_int8} extension, when ##VkPhysicalDeviceShaderFloat16Int8FeaturesKHR{@code ::shaderFloat16} is enabled. + Functionality in this extension is included in the {@link KHRShaderFloat16Int8 VK_KHR_shader_float16_int8} extension, when the {@code shaderFloat16} feature is enabled.
                                Name String
                                diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/AMD_gpu_shader_int16.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/AMD_gpu_shader_int16.kt index 8cb3f619fa..b54c63beb3 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/AMD_gpu_shader_int16.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/AMD_gpu_shader_int16.kt @@ -14,7 +14,7 @@ val AMD_gpu_shader_int16 = "AMDGPUShaderInt16".nativeClassVK("AMD_gpu_shader_int This extension adds support for using 16-bit integer variables in shaders.
                                Deprecation by {@code VK_KHR_shader_float16_int8}
                                - Functionality in this extension was included in {@link KHRShaderFloat16Int8 VK_KHR_shader_float16_int8} extension, when ##VkPhysicalDeviceFeatures{@code ::shaderInt16} and ##VkPhysicalDeviceShaderFloat16Int8FeaturesKHR{@code ::shaderFloat16} are enabled. + Functionality in this extension is included in the {@link KHRShaderFloat16Int8 VK_KHR_shader_float16_int8} extension, when the {@code shaderInt16} and {@code shaderFloat16} features are enabled.
                                Name String
                                diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/AMD_mixed_attachment_samples.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/AMD_mixed_attachment_samples.kt index 0a43f248c6..a8e5898b19 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/AMD_mixed_attachment_samples.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/AMD_mixed_attachment_samples.kt @@ -26,6 +26,12 @@ val AMD_mixed_attachment_samples = "AMDMixedAttachmentSamples".nativeClassVK("AM
                                Revision
                                1
                                +
                                API Interactions
                                +
                                  +
                                • Interacts with VK_VERSION_1_3
                                • +
                                • Interacts with VK_KHR_dynamic_rendering
                                • +
                                +
                                Contact
                                • Matthaeus G. Chajdas anteru
                                • @@ -58,4 +64,10 @@ val AMD_mixed_attachment_samples = "AMDMixedAttachmentSamples".nativeClassVK("AM "AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME".."VK_AMD_mixed_attachment_samples" ) + + EnumConstant( + "Extends {@code VkStructureType}.", + + "STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD".."1000044008" + ) } \ No newline at end of file diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/AMD_negative_viewport_height.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/AMD_negative_viewport_height.kt index a1c664c194..38599e1b1a 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/AMD_negative_viewport_height.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/AMD_negative_viewport_height.kt @@ -18,7 +18,7 @@ val AMD_negative_viewport_height = "AMDNegativeViewportHeight".nativeClassVK("AM
                                Obsoletion by {@code VK_KHR_maintenance1} and Vulkan 1.1
                                - Functionality in this extension is included in {@code VK_KHR_maintenance1} and subsequently Vulkan 1.1. Due to some slight behavioral differences, this extension must not be enabled alongside {@code VK_KHR_maintenance1}, or in an instance created with version 1.1 or later requested in ##VkApplicationInfo{@code ::apiVersion}. + Functionality in this extension is included in the {@link KHRMaintenance1 VK_KHR_maintenance1} extension and subsequently Vulkan 1.1. Due to some slight behavioral differences, this extension must not be enabled alongside {@code VK_KHR_maintenance1}, or in an instance created with version 1.1 or later requested in ##VkApplicationInfo{@code ::apiVersion}.
                                Name String
                                diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_acquire_drm_display.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_acquire_drm_display.kt index 139f012378..d4c4569751 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_acquire_drm_display.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_acquire_drm_display.kt @@ -123,7 +123,7 @@ val EXT_acquire_drm_display = "EXTAcquireDrmDisplay".nativeClassVK("EXT_acquire_ ￿ VkDisplayKHR* display);
                                Description
                                - If there is no {@code VkDisplayKHR} corresponding to the {@code connectorId} on the {@code physicalDevice}, the returning {@code display} must be set to #NULL_HANDLE. The provided {@code drmFd} must correspond to the one owned by the {@code physicalDevice}. If not, the error code #ERROR_UNKNOWN must be returned. Master permissions are not required, because the file descriptor is just used for information gathering purposes. The given {@code connectorId} must be a resource owned by the provided {@code drmFd}. If not, the error code #ERROR_UNKNOWN must be returned. If any error is encountered during the identification of the display, the call must return the error code #ERROR_INITIALIZATION_FAILED. + If there is no {@code VkDisplayKHR} corresponding to the {@code connectorId} on the {@code physicalDevice}, the returning {@code display} must be #NULL_HANDLE. The provided {@code drmFd} must correspond to the one owned by the {@code physicalDevice}. If not, the error code #ERROR_UNKNOWN must be returned. Master permissions are not required, because the file descriptor is just used for information gathering purposes. The given {@code connectorId} must be a resource owned by the provided {@code drmFd}. If not, the error code #ERROR_UNKNOWN must be returned. If any error is encountered during the identification of the display, the call must return the error code #ERROR_INITIALIZATION_FAILED.
                                Valid Usage (Implicit)
                                  diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_attachment_feedback_loop_dynamic_state.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_attachment_feedback_loop_dynamic_state.kt index cc9b8068ee..d59717105e 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_attachment_feedback_loop_dynamic_state.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_attachment_feedback_loop_dynamic_state.kt @@ -29,6 +29,12 @@ val EXT_attachment_feedback_loop_dynamic_state = "EXTAttachmentFeedbackLoopDynam
                                  Extension and Version Dependencies
                                  {@link KHRGetPhysicalDeviceProperties2 VK_KHR_get_physical_device_properties2} or Version 1.1 and {@link EXTAttachmentFeedbackLoopLayout VK_EXT_attachment_feedback_loop_layout}
                                  +
                                  Special Uses
                                  +
                                  +
                                  Contact
                                  • Mike Blumenkrantz zmike
                                  • diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_attachment_feedback_loop_layout.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_attachment_feedback_loop_layout.kt index 351e129bd3..381500cf29 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_attachment_feedback_loop_layout.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_attachment_feedback_loop_layout.kt @@ -29,6 +29,12 @@ val EXT_attachment_feedback_loop_layout = "EXTAttachmentFeedbackLoopLayout".nati
                                    Extension and Version Dependencies
                                    {@link KHRGetPhysicalDeviceProperties2 VK_KHR_get_physical_device_properties2} or Version 1.1
                                    +
                                    Special Uses
                                    +
                                    +
                                    Contact
                                    • Joshua Ashton Joshua-Ashton
                                    • diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_depth_clamp_control.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_depth_clamp_control.kt index af8cc128e5..1ed1f6ba52 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_depth_clamp_control.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_depth_clamp_control.kt @@ -96,7 +96,7 @@ val EXT_depth_clamp_control = "EXTDepthClampControl".nativeClassVK("EXT_depth_cl
                                      Valid Usage
                                        -
                                      • If {@code depthClampMode} is set to #DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT, then {@code pDepthClampRange} must be a valid pointer to a valid ##VkDepthClampRangeEXT structure.
                                      • +
                                      • If {@code depthClampMode} is #DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT, then {@code pDepthClampRange} must be a valid pointer to a valid ##VkDepthClampRangeEXT structure
                                      Valid Usage (Implicit)
                                      @@ -127,6 +127,6 @@ val EXT_depth_clamp_control = "EXTDepthClampControl".nativeClassVK("EXT_depth_cl VkCommandBuffer("commandBuffer", "the command buffer into which the command will be recorded."), VkDepthClampModeEXT("depthClampMode", "determines how the clamp range is determined for each viewport."), - nullable..VkDepthClampRangeEXT.const.p("pDepthClampRange", "sets the depth clamp range for all viewports if {@code depthClampMode} is set to #DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT.") + nullable..VkDepthClampRangeEXT.const.p("pDepthClampRange", "sets the depth clamp range for all viewports if {@code depthClampMode} is #DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT.") ) } \ No newline at end of file diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_descriptor_indexing.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_descriptor_indexing.kt index c2ede66911..46a9b25455 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_descriptor_indexing.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_descriptor_indexing.kt @@ -25,7 +25,7 @@ val EXT_descriptor_indexing = "EXTDescriptorIndexing".nativeClassVK("EXT_descrip There are new descriptor set layout and descriptor pool creation flags that are required to opt in to the update-after-bind functionality, and there are separate {@code maxPerStage}* and {@code maxDescriptorSet}* limits that apply to these descriptor set layouts which may be much higher than the pre-existing limits. The old limits only count descriptors in non-updateAfterBind descriptor set layouts, and the new limits count descriptors in all descriptor set layouts in the pipeline layout.
                                      Promotion to Vulkan 1.2
                                      - Functionality in this extension is included in core Vulkan 1.2, with the EXT suffix omitted. However, if Vulkan 1.2 is supported and this extension is not, the {@code descriptorIndexing} capability is optional. The original type, enum, and command names are still available as aliases of the core functionality. + Vulkan APIs in this extension are included in core Vulkan 1.2, with the EXT suffix omitted. However, if Vulkan 1.2 is supported and this extension is not, the {@code descriptorIndexing} capability is optional. External interactions defined by this extension, such as SPIR-V token names, retain their original names. The original Vulkan API names are still available as aliases of the core functionality.
                                      Name String
                                      diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_device_generated_commands.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_device_generated_commands.kt index 9fa3b46b1e..18c40ee021 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_device_generated_commands.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_device_generated_commands.kt @@ -49,7 +49,12 @@ val EXT_device_generated_commands = "EXTDeviceGeneratedCommands".nativeClassVK("
                                    • updates to bound shader stages
                                    - For each trace rays in a sequence, the following can be specified: * a number of different push constants * updates to bound shader stages + For each trace rays in a sequence, the following can be specified: + +
                                      +
                                    • a number of different push constants
                                    • +
                                    • updates to bound shader stages
                                    • +
                                    While the GPU can be faster than a CPU to generate the commands, it will not happen asynchronously to the device, therefore the primary use case is generating “{@code less}” total work (occlusion culling, classification to use specialized shaders, etc.). @@ -350,7 +355,7 @@ val EXT_device_generated_commands = "EXTDeviceGeneratedCommands".nativeClassVK("
                                  • {@code pGeneratedCommandsInfo}’s {@code indirectCommandsLayout} must have been created with the #INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT bit set
                                  • If the token sequence of the passed ##VkGeneratedCommandsInfoEXT{@code ::indirectCommandsLayout} contains a #INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT token, the initial shader state of ##VkGeneratedCommandsInfoEXT{@code ::indirectExecutionSet} must be bound on {@code stateCommandBuffer}
                                  • {@code stateCommandBuffer} must be in the recording state
                                  • -
                                  • The ##VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT{@code ::deviceGeneratedCommands} feature must be enabled
                                  • +
                                  • The ##VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT{@code ::deviceGeneratedCommands} feature must be enabled
                                  • Only stages specified in ##VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT{@code ::supportedIndirectCommandsShaderStages} can be set in {@code pGeneratedCommandsInfo→shaderStages}
                                  @@ -459,7 +464,7 @@ val EXT_device_generated_commands = "EXTDeviceGeneratedCommands".nativeClassVK("
                                • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
                                • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
                                • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
                                • -
                                • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
                                • +
                                • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
                                • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                                • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                                • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                                • @@ -564,6 +569,7 @@ val EXT_device_generated_commands = "EXTDeviceGeneratedCommands".nativeClassVK("
                                • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilReference() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ##VkPhysicalDeviceMultiviewProperties{@code ::maxMultiviewInstanceIndex}
                                • If the bound graphics pipeline was created with ##VkPipelineSampleLocationsStateCreateInfoEXT{@code ::sampleLocationsEnable} set to #TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the #IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
                                • +
                                • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code sampleLocationsEnable} is #TRUE, then #CmdSetSampleLocationsEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetCullMode() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetFrontFace() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • @@ -573,10 +579,9 @@ val EXT_device_generated_commands = "EXTDeviceGeneratedCommands".nativeClassVK("
                                • If the {@code depthBounds} feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDepthBoundsTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetStencilTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilOp() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • -
                                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then #CmdSetViewportWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::scissorCount} of the pipeline
                                • -
                                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::viewportCount} of the pipeline
                                • -
                                • If the bound graphics pipeline state was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
                                • -
                                • If a shader object is bound to any graphics stage, then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
                                • +
                                • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetViewportWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • +
                                • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetScissorWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing
                                • +
                                • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled, and the state is not inherited, then the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
                                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with ##VkPipelineViewportWScalingStateCreateInfoNV{@code ::viewportCount} greater or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
                                • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then #CmdSetViewportWScalingNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then the {@code viewportCount} parameter in the last call to #CmdSetViewportWScalingNV() must be greater than or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
                                • @@ -642,11 +647,9 @@ val EXT_device_generated_commands = "EXTDeviceGeneratedCommands".nativeClassVK("
                                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the {@code attachmentCount} parameter of {@code vkCmdSetColorWriteEnableEXT} must be greater than or equal to the ##VkPipelineColorBlendStateCreateInfo{@code ::attachmentCount} of the currently bound graphics pipeline
                                • If the {@code colorWriteEnable} feature is enabled on the device, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then the {@code attachmentCount} parameter of most recent call to {@code vkCmdSetColorWriteEnableEXT} in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
                                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in ##VkPipelineDiscardRectangleStateCreateInfoEXT{@code ::discardRectangleCount}
                                • -
                                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • +
                                • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • +
                                • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code discardRectangleEnable} is #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • -
                                • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • -
                                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • -
                                • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to #FORMAT_UNDEFINED
                                • If current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}
                                • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is enabled, ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, and the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}, the value of the format must be #FORMAT_UNDEFINED
                                • @@ -688,21 +691,18 @@ val EXT_device_generated_commands = "EXTDeviceGeneratedCommands".nativeClassVK("
                                • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetConservativeRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code conservativeRasterizationMode} is #CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then #CmdSetExtraPrimitiveOverestimationSizeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • If the {@code depthClipEnable} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then #CmdSetDepthClipEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • -
                                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • -
                                • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • If the {@link EXTBlendOperationAdvanced VK_EXT_blend_operation_advanced} extension is enabled, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then at least one of #CmdSetColorBlendEquationEXT() and #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • If the {@link EXTProvokingVertex VK_EXT_provoking_vertex} extension is enabled, a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetProvokingVertexModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • -
                                • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • -
                                • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • -
                                • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • +
                                • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • +
                                • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • +
                                • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • -
                                • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • -
                                • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • -
                                • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • -
                                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • -
                                • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetLineStippleEnableEXT() in the current command buffer set {@code stippledLineEnable} to #TRUE, then #CmdSetLineStippleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • +
                                • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • +
                                • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • +
                                • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • +
                                • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled and a shader object is bound to any graphics stage, or a bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code stippledLineEnable} is #TRUE, then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • If the {@code depthClipControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then #CmdSetDepthClipNegativeOneToOneEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • If the {@code depthClampControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of {@code depthClampEnable} is #TRUE, then #CmdSetDepthClampRangeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then #CmdSetViewportWScalingEnableNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                                • @@ -720,7 +720,7 @@ val EXT_device_generated_commands = "EXTDeviceGeneratedCommands".nativeClassVK("
                                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must follow the rules for a zero-attachment subpass
                                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the ##VkPipelineMultisampleStateCreateInfo{@code ::rasterizationSamples} parameter used to create the bound graphics pipeline
                                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state and #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the {@code rasterizationSamples} parameter in the last call to #CmdSetRasterizationSamplesEXT()
                                • -
                                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
                                • +
                                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the {@code multisampledRenderToSingleSampled} feature is not enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
                                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a ##VkMultisampledRenderToSingleSampledInfoEXT structure with {@code multisampledRenderToSingleSampledEnable} equal to #TRUE, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the {@code rasterizationSamples} member of that structure
                                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
                                • If a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
                                • @@ -785,11 +785,12 @@ val EXT_device_generated_commands = "EXTDeviceGeneratedCommands".nativeClassVK("
                                  • {@code commandBuffer} must not be a protected command buffer
                                  • -
                                  • If {@code isPreprocessed} is #TRUE and #GetGeneratedCommandsMemoryRequirementsEXT() did not return a required size of zero then #CmdPreprocessGeneratedCommandsEXT() must have already been executed on the device before this command executes, and the preprocessing command must have used the same {@code pGeneratedCommandsInfo} content as well as the content of the input buffers it references (all except ##VkGeneratedCommandsInfoEXT{@code ::preprocessBuffer}).
                                  • +
                                  • If {@code isPreprocessed} is #TRUE and #GetGeneratedCommandsMemoryRequirementsEXT() did not return a required size of zero then #CmdPreprocessGeneratedCommandsEXT() must have already been executed on the device before this command executes, and the preprocessing command must have used the same {@code pGeneratedCommandsInfo} content as well as the content of the input buffers it references (all except ##VkGeneratedCommandsInfoEXT{@code ::preprocessBuffer})
                                  • If {@code isPreprocessed} is #TRUE then the {@code indirectCommandsLayout} member of {@code pGeneratedCommandsInfo} must have been created with the #INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT bit set
                                  • If the {@code indirectCommandsLayout} member of {@code pGeneratedCommandsInfo} was created with the #INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT bit set, then {@code isPreprocessed} must be #TRUE
                                  • The contents of the {@code preprocessAddress} member of {@code pGeneratedCommandsInfo} must not have been previously used to record another #CmdExecuteGeneratedCommandsEXT()
                                  • -
                                  • If {@code isPreprocessed} is #TRUE then the bound descriptor sets and push constants must match identically with those bound during recording of the corresponding call to #CmdPreprocessGeneratedCommandsEXT().
                                  • +
                                  • If {@code isPreprocessed} is #TRUE then the bound descriptor sets and push constants must match identically with those bound during recording of the corresponding call to #CmdPreprocessGeneratedCommandsEXT()
                                  • +
                                  • If {@code isPreprocessed} is #TRUE then the conditional render state and its predicate value must match identically with the state and value set during execution of the corresponding call to #CmdPreprocessGeneratedCommandsEXT()
                                  • If {@code isPreprocessed} is #TRUE and the {@code indirectCommandsLayout} member of {@code pGeneratedCommandsInfo} contains a draw token, then the graphics state bound on {@code commandBuffer} must match identically with the graphics state bound on the {@code stateCommandBuffer} passed to #CmdPreprocessGeneratedCommandsEXT()
                                  • If {@code isPreprocessed} is #TRUE, then the queue family index of {@code commandBuffer} must be the same as the queue family index used to allocate the {@code stateCommandBuffer} passed to #CmdPreprocessGeneratedCommandsEXT()
                                  • If {@code isPreprocessed} is #TRUE and the {@code indirectCommandsLayout} member of {@code pGeneratedCommandsInfo} contains a dispatch token, then the compute state bound on {@code commandBuffer} must match identically with the compute state bound on the {@code stateCommandBuffer} passed to #CmdPreprocessGeneratedCommandsEXT()
                                  • @@ -801,10 +802,10 @@ val EXT_device_generated_commands = "EXTDeviceGeneratedCommands".nativeClassVK("
                                  • If the {@code indirectCommandsLayout} member of {@code pGeneratedCommandsInfo} contains a draw token, then the active render pass must not have a specified fragment density map
                                  • If {@code deviceGeneratedCommandsTransformFeedback} is not supported on device, transform feedback must not be active
                                  • If transform feedback is active, ##VkGeneratedCommandsInfoEXT{@code ::indirectExecutionSet} must be #NULL_HANDLE
                                  • -
                                  • The ##VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT{@code ::deviceGeneratedCommands} feature must be enabled
                                  • +
                                  • The ##VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT{@code ::deviceGeneratedCommands} feature must be enabled
                                  • The currently bound shader stages must be supported by ##VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT{@code ::supportedIndirectCommandsShaderStages}
                                  • Only stages specified in ##VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT{@code ::supportedIndirectCommandsShaderStages} can be set in {@code pGeneratedCommandsInfo→shaderStages}
                                  • -
                                  • If a rendering pass is currently active, the view mask must be 0.
                                  • +
                                  • If a rendering pass is currently active, the view mask must be 0
                                  • {@code commandBuffer} must not have been created with #COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
                                  @@ -856,7 +857,7 @@ val EXT_device_generated_commands = "EXTDeviceGeneratedCommands".nativeClassVK("
                                  Valid Usage
                                  Valid Usage (Implicit)
                                  @@ -951,7 +952,7 @@ val EXT_device_generated_commands = "EXTDeviceGeneratedCommands".nativeClassVK("
                                  Valid Usage
                                  Valid Usage (Implicit)
                                  diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_extended_dynamic_state3.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_extended_dynamic_state3.kt index d543a710c5..8ea26ced28 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_extended_dynamic_state3.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_extended_dynamic_state3.kt @@ -48,6 +48,12 @@ val EXT_extended_dynamic_state3 = "EXTExtendedDynamicState3".nativeClassVK("EXT_
                                • Interacts with VK_NV_representative_fragment_test
                                • Interacts with VK_NV_shading_rate_image
                                • Interacts with VK_NV_viewport_swizzle
                                • +
                                • Interacts with VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3AlphaToOneEnable
                                • +
                                • Interacts with VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3DepthClampEnable
                                • +
                                • Interacts with VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3LogicOpEnable
                                • +
                                • Interacts with VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3PolygonMode
                                • +
                                • Interacts with VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3TessellationDomainOrigin
                                • +
                                • Interacts with VkPhysicalDeviceMeshShaderFeaturesEXT::extendedDynamicState3RasterizationStream
                                Contact
                                @@ -1004,7 +1010,7 @@ val EXT_extended_dynamic_state3 = "EXTExtendedDynamicState3".nativeClassVK("EXT_ ￿ VkBool32 depthClipEnable);
                                Description
                                - This command sets whether depth clipping is enabled or disabled for subsequent drawing commands when drawing using shader objects, or when the graphics pipeline is created with #DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT set in ##VkPipelineDynamicStateCreateInfo{@code ::pDynamicStates}. Otherwise, this state is specified by the ##VkPipelineRasterizationDepthClipStateCreateInfoEXT{@code ::depthClipEnable} value used to create the currently active pipeline, or is set to the inverse of ##VkPipelineRasterizationStateCreateInfo{@code ::depthClampEnable} if ##VkPipelineRasterizationDepthClipStateCreateInfoEXT is not specified. + This command sets whether depth clipping is enabled or disabled for subsequent drawing commands when drawing using shader objects, or when the graphics pipeline is created with #DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT set in ##VkPipelineDynamicStateCreateInfo{@code ::pDynamicStates}. Otherwise, this state is specified by the ##VkPipelineRasterizationDepthClipStateCreateInfoEXT{@code ::depthClipEnable} value used to create the currently active pipeline, or by the inverse of ##VkPipelineRasterizationStateCreateInfo{@code ::depthClampEnable} if ##VkPipelineRasterizationDepthClipStateCreateInfoEXT is not specified.
                                Valid Usage
                                  diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_fragment_density_map.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_fragment_density_map.kt index 6f9844a3cf..6f07f857e6 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_fragment_density_map.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_fragment_density_map.kt @@ -34,6 +34,7 @@ val EXT_fragment_density_map = "EXTFragmentDensityMap".nativeClassVK("EXT_fragme
                                  API Interactions
                                  • Interacts with VK_VERSION_1_3
                                  • +
                                  • Interacts with VK_KHR_dynamic_rendering
                                  • Interacts with VK_KHR_format_feature_flags2
                                  @@ -149,4 +150,17 @@ val EXT_fragment_density_map = "EXTFragmentDensityMap".nativeClassVK("EXT_fragme "FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT".enum(0x01000000L) ) + + EnumConstant( + "Extends {@code VkPipelineCreateFlagBits}.", + + "PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT".enum(0x00400000), + "PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT".enum(0x00400000) + ) + + EnumConstant( + "Extends {@code VkStructureType}.", + + "STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT".."1000044007" + ) } \ No newline at end of file diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_host_image_copy.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_host_image_copy.kt index 8a2b99471d..46f14dc702 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_host_image_copy.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_host_image_copy.kt @@ -130,11 +130,6 @@ val EXT_host_image_copy = "EXTHostImageCopy".nativeClassVK("EXT_host_image_copy" Because queue submissions automatically make host memory visible to the device, there would not be a need for a memory barrier before using the results of this copy operation on the device.
              -
              Valid Usage
              - -
              Valid Usage (Implicit)
              • {@code device} must be a valid {@code VkDevice} handle
              • @@ -185,11 +180,6 @@ val EXT_host_image_copy = "EXTHostImageCopy".nativeClassVK("EXT_host_image_copy" If the device has written to the image memory, it is not automatically made available to the host. Before this copy command can be called, a memory barrier for this image must have been issued on the device with the second synchronization scope including #PIPELINE_STAGE_HOST_BIT and #ACCESS_HOST_READ_BIT. -
                Valid Usage
                - -
                Valid Usage (Implicit)
                • {@code device} must be a valid {@code VkDevice} handle
                • @@ -242,11 +232,6 @@ val EXT_host_image_copy = "EXTHostImageCopy".nativeClassVK("EXT_host_image_copy" Because queue submissions automatically make host memory visible to the device, there would not be a need for a memory barrier before using the results of this copy operation in {@code pCopyMemoryToImageInfo→dstImage} on the device. -
                  Valid Usage
                  - -
                  Valid Usage (Implicit)
                  • {@code device} must be a valid {@code VkDevice} handle
                  • diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_image_robustness.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_image_robustness.kt index 7e426610bf..83e23bf278 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_image_robustness.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_image_robustness.kt @@ -14,7 +14,7 @@ val EXT_image_robustness = "EXTImageRobustness".nativeClassVK("EXT_image_robustn This extension adds stricter requirements for how out of bounds reads from images are handled. Rather than returning undefined values, most out of bounds reads return R, G, and B values of zero and alpha values of either zero or one. Components not present in the image format may be set to zero or to values based on the format as described in Conversion to RGBA.
                    Promotion to Vulkan 1.3
                    - Functionality in this extension is included in core Vulkan 1.3, with the EXT suffix omitted. The original type, enum, and command names are still available as aliases of the core functionality. + Vulkan APIs in this extension are included in core Vulkan 1.3, with the EXT suffix omitted. External interactions defined by this extension, such as SPIR-V token names, retain their original names. The original Vulkan API names are still available as aliases of the core functionality.
                    Examples
                    None. diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_inline_uniform_block.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_inline_uniform_block.kt index eb6e4a3058..643434de41 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_inline_uniform_block.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_inline_uniform_block.kt @@ -14,7 +14,7 @@ val EXT_inline_uniform_block = "EXTInlineUniformBlock".nativeClassVK("EXT_inline This extension introduces the ability to back uniform blocks directly with descriptor sets by storing inline uniform data within descriptor pool storage. Compared to push constants this new construct allows uniform data to be reused across multiple disjoint sets of drawing or dispatching commands and may enable uniform data to be accessed with fewer indirections compared to uniforms backed by buffer memory.
                    Promotion to Vulkan 1.3
                    - Functionality in this extension is included in core Vulkan 1.3, with the EXT suffix omitted. The original type, enum, and command names are still available as aliases of the core functionality. + Vulkan APIs in this extension are included in core Vulkan 1.3, with the EXT suffix omitted. External interactions defined by this extension, such as SPIR-V token names, retain their original names. The original Vulkan API names are still available as aliases of the core functionality. Vulkan 1.3 adds additional functionality related to this extension in the form of the {@code maxInlineUniformTotalSize} limit. @@ -36,7 +36,9 @@ val EXT_inline_uniform_block = "EXTInlineUniformBlock".nativeClassVK("EXT_inline
                    API Interactions
                      +
                    • Interacts with VK_VERSION_1_2
                    • Interacts with VK_EXT_descriptor_indexing
                    • +
                    • Interacts with VkPhysicalDeviceVulkan12Features::descriptorIndexing
                    Deprecation State
                    diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_mesh_shader.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_mesh_shader.kt index 838683b261..b3cc909816 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_mesh_shader.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_mesh_shader.kt @@ -38,7 +38,9 @@ val EXT_mesh_shader = "EXTMeshShader".nativeClassVK("EXT_mesh_shader", type = "d
                    API Interactions
                    • Interacts with VK_EXT_device_generated_commands
                    • +
                    • Interacts with VK_KHR_fragment_shading_rate
                    • Interacts with VK_NV_device_generated_commands
                    • +
                    • Interacts with VkPhysicalDeviceMeshShaderFeaturesEXT::primitiveFragmentShadingRateMeshShader
                    SPIR-V Dependencies
                    @@ -213,7 +215,7 @@ val EXT_mesh_shader = "EXTMeshShader".nativeClassVK("EXT_mesh_shader", type = "d
                  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
                  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
                  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
                  • -
                  • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
                  • +
                  • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
                  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                  • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                  • @@ -318,6 +320,7 @@ val EXT_mesh_shader = "EXTMeshShader".nativeClassVK("EXT_mesh_shader", type = "d
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilReference() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ##VkPhysicalDeviceMultiviewProperties{@code ::maxMultiviewInstanceIndex}
                  • If the bound graphics pipeline was created with ##VkPipelineSampleLocationsStateCreateInfoEXT{@code ::sampleLocationsEnable} set to #TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the #IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
                  • +
                  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code sampleLocationsEnable} is #TRUE, then #CmdSetSampleLocationsEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetCullMode() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetFrontFace() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • @@ -327,10 +330,9 @@ val EXT_mesh_shader = "EXTMeshShader".nativeClassVK("EXT_mesh_shader", type = "d
                  • If the {@code depthBounds} feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDepthBoundsTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetStencilTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilOp() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then #CmdSetViewportWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::scissorCount} of the pipeline
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::viewportCount} of the pipeline
                  • -
                  • If the bound graphics pipeline state was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
                  • -
                  • If a shader object is bound to any graphics stage, then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
                  • +
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetViewportWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetScissorWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing
                  • +
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled, and the state is not inherited, then the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with ##VkPipelineViewportWScalingStateCreateInfoNV{@code ::viewportCount} greater or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
                  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then #CmdSetViewportWScalingNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then the {@code viewportCount} parameter in the last call to #CmdSetViewportWScalingNV() must be greater than or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
                  • @@ -396,11 +398,9 @@ val EXT_mesh_shader = "EXTMeshShader".nativeClassVK("EXT_mesh_shader", type = "d
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the {@code attachmentCount} parameter of {@code vkCmdSetColorWriteEnableEXT} must be greater than or equal to the ##VkPipelineColorBlendStateCreateInfo{@code ::attachmentCount} of the currently bound graphics pipeline
                  • If the {@code colorWriteEnable} feature is enabled on the device, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then the {@code attachmentCount} parameter of most recent call to {@code vkCmdSetColorWriteEnableEXT} in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in ##VkPipelineDiscardRectangleStateCreateInfoEXT{@code ::discardRectangleCount}
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code discardRectangleEnable} is #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to #FORMAT_UNDEFINED
                  • If current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}
                  • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is enabled, ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, and the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}, the value of the format must be #FORMAT_UNDEFINED
                  • @@ -442,21 +442,18 @@ val EXT_mesh_shader = "EXTMeshShader".nativeClassVK("EXT_mesh_shader", type = "d
                  • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetConservativeRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code conservativeRasterizationMode} is #CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then #CmdSetExtraPrimitiveOverestimationSizeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@code depthClipEnable} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then #CmdSetDepthClipEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link EXTBlendOperationAdvanced VK_EXT_blend_operation_advanced} extension is enabled, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then at least one of #CmdSetColorBlendEquationEXT() and #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link EXTProvokingVertex VK_EXT_provoking_vertex} extension is enabled, a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetProvokingVertexModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetLineStippleEnableEXT() in the current command buffer set {@code stippledLineEnable} to #TRUE, then #CmdSetLineStippleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled and a shader object is bound to any graphics stage, or a bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code stippledLineEnable} is #TRUE, then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@code depthClipControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then #CmdSetDepthClipNegativeOneToOneEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@code depthClampControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of {@code depthClampEnable} is #TRUE, then #CmdSetDepthClampRangeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then #CmdSetViewportWScalingEnableNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • @@ -474,7 +471,7 @@ val EXT_mesh_shader = "EXTMeshShader".nativeClassVK("EXT_mesh_shader", type = "d
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must follow the rules for a zero-attachment subpass
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the ##VkPipelineMultisampleStateCreateInfo{@code ::rasterizationSamples} parameter used to create the bound graphics pipeline
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state and #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the {@code rasterizationSamples} parameter in the last call to #CmdSetRasterizationSamplesEXT()
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
                  • +
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the {@code multisampledRenderToSingleSampled} feature is not enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a ##VkMultisampledRenderToSingleSampledInfoEXT structure with {@code multisampledRenderToSingleSampledEnable} equal to #TRUE, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the {@code rasterizationSamples} member of that structure
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
                  • If a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
                  • @@ -538,7 +535,7 @@ val EXT_mesh_shader = "EXTMeshShader".nativeClassVK("EXT_mesh_shader", type = "d
                    -
                  • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of an element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_VERTEX_BIT, #SHADER_STAGE_TESSELLATION_CONTROL_BIT, #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT
                  • +
                  • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of any element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_VERTEX_BIT, #SHADER_STAGE_TESSELLATION_CONTROL_BIT, #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT
                  • Transform Feedback Queries must not be active
                  • Primitives Generated Queries must not be active
                  • The {@code pipelineStatistics} member used to create any active Pipeline Statistics Query must not contain #QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, #QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, #QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, #QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, #QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, #QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, #QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, #QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or #QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT
                  • @@ -645,7 +642,7 @@ val EXT_mesh_shader = "EXTMeshShader".nativeClassVK("EXT_mesh_shader", type = "d
                  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
                  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
                  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
                  • -
                  • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
                  • +
                  • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
                  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                  • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                  • @@ -750,6 +747,7 @@ val EXT_mesh_shader = "EXTMeshShader".nativeClassVK("EXT_mesh_shader", type = "d
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilReference() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ##VkPhysicalDeviceMultiviewProperties{@code ::maxMultiviewInstanceIndex}
                  • If the bound graphics pipeline was created with ##VkPipelineSampleLocationsStateCreateInfoEXT{@code ::sampleLocationsEnable} set to #TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the #IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
                  • +
                  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code sampleLocationsEnable} is #TRUE, then #CmdSetSampleLocationsEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetCullMode() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetFrontFace() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • @@ -759,10 +757,9 @@ val EXT_mesh_shader = "EXTMeshShader".nativeClassVK("EXT_mesh_shader", type = "d
                  • If the {@code depthBounds} feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDepthBoundsTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetStencilTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilOp() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then #CmdSetViewportWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::scissorCount} of the pipeline
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::viewportCount} of the pipeline
                  • -
                  • If the bound graphics pipeline state was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
                  • -
                  • If a shader object is bound to any graphics stage, then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
                  • +
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetViewportWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetScissorWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing
                  • +
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled, and the state is not inherited, then the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with ##VkPipelineViewportWScalingStateCreateInfoNV{@code ::viewportCount} greater or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
                  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then #CmdSetViewportWScalingNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then the {@code viewportCount} parameter in the last call to #CmdSetViewportWScalingNV() must be greater than or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
                  • @@ -828,11 +825,9 @@ val EXT_mesh_shader = "EXTMeshShader".nativeClassVK("EXT_mesh_shader", type = "d
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the {@code attachmentCount} parameter of {@code vkCmdSetColorWriteEnableEXT} must be greater than or equal to the ##VkPipelineColorBlendStateCreateInfo{@code ::attachmentCount} of the currently bound graphics pipeline
                  • If the {@code colorWriteEnable} feature is enabled on the device, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then the {@code attachmentCount} parameter of most recent call to {@code vkCmdSetColorWriteEnableEXT} in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in ##VkPipelineDiscardRectangleStateCreateInfoEXT{@code ::discardRectangleCount}
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code discardRectangleEnable} is #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to #FORMAT_UNDEFINED
                  • If current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}
                  • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is enabled, ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, and the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}, the value of the format must be #FORMAT_UNDEFINED
                  • @@ -874,21 +869,18 @@ val EXT_mesh_shader = "EXTMeshShader".nativeClassVK("EXT_mesh_shader", type = "d
                  • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetConservativeRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code conservativeRasterizationMode} is #CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then #CmdSetExtraPrimitiveOverestimationSizeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@code depthClipEnable} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then #CmdSetDepthClipEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link EXTBlendOperationAdvanced VK_EXT_blend_operation_advanced} extension is enabled, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then at least one of #CmdSetColorBlendEquationEXT() and #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link EXTProvokingVertex VK_EXT_provoking_vertex} extension is enabled, a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetProvokingVertexModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetLineStippleEnableEXT() in the current command buffer set {@code stippledLineEnable} to #TRUE, then #CmdSetLineStippleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled and a shader object is bound to any graphics stage, or a bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code stippledLineEnable} is #TRUE, then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@code depthClipControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then #CmdSetDepthClipNegativeOneToOneEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@code depthClampControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of {@code depthClampEnable} is #TRUE, then #CmdSetDepthClampRangeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then #CmdSetViewportWScalingEnableNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • @@ -906,7 +898,7 @@ val EXT_mesh_shader = "EXTMeshShader".nativeClassVK("EXT_mesh_shader", type = "d
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must follow the rules for a zero-attachment subpass
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the ##VkPipelineMultisampleStateCreateInfo{@code ::rasterizationSamples} parameter used to create the bound graphics pipeline
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state and #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the {@code rasterizationSamples} parameter in the last call to #CmdSetRasterizationSamplesEXT()
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
                  • +
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the {@code multisampledRenderToSingleSampled} feature is not enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a ##VkMultisampledRenderToSingleSampledInfoEXT structure with {@code multisampledRenderToSingleSampledEnable} equal to #TRUE, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the {@code rasterizationSamples} member of that structure
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
                  • If a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
                  • @@ -970,7 +962,7 @@ val EXT_mesh_shader = "EXTMeshShader".nativeClassVK("EXT_mesh_shader", type = "d
                    -
                  • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of an element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_VERTEX_BIT, #SHADER_STAGE_TESSELLATION_CONTROL_BIT, #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT
                  • +
                  • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of any element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_VERTEX_BIT, #SHADER_STAGE_TESSELLATION_CONTROL_BIT, #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT
                  • Transform Feedback Queries must not be active
                  • Primitives Generated Queries must not be active
                  • The {@code pipelineStatistics} member used to create any active Pipeline Statistics Query must not contain #QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, #QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, #QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, #QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, #QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, #QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, #QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, #QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or #QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT
                  • @@ -1083,7 +1075,7 @@ val EXT_mesh_shader = "EXTMeshShader".nativeClassVK("EXT_mesh_shader", type = "d
                  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
                  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
                  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
                  • -
                  • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
                  • +
                  • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
                  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                  • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                  • @@ -1188,6 +1180,7 @@ val EXT_mesh_shader = "EXTMeshShader".nativeClassVK("EXT_mesh_shader", type = "d
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilReference() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ##VkPhysicalDeviceMultiviewProperties{@code ::maxMultiviewInstanceIndex}
                  • If the bound graphics pipeline was created with ##VkPipelineSampleLocationsStateCreateInfoEXT{@code ::sampleLocationsEnable} set to #TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the #IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
                  • +
                  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code sampleLocationsEnable} is #TRUE, then #CmdSetSampleLocationsEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetCullMode() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetFrontFace() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • @@ -1197,10 +1190,9 @@ val EXT_mesh_shader = "EXTMeshShader".nativeClassVK("EXT_mesh_shader", type = "d
                  • If the {@code depthBounds} feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDepthBoundsTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetStencilTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilOp() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then #CmdSetViewportWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::scissorCount} of the pipeline
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::viewportCount} of the pipeline
                  • -
                  • If the bound graphics pipeline state was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
                  • -
                  • If a shader object is bound to any graphics stage, then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
                  • +
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetViewportWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetScissorWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing
                  • +
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled, and the state is not inherited, then the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with ##VkPipelineViewportWScalingStateCreateInfoNV{@code ::viewportCount} greater or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
                  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then #CmdSetViewportWScalingNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then the {@code viewportCount} parameter in the last call to #CmdSetViewportWScalingNV() must be greater than or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
                  • @@ -1266,11 +1258,9 @@ val EXT_mesh_shader = "EXTMeshShader".nativeClassVK("EXT_mesh_shader", type = "d
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the {@code attachmentCount} parameter of {@code vkCmdSetColorWriteEnableEXT} must be greater than or equal to the ##VkPipelineColorBlendStateCreateInfo{@code ::attachmentCount} of the currently bound graphics pipeline
                  • If the {@code colorWriteEnable} feature is enabled on the device, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then the {@code attachmentCount} parameter of most recent call to {@code vkCmdSetColorWriteEnableEXT} in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in ##VkPipelineDiscardRectangleStateCreateInfoEXT{@code ::discardRectangleCount}
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code discardRectangleEnable} is #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to #FORMAT_UNDEFINED
                  • If current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}
                  • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is enabled, ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, and the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}, the value of the format must be #FORMAT_UNDEFINED
                  • @@ -1312,21 +1302,18 @@ val EXT_mesh_shader = "EXTMeshShader".nativeClassVK("EXT_mesh_shader", type = "d
                  • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetConservativeRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code conservativeRasterizationMode} is #CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then #CmdSetExtraPrimitiveOverestimationSizeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@code depthClipEnable} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then #CmdSetDepthClipEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link EXTBlendOperationAdvanced VK_EXT_blend_operation_advanced} extension is enabled, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then at least one of #CmdSetColorBlendEquationEXT() and #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link EXTProvokingVertex VK_EXT_provoking_vertex} extension is enabled, a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetProvokingVertexModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetLineStippleEnableEXT() in the current command buffer set {@code stippledLineEnable} to #TRUE, then #CmdSetLineStippleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled and a shader object is bound to any graphics stage, or a bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code stippledLineEnable} is #TRUE, then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@code depthClipControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then #CmdSetDepthClipNegativeOneToOneEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@code depthClampControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of {@code depthClampEnable} is #TRUE, then #CmdSetDepthClampRangeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then #CmdSetViewportWScalingEnableNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • @@ -1344,7 +1331,7 @@ val EXT_mesh_shader = "EXTMeshShader".nativeClassVK("EXT_mesh_shader", type = "d
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must follow the rules for a zero-attachment subpass
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the ##VkPipelineMultisampleStateCreateInfo{@code ::rasterizationSamples} parameter used to create the bound graphics pipeline
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state and #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the {@code rasterizationSamples} parameter in the last call to #CmdSetRasterizationSamplesEXT()
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
                  • +
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the {@code multisampledRenderToSingleSampled} feature is not enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a ##VkMultisampledRenderToSingleSampledInfoEXT structure with {@code multisampledRenderToSingleSampledEnable} equal to #TRUE, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the {@code rasterizationSamples} member of that structure
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
                  • If a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
                  • @@ -1408,7 +1395,7 @@ val EXT_mesh_shader = "EXTMeshShader".nativeClassVK("EXT_mesh_shader", type = "d
                    -
                  • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of an element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_VERTEX_BIT, #SHADER_STAGE_TESSELLATION_CONTROL_BIT, #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT
                  • +
                  • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of any element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_VERTEX_BIT, #SHADER_STAGE_TESSELLATION_CONTROL_BIT, #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT
                  • Transform Feedback Queries must not be active
                  • Primitives Generated Queries must not be active
                  • The {@code pipelineStatistics} member used to create any active Pipeline Statistics Query must not contain #QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, #QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, #QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, #QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, #QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, #QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, #QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, #QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or #QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT
                  • @@ -1430,8 +1417,6 @@ val EXT_mesh_shader = "EXTMeshShader".nativeClassVK("EXT_mesh_shader", type = "d
                  • If {@code drawIndirectCount} is not enabled this function must not be used
                  • {@code stride} must be a multiple of 4 and must be greater than or equal to {@code sizeof}(##VkDrawMeshTasksIndirectCommandEXT)
                  • If {@code maxDrawCount} is greater than or equal to 1, (stride × (maxDrawCount - 1) + offset + sizeof(##VkDrawMeshTasksIndirectCommandEXT)) must be less than or equal to the size of {@code buffer}
                  • -
                  • If the count stored in {@code countBuffer} is equal to 1, (offset + sizeof(##VkDrawMeshTasksIndirectCommandEXT)) must be less than or equal to the size of {@code buffer}
                  • -
                  • If the count stored in {@code countBuffer} is greater than 1, (stride × (drawCount - 1) + offset + sizeof(##VkDrawMeshTasksIndirectCommandEXT)) must be less than or equal to the size of {@code buffer}
                  • The current pipeline bound to #PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the {@code MeshEXT} {@code Execution} {@code Model}
                  diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_multi_draw.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_multi_draw.kt index 97b75b762c..5fb5e4872c 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_multi_draw.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_multi_draw.kt @@ -140,7 +140,7 @@ val EXT_multi_draw = "EXTMultiDraw".nativeClassVK("EXT_multi_draw", type = "devi
                • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
                • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
                • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
                • -
                • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
                • +
                • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
                • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                • @@ -245,6 +245,7 @@ val EXT_multi_draw = "EXTMultiDraw".nativeClassVK("EXT_multi_draw", type = "devi
                • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilReference() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ##VkPhysicalDeviceMultiviewProperties{@code ::maxMultiviewInstanceIndex}
                • If the bound graphics pipeline was created with ##VkPipelineSampleLocationsStateCreateInfoEXT{@code ::sampleLocationsEnable} set to #TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the #IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
                • +
                • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code sampleLocationsEnable} is #TRUE, then #CmdSetSampleLocationsEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetCullMode() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetFrontFace() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • @@ -254,10 +255,9 @@ val EXT_multi_draw = "EXTMultiDraw".nativeClassVK("EXT_multi_draw", type = "devi
                • If the {@code depthBounds} feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDepthBoundsTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetStencilTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilOp() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • -
                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then #CmdSetViewportWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::scissorCount} of the pipeline
                • -
                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::viewportCount} of the pipeline
                • -
                • If the bound graphics pipeline state was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
                • -
                • If a shader object is bound to any graphics stage, then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
                • +
                • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetViewportWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • +
                • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetScissorWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing
                • +
                • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled, and the state is not inherited, then the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with ##VkPipelineViewportWScalingStateCreateInfoNV{@code ::viewportCount} greater or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
                • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then #CmdSetViewportWScalingNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then the {@code viewportCount} parameter in the last call to #CmdSetViewportWScalingNV() must be greater than or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
                • @@ -323,11 +323,9 @@ val EXT_multi_draw = "EXTMultiDraw".nativeClassVK("EXT_multi_draw", type = "devi
                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the {@code attachmentCount} parameter of {@code vkCmdSetColorWriteEnableEXT} must be greater than or equal to the ##VkPipelineColorBlendStateCreateInfo{@code ::attachmentCount} of the currently bound graphics pipeline
                • If the {@code colorWriteEnable} feature is enabled on the device, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then the {@code attachmentCount} parameter of most recent call to {@code vkCmdSetColorWriteEnableEXT} in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in ##VkPipelineDiscardRectangleStateCreateInfoEXT{@code ::discardRectangleCount}
                • -
                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • +
                • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • +
                • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code discardRectangleEnable} is #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • -
                • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • -
                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • -
                • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to #FORMAT_UNDEFINED
                • If current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}
                • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is enabled, ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, and the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}, the value of the format must be #FORMAT_UNDEFINED
                • @@ -369,21 +367,18 @@ val EXT_multi_draw = "EXTMultiDraw".nativeClassVK("EXT_multi_draw", type = "devi
                • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetConservativeRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code conservativeRasterizationMode} is #CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then #CmdSetExtraPrimitiveOverestimationSizeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • If the {@code depthClipEnable} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then #CmdSetDepthClipEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • -
                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • -
                • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • If the {@link EXTBlendOperationAdvanced VK_EXT_blend_operation_advanced} extension is enabled, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then at least one of #CmdSetColorBlendEquationEXT() and #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • If the {@link EXTProvokingVertex VK_EXT_provoking_vertex} extension is enabled, a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetProvokingVertexModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • -
                • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • -
                • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • -
                • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • +
                • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • +
                • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • +
                • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • -
                • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • -
                • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • -
                • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • -
                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • -
                • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetLineStippleEnableEXT() in the current command buffer set {@code stippledLineEnable} to #TRUE, then #CmdSetLineStippleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • +
                • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • +
                • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • +
                • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • +
                • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled and a shader object is bound to any graphics stage, or a bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code stippledLineEnable} is #TRUE, then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • If the {@code depthClipControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then #CmdSetDepthClipNegativeOneToOneEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • If the {@code depthClampControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of {@code depthClampEnable} is #TRUE, then #CmdSetDepthClampRangeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then #CmdSetViewportWScalingEnableNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • @@ -401,7 +396,7 @@ val EXT_multi_draw = "EXTMultiDraw".nativeClassVK("EXT_multi_draw", type = "devi
                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must follow the rules for a zero-attachment subpass
                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the ##VkPipelineMultisampleStateCreateInfo{@code ::rasterizationSamples} parameter used to create the bound graphics pipeline
                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state and #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the {@code rasterizationSamples} parameter in the last call to #CmdSetRasterizationSamplesEXT()
                • -
                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
                • +
                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the {@code multisampledRenderToSingleSampled} feature is not enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a ##VkMultisampledRenderToSingleSampledInfoEXT structure with {@code multisampledRenderToSingleSampledEnable} equal to #TRUE, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the {@code rasterizationSamples} member of that structure
                • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
                • If a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
                • @@ -486,7 +481,7 @@ val EXT_multi_draw = "EXTMultiDraw".nativeClassVK("EXT_multi_draw", type = "devi
                • If there is a shader object bound to the #SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled, and the current value of {@code primitiveTopology} is #PRIMITIVE_TOPOLOGY_PATCH_LIST, then #CmdSetPatchControlPointsEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • If there is a shader object bound to the #SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then #CmdSetPrimitiveRestartEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                • If the {@code primitiveTopologyListRestart} feature is not enabled, the topology is #PRIMITIVE_TOPOLOGY_POINT_LIST, #PRIMITIVE_TOPOLOGY_LINE_LIST, #PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, #PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or #PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the #SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then #CmdSetPrimitiveRestartEnable() must be #FALSE
                • -
                • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of an element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT
                • +
                • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of any element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT
                • There must be no shader object bound to either of the #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT stages
                @@ -595,7 +590,7 @@ val EXT_multi_draw = "EXTMultiDraw".nativeClassVK("EXT_multi_draw", type = "devi
              • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
              • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
              • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
              • -
              • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
              • +
              • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
              • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
              • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
              • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
              • @@ -700,6 +695,7 @@ val EXT_multi_draw = "EXTMultiDraw".nativeClassVK("EXT_multi_draw", type = "devi
              • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilReference() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ##VkPhysicalDeviceMultiviewProperties{@code ::maxMultiviewInstanceIndex}
              • If the bound graphics pipeline was created with ##VkPipelineSampleLocationsStateCreateInfoEXT{@code ::sampleLocationsEnable} set to #TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the #IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
              • +
              • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code sampleLocationsEnable} is #TRUE, then #CmdSetSampleLocationsEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetCullMode() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetFrontFace() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • @@ -709,10 +705,9 @@ val EXT_multi_draw = "EXTMultiDraw".nativeClassVK("EXT_multi_draw", type = "devi
              • If the {@code depthBounds} feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDepthBoundsTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetStencilTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilOp() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • -
              • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then #CmdSetViewportWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::scissorCount} of the pipeline
              • -
              • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::viewportCount} of the pipeline
              • -
              • If the bound graphics pipeline state was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
              • -
              • If a shader object is bound to any graphics stage, then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
              • +
              • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetViewportWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • +
              • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetScissorWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing
              • +
              • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled, and the state is not inherited, then the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
              • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with ##VkPipelineViewportWScalingStateCreateInfoNV{@code ::viewportCount} greater or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
              • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then #CmdSetViewportWScalingNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then the {@code viewportCount} parameter in the last call to #CmdSetViewportWScalingNV() must be greater than or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
              • @@ -778,11 +773,9 @@ val EXT_multi_draw = "EXTMultiDraw".nativeClassVK("EXT_multi_draw", type = "devi
              • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the {@code attachmentCount} parameter of {@code vkCmdSetColorWriteEnableEXT} must be greater than or equal to the ##VkPipelineColorBlendStateCreateInfo{@code ::attachmentCount} of the currently bound graphics pipeline
              • If the {@code colorWriteEnable} feature is enabled on the device, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then the {@code attachmentCount} parameter of most recent call to {@code vkCmdSetColorWriteEnableEXT} in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
              • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in ##VkPipelineDiscardRectangleStateCreateInfoEXT{@code ::discardRectangleCount}
              • -
              • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • +
              • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • +
              • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code discardRectangleEnable} is #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • -
              • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • -
              • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • -
              • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to #FORMAT_UNDEFINED
              • If current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}
              • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is enabled, ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, and the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}, the value of the format must be #FORMAT_UNDEFINED
              • @@ -824,21 +817,18 @@ val EXT_multi_draw = "EXTMultiDraw".nativeClassVK("EXT_multi_draw", type = "devi
              • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetConservativeRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code conservativeRasterizationMode} is #CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then #CmdSetExtraPrimitiveOverestimationSizeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • If the {@code depthClipEnable} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then #CmdSetDepthClipEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • -
              • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • -
              • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • If the {@link EXTBlendOperationAdvanced VK_EXT_blend_operation_advanced} extension is enabled, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then at least one of #CmdSetColorBlendEquationEXT() and #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • If the {@link EXTProvokingVertex VK_EXT_provoking_vertex} extension is enabled, a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetProvokingVertexModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • -
              • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • -
              • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • -
              • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • +
              • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • +
              • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • +
              • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • -
              • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • -
              • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • -
              • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • -
              • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • -
              • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetLineStippleEnableEXT() in the current command buffer set {@code stippledLineEnable} to #TRUE, then #CmdSetLineStippleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • +
              • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • +
              • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • +
              • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • +
              • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled and a shader object is bound to any graphics stage, or a bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code stippledLineEnable} is #TRUE, then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • If the {@code depthClipControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then #CmdSetDepthClipNegativeOneToOneEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • If the {@code depthClampControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of {@code depthClampEnable} is #TRUE, then #CmdSetDepthClampRangeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then #CmdSetViewportWScalingEnableNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • @@ -856,7 +846,7 @@ val EXT_multi_draw = "EXTMultiDraw".nativeClassVK("EXT_multi_draw", type = "devi
              • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must follow the rules for a zero-attachment subpass
              • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the ##VkPipelineMultisampleStateCreateInfo{@code ::rasterizationSamples} parameter used to create the bound graphics pipeline
              • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state and #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the {@code rasterizationSamples} parameter in the last call to #CmdSetRasterizationSamplesEXT()
              • -
              • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
              • +
              • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the {@code multisampledRenderToSingleSampled} feature is not enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
              • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a ##VkMultisampledRenderToSingleSampledInfoEXT structure with {@code multisampledRenderToSingleSampledEnable} equal to #TRUE, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the {@code rasterizationSamples} member of that structure
              • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
              • If a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
              • @@ -941,7 +931,7 @@ val EXT_multi_draw = "EXTMultiDraw".nativeClassVK("EXT_multi_draw", type = "devi
              • If there is a shader object bound to the #SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled, and the current value of {@code primitiveTopology} is #PRIMITIVE_TOPOLOGY_PATCH_LIST, then #CmdSetPatchControlPointsEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • If there is a shader object bound to the #SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then #CmdSetPrimitiveRestartEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
              • If the {@code primitiveTopologyListRestart} feature is not enabled, the topology is #PRIMITIVE_TOPOLOGY_POINT_LIST, #PRIMITIVE_TOPOLOGY_LINE_LIST, #PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, #PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or #PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the #SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then #CmdSetPrimitiveRestartEnable() must be #FALSE
              • -
              • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of an element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT
              • +
              • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of any element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT
              • There must be no shader object bound to either of the #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT stages
              diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_opacity_micromap.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_opacity_micromap.kt index eb0b0e183c..c54c53f492 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_opacity_micromap.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_opacity_micromap.kt @@ -1021,7 +1021,7 @@ val EXT_opacity_micromap = "EXTOpacityMicromap".nativeClassVK("EXT_opacity_micro """, VkCommandBuffer("commandBuffer", "the command buffer into which the command will be recorded."), - VkCopyMemoryToMicromapInfoEXT.const.p("pInfo", "a pointer to a ##VkCopyMicromapToMemoryInfoEXT structure defining the copy operation.") + VkCopyMemoryToMicromapInfoEXT.const.p("pInfo", "a pointer to a ##VkCopyMemoryToMicromapInfoEXT structure defining the copy operation.") ) void( diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_pipeline_creation_cache_control.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_pipeline_creation_cache_control.kt index fef92441bf..e423633f4c 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_pipeline_creation_cache_control.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_pipeline_creation_cache_control.kt @@ -37,7 +37,7 @@ val EXT_pipeline_creation_cache_control = "EXTPipelineCreationCacheControl".nati The hope is that armed with this information application and engine developers can leverage existing asset streaming systems to recover from "just-in-time" pipeline creation stalls.
              Promotion to Vulkan 1.3
              - Functionality in this extension is included in core Vulkan 1.3, with the EXT suffix omitted. The original type, enum, and command names are still available as aliases of the core functionality. + Vulkan APIs in this extension are included in core Vulkan 1.3, with the EXT suffix omitted. External interactions defined by this extension, such as SPIR-V token names, retain their original names. The original Vulkan API names are still available as aliases of the core functionality.
              Name String
              diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_pipeline_creation_feedback.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_pipeline_creation_feedback.kt index 121719ee25..4f88ed1d7b 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_pipeline_creation_feedback.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_pipeline_creation_feedback.kt @@ -14,7 +14,7 @@ val EXT_pipeline_creation_feedback = "EXTPipelineCreationFeedback".nativeClassVK This extension adds a mechanism to provide feedback to an application about pipeline creation, with the specific goal of allowing a feedback loop between build systems and in-the-field application executions to ensure effective pipeline caches are shipped to customers.
              Promotion to Vulkan 1.3
              - Functionality in this extension is included in core Vulkan 1.3, with the EXT suffix omitted. The original type, enum, and command names are still available as aliases of the core functionality. + Vulkan APIs in this extension are included in core Vulkan 1.3, with the EXT suffix omitted. External interactions defined by this extension, such as SPIR-V token names, retain their original names. The original Vulkan API names are still available as aliases of the core functionality.
              Name String
              diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_present_mode_fifo_latest_ready.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_present_mode_fifo_latest_ready.kt new file mode 100644 index 0000000000..19a34c4b0b --- /dev/null +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_present_mode_fifo_latest_ready.kt @@ -0,0 +1,86 @@ +/* + * Copyright LWJGL. All rights reserved. + * License terms: https://www.lwjgl.org/license + * MACHINE GENERATED FILE, DO NOT EDIT + */ +package vulkan.templates + +import org.lwjgl.generator.* +import vulkan.* + +val EXT_present_mode_fifo_latest_ready = "EXTPresentModeFifoLatestReady".nativeClassVK("EXT_present_mode_fifo_latest_ready", type = "device", postfix = "EXT") { + documentation = + """ + This device extension adds a new present mode, #PRESENT_MODE_FIFO_LATEST_READY_EXT. + + This tear-free present mode behaves much like #PRESENT_MODE_FIFO_KHR, except that each vertical blanking period dequeues consecutive present requests until the latest ready is found to update the current image. + + While this seems similar in concept to #PRESENT_MODE_MAILBOX_KHR, the fundamental difference is that the processing of the present requests is done during vblank. From the application perspective, this means for example, that in a flip-based model, a single vblank may cause multiple swapchain images to be released at once, while #PRESENT_MODE_MAILBOX_KHR may continuously be releasing images as new requests become ready. + + This additional present mode is useful when using a time-based present API. + +
              +
              Name String
              +
              {@code VK_EXT_present_mode_fifo_latest_ready}
              + +
              Extension Type
              +
              Device extension
              + +
              Registered Extension Number
              +
              362
              + +
              Revision
              +
              1
              + +
              Extension and Version Dependencies
              +
              {@link KHRSwapchain VK_KHR_swapchain}
              + +
              Contact
              +
              + +
              Extension Proposal
              +
              VK_EXT_present_mode_fifo_latest_ready
              +
              + +
              Other Extension Metadata
              +
              +
              Last Modified Date
              +
              2024-05-28
              + +
              IP Status
              +
              No known IP claims.
              + +
              Contributors
              +
                +
              • James Jones, NVIDIA
              • +
              • Lionel Duc, NVIDIA
              • +
              +
              + """ + + IntConstant( + "The extension specification version.", + + "EXT_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION".."1" + ) + + StringConstant( + "The extension name.", + + "EXT_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME".."VK_EXT_present_mode_fifo_latest_ready" + ) + + EnumConstant( + "Extends {@code VkStructureType}.", + + "STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT".."1000361000" + ) + + EnumConstant( + "Extends {@code VkPresentModeKHR}.", + + "PRESENT_MODE_FIFO_LATEST_READY_EXT".."1000361000" + ) +} \ No newline at end of file diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_private_data.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_private_data.kt index 0531641d6a..34003c1fe7 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_private_data.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_private_data.kt @@ -14,7 +14,7 @@ val EXT_private_data = "EXTPrivateData".nativeClassVK("EXT_private_data", type = This extension is a device extension which enables attaching arbitrary payloads to Vulkan objects. It introduces the idea of private data slots as a means of storing a 64-bit unsigned integer of application-defined data. Private data slots can be created or destroyed any time an associated device is available. Private data slots can be reserved at device creation time, and limiting use to the amount reserved will allow the extension to exhibit better performance characteristics.
              Promotion to Vulkan 1.3
              - Functionality in this extension is included in core Vulkan 1.3, with the EXT suffix omitted. The original type, enum, and command names are still available as aliases of the core functionality. + Vulkan APIs in this extension are included in core Vulkan 1.3, with the EXT suffix omitted. External interactions defined by this extension, such as SPIR-V token names, retain their original names. The original Vulkan API names are still available as aliases of the core functionality.
              Examples
                diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_scalar_block_layout.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_scalar_block_layout.kt index 9a4fc35786..cdf515d4c1 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_scalar_block_layout.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_scalar_block_layout.kt @@ -14,7 +14,7 @@ val EXT_scalar_block_layout = "EXTScalarBlockLayout".nativeClassVK("EXT_scalar_b This extension enables C-like structure layout for SPIR-V blocks. It modifies the alignment rules for uniform buffers, storage buffers and push constants, allowing non-scalar types to be aligned solely based on the size of their components, without additional requirements.
                Promotion to Vulkan 1.2
                - Functionality in this extension is included in core Vulkan 1.2, with the EXT suffix omitted. However, if Vulkan 1.2 is supported and this extension is not, the {@code scalarBlockLayout} capability is optional. The original type, enum, and command names are still available as aliases of the core functionality. + Vulkan APIs in this extension are included in core Vulkan 1.2, with the EXT suffix omitted. However, if Vulkan 1.2 is supported and this extension is not, the {@code scalarBlockLayout} capability is optional. External interactions defined by this extension, such as SPIR-V token names, retain their original names. The original Vulkan API names are still available as aliases of the core functionality.
                Name String
                diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_shader_atomic_float.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_shader_atomic_float.kt index e4a3441fbe..37bcafb646 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_shader_atomic_float.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_shader_atomic_float.kt @@ -29,6 +29,12 @@ val EXT_shader_atomic_float = "EXTShaderAtomicFloat".nativeClassVK("EXT_shader_a
                Extension and Version Dependencies
                {@link KHRGetPhysicalDeviceProperties2 VK_KHR_get_physical_device_properties2} or Version 1.1
                +
                API Interactions
                +
                  +
                • Interacts with VkPhysicalDeviceShaderAtomicFloatFeaturesEXT::sparseImageFloat32AtomicAdd
                • +
                • Interacts with VkPhysicalDeviceShaderAtomicFloatFeaturesEXT::sparseImageFloat32Atomics
                • +
                +
                SPIR-V Dependencies
                • SPV_EXT_shader_atomic_float_add
                • diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_shader_atomic_float2.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_shader_atomic_float2.kt index add5e574e6..96f5910da8 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_shader_atomic_float2.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_shader_atomic_float2.kt @@ -29,6 +29,11 @@ val EXT_shader_atomic_float2 = "EXTShaderAtomicFloat2".nativeClassVK("EXT_shader
                  Extension and Version Dependencies
                  {@link EXTShaderAtomicFloat VK_EXT_shader_atomic_float}
                  +
                  API Interactions
                  +
                    +
                  • Interacts with VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT::sparseImageFloat32AtomicMinMax
                  • +
                  +
                  SPIR-V Dependencies
                  • SPV_EXT_shader_atomic_float16_add
                  • diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_shader_demote_to_helper_invocation.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_shader_demote_to_helper_invocation.kt index 1832150c71..544b2e9663 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_shader_demote_to_helper_invocation.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_shader_demote_to_helper_invocation.kt @@ -14,7 +14,7 @@ val EXT_shader_demote_to_helper_invocation = "EXTShaderDemoteToHelperInvocation" This extension adds Vulkan support for the {@code SPV_EXT_demote_to_helper_invocation} SPIR-V extension. That SPIR-V extension provides a new instruction {@code OpDemoteToHelperInvocationEXT} allowing shaders to “{@code demote}” a fragment shader invocation to behave like a helper invocation for its duration. The demoted invocation will have no further side effects and will not output to the framebuffer, but remains active and can participate in computing derivatives and in group operations. This is a better match for the “{@code discard}” instruction in HLSL.
                    Promotion to Vulkan 1.3
                    - Functionality in this extension is included in core Vulkan 1.3, with the EXT suffix omitted. The original type, enum, and command names are still available as aliases of the core functionality. + Vulkan APIs in this extension are included in core Vulkan 1.3, with the EXT suffix omitted. External interactions defined by this extension, such as SPIR-V token names, retain their original names. The original Vulkan API names are still available as aliases of the core functionality.
                    Name String
                    diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_shader_object.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_shader_object.kt index 2cc398a8e8..840a3031ad 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_shader_object.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_shader_object.kt @@ -1868,7 +1868,7 @@ val EXT_shader_object = "EXTShaderObject".nativeClassVK("EXT_shader_object", typ ￿ VkBool32 depthClipEnable);
                    Description
                    - This command sets whether depth clipping is enabled or disabled for subsequent drawing commands when drawing using shader objects, or when the graphics pipeline is created with #DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT set in ##VkPipelineDynamicStateCreateInfo{@code ::pDynamicStates}. Otherwise, this state is specified by the ##VkPipelineRasterizationDepthClipStateCreateInfoEXT{@code ::depthClipEnable} value used to create the currently active pipeline, or is set to the inverse of ##VkPipelineRasterizationStateCreateInfo{@code ::depthClampEnable} if ##VkPipelineRasterizationDepthClipStateCreateInfoEXT is not specified. + This command sets whether depth clipping is enabled or disabled for subsequent drawing commands when drawing using shader objects, or when the graphics pipeline is created with #DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT set in ##VkPipelineDynamicStateCreateInfo{@code ::pDynamicStates}. Otherwise, this state is specified by the ##VkPipelineRasterizationDepthClipStateCreateInfoEXT{@code ::depthClipEnable} value used to create the currently active pipeline, or by the inverse of ##VkPipelineRasterizationStateCreateInfo{@code ::depthClampEnable} if ##VkPipelineRasterizationDepthClipStateCreateInfoEXT is not specified.
                    Valid Usage
                      @@ -2789,7 +2789,7 @@ val EXT_shader_object = "EXTShaderObject".nativeClassVK("EXT_shader_object", typ
                      Valid Usage
                        -
                      • If {@code depthClampMode} is set to #DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT, then {@code pDepthClampRange} must be a valid pointer to a valid ##VkDepthClampRangeEXT structure.
                      • +
                      • If {@code depthClampMode} is #DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT, then {@code pDepthClampRange} must be a valid pointer to a valid ##VkDepthClampRangeEXT structure
                      Valid Usage (Implicit)
                      @@ -2820,6 +2820,6 @@ val EXT_shader_object = "EXTShaderObject".nativeClassVK("EXT_shader_object", typ VkCommandBuffer("commandBuffer", "the command buffer into which the command will be recorded."), VkDepthClampModeEXT("depthClampMode", "determines how the clamp range is determined for each viewport."), - nullable..VkDepthClampRangeEXT.const.p("pDepthClampRange", "sets the depth clamp range for all viewports if {@code depthClampMode} is set to #DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT.") + nullable..VkDepthClampRangeEXT.const.p("pDepthClampRange", "sets the depth clamp range for all viewports if {@code depthClampMode} is #DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT.") ) } \ No newline at end of file diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_subgroup_size_control.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_subgroup_size_control.kt index e0c963defb..dcfdb40656 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_subgroup_size_control.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_subgroup_size_control.kt @@ -24,7 +24,7 @@ val EXT_subgroup_size_control = "EXTSubgroupSizeControl".nativeClassVK("EXT_subg Developers can also specify a new pipeline shader stage create flag that requires the implementation to have fully populated subgroups within local workgroups. This requires the workgroup size in the X dimension to be a multiple of the subgroup size.
                      Promotion to Vulkan 1.3
                      - Functionality in this extension is included in core Vulkan 1.3, with the EXT suffix omitted. The original type, enum, and command names are still available as aliases of the core functionality. + Vulkan APIs in this extension are included in core Vulkan 1.3, with the EXT suffix omitted. External interactions defined by this extension, such as SPIR-V token names, retain their original names. The original Vulkan API names are still available as aliases of the core functionality.
                      Name String
                      diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_texel_buffer_alignment.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_texel_buffer_alignment.kt index 5c5e1abd66..1fc9b5a5fe 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_texel_buffer_alignment.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_texel_buffer_alignment.kt @@ -14,7 +14,7 @@ val EXT_texel_buffer_alignment = "EXTTexelBufferAlignment".nativeClassVK("EXT_te This extension adds more expressive alignment requirements for uniform and storage texel buffers. Some implementations have single texel alignment requirements that cannot be expressed via ##VkPhysicalDeviceLimits{@code ::minTexelBufferOffsetAlignment}.
                      Promotion to Vulkan 1.3
                      - Functionality in this extension is included in core Vulkan 1.3, with the EXT suffix omitted. However, only the properties structure is promoted. The feature structure is not promoted and {@code texelBufferAlignment} is enabled if using a Vulkan 1.3 instance. The original type name is still available as an alias of the core functionality. + Vulkan APIs in this extension are included in core Vulkan 1.3, with the EXT suffix omitted. However, only the properties structure is promoted. The feature structure is not promoted and {@code texelBufferAlignment} is enabled if using a Vulkan 1.3 instance. External interactions defined by this extension, such as SPIR-V token names, retain their original names. The original Vulkan API name is still available as an alias of the core functionality.
                      Name String
                      diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_texture_compression_astc_hdr.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_texture_compression_astc_hdr.kt index 4d9d2c4cbc..f7407f30f8 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_texture_compression_astc_hdr.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_texture_compression_astc_hdr.kt @@ -16,7 +16,7 @@ val EXT_texture_compression_astc_hdr = "EXTTextureCompressionAstcHdr".nativeClas When this extension is enabled, the HDR profile is supported for all ASTC formats listed in ASTC Compressed Image Formats.
                      Promotion to Vulkan 1.3
                      - This extension has been partially promoted. Functionality in this extension is included in core Vulkan 1.3, with the EXT suffix omitted. However, the feature is made optional in Vulkan 1.3. The original type, enum, and command names are still available as aliases of the core functionality. + This extension has been partially promoted. Vulkan APIs in this extension are included in core Vulkan 1.3, with the EXT suffix omitted. However, the feature is made optional in Vulkan 1.3. External interactions defined by this extension, such as SPIR-V token names, retain their original names. The original Vulkan API names are still available as aliases of the core functionality.
                      Name String
                      diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_tooling_info.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_tooling_info.kt index abd3ac6d51..d0e3904ea0 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_tooling_info.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_tooling_info.kt @@ -18,7 +18,7 @@ val EXT_tooling_info = "EXTToolingInfo".nativeClassVK("EXT_tooling_info", type = Typically, the expectation is that developers will simply print out this information for visual inspection when an issue occurs, however a small amount of semantic information about what the tool is doing is provided to help identify it programmatically. For example, if the advertised limits or features of an implementation are unexpected, is there a tool active which modifies these limits? Or if an application is providing debug markers, but the implementation is not actually doing anything with that information, this can quickly point that out.
                      Promotion to Vulkan 1.3
                      - Functionality in this extension is included in core Vulkan 1.3, with the EXT suffix omitted. The original type, enum, and command names are still available as aliases of the core functionality. + Vulkan APIs in this extension are included in core Vulkan 1.3, with the EXT suffix omitted. External interactions defined by this extension, such as SPIR-V token names, retain their original names. The original Vulkan API names are still available as aliases of the core functionality.
                      Examples
                      
                      diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_transform_feedback.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_transform_feedback.kt
                      index 8b5890cfa2..35ce416e7e 100644
                      --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_transform_feedback.kt
                      +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/EXT_transform_feedback.kt
                      @@ -557,7 +557,7 @@ val EXT_transform_feedback = "EXTTransformFeedback".nativeClassVK("EXT_transform
                                   
                    • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
                    • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
                    • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
                    • -
                    • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
                    • +
                    • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
                    • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                    • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                    • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                    • @@ -662,6 +662,7 @@ val EXT_transform_feedback = "EXTTransformFeedback".nativeClassVK("EXT_transform
                    • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilReference() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ##VkPhysicalDeviceMultiviewProperties{@code ::maxMultiviewInstanceIndex}
                    • If the bound graphics pipeline was created with ##VkPipelineSampleLocationsStateCreateInfoEXT{@code ::sampleLocationsEnable} set to #TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the #IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
                    • +
                    • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code sampleLocationsEnable} is #TRUE, then #CmdSetSampleLocationsEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetCullMode() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetFrontFace() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • @@ -671,10 +672,9 @@ val EXT_transform_feedback = "EXTTransformFeedback".nativeClassVK("EXT_transform
                    • If the {@code depthBounds} feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDepthBoundsTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetStencilTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilOp() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • -
                    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then #CmdSetViewportWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::scissorCount} of the pipeline
                    • -
                    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::viewportCount} of the pipeline
                    • -
                    • If the bound graphics pipeline state was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
                    • -
                    • If a shader object is bound to any graphics stage, then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
                    • +
                    • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetViewportWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • +
                    • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetScissorWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing
                    • +
                    • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled, and the state is not inherited, then the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
                    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with ##VkPipelineViewportWScalingStateCreateInfoNV{@code ::viewportCount} greater or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
                    • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then #CmdSetViewportWScalingNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then the {@code viewportCount} parameter in the last call to #CmdSetViewportWScalingNV() must be greater than or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
                    • @@ -740,11 +740,9 @@ val EXT_transform_feedback = "EXTTransformFeedback".nativeClassVK("EXT_transform
                    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the {@code attachmentCount} parameter of {@code vkCmdSetColorWriteEnableEXT} must be greater than or equal to the ##VkPipelineColorBlendStateCreateInfo{@code ::attachmentCount} of the currently bound graphics pipeline
                    • If the {@code colorWriteEnable} feature is enabled on the device, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then the {@code attachmentCount} parameter of most recent call to {@code vkCmdSetColorWriteEnableEXT} in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
                    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in ##VkPipelineDiscardRectangleStateCreateInfoEXT{@code ::discardRectangleCount}
                    • -
                    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • +
                    • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • +
                    • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code discardRectangleEnable} is #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • -
                    • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • -
                    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • -
                    • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to #FORMAT_UNDEFINED
                    • If current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}
                    • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is enabled, ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, and the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}, the value of the format must be #FORMAT_UNDEFINED
                    • @@ -786,21 +784,18 @@ val EXT_transform_feedback = "EXTTransformFeedback".nativeClassVK("EXT_transform
                    • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetConservativeRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code conservativeRasterizationMode} is #CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then #CmdSetExtraPrimitiveOverestimationSizeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • If the {@code depthClipEnable} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then #CmdSetDepthClipEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • -
                    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • -
                    • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • If the {@link EXTBlendOperationAdvanced VK_EXT_blend_operation_advanced} extension is enabled, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then at least one of #CmdSetColorBlendEquationEXT() and #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • If the {@link EXTProvokingVertex VK_EXT_provoking_vertex} extension is enabled, a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetProvokingVertexModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • -
                    • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • -
                    • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • -
                    • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • +
                    • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • +
                    • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • +
                    • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • -
                    • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • -
                    • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • -
                    • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • -
                    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • -
                    • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetLineStippleEnableEXT() in the current command buffer set {@code stippledLineEnable} to #TRUE, then #CmdSetLineStippleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • +
                    • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • +
                    • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • +
                    • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • +
                    • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled and a shader object is bound to any graphics stage, or a bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code stippledLineEnable} is #TRUE, then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • If the {@code depthClipControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then #CmdSetDepthClipNegativeOneToOneEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • If the {@code depthClampControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of {@code depthClampEnable} is #TRUE, then #CmdSetDepthClampRangeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then #CmdSetViewportWScalingEnableNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • @@ -818,7 +813,7 @@ val EXT_transform_feedback = "EXTTransformFeedback".nativeClassVK("EXT_transform
                    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must follow the rules for a zero-attachment subpass
                    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the ##VkPipelineMultisampleStateCreateInfo{@code ::rasterizationSamples} parameter used to create the bound graphics pipeline
                    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state and #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the {@code rasterizationSamples} parameter in the last call to #CmdSetRasterizationSamplesEXT()
                    • -
                    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
                    • +
                    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the {@code multisampledRenderToSingleSampled} feature is not enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
                    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a ##VkMultisampledRenderToSingleSampledInfoEXT structure with {@code multisampledRenderToSingleSampledEnable} equal to #TRUE, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the {@code rasterizationSamples} member of that structure
                    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
                    • If a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
                    • @@ -897,7 +892,7 @@ val EXT_transform_feedback = "EXTTransformFeedback".nativeClassVK("EXT_transform
                    • If there is a shader object bound to the #SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled, and the current value of {@code primitiveTopology} is #PRIMITIVE_TOPOLOGY_PATCH_LIST, then #CmdSetPatchControlPointsEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • If there is a shader object bound to the #SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then #CmdSetPrimitiveRestartEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                    • If the {@code primitiveTopologyListRestart} feature is not enabled, the topology is #PRIMITIVE_TOPOLOGY_POINT_LIST, #PRIMITIVE_TOPOLOGY_LINE_LIST, #PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, #PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or #PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the #SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then #CmdSetPrimitiveRestartEnable() must be #FALSE
                    • -
                    • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of an element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT
                    • +
                    • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of any element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT
                    • There must be no shader object bound to either of the #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT stages
                    diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/HUAWEI_cluster_culling_shader.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/HUAWEI_cluster_culling_shader.kt index cf6d4f5bdc..5838a749bc 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/HUAWEI_cluster_culling_shader.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/HUAWEI_cluster_culling_shader.kt @@ -337,7 +337,7 @@ val HUAWEI_cluster_culling_shader = "HUAWEIClusterCullingShader".nativeClassVK("
                  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
                  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
                  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
                  • -
                  • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
                  • +
                  • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
                  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                  • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                  • @@ -442,6 +442,7 @@ val HUAWEI_cluster_culling_shader = "HUAWEIClusterCullingShader".nativeClassVK("
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilReference() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ##VkPhysicalDeviceMultiviewProperties{@code ::maxMultiviewInstanceIndex}
                  • If the bound graphics pipeline was created with ##VkPipelineSampleLocationsStateCreateInfoEXT{@code ::sampleLocationsEnable} set to #TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the #IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
                  • +
                  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code sampleLocationsEnable} is #TRUE, then #CmdSetSampleLocationsEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetCullMode() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetFrontFace() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • @@ -451,10 +452,9 @@ val HUAWEI_cluster_culling_shader = "HUAWEIClusterCullingShader".nativeClassVK("
                  • If the {@code depthBounds} feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDepthBoundsTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetStencilTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilOp() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then #CmdSetViewportWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::scissorCount} of the pipeline
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::viewportCount} of the pipeline
                  • -
                  • If the bound graphics pipeline state was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
                  • -
                  • If a shader object is bound to any graphics stage, then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
                  • +
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetViewportWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetScissorWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing
                  • +
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled, and the state is not inherited, then the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with ##VkPipelineViewportWScalingStateCreateInfoNV{@code ::viewportCount} greater or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
                  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then #CmdSetViewportWScalingNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then the {@code viewportCount} parameter in the last call to #CmdSetViewportWScalingNV() must be greater than or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
                  • @@ -520,11 +520,9 @@ val HUAWEI_cluster_culling_shader = "HUAWEIClusterCullingShader".nativeClassVK("
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the {@code attachmentCount} parameter of {@code vkCmdSetColorWriteEnableEXT} must be greater than or equal to the ##VkPipelineColorBlendStateCreateInfo{@code ::attachmentCount} of the currently bound graphics pipeline
                  • If the {@code colorWriteEnable} feature is enabled on the device, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then the {@code attachmentCount} parameter of most recent call to {@code vkCmdSetColorWriteEnableEXT} in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in ##VkPipelineDiscardRectangleStateCreateInfoEXT{@code ::discardRectangleCount}
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code discardRectangleEnable} is #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to #FORMAT_UNDEFINED
                  • If current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}
                  • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is enabled, ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, and the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}, the value of the format must be #FORMAT_UNDEFINED
                  • @@ -566,21 +564,18 @@ val HUAWEI_cluster_culling_shader = "HUAWEIClusterCullingShader".nativeClassVK("
                  • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetConservativeRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code conservativeRasterizationMode} is #CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then #CmdSetExtraPrimitiveOverestimationSizeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@code depthClipEnable} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then #CmdSetDepthClipEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link EXTBlendOperationAdvanced VK_EXT_blend_operation_advanced} extension is enabled, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then at least one of #CmdSetColorBlendEquationEXT() and #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link EXTProvokingVertex VK_EXT_provoking_vertex} extension is enabled, a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetProvokingVertexModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetLineStippleEnableEXT() in the current command buffer set {@code stippledLineEnable} to #TRUE, then #CmdSetLineStippleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled and a shader object is bound to any graphics stage, or a bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code stippledLineEnable} is #TRUE, then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@code depthClipControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then #CmdSetDepthClipNegativeOneToOneEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@code depthClampControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of {@code depthClampEnable} is #TRUE, then #CmdSetDepthClampRangeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then #CmdSetViewportWScalingEnableNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • @@ -598,7 +593,7 @@ val HUAWEI_cluster_culling_shader = "HUAWEIClusterCullingShader".nativeClassVK("
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must follow the rules for a zero-attachment subpass
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the ##VkPipelineMultisampleStateCreateInfo{@code ::rasterizationSamples} parameter used to create the bound graphics pipeline
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state and #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the {@code rasterizationSamples} parameter in the last call to #CmdSetRasterizationSamplesEXT()
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
                  • +
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the {@code multisampledRenderToSingleSampled} feature is not enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a ##VkMultisampledRenderToSingleSampledInfoEXT structure with {@code multisampledRenderToSingleSampledEnable} equal to #TRUE, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the {@code rasterizationSamples} member of that structure
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
                  • If a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
                  • @@ -662,7 +657,7 @@ val HUAWEI_cluster_culling_shader = "HUAWEIClusterCullingShader".nativeClassVK("
                    -
                  • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of an element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_VERTEX_BIT, #SHADER_STAGE_TESSELLATION_CONTROL_BIT, #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT
                  • +
                  • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of any element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_VERTEX_BIT, #SHADER_STAGE_TESSELLATION_CONTROL_BIT, #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT
                  • Transform Feedback Queries must not be active
                  • Primitives Generated Queries must not be active
                  • The {@code pipelineStatistics} member used to create any active Pipeline Statistics Query must not contain #QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, #QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, #QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, #QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, #QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, #QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, #QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, #QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or #QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT
                  • @@ -757,7 +752,7 @@ val HUAWEI_cluster_culling_shader = "HUAWEIClusterCullingShader".nativeClassVK("
                  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
                  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
                  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
                  • -
                  • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
                  • +
                  • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
                  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                  • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                  • @@ -862,6 +857,7 @@ val HUAWEI_cluster_culling_shader = "HUAWEIClusterCullingShader".nativeClassVK("
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilReference() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ##VkPhysicalDeviceMultiviewProperties{@code ::maxMultiviewInstanceIndex}
                  • If the bound graphics pipeline was created with ##VkPipelineSampleLocationsStateCreateInfoEXT{@code ::sampleLocationsEnable} set to #TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the #IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
                  • +
                  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code sampleLocationsEnable} is #TRUE, then #CmdSetSampleLocationsEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetCullMode() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetFrontFace() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • @@ -871,10 +867,9 @@ val HUAWEI_cluster_culling_shader = "HUAWEIClusterCullingShader".nativeClassVK("
                  • If the {@code depthBounds} feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDepthBoundsTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetStencilTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilOp() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then #CmdSetViewportWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::scissorCount} of the pipeline
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::viewportCount} of the pipeline
                  • -
                  • If the bound graphics pipeline state was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
                  • -
                  • If a shader object is bound to any graphics stage, then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
                  • +
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetViewportWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetScissorWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing
                  • +
                  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled, and the state is not inherited, then the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with ##VkPipelineViewportWScalingStateCreateInfoNV{@code ::viewportCount} greater or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
                  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then #CmdSetViewportWScalingNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then the {@code viewportCount} parameter in the last call to #CmdSetViewportWScalingNV() must be greater than or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
                  • @@ -940,11 +935,9 @@ val HUAWEI_cluster_culling_shader = "HUAWEIClusterCullingShader".nativeClassVK("
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the {@code attachmentCount} parameter of {@code vkCmdSetColorWriteEnableEXT} must be greater than or equal to the ##VkPipelineColorBlendStateCreateInfo{@code ::attachmentCount} of the currently bound graphics pipeline
                  • If the {@code colorWriteEnable} feature is enabled on the device, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then the {@code attachmentCount} parameter of most recent call to {@code vkCmdSetColorWriteEnableEXT} in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in ##VkPipelineDiscardRectangleStateCreateInfoEXT{@code ::discardRectangleCount}
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code discardRectangleEnable} is #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to #FORMAT_UNDEFINED
                  • If current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}
                  • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is enabled, ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, and the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}, the value of the format must be #FORMAT_UNDEFINED
                  • @@ -986,21 +979,18 @@ val HUAWEI_cluster_culling_shader = "HUAWEIClusterCullingShader".nativeClassVK("
                  • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetConservativeRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code conservativeRasterizationMode} is #CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then #CmdSetExtraPrimitiveOverestimationSizeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@code depthClipEnable} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then #CmdSetDepthClipEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link EXTBlendOperationAdvanced VK_EXT_blend_operation_advanced} extension is enabled, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then at least one of #CmdSetColorBlendEquationEXT() and #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link EXTProvokingVertex VK_EXT_provoking_vertex} extension is enabled, a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetProvokingVertexModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • -
                  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetLineStippleEnableEXT() in the current command buffer set {@code stippledLineEnable} to #TRUE, then #CmdSetLineStippleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • +
                  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled and a shader object is bound to any graphics stage, or a bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code stippledLineEnable} is #TRUE, then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@code depthClipControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then #CmdSetDepthClipNegativeOneToOneEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@code depthClampControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of {@code depthClampEnable} is #TRUE, then #CmdSetDepthClampRangeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then #CmdSetViewportWScalingEnableNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
                  • @@ -1018,7 +1008,7 @@ val HUAWEI_cluster_culling_shader = "HUAWEIClusterCullingShader".nativeClassVK("
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must follow the rules for a zero-attachment subpass
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the ##VkPipelineMultisampleStateCreateInfo{@code ::rasterizationSamples} parameter used to create the bound graphics pipeline
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state and #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the {@code rasterizationSamples} parameter in the last call to #CmdSetRasterizationSamplesEXT()
                  • -
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
                  • +
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the {@code multisampledRenderToSingleSampled} feature is not enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a ##VkMultisampledRenderToSingleSampledInfoEXT structure with {@code multisampledRenderToSingleSampledEnable} equal to #TRUE, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the {@code rasterizationSamples} member of that structure
                  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
                  • If a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
                  • @@ -1082,7 +1072,7 @@ val HUAWEI_cluster_culling_shader = "HUAWEIClusterCullingShader".nativeClassVK("
                    -
                  • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of an element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_VERTEX_BIT, #SHADER_STAGE_TESSELLATION_CONTROL_BIT, #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT
                  • +
                  • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of any element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_VERTEX_BIT, #SHADER_STAGE_TESSELLATION_CONTROL_BIT, #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT
                  • Transform Feedback Queries must not be active
                  • Primitives Generated Queries must not be active
                  • The {@code pipelineStatistics} member used to create any active Pipeline Statistics Query must not contain #QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, #QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, #QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, #QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, #QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, #QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, #QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, #QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or #QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT
                  • @@ -1091,7 +1081,7 @@ val HUAWEI_cluster_culling_shader = "HUAWEIClusterCullingShader".nativeClassVK("
                    • If the {@code multiDrawIndirect} feature is not enabled, {@code drawCount} must be 0 or 1
                    • {@code drawCount} must be less than or equal to ##VkPhysicalDeviceLimits{@code ::maxDrawIndirectCount}
                    • -
                    • The current pipeline bound to #PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the {@code ClusterCullingHUAWEI} {@code Execution} {@code Model}.
                    • +
                    • The current pipeline bound to #PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the {@code ClusterCullingHUAWEI} {@code Execution} {@code Model}
                    • {@code offset} must be a multiple of ##VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI{@code ::indirectBufferOffsetAlignment}
                    diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/HUAWEI_hdr_vivid.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/HUAWEI_hdr_vivid.kt new file mode 100644 index 0000000000..85b0823a1a --- /dev/null +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/HUAWEI_hdr_vivid.kt @@ -0,0 +1,76 @@ +/* + * Copyright LWJGL. All rights reserved. + * License terms: https://www.lwjgl.org/license + * MACHINE GENERATED FILE, DO NOT EDIT + */ +package vulkan.templates + +import org.lwjgl.generator.* +import vulkan.* + +val HUAWEI_hdr_vivid = "HUAWEIHdrVivid".nativeClassVK("HUAWEI_hdr_vivid", type = "device", postfix = "HUAWEI") { + documentation = + """ + This extension allows applications to assign HDR Vivid (T/UWA 005.1-2022) metadata to swapchains. + + HDR Vivid is an HDR standard released by UWA (UHD World Association). It defines tone mapping from the metadata to better preserve the creator’s intentions and achieve better consistency across devices with different display capabilities. + +
                    +
                    Name String
                    +
                    {@code VK_HUAWEI_hdr_vivid}
                    + +
                    Extension Type
                    +
                    Device extension
                    + +
                    Registered Extension Number
                    +
                    591
                    + +
                    Revision
                    +
                    1
                    + +
                    Extension and Version Dependencies
                    +
                    {@link KHRGetPhysicalDeviceProperties2 VK_KHR_get_physical_device_properties2} or Version 1.1 and {@link KHRSwapchain VK_KHR_swapchain} and {@link EXTHdrMetadata VK_EXT_hdr_metadata}
                    + +
                    Contact
                    +
                    +
                    + +
                    Other Extension Metadata
                    +
                    +
                    Last Modified Date
                    +
                    2024-10-08
                    + +
                    IP Status
                    +
                    No known IP claims.
                    + +
                    Contributors
                    +
                      +
                    • Juntao Li, Huawei
                    • +
                    • Pan Gao, Huawei
                    • +
                    • Xiufeng Zhang, Huawei
                    • +
                    • Zehui Lin, Huawei
                    • +
                    +
                    + """ + + IntConstant( + "The extension specification version.", + + "HUAWEI_HDR_VIVID_SPEC_VERSION".."1" + ) + + StringConstant( + "The extension name.", + + "HUAWEI_HDR_VIVID_EXTENSION_NAME".."VK_HUAWEI_hdr_vivid" + ) + + EnumConstant( + "Extends {@code VkStructureType}.", + + "STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI".."1000590000", + "STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI".."1000590001" + ) +} \ No newline at end of file diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/HUAWEI_invocation_mask.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/HUAWEI_invocation_mask.kt index d8972ea6c5..3084578829 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/HUAWEI_invocation_mask.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/HUAWEI_invocation_mask.kt @@ -180,7 +180,7 @@ val HUAWEI_invocation_mask = "HUAWEIInvocationMask".nativeClassVK("HUAWEI_invoca """, VkCommandBuffer("commandBuffer", "the command buffer into which the command will be recorded"), - VkImageView("imageView", "an image view handle specifying the invocation mask image {@code imageView} may be set to #NULL_HANDLE, which is equivalent to specifying a view of an image filled with ones value."), + VkImageView("imageView", "an image view handle specifying the invocation mask image {@code imageView} may be #NULL_HANDLE, which is equivalent to specifying a view of an image filled with ones value."), VkImageLayout("imageLayout", "the layout that the image subresources accessible from {@code imageView} will be in when the invocation mask image is accessed") ) } \ No newline at end of file diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/HUAWEI_subpass_shading.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/HUAWEI_subpass_shading.kt index f726917224..3eb6a4be24 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/HUAWEI_subpass_shading.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/HUAWEI_subpass_shading.kt @@ -398,7 +398,7 @@ val HUAWEI_subpass_shading = "HUAWEISubpassShading".nativeClassVK("HUAWEI_subpas
                  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
                  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
                  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
                  • -
                  • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
                  • +
                  • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
                  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                  • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
                  • diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_8bit_storage.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_8bit_storage.kt index c77903f0ce..1f669f2bb2 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_8bit_storage.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_8bit_storage.kt @@ -16,7 +16,7 @@ val KHR_8bit_storage = "KHR8bitStorage".nativeClassVK("KHR_8bit_storage", type = The {@code StorageBuffer8BitAccess} capability must be supported by all implementations of this extension. The other capabilities are optional.
                    Promotion to Vulkan 1.2
                    - Functionality in this extension is included in core Vulkan 1.2, with the KHR suffix omitted. However, if Vulkan 1.2 is supported and this extension is not, the {@code StorageBuffer8BitAccess} capability is optional. The original type, enum, and command names are still available as aliases of the core functionality. + Vulkan APIs in this extension are included in core Vulkan 1.2, with the KHR suffix omitted. However, if Vulkan 1.2 is supported and this extension is not, the {@code StorageBuffer8BitAccess} capability is optional. External interactions defined by this extension, such as SPIR-V token names, retain their original names. The original Vulkan API names are still available as aliases of the core functionality.
                    Name String
                    diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_acceleration_structure.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_acceleration_structure.kt index 3258246723..6782877833 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_acceleration_structure.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_acceleration_structure.kt @@ -187,6 +187,13 @@ val KHR_acceleration_structure = "KHRAccelerationStructure".nativeClassVK("KHR_a "BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR".enum(0x00100000) ) + EnumConstant( + "Extends {@code VkCopyAccelerationStructureModeKHR}.", + + "COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR".."2", + "COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR".."3" + ) + EnumConstantLong( "Extends {@code VkFormatFeatureFlagBits2}.", @@ -356,6 +363,7 @@ val KHR_acceleration_structure = "KHRAccelerationStructure".nativeClassVK("KHR_a
                    • #ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR specifies that the acceleration structure’s address can be saved and reused on a subsequent run.
                    • #ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT specifies that the acceleration structure can be used with descriptor buffers when capturing and replaying (e.g. for trace capture and replay), see ##VkOpaqueCaptureDescriptorDataCreateInfoEXT for more detail.
                    • +
                    • #ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV specifies that the acceleration structure will be used with motion information, see ##VkAccelerationStructureMotionInfoNV for more detail.
                    """, @@ -369,7 +377,7 @@ val KHR_acceleration_structure = "KHRAccelerationStructure".nativeClassVK("KHR_a
                    Description
                    • #COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR creates a direct copy of the acceleration structure specified in {@code src} into the one specified by {@code dst}. The {@code dst} acceleration structure must have been created with the same parameters as {@code src}. If {@code src} contains references to other acceleration structures, {@code dst} will reference the same acceleration structures.
                    • -
                    • #COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR creates a more compact version of an acceleration structure {@code src} into {@code dst}. The acceleration structure {@code dst} must have been created with a size at least as large as that returned by #CmdWriteAccelerationStructuresPropertiesKHR() or #WriteAccelerationStructuresPropertiesKHR() after the build of the acceleration structure specified by {@code src}. If {@code src} contains references to other acceleration structures, {@code dst} will reference the same acceleration structures.
                    • +
                    • #COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR creates a more compact version of an acceleration structure {@code src} into {@code dst}. The acceleration structure {@code dst} must have been created with a size at least as large as that returned by #CmdWriteAccelerationStructuresPropertiesNV() , #CmdWriteAccelerationStructuresPropertiesKHR(), or #WriteAccelerationStructuresPropertiesKHR() after the build of the acceleration structure specified by {@code src}. If {@code src} contains references to other acceleration structures, {@code dst} will reference the same acceleration structures.
                    • #COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR serializes the acceleration structure to a semi-opaque format which can be reloaded on a compatible implementation.
                    • #COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR deserializes the semi-opaque serialization format in the buffer to the acceleration structure.
                    @@ -379,9 +387,7 @@ val KHR_acceleration_structure = "KHRAccelerationStructure".nativeClassVK("KHR_a """, "COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR".."0", - "COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR".."1", - "COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR".."2", - "COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR".."3" + "COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR".."1" ) EnumConstant( diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_cooperative_matrix.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_cooperative_matrix.kt index b7a37bef8e..2600d9df23 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_cooperative_matrix.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_cooperative_matrix.kt @@ -108,7 +108,7 @@ val KHR_cooperative_matrix = "KHRCooperativeMatrix".nativeClassVK("KHR_cooperati
                  See Also
                  - ##VkCooperativeMatrixPropertiesKHR + ##VkCooperativeMatrixFlexibleDimensionsPropertiesNV, ##VkCooperativeMatrixPropertiesKHR """, "COMPONENT_TYPE_FLOAT16_KHR".."0", @@ -139,7 +139,7 @@ val KHR_cooperative_matrix = "KHRCooperativeMatrix".nativeClassVK("KHR_cooperati All enum values match the corresponding SPIR-V value.
                  See Also
                  - ##VkCooperativeMatrixPropertiesKHR + ##VkCooperativeMatrixFlexibleDimensionsPropertiesNV, ##VkCooperativeMatrixPropertiesKHR """, "SCOPE_DEVICE_KHR".."1", diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_copy_commands2.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_copy_commands2.kt index 0d21bdc574..7982558eca 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_copy_commands2.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_copy_commands2.kt @@ -16,7 +16,7 @@ val KHR_copy_commands2 = "KHRCopyCommands2".nativeClassVK("KHR_copy_commands2", The following extensible copy commands are introduced with this extension: #CmdCopyBuffer2KHR(), #CmdCopyImage2KHR(), #CmdCopyBufferToImage2KHR(), #CmdCopyImageToBuffer2KHR(), #CmdBlitImage2KHR(), and #CmdResolveImage2KHR(). Each command contains an stext:*Info2KHR structure parameter that includes {@code sType}/{@code pNext} members. Lower level structures describing each region to be copied are also extended with {@code sType}/{@code pNext} members.
                  Promotion to Vulkan 1.3
                  - Functionality in this extension is included in core Vulkan 1.3, with the KHR suffix omitted. The original type, enum, and command names are still available as aliases of the core functionality. + Vulkan APIs in this extension are included in core Vulkan 1.3, with the KHR suffix omitted. External interactions defined by this extension, such as SPIR-V token names, retain their original names. The original Vulkan API names are still available as aliases of the core functionality.
                  Name String
                  diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_device_group.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_device_group.kt index 4a86b01ef6..b6c6fdc7e9 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_device_group.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_device_group.kt @@ -439,6 +439,6 @@ val KHR_device_group = "KHRDeviceGroup".nativeClassVK("KHR_device_group", type = VkDevice("device", "the device associated with {@code swapchain}."), VkAcquireNextImageInfoKHR.const.p("pAcquireInfo", "a pointer to a ##VkAcquireNextImageInfoKHR structure containing parameters of the acquire."), - Check(1)..uint32_t.p("pImageIndex", "a pointer to a {@code uint32_t} that is set to the index of the next image to use.") + Check(1)..uint32_t.p("pImageIndex", "a pointer to a {@code uint32_t} value specifying the index of the next image to use.") ) } \ No newline at end of file diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_dynamic_rendering.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_dynamic_rendering.kt index 8452ebda54..c76a77a104 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_dynamic_rendering.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_dynamic_rendering.kt @@ -16,7 +16,7 @@ val KHR_dynamic_rendering = "KHRDynamicRendering".nativeClassVK("KHR_dynamic_ren This extension also incorporates #ATTACHMENT_STORE_OP_NONE_KHR from {@link QCOMRenderPassStoreOps VK_QCOM_render_pass_store_ops}, enabling applications to avoid unnecessary synchronization when an attachment is not written during a render pass.
                  Promotion to Vulkan 1.3
                  - Functionality in this extension is included in core Vulkan 1.3, with the KHR suffix omitted. The original type, enum, and command names are still available as aliases of the core functionality. + Vulkan APIs in this extension are included in core Vulkan 1.3, with the KHR suffix omitted. External interactions defined by this extension, such as SPIR-V token names, retain their original names. The original Vulkan API names are still available as aliases of the core functionality.
                  Name String
                  @@ -34,15 +34,6 @@ val KHR_dynamic_rendering = "KHRDynamicRendering".nativeClassVK("KHR_dynamic_ren
                  Extension and Version Dependencies
                  {@link KHRGetPhysicalDeviceProperties2 VK_KHR_get_physical_device_properties2} or Version 1.1 and {@link KHRDepthStencilResolve VK_KHR_depth_stencil_resolve} or Version 1.2
                  -
                  API Interactions
                  -
                    -
                  • Interacts with VK_AMD_mixed_attachment_samples
                  • -
                  • Interacts with VK_EXT_fragment_density_map
                  • -
                  • Interacts with VK_KHR_fragment_shading_rate
                  • -
                  • Interacts with VK_NVX_multiview_per_view_attributes
                  • -
                  • Interacts with VK_NV_framebuffer_mixed_samples
                  • -
                  -
                  Deprecation State
                  • Promoted to Vulkan 1.3
                  • @@ -117,50 +108,6 @@ val KHR_dynamic_rendering = "KHRDynamicRendering".nativeClassVK("KHR_dynamic_ren "RENDERING_RESUMING_BIT_KHR".enum(0x00000004) ) - EnumConstant( - "Extends {@code VkPipelineCreateFlagBits}.", - - "PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR".enum(0x00200000), - "PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR".enum(0x00200000) - ) - - EnumConstant( - "Extends {@code VkStructureType}.", - - "STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR".."1000044006" - ) - - EnumConstant( - "Extends {@code VkPipelineCreateFlagBits}.", - - "PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT".enum(0x00400000), - "PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT".enum(0x00400000) - ) - - EnumConstant( - "Extends {@code VkStructureType}.", - - "STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT".."1000044007" - ) - - EnumConstant( - "Extends {@code VkStructureType}.", - - "STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD".."1000044008" - ) - - EnumConstant( - "Extends {@code VkStructureType}.", - - "STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV".."1000044008" - ) - - EnumConstant( - "Extends {@code VkStructureType}.", - - "STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX".."1000044009" - ) - void( "CmdBeginRenderingKHR", "See #CmdBeginRendering().", diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_format_feature_flags2.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_format_feature_flags2.kt index df73bb40a8..1790247394 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_format_feature_flags2.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_format_feature_flags2.kt @@ -25,7 +25,7 @@ val KHR_format_feature_flags2 = "KHRFormatFeatureFlags2".nativeClassVK("KHR_form Prior to version 2 of this extension, implementations exposing the {@code shaderStorageImageReadWithoutFormat} and {@code shaderStorageImageWriteWithoutFormat} features may not report #FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR and #FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR in ##VkFormatProperties3KHR{@code ::bufferFeatures}. Despite this, buffer reads/writes are supported as intended by the original features.
                    Promotion to Vulkan 1.3
                    - Functionality in this extension is included in core Vulkan 1.3, with the KHR suffix omitted. The original type, enum, and command names are still available as aliases of the core functionality. + Vulkan APIs in this extension are included in core Vulkan 1.3, with the KHR suffix omitted. External interactions defined by this extension, such as SPIR-V token names, retain their original names. The original Vulkan API names are still available as aliases of the core functionality.
                    Name String
                    diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_fragment_shading_rate.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_fragment_shading_rate.kt index 481ac4c0f4..9fe43f559e 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_fragment_shading_rate.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_fragment_shading_rate.kt @@ -46,6 +46,7 @@ val KHR_fragment_shading_rate = "KHRFragmentShadingRate".nativeClassVK("KHR_frag
                    API Interactions
                    • Interacts with VK_VERSION_1_3
                    • +
                    • Interacts with VK_KHR_dynamic_rendering
                    • Interacts with VK_KHR_format_feature_flags2
                    @@ -154,6 +155,19 @@ val KHR_fragment_shading_rate = "KHRFragmentShadingRate".nativeClassVK("KHR_frag "FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR".enum(0x40000000L) ) + EnumConstant( + "Extends {@code VkPipelineCreateFlagBits}.", + + "PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR".enum(0x00200000), + "PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR".enum(0x00200000) + ) + + EnumConstant( + "Extends {@code VkStructureType}.", + + "STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR".."1000044006" + ) + EnumConstant( """ VkFragmentShadingRateCombinerOpKHR - Control how fragment shading rates are combined diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_maintenance4.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_maintenance4.kt index 21aff4b843..f7f4010084 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_maintenance4.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_maintenance4.kt @@ -27,7 +27,7 @@ val KHR_maintenance4 = "KHRMaintenance4".nativeClassVK("KHR_maintenance4", type
                  Promotion to Vulkan 1.3
                  - Functionality in this extension is included in core Vulkan 1.3, with the KHR suffix omitted. The original type, enum, and command names are still available as aliases of the core functionality. + Vulkan APIs in this extension are included in core Vulkan 1.3, with the KHR suffix omitted. External interactions defined by this extension, such as SPIR-V token names, retain their original names. The original Vulkan API names are still available as aliases of the core functionality.
                  Name String
                  diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_maintenance5.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_maintenance5.kt index 5587cb92c4..6f52983cb3 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_maintenance5.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_maintenance5.kt @@ -353,7 +353,7 @@ val KHR_maintenance5 = "KHRMaintenance5".nativeClassVK("KHR_maintenance5", type
                • #PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR specifies that the shader group handles can be saved and reused on a subsequent run (e.g. for trace capture and replay).
                • #PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV specifies that the pipeline can be used in combination with Device-Generated Commands.
                • #PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT specifies that the pipeline can be used in a {@code VkIndirectExecutionSetEXT}.
                • -
                • #PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR specifies that pipeline creation will fail if a compile is required for creation of a valid {@code VkPipeline} object; #PIPELINE_COMPILE_REQUIRED will be returned by pipeline creation, and the {@code VkPipeline} will be set to #NULL_HANDLE.
                • +
                • #PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR specifies that pipeline creation will fail if a compile is required for creation of a valid {@code VkPipeline} object; #PIPELINE_COMPILE_REQUIRED will be returned by pipeline creation, and the {@code VkPipeline} will be #NULL_HANDLE.
                • When creating multiple pipelines, #PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR specifies that control will be returned to the application if any individual pipeline returns a result which is not #SUCCESS rather than continuing to create additional pipelines.
                • #PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV specifies that the pipeline is allowed to use {@code OpTraceRayMotionNV}.
                • #PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR specifies that the pipeline will be used with a fragment shading rate attachment.
                • @@ -369,6 +369,7 @@ val KHR_maintenance5 = "KHRMaintenance5".nativeClassVK("KHR_maintenance5", type
                • #PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT specifies that the pipeline must not be bound to an unprotected command buffer.
                • #PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR specifies that {@code VkPipelineBinaryKHR} objects can be created from the pipeline. If #PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR is used, implementations should not store pipeline data to an internal cache, if such a cache exists as stated by {@code pipelineBinaryInternalCache}. If {@code pipelineBinaryPrefersInternalCache} is #TRUE, applications should not use #PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR.
                • #PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT specifies that the pipeline will be used in a render pass that is begun with #RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT.
                • +
                • #PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX specifies that the pipeline will be used in an execution graph
                It is valid to set both #PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR and #PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR. This allows a pipeline to be both a parent and possibly a child in a pipeline hierarchy. See Pipeline Derivatives for more information. diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_pipeline_binary.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_pipeline_binary.kt index 5950fee47b..00ff9af1b2 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_pipeline_binary.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_pipeline_binary.kt @@ -192,7 +192,7 @@ val KHR_pipeline_binary = "KHRPipelineBinary".nativeClassVK("KHR_pipeline_binary
                Valid Usage
                  -
                • If ##VkAllocationCallbacks were provided when {@code pipelineBinary} was created, a compatible set of callbacks must be provided here.
                • +
                • If ##VkAllocationCallbacks were provided when {@code pipelineBinary} was created, a compatible set of callbacks must be provided here
                • If no ##VkAllocationCallbacks were provided when {@code pipelineBinary} was created, {@code pAllocator} must be {@code NULL}
                diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_ray_tracing_maintenance1.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_ray_tracing_maintenance1.kt index fab3c41436..e2f9dea6af 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_ray_tracing_maintenance1.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_ray_tracing_maintenance1.kt @@ -198,7 +198,7 @@ val KHR_ray_tracing_maintenance1 = "KHRRayTracingMaintenance1".nativeClassVK("KH
              • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
              • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
              • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
              • -
              • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
              • +
              • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
              • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
              • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
              • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
              • diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_ray_tracing_pipeline.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_ray_tracing_pipeline.kt index 44bb606f79..d2db94dd19 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_ray_tracing_pipeline.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_ray_tracing_pipeline.kt @@ -324,7 +324,7 @@ val KHR_ray_tracing_pipeline = "KHRRayTracingPipeline".nativeClassVK("KHR_ray_tr
              • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
              • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
              • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
              • -
              • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
              • +
              • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
              • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
              • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
              • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
              • @@ -390,10 +390,10 @@ val KHR_ray_tracing_pipeline = "KHRRayTracingPipeline".nativeClassVK("KHR_ray_tr
              • {@code pCallableShaderBindingTable}->stride must be less than or equal to ##VkPhysicalDeviceRayTracingPipelinePropertiesKHR{@code ::maxShaderGroupStride}
              • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, {@code pHitShaderBindingTable}->deviceAddress must not be zero
              • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, {@code pHitShaderBindingTable}->deviceAddress must not be zero
              • -
              • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR, the shader group handle identified by {@code pMissShaderBindingTable}->deviceAddress must not be set to zero
              • -
              • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, entries in the table identified by {@code pHitShaderBindingTable}->deviceAddress accessed as a result of this command in order to execute an any-hit shader must not be set to zero
              • -
              • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, entries in the table identified by {@code pHitShaderBindingTable}->deviceAddress accessed as a result of this command in order to execute a closest hit shader must not be set to zero
              • -
              • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, entries in the table identified by {@code pHitShaderBindingTable}->deviceAddress accessed as a result of this command in order to execute an intersection shader must not be set to zero
              • +
              • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR, the shader group handle identified by {@code pMissShaderBindingTable}->deviceAddress must not be zero
              • +
              • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, entries in the table identified by {@code pHitShaderBindingTable}->deviceAddress accessed as a result of this command in order to execute an any-hit shader must not be zero
              • +
              • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, entries in the table identified by {@code pHitShaderBindingTable}->deviceAddress accessed as a result of this command in order to execute a closest hit shader must not be zero
              • +
              • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, entries in the table identified by {@code pHitShaderBindingTable}->deviceAddress accessed as a result of this command in order to execute an intersection shader must not be zero
              • Any non-zero hit shader group entries in the table identified by {@code pHitShaderBindingTable}->deviceAddress accessed by this call from a geometry with a {@code geometryType} of #GEOMETRY_TYPE_TRIANGLES_KHR must have been created with #RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR
              • Any non-zero hit shader group entries in the table identified by {@code pHitShaderBindingTable}->deviceAddress accessed by this call from a geometry with a {@code geometryType} of #GEOMETRY_TYPE_AABBS_KHR must have been created with #RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR
              @@ -734,7 +734,7 @@ val KHR_ray_tracing_pipeline = "KHRRayTracingPipeline".nativeClassVK("KHR_ray_tr
            • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
            • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
            • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
            • -
            • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
            • +
            • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
            • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
            • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
            • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
            • @@ -800,10 +800,10 @@ val KHR_ray_tracing_pipeline = "KHRRayTracingPipeline".nativeClassVK("KHR_ray_tr
            • {@code pCallableShaderBindingTable}->stride must be less than or equal to ##VkPhysicalDeviceRayTracingPipelinePropertiesKHR{@code ::maxShaderGroupStride}
            • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, {@code pHitShaderBindingTable}->deviceAddress must not be zero
            • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, {@code pHitShaderBindingTable}->deviceAddress must not be zero
            • -
            • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR, the shader group handle identified by {@code pMissShaderBindingTable}->deviceAddress must not be set to zero
            • -
            • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, entries in the table identified by {@code pHitShaderBindingTable}->deviceAddress accessed as a result of this command in order to execute an any-hit shader must not be set to zero
            • -
            • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, entries in the table identified by {@code pHitShaderBindingTable}->deviceAddress accessed as a result of this command in order to execute a closest hit shader must not be set to zero
            • -
            • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, entries in the table identified by {@code pHitShaderBindingTable}->deviceAddress accessed as a result of this command in order to execute an intersection shader must not be set to zero
            • +
            • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR, the shader group handle identified by {@code pMissShaderBindingTable}->deviceAddress must not be zero
            • +
            • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, entries in the table identified by {@code pHitShaderBindingTable}->deviceAddress accessed as a result of this command in order to execute an any-hit shader must not be zero
            • +
            • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, entries in the table identified by {@code pHitShaderBindingTable}->deviceAddress accessed as a result of this command in order to execute a closest hit shader must not be zero
            • +
            • If the currently bound ray tracing pipeline was created with {@code flags} that included #PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, entries in the table identified by {@code pHitShaderBindingTable}->deviceAddress accessed as a result of this command in order to execute an intersection shader must not be zero
            • Any non-zero hit shader group entries in the table identified by {@code pHitShaderBindingTable}->deviceAddress accessed by this call from a geometry with a {@code geometryType} of #GEOMETRY_TYPE_TRIANGLES_KHR must have been created with #RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR
            • Any non-zero hit shader group entries in the table identified by {@code pHitShaderBindingTable}->deviceAddress accessed by this call from a geometry with a {@code geometryType} of #GEOMETRY_TYPE_AABBS_KHR must have been created with #RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR
            diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_shader_integer_dot_product.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_shader_integer_dot_product.kt index f75faff7e3..da680a1c4c 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_shader_integer_dot_product.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_shader_integer_dot_product.kt @@ -14,7 +14,7 @@ val KHR_shader_integer_dot_product = "KHRShaderIntegerDotProduct".nativeClassVK( This extension adds support for the integer dot product SPIR-V instructions defined in SPV_KHR_integer_dot_product. These instructions are particularly useful for neural network inference and training but find uses in other general-purpose compute applications as well.
            Promotion to Vulkan 1.3
            - Functionality in this extension is included in core Vulkan 1.3, with the KHR suffix omitted. The original type, enum, and command names are still available as aliases of the core functionality. + Vulkan APIs in this extension are included in core Vulkan 1.3, with the KHR suffix omitted. External interactions defined by this extension, such as SPIR-V token names, retain their original names. The original Vulkan API names are still available as aliases of the core functionality.
            Name String
            diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_shader_non_semantic_info.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_shader_non_semantic_info.kt index b81e7565ac..53c7dc1bf3 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_shader_non_semantic_info.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_shader_non_semantic_info.kt @@ -14,7 +14,7 @@ val KHR_shader_non_semantic_info = "KHRShaderNonSemanticInfo".nativeClassVK("KHR This extension allows the use of the {@code SPV_KHR_non_semantic_info} extension in SPIR-V shader modules.
            Promotion to Vulkan 1.3
            - Functionality in this extension is included in core Vulkan 1.3 Because the extension has no API controlling its functionality, this results only in a change to the SPIR-V Extensions table. + Functionality in this extension is included in core Vulkan 1.3. Because the extension has no API controlling its functionality, this results only in a change to the SPIR-V Extensions table.
            Name String
            diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_shader_terminate_invocation.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_shader_terminate_invocation.kt index f2247a2a13..6346e30775 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_shader_terminate_invocation.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_shader_terminate_invocation.kt @@ -14,7 +14,7 @@ val KHR_shader_terminate_invocation = "KHRShaderTerminateInvocation".nativeClass This extension adds Vulkan support for the {@code SPV_KHR_terminate_invocation} SPIR-V extension. That SPIR-V extension provides a new instruction, {@code OpTerminateInvocation}, which causes a shader invocation to immediately terminate and sets the coverage of shaded samples to 0; only previously executed instructions will have observable effects. The {@code OpTerminateInvocation} instruction, along with the {@code OpDemoteToHelperInvocation} instruction from the {@link EXTShaderDemoteToHelperInvocation VK_EXT_shader_demote_to_helper_invocation} extension, together replace the {@code OpKill} instruction, which could behave like either of these instructions. {@code OpTerminateInvocation} provides the behavior required by the GLSL {@code discard} statement, and should be used when available by GLSL compilers and applications that need the GLSL {@code discard} behavior.
            Promotion to Vulkan 1.3
            - Functionality in this extension is included in core Vulkan 1.3, with the KHR suffix omitted. The original type, enum, and command names are still available as aliases of the core functionality. + Vulkan APIs in this extension are included in core Vulkan 1.3, with the KHR suffix omitted. External interactions defined by this extension, such as SPIR-V token names, retain their original names. The original Vulkan API names are still available as aliases of the core functionality.
            Name String
            diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_surface.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_surface.kt index 2cad86f917..c4993f1252 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_surface.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_surface.kt @@ -133,6 +133,7 @@ val KHR_surface = "KHRSurface".nativeClassVK("KHR_surface", type = "instance", p
          • #PRESENT_MODE_MAILBOX_KHR specifies that the presentation engine waits for the next vertical blanking period to update the current image. Tearing cannot be observed. An internal single-entry queue is used to hold pending presentation requests. If the queue is full when a new presentation request is received, the new request replaces the existing entry, and any images associated with the prior entry become available for reuse by the application. One request is removed from the queue and processed during each vertical blanking period in which the queue is non-empty.
          • #PRESENT_MODE_FIFO_KHR specifies that the presentation engine waits for the next vertical blanking period to update the current image. Tearing cannot be observed. An internal queue is used to hold pending presentation requests. New requests are appended to the end of the queue, and one request is removed from the beginning of the queue and processed during each vertical blanking period in which the queue is non-empty. This is the only value of {@code presentMode} that is required to be supported.
          • #PRESENT_MODE_FIFO_RELAXED_KHR specifies that the presentation engine generally waits for the next vertical blanking period to update the current image. If a vertical blanking period has already passed since the last update of the current image then the presentation engine does not wait for another vertical blanking period for the update, meaning this mode may result in visible tearing in this case. This mode is useful for reducing visual stutter with an application that will mostly present a new image before the next vertical blanking period, but may occasionally be late, and present a new image just after the next vertical blanking period. An internal queue is used to hold pending presentation requests. New requests are appended to the end of the queue, and one request is removed from the beginning of the queue and processed during or after each vertical blanking period in which the queue is non-empty.
          • +
          • #PRESENT_MODE_FIFO_LATEST_READY_EXT specifies that the presentation engine waits for the next vertical blanking period to update the current image. Tearing cannot be observed. An internal queue is used to hold pending presentation requests. New requests are appended to the end of the queue. At each vertical blanking period, the presentation engine dequeues all successive requests that are ready to be presented from the beginning of the queue. If using {@link GOOGLEDisplayTiming VK_GOOGLE_display_timing} to provide a target present time, the presentation engine will check the specified time for each image. If the target present time is less-than or equal-to the current time, the presentation engine will dequeue the image and check the next one. The image of the last dequeued request will be presented. The other dequeued requests will be dropped.
          • #PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR specifies that the presentation engine and application have concurrent access to a single image, which is referred to as a shared presentable image. The presentation engine is only required to update the current image after a new presentation request is received. Therefore the application must make a presentation request whenever an update is required. However, the presentation engine may update the current image at any point, meaning this mode may result in visible tearing.
          • #PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR specifies that the presentation engine and application have concurrent access to a single image, which is referred to as a shared presentable image. The presentation engine periodically updates the current image on its regular refresh cycle. The application is only required to make one initial presentation request, after which the presentation engine must update the current image without any need for further presentation requests. The application can indicate the image contents have been updated by making a presentation request, but this does not guarantee the timing of when it will be updated. This mode may result in visible tearing if rendering to the image is not timed correctly.
          @@ -147,6 +148,7 @@ val KHR_surface = "KHRSurface".nativeClassVK("KHR_surface", type = "instance", p #PRESENT_MODE_MAILBOX_KHR##VkSurfaceCapabilitiesKHR{@code ::supportedUsageFlags} #PRESENT_MODE_FIFO_KHR##VkSurfaceCapabilitiesKHR{@code ::supportedUsageFlags} #PRESENT_MODE_FIFO_RELAXED_KHR##VkSurfaceCapabilitiesKHR{@code ::supportedUsageFlags} + #PRESENT_MODE_FIFO_LATEST_READY_EXT##VkSurfaceCapabilitiesKHR{@code ::supportedUsageFlags} #PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR##VkSharedPresentSurfaceCapabilitiesKHR{@code ::sharedPresentSupportedUsageFlags} #PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR##VkSharedPresentSurfaceCapabilitiesKHR{@code ::sharedPresentSupportedUsageFlags} @@ -363,7 +365,7 @@ val KHR_surface = "KHRSurface".nativeClassVK("KHR_surface", type = "instance", p VkPhysicalDevice("physicalDevice", "the physical device."), uint32_t("queueFamilyIndex", "the queue family."), VkSurfaceKHR("surface", "the surface."), - Check(1)..VkBool32.p("pSupported", "a pointer to a {@code VkBool32}, which is set to #TRUE to indicate support, and #FALSE otherwise.") + Check(1)..VkBool32.p("pSupported", "a pointer to a {@code VkBool32}. #TRUE indicates support, and #FALSE indicates no support.") ) VkResult( diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_swapchain.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_swapchain.kt index 0ab74a738d..471c1e7fb9 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_swapchain.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_swapchain.kt @@ -782,6 +782,6 @@ val KHR_swapchain = "KHRSwapchain".nativeClassVK("KHR_swapchain", type = "device VkDevice("device", "the device associated with {@code swapchain}."), VkAcquireNextImageInfoKHR.const.p("pAcquireInfo", "a pointer to a ##VkAcquireNextImageInfoKHR structure containing parameters of the acquire."), - Check(1)..uint32_t.p("pImageIndex", "a pointer to a {@code uint32_t} that is set to the index of the next image to use.") + Check(1)..uint32_t.p("pImageIndex", "a pointer to a {@code uint32_t} value specifying the index of the next image to use.") ) } \ No newline at end of file diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_synchronization2.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_synchronization2.kt index 58e69de48b..7523f724a4 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_synchronization2.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_synchronization2.kt @@ -39,7 +39,7 @@ val KHR_synchronization2 = "KHRSynchronization2".nativeClassVK("KHR_synchronizat
        Promotion to Vulkan 1.3
        - Functionality in this extension is included in core Vulkan 1.3, with the KHR suffix omitted. The original type, enum, and command names are still available as aliases of the core functionality. + Vulkan APIs in this extension are included in core Vulkan 1.3, with the KHR suffix omitted. External interactions defined by this extension, such as SPIR-V token names, retain their original names. The original Vulkan API names are still available as aliases of the core functionality.
        Examples
        See https://github.com/KhronosGroup/Vulkan-Docs/wiki/Synchronization-Examples @@ -62,7 +62,6 @@ val KHR_synchronization2 = "KHRSynchronization2".nativeClassVK("KHR_synchronizat
        API Interactions
          -
        • Interacts with VK_AMD_buffer_marker
        • Interacts with VK_EXT_blend_operation_advanced
        • Interacts with VK_EXT_conditional_rendering
        • Interacts with VK_EXT_device_generated_commands
        • @@ -72,7 +71,6 @@ val KHR_synchronization2 = "KHRSynchronization2".nativeClassVK("KHR_synchronizat
        • Interacts with VK_KHR_acceleration_structure
        • Interacts with VK_KHR_fragment_shading_rate
        • Interacts with VK_KHR_ray_tracing_pipeline
        • -
        • Interacts with VK_NV_device_diagnostic_checkpoints
        • Interacts with VK_NV_device_generated_commands
        • Interacts with VK_NV_mesh_shader
        • Interacts with VK_NV_ray_tracing
        • @@ -354,13 +352,6 @@ val KHR_synchronization2 = "KHRSynchronization2".nativeClassVK("KHR_synchronizat "PIPELINE_STAGE_2_MESH_SHADER_BIT_NV".enum(0x00100000L) ) - EnumConstant( - "Extends {@code VkStructureType}.", - - "STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV".."1000314008", - "STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV".."1000314009" - ) - EnumConstantLong( "Extends {@code VkPipelineStageFlagBits2}.", @@ -423,126 +414,4 @@ val KHR_synchronization2 = "KHRSynchronization2".nativeClassVK("KHR_synchronizat nullable..VkSubmitInfo2.const.p("pSubmits", "a pointer to an array of ##VkSubmitInfo2 structures, each specifying a command buffer submission batch."), VkFence("fence", "an optional handle to a fence to be signaled once all submitted command buffers have completed execution. If {@code fence} is not #NULL_HANDLE, it defines a fence signal operation.") ) - - DependsOn("VK_AMD_buffer_marker")..void( - "CmdWriteBufferMarker2AMD", - """ - Execute a pipelined write of a marker value into a buffer. - -
          C Specification
          - To write a 32-bit marker value into a buffer as a pipelined operation, call: - -
          
          -￿void vkCmdWriteBufferMarker2AMD(
          -￿    VkCommandBuffer                             commandBuffer,
          -￿    VkPipelineStageFlags2                       stage,
          -￿    VkBuffer                                    dstBuffer,
          -￿    VkDeviceSize                                dstOffset,
          -￿    uint32_t                                    marker);
          - -
          Description
          - The command will write the 32-bit marker value into the buffer only after all preceding commands have finished executing up to at least the specified pipeline stage. This includes the completion of other preceding {@code vkCmdWriteBufferMarker2AMD} commands so long as their specified pipeline stages occur either at the same time or earlier than this command’s specified {@code stage}. - - While consecutive buffer marker writes with the same {@code stage} parameter implicitly complete in submission order, memory and execution dependencies between buffer marker writes and other operations must still be explicitly ordered using synchronization commands. The access scope for buffer marker writes falls under the #ACCESS_TRANSFER_WRITE_BIT, and the pipeline stages for identifying the synchronization scope must include both {@code stage} and #PIPELINE_STAGE_TRANSFER_BIT. - -
          Note
          - Similar to {@code vkCmdWriteTimestamp2}, if an implementation is unable to write a marker at any specific pipeline stage, it may instead do so at any logically later stage. -
          - -
          Note
          - Implementations may only support a limited number of pipelined marker write operations in flight at a given time. Thus an excessive number of marker write operations may degrade command execution performance. -
          - -
          Valid Usage
          -
            -
          • If the {@code geometryShader} feature is not enabled, {@code stage} must not contain #PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
          • -
          • If the {@code tessellationShader} feature is not enabled, {@code stage} must not contain #PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or #PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT
          • -
          • If the {@code conditionalRendering} feature is not enabled, {@code stage} must not contain #PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
          • -
          • If the {@code fragmentDensityMap} feature is not enabled, {@code stage} must not contain #PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
          • -
          • If the {@code transformFeedback} feature is not enabled, {@code stage} must not contain #PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
          • -
          • If the {@code meshShader} feature is not enabled, {@code stage} must not contain #PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
          • -
          • If the {@code taskShader} feature is not enabled, {@code stage} must not contain #PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
          • -
          • If neither the {@code shadingRateImage} or {@code attachmentFragmentShadingRate} are enabled, {@code stage} must not contain #PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
          • -
          • If the {@code subpassShading} feature is not enabled, {@code stage} must not contain #PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI
          • -
          • If the {@code invocationMask} feature is not enabled, {@code stage} must not contain #PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
          • -
          • If neither the {@link NVRayTracing VK_NV_ray_tracing} extension or {@code rayTracingPipeline} feature are enabled, {@code stage} must not contain #PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
          • -
          • The {@code synchronization2} feature must be enabled
          • -
          • {@code stage} must include only a single pipeline stage
          • -
          • {@code stage} must include only stages that are valid for the queue family that was used to create the command pool that {@code commandBuffer} was allocated from
          • -
          • {@code dstOffset} must be less than or equal to the size of {@code dstBuffer} minus 4
          • -
          • {@code dstBuffer} must have been created with the #BUFFER_USAGE_TRANSFER_DST_BIT usage flag
          • -
          • If {@code dstBuffer} is non-sparse then it must be bound completely and contiguously to a single {@code VkDeviceMemory} object
          • -
          • {@code dstOffset} must be a multiple of 4
          • -
          - -
          Valid Usage (Implicit)
          -
            -
          • {@code commandBuffer} must be a valid {@code VkCommandBuffer} handle
          • -
          • {@code stage} must be a valid combination of {@code VkPipelineStageFlagBits2} values
          • -
          • {@code dstBuffer} must be a valid {@code VkBuffer} handle
          • -
          • {@code commandBuffer} must be in the recording state
          • -
          • The {@code VkCommandPool} that {@code commandBuffer} was allocated from must support transfer, graphics, or compute operations
          • -
          • This command must only be called outside of a video coding scope
          • -
          • Both of {@code commandBuffer}, and {@code dstBuffer} must have been created, allocated, or retrieved from the same {@code VkDevice}
          • -
          - -
          Host Synchronization
          -
            -
          • Host access to {@code commandBuffer} must be externally synchronized
          • -
          • Host access to the {@code VkCommandPool} that {@code commandBuffer} was allocated from must be externally synchronized
          • -
          - -
          Command Properties
          - - - -
          Command Buffer LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
          Primary SecondaryBothOutsideTransfer Graphics ComputeAction
          - """, - - VkCommandBuffer("commandBuffer", "the command buffer into which the command will be recorded."), - VkPipelineStageFlags2("stage", "specifies the pipeline stage whose completion triggers the marker write."), - VkBuffer("dstBuffer", "the buffer where the marker will be written."), - VkDeviceSize("dstOffset", "the byte offset into the buffer where the marker will be written."), - uint32_t("marker", "the 32-bit value of the marker.") - ) - - DependsOn("VK_NV_device_diagnostic_checkpoints")..void( - "GetQueueCheckpointData2NV", - """ - Retrieve diagnostic checkpoint data. - -
          C Specification
          - If the device encounters an error during execution, the implementation will return a #ERROR_DEVICE_LOST error to the application at some point during host execution. When this happens, the application can call #GetQueueCheckpointData2NV() to retrieve information on the most recent diagnostic checkpoints that were executed by the device. - -
          
          -￿void vkGetQueueCheckpointData2NV(
          -￿    VkQueue                                     queue,
          -￿    uint32_t*                                   pCheckpointDataCount,
          -￿    VkCheckpointData2NV*                        pCheckpointData);
          - -
          Description
          - If {@code pCheckpointData} is {@code NULL}, then the number of checkpoint markers available is returned in {@code pCheckpointDataCount}. Otherwise, {@code pCheckpointDataCount} must point to a variable set by the application to the number of elements in the {@code pCheckpointData} array, and on return the variable is overwritten with the number of structures actually written to {@code pCheckpointData}. - - If {@code pCheckpointDataCount} is less than the number of checkpoint markers available, at most {@code pCheckpointDataCount} structures will be written. - -
          Valid Usage
          -
            -
          • The device that {@code queue} belongs to must be in the lost state
          • -
          - -
          Valid Usage (Implicit)
          -
            -
          • {@code queue} must be a valid {@code VkQueue} handle
          • -
          • {@code pCheckpointDataCount} must be a valid pointer to a {@code uint32_t} value
          • -
          • If the value referenced by {@code pCheckpointDataCount} is not 0, and {@code pCheckpointData} is not {@code NULL}, {@code pCheckpointData} must be a valid pointer to an array of {@code pCheckpointDataCount} ##VkCheckpointData2NV structures
          • -
          - -
          See Also
          - ##VkCheckpointData2NV - """, - - VkQueue("queue", "the {@code VkQueue} object the caller would like to retrieve checkpoint data for"), - AutoSize("pCheckpointData")..Check(1)..uint32_t.p("pCheckpointDataCount", "a pointer to an integer related to the number of checkpoint markers available or queried, as described below."), - nullable..VkCheckpointData2NV.p("pCheckpointData", "either {@code NULL} or a pointer to an array of ##VkCheckpointData2NV structures.") - ) } \ No newline at end of file diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_zero_initialize_workgroup_memory.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_zero_initialize_workgroup_memory.kt index dfcdf255ed..c96743dfb6 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_zero_initialize_workgroup_memory.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_zero_initialize_workgroup_memory.kt @@ -14,7 +14,7 @@ val KHR_zero_initialize_workgroup_memory = "KHRZeroInitializeWorkgroupMemory".na This extension allows the use of a null constant initializer on shader Workgroup memory variables, allowing implementations to expose any special hardware or instructions they may have. Zero initialization is commonly used by applications running untrusted content (e.g. web browsers) as way of defeating memory-scraping attacks.
          Promotion to Vulkan 1.3
          - Functionality in this extension is included in core Vulkan 1.3, with the KHR suffix omitted. The original type, enum, and command names are still available as aliases of the core functionality. + Vulkan APIs in this extension are included in core Vulkan 1.3, with the KHR suffix omitted. External interactions defined by this extension, such as SPIR-V token names, retain their original names. The original Vulkan API names are still available as aliases of the core functionality.
          Name String
          diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NVX_multiview_per_view_attributes.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NVX_multiview_per_view_attributes.kt index 16574cf4d9..a027c3bc7f 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NVX_multiview_per_view_attributes.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NVX_multiview_per_view_attributes.kt @@ -56,6 +56,12 @@ val NVX_multiview_per_view_attributes = "NVXMultiviewPerViewAttributes".nativeCl
          Extension and Version Dependencies
          {@link KHRMultiview VK_KHR_multiview} or Version 1.1
          +
          API Interactions
          +
            +
          • Interacts with VK_VERSION_1_3
          • +
          • Interacts with VK_KHR_dynamic_rendering
          • +
          +
          SPIR-V Dependencies
          • SPV_NVX_multiview_per_view_attributes
          • @@ -113,4 +119,10 @@ val NVX_multiview_per_view_attributes = "NVXMultiviewPerViewAttributes".nativeCl "SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX".enum(0x00000001), "SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX".enum(0x00000002) ) + + EnumConstant( + "Extends {@code VkStructureType}.", + + "STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX".."1000044009" + ) } \ No newline at end of file diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_cooperative_matrix2.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_cooperative_matrix2.kt new file mode 100644 index 0000000000..aece0f0abf --- /dev/null +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_cooperative_matrix2.kt @@ -0,0 +1,138 @@ +/* + * Copyright LWJGL. All rights reserved. + * License terms: https://www.lwjgl.org/license + * MACHINE GENERATED FILE, DO NOT EDIT + */ +package vulkan.templates + +import org.lwjgl.generator.* +import vulkan.* + +val NV_cooperative_matrix2 = "NVCooperativeMatrix2".nativeClassVK("NV_cooperative_matrix2", type = "device", postfix = "NV") { + documentation = + """ + This extension adds several new features building on the cooperative matrix types added in VK_KHR_cooperative_matrix. The goal is to add and accelerate features beyond just simple GEMM kernels, including adding support for type/use conversions, reductions, per-element operations, and tensor addressing, and also to improve usability and out-of-the-box performance by adding support for more flexible matrix sizes, and workgroup scope matrices with compiler-managed staging through shared memory. + + The new functionality is defined by the {@code SPV_NV_tensor_addressing} and {@code SPV_NV_cooperative_matrix2} SPIR-V extensions and can be used with the {@code GLSL_NV_cooperative_matrix2} GLSL extension. + + This extension includes support for enumerating the matrix types and dimensions that are supported by the implementation, and which specific features are supported. + +
            +
            Name String
            +
            {@code VK_NV_cooperative_matrix2}
            + +
            Extension Type
            +
            Device extension
            + +
            Registered Extension Number
            +
            594
            + +
            Revision
            +
            1
            + +
            Extension and Version Dependencies
            +
            {@link KHRCooperativeMatrix VK_KHR_cooperative_matrix}
            + +
            SPIR-V Dependencies
            +
            + +
            Contact
            +
            + +
            Extension Proposal
            +
            VK_NV_cooperative_matrix2
            +
            + +
            Other Extension Metadata
            +
            +
            Last Modified Date
            +
            2024-08-01
            + +
            Interactions and External Dependencies
            +
            + +
            Contributors
            +
              +
            • Jeff Bolz, NVIDIA
            • +
            • Karthik Vaidyanathan, NVIDIA
            • +
            +
            + """ + + IntConstant( + "The extension specification version.", + + "NV_COOPERATIVE_MATRIX_2_SPEC_VERSION".."1" + ) + + StringConstant( + "The extension name.", + + "NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME".."VK_NV_cooperative_matrix2" + ) + + EnumConstant( + "Extends {@code VkStructureType}.", + + "STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV".."1000593000", + "STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV".."1000593001", + "STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV".."1000593002" + ) + + VkResult( + "GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV", + """ + Returns properties describing what cooperative matrix types are supported. + +
            C Specification
            + To enumerate additional supported cooperative matrix types and operations, call: + +
            
            +￿VkResult vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(
            +￿    VkPhysicalDevice                            physicalDevice,
            +￿    uint32_t*                                   pPropertyCount,
            +￿    VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties);
            + +
            Description
            + If {@code pProperties} is {@code NULL}, then the number of flexible dimensions properties available is returned in {@code pPropertyCount}. Otherwise, {@code pPropertyCount} must point to a variable set by the application to the number of elements in the {@code pProperties} array, and on return the variable is overwritten with the number of structures actually written to {@code pProperties}. If {@code pPropertyCount} is less than the number flexible dimensions properties available, at most {@code pPropertyCount} structures will be written, and #INCOMPLETE will be returned instead of #SUCCESS, to indicate that not all the available flexible dimensions properties were returned. + + If {@code cooperativeMatrixFlexibleDimensions} is not supported, the implementation must advertise zero properties. + +
            Valid Usage (Implicit)
            +
              +
            • {@code physicalDevice} must be a valid {@code VkPhysicalDevice} handle
            • +
            • {@code pPropertyCount} must be a valid pointer to a {@code uint32_t} value
            • +
            • If the value referenced by {@code pPropertyCount} is not 0, and {@code pProperties} is not {@code NULL}, {@code pProperties} must be a valid pointer to an array of {@code pPropertyCount} ##VkCooperativeMatrixFlexibleDimensionsPropertiesNV structures
            • +
            + +
            Return Codes
            +
            +
            On success, this command returns
            +
              +
            • #SUCCESS
            • +
            • #INCOMPLETE
            • +
            + +
            On failure, this command returns
            +
              +
            • #ERROR_OUT_OF_HOST_MEMORY
            • +
            • #ERROR_OUT_OF_DEVICE_MEMORY
            • +
            +
            + +
            See Also
            + ##VkCooperativeMatrixFlexibleDimensionsPropertiesNV + """, + + VkPhysicalDevice("physicalDevice", "the physical device."), + AutoSize("pProperties")..Check(1)..uint32_t.p("pPropertyCount", "a pointer to an integer related to the number of cooperative matrix properties available or queried."), + nullable..VkCooperativeMatrixFlexibleDimensionsPropertiesNV.p("pProperties", "either {@code NULL} or a pointer to an array of ##VkCooperativeMatrixFlexibleDimensionsPropertiesNV structures.") + ) +} \ No newline at end of file diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_device_diagnostic_checkpoints.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_device_diagnostic_checkpoints.kt index 9c0b7cad9d..454550561e 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_device_diagnostic_checkpoints.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_device_diagnostic_checkpoints.kt @@ -31,6 +31,12 @@ val NV_device_diagnostic_checkpoints = "NVDeviceDiagnosticCheckpoints".nativeCla
            Extension and Version Dependencies
            {@link KHRGetPhysicalDeviceProperties2 VK_KHR_get_physical_device_properties2} or Version 1.1
            +
            API Interactions
            +
              +
            • Interacts with VK_VERSION_1_3
            • +
            • Interacts with VK_KHR_synchronization2
            • +
            +
            Contact
            • Nuno Subtil nsubtil
            • @@ -72,6 +78,13 @@ val NV_device_diagnostic_checkpoints = "NVDeviceDiagnosticCheckpoints".nativeCla "STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV".."1000206001" ) + EnumConstant( + "Extends {@code VkStructureType}.", + + "STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV".."1000314008", + "STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV".."1000314009" + ) + void( "CmdSetCheckpointNV", """ @@ -151,4 +164,44 @@ val NV_device_diagnostic_checkpoints = "NVDeviceDiagnosticCheckpoints".nativeCla AutoSize("pCheckpointData")..Check(1)..uint32_t.p("pCheckpointDataCount", "a pointer to an integer related to the number of checkpoint markers available or queried, as described below."), nullable..VkCheckpointDataNV.p("pCheckpointData", "either {@code NULL} or a pointer to an array of ##VkCheckpointDataNV structures.") ) + + DependsOn("""ext.contains("Vulkan13") || ext.contains("VK_KHR_synchronization2")""")..void( + "GetQueueCheckpointData2NV", + """ + Retrieve diagnostic checkpoint data. + +
              C Specification
              + If the device encounters an error during execution, the implementation will return a #ERROR_DEVICE_LOST error to the application at some point during host execution. When this happens, the application can call #GetQueueCheckpointData2NV() to retrieve information on the most recent diagnostic checkpoints that were executed by the device. + +
              
              +￿void vkGetQueueCheckpointData2NV(
              +￿    VkQueue                                     queue,
              +￿    uint32_t*                                   pCheckpointDataCount,
              +￿    VkCheckpointData2NV*                        pCheckpointData);
              + +
              Description
              + If {@code pCheckpointData} is {@code NULL}, then the number of checkpoint markers available is returned in {@code pCheckpointDataCount}. Otherwise, {@code pCheckpointDataCount} must point to a variable set by the application to the number of elements in the {@code pCheckpointData} array, and on return the variable is overwritten with the number of structures actually written to {@code pCheckpointData}. + + If {@code pCheckpointDataCount} is less than the number of checkpoint markers available, at most {@code pCheckpointDataCount} structures will be written. + +
              Valid Usage
              +
                +
              • The device that {@code queue} belongs to must be in the lost state
              • +
              + +
              Valid Usage (Implicit)
              +
                +
              • {@code queue} must be a valid {@code VkQueue} handle
              • +
              • {@code pCheckpointDataCount} must be a valid pointer to a {@code uint32_t} value
              • +
              • If the value referenced by {@code pCheckpointDataCount} is not 0, and {@code pCheckpointData} is not {@code NULL}, {@code pCheckpointData} must be a valid pointer to an array of {@code pCheckpointDataCount} ##VkCheckpointData2NV structures
              • +
              + +
              See Also
              + ##VkCheckpointData2NV + """, + + VkQueue("queue", "the {@code VkQueue} object the caller would like to retrieve checkpoint data for"), + AutoSize("pCheckpointData")..Check(1)..uint32_t.p("pCheckpointDataCount", "a pointer to an integer related to the number of checkpoint markers available or queried, as described below."), + nullable..VkCheckpointData2NV.p("pCheckpointData", "either {@code NULL} or a pointer to an array of ##VkCheckpointData2NV structures.") + ) } \ No newline at end of file diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_device_generated_commands.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_device_generated_commands.kt index 86a87ca5b1..767ef9e69f 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_device_generated_commands.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_device_generated_commands.kt @@ -230,7 +230,7 @@ val NV_device_generated_commands = "NVDeviceGeneratedCommands".nativeClassVK("NV
              Valid Usage
              @@ -267,7 +267,7 @@ val NV_device_generated_commands = "NVDeviceGeneratedCommands".nativeClassVK("NV
              Valid Usage (Implicit)
              @@ -358,7 +358,7 @@ val NV_device_generated_commands = "NVDeviceGeneratedCommands".nativeClassVK("NV
            • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
            • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
            • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
            • -
            • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
            • +
            • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
            • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
            • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
            • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
            • @@ -463,6 +463,7 @@ val NV_device_generated_commands = "NVDeviceGeneratedCommands".nativeClassVK("NV
            • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilReference() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ##VkPhysicalDeviceMultiviewProperties{@code ::maxMultiviewInstanceIndex}
            • If the bound graphics pipeline was created with ##VkPipelineSampleLocationsStateCreateInfoEXT{@code ::sampleLocationsEnable} set to #TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the #IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
            • +
            • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code sampleLocationsEnable} is #TRUE, then #CmdSetSampleLocationsEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetCullMode() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetFrontFace() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • @@ -472,10 +473,9 @@ val NV_device_generated_commands = "NVDeviceGeneratedCommands".nativeClassVK("NV
            • If the {@code depthBounds} feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDepthBoundsTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetStencilTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilOp() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • -
            • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then #CmdSetViewportWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::scissorCount} of the pipeline
            • -
            • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::viewportCount} of the pipeline
            • -
            • If the bound graphics pipeline state was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
            • -
            • If a shader object is bound to any graphics stage, then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
            • +
            • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetViewportWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • +
            • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetScissorWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing
            • +
            • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled, and the state is not inherited, then the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
            • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with ##VkPipelineViewportWScalingStateCreateInfoNV{@code ::viewportCount} greater or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
            • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then #CmdSetViewportWScalingNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then the {@code viewportCount} parameter in the last call to #CmdSetViewportWScalingNV() must be greater than or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
            • @@ -541,11 +541,9 @@ val NV_device_generated_commands = "NVDeviceGeneratedCommands".nativeClassVK("NV
            • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the {@code attachmentCount} parameter of {@code vkCmdSetColorWriteEnableEXT} must be greater than or equal to the ##VkPipelineColorBlendStateCreateInfo{@code ::attachmentCount} of the currently bound graphics pipeline
            • If the {@code colorWriteEnable} feature is enabled on the device, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then the {@code attachmentCount} parameter of most recent call to {@code vkCmdSetColorWriteEnableEXT} in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
            • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in ##VkPipelineDiscardRectangleStateCreateInfoEXT{@code ::discardRectangleCount}
            • -
            • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • +
            • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • +
            • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code discardRectangleEnable} is #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • -
            • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • -
            • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • -
            • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to #FORMAT_UNDEFINED
            • If current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}
            • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is enabled, ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, and the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}, the value of the format must be #FORMAT_UNDEFINED
            • @@ -587,21 +585,18 @@ val NV_device_generated_commands = "NVDeviceGeneratedCommands".nativeClassVK("NV
            • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetConservativeRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code conservativeRasterizationMode} is #CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then #CmdSetExtraPrimitiveOverestimationSizeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • If the {@code depthClipEnable} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then #CmdSetDepthClipEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • -
            • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • -
            • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • If the {@link EXTBlendOperationAdvanced VK_EXT_blend_operation_advanced} extension is enabled, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then at least one of #CmdSetColorBlendEquationEXT() and #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • If the {@link EXTProvokingVertex VK_EXT_provoking_vertex} extension is enabled, a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetProvokingVertexModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • -
            • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • -
            • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • -
            • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • +
            • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • +
            • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • +
            • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • -
            • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • -
            • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • -
            • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • -
            • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • -
            • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetLineStippleEnableEXT() in the current command buffer set {@code stippledLineEnable} to #TRUE, then #CmdSetLineStippleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • +
            • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • +
            • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • +
            • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • +
            • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled and a shader object is bound to any graphics stage, or a bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code stippledLineEnable} is #TRUE, then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • If the {@code depthClipControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then #CmdSetDepthClipNegativeOneToOneEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • If the {@code depthClampControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of {@code depthClampEnable} is #TRUE, then #CmdSetDepthClampRangeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then #CmdSetViewportWScalingEnableNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • @@ -619,7 +614,7 @@ val NV_device_generated_commands = "NVDeviceGeneratedCommands".nativeClassVK("NV
            • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must follow the rules for a zero-attachment subpass
            • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the ##VkPipelineMultisampleStateCreateInfo{@code ::rasterizationSamples} parameter used to create the bound graphics pipeline
            • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state and #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the {@code rasterizationSamples} parameter in the last call to #CmdSetRasterizationSamplesEXT()
            • -
            • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
            • +
            • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the {@code multisampledRenderToSingleSampled} feature is not enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
            • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a ##VkMultisampledRenderToSingleSampledInfoEXT structure with {@code multisampledRenderToSingleSampledEnable} equal to #TRUE, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the {@code rasterizationSamples} member of that structure
            • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
            • If a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
            • @@ -698,13 +693,13 @@ val NV_device_generated_commands = "NVDeviceGeneratedCommands".nativeClassVK("NV
            • If there is a shader object bound to the #SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled, and the current value of {@code primitiveTopology} is #PRIMITIVE_TOPOLOGY_PATCH_LIST, then #CmdSetPatchControlPointsEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • If there is a shader object bound to the #SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then #CmdSetPrimitiveRestartEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
            • If the {@code primitiveTopologyListRestart} feature is not enabled, the topology is #PRIMITIVE_TOPOLOGY_POINT_LIST, #PRIMITIVE_TOPOLOGY_LINE_LIST, #PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, #PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or #PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the #SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then #CmdSetPrimitiveRestartEnable() must be #FALSE
            • -
            • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of an element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT
            • +
            • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of any element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT
            • There must be no shader object bound to either of the #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT stages
            • {@code commandBuffer} must not be a protected command buffer
            • If {@code isPreprocessed} is #TRUE then #CmdPreprocessGeneratedCommandsNV() must have already been executed on the device, using the same {@code pGeneratedCommandsInfo} content as well as the content of the input buffers it references (all except ##VkGeneratedCommandsInfoNV{@code ::preprocessBuffer}). Furthermore {@code pGeneratedCommandsInfo}`s {@code indirectCommandsLayout} must have been created with the #INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV bit set
            • ##VkGeneratedCommandsInfoNV{@code ::pipeline} must match the current bound pipeline at ##VkGeneratedCommandsInfoNV{@code ::pipelineBindPoint}
            • Transform feedback must not be active
            • -
            • The ##VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV{@code ::deviceGeneratedCommands} feature must be enabled
            • +
            • The ##VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV{@code ::deviceGeneratedCommands} feature must be enabled
            Valid Usage (Implicit)
            @@ -758,7 +753,7 @@ val NV_device_generated_commands = "NVDeviceGeneratedCommands".nativeClassVK("NV
          • {@code groupIndex} must be 0 or less than the effective ##VkGraphicsPipelineShaderGroupsCreateInfoNV{@code ::groupCount} including the referenced pipelines
          • The {@code pipelineBindPoint} must be #PIPELINE_BIND_POINT_GRAPHICS
          • The same restrictions as #CmdBindPipeline() apply as if the bound pipeline was created only with the Shader Group from the {@code groupIndex} information
          • -
          • The {@code deviceGeneratedCommands} feature must be enabled
          • +
          • The ##VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV{@code ::deviceGeneratedCommands} feature must be enabled
          Valid Usage (Implicit)
          @@ -808,7 +803,7 @@ val NV_device_generated_commands = "NVDeviceGeneratedCommands".nativeClassVK("NV
          Valid Usage
          Valid Usage (Implicit)
          @@ -862,7 +857,7 @@ val NV_device_generated_commands = "NVDeviceGeneratedCommands".nativeClassVK("NV
        • All submitted commands that refer to {@code indirectCommandsLayout} must have completed execution
        • If ##VkAllocationCallbacks were provided when {@code indirectCommandsLayout} was created, a compatible set of callbacks must be provided here
        • If no ##VkAllocationCallbacks were provided when {@code indirectCommandsLayout} was created, {@code pAllocator} must be {@code NULL}
        • -
        • The ##VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV{@code ::deviceGeneratedCommands} feature must be enabled
        • +
        • The ##VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV{@code ::deviceGeneratedCommands} feature must be enabled
        Valid Usage (Implicit)
        diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_framebuffer_mixed_samples.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_framebuffer_mixed_samples.kt index 3e17fd9d77..a46ff78448 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_framebuffer_mixed_samples.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_framebuffer_mixed_samples.kt @@ -37,6 +37,12 @@ val NV_framebuffer_mixed_samples = "NVFramebufferMixedSamples".nativeClassVK("NV
        Revision
        1
        +
        API Interactions
        +
          +
        • Interacts with VK_VERSION_1_3
        • +
        • Interacts with VK_KHR_dynamic_rendering
        • +
        +
        Contact
        • Jeff Bolz jeffbolznv
        • @@ -73,6 +79,12 @@ val NV_framebuffer_mixed_samples = "NVFramebufferMixedSamples".nativeClassVK("NV "STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV".."1000152000" ) + EnumConstant( + "Extends {@code VkStructureType}.", + + "STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV".."1000044008" + ) + EnumConstant( """ VkCoverageModulationModeNV - Specify the coverage modulation mode diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_mesh_shader.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_mesh_shader.kt index 4bfcfbb5ec..b2c7355e0a 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_mesh_shader.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_mesh_shader.kt @@ -170,7 +170,7 @@ val NV_mesh_shader = "NVMeshShader".nativeClassVK("NV_mesh_shader", type = "devi
        • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
        • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
        • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
        • -
        • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
        • +
        • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
        • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
        • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
        • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
        • @@ -275,6 +275,7 @@ val NV_mesh_shader = "NVMeshShader".nativeClassVK("NV_mesh_shader", type = "devi
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilReference() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ##VkPhysicalDeviceMultiviewProperties{@code ::maxMultiviewInstanceIndex}
        • If the bound graphics pipeline was created with ##VkPipelineSampleLocationsStateCreateInfoEXT{@code ::sampleLocationsEnable} set to #TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the #IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
        • +
        • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code sampleLocationsEnable} is #TRUE, then #CmdSetSampleLocationsEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetCullMode() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetFrontFace() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • @@ -284,10 +285,9 @@ val NV_mesh_shader = "NVMeshShader".nativeClassVK("NV_mesh_shader", type = "devi
        • If the {@code depthBounds} feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDepthBoundsTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetStencilTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilOp() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then #CmdSetViewportWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::scissorCount} of the pipeline
        • -
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::viewportCount} of the pipeline
        • -
        • If the bound graphics pipeline state was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
        • -
        • If a shader object is bound to any graphics stage, then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
        • +
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetViewportWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetScissorWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing
        • +
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled, and the state is not inherited, then the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with ##VkPipelineViewportWScalingStateCreateInfoNV{@code ::viewportCount} greater or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
        • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then #CmdSetViewportWScalingNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then the {@code viewportCount} parameter in the last call to #CmdSetViewportWScalingNV() must be greater than or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
        • @@ -353,11 +353,9 @@ val NV_mesh_shader = "NVMeshShader".nativeClassVK("NV_mesh_shader", type = "devi
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the {@code attachmentCount} parameter of {@code vkCmdSetColorWriteEnableEXT} must be greater than or equal to the ##VkPipelineColorBlendStateCreateInfo{@code ::attachmentCount} of the currently bound graphics pipeline
        • If the {@code colorWriteEnable} feature is enabled on the device, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then the {@code attachmentCount} parameter of most recent call to {@code vkCmdSetColorWriteEnableEXT} in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in ##VkPipelineDiscardRectangleStateCreateInfoEXT{@code ::discardRectangleCount}
        • -
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code discardRectangleEnable} is #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to #FORMAT_UNDEFINED
        • If current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}
        • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is enabled, ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, and the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}, the value of the format must be #FORMAT_UNDEFINED
        • @@ -399,21 +397,18 @@ val NV_mesh_shader = "NVMeshShader".nativeClassVK("NV_mesh_shader", type = "devi
        • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetConservativeRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code conservativeRasterizationMode} is #CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then #CmdSetExtraPrimitiveOverestimationSizeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@code depthClipEnable} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then #CmdSetDepthClipEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@link EXTBlendOperationAdvanced VK_EXT_blend_operation_advanced} extension is enabled, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then at least one of #CmdSetColorBlendEquationEXT() and #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@link EXTProvokingVertex VK_EXT_provoking_vertex} extension is enabled, a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetProvokingVertexModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetLineStippleEnableEXT() in the current command buffer set {@code stippledLineEnable} to #TRUE, then #CmdSetLineStippleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled and a shader object is bound to any graphics stage, or a bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code stippledLineEnable} is #TRUE, then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@code depthClipControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then #CmdSetDepthClipNegativeOneToOneEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@code depthClampControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of {@code depthClampEnable} is #TRUE, then #CmdSetDepthClampRangeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then #CmdSetViewportWScalingEnableNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • @@ -431,7 +426,7 @@ val NV_mesh_shader = "NVMeshShader".nativeClassVK("NV_mesh_shader", type = "devi
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must follow the rules for a zero-attachment subpass
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the ##VkPipelineMultisampleStateCreateInfo{@code ::rasterizationSamples} parameter used to create the bound graphics pipeline
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state and #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the {@code rasterizationSamples} parameter in the last call to #CmdSetRasterizationSamplesEXT()
        • -
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
        • +
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the {@code multisampledRenderToSingleSampled} feature is not enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a ##VkMultisampledRenderToSingleSampledInfoEXT structure with {@code multisampledRenderToSingleSampledEnable} equal to #TRUE, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the {@code rasterizationSamples} member of that structure
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
        • If a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
        • @@ -495,7 +490,7 @@ val NV_mesh_shader = "NVMeshShader".nativeClassVK("NV_mesh_shader", type = "devi
          -
        • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of an element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_VERTEX_BIT, #SHADER_STAGE_TESSELLATION_CONTROL_BIT, #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT
        • +
        • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of any element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_VERTEX_BIT, #SHADER_STAGE_TESSELLATION_CONTROL_BIT, #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT
        • Transform Feedback Queries must not be active
        • Primitives Generated Queries must not be active
        • The {@code pipelineStatistics} member used to create any active Pipeline Statistics Query must not contain #QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, #QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, #QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, #QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, #QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, #QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, #QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, #QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or #QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT
        • @@ -588,7 +583,7 @@ val NV_mesh_shader = "NVMeshShader".nativeClassVK("NV_mesh_shader", type = "devi
        • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
        • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
        • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
        • -
        • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
        • +
        • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
        • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
        • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
        • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
        • @@ -693,6 +688,7 @@ val NV_mesh_shader = "NVMeshShader".nativeClassVK("NV_mesh_shader", type = "devi
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilReference() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ##VkPhysicalDeviceMultiviewProperties{@code ::maxMultiviewInstanceIndex}
        • If the bound graphics pipeline was created with ##VkPipelineSampleLocationsStateCreateInfoEXT{@code ::sampleLocationsEnable} set to #TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the #IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
        • +
        • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code sampleLocationsEnable} is #TRUE, then #CmdSetSampleLocationsEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetCullMode() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetFrontFace() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • @@ -702,10 +698,9 @@ val NV_mesh_shader = "NVMeshShader".nativeClassVK("NV_mesh_shader", type = "devi
        • If the {@code depthBounds} feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDepthBoundsTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetStencilTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilOp() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then #CmdSetViewportWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::scissorCount} of the pipeline
        • -
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::viewportCount} of the pipeline
        • -
        • If the bound graphics pipeline state was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
        • -
        • If a shader object is bound to any graphics stage, then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
        • +
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetViewportWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetScissorWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing
        • +
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled, and the state is not inherited, then the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with ##VkPipelineViewportWScalingStateCreateInfoNV{@code ::viewportCount} greater or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
        • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then #CmdSetViewportWScalingNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then the {@code viewportCount} parameter in the last call to #CmdSetViewportWScalingNV() must be greater than or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
        • @@ -771,11 +766,9 @@ val NV_mesh_shader = "NVMeshShader".nativeClassVK("NV_mesh_shader", type = "devi
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the {@code attachmentCount} parameter of {@code vkCmdSetColorWriteEnableEXT} must be greater than or equal to the ##VkPipelineColorBlendStateCreateInfo{@code ::attachmentCount} of the currently bound graphics pipeline
        • If the {@code colorWriteEnable} feature is enabled on the device, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then the {@code attachmentCount} parameter of most recent call to {@code vkCmdSetColorWriteEnableEXT} in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in ##VkPipelineDiscardRectangleStateCreateInfoEXT{@code ::discardRectangleCount}
        • -
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code discardRectangleEnable} is #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to #FORMAT_UNDEFINED
        • If current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}
        • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is enabled, ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, and the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}, the value of the format must be #FORMAT_UNDEFINED
        • @@ -817,21 +810,18 @@ val NV_mesh_shader = "NVMeshShader".nativeClassVK("NV_mesh_shader", type = "devi
        • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetConservativeRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code conservativeRasterizationMode} is #CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then #CmdSetExtraPrimitiveOverestimationSizeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@code depthClipEnable} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then #CmdSetDepthClipEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@link EXTBlendOperationAdvanced VK_EXT_blend_operation_advanced} extension is enabled, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then at least one of #CmdSetColorBlendEquationEXT() and #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@link EXTProvokingVertex VK_EXT_provoking_vertex} extension is enabled, a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetProvokingVertexModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetLineStippleEnableEXT() in the current command buffer set {@code stippledLineEnable} to #TRUE, then #CmdSetLineStippleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled and a shader object is bound to any graphics stage, or a bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code stippledLineEnable} is #TRUE, then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@code depthClipControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then #CmdSetDepthClipNegativeOneToOneEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@code depthClampControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of {@code depthClampEnable} is #TRUE, then #CmdSetDepthClampRangeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then #CmdSetViewportWScalingEnableNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • @@ -849,7 +839,7 @@ val NV_mesh_shader = "NVMeshShader".nativeClassVK("NV_mesh_shader", type = "devi
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must follow the rules for a zero-attachment subpass
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the ##VkPipelineMultisampleStateCreateInfo{@code ::rasterizationSamples} parameter used to create the bound graphics pipeline
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state and #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the {@code rasterizationSamples} parameter in the last call to #CmdSetRasterizationSamplesEXT()
        • -
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
        • +
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the {@code multisampledRenderToSingleSampled} feature is not enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a ##VkMultisampledRenderToSingleSampledInfoEXT structure with {@code multisampledRenderToSingleSampledEnable} equal to #TRUE, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the {@code rasterizationSamples} member of that structure
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
        • If a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
        • @@ -913,7 +903,7 @@ val NV_mesh_shader = "NVMeshShader".nativeClassVK("NV_mesh_shader", type = "devi
          -
        • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of an element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_VERTEX_BIT, #SHADER_STAGE_TESSELLATION_CONTROL_BIT, #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT
        • +
        • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of any element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_VERTEX_BIT, #SHADER_STAGE_TESSELLATION_CONTROL_BIT, #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT
        • Transform Feedback Queries must not be active
        • Primitives Generated Queries must not be active
        • The {@code pipelineStatistics} member used to create any active Pipeline Statistics Query must not contain #QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, #QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, #QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, #QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, #QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, #QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, #QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, #QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or #QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT
        • @@ -1026,7 +1016,7 @@ val NV_mesh_shader = "NVMeshShader".nativeClassVK("NV_mesh_shader", type = "devi
        • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
        • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
        • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
        • -
        • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
        • +
        • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
        • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
        • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
        • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
        • @@ -1131,6 +1121,7 @@ val NV_mesh_shader = "NVMeshShader".nativeClassVK("NV_mesh_shader", type = "devi
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilReference() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ##VkPhysicalDeviceMultiviewProperties{@code ::maxMultiviewInstanceIndex}
        • If the bound graphics pipeline was created with ##VkPipelineSampleLocationsStateCreateInfoEXT{@code ::sampleLocationsEnable} set to #TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the #IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
        • +
        • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code sampleLocationsEnable} is #TRUE, then #CmdSetSampleLocationsEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetCullMode() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetFrontFace() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • @@ -1140,10 +1131,9 @@ val NV_mesh_shader = "NVMeshShader".nativeClassVK("NV_mesh_shader", type = "devi
        • If the {@code depthBounds} feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDepthBoundsTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetStencilTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilOp() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then #CmdSetViewportWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::scissorCount} of the pipeline
        • -
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::viewportCount} of the pipeline
        • -
        • If the bound graphics pipeline state was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
        • -
        • If a shader object is bound to any graphics stage, then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
        • +
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetViewportWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetScissorWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing
        • +
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled, and the state is not inherited, then the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with ##VkPipelineViewportWScalingStateCreateInfoNV{@code ::viewportCount} greater or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
        • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then #CmdSetViewportWScalingNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then the {@code viewportCount} parameter in the last call to #CmdSetViewportWScalingNV() must be greater than or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
        • @@ -1209,11 +1199,9 @@ val NV_mesh_shader = "NVMeshShader".nativeClassVK("NV_mesh_shader", type = "devi
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the {@code attachmentCount} parameter of {@code vkCmdSetColorWriteEnableEXT} must be greater than or equal to the ##VkPipelineColorBlendStateCreateInfo{@code ::attachmentCount} of the currently bound graphics pipeline
        • If the {@code colorWriteEnable} feature is enabled on the device, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then the {@code attachmentCount} parameter of most recent call to {@code vkCmdSetColorWriteEnableEXT} in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in ##VkPipelineDiscardRectangleStateCreateInfoEXT{@code ::discardRectangleCount}
        • -
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code discardRectangleEnable} is #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to #FORMAT_UNDEFINED
        • If current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}
        • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is enabled, ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, and the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}, the value of the format must be #FORMAT_UNDEFINED
        • @@ -1255,21 +1243,18 @@ val NV_mesh_shader = "NVMeshShader".nativeClassVK("NV_mesh_shader", type = "devi
        • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetConservativeRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code conservativeRasterizationMode} is #CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then #CmdSetExtraPrimitiveOverestimationSizeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@code depthClipEnable} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then #CmdSetDepthClipEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@link EXTBlendOperationAdvanced VK_EXT_blend_operation_advanced} extension is enabled, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then at least one of #CmdSetColorBlendEquationEXT() and #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@link EXTProvokingVertex VK_EXT_provoking_vertex} extension is enabled, a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetProvokingVertexModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetLineStippleEnableEXT() in the current command buffer set {@code stippledLineEnable} to #TRUE, then #CmdSetLineStippleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled and a shader object is bound to any graphics stage, or a bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code stippledLineEnable} is #TRUE, then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@code depthClipControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then #CmdSetDepthClipNegativeOneToOneEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@code depthClampControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of {@code depthClampEnable} is #TRUE, then #CmdSetDepthClampRangeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then #CmdSetViewportWScalingEnableNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • @@ -1287,7 +1272,7 @@ val NV_mesh_shader = "NVMeshShader".nativeClassVK("NV_mesh_shader", type = "devi
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must follow the rules for a zero-attachment subpass
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the ##VkPipelineMultisampleStateCreateInfo{@code ::rasterizationSamples} parameter used to create the bound graphics pipeline
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state and #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the {@code rasterizationSamples} parameter in the last call to #CmdSetRasterizationSamplesEXT()
        • -
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
        • +
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the {@code multisampledRenderToSingleSampled} feature is not enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a ##VkMultisampledRenderToSingleSampledInfoEXT structure with {@code multisampledRenderToSingleSampledEnable} equal to #TRUE, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the {@code rasterizationSamples} member of that structure
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
        • If a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
        • @@ -1351,7 +1336,7 @@ val NV_mesh_shader = "NVMeshShader".nativeClassVK("NV_mesh_shader", type = "devi
          -
        • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of an element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_VERTEX_BIT, #SHADER_STAGE_TESSELLATION_CONTROL_BIT, #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT
        • +
        • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of any element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_VERTEX_BIT, #SHADER_STAGE_TESSELLATION_CONTROL_BIT, #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT
        • Transform Feedback Queries must not be active
        • Primitives Generated Queries must not be active
        • The {@code pipelineStatistics} member used to create any active Pipeline Statistics Query must not contain #QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, #QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, #QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, #QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, #QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, #QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, #QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, #QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, or #QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT
        • @@ -1373,8 +1358,6 @@ val NV_mesh_shader = "NVMeshShader".nativeClassVK("NV_mesh_shader", type = "devi
        • If {@code drawIndirectCount} is not enabled this function must not be used
        • {@code stride} must be a multiple of 4 and must be greater than or equal to {@code sizeof}(##VkDrawMeshTasksIndirectCommandNV)
        • If {@code maxDrawCount} is greater than or equal to 1, (stride × (maxDrawCount - 1) + offset + sizeof(##VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of {@code buffer}
        • -
        • If the count stored in {@code countBuffer} is equal to 1, (offset + sizeof(##VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of {@code buffer}
        • -
        • If the count stored in {@code countBuffer} is greater than 1, (stride × (drawCount - 1) + offset + sizeof(##VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of {@code buffer}
        • The current pipeline bound to #PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the {@code MeshNV} {@code Execution} {@code Model}
        diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_ray_tracing.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_ray_tracing.kt index 62684effd5..4758ed0417 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_ray_tracing.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_ray_tracing.kt @@ -685,7 +685,7 @@ val NV_ray_tracing = "NVRayTracing".nativeClassVK("NV_ray_tracing", type = "devi
      • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
      • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
      • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
      • -
      • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
      • +
      • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
      • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
      • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
      • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
      • diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_shading_rate_image.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_shading_rate_image.kt index ddc97a289e..c3c01d65d8 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_shading_rate_image.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_shading_rate_image.kt @@ -237,7 +237,7 @@ val NV_shading_rate_image = "NVShadingRateImage".nativeClassVK("NV_shading_rate_ """, VkCommandBuffer("commandBuffer", "the command buffer into which the command will be recorded."), - VkImageView("imageView", "an image view handle specifying the shading rate image. {@code imageView} may be set to #NULL_HANDLE, which is equivalent to specifying a view of an image filled with zero values."), + VkImageView("imageView", "an image view handle specifying the shading rate image. {@code imageView} may be #NULL_HANDLE, which is equivalent to specifying a view of an image filled with zero values."), VkImageLayout("imageLayout", "the layout that the image subresources accessible from {@code imageView} will be in when the shading rate image is accessed.") ) diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/VK10.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/VK10.kt index 186e151bf5..f2477acce6 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/VK10.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/VK10.kt @@ -127,7 +127,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK VkStructureType - Vulkan structure types ({@code sType})
        See Also
        - ##VkAccelerationStructureBuildGeometryInfoKHR, ##VkAccelerationStructureBuildSizesInfoKHR, ##VkAccelerationStructureCaptureDescriptorDataInfoEXT, ##VkAccelerationStructureCreateInfoKHR, ##VkAccelerationStructureCreateInfoNV, ##VkAccelerationStructureDeviceAddressInfoKHR, ##VkAccelerationStructureGeometryAabbsDataKHR, ##VkAccelerationStructureGeometryInstancesDataKHR, ##VkAccelerationStructureGeometryKHR, ##VkAccelerationStructureGeometryMotionTrianglesDataNV, ##VkAccelerationStructureGeometryTrianglesDataKHR, ##VkAccelerationStructureInfoNV, ##VkAccelerationStructureMemoryRequirementsInfoNV, ##VkAccelerationStructureMotionInfoNV, ##VkAccelerationStructureTrianglesDisplacementMicromapNV, ##VkAccelerationStructureTrianglesOpacityMicromapEXT, ##VkAccelerationStructureVersionInfoKHR, ##VkAcquireNextImageInfoKHR, ##VkAcquireProfilingLockInfoKHR, ##VkAmigoProfilingSubmitInfoSEC, ##VkAndroidHardwareBufferFormatProperties2ANDROID, ##VkAndroidHardwareBufferFormatPropertiesANDROID, ##VkAndroidHardwareBufferFormatResolvePropertiesANDROID, ##VkAndroidHardwareBufferPropertiesANDROID, ##VkAndroidHardwareBufferUsageANDROID, ##VkAndroidSurfaceCreateInfoKHR, ##VkAntiLagDataAMD, ##VkAntiLagPresentationInfoAMD, ##VkApplicationInfo, ##VkAttachmentDescription2, ##VkAttachmentDescriptionStencilLayout, ##VkAttachmentReference2, ##VkAttachmentReferenceStencilLayout, ##VkAttachmentSampleCountInfoAMD, ##VkBaseInStructure, ##VkBaseOutStructure, ##VkBindAccelerationStructureMemoryInfoNV, ##VkBindBufferMemoryDeviceGroupInfo, ##VkBindBufferMemoryInfo, ##VkBindDescriptorBufferEmbeddedSamplersInfoEXT, ##VkBindDescriptorSetsInfoKHR, ##VkBindImageMemoryDeviceGroupInfo, ##VkBindImageMemoryInfo, ##VkBindImageMemorySwapchainInfoKHR, ##VkBindImagePlaneMemoryInfo, ##VkBindMemoryStatusKHR, ##VkBindSparseInfo, ##VkBindVideoSessionMemoryInfoKHR, ##VkBlitImageCubicWeightsInfoQCOM, ##VkBlitImageInfo2, ##VkBufferCaptureDescriptorDataInfoEXT, ##VkBufferCopy2, ##VkBufferCreateInfo, ##VkBufferDeviceAddressCreateInfoEXT, ##VkBufferDeviceAddressInfo, ##VkBufferImageCopy2, ##VkBufferMemoryBarrier, ##VkBufferMemoryBarrier2, ##VkBufferMemoryRequirementsInfo2, ##VkBufferOpaqueCaptureAddressCreateInfo, ##VkBufferUsageFlags2CreateInfoKHR, ##VkBufferViewCreateInfo, ##VkCalibratedTimestampInfoKHR, ##VkCheckpointData2NV, ##VkCheckpointDataNV, ##VkCommandBufferAllocateInfo, ##VkCommandBufferBeginInfo, ##VkCommandBufferInheritanceConditionalRenderingInfoEXT, ##VkCommandBufferInheritanceInfo, ##VkCommandBufferInheritanceRenderPassTransformInfoQCOM, ##VkCommandBufferInheritanceRenderingInfo, ##VkCommandBufferInheritanceViewportScissorInfoNV, ##VkCommandBufferSubmitInfo, ##VkCommandPoolCreateInfo, ##VkComputePipelineCreateInfo, ##VkComputePipelineIndirectBufferInfoNV, ##VkConditionalRenderingBeginInfoEXT, ##VkCooperativeMatrixPropertiesKHR, ##VkCooperativeMatrixPropertiesNV, ##VkCopyAccelerationStructureInfoKHR, ##VkCopyAccelerationStructureToMemoryInfoKHR, ##VkCopyBufferInfo2, ##VkCopyBufferToImageInfo2, ##VkCopyCommandTransformInfoQCOM, ##VkCopyDescriptorSet, ##VkCopyImageInfo2, ##VkCopyImageToBufferInfo2, ##VkCopyImageToImageInfoEXT, ##VkCopyImageToMemoryInfoEXT, ##VkCopyMemoryToAccelerationStructureInfoKHR, ##VkCopyMemoryToImageInfoEXT, ##VkCopyMemoryToMicromapInfoEXT, ##VkCopyMicromapInfoEXT, ##VkCopyMicromapToMemoryInfoEXT, ##VkCuFunctionCreateInfoNVX, ##VkCuLaunchInfoNVX, ##VkCuModuleCreateInfoNVX, ##VkCudaFunctionCreateInfoNV, ##VkCudaLaunchInfoNV, ##VkCudaModuleCreateInfoNV, ##VkD3D12FenceSubmitInfoKHR, ##VkDebugMarkerMarkerInfoEXT, ##VkDebugMarkerObjectNameInfoEXT, ##VkDebugMarkerObjectTagInfoEXT, ##VkDebugReportCallbackCreateInfoEXT, ##VkDebugUtilsLabelEXT, ##VkDebugUtilsMessengerCallbackDataEXT, ##VkDebugUtilsMessengerCreateInfoEXT, ##VkDebugUtilsObjectNameInfoEXT, ##VkDebugUtilsObjectTagInfoEXT, ##VkDedicatedAllocationBufferCreateInfoNV, ##VkDedicatedAllocationImageCreateInfoNV, ##VkDedicatedAllocationMemoryAllocateInfoNV, ##VkDependencyInfo, ##VkDepthBiasInfoEXT, ##VkDepthBiasRepresentationInfoEXT, ##VkDescriptorAddressInfoEXT, ##VkDescriptorBufferBindingInfoEXT, ##VkDescriptorBufferBindingPushDescriptorBufferHandleEXT, ##VkDescriptorGetInfoEXT, ##VkDescriptorPoolCreateInfo, ##VkDescriptorPoolInlineUniformBlockCreateInfo, ##VkDescriptorSetAllocateInfo, ##VkDescriptorSetBindingReferenceVALVE, ##VkDescriptorSetLayoutBindingFlagsCreateInfo, ##VkDescriptorSetLayoutCreateInfo, ##VkDescriptorSetLayoutHostMappingInfoVALVE, ##VkDescriptorSetLayoutSupport, ##VkDescriptorSetVariableDescriptorCountAllocateInfo, ##VkDescriptorSetVariableDescriptorCountLayoutSupport, ##VkDescriptorUpdateTemplateCreateInfo, ##VkDeviceAddressBindingCallbackDataEXT, ##VkDeviceBufferMemoryRequirements, ##VkDeviceCreateInfo, ##VkDeviceDeviceMemoryReportCreateInfoEXT, ##VkDeviceDiagnosticsConfigCreateInfoNV, ##VkDeviceEventInfoEXT, ##VkDeviceFaultCountsEXT, ##VkDeviceFaultInfoEXT, ##VkDeviceGroupBindSparseInfo, ##VkDeviceGroupCommandBufferBeginInfo, ##VkDeviceGroupDeviceCreateInfo, ##VkDeviceGroupPresentCapabilitiesKHR, ##VkDeviceGroupPresentInfoKHR, ##VkDeviceGroupRenderPassBeginInfo, ##VkDeviceGroupSubmitInfo, ##VkDeviceGroupSwapchainCreateInfoKHR, ##VkDeviceImageMemoryRequirements, ##VkDeviceImageSubresourceInfoKHR, ##VkDeviceMemoryOpaqueCaptureAddressInfo, ##VkDeviceMemoryOverallocationCreateInfoAMD, ##VkDeviceMemoryReportCallbackDataEXT, ##VkDevicePipelineBinaryInternalCacheControlKHR, ##VkDevicePrivateDataCreateInfo, ##VkDeviceQueueCreateInfo, ##VkDeviceQueueGlobalPriorityCreateInfoKHR, ##VkDeviceQueueInfo2, ##VkDeviceQueueShaderCoreControlCreateInfoARM, ##VkDirectDriverLoadingInfoLUNARG, ##VkDirectDriverLoadingListLUNARG, ##VkDirectFBSurfaceCreateInfoEXT, ##VkDisplayEventInfoEXT, ##VkDisplayModeCreateInfoKHR, ##VkDisplayModeProperties2KHR, ##VkDisplayNativeHdrSurfaceCapabilitiesAMD, ##VkDisplayPlaneCapabilities2KHR, ##VkDisplayPlaneInfo2KHR, ##VkDisplayPlaneProperties2KHR, ##VkDisplayPowerInfoEXT, ##VkDisplayPresentInfoKHR, ##VkDisplayProperties2KHR, ##VkDisplaySurfaceCreateInfoKHR, ##VkDrmFormatModifierPropertiesList2EXT, ##VkDrmFormatModifierPropertiesListEXT, ##VkEventCreateInfo, ##VkExecutionGraphPipelineCreateInfoAMDX, ##VkExecutionGraphPipelineScratchSizeAMDX, ##VkExportFenceCreateInfo, ##VkExportFenceWin32HandleInfoKHR, ##VkExportMemoryAllocateInfo, ##VkExportMemoryAllocateInfoNV, ##VkExportMemoryWin32HandleInfoKHR, ##VkExportMemoryWin32HandleInfoNV, ##VkExportMetalBufferInfoEXT, ##VkExportMetalCommandQueueInfoEXT, ##VkExportMetalDeviceInfoEXT, ##VkExportMetalIOSurfaceInfoEXT, ##VkExportMetalObjectCreateInfoEXT, ##VkExportMetalObjectsInfoEXT, ##VkExportMetalSharedEventInfoEXT, ##VkExportMetalTextureInfoEXT, ##VkExportSemaphoreCreateInfo, ##VkExportSemaphoreWin32HandleInfoKHR, ##VkExternalBufferProperties, ##VkExternalFenceProperties, ##VkExternalFormatANDROID, ##VkExternalImageFormatProperties, ##VkExternalMemoryAcquireUnmodifiedEXT, ##VkExternalMemoryBufferCreateInfo, ##VkExternalMemoryImageCreateInfo, ##VkExternalMemoryImageCreateInfoNV, ##VkExternalSemaphoreProperties, ##VkFenceCreateInfo, ##VkFenceGetFdInfoKHR, ##VkFenceGetWin32HandleInfoKHR, ##VkFilterCubicImageViewImageFormatPropertiesEXT, ##VkFormatProperties2, ##VkFormatProperties3, ##VkFragmentShadingRateAttachmentInfoKHR, ##VkFrameBoundaryEXT, ##VkFramebufferAttachmentImageInfo, ##VkFramebufferAttachmentsCreateInfo, ##VkFramebufferCreateInfo, ##VkFramebufferMixedSamplesCombinationNV, ##VkGeneratedCommandsInfoEXT, ##VkGeneratedCommandsInfoNV, ##VkGeneratedCommandsMemoryRequirementsInfoEXT, ##VkGeneratedCommandsMemoryRequirementsInfoNV, ##VkGeneratedCommandsPipelineInfoEXT, ##VkGeneratedCommandsShaderInfoEXT, ##VkGeometryAABBNV, ##VkGeometryNV, ##VkGeometryTrianglesNV, ##VkGetLatencyMarkerInfoNV, ##VkGraphicsPipelineCreateInfo, ##VkGraphicsPipelineLibraryCreateInfoEXT, ##VkGraphicsPipelineShaderGroupsCreateInfoNV, ##VkGraphicsShaderGroupCreateInfoNV, ##VkHdrMetadataEXT, ##VkHeadlessSurfaceCreateInfoEXT, ##VkHostImageCopyDevicePerformanceQueryEXT, ##VkHostImageLayoutTransitionInfoEXT, ##VkImageAlignmentControlCreateInfoMESA, ##VkImageBlit2, ##VkImageCaptureDescriptorDataInfoEXT, ##VkImageCompressionControlEXT, ##VkImageCompressionPropertiesEXT, ##VkImageCopy2, ##VkImageCreateInfo, ##VkImageDrmFormatModifierExplicitCreateInfoEXT, ##VkImageDrmFormatModifierListCreateInfoEXT, ##VkImageDrmFormatModifierPropertiesEXT, ##VkImageFormatListCreateInfo, ##VkImageFormatProperties2, ##VkImageMemoryBarrier, ##VkImageMemoryBarrier2, ##VkImageMemoryRequirementsInfo2, ##VkImagePlaneMemoryRequirementsInfo, ##VkImageResolve2, ##VkImageSparseMemoryRequirementsInfo2, ##VkImageStencilUsageCreateInfo, ##VkImageSubresource2KHR, ##VkImageSwapchainCreateInfoKHR, ##VkImageToMemoryCopyEXT, ##VkImageViewASTCDecodeModeEXT, ##VkImageViewAddressPropertiesNVX, ##VkImageViewCaptureDescriptorDataInfoEXT, ##VkImageViewCreateInfo, ##VkImageViewHandleInfoNVX, ##VkImageViewMinLodCreateInfoEXT, ##VkImageViewSampleWeightCreateInfoQCOM, ##VkImageViewSlicedCreateInfoEXT, ##VkImageViewUsageCreateInfo, ##VkImportAndroidHardwareBufferInfoANDROID, ##VkImportFenceFdInfoKHR, ##VkImportFenceWin32HandleInfoKHR, ##VkImportMemoryFdInfoKHR, ##VkImportMemoryHostPointerInfoEXT, ##VkImportMemoryWin32HandleInfoKHR, ##VkImportMemoryWin32HandleInfoNV, ##VkImportMetalBufferInfoEXT, ##VkImportMetalIOSurfaceInfoEXT, ##VkImportMetalSharedEventInfoEXT, ##VkImportMetalTextureInfoEXT, ##VkImportSemaphoreFdInfoKHR, ##VkImportSemaphoreWin32HandleInfoKHR, ##VkIndirectCommandsLayoutCreateInfoEXT, ##VkIndirectCommandsLayoutCreateInfoNV, ##VkIndirectCommandsLayoutTokenEXT, ##VkIndirectCommandsLayoutTokenNV, ##VkIndirectExecutionSetCreateInfoEXT, ##VkIndirectExecutionSetPipelineInfoEXT, ##VkIndirectExecutionSetShaderInfoEXT, ##VkIndirectExecutionSetShaderLayoutInfoEXT, ##VkInitializePerformanceApiInfoINTEL, ##VkInstanceCreateInfo, ##VkLatencySleepInfoNV, ##VkLatencySleepModeInfoNV, ##VkLatencySubmissionPresentIdNV, ##VkLatencySurfaceCapabilitiesNV, ##VkLatencyTimingsFrameReportNV, ##VkLayerSettingsCreateInfoEXT, ##VkMacOSSurfaceCreateInfoMVK, ##VkMappedMemoryRange, ##VkMemoryAllocateFlagsInfo, ##VkMemoryAllocateInfo, ##VkMemoryBarrier, ##VkMemoryBarrier2, ##VkMemoryDedicatedAllocateInfo, ##VkMemoryDedicatedRequirements, ##VkMemoryFdPropertiesKHR, ##VkMemoryGetAndroidHardwareBufferInfoANDROID, ##VkMemoryGetFdInfoKHR, ##VkMemoryGetRemoteAddressInfoNV, ##VkMemoryGetWin32HandleInfoKHR, ##VkMemoryHostPointerPropertiesEXT, ##VkMemoryMapInfoKHR, ##VkMemoryMapPlacedInfoEXT, ##VkMemoryOpaqueCaptureAddressAllocateInfo, ##VkMemoryPriorityAllocateInfoEXT, ##VkMemoryRequirements2, ##VkMemoryToImageCopyEXT, ##VkMemoryUnmapInfoKHR, ##VkMemoryWin32HandlePropertiesKHR, ##VkMetalSurfaceCreateInfoEXT, ##VkMicromapBuildInfoEXT, ##VkMicromapBuildSizesInfoEXT, ##VkMicromapCreateInfoEXT, ##VkMicromapVersionInfoEXT, ##VkMultisamplePropertiesEXT, ##VkMultisampledRenderToSingleSampledInfoEXT, ##VkMultiviewPerViewAttributesInfoNVX, ##VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM, ##VkMutableDescriptorTypeCreateInfoEXT, ##VkOpaqueCaptureDescriptorDataCreateInfoEXT, ##VkOpticalFlowExecuteInfoNV, ##VkOpticalFlowImageFormatInfoNV, ##VkOpticalFlowImageFormatPropertiesNV, ##VkOpticalFlowSessionCreateInfoNV, ##VkOpticalFlowSessionCreatePrivateDataInfoNV, ##VkOutOfBandQueueTypeInfoNV, ##VkPerformanceConfigurationAcquireInfoINTEL, ##VkPerformanceCounterDescriptionKHR, ##VkPerformanceCounterKHR, ##VkPerformanceMarkerInfoINTEL, ##VkPerformanceOverrideInfoINTEL, ##VkPerformanceQuerySubmitInfoKHR, ##VkPerformanceStreamMarkerInfoINTEL, ##VkPhysicalDevice16BitStorageFeatures, ##VkPhysicalDevice4444FormatsFeaturesEXT, ##VkPhysicalDevice8BitStorageFeatures, ##VkPhysicalDeviceASTCDecodeFeaturesEXT, ##VkPhysicalDeviceAccelerationStructureFeaturesKHR, ##VkPhysicalDeviceAccelerationStructurePropertiesKHR, ##VkPhysicalDeviceAddressBindingReportFeaturesEXT, ##VkPhysicalDeviceAmigoProfilingFeaturesSEC, ##VkPhysicalDeviceAntiLagFeaturesAMD, ##VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT, ##VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, ##VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, ##VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, ##VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, ##VkPhysicalDeviceBufferDeviceAddressFeatures, ##VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, ##VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI, ##VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI, ##VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI, ##VkPhysicalDeviceCoherentMemoryFeaturesAMD, ##VkPhysicalDeviceColorWriteEnableFeaturesEXT, ##VkPhysicalDeviceCommandBufferInheritanceFeaturesNV, ##VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR, ##VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR, ##VkPhysicalDeviceConditionalRenderingFeaturesEXT, ##VkPhysicalDeviceConservativeRasterizationPropertiesEXT, ##VkPhysicalDeviceCooperativeMatrixFeaturesKHR, ##VkPhysicalDeviceCooperativeMatrixFeaturesNV, ##VkPhysicalDeviceCooperativeMatrixPropertiesKHR, ##VkPhysicalDeviceCooperativeMatrixPropertiesNV, ##VkPhysicalDeviceCopyMemoryIndirectFeaturesNV, ##VkPhysicalDeviceCopyMemoryIndirectPropertiesNV, ##VkPhysicalDeviceCornerSampledImageFeaturesNV, ##VkPhysicalDeviceCoverageReductionModeFeaturesNV, ##VkPhysicalDeviceCubicClampFeaturesQCOM, ##VkPhysicalDeviceCubicWeightsFeaturesQCOM, ##VkPhysicalDeviceCudaKernelLaunchFeaturesNV, ##VkPhysicalDeviceCudaKernelLaunchPropertiesNV, ##VkPhysicalDeviceCustomBorderColorFeaturesEXT, ##VkPhysicalDeviceCustomBorderColorPropertiesEXT, ##VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, ##VkPhysicalDeviceDepthBiasControlFeaturesEXT, ##VkPhysicalDeviceDepthClampControlFeaturesEXT, ##VkPhysicalDeviceDepthClampZeroOneFeaturesEXT, ##VkPhysicalDeviceDepthClipControlFeaturesEXT, ##VkPhysicalDeviceDepthClipEnableFeaturesEXT, ##VkPhysicalDeviceDepthStencilResolveProperties, ##VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT, ##VkPhysicalDeviceDescriptorBufferFeaturesEXT, ##VkPhysicalDeviceDescriptorBufferPropertiesEXT, ##VkPhysicalDeviceDescriptorIndexingFeatures, ##VkPhysicalDeviceDescriptorIndexingProperties, ##VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV, ##VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, ##VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV, ##VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT, ##VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, ##VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT, ##VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, ##VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, ##VkPhysicalDeviceDiagnosticsConfigFeaturesNV, ##VkPhysicalDeviceDiscardRectanglePropertiesEXT, ##VkPhysicalDeviceDisplacementMicromapFeaturesNV, ##VkPhysicalDeviceDisplacementMicromapPropertiesNV, ##VkPhysicalDeviceDriverProperties, ##VkPhysicalDeviceDrmPropertiesEXT, ##VkPhysicalDeviceDynamicRenderingFeatures, ##VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR, ##VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT, ##VkPhysicalDeviceExclusiveScissorFeaturesNV, ##VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, ##VkPhysicalDeviceExtendedDynamicState3FeaturesEXT, ##VkPhysicalDeviceExtendedDynamicState3PropertiesEXT, ##VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, ##VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV, ##VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV, ##VkPhysicalDeviceExternalBufferInfo, ##VkPhysicalDeviceExternalFenceInfo, ##VkPhysicalDeviceExternalFormatResolveFeaturesANDROID, ##VkPhysicalDeviceExternalFormatResolvePropertiesANDROID, ##VkPhysicalDeviceExternalImageFormatInfo, ##VkPhysicalDeviceExternalMemoryHostPropertiesEXT, ##VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, ##VkPhysicalDeviceExternalSemaphoreInfo, ##VkPhysicalDeviceFaultFeaturesEXT, ##VkPhysicalDeviceFeatures2, ##VkPhysicalDeviceFloatControlsProperties, ##VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, ##VkPhysicalDeviceFragmentDensityMap2PropertiesEXT, ##VkPhysicalDeviceFragmentDensityMapFeaturesEXT, ##VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, ##VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM, ##VkPhysicalDeviceFragmentDensityMapPropertiesEXT, ##VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, ##VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR, ##VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, ##VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, ##VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV, ##VkPhysicalDeviceFragmentShadingRateFeaturesKHR, ##VkPhysicalDeviceFragmentShadingRateKHR, ##VkPhysicalDeviceFragmentShadingRatePropertiesKHR, ##VkPhysicalDeviceFrameBoundaryFeaturesEXT, ##VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR, ##VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, ##VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, ##VkPhysicalDeviceGroupProperties, ##VkPhysicalDeviceHostImageCopyFeaturesEXT, ##VkPhysicalDeviceHostImageCopyPropertiesEXT, ##VkPhysicalDeviceHostQueryResetFeatures, ##VkPhysicalDeviceIDProperties, ##VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, ##VkPhysicalDeviceImageAlignmentControlFeaturesMESA, ##VkPhysicalDeviceImageAlignmentControlPropertiesMESA, ##VkPhysicalDeviceImageCompressionControlFeaturesEXT, ##VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, ##VkPhysicalDeviceImageDrmFormatModifierInfoEXT, ##VkPhysicalDeviceImageFormatInfo2, ##VkPhysicalDeviceImageProcessing2FeaturesQCOM, ##VkPhysicalDeviceImageProcessing2PropertiesQCOM, ##VkPhysicalDeviceImageProcessingFeaturesQCOM, ##VkPhysicalDeviceImageProcessingPropertiesQCOM, ##VkPhysicalDeviceImageRobustnessFeatures, ##VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT, ##VkPhysicalDeviceImageViewImageFormatInfoEXT, ##VkPhysicalDeviceImageViewMinLodFeaturesEXT, ##VkPhysicalDeviceImagelessFramebufferFeatures, ##VkPhysicalDeviceIndexTypeUint8FeaturesKHR, ##VkPhysicalDeviceInheritedViewportScissorFeaturesNV, ##VkPhysicalDeviceInlineUniformBlockFeatures, ##VkPhysicalDeviceInlineUniformBlockProperties, ##VkPhysicalDeviceInvocationMaskFeaturesHUAWEI, ##VkPhysicalDeviceLayeredApiPropertiesKHR, ##VkPhysicalDeviceLayeredApiPropertiesListKHR, ##VkPhysicalDeviceLayeredApiVulkanPropertiesKHR, ##VkPhysicalDeviceLayeredDriverPropertiesMSFT, ##VkPhysicalDeviceLegacyDitheringFeaturesEXT, ##VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT, ##VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT, ##VkPhysicalDeviceLineRasterizationFeaturesKHR, ##VkPhysicalDeviceLineRasterizationPropertiesKHR, ##VkPhysicalDeviceLinearColorAttachmentFeaturesNV, ##VkPhysicalDeviceMaintenance3Properties, ##VkPhysicalDeviceMaintenance4Features, ##VkPhysicalDeviceMaintenance4Properties, ##VkPhysicalDeviceMaintenance5FeaturesKHR, ##VkPhysicalDeviceMaintenance5PropertiesKHR, ##VkPhysicalDeviceMaintenance6FeaturesKHR, ##VkPhysicalDeviceMaintenance6PropertiesKHR, ##VkPhysicalDeviceMaintenance7FeaturesKHR, ##VkPhysicalDeviceMaintenance7PropertiesKHR, ##VkPhysicalDeviceMapMemoryPlacedFeaturesEXT, ##VkPhysicalDeviceMapMemoryPlacedPropertiesEXT, ##VkPhysicalDeviceMemoryBudgetPropertiesEXT, ##VkPhysicalDeviceMemoryDecompressionFeaturesNV, ##VkPhysicalDeviceMemoryDecompressionPropertiesNV, ##VkPhysicalDeviceMemoryPriorityFeaturesEXT, ##VkPhysicalDeviceMemoryProperties2, ##VkPhysicalDeviceMeshShaderFeaturesEXT, ##VkPhysicalDeviceMeshShaderFeaturesNV, ##VkPhysicalDeviceMeshShaderPropertiesEXT, ##VkPhysicalDeviceMeshShaderPropertiesNV, ##VkPhysicalDeviceMultiDrawFeaturesEXT, ##VkPhysicalDeviceMultiDrawPropertiesEXT, ##VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, ##VkPhysicalDeviceMultiviewFeatures, ##VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, ##VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM, ##VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM, ##VkPhysicalDeviceMultiviewProperties, ##VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT, ##VkPhysicalDeviceNestedCommandBufferFeaturesEXT, ##VkPhysicalDeviceNestedCommandBufferPropertiesEXT, ##VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT, ##VkPhysicalDeviceOpacityMicromapFeaturesEXT, ##VkPhysicalDeviceOpacityMicromapPropertiesEXT, ##VkPhysicalDeviceOpticalFlowFeaturesNV, ##VkPhysicalDeviceOpticalFlowPropertiesNV, ##VkPhysicalDevicePCIBusInfoPropertiesEXT, ##VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, ##VkPhysicalDevicePerStageDescriptorSetFeaturesNV, ##VkPhysicalDevicePerformanceQueryFeaturesKHR, ##VkPhysicalDevicePerformanceQueryPropertiesKHR, ##VkPhysicalDevicePipelineBinaryFeaturesKHR, ##VkPhysicalDevicePipelineBinaryPropertiesKHR, ##VkPhysicalDevicePipelineCreationCacheControlFeatures, ##VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, ##VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT, ##VkPhysicalDevicePipelinePropertiesFeaturesEXT, ##VkPhysicalDevicePipelineProtectedAccessFeaturesEXT, ##VkPhysicalDevicePipelineRobustnessFeaturesEXT, ##VkPhysicalDevicePipelineRobustnessPropertiesEXT, ##VkPhysicalDevicePointClippingProperties, ##VkPhysicalDevicePortabilitySubsetFeaturesKHR, ##VkPhysicalDevicePortabilitySubsetPropertiesKHR, ##VkPhysicalDevicePresentBarrierFeaturesNV, ##VkPhysicalDevicePresentIdFeaturesKHR, ##VkPhysicalDevicePresentWaitFeaturesKHR, ##VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, ##VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, ##VkPhysicalDevicePrivateDataFeatures, ##VkPhysicalDeviceProperties2, ##VkPhysicalDeviceProtectedMemoryFeatures, ##VkPhysicalDeviceProtectedMemoryProperties, ##VkPhysicalDeviceProvokingVertexFeaturesEXT, ##VkPhysicalDeviceProvokingVertexPropertiesEXT, ##VkPhysicalDevicePushDescriptorPropertiesKHR, ##VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT, ##VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT, ##VkPhysicalDeviceRawAccessChainsFeaturesNV, ##VkPhysicalDeviceRayQueryFeaturesKHR, ##VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV, ##VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV, ##VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, ##VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, ##VkPhysicalDeviceRayTracingPipelineFeaturesKHR, ##VkPhysicalDeviceRayTracingPipelinePropertiesKHR, ##VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR, ##VkPhysicalDeviceRayTracingPropertiesNV, ##VkPhysicalDeviceRayTracingValidationFeaturesNV, ##VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG, ##VkPhysicalDeviceRenderPassStripedFeaturesARM, ##VkPhysicalDeviceRenderPassStripedPropertiesARM, ##VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, ##VkPhysicalDeviceRobustness2FeaturesEXT, ##VkPhysicalDeviceRobustness2PropertiesEXT, ##VkPhysicalDeviceSampleLocationsPropertiesEXT, ##VkPhysicalDeviceSamplerFilterMinmaxProperties, ##VkPhysicalDeviceSamplerYcbcrConversionFeatures, ##VkPhysicalDeviceScalarBlockLayoutFeatures, ##VkPhysicalDeviceSchedulingControlsFeaturesARM, ##VkPhysicalDeviceSchedulingControlsPropertiesARM, ##VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, ##VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV, ##VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, ##VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, ##VkPhysicalDeviceShaderAtomicInt64Features, ##VkPhysicalDeviceShaderClockFeaturesKHR, ##VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM, ##VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM, ##VkPhysicalDeviceShaderCoreProperties2AMD, ##VkPhysicalDeviceShaderCorePropertiesAMD, ##VkPhysicalDeviceShaderCorePropertiesARM, ##VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, ##VkPhysicalDeviceShaderDrawParametersFeatures, ##VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, ##VkPhysicalDeviceShaderEnqueueFeaturesAMDX, ##VkPhysicalDeviceShaderEnqueuePropertiesAMDX, ##VkPhysicalDeviceShaderExpectAssumeFeaturesKHR, ##VkPhysicalDeviceShaderFloat16Int8Features, ##VkPhysicalDeviceShaderFloatControls2FeaturesKHR, ##VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, ##VkPhysicalDeviceShaderImageFootprintFeaturesNV, ##VkPhysicalDeviceShaderIntegerDotProductFeatures, ##VkPhysicalDeviceShaderIntegerDotProductProperties, ##VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, ##VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR, ##VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT, ##VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT, ##VkPhysicalDeviceShaderObjectFeaturesEXT, ##VkPhysicalDeviceShaderObjectPropertiesEXT, ##VkPhysicalDeviceShaderQuadControlFeaturesKHR, ##VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR, ##VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT, ##VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, ##VkPhysicalDeviceShaderSMBuiltinsPropertiesNV, ##VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, ##VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR, ##VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, ##VkPhysicalDeviceShaderTerminateInvocationFeatures, ##VkPhysicalDeviceShaderTileImageFeaturesEXT, ##VkPhysicalDeviceShaderTileImagePropertiesEXT, ##VkPhysicalDeviceShadingRateImageFeaturesNV, ##VkPhysicalDeviceShadingRateImagePropertiesNV, ##VkPhysicalDeviceSparseImageFormatInfo2, ##VkPhysicalDeviceSubgroupProperties, ##VkPhysicalDeviceSubgroupSizeControlFeatures, ##VkPhysicalDeviceSubgroupSizeControlProperties, ##VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT, ##VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, ##VkPhysicalDeviceSubpassShadingPropertiesHUAWEI, ##VkPhysicalDeviceSurfaceInfo2KHR, ##VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT, ##VkPhysicalDeviceSynchronization2Features, ##VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, ##VkPhysicalDeviceTexelBufferAlignmentProperties, ##VkPhysicalDeviceTextureCompressionASTCHDRFeatures, ##VkPhysicalDeviceTilePropertiesFeaturesQCOM, ##VkPhysicalDeviceTimelineSemaphoreFeatures, ##VkPhysicalDeviceTimelineSemaphoreProperties, ##VkPhysicalDeviceToolProperties, ##VkPhysicalDeviceTransformFeedbackFeaturesEXT, ##VkPhysicalDeviceTransformFeedbackPropertiesEXT, ##VkPhysicalDeviceUniformBufferStandardLayoutFeatures, ##VkPhysicalDeviceVariablePointersFeatures, ##VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR, ##VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, ##VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR, ##VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, ##VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR, ##VkPhysicalDeviceVideoFormatInfoKHR, ##VkPhysicalDeviceVideoMaintenance1FeaturesKHR, ##VkPhysicalDeviceVulkan11Features, ##VkPhysicalDeviceVulkan11Properties, ##VkPhysicalDeviceVulkan12Features, ##VkPhysicalDeviceVulkan12Properties, ##VkPhysicalDeviceVulkan13Features, ##VkPhysicalDeviceVulkan13Properties, ##VkPhysicalDeviceVulkanMemoryModelFeatures, ##VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, ##VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, ##VkPhysicalDeviceYcbcrDegammaFeaturesQCOM, ##VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, ##VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures, ##VkPipelineBinaryCreateInfoKHR, ##VkPipelineBinaryDataInfoKHR, ##VkPipelineBinaryHandlesInfoKHR, ##VkPipelineBinaryInfoKHR, ##VkPipelineBinaryKeyKHR, ##VkPipelineCacheCreateInfo, ##VkPipelineColorBlendAdvancedStateCreateInfoEXT, ##VkPipelineColorBlendStateCreateInfo, ##VkPipelineColorWriteCreateInfoEXT, ##VkPipelineCompilerControlCreateInfoAMD, ##VkPipelineCoverageModulationStateCreateInfoNV, ##VkPipelineCoverageReductionStateCreateInfoNV, ##VkPipelineCoverageToColorStateCreateInfoNV, ##VkPipelineCreateFlags2CreateInfoKHR, ##VkPipelineCreateInfoKHR, ##VkPipelineCreationFeedbackCreateInfo, ##VkPipelineDepthStencilStateCreateInfo, ##VkPipelineDiscardRectangleStateCreateInfoEXT, ##VkPipelineDynamicStateCreateInfo, ##VkPipelineExecutableInfoKHR, ##VkPipelineExecutableInternalRepresentationKHR, ##VkPipelineExecutablePropertiesKHR, ##VkPipelineExecutableStatisticKHR, ##VkPipelineFragmentShadingRateEnumStateCreateInfoNV, ##VkPipelineFragmentShadingRateStateCreateInfoKHR, ##VkPipelineIndirectDeviceAddressInfoNV, ##VkPipelineInfoKHR, ##VkPipelineInputAssemblyStateCreateInfo, ##VkPipelineLayoutCreateInfo, ##VkPipelineLibraryCreateInfoKHR, ##VkPipelineMultisampleStateCreateInfo, ##VkPipelinePropertiesIdentifierEXT, ##VkPipelineRasterizationConservativeStateCreateInfoEXT, ##VkPipelineRasterizationDepthClipStateCreateInfoEXT, ##VkPipelineRasterizationLineStateCreateInfoKHR, ##VkPipelineRasterizationProvokingVertexStateCreateInfoEXT, ##VkPipelineRasterizationStateCreateInfo, ##VkPipelineRasterizationStateRasterizationOrderAMD, ##VkPipelineRasterizationStateStreamCreateInfoEXT, ##VkPipelineRenderingCreateInfo, ##VkPipelineRepresentativeFragmentTestStateCreateInfoNV, ##VkPipelineRobustnessCreateInfoEXT, ##VkPipelineSampleLocationsStateCreateInfoEXT, ##VkPipelineShaderStageCreateInfo, ##VkPipelineShaderStageModuleIdentifierCreateInfoEXT, ##VkPipelineShaderStageNodeCreateInfoAMDX, ##VkPipelineShaderStageRequiredSubgroupSizeCreateInfo, ##VkPipelineTessellationDomainOriginStateCreateInfo, ##VkPipelineTessellationStateCreateInfo, ##VkPipelineVertexInputDivisorStateCreateInfoKHR, ##VkPipelineVertexInputStateCreateInfo, ##VkPipelineViewportCoarseSampleOrderStateCreateInfoNV, ##VkPipelineViewportDepthClampControlCreateInfoEXT, ##VkPipelineViewportDepthClipControlCreateInfoEXT, ##VkPipelineViewportExclusiveScissorStateCreateInfoNV, ##VkPipelineViewportShadingRateImageStateCreateInfoNV, ##VkPipelineViewportStateCreateInfo, ##VkPipelineViewportSwizzleStateCreateInfoNV, ##VkPipelineViewportWScalingStateCreateInfoNV, ##VkPresentIdKHR, ##VkPresentInfoKHR, ##VkPresentRegionsKHR, ##VkPresentTimesInfoGOOGLE, ##VkPrivateDataSlotCreateInfo, ##VkProtectedSubmitInfo, ##VkPushConstantsInfoKHR, ##VkPushDescriptorSetInfoKHR, ##VkPushDescriptorSetWithTemplateInfoKHR, ##VkQueryLowLatencySupportNV, ##VkQueryPoolCreateInfo, ##VkQueryPoolPerformanceCreateInfoKHR, ##VkQueryPoolPerformanceQueryCreateInfoINTEL, ##VkQueryPoolVideoEncodeFeedbackCreateInfoKHR, ##VkQueueFamilyCheckpointProperties2NV, ##VkQueueFamilyCheckpointPropertiesNV, ##VkQueueFamilyGlobalPriorityPropertiesKHR, ##VkQueueFamilyProperties2, ##VkQueueFamilyQueryResultStatusPropertiesKHR, ##VkQueueFamilyVideoPropertiesKHR, ##VkRayTracingPipelineCreateInfoKHR, ##VkRayTracingPipelineCreateInfoNV, ##VkRayTracingPipelineInterfaceCreateInfoKHR, ##VkRayTracingShaderGroupCreateInfoKHR, ##VkRayTracingShaderGroupCreateInfoNV, ##VkReleaseCapturedPipelineDataInfoKHR, ##VkReleaseSwapchainImagesInfoEXT, ##VkRenderPassAttachmentBeginInfo, ##VkRenderPassBeginInfo, ##VkRenderPassCreateInfo, ##VkRenderPassCreateInfo2, ##VkRenderPassCreationControlEXT, ##VkRenderPassCreationFeedbackCreateInfoEXT, ##VkRenderPassFragmentDensityMapCreateInfoEXT, ##VkRenderPassInputAttachmentAspectCreateInfo, ##VkRenderPassMultiviewCreateInfo, ##VkRenderPassSampleLocationsBeginInfoEXT, ##VkRenderPassStripeBeginInfoARM, ##VkRenderPassStripeInfoARM, ##VkRenderPassStripeSubmitInfoARM, ##VkRenderPassSubpassFeedbackCreateInfoEXT, ##VkRenderPassTransformBeginInfoQCOM, ##VkRenderingAreaInfoKHR, ##VkRenderingAttachmentInfo, ##VkRenderingAttachmentLocationInfoKHR, ##VkRenderingFragmentDensityMapAttachmentInfoEXT, ##VkRenderingFragmentShadingRateAttachmentInfoKHR, ##VkRenderingInfo, ##VkRenderingInputAttachmentIndexInfoKHR, ##VkResolveImageInfo2, ##VkSampleLocationsInfoEXT, ##VkSamplerBlockMatchWindowCreateInfoQCOM, ##VkSamplerBorderColorComponentMappingCreateInfoEXT, ##VkSamplerCaptureDescriptorDataInfoEXT, ##VkSamplerCreateInfo, ##VkSamplerCubicWeightsCreateInfoQCOM, ##VkSamplerCustomBorderColorCreateInfoEXT, ##VkSamplerReductionModeCreateInfo, ##VkSamplerYcbcrConversionCreateInfo, ##VkSamplerYcbcrConversionImageFormatProperties, ##VkSamplerYcbcrConversionInfo, ##VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM, ##VkSemaphoreCreateInfo, ##VkSemaphoreGetFdInfoKHR, ##VkSemaphoreGetWin32HandleInfoKHR, ##VkSemaphoreSignalInfo, ##VkSemaphoreSubmitInfo, ##VkSemaphoreTypeCreateInfo, ##VkSemaphoreWaitInfo, ##VkSetDescriptorBufferOffsetsInfoEXT, ##VkSetLatencyMarkerInfoNV, ##VkShaderCreateInfoEXT, ##VkShaderModuleCreateInfo, ##VkShaderModuleIdentifierEXT, ##VkShaderModuleValidationCacheCreateInfoEXT, ##VkSharedPresentSurfaceCapabilitiesKHR, ##VkSparseImageFormatProperties2, ##VkSparseImageMemoryRequirements2, ##VkSubmitInfo, ##VkSubmitInfo2, ##VkSubpassBeginInfo, ##VkSubpassDependency2, ##VkSubpassDescription2, ##VkSubpassDescriptionDepthStencilResolve, ##VkSubpassEndInfo, ##VkSubpassFragmentDensityMapOffsetEndInfoQCOM, ##VkSubpassResolvePerformanceQueryEXT, ##VkSubpassShadingPipelineCreateInfoHUAWEI, ##VkSubresourceHostMemcpySizeEXT, ##VkSubresourceLayout2KHR, ##VkSurfaceCapabilities2EXT, ##VkSurfaceCapabilities2KHR, ##VkSurfaceCapabilitiesFullScreenExclusiveEXT, ##VkSurfaceCapabilitiesPresentBarrierNV, ##VkSurfaceFormat2KHR, ##VkSurfaceFullScreenExclusiveInfoEXT, ##VkSurfaceFullScreenExclusiveWin32InfoEXT, ##VkSurfacePresentModeCompatibilityEXT, ##VkSurfacePresentModeEXT, ##VkSurfacePresentScalingCapabilitiesEXT, ##VkSurfaceProtectedCapabilitiesKHR, ##VkSwapchainCounterCreateInfoEXT, ##VkSwapchainCreateInfoKHR, ##VkSwapchainDisplayNativeHdrCreateInfoAMD, ##VkSwapchainLatencyCreateInfoNV, ##VkSwapchainPresentBarrierCreateInfoNV, ##VkSwapchainPresentFenceInfoEXT, ##VkSwapchainPresentModeInfoEXT, ##VkSwapchainPresentModesCreateInfoEXT, ##VkSwapchainPresentScalingCreateInfoEXT, ##VkTextureLODGatherFormatPropertiesAMD, ##VkTilePropertiesQCOM, ##VkTimelineSemaphoreSubmitInfo, ##VkValidationCacheCreateInfoEXT, ##VkValidationFeaturesEXT, ##VkValidationFlagsEXT, ##VkVertexInputAttributeDescription2EXT, ##VkVertexInputBindingDescription2EXT, ##VkVideoBeginCodingInfoKHR, ##VkVideoCapabilitiesKHR, ##VkVideoCodingControlInfoKHR, ##VkVideoDecodeAV1CapabilitiesKHR, ##VkVideoDecodeAV1DpbSlotInfoKHR, ##VkVideoDecodeAV1PictureInfoKHR, ##VkVideoDecodeAV1ProfileInfoKHR, ##VkVideoDecodeAV1SessionParametersCreateInfoKHR, ##VkVideoDecodeCapabilitiesKHR, ##VkVideoDecodeH264CapabilitiesKHR, ##VkVideoDecodeH264DpbSlotInfoKHR, ##VkVideoDecodeH264PictureInfoKHR, ##VkVideoDecodeH264ProfileInfoKHR, ##VkVideoDecodeH264SessionParametersAddInfoKHR, ##VkVideoDecodeH264SessionParametersCreateInfoKHR, ##VkVideoDecodeH265CapabilitiesKHR, ##VkVideoDecodeH265DpbSlotInfoKHR, ##VkVideoDecodeH265PictureInfoKHR, ##VkVideoDecodeH265ProfileInfoKHR, ##VkVideoDecodeH265SessionParametersAddInfoKHR, ##VkVideoDecodeH265SessionParametersCreateInfoKHR, ##VkVideoDecodeInfoKHR, ##VkVideoDecodeUsageInfoKHR, ##VkVideoEncodeCapabilitiesKHR, ##VkVideoEncodeH264CapabilitiesKHR, ##VkVideoEncodeH264DpbSlotInfoKHR, ##VkVideoEncodeH264GopRemainingFrameInfoKHR, ##VkVideoEncodeH264NaluSliceInfoKHR, ##VkVideoEncodeH264PictureInfoKHR, ##VkVideoEncodeH264ProfileInfoKHR, ##VkVideoEncodeH264QualityLevelPropertiesKHR, ##VkVideoEncodeH264RateControlInfoKHR, ##VkVideoEncodeH264RateControlLayerInfoKHR, ##VkVideoEncodeH264SessionCreateInfoKHR, ##VkVideoEncodeH264SessionParametersAddInfoKHR, ##VkVideoEncodeH264SessionParametersCreateInfoKHR, ##VkVideoEncodeH264SessionParametersFeedbackInfoKHR, ##VkVideoEncodeH264SessionParametersGetInfoKHR, ##VkVideoEncodeH265CapabilitiesKHR, ##VkVideoEncodeH265DpbSlotInfoKHR, ##VkVideoEncodeH265GopRemainingFrameInfoKHR, ##VkVideoEncodeH265NaluSliceSegmentInfoKHR, ##VkVideoEncodeH265PictureInfoKHR, ##VkVideoEncodeH265ProfileInfoKHR, ##VkVideoEncodeH265QualityLevelPropertiesKHR, ##VkVideoEncodeH265RateControlInfoKHR, ##VkVideoEncodeH265RateControlLayerInfoKHR, ##VkVideoEncodeH265SessionCreateInfoKHR, ##VkVideoEncodeH265SessionParametersAddInfoKHR, ##VkVideoEncodeH265SessionParametersCreateInfoKHR, ##VkVideoEncodeH265SessionParametersFeedbackInfoKHR, ##VkVideoEncodeH265SessionParametersGetInfoKHR, ##VkVideoEncodeInfoKHR, ##VkVideoEncodeQualityLevelInfoKHR, ##VkVideoEncodeQualityLevelPropertiesKHR, ##VkVideoEncodeRateControlInfoKHR, ##VkVideoEncodeRateControlLayerInfoKHR, ##VkVideoEncodeSessionParametersFeedbackInfoKHR, ##VkVideoEncodeSessionParametersGetInfoKHR, ##VkVideoEncodeUsageInfoKHR, ##VkVideoEndCodingInfoKHR, ##VkVideoFormatPropertiesKHR, ##VkVideoInlineQueryInfoKHR, ##VkVideoPictureResourceInfoKHR, ##VkVideoProfileInfoKHR, ##VkVideoProfileListInfoKHR, ##VkVideoReferenceSlotInfoKHR, ##VkVideoSessionCreateInfoKHR, ##VkVideoSessionMemoryRequirementsKHR, ##VkVideoSessionParametersCreateInfoKHR, ##VkVideoSessionParametersUpdateInfoKHR, ##VkWaylandSurfaceCreateInfoKHR, ##VkWin32KeyedMutexAcquireReleaseInfoKHR, ##VkWin32KeyedMutexAcquireReleaseInfoNV, ##VkWin32SurfaceCreateInfoKHR, ##VkWriteDescriptorSet, ##VkWriteDescriptorSetAccelerationStructureKHR, ##VkWriteDescriptorSetAccelerationStructureNV, ##VkWriteDescriptorSetInlineUniformBlock, ##VkWriteIndirectExecutionSetPipelineEXT, ##VkWriteIndirectExecutionSetShaderEXT, ##VkXcbSurfaceCreateInfoKHR, ##VkXlibSurfaceCreateInfoKHR + ##VkAccelerationStructureBuildGeometryInfoKHR, ##VkAccelerationStructureBuildSizesInfoKHR, ##VkAccelerationStructureCaptureDescriptorDataInfoEXT, ##VkAccelerationStructureCreateInfoKHR, ##VkAccelerationStructureCreateInfoNV, ##VkAccelerationStructureDeviceAddressInfoKHR, ##VkAccelerationStructureGeometryAabbsDataKHR, ##VkAccelerationStructureGeometryInstancesDataKHR, ##VkAccelerationStructureGeometryKHR, ##VkAccelerationStructureGeometryMotionTrianglesDataNV, ##VkAccelerationStructureGeometryTrianglesDataKHR, ##VkAccelerationStructureInfoNV, ##VkAccelerationStructureMemoryRequirementsInfoNV, ##VkAccelerationStructureMotionInfoNV, ##VkAccelerationStructureTrianglesDisplacementMicromapNV, ##VkAccelerationStructureTrianglesOpacityMicromapEXT, ##VkAccelerationStructureVersionInfoKHR, ##VkAcquireNextImageInfoKHR, ##VkAcquireProfilingLockInfoKHR, ##VkAmigoProfilingSubmitInfoSEC, ##VkAndroidHardwareBufferFormatProperties2ANDROID, ##VkAndroidHardwareBufferFormatPropertiesANDROID, ##VkAndroidHardwareBufferFormatResolvePropertiesANDROID, ##VkAndroidHardwareBufferPropertiesANDROID, ##VkAndroidHardwareBufferUsageANDROID, ##VkAndroidSurfaceCreateInfoKHR, ##VkAntiLagDataAMD, ##VkAntiLagPresentationInfoAMD, ##VkApplicationInfo, ##VkAttachmentDescription2, ##VkAttachmentDescriptionStencilLayout, ##VkAttachmentReference2, ##VkAttachmentReferenceStencilLayout, ##VkAttachmentSampleCountInfoAMD, ##VkBaseInStructure, ##VkBaseOutStructure, ##VkBindAccelerationStructureMemoryInfoNV, ##VkBindBufferMemoryDeviceGroupInfo, ##VkBindBufferMemoryInfo, ##VkBindDescriptorBufferEmbeddedSamplersInfoEXT, ##VkBindDescriptorSetsInfoKHR, ##VkBindImageMemoryDeviceGroupInfo, ##VkBindImageMemoryInfo, ##VkBindImageMemorySwapchainInfoKHR, ##VkBindImagePlaneMemoryInfo, ##VkBindMemoryStatusKHR, ##VkBindSparseInfo, ##VkBindVideoSessionMemoryInfoKHR, ##VkBlitImageCubicWeightsInfoQCOM, ##VkBlitImageInfo2, ##VkBufferCaptureDescriptorDataInfoEXT, ##VkBufferCopy2, ##VkBufferCreateInfo, ##VkBufferDeviceAddressCreateInfoEXT, ##VkBufferDeviceAddressInfo, ##VkBufferImageCopy2, ##VkBufferMemoryBarrier, ##VkBufferMemoryBarrier2, ##VkBufferMemoryRequirementsInfo2, ##VkBufferOpaqueCaptureAddressCreateInfo, ##VkBufferUsageFlags2CreateInfoKHR, ##VkBufferViewCreateInfo, ##VkCalibratedTimestampInfoKHR, ##VkCheckpointData2NV, ##VkCheckpointDataNV, ##VkCommandBufferAllocateInfo, ##VkCommandBufferBeginInfo, ##VkCommandBufferInheritanceConditionalRenderingInfoEXT, ##VkCommandBufferInheritanceInfo, ##VkCommandBufferInheritanceRenderPassTransformInfoQCOM, ##VkCommandBufferInheritanceRenderingInfo, ##VkCommandBufferInheritanceViewportScissorInfoNV, ##VkCommandBufferSubmitInfo, ##VkCommandPoolCreateInfo, ##VkComputePipelineCreateInfo, ##VkComputePipelineIndirectBufferInfoNV, ##VkConditionalRenderingBeginInfoEXT, ##VkCooperativeMatrixFlexibleDimensionsPropertiesNV, ##VkCooperativeMatrixPropertiesKHR, ##VkCooperativeMatrixPropertiesNV, ##VkCopyAccelerationStructureInfoKHR, ##VkCopyAccelerationStructureToMemoryInfoKHR, ##VkCopyBufferInfo2, ##VkCopyBufferToImageInfo2, ##VkCopyCommandTransformInfoQCOM, ##VkCopyDescriptorSet, ##VkCopyImageInfo2, ##VkCopyImageToBufferInfo2, ##VkCopyImageToImageInfoEXT, ##VkCopyImageToMemoryInfoEXT, ##VkCopyMemoryToAccelerationStructureInfoKHR, ##VkCopyMemoryToImageInfoEXT, ##VkCopyMemoryToMicromapInfoEXT, ##VkCopyMicromapInfoEXT, ##VkCopyMicromapToMemoryInfoEXT, ##VkCuFunctionCreateInfoNVX, ##VkCuLaunchInfoNVX, ##VkCuModuleCreateInfoNVX, ##VkCudaFunctionCreateInfoNV, ##VkCudaLaunchInfoNV, ##VkCudaModuleCreateInfoNV, ##VkD3D12FenceSubmitInfoKHR, ##VkDebugMarkerMarkerInfoEXT, ##VkDebugMarkerObjectNameInfoEXT, ##VkDebugMarkerObjectTagInfoEXT, ##VkDebugReportCallbackCreateInfoEXT, ##VkDebugUtilsLabelEXT, ##VkDebugUtilsMessengerCallbackDataEXT, ##VkDebugUtilsMessengerCreateInfoEXT, ##VkDebugUtilsObjectNameInfoEXT, ##VkDebugUtilsObjectTagInfoEXT, ##VkDedicatedAllocationBufferCreateInfoNV, ##VkDedicatedAllocationImageCreateInfoNV, ##VkDedicatedAllocationMemoryAllocateInfoNV, ##VkDependencyInfo, ##VkDepthBiasInfoEXT, ##VkDepthBiasRepresentationInfoEXT, ##VkDescriptorAddressInfoEXT, ##VkDescriptorBufferBindingInfoEXT, ##VkDescriptorBufferBindingPushDescriptorBufferHandleEXT, ##VkDescriptorGetInfoEXT, ##VkDescriptorPoolCreateInfo, ##VkDescriptorPoolInlineUniformBlockCreateInfo, ##VkDescriptorSetAllocateInfo, ##VkDescriptorSetBindingReferenceVALVE, ##VkDescriptorSetLayoutBindingFlagsCreateInfo, ##VkDescriptorSetLayoutCreateInfo, ##VkDescriptorSetLayoutHostMappingInfoVALVE, ##VkDescriptorSetLayoutSupport, ##VkDescriptorSetVariableDescriptorCountAllocateInfo, ##VkDescriptorSetVariableDescriptorCountLayoutSupport, ##VkDescriptorUpdateTemplateCreateInfo, ##VkDeviceAddressBindingCallbackDataEXT, ##VkDeviceBufferMemoryRequirements, ##VkDeviceCreateInfo, ##VkDeviceDeviceMemoryReportCreateInfoEXT, ##VkDeviceDiagnosticsConfigCreateInfoNV, ##VkDeviceEventInfoEXT, ##VkDeviceFaultCountsEXT, ##VkDeviceFaultInfoEXT, ##VkDeviceGroupBindSparseInfo, ##VkDeviceGroupCommandBufferBeginInfo, ##VkDeviceGroupDeviceCreateInfo, ##VkDeviceGroupPresentCapabilitiesKHR, ##VkDeviceGroupPresentInfoKHR, ##VkDeviceGroupRenderPassBeginInfo, ##VkDeviceGroupSubmitInfo, ##VkDeviceGroupSwapchainCreateInfoKHR, ##VkDeviceImageMemoryRequirements, ##VkDeviceImageSubresourceInfoKHR, ##VkDeviceMemoryOpaqueCaptureAddressInfo, ##VkDeviceMemoryOverallocationCreateInfoAMD, ##VkDeviceMemoryReportCallbackDataEXT, ##VkDevicePipelineBinaryInternalCacheControlKHR, ##VkDevicePrivateDataCreateInfo, ##VkDeviceQueueCreateInfo, ##VkDeviceQueueGlobalPriorityCreateInfoKHR, ##VkDeviceQueueInfo2, ##VkDeviceQueueShaderCoreControlCreateInfoARM, ##VkDirectDriverLoadingInfoLUNARG, ##VkDirectDriverLoadingListLUNARG, ##VkDirectFBSurfaceCreateInfoEXT, ##VkDisplayEventInfoEXT, ##VkDisplayModeCreateInfoKHR, ##VkDisplayModeProperties2KHR, ##VkDisplayNativeHdrSurfaceCapabilitiesAMD, ##VkDisplayPlaneCapabilities2KHR, ##VkDisplayPlaneInfo2KHR, ##VkDisplayPlaneProperties2KHR, ##VkDisplayPowerInfoEXT, ##VkDisplayPresentInfoKHR, ##VkDisplayProperties2KHR, ##VkDisplaySurfaceCreateInfoKHR, ##VkDrmFormatModifierPropertiesList2EXT, ##VkDrmFormatModifierPropertiesListEXT, ##VkEventCreateInfo, ##VkExecutionGraphPipelineCreateInfoAMDX, ##VkExecutionGraphPipelineScratchSizeAMDX, ##VkExportFenceCreateInfo, ##VkExportFenceWin32HandleInfoKHR, ##VkExportMemoryAllocateInfo, ##VkExportMemoryAllocateInfoNV, ##VkExportMemoryWin32HandleInfoKHR, ##VkExportMemoryWin32HandleInfoNV, ##VkExportMetalBufferInfoEXT, ##VkExportMetalCommandQueueInfoEXT, ##VkExportMetalDeviceInfoEXT, ##VkExportMetalIOSurfaceInfoEXT, ##VkExportMetalObjectCreateInfoEXT, ##VkExportMetalObjectsInfoEXT, ##VkExportMetalSharedEventInfoEXT, ##VkExportMetalTextureInfoEXT, ##VkExportSemaphoreCreateInfo, ##VkExportSemaphoreWin32HandleInfoKHR, ##VkExternalBufferProperties, ##VkExternalFenceProperties, ##VkExternalFormatANDROID, ##VkExternalImageFormatProperties, ##VkExternalMemoryAcquireUnmodifiedEXT, ##VkExternalMemoryBufferCreateInfo, ##VkExternalMemoryImageCreateInfo, ##VkExternalMemoryImageCreateInfoNV, ##VkExternalSemaphoreProperties, ##VkFenceCreateInfo, ##VkFenceGetFdInfoKHR, ##VkFenceGetWin32HandleInfoKHR, ##VkFilterCubicImageViewImageFormatPropertiesEXT, ##VkFormatProperties2, ##VkFormatProperties3, ##VkFragmentShadingRateAttachmentInfoKHR, ##VkFrameBoundaryEXT, ##VkFramebufferAttachmentImageInfo, ##VkFramebufferAttachmentsCreateInfo, ##VkFramebufferCreateInfo, ##VkFramebufferMixedSamplesCombinationNV, ##VkGeneratedCommandsInfoEXT, ##VkGeneratedCommandsInfoNV, ##VkGeneratedCommandsMemoryRequirementsInfoEXT, ##VkGeneratedCommandsMemoryRequirementsInfoNV, ##VkGeneratedCommandsPipelineInfoEXT, ##VkGeneratedCommandsShaderInfoEXT, ##VkGeometryAABBNV, ##VkGeometryNV, ##VkGeometryTrianglesNV, ##VkGetLatencyMarkerInfoNV, ##VkGraphicsPipelineCreateInfo, ##VkGraphicsPipelineLibraryCreateInfoEXT, ##VkGraphicsPipelineShaderGroupsCreateInfoNV, ##VkGraphicsShaderGroupCreateInfoNV, ##VkHdrMetadataEXT, ##VkHdrVividDynamicMetadataHUAWEI, ##VkHeadlessSurfaceCreateInfoEXT, ##VkHostImageCopyDevicePerformanceQueryEXT, ##VkHostImageLayoutTransitionInfoEXT, ##VkImageAlignmentControlCreateInfoMESA, ##VkImageBlit2, ##VkImageCaptureDescriptorDataInfoEXT, ##VkImageCompressionControlEXT, ##VkImageCompressionPropertiesEXT, ##VkImageCopy2, ##VkImageCreateInfo, ##VkImageDrmFormatModifierExplicitCreateInfoEXT, ##VkImageDrmFormatModifierListCreateInfoEXT, ##VkImageDrmFormatModifierPropertiesEXT, ##VkImageFormatListCreateInfo, ##VkImageFormatProperties2, ##VkImageMemoryBarrier, ##VkImageMemoryBarrier2, ##VkImageMemoryRequirementsInfo2, ##VkImagePlaneMemoryRequirementsInfo, ##VkImageResolve2, ##VkImageSparseMemoryRequirementsInfo2, ##VkImageStencilUsageCreateInfo, ##VkImageSubresource2KHR, ##VkImageSwapchainCreateInfoKHR, ##VkImageToMemoryCopyEXT, ##VkImageViewASTCDecodeModeEXT, ##VkImageViewAddressPropertiesNVX, ##VkImageViewCaptureDescriptorDataInfoEXT, ##VkImageViewCreateInfo, ##VkImageViewHandleInfoNVX, ##VkImageViewMinLodCreateInfoEXT, ##VkImageViewSampleWeightCreateInfoQCOM, ##VkImageViewSlicedCreateInfoEXT, ##VkImageViewUsageCreateInfo, ##VkImportAndroidHardwareBufferInfoANDROID, ##VkImportFenceFdInfoKHR, ##VkImportFenceWin32HandleInfoKHR, ##VkImportMemoryFdInfoKHR, ##VkImportMemoryHostPointerInfoEXT, ##VkImportMemoryWin32HandleInfoKHR, ##VkImportMemoryWin32HandleInfoNV, ##VkImportMetalBufferInfoEXT, ##VkImportMetalIOSurfaceInfoEXT, ##VkImportMetalSharedEventInfoEXT, ##VkImportMetalTextureInfoEXT, ##VkImportSemaphoreFdInfoKHR, ##VkImportSemaphoreWin32HandleInfoKHR, ##VkIndirectCommandsLayoutCreateInfoEXT, ##VkIndirectCommandsLayoutCreateInfoNV, ##VkIndirectCommandsLayoutTokenEXT, ##VkIndirectCommandsLayoutTokenNV, ##VkIndirectExecutionSetCreateInfoEXT, ##VkIndirectExecutionSetPipelineInfoEXT, ##VkIndirectExecutionSetShaderInfoEXT, ##VkIndirectExecutionSetShaderLayoutInfoEXT, ##VkInitializePerformanceApiInfoINTEL, ##VkInstanceCreateInfo, ##VkLatencySleepInfoNV, ##VkLatencySleepModeInfoNV, ##VkLatencySubmissionPresentIdNV, ##VkLatencySurfaceCapabilitiesNV, ##VkLatencyTimingsFrameReportNV, ##VkLayerSettingsCreateInfoEXT, ##VkMacOSSurfaceCreateInfoMVK, ##VkMappedMemoryRange, ##VkMemoryAllocateFlagsInfo, ##VkMemoryAllocateInfo, ##VkMemoryBarrier, ##VkMemoryBarrier2, ##VkMemoryDedicatedAllocateInfo, ##VkMemoryDedicatedRequirements, ##VkMemoryFdPropertiesKHR, ##VkMemoryGetAndroidHardwareBufferInfoANDROID, ##VkMemoryGetFdInfoKHR, ##VkMemoryGetRemoteAddressInfoNV, ##VkMemoryGetWin32HandleInfoKHR, ##VkMemoryHostPointerPropertiesEXT, ##VkMemoryMapInfoKHR, ##VkMemoryMapPlacedInfoEXT, ##VkMemoryOpaqueCaptureAddressAllocateInfo, ##VkMemoryPriorityAllocateInfoEXT, ##VkMemoryRequirements2, ##VkMemoryToImageCopyEXT, ##VkMemoryUnmapInfoKHR, ##VkMemoryWin32HandlePropertiesKHR, ##VkMetalSurfaceCreateInfoEXT, ##VkMicromapBuildInfoEXT, ##VkMicromapBuildSizesInfoEXT, ##VkMicromapCreateInfoEXT, ##VkMicromapVersionInfoEXT, ##VkMultisamplePropertiesEXT, ##VkMultisampledRenderToSingleSampledInfoEXT, ##VkMultiviewPerViewAttributesInfoNVX, ##VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM, ##VkMutableDescriptorTypeCreateInfoEXT, ##VkOpaqueCaptureDescriptorDataCreateInfoEXT, ##VkOpticalFlowExecuteInfoNV, ##VkOpticalFlowImageFormatInfoNV, ##VkOpticalFlowImageFormatPropertiesNV, ##VkOpticalFlowSessionCreateInfoNV, ##VkOpticalFlowSessionCreatePrivateDataInfoNV, ##VkOutOfBandQueueTypeInfoNV, ##VkPerformanceConfigurationAcquireInfoINTEL, ##VkPerformanceCounterDescriptionKHR, ##VkPerformanceCounterKHR, ##VkPerformanceMarkerInfoINTEL, ##VkPerformanceOverrideInfoINTEL, ##VkPerformanceQuerySubmitInfoKHR, ##VkPerformanceStreamMarkerInfoINTEL, ##VkPhysicalDevice16BitStorageFeatures, ##VkPhysicalDevice4444FormatsFeaturesEXT, ##VkPhysicalDevice8BitStorageFeatures, ##VkPhysicalDeviceASTCDecodeFeaturesEXT, ##VkPhysicalDeviceAccelerationStructureFeaturesKHR, ##VkPhysicalDeviceAccelerationStructurePropertiesKHR, ##VkPhysicalDeviceAddressBindingReportFeaturesEXT, ##VkPhysicalDeviceAmigoProfilingFeaturesSEC, ##VkPhysicalDeviceAntiLagFeaturesAMD, ##VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT, ##VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, ##VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, ##VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, ##VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, ##VkPhysicalDeviceBufferDeviceAddressFeatures, ##VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, ##VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI, ##VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI, ##VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI, ##VkPhysicalDeviceCoherentMemoryFeaturesAMD, ##VkPhysicalDeviceColorWriteEnableFeaturesEXT, ##VkPhysicalDeviceCommandBufferInheritanceFeaturesNV, ##VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR, ##VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR, ##VkPhysicalDeviceConditionalRenderingFeaturesEXT, ##VkPhysicalDeviceConservativeRasterizationPropertiesEXT, ##VkPhysicalDeviceCooperativeMatrix2FeaturesNV, ##VkPhysicalDeviceCooperativeMatrix2PropertiesNV, ##VkPhysicalDeviceCooperativeMatrixFeaturesKHR, ##VkPhysicalDeviceCooperativeMatrixFeaturesNV, ##VkPhysicalDeviceCooperativeMatrixPropertiesKHR, ##VkPhysicalDeviceCooperativeMatrixPropertiesNV, ##VkPhysicalDeviceCopyMemoryIndirectFeaturesNV, ##VkPhysicalDeviceCopyMemoryIndirectPropertiesNV, ##VkPhysicalDeviceCornerSampledImageFeaturesNV, ##VkPhysicalDeviceCoverageReductionModeFeaturesNV, ##VkPhysicalDeviceCubicClampFeaturesQCOM, ##VkPhysicalDeviceCubicWeightsFeaturesQCOM, ##VkPhysicalDeviceCudaKernelLaunchFeaturesNV, ##VkPhysicalDeviceCudaKernelLaunchPropertiesNV, ##VkPhysicalDeviceCustomBorderColorFeaturesEXT, ##VkPhysicalDeviceCustomBorderColorPropertiesEXT, ##VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, ##VkPhysicalDeviceDepthBiasControlFeaturesEXT, ##VkPhysicalDeviceDepthClampControlFeaturesEXT, ##VkPhysicalDeviceDepthClampZeroOneFeaturesEXT, ##VkPhysicalDeviceDepthClipControlFeaturesEXT, ##VkPhysicalDeviceDepthClipEnableFeaturesEXT, ##VkPhysicalDeviceDepthStencilResolveProperties, ##VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT, ##VkPhysicalDeviceDescriptorBufferFeaturesEXT, ##VkPhysicalDeviceDescriptorBufferPropertiesEXT, ##VkPhysicalDeviceDescriptorIndexingFeatures, ##VkPhysicalDeviceDescriptorIndexingProperties, ##VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV, ##VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, ##VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV, ##VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT, ##VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, ##VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT, ##VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, ##VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, ##VkPhysicalDeviceDiagnosticsConfigFeaturesNV, ##VkPhysicalDeviceDiscardRectanglePropertiesEXT, ##VkPhysicalDeviceDisplacementMicromapFeaturesNV, ##VkPhysicalDeviceDisplacementMicromapPropertiesNV, ##VkPhysicalDeviceDriverProperties, ##VkPhysicalDeviceDrmPropertiesEXT, ##VkPhysicalDeviceDynamicRenderingFeatures, ##VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR, ##VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT, ##VkPhysicalDeviceExclusiveScissorFeaturesNV, ##VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, ##VkPhysicalDeviceExtendedDynamicState3FeaturesEXT, ##VkPhysicalDeviceExtendedDynamicState3PropertiesEXT, ##VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, ##VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV, ##VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV, ##VkPhysicalDeviceExternalBufferInfo, ##VkPhysicalDeviceExternalFenceInfo, ##VkPhysicalDeviceExternalFormatResolveFeaturesANDROID, ##VkPhysicalDeviceExternalFormatResolvePropertiesANDROID, ##VkPhysicalDeviceExternalImageFormatInfo, ##VkPhysicalDeviceExternalMemoryHostPropertiesEXT, ##VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, ##VkPhysicalDeviceExternalSemaphoreInfo, ##VkPhysicalDeviceFaultFeaturesEXT, ##VkPhysicalDeviceFeatures2, ##VkPhysicalDeviceFloatControlsProperties, ##VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, ##VkPhysicalDeviceFragmentDensityMap2PropertiesEXT, ##VkPhysicalDeviceFragmentDensityMapFeaturesEXT, ##VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, ##VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM, ##VkPhysicalDeviceFragmentDensityMapPropertiesEXT, ##VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, ##VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR, ##VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, ##VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, ##VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV, ##VkPhysicalDeviceFragmentShadingRateFeaturesKHR, ##VkPhysicalDeviceFragmentShadingRateKHR, ##VkPhysicalDeviceFragmentShadingRatePropertiesKHR, ##VkPhysicalDeviceFrameBoundaryFeaturesEXT, ##VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR, ##VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, ##VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, ##VkPhysicalDeviceGroupProperties, ##VkPhysicalDeviceHdrVividFeaturesHUAWEI, ##VkPhysicalDeviceHostImageCopyFeaturesEXT, ##VkPhysicalDeviceHostImageCopyPropertiesEXT, ##VkPhysicalDeviceHostQueryResetFeatures, ##VkPhysicalDeviceIDProperties, ##VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, ##VkPhysicalDeviceImageAlignmentControlFeaturesMESA, ##VkPhysicalDeviceImageAlignmentControlPropertiesMESA, ##VkPhysicalDeviceImageCompressionControlFeaturesEXT, ##VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, ##VkPhysicalDeviceImageDrmFormatModifierInfoEXT, ##VkPhysicalDeviceImageFormatInfo2, ##VkPhysicalDeviceImageProcessing2FeaturesQCOM, ##VkPhysicalDeviceImageProcessing2PropertiesQCOM, ##VkPhysicalDeviceImageProcessingFeaturesQCOM, ##VkPhysicalDeviceImageProcessingPropertiesQCOM, ##VkPhysicalDeviceImageRobustnessFeatures, ##VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT, ##VkPhysicalDeviceImageViewImageFormatInfoEXT, ##VkPhysicalDeviceImageViewMinLodFeaturesEXT, ##VkPhysicalDeviceImagelessFramebufferFeatures, ##VkPhysicalDeviceIndexTypeUint8FeaturesKHR, ##VkPhysicalDeviceInheritedViewportScissorFeaturesNV, ##VkPhysicalDeviceInlineUniformBlockFeatures, ##VkPhysicalDeviceInlineUniformBlockProperties, ##VkPhysicalDeviceInvocationMaskFeaturesHUAWEI, ##VkPhysicalDeviceLayeredApiPropertiesKHR, ##VkPhysicalDeviceLayeredApiPropertiesListKHR, ##VkPhysicalDeviceLayeredApiVulkanPropertiesKHR, ##VkPhysicalDeviceLayeredDriverPropertiesMSFT, ##VkPhysicalDeviceLegacyDitheringFeaturesEXT, ##VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT, ##VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT, ##VkPhysicalDeviceLineRasterizationFeaturesKHR, ##VkPhysicalDeviceLineRasterizationPropertiesKHR, ##VkPhysicalDeviceLinearColorAttachmentFeaturesNV, ##VkPhysicalDeviceMaintenance3Properties, ##VkPhysicalDeviceMaintenance4Features, ##VkPhysicalDeviceMaintenance4Properties, ##VkPhysicalDeviceMaintenance5FeaturesKHR, ##VkPhysicalDeviceMaintenance5PropertiesKHR, ##VkPhysicalDeviceMaintenance6FeaturesKHR, ##VkPhysicalDeviceMaintenance6PropertiesKHR, ##VkPhysicalDeviceMaintenance7FeaturesKHR, ##VkPhysicalDeviceMaintenance7PropertiesKHR, ##VkPhysicalDeviceMapMemoryPlacedFeaturesEXT, ##VkPhysicalDeviceMapMemoryPlacedPropertiesEXT, ##VkPhysicalDeviceMemoryBudgetPropertiesEXT, ##VkPhysicalDeviceMemoryDecompressionFeaturesNV, ##VkPhysicalDeviceMemoryDecompressionPropertiesNV, ##VkPhysicalDeviceMemoryPriorityFeaturesEXT, ##VkPhysicalDeviceMemoryProperties2, ##VkPhysicalDeviceMeshShaderFeaturesEXT, ##VkPhysicalDeviceMeshShaderFeaturesNV, ##VkPhysicalDeviceMeshShaderPropertiesEXT, ##VkPhysicalDeviceMeshShaderPropertiesNV, ##VkPhysicalDeviceMultiDrawFeaturesEXT, ##VkPhysicalDeviceMultiDrawPropertiesEXT, ##VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, ##VkPhysicalDeviceMultiviewFeatures, ##VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, ##VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM, ##VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM, ##VkPhysicalDeviceMultiviewProperties, ##VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT, ##VkPhysicalDeviceNestedCommandBufferFeaturesEXT, ##VkPhysicalDeviceNestedCommandBufferPropertiesEXT, ##VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT, ##VkPhysicalDeviceOpacityMicromapFeaturesEXT, ##VkPhysicalDeviceOpacityMicromapPropertiesEXT, ##VkPhysicalDeviceOpticalFlowFeaturesNV, ##VkPhysicalDeviceOpticalFlowPropertiesNV, ##VkPhysicalDevicePCIBusInfoPropertiesEXT, ##VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, ##VkPhysicalDevicePerStageDescriptorSetFeaturesNV, ##VkPhysicalDevicePerformanceQueryFeaturesKHR, ##VkPhysicalDevicePerformanceQueryPropertiesKHR, ##VkPhysicalDevicePipelineBinaryFeaturesKHR, ##VkPhysicalDevicePipelineBinaryPropertiesKHR, ##VkPhysicalDevicePipelineCreationCacheControlFeatures, ##VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, ##VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT, ##VkPhysicalDevicePipelinePropertiesFeaturesEXT, ##VkPhysicalDevicePipelineProtectedAccessFeaturesEXT, ##VkPhysicalDevicePipelineRobustnessFeaturesEXT, ##VkPhysicalDevicePipelineRobustnessPropertiesEXT, ##VkPhysicalDevicePointClippingProperties, ##VkPhysicalDevicePortabilitySubsetFeaturesKHR, ##VkPhysicalDevicePortabilitySubsetPropertiesKHR, ##VkPhysicalDevicePresentBarrierFeaturesNV, ##VkPhysicalDevicePresentIdFeaturesKHR, ##VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT, ##VkPhysicalDevicePresentWaitFeaturesKHR, ##VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, ##VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, ##VkPhysicalDevicePrivateDataFeatures, ##VkPhysicalDeviceProperties2, ##VkPhysicalDeviceProtectedMemoryFeatures, ##VkPhysicalDeviceProtectedMemoryProperties, ##VkPhysicalDeviceProvokingVertexFeaturesEXT, ##VkPhysicalDeviceProvokingVertexPropertiesEXT, ##VkPhysicalDevicePushDescriptorPropertiesKHR, ##VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT, ##VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT, ##VkPhysicalDeviceRawAccessChainsFeaturesNV, ##VkPhysicalDeviceRayQueryFeaturesKHR, ##VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV, ##VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV, ##VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, ##VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, ##VkPhysicalDeviceRayTracingPipelineFeaturesKHR, ##VkPhysicalDeviceRayTracingPipelinePropertiesKHR, ##VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR, ##VkPhysicalDeviceRayTracingPropertiesNV, ##VkPhysicalDeviceRayTracingValidationFeaturesNV, ##VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG, ##VkPhysicalDeviceRenderPassStripedFeaturesARM, ##VkPhysicalDeviceRenderPassStripedPropertiesARM, ##VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, ##VkPhysicalDeviceRobustness2FeaturesEXT, ##VkPhysicalDeviceRobustness2PropertiesEXT, ##VkPhysicalDeviceSampleLocationsPropertiesEXT, ##VkPhysicalDeviceSamplerFilterMinmaxProperties, ##VkPhysicalDeviceSamplerYcbcrConversionFeatures, ##VkPhysicalDeviceScalarBlockLayoutFeatures, ##VkPhysicalDeviceSchedulingControlsFeaturesARM, ##VkPhysicalDeviceSchedulingControlsPropertiesARM, ##VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, ##VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV, ##VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, ##VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, ##VkPhysicalDeviceShaderAtomicInt64Features, ##VkPhysicalDeviceShaderClockFeaturesKHR, ##VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM, ##VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM, ##VkPhysicalDeviceShaderCoreProperties2AMD, ##VkPhysicalDeviceShaderCorePropertiesAMD, ##VkPhysicalDeviceShaderCorePropertiesARM, ##VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, ##VkPhysicalDeviceShaderDrawParametersFeatures, ##VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, ##VkPhysicalDeviceShaderEnqueueFeaturesAMDX, ##VkPhysicalDeviceShaderEnqueuePropertiesAMDX, ##VkPhysicalDeviceShaderExpectAssumeFeaturesKHR, ##VkPhysicalDeviceShaderFloat16Int8Features, ##VkPhysicalDeviceShaderFloatControls2FeaturesKHR, ##VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, ##VkPhysicalDeviceShaderImageFootprintFeaturesNV, ##VkPhysicalDeviceShaderIntegerDotProductFeatures, ##VkPhysicalDeviceShaderIntegerDotProductProperties, ##VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, ##VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR, ##VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT, ##VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT, ##VkPhysicalDeviceShaderObjectFeaturesEXT, ##VkPhysicalDeviceShaderObjectPropertiesEXT, ##VkPhysicalDeviceShaderQuadControlFeaturesKHR, ##VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR, ##VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT, ##VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, ##VkPhysicalDeviceShaderSMBuiltinsPropertiesNV, ##VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, ##VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR, ##VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, ##VkPhysicalDeviceShaderTerminateInvocationFeatures, ##VkPhysicalDeviceShaderTileImageFeaturesEXT, ##VkPhysicalDeviceShaderTileImagePropertiesEXT, ##VkPhysicalDeviceShadingRateImageFeaturesNV, ##VkPhysicalDeviceShadingRateImagePropertiesNV, ##VkPhysicalDeviceSparseImageFormatInfo2, ##VkPhysicalDeviceSubgroupProperties, ##VkPhysicalDeviceSubgroupSizeControlFeatures, ##VkPhysicalDeviceSubgroupSizeControlProperties, ##VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT, ##VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, ##VkPhysicalDeviceSubpassShadingPropertiesHUAWEI, ##VkPhysicalDeviceSurfaceInfo2KHR, ##VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT, ##VkPhysicalDeviceSynchronization2Features, ##VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, ##VkPhysicalDeviceTexelBufferAlignmentProperties, ##VkPhysicalDeviceTextureCompressionASTCHDRFeatures, ##VkPhysicalDeviceTilePropertiesFeaturesQCOM, ##VkPhysicalDeviceTimelineSemaphoreFeatures, ##VkPhysicalDeviceTimelineSemaphoreProperties, ##VkPhysicalDeviceToolProperties, ##VkPhysicalDeviceTransformFeedbackFeaturesEXT, ##VkPhysicalDeviceTransformFeedbackPropertiesEXT, ##VkPhysicalDeviceUniformBufferStandardLayoutFeatures, ##VkPhysicalDeviceVariablePointersFeatures, ##VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR, ##VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, ##VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR, ##VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, ##VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR, ##VkPhysicalDeviceVideoFormatInfoKHR, ##VkPhysicalDeviceVideoMaintenance1FeaturesKHR, ##VkPhysicalDeviceVulkan11Features, ##VkPhysicalDeviceVulkan11Properties, ##VkPhysicalDeviceVulkan12Features, ##VkPhysicalDeviceVulkan12Properties, ##VkPhysicalDeviceVulkan13Features, ##VkPhysicalDeviceVulkan13Properties, ##VkPhysicalDeviceVulkanMemoryModelFeatures, ##VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, ##VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, ##VkPhysicalDeviceYcbcrDegammaFeaturesQCOM, ##VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, ##VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures, ##VkPipelineBinaryCreateInfoKHR, ##VkPipelineBinaryDataInfoKHR, ##VkPipelineBinaryHandlesInfoKHR, ##VkPipelineBinaryInfoKHR, ##VkPipelineBinaryKeyKHR, ##VkPipelineCacheCreateInfo, ##VkPipelineColorBlendAdvancedStateCreateInfoEXT, ##VkPipelineColorBlendStateCreateInfo, ##VkPipelineColorWriteCreateInfoEXT, ##VkPipelineCompilerControlCreateInfoAMD, ##VkPipelineCoverageModulationStateCreateInfoNV, ##VkPipelineCoverageReductionStateCreateInfoNV, ##VkPipelineCoverageToColorStateCreateInfoNV, ##VkPipelineCreateFlags2CreateInfoKHR, ##VkPipelineCreateInfoKHR, ##VkPipelineCreationFeedbackCreateInfo, ##VkPipelineDepthStencilStateCreateInfo, ##VkPipelineDiscardRectangleStateCreateInfoEXT, ##VkPipelineDynamicStateCreateInfo, ##VkPipelineExecutableInfoKHR, ##VkPipelineExecutableInternalRepresentationKHR, ##VkPipelineExecutablePropertiesKHR, ##VkPipelineExecutableStatisticKHR, ##VkPipelineFragmentShadingRateEnumStateCreateInfoNV, ##VkPipelineFragmentShadingRateStateCreateInfoKHR, ##VkPipelineIndirectDeviceAddressInfoNV, ##VkPipelineInfoKHR, ##VkPipelineInputAssemblyStateCreateInfo, ##VkPipelineLayoutCreateInfo, ##VkPipelineLibraryCreateInfoKHR, ##VkPipelineMultisampleStateCreateInfo, ##VkPipelinePropertiesIdentifierEXT, ##VkPipelineRasterizationConservativeStateCreateInfoEXT, ##VkPipelineRasterizationDepthClipStateCreateInfoEXT, ##VkPipelineRasterizationLineStateCreateInfoKHR, ##VkPipelineRasterizationProvokingVertexStateCreateInfoEXT, ##VkPipelineRasterizationStateCreateInfo, ##VkPipelineRasterizationStateRasterizationOrderAMD, ##VkPipelineRasterizationStateStreamCreateInfoEXT, ##VkPipelineRenderingCreateInfo, ##VkPipelineRepresentativeFragmentTestStateCreateInfoNV, ##VkPipelineRobustnessCreateInfoEXT, ##VkPipelineSampleLocationsStateCreateInfoEXT, ##VkPipelineShaderStageCreateInfo, ##VkPipelineShaderStageModuleIdentifierCreateInfoEXT, ##VkPipelineShaderStageNodeCreateInfoAMDX, ##VkPipelineShaderStageRequiredSubgroupSizeCreateInfo, ##VkPipelineTessellationDomainOriginStateCreateInfo, ##VkPipelineTessellationStateCreateInfo, ##VkPipelineVertexInputDivisorStateCreateInfoKHR, ##VkPipelineVertexInputStateCreateInfo, ##VkPipelineViewportCoarseSampleOrderStateCreateInfoNV, ##VkPipelineViewportDepthClampControlCreateInfoEXT, ##VkPipelineViewportDepthClipControlCreateInfoEXT, ##VkPipelineViewportExclusiveScissorStateCreateInfoNV, ##VkPipelineViewportShadingRateImageStateCreateInfoNV, ##VkPipelineViewportStateCreateInfo, ##VkPipelineViewportSwizzleStateCreateInfoNV, ##VkPipelineViewportWScalingStateCreateInfoNV, ##VkPresentIdKHR, ##VkPresentInfoKHR, ##VkPresentRegionsKHR, ##VkPresentTimesInfoGOOGLE, ##VkPrivateDataSlotCreateInfo, ##VkProtectedSubmitInfo, ##VkPushConstantsInfoKHR, ##VkPushDescriptorSetInfoKHR, ##VkPushDescriptorSetWithTemplateInfoKHR, ##VkQueryLowLatencySupportNV, ##VkQueryPoolCreateInfo, ##VkQueryPoolPerformanceCreateInfoKHR, ##VkQueryPoolPerformanceQueryCreateInfoINTEL, ##VkQueryPoolVideoEncodeFeedbackCreateInfoKHR, ##VkQueueFamilyCheckpointProperties2NV, ##VkQueueFamilyCheckpointPropertiesNV, ##VkQueueFamilyGlobalPriorityPropertiesKHR, ##VkQueueFamilyProperties2, ##VkQueueFamilyQueryResultStatusPropertiesKHR, ##VkQueueFamilyVideoPropertiesKHR, ##VkRayTracingPipelineCreateInfoKHR, ##VkRayTracingPipelineCreateInfoNV, ##VkRayTracingPipelineInterfaceCreateInfoKHR, ##VkRayTracingShaderGroupCreateInfoKHR, ##VkRayTracingShaderGroupCreateInfoNV, ##VkReleaseCapturedPipelineDataInfoKHR, ##VkReleaseSwapchainImagesInfoEXT, ##VkRenderPassAttachmentBeginInfo, ##VkRenderPassBeginInfo, ##VkRenderPassCreateInfo, ##VkRenderPassCreateInfo2, ##VkRenderPassCreationControlEXT, ##VkRenderPassCreationFeedbackCreateInfoEXT, ##VkRenderPassFragmentDensityMapCreateInfoEXT, ##VkRenderPassInputAttachmentAspectCreateInfo, ##VkRenderPassMultiviewCreateInfo, ##VkRenderPassSampleLocationsBeginInfoEXT, ##VkRenderPassStripeBeginInfoARM, ##VkRenderPassStripeInfoARM, ##VkRenderPassStripeSubmitInfoARM, ##VkRenderPassSubpassFeedbackCreateInfoEXT, ##VkRenderPassTransformBeginInfoQCOM, ##VkRenderingAreaInfoKHR, ##VkRenderingAttachmentInfo, ##VkRenderingAttachmentLocationInfoKHR, ##VkRenderingFragmentDensityMapAttachmentInfoEXT, ##VkRenderingFragmentShadingRateAttachmentInfoKHR, ##VkRenderingInfo, ##VkRenderingInputAttachmentIndexInfoKHR, ##VkResolveImageInfo2, ##VkSampleLocationsInfoEXT, ##VkSamplerBlockMatchWindowCreateInfoQCOM, ##VkSamplerBorderColorComponentMappingCreateInfoEXT, ##VkSamplerCaptureDescriptorDataInfoEXT, ##VkSamplerCreateInfo, ##VkSamplerCubicWeightsCreateInfoQCOM, ##VkSamplerCustomBorderColorCreateInfoEXT, ##VkSamplerReductionModeCreateInfo, ##VkSamplerYcbcrConversionCreateInfo, ##VkSamplerYcbcrConversionImageFormatProperties, ##VkSamplerYcbcrConversionInfo, ##VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM, ##VkSemaphoreCreateInfo, ##VkSemaphoreGetFdInfoKHR, ##VkSemaphoreGetWin32HandleInfoKHR, ##VkSemaphoreSignalInfo, ##VkSemaphoreSubmitInfo, ##VkSemaphoreTypeCreateInfo, ##VkSemaphoreWaitInfo, ##VkSetDescriptorBufferOffsetsInfoEXT, ##VkSetLatencyMarkerInfoNV, ##VkShaderCreateInfoEXT, ##VkShaderModuleCreateInfo, ##VkShaderModuleIdentifierEXT, ##VkShaderModuleValidationCacheCreateInfoEXT, ##VkSharedPresentSurfaceCapabilitiesKHR, ##VkSparseImageFormatProperties2, ##VkSparseImageMemoryRequirements2, ##VkSubmitInfo, ##VkSubmitInfo2, ##VkSubpassBeginInfo, ##VkSubpassDependency2, ##VkSubpassDescription2, ##VkSubpassDescriptionDepthStencilResolve, ##VkSubpassEndInfo, ##VkSubpassFragmentDensityMapOffsetEndInfoQCOM, ##VkSubpassResolvePerformanceQueryEXT, ##VkSubpassShadingPipelineCreateInfoHUAWEI, ##VkSubresourceHostMemcpySizeEXT, ##VkSubresourceLayout2KHR, ##VkSurfaceCapabilities2EXT, ##VkSurfaceCapabilities2KHR, ##VkSurfaceCapabilitiesFullScreenExclusiveEXT, ##VkSurfaceCapabilitiesPresentBarrierNV, ##VkSurfaceFormat2KHR, ##VkSurfaceFullScreenExclusiveInfoEXT, ##VkSurfaceFullScreenExclusiveWin32InfoEXT, ##VkSurfacePresentModeCompatibilityEXT, ##VkSurfacePresentModeEXT, ##VkSurfacePresentScalingCapabilitiesEXT, ##VkSurfaceProtectedCapabilitiesKHR, ##VkSwapchainCounterCreateInfoEXT, ##VkSwapchainCreateInfoKHR, ##VkSwapchainDisplayNativeHdrCreateInfoAMD, ##VkSwapchainLatencyCreateInfoNV, ##VkSwapchainPresentBarrierCreateInfoNV, ##VkSwapchainPresentFenceInfoEXT, ##VkSwapchainPresentModeInfoEXT, ##VkSwapchainPresentModesCreateInfoEXT, ##VkSwapchainPresentScalingCreateInfoEXT, ##VkTextureLODGatherFormatPropertiesAMD, ##VkTilePropertiesQCOM, ##VkTimelineSemaphoreSubmitInfo, ##VkValidationCacheCreateInfoEXT, ##VkValidationFeaturesEXT, ##VkValidationFlagsEXT, ##VkVertexInputAttributeDescription2EXT, ##VkVertexInputBindingDescription2EXT, ##VkVideoBeginCodingInfoKHR, ##VkVideoCapabilitiesKHR, ##VkVideoCodingControlInfoKHR, ##VkVideoDecodeAV1CapabilitiesKHR, ##VkVideoDecodeAV1DpbSlotInfoKHR, ##VkVideoDecodeAV1PictureInfoKHR, ##VkVideoDecodeAV1ProfileInfoKHR, ##VkVideoDecodeAV1SessionParametersCreateInfoKHR, ##VkVideoDecodeCapabilitiesKHR, ##VkVideoDecodeH264CapabilitiesKHR, ##VkVideoDecodeH264DpbSlotInfoKHR, ##VkVideoDecodeH264PictureInfoKHR, ##VkVideoDecodeH264ProfileInfoKHR, ##VkVideoDecodeH264SessionParametersAddInfoKHR, ##VkVideoDecodeH264SessionParametersCreateInfoKHR, ##VkVideoDecodeH265CapabilitiesKHR, ##VkVideoDecodeH265DpbSlotInfoKHR, ##VkVideoDecodeH265PictureInfoKHR, ##VkVideoDecodeH265ProfileInfoKHR, ##VkVideoDecodeH265SessionParametersAddInfoKHR, ##VkVideoDecodeH265SessionParametersCreateInfoKHR, ##VkVideoDecodeInfoKHR, ##VkVideoDecodeUsageInfoKHR, ##VkVideoEncodeCapabilitiesKHR, ##VkVideoEncodeH264CapabilitiesKHR, ##VkVideoEncodeH264DpbSlotInfoKHR, ##VkVideoEncodeH264GopRemainingFrameInfoKHR, ##VkVideoEncodeH264NaluSliceInfoKHR, ##VkVideoEncodeH264PictureInfoKHR, ##VkVideoEncodeH264ProfileInfoKHR, ##VkVideoEncodeH264QualityLevelPropertiesKHR, ##VkVideoEncodeH264RateControlInfoKHR, ##VkVideoEncodeH264RateControlLayerInfoKHR, ##VkVideoEncodeH264SessionCreateInfoKHR, ##VkVideoEncodeH264SessionParametersAddInfoKHR, ##VkVideoEncodeH264SessionParametersCreateInfoKHR, ##VkVideoEncodeH264SessionParametersFeedbackInfoKHR, ##VkVideoEncodeH264SessionParametersGetInfoKHR, ##VkVideoEncodeH265CapabilitiesKHR, ##VkVideoEncodeH265DpbSlotInfoKHR, ##VkVideoEncodeH265GopRemainingFrameInfoKHR, ##VkVideoEncodeH265NaluSliceSegmentInfoKHR, ##VkVideoEncodeH265PictureInfoKHR, ##VkVideoEncodeH265ProfileInfoKHR, ##VkVideoEncodeH265QualityLevelPropertiesKHR, ##VkVideoEncodeH265RateControlInfoKHR, ##VkVideoEncodeH265RateControlLayerInfoKHR, ##VkVideoEncodeH265SessionCreateInfoKHR, ##VkVideoEncodeH265SessionParametersAddInfoKHR, ##VkVideoEncodeH265SessionParametersCreateInfoKHR, ##VkVideoEncodeH265SessionParametersFeedbackInfoKHR, ##VkVideoEncodeH265SessionParametersGetInfoKHR, ##VkVideoEncodeInfoKHR, ##VkVideoEncodeQualityLevelInfoKHR, ##VkVideoEncodeQualityLevelPropertiesKHR, ##VkVideoEncodeRateControlInfoKHR, ##VkVideoEncodeRateControlLayerInfoKHR, ##VkVideoEncodeSessionParametersFeedbackInfoKHR, ##VkVideoEncodeSessionParametersGetInfoKHR, ##VkVideoEncodeUsageInfoKHR, ##VkVideoEndCodingInfoKHR, ##VkVideoFormatPropertiesKHR, ##VkVideoInlineQueryInfoKHR, ##VkVideoPictureResourceInfoKHR, ##VkVideoProfileInfoKHR, ##VkVideoProfileListInfoKHR, ##VkVideoReferenceSlotInfoKHR, ##VkVideoSessionCreateInfoKHR, ##VkVideoSessionMemoryRequirementsKHR, ##VkVideoSessionParametersCreateInfoKHR, ##VkVideoSessionParametersUpdateInfoKHR, ##VkWaylandSurfaceCreateInfoKHR, ##VkWin32KeyedMutexAcquireReleaseInfoKHR, ##VkWin32KeyedMutexAcquireReleaseInfoNV, ##VkWin32SurfaceCreateInfoKHR, ##VkWriteDescriptorSet, ##VkWriteDescriptorSetAccelerationStructureKHR, ##VkWriteDescriptorSetAccelerationStructureNV, ##VkWriteDescriptorSetInlineUniformBlock, ##VkWriteIndirectExecutionSetPipelineEXT, ##VkWriteIndirectExecutionSetShaderEXT, ##VkXcbSurfaceCreateInfoKHR, ##VkXlibSurfaceCreateInfoKHR """, "STRUCTURE_TYPE_APPLICATION_INFO".."0", @@ -1278,11 +1278,11 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
        • #MEMORY_PROPERTY_DEVICE_LOCAL_BIT bit specifies that memory allocated with this type is the most efficient for device access. This property will be set if and only if the memory type belongs to a heap with the #MEMORY_HEAP_DEVICE_LOCAL_BIT set.
        • #MEMORY_PROPERTY_HOST_VISIBLE_BIT bit specifies that memory allocated with this type can be mapped for host access using #MapMemory().
        • -
        • #MEMORY_PROPERTY_HOST_COHERENT_BIT bit specifies that the host cache management commands #FlushMappedMemoryRanges() and #InvalidateMappedMemoryRanges() are not needed to flush host writes to the device or make device writes visible to the host, respectively.
        • +
        • #MEMORY_PROPERTY_HOST_COHERENT_BIT bit specifies that the host cache management commands #FlushMappedMemoryRanges() and #InvalidateMappedMemoryRanges() are not needed to manage availability and visibility on the host.
        • #MEMORY_PROPERTY_HOST_CACHED_BIT bit specifies that memory allocated with this type is cached on the host. Host memory accesses to uncached memory are slower than to cached memory, however uncached memory is always host coherent.
        • #MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT bit specifies that the memory type only allows device access to the memory. Memory types must not have both #MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT and #MEMORY_PROPERTY_HOST_VISIBLE_BIT set. Additionally, the object’s backing memory may be provided by the implementation lazily as specified in Lazily Allocated Memory.
        • #MEMORY_PROPERTY_PROTECTED_BIT bit specifies that the memory type only allows device access to the memory, and allows protected queue operations to access the memory. Memory types must not have #MEMORY_PROPERTY_PROTECTED_BIT set and any of #MEMORY_PROPERTY_HOST_VISIBLE_BIT set, or #MEMORY_PROPERTY_HOST_COHERENT_BIT set, or #MEMORY_PROPERTY_HOST_CACHED_BIT set.
        • -
        • #MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD bit specifies that device accesses to allocations of this memory type are automatically made available and visible.
        • +
        • #MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD bit specifies that device accesses to allocations of this memory type are automatically made available and visible on the device. If paired with #MEMORY_PROPERTY_HOST_COHERENT_BIT, memory domain operations are also performed automatically between host and device.
        • #MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD bit specifies that memory allocated with this type is not cached on the device. Uncached device memory is always device coherent.
        • #MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV bit specifies that external devices can access this memory directly.
        @@ -1951,7 +1951,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
      • #PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR specifies that AABB primitives will be skipped during traversal using pipeline trace ray instructions.
      • #PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR specifies that the shader group handles can be saved and reused on a subsequent run (e.g. for trace capture and replay).
      • #PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV specifies that the pipeline can be used in combination with Device-Generated Commands.
      • -
      • #PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT specifies that pipeline creation will fail if a compile is required for creation of a valid {@code VkPipeline} object; #PIPELINE_COMPILE_REQUIRED will be returned by pipeline creation, and the {@code VkPipeline} will be set to #NULL_HANDLE.
      • +
      • #PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT specifies that pipeline creation will fail if a compile is required for creation of a valid {@code VkPipeline} object; #PIPELINE_COMPILE_REQUIRED will be returned by pipeline creation, and the {@code VkPipeline} will be #NULL_HANDLE.
      • When creating multiple pipelines, #PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT specifies that control will be returned to the application if any individual pipeline returns a result which is not #SUCCESS rather than continuing to create additional pipelines.
      • #PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV specifies that the pipeline is allowed to use {@code OpTraceRayMotionNV}.
      • #PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR specifies that the pipeline will be used with a fragment shading rate attachment and dynamic rendering.
      • @@ -2249,9 +2249,9 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK These modes affect only the final rasterization of polygons: in particular, a polygon’s vertices are shaded and the polygon is clipped and possibly culled before these modes are applied. - If ##VkPhysicalDeviceMaintenance5PropertiesKHR{@code ::polygonModePointSize} is set to #TRUE, the point size of the final rasterization of polygons is taken from {@code PointSize} when polygon mode is #POLYGON_MODE_POINT. + If ##VkPhysicalDeviceMaintenance5PropertiesKHR{@code ::polygonModePointSize} is #TRUE, the point size of the final rasterization of polygons is taken from {@code PointSize} when polygon mode is #POLYGON_MODE_POINT. - Otherwise, if ##VkPhysicalDeviceMaintenance5PropertiesKHR{@code ::polygonModePointSize} is set to #FALSE, the point size of the final rasterization of polygons is 1.0 when polygon mode is #POLYGON_MODE_POINT. + Otherwise, if ##VkPhysicalDeviceMaintenance5PropertiesKHR{@code ::polygonModePointSize} is #FALSE, the point size of the final rasterization of polygons is 1.0 when polygon mode is #POLYGON_MODE_POINT.
        See Also
        ##VkPipelineRasterizationStateCreateInfo, #CmdSetPolygonModeEXT() @@ -3619,7 +3619,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
        • {@code queueFamilyIndex} must be one of the queue family indices specified when {@code device} was created, via the ##VkDeviceQueueCreateInfo structure
        • {@code queueIndex} must be less than the value of ##VkDeviceQueueCreateInfo{@code ::queueCount} for the queue family indicated by {@code queueFamilyIndex} when {@code device} was created
        • -
        • ##VkDeviceQueueCreateInfo{@code ::flags} must have been set to zero when {@code device} was created
        • +
        • ##VkDeviceQueueCreateInfo{@code ::flags} must have been zero when {@code device} was created
        Valid Usage (Implicit)
        @@ -4049,7 +4049,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK VkDeviceSize("offset", "a zero-based byte offset from the beginning of the memory object."), VkDeviceSize("size", "the size of the memory range to map, or #WHOLE_SIZE to map from {@code offset} to the end of the allocation."), VkMemoryMapFlags("flags", "a bitmask of {@code VkMemoryMapFlagBits} specifying additional parameters of the memory map operation."), - Check(1)..void.p.p("ppData", "a pointer to a {@code void*} variable in which a host-accessible pointer to the beginning of the mapped range is returned. This pointer minus {@code offset} must be aligned to at least ##VkPhysicalDeviceLimits{@code ::minMemoryMapAlignment}.") + Check(1)..void.p.p("ppData", "a pointer to a {@code void*} variable in which a host-accessible pointer to the beginning of the mapped range is returned. The value of the returned pointer minus {@code offset} must be aligned to ##VkPhysicalDeviceLimits{@code ::minMemoryMapAlignment}.") ) void( @@ -4066,7 +4066,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK ￿ VkDeviceMemory memory);
        Description
        - Calling {@code vkUnmapMemory} is equivalent to calling #UnmapMemory2KHR() with an empty {@code pNext} chain and the flags parameter set to zero. + Calling {@code vkUnmapMemory} is equivalent to calling #UnmapMemory2KHR() with an empty {@code pNext} chain and {@code flags} set to zero.
        Valid Usage
          @@ -4107,7 +4107,21 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
          Description
          {@code vkFlushMappedMemoryRanges} guarantees that host writes to the memory ranges described by {@code pMemoryRanges} are made available to the host memory domain, such that they can be made available to the device memory domain via memory domain operations using the #ACCESS_HOST_WRITE_BIT access type. - Within each range described by {@code pMemoryRanges}, each set of {@code nonCoherentAtomSize} bytes in that range is flushed if any byte in that set has been written by the host since it was first host mapped, or the last time it was flushed. If {@code pMemoryRanges} includes sets of {@code nonCoherentAtomSize} bytes where no bytes have been written by the host, those bytes must not be flushed. + The first synchronization scope includes all host operations that happened-before it, as defined by the host memory model. + +
          Note
          + Some systems allow writes that do not directly integrate with the host memory model; these have to be synchronized by the application manually. One example of this is non-temporal store instructions on x86; to ensure these happen-before submission, applications should call {@code _mm_sfence()}. +
          + + The second synchronization scope is empty. + + The first access scope includes host writes to the specified memory ranges. + +
          Note
          + When a host write to a memory location is made available in this way, each whole aligned set of {@code nonCoherentAtomSize} bytes that the memory location exists in will also be made available as if they were written by the host. For example, with a {@code nonCoherentAtomSize} of 128, if an application writes to the first byte of a memory object via a host mapping, the first 128 bytes of the memory object will be made available by this command. While the value of the following 127 bytes will be unchanged, this does count as an access for the purpose of synchronization, so care must be taken to avoid data races. +
          + + The second access scope is empty. Unmapping non-coherent memory does not implicitly flush the host mapped memory, and host writes that have not been flushed may not ever be visible to the device. However, implementations must ensure that writes that have not been flushed do not become visible to any other memory. @@ -4162,7 +4176,29 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
          Description
          {@code vkInvalidateMappedMemoryRanges} guarantees that device writes to the memory ranges described by {@code pMemoryRanges}, which have been made available to the host memory domain using the #ACCESS_HOST_WRITE_BIT and #ACCESS_HOST_READ_BIT access types, are made visible to the host. If a range of non-coherent memory is written by the host and then invalidated without first being flushed, its contents are undefined. - Within each range described by {@code pMemoryRanges}, each set of {@code nonCoherentAtomSize} bytes in that range is invalidated if any byte in that set has been written by the device since it was first host mapped, or the last time it was invalidated. + The first synchronization scope includes all host operations that happened-before it, as defined by the host memory model. + +
          Note
          + This function does not synchronize with device operations directly - other host synchronization operations that depend on device operations such as #WaitForFences() must be executed beforehand. So for any non-coherent device write to be made visible to the host, there has to be a dependency chain along the following lines: + +
            +
          • Device write
          • +
          • Device memory barrier including host reads in its second scope
          • +
          • Signal on the device (e.g. a fence signal operation)
          • +
          • Wait on the host (e.g. #WaitForFences())
          • +
          • #InvalidateMappedMemoryRanges()
          • +
          +
          + + The second synchronization scope includes all host operations that happen-after it, as defined by the host memory model. + + The first access scope is empty. + + The second access scope includes host reads to the specified memory ranges. + +
          Note
          + When a device write to a memory location is made visible to the host in this way, each whole aligned set of {@code nonCoherentAtomSize} bytes that the memory location exists in will also be made visible as if they were written by the device. For example, with a {@code nonCoherentAtomSize} of 128, if an application writes to the first byte of a memory object on the device, the first 128 bytes of the memory object will be made visible by this command. While the value of the following 127 bytes will be unchanged, this does count as an access for the purpose of synchronization, so care must be taken to avoid data races. +
          Note
          Mapping non-coherent memory does not implicitly invalidate that memory. @@ -4479,7 +4515,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
          Description
          If {@code pSparseMemoryRequirements} is {@code NULL}, then the number of sparse memory requirements available is returned in {@code pSparseMemoryRequirementCount}. Otherwise, {@code pSparseMemoryRequirementCount} must point to a variable set by the application to the number of elements in the {@code pSparseMemoryRequirements} array, and on return the variable is overwritten with the number of structures actually written to {@code pSparseMemoryRequirements}. If {@code pSparseMemoryRequirementCount} is less than the number of sparse memory requirements available, at most {@code pSparseMemoryRequirementCount} structures will be written. - If the image was not created with #IMAGE_CREATE_SPARSE_RESIDENCY_BIT then {@code pSparseMemoryRequirementCount} will be set to zero and {@code pSparseMemoryRequirements} will not be written to. + If the image was not created with #IMAGE_CREATE_SPARSE_RESIDENCY_BIT then {@code pSparseMemoryRequirementCount} will be zero and {@code pSparseMemoryRequirements} will not be written to.
          Note
          It is legal for an implementation to report a larger value in ##VkMemoryRequirements{@code ::size} than would be obtained by adding together memory sizes for all ##VkSparseImageMemoryRequirements returned by {@code vkGetImageSparseMemoryRequirements}. This may occur when the implementation requires unused padding in the address range describing the resource. @@ -4526,7 +4562,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
          Description
          If {@code pProperties} is {@code NULL}, then the number of sparse format properties available is returned in {@code pPropertyCount}. Otherwise, {@code pPropertyCount} must point to a variable set by the application to the number of elements in the {@code pProperties} array, and on return the variable is overwritten with the number of structures actually written to {@code pProperties}. If {@code pPropertyCount} is less than the number of sparse format properties available, at most {@code pPropertyCount} structures will be written. - If #IMAGE_CREATE_SPARSE_RESIDENCY_BIT is not supported for the given arguments, {@code pPropertyCount} will be set to zero upon return, and no data will be written to {@code pProperties}. + If #IMAGE_CREATE_SPARSE_RESIDENCY_BIT is not supported for the given arguments, {@code pPropertyCount} will be zero upon return, and no data will be written to {@code pProperties}. Multiple aspects are returned for depth/stencil images that are implemented as separate planes by the implementation. The depth and stencil data planes each have unique ##VkSparseImageFormatProperties data. @@ -8586,7 +8622,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
        • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
        • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
        • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
        • -
        • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
        • +
        • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
        • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
        • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
        • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
        • @@ -8691,6 +8727,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilReference() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ##VkPhysicalDeviceMultiviewProperties{@code ::maxMultiviewInstanceIndex}
        • If the bound graphics pipeline was created with ##VkPipelineSampleLocationsStateCreateInfoEXT{@code ::sampleLocationsEnable} set to #TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the #IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
        • +
        • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code sampleLocationsEnable} is #TRUE, then #CmdSetSampleLocationsEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetCullMode() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetFrontFace() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • @@ -8700,10 +8737,9 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
        • If the {@code depthBounds} feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDepthBoundsTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetStencilTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilOp() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then #CmdSetViewportWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::scissorCount} of the pipeline
        • -
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::viewportCount} of the pipeline
        • -
        • If the bound graphics pipeline state was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
        • -
        • If a shader object is bound to any graphics stage, then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
        • +
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetViewportWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetScissorWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing
        • +
        • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled, and the state is not inherited, then the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with ##VkPipelineViewportWScalingStateCreateInfoNV{@code ::viewportCount} greater or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
        • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then #CmdSetViewportWScalingNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then the {@code viewportCount} parameter in the last call to #CmdSetViewportWScalingNV() must be greater than or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
        • @@ -8769,11 +8805,9 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the {@code attachmentCount} parameter of {@code vkCmdSetColorWriteEnableEXT} must be greater than or equal to the ##VkPipelineColorBlendStateCreateInfo{@code ::attachmentCount} of the currently bound graphics pipeline
        • If the {@code colorWriteEnable} feature is enabled on the device, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then the {@code attachmentCount} parameter of most recent call to {@code vkCmdSetColorWriteEnableEXT} in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in ##VkPipelineDiscardRectangleStateCreateInfoEXT{@code ::discardRectangleCount}
        • -
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code discardRectangleEnable} is #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to #FORMAT_UNDEFINED
        • If current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}
        • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is enabled, ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, and the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}, the value of the format must be #FORMAT_UNDEFINED
        • @@ -8815,21 +8849,18 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
        • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetConservativeRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code conservativeRasterizationMode} is #CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then #CmdSetExtraPrimitiveOverestimationSizeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@code depthClipEnable} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then #CmdSetDepthClipEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@link EXTBlendOperationAdvanced VK_EXT_blend_operation_advanced} extension is enabled, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then at least one of #CmdSetColorBlendEquationEXT() and #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@link EXTProvokingVertex VK_EXT_provoking_vertex} extension is enabled, a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetProvokingVertexModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • -
        • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetLineStippleEnableEXT() in the current command buffer set {@code stippledLineEnable} to #TRUE, then #CmdSetLineStippleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • +
        • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled and a shader object is bound to any graphics stage, or a bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code stippledLineEnable} is #TRUE, then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@code depthClipControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then #CmdSetDepthClipNegativeOneToOneEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@code depthClampControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of {@code depthClampEnable} is #TRUE, then #CmdSetDepthClampRangeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then #CmdSetViewportWScalingEnableNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • @@ -8847,7 +8878,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must follow the rules for a zero-attachment subpass
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the ##VkPipelineMultisampleStateCreateInfo{@code ::rasterizationSamples} parameter used to create the bound graphics pipeline
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state and #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the {@code rasterizationSamples} parameter in the last call to #CmdSetRasterizationSamplesEXT()
        • -
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
        • +
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the {@code multisampledRenderToSingleSampled} feature is not enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a ##VkMultisampledRenderToSingleSampledInfoEXT structure with {@code multisampledRenderToSingleSampledEnable} equal to #TRUE, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the {@code rasterizationSamples} member of that structure
        • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
        • If a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
        • @@ -8932,7 +8963,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
        • If there is a shader object bound to the #SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled, and the current value of {@code primitiveTopology} is #PRIMITIVE_TOPOLOGY_PATCH_LIST, then #CmdSetPatchControlPointsEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If there is a shader object bound to the #SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then #CmdSetPrimitiveRestartEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
        • If the {@code primitiveTopologyListRestart} feature is not enabled, the topology is #PRIMITIVE_TOPOLOGY_POINT_LIST, #PRIMITIVE_TOPOLOGY_LINE_LIST, #PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, #PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or #PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the #SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then #CmdSetPrimitiveRestartEnable() must be #FALSE
        • -
        • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of an element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT
        • +
        • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of any element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT
        • There must be no shader object bound to either of the #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT stages
        @@ -9033,7 +9064,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
      • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
      • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
      • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
      • -
      • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
      • +
      • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
      • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
      • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
      • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
      • @@ -9138,6 +9169,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
      • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilReference() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ##VkPhysicalDeviceMultiviewProperties{@code ::maxMultiviewInstanceIndex}
      • If the bound graphics pipeline was created with ##VkPipelineSampleLocationsStateCreateInfoEXT{@code ::sampleLocationsEnable} set to #TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the #IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
      • +
      • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code sampleLocationsEnable} is #TRUE, then #CmdSetSampleLocationsEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetCullMode() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetFrontFace() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • @@ -9147,10 +9179,9 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
      • If the {@code depthBounds} feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDepthBoundsTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetStencilTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilOp() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • -
      • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then #CmdSetViewportWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::scissorCount} of the pipeline
      • -
      • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::viewportCount} of the pipeline
      • -
      • If the bound graphics pipeline state was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
      • -
      • If a shader object is bound to any graphics stage, then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
      • +
      • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetViewportWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • +
      • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetScissorWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing
      • +
      • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled, and the state is not inherited, then the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
      • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with ##VkPipelineViewportWScalingStateCreateInfoNV{@code ::viewportCount} greater or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
      • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then #CmdSetViewportWScalingNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then the {@code viewportCount} parameter in the last call to #CmdSetViewportWScalingNV() must be greater than or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
      • @@ -9216,11 +9247,9 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
      • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the {@code attachmentCount} parameter of {@code vkCmdSetColorWriteEnableEXT} must be greater than or equal to the ##VkPipelineColorBlendStateCreateInfo{@code ::attachmentCount} of the currently bound graphics pipeline
      • If the {@code colorWriteEnable} feature is enabled on the device, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then the {@code attachmentCount} parameter of most recent call to {@code vkCmdSetColorWriteEnableEXT} in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
      • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in ##VkPipelineDiscardRectangleStateCreateInfoEXT{@code ::discardRectangleCount}
      • -
      • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • +
      • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • +
      • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code discardRectangleEnable} is #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • -
      • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • -
      • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • -
      • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to #FORMAT_UNDEFINED
      • If current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}
      • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is enabled, ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, and the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}, the value of the format must be #FORMAT_UNDEFINED
      • @@ -9262,21 +9291,18 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
      • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetConservativeRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code conservativeRasterizationMode} is #CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then #CmdSetExtraPrimitiveOverestimationSizeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • If the {@code depthClipEnable} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then #CmdSetDepthClipEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • -
      • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • -
      • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • If the {@link EXTBlendOperationAdvanced VK_EXT_blend_operation_advanced} extension is enabled, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then at least one of #CmdSetColorBlendEquationEXT() and #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • If the {@link EXTProvokingVertex VK_EXT_provoking_vertex} extension is enabled, a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetProvokingVertexModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • -
      • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • -
      • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • -
      • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • +
      • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • +
      • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • +
      • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • -
      • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • -
      • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • -
      • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • -
      • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • -
      • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetLineStippleEnableEXT() in the current command buffer set {@code stippledLineEnable} to #TRUE, then #CmdSetLineStippleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • +
      • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • +
      • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • +
      • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • +
      • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled and a shader object is bound to any graphics stage, or a bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code stippledLineEnable} is #TRUE, then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • If the {@code depthClipControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then #CmdSetDepthClipNegativeOneToOneEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • If the {@code depthClampControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of {@code depthClampEnable} is #TRUE, then #CmdSetDepthClampRangeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then #CmdSetViewportWScalingEnableNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • @@ -9294,7 +9320,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
      • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must follow the rules for a zero-attachment subpass
      • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the ##VkPipelineMultisampleStateCreateInfo{@code ::rasterizationSamples} parameter used to create the bound graphics pipeline
      • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state and #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the {@code rasterizationSamples} parameter in the last call to #CmdSetRasterizationSamplesEXT()
      • -
      • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
      • +
      • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the {@code multisampledRenderToSingleSampled} feature is not enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
      • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a ##VkMultisampledRenderToSingleSampledInfoEXT structure with {@code multisampledRenderToSingleSampledEnable} equal to #TRUE, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the {@code rasterizationSamples} member of that structure
      • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
      • If a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
      • @@ -9379,7 +9405,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
      • If there is a shader object bound to the #SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled, and the current value of {@code primitiveTopology} is #PRIMITIVE_TOPOLOGY_PATCH_LIST, then #CmdSetPatchControlPointsEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • If there is a shader object bound to the #SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then #CmdSetPrimitiveRestartEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
      • If the {@code primitiveTopologyListRestart} feature is not enabled, the topology is #PRIMITIVE_TOPOLOGY_POINT_LIST, #PRIMITIVE_TOPOLOGY_LINE_LIST, #PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, #PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or #PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the #SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then #CmdSetPrimitiveRestartEnable() must be #FALSE
      • -
      • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of an element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT
      • +
      • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of any element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT
      • There must be no shader object bound to either of the #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT stages
      @@ -9484,7 +9510,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
    • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
    • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
    • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
    • -
    • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
    • +
    • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
    • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
    • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
    • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
    • @@ -9589,6 +9615,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
    • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilReference() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ##VkPhysicalDeviceMultiviewProperties{@code ::maxMultiviewInstanceIndex}
    • If the bound graphics pipeline was created with ##VkPipelineSampleLocationsStateCreateInfoEXT{@code ::sampleLocationsEnable} set to #TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the #IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
    • +
    • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code sampleLocationsEnable} is #TRUE, then #CmdSetSampleLocationsEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetCullMode() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetFrontFace() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • @@ -9598,10 +9625,9 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
    • If the {@code depthBounds} feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDepthBoundsTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetStencilTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilOp() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • -
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then #CmdSetViewportWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::scissorCount} of the pipeline
    • -
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::viewportCount} of the pipeline
    • -
    • If the bound graphics pipeline state was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
    • -
    • If a shader object is bound to any graphics stage, then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
    • +
    • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetViewportWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • +
    • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetScissorWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing
    • +
    • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled, and the state is not inherited, then the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with ##VkPipelineViewportWScalingStateCreateInfoNV{@code ::viewportCount} greater or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
    • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then #CmdSetViewportWScalingNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then the {@code viewportCount} parameter in the last call to #CmdSetViewportWScalingNV() must be greater than or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
    • @@ -9667,11 +9693,9 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the {@code attachmentCount} parameter of {@code vkCmdSetColorWriteEnableEXT} must be greater than or equal to the ##VkPipelineColorBlendStateCreateInfo{@code ::attachmentCount} of the currently bound graphics pipeline
    • If the {@code colorWriteEnable} feature is enabled on the device, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then the {@code attachmentCount} parameter of most recent call to {@code vkCmdSetColorWriteEnableEXT} in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in ##VkPipelineDiscardRectangleStateCreateInfoEXT{@code ::discardRectangleCount}
    • -
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • +
    • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • +
    • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code discardRectangleEnable} is #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • -
    • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • -
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • -
    • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to #FORMAT_UNDEFINED
    • If current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}
    • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is enabled, ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, and the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}, the value of the format must be #FORMAT_UNDEFINED
    • @@ -9713,21 +9737,18 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
    • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetConservativeRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code conservativeRasterizationMode} is #CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then #CmdSetExtraPrimitiveOverestimationSizeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the {@code depthClipEnable} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then #CmdSetDepthClipEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • -
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • -
    • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the {@link EXTBlendOperationAdvanced VK_EXT_blend_operation_advanced} extension is enabled, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then at least one of #CmdSetColorBlendEquationEXT() and #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the {@link EXTProvokingVertex VK_EXT_provoking_vertex} extension is enabled, a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetProvokingVertexModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • -
    • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • -
    • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • -
    • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • +
    • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • +
    • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • +
    • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • -
    • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • -
    • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • -
    • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • -
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • -
    • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetLineStippleEnableEXT() in the current command buffer set {@code stippledLineEnable} to #TRUE, then #CmdSetLineStippleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • +
    • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • +
    • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • +
    • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • +
    • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled and a shader object is bound to any graphics stage, or a bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code stippledLineEnable} is #TRUE, then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the {@code depthClipControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then #CmdSetDepthClipNegativeOneToOneEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the {@code depthClampControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of {@code depthClampEnable} is #TRUE, then #CmdSetDepthClampRangeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then #CmdSetViewportWScalingEnableNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • @@ -9745,7 +9766,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must follow the rules for a zero-attachment subpass
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the ##VkPipelineMultisampleStateCreateInfo{@code ::rasterizationSamples} parameter used to create the bound graphics pipeline
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state and #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the {@code rasterizationSamples} parameter in the last call to #CmdSetRasterizationSamplesEXT()
    • -
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
    • +
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the {@code multisampledRenderToSingleSampled} feature is not enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a ##VkMultisampledRenderToSingleSampledInfoEXT structure with {@code multisampledRenderToSingleSampledEnable} equal to #TRUE, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the {@code rasterizationSamples} member of that structure
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
    • If a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
    • @@ -9824,7 +9845,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
    • If there is a shader object bound to the #SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled, and the current value of {@code primitiveTopology} is #PRIMITIVE_TOPOLOGY_PATCH_LIST, then #CmdSetPatchControlPointsEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If there is a shader object bound to the #SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then #CmdSetPrimitiveRestartEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the {@code primitiveTopologyListRestart} feature is not enabled, the topology is #PRIMITIVE_TOPOLOGY_POINT_LIST, #PRIMITIVE_TOPOLOGY_LINE_LIST, #PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, #PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or #PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the #SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then #CmdSetPrimitiveRestartEnable() must be #FALSE
    • -
    • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of an element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT
    • +
    • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of any element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT
    • There must be no shader object bound to either of the #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT stages
    @@ -9932,7 +9953,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
  • -
  • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • +
  • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • @@ -10037,6 +10058,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilReference() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ##VkPhysicalDeviceMultiviewProperties{@code ::maxMultiviewInstanceIndex}
  • If the bound graphics pipeline was created with ##VkPipelineSampleLocationsStateCreateInfoEXT{@code ::sampleLocationsEnable} set to #TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the #IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
  • +
  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code sampleLocationsEnable} is #TRUE, then #CmdSetSampleLocationsEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetCullMode() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetFrontFace() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • @@ -10046,10 +10068,9 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
  • If the {@code depthBounds} feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDepthBoundsTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetStencilTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilOp() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • -
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then #CmdSetViewportWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::scissorCount} of the pipeline
  • -
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::viewportCount} of the pipeline
  • -
  • If the bound graphics pipeline state was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
  • -
  • If a shader object is bound to any graphics stage, then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
  • +
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetViewportWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • +
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetScissorWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing
  • +
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled, and the state is not inherited, then the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with ##VkPipelineViewportWScalingStateCreateInfoNV{@code ::viewportCount} greater or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then #CmdSetViewportWScalingNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then the {@code viewportCount} parameter in the last call to #CmdSetViewportWScalingNV() must be greater than or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
  • @@ -10115,11 +10136,9 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the {@code attachmentCount} parameter of {@code vkCmdSetColorWriteEnableEXT} must be greater than or equal to the ##VkPipelineColorBlendStateCreateInfo{@code ::attachmentCount} of the currently bound graphics pipeline
  • If the {@code colorWriteEnable} feature is enabled on the device, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then the {@code attachmentCount} parameter of most recent call to {@code vkCmdSetColorWriteEnableEXT} in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in ##VkPipelineDiscardRectangleStateCreateInfoEXT{@code ::discardRectangleCount}
  • -
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • +
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • +
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code discardRectangleEnable} is #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • -
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • -
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • -
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to #FORMAT_UNDEFINED
  • If current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}
  • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is enabled, ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, and the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}, the value of the format must be #FORMAT_UNDEFINED
  • @@ -10161,21 +10180,18 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
  • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetConservativeRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code conservativeRasterizationMode} is #CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then #CmdSetExtraPrimitiveOverestimationSizeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the {@code depthClipEnable} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then #CmdSetDepthClipEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • -
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • -
  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the {@link EXTBlendOperationAdvanced VK_EXT_blend_operation_advanced} extension is enabled, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then at least one of #CmdSetColorBlendEquationEXT() and #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the {@link EXTProvokingVertex VK_EXT_provoking_vertex} extension is enabled, a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetProvokingVertexModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • -
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • -
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • -
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • +
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • +
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • +
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • -
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • -
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • -
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • -
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • -
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetLineStippleEnableEXT() in the current command buffer set {@code stippledLineEnable} to #TRUE, then #CmdSetLineStippleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • +
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • +
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • +
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • +
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled and a shader object is bound to any graphics stage, or a bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code stippledLineEnable} is #TRUE, then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the {@code depthClipControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then #CmdSetDepthClipNegativeOneToOneEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the {@code depthClampControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of {@code depthClampEnable} is #TRUE, then #CmdSetDepthClampRangeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then #CmdSetViewportWScalingEnableNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • @@ -10193,7 +10209,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must follow the rules for a zero-attachment subpass
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the ##VkPipelineMultisampleStateCreateInfo{@code ::rasterizationSamples} parameter used to create the bound graphics pipeline
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state and #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the {@code rasterizationSamples} parameter in the last call to #CmdSetRasterizationSamplesEXT()
  • -
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
  • +
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the {@code multisampledRenderToSingleSampled} feature is not enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a ##VkMultisampledRenderToSingleSampledInfoEXT structure with {@code multisampledRenderToSingleSampledEnable} equal to #TRUE, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the {@code rasterizationSamples} member of that structure
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
  • If a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
  • @@ -10272,7 +10288,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
  • If there is a shader object bound to the #SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled, and the current value of {@code primitiveTopology} is #PRIMITIVE_TOPOLOGY_PATCH_LIST, then #CmdSetPatchControlPointsEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If there is a shader object bound to the #SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then #CmdSetPrimitiveRestartEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the {@code primitiveTopologyListRestart} feature is not enabled, the topology is #PRIMITIVE_TOPOLOGY_POINT_LIST, #PRIMITIVE_TOPOLOGY_LINE_LIST, #PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, #PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or #PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the #SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then #CmdSetPrimitiveRestartEnable() must be #FALSE
  • -
  • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of an element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT
  • +
  • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of any element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT
  • There must be no shader object bound to either of the #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT stages
  • @@ -10383,7 +10399,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
  • -
  • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • +
  • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • @@ -10510,7 +10526,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
  • -
  • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • +
  • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • @@ -12903,8 +12919,8 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
  • Each element of {@code pCommandBuffers} must have been allocated from a {@code VkCommandPool} that was created for the same queue family as the {@code VkCommandPool} from which {@code commandBuffer} was allocated
  • If {@code vkCmdExecuteCommands} is being called within a render pass instance, each element of {@code pCommandBuffers} must have been recorded with the #COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT
  • If {@code vkCmdExecuteCommands} is being called within a render pass instance, and any element of {@code pCommandBuffers} was recorded with ##VkCommandBufferInheritanceInfo{@code ::framebuffer} not equal to #NULL_HANDLE, that {@code VkFramebuffer} must match the {@code VkFramebuffer} used in the current render pass instance
  • -
  • If {@code vkCmdExecuteCommands} is being called within a render pass instance begun with #CmdBeginRenderPass(), and #CmdNextSubpass() has not been called in the current render pass instance, the {@code contents} parameter of #CmdBeginRenderPass() must have been set to #SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS , or #SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT
  • -
  • If {@code vkCmdExecuteCommands} is being called within a render pass instance begun with #CmdBeginRenderPass(), and #CmdNextSubpass() has been called in the current render pass instance, the {@code contents} parameter of the last call to #CmdNextSubpass() must have been set to #SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS , or #SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR
  • +
  • If {@code vkCmdExecuteCommands} is being called within a render pass instance begun with #CmdBeginRenderPass(), and #CmdNextSubpass() has not been called in the current render pass instance, the {@code contents} parameter of #CmdBeginRenderPass() must have been #SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS , or #SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT
  • +
  • If {@code vkCmdExecuteCommands} is being called within a render pass instance begun with #CmdBeginRenderPass(), and #CmdNextSubpass() has been called in the current render pass instance, the {@code contents} parameter of the last call to #CmdNextSubpass() must have been #SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS , or #SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR
  • If {@code vkCmdExecuteCommands} is being called within a render pass instance begun with #CmdBeginRenderPass(), each element of {@code pCommandBuffers} must have been recorded with ##VkCommandBufferInheritanceInfo{@code ::subpass} set to the index of the subpass which the given command buffer will be executed in
  • If {@code vkCmdExecuteCommands} is being called within a render pass instance begun with #CmdBeginRenderPass(), the render passes specified in the {@code pBeginInfo→pInheritanceInfo→renderPass} members of the #BeginCommandBuffer() commands used to begin recording each element of {@code pCommandBuffers} must be compatible with the current render pass
  • If {@code vkCmdExecuteCommands} is being called within a render pass instance that included ##VkRenderPassTransformBeginInfoQCOM in the {@code pNext} chain of ##VkRenderPassBeginInfo, then each element of {@code pCommandBuffers} must have been recorded with ##VkCommandBufferInheritanceRenderPassTransformInfoQCOM in the {@code pNext} chain of ##VkCommandBufferBeginInfo
  • diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/VK11.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/VK11.kt index 13d966e9fa..31f99a19fe 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/VK11.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/VK11.kt @@ -1186,7 +1186,7 @@ val VK11 = "VK11".nativeClass(Module.VULKAN, "VK11", prefix = "VK", binding = VK
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
  • -
  • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • +
  • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • @@ -1468,7 +1468,7 @@ val VK11 = "VK11".nativeClass(Module.VULKAN, "VK11", prefix = "VK", binding = VK ￿ VkPhysicalDeviceFeatures2* pFeatures);
    Description
    - Each structure in {@code pFeatures} and its {@code pNext} chain contains members corresponding to fine-grained features. {@code vkGetPhysicalDeviceFeatures2} writes each member to a boolean value indicating whether that feature is supported. + Each structure in {@code pFeatures} and its {@code pNext} chain contains members corresponding to fine-grained features. Each structure in {@code pFeatures} and its {@code pNext} chain contains {@code VkBool32} members corresponding to fine-grained features. Each such member is returned with a #TRUE value indicating that feature is supported on this physical device, or a #FALSE value indicating it is unsupported.
    Valid Usage (Implicit)
      diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/VK12.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/VK12.kt index bb090c9ed6..660a9b57e5 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/VK12.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/VK12.kt @@ -496,7 +496,7 @@ val VK12 = "VK12".nativeClass(Module.VULKAN, "VK12", prefix = "VK", binding = VK
    • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
    • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
    • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
    • -
    • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
    • +
    • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
    • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
    • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
    • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
    • @@ -601,6 +601,7 @@ val VK12 = "VK12".nativeClass(Module.VULKAN, "VK12", prefix = "VK", binding = VK
    • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilReference() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ##VkPhysicalDeviceMultiviewProperties{@code ::maxMultiviewInstanceIndex}
    • If the bound graphics pipeline was created with ##VkPipelineSampleLocationsStateCreateInfoEXT{@code ::sampleLocationsEnable} set to #TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the #IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
    • +
    • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code sampleLocationsEnable} is #TRUE, then #CmdSetSampleLocationsEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetCullMode() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetFrontFace() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • @@ -610,10 +611,9 @@ val VK12 = "VK12".nativeClass(Module.VULKAN, "VK12", prefix = "VK", binding = VK
    • If the {@code depthBounds} feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDepthBoundsTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetStencilTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilOp() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • -
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then #CmdSetViewportWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::scissorCount} of the pipeline
    • -
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::viewportCount} of the pipeline
    • -
    • If the bound graphics pipeline state was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
    • -
    • If a shader object is bound to any graphics stage, then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
    • +
    • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetViewportWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • +
    • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetScissorWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing
    • +
    • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled, and the state is not inherited, then the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with ##VkPipelineViewportWScalingStateCreateInfoNV{@code ::viewportCount} greater or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
    • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then #CmdSetViewportWScalingNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then the {@code viewportCount} parameter in the last call to #CmdSetViewportWScalingNV() must be greater than or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
    • @@ -679,11 +679,9 @@ val VK12 = "VK12".nativeClass(Module.VULKAN, "VK12", prefix = "VK", binding = VK
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the {@code attachmentCount} parameter of {@code vkCmdSetColorWriteEnableEXT} must be greater than or equal to the ##VkPipelineColorBlendStateCreateInfo{@code ::attachmentCount} of the currently bound graphics pipeline
    • If the {@code colorWriteEnable} feature is enabled on the device, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then the {@code attachmentCount} parameter of most recent call to {@code vkCmdSetColorWriteEnableEXT} in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in ##VkPipelineDiscardRectangleStateCreateInfoEXT{@code ::discardRectangleCount}
    • -
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • +
    • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • +
    • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code discardRectangleEnable} is #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • -
    • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • -
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • -
    • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to #FORMAT_UNDEFINED
    • If current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}
    • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is enabled, ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, and the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}, the value of the format must be #FORMAT_UNDEFINED
    • @@ -725,21 +723,18 @@ val VK12 = "VK12".nativeClass(Module.VULKAN, "VK12", prefix = "VK", binding = VK
    • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetConservativeRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code conservativeRasterizationMode} is #CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then #CmdSetExtraPrimitiveOverestimationSizeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the {@code depthClipEnable} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then #CmdSetDepthClipEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • -
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • -
    • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the {@link EXTBlendOperationAdvanced VK_EXT_blend_operation_advanced} extension is enabled, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then at least one of #CmdSetColorBlendEquationEXT() and #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the {@link EXTProvokingVertex VK_EXT_provoking_vertex} extension is enabled, a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetProvokingVertexModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • -
    • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • -
    • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • -
    • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • +
    • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • +
    • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • +
    • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • -
    • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • -
    • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • -
    • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • -
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • -
    • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetLineStippleEnableEXT() in the current command buffer set {@code stippledLineEnable} to #TRUE, then #CmdSetLineStippleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • +
    • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • +
    • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • +
    • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • +
    • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled and a shader object is bound to any graphics stage, or a bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code stippledLineEnable} is #TRUE, then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the {@code depthClipControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then #CmdSetDepthClipNegativeOneToOneEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the {@code depthClampControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of {@code depthClampEnable} is #TRUE, then #CmdSetDepthClampRangeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then #CmdSetViewportWScalingEnableNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • @@ -757,7 +752,7 @@ val VK12 = "VK12".nativeClass(Module.VULKAN, "VK12", prefix = "VK", binding = VK
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must follow the rules for a zero-attachment subpass
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the ##VkPipelineMultisampleStateCreateInfo{@code ::rasterizationSamples} parameter used to create the bound graphics pipeline
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state and #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the {@code rasterizationSamples} parameter in the last call to #CmdSetRasterizationSamplesEXT()
    • -
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
    • +
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the {@code multisampledRenderToSingleSampled} feature is not enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a ##VkMultisampledRenderToSingleSampledInfoEXT structure with {@code multisampledRenderToSingleSampledEnable} equal to #TRUE, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the {@code rasterizationSamples} member of that structure
    • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
    • If a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
    • @@ -836,7 +831,7 @@ val VK12 = "VK12".nativeClass(Module.VULKAN, "VK12", prefix = "VK", binding = VK
    • If there is a shader object bound to the #SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled, and the current value of {@code primitiveTopology} is #PRIMITIVE_TOPOLOGY_PATCH_LIST, then #CmdSetPatchControlPointsEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If there is a shader object bound to the #SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then #CmdSetPrimitiveRestartEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
    • If the {@code primitiveTopologyListRestart} feature is not enabled, the topology is #PRIMITIVE_TOPOLOGY_POINT_LIST, #PRIMITIVE_TOPOLOGY_LINE_LIST, #PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, #PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or #PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the #SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then #CmdSetPrimitiveRestartEnable() must be #FALSE
    • -
    • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of an element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT
    • +
    • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of any element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT
    • There must be no shader object bound to either of the #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT stages
    @@ -856,8 +851,6 @@ val VK12 = "VK12".nativeClass(Module.VULKAN, "VK12", prefix = "VK", binding = VK
  • If {@code drawIndirectCount} is not enabled this function must not be used
  • {@code stride} must be a multiple of 4 and must be greater than or equal to sizeof(##VkDrawIndirectCommand)
  • If {@code maxDrawCount} is greater than or equal to 1, (stride × (maxDrawCount - 1) + offset + sizeof(##VkDrawIndirectCommand)) must be less than or equal to the size of {@code buffer}
  • -
  • If the count stored in {@code countBuffer} is equal to 1, (offset + sizeof(##VkDrawIndirectCommand)) must be less than or equal to the size of {@code buffer}
  • -
  • If the count stored in {@code countBuffer} is greater than 1, (stride × (drawCount - 1) + offset + sizeof(##VkDrawIndirectCommand)) must be less than or equal to the size of {@code buffer}
  • Valid Usage (Implicit)
    @@ -978,7 +971,7 @@ val VK12 = "VK12".nativeClass(Module.VULKAN, "VK12", prefix = "VK", binding = VK
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used to sample from any {@code VkImage} with a {@code VkImageView} of the type #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, #IMAGE_VIEW_TYPE_1D_ARRAY, #IMAGE_VIEW_TYPE_2D_ARRAY or #IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions with {@code ImplicitLod}, {@code Dref} or {@code Proj} in their name, in any shader stage
  • If the {@code VkPipeline} object bound to the pipeline bind point used by this command or any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a {@code VkSampler} object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
  • -
  • If the {@code shaderObject} is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • +
  • If the {@code shaderObject} feature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid and #NULL_HANDLE shader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code uniformBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • If the {@code robustBufferAccess} feature is not enabled, and any {@code VkShaderEXT} bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • If any stage of the {@code VkPipeline} object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or #PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for {@code storageBuffers}, and the {@code robustBufferAccess} feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • @@ -1083,6 +1076,7 @@ val VK12 = "VK12".nativeClass(Module.VULKAN, "VK12", prefix = "VK", binding = VK
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, the current value of and {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilReference() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ##VkPhysicalDeviceMultiviewProperties{@code ::maxMultiviewInstanceIndex}
  • If the bound graphics pipeline was created with ##VkPipelineSampleLocationsStateCreateInfoEXT{@code ::sampleLocationsEnable} set to #TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the #IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
  • +
  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code sampleLocationsEnable} is #TRUE, then #CmdSetSampleLocationsEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CULL_MODE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetCullMode() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_FRONT_FACE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetFrontFace() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • @@ -1092,10 +1086,9 @@ val VK12 = "VK12".nativeClass(Module.VULKAN, "VK12", prefix = "VK", binding = VK
  • If the {@code depthBounds} feature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDepthBoundsTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetStencilTestEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_STENCIL_OP dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, the current value of {@code stencilTestEnable} is #TRUE, then #CmdSetStencilOp() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • -
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, then #CmdSetViewportWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::scissorCount} of the pipeline
  • -
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, then #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount} must match the ##VkPipelineViewportStateCreateInfo{@code ::viewportCount} of the pipeline
  • -
  • If the bound graphics pipeline state was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
  • -
  • If a shader object is bound to any graphics stage, then both #CmdSetViewportWithCount() and #CmdSetScissorWithCount() must have been called in the current command buffer prior to this drawing command, and the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
  • +
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetViewportWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • +
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, and the state is not inherited, then #CmdSetScissorWithCount() must have been called and not subsequently invalidated in the current command buffer prior to this drawing
  • +
  • If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with both the #DYNAMIC_STATE_SCISSOR_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled, and the state is not inherited, then the {@code viewportCount} parameter of {@code vkCmdSetViewportWithCount} must match the {@code scissorCount} parameter of {@code vkCmdSetScissorWithCount}
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but not the #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with ##VkPipelineViewportWScalingStateCreateInfoNV{@code ::viewportCount} greater or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then #CmdSetViewportWScalingNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_WITH_COUNT and #DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the current value of {@code viewportWScalingEnable} is #TRUE, then the {@code viewportCount} parameter in the last call to #CmdSetViewportWScalingNV() must be greater than or equal to the {@code viewportCount} parameter in the last call to #CmdSetViewportWithCount()
  • @@ -1161,11 +1154,9 @@ val VK12 = "VK12".nativeClass(Module.VULKAN, "VK12", prefix = "VK", binding = VK
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the {@code attachmentCount} parameter of {@code vkCmdSetColorWriteEnableEXT} must be greater than or equal to the ##VkPipelineColorBlendStateCreateInfo{@code ::attachmentCount} of the currently bound graphics pipeline
  • If the {@code colorWriteEnable} feature is enabled on the device, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then the {@code attachmentCount} parameter of most recent call to {@code vkCmdSetColorWriteEnableEXT} in the current command buffer must be greater than or equal to the number of color attachments in the current render pass instance
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle in ##VkPipelineDiscardRectangleStateCreateInfoEXT{@code ::discardRectangleCount}
  • -
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • +
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • +
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code discardRectangleEnable} is #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • -
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetDiscardRectangleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • -
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • -
  • If the {@link EXTDiscardRectangles VK_EXT_discard_rectangles} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetDiscardRectangleEnableEXT() in the current command buffer set {@code discardRectangleEnable} to #TRUE, then #CmdSetDiscardRectangleModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to #FORMAT_UNDEFINED
  • If current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is not enabled, and ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline must be equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}
  • If the current render pass instance was begun with #CmdBeginRendering(), the {@code dynamicRenderingUnusedAttachments} feature is enabled, ##VkRenderingInfo{@code ::pDepthAttachment→imageView} was not #NULL_HANDLE, and the value of ##VkPipelineRenderingCreateInfo{@code ::depthAttachmentFormat} used to create the currently bound graphics pipeline was not equal to the {@code VkFormat} used to create ##VkRenderingInfo{@code ::pDepthAttachment→imageView}, the value of the format must be #FORMAT_UNDEFINED
  • @@ -1207,21 +1198,18 @@ val VK12 = "VK12".nativeClass(Module.VULKAN, "VK12", prefix = "VK", binding = VK
  • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetConservativeRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the {@link EXTConservativeRasterization VK_EXT_conservative_rasterization} extension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code conservativeRasterizationMode} is #CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then #CmdSetExtraPrimitiveOverestimationSizeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the {@code depthClipEnable} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state, then #CmdSetDepthClipEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • -
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • -
  • If the {@link EXTSampleLocations VK_EXT_sample_locations} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetSampleLocationsEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the {@link EXTBlendOperationAdvanced VK_EXT_blend_operation_advanced} extension is enabled, and a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then at least one of #CmdSetColorBlendEquationEXT() and #CmdSetColorBlendAdvancedEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the {@link EXTProvokingVertex VK_EXT_provoking_vertex} extension is enabled, a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of {@code rasterizerDiscardEnable} is #FALSE, then #CmdSetProvokingVertexModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • -
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • -
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • -
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • +
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • +
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • +
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineRasterizationModeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • -
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • -
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • -
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • -
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • -
  • If the {@link KHRLineRasterization VK_KHR_line_rasterization} or {@link EXTLineRasterization VK_EXT_line_rasterization} extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetLineStippleEnableEXT() in the current command buffer set {@code stippledLineEnable} to #TRUE, then #CmdSetLineStippleEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • +
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to any graphics stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPolygonModeEXT() in the current command buffer set {@code polygonMode} to #POLYGON_MODE_LINE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • +
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object is bound to the #SHADER_STAGE_VERTEX_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, and the most recent call to #CmdSetPrimitiveTopology() in the current command buffer set {@code primitiveTopology} to any line topology, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • +
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled, and a shader object that outputs line primitives is bound to the #SHADER_STAGE_TESSELLATION_EVALUATION_BIT or #SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetLineStippleEnableEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • +
  • If any of the {@code stippledRectangularLines}, {@code stippledBresenhamLines} or {@code stippledSmoothLines} features are enabled and a shader object is bound to any graphics stage, or a bound graphics pipeline state was created with the #DYNAMIC_STATE_LINE_STIPPLE_KHR dynamic state enabled, the current value of {@code rasterizerDiscardEnable} is #FALSE, and the current value of {@code stippledLineEnable} is #TRUE, then #CmdSetLineStippleKHR() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the {@code depthClipControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled, then #CmdSetDepthClipNegativeOneToOneEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the {@code depthClampControl} feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT dynamic state enabled, and the current value of {@code depthClampEnable} is #TRUE, then #CmdSetDepthClampRangeEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the {@link NVClipSpaceWScaling VK_NV_clip_space_w_scaling} extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the #DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled, then #CmdSetViewportWScalingEnableNV() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • @@ -1239,7 +1227,7 @@ val VK12 = "VK12".nativeClass(Module.VULKAN, "VK12", prefix = "VK", binding = VK
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the current subpass does not use any color and/or depth/stencil attachments, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must follow the rules for a zero-attachment subpass
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the ##VkPipelineMultisampleStateCreateInfo{@code ::rasterizationSamples} parameter used to create the bound graphics pipeline
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_SAMPLE_MASK_EXT state and #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then the {@code samples} parameter in the last call to #CmdSetSampleMaskEXT() must be greater or equal to the {@code rasterizationSamples} parameter in the last call to #CmdSetRasterizationSamplesEXT()
  • -
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
  • +
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the {@code multisampledRenderToSingleSampled} feature is not enabled, and neither the {@link AMDMixedAttachmentSamples VK_AMD_mixed_attachment_samples} nor the {@link NVFramebufferMixedSamples VK_NV_framebuffer_mixed_samples} extensions are enabled, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the current subpass color and/or depth/stencil attachments
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes a ##VkMultisampledRenderToSingleSampledInfoEXT structure with {@code multisampledRenderToSingleSampledEnable} equal to #TRUE, then the {@code rasterizationSamples} in the last call to #CmdSetRasterizationSamplesEXT() must be the same as the {@code rasterizationSamples} member of that structure
  • If the bound graphics pipeline state was created with the #DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
  • If a shader object is bound to the #SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to #CmdSetRasterizerDiscardEnable() in the current command buffer set {@code rasterizerDiscardEnable} to #FALSE, then #CmdSetColorBlendEnableEXT() must have been called in the current command buffer prior to this drawing command, and the attachments specified by the {@code firstAttachment} and {@code attachmentCount} parameters of {@code vkCmdSetColorBlendEnableEXT} calls must specify an enable for all active color attachments in the current subpass
  • @@ -1318,7 +1306,7 @@ val VK12 = "VK12".nativeClass(Module.VULKAN, "VK12", prefix = "VK", binding = VK
  • If there is a shader object bound to the #SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled, and the current value of {@code primitiveTopology} is #PRIMITIVE_TOPOLOGY_PATCH_LIST, then #CmdSetPatchControlPointsEXT() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If there is a shader object bound to the #SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then #CmdSetPrimitiveRestartEnable() must have been called and not subsequently invalidated in the current command buffer prior to this drawing command
  • If the {@code primitiveTopologyListRestart} feature is not enabled, the topology is #PRIMITIVE_TOPOLOGY_POINT_LIST, #PRIMITIVE_TOPOLOGY_LINE_LIST, #PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, #PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or #PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the #SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the #DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then #CmdSetPrimitiveRestartEnable() must be #FALSE
  • -
  • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of an element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT
  • +
  • The bound graphics pipeline must not have been created with the ##VkPipelineShaderStageCreateInfo{@code ::stage} member of any element of ##VkGraphicsPipelineCreateInfo{@code ::pStages} set to #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT
  • There must be no shader object bound to either of the #SHADER_STAGE_TASK_BIT_EXT or #SHADER_STAGE_MESH_BIT_EXT stages
  • @@ -1342,8 +1330,6 @@ val VK12 = "VK12".nativeClass(Module.VULKAN, "VK12", prefix = "VK", binding = VK
  • If {@code maintenance6} is not enabled, a valid index buffer must be bound
  • {@code stride} must be a multiple of 4 and must be greater than or equal to sizeof(##VkDrawIndexedIndirectCommand)
  • If {@code maxDrawCount} is greater than or equal to 1, (stride × (maxDrawCount - 1) + offset + sizeof(##VkDrawIndexedIndirectCommand)) must be less than or equal to the size of {@code buffer}
  • -
  • If count stored in {@code countBuffer} is equal to 1, (offset + sizeof(##VkDrawIndexedIndirectCommand)) must be less than or equal to the size of {@code buffer}
  • -
  • If count stored in {@code countBuffer} is greater than 1, (stride × (drawCount - 1) + offset + sizeof(##VkDrawIndexedIndirectCommand)) must be less than or equal to the size of {@code buffer}
  • Valid Usage (Implicit)