Class VK12
- Direct Known Subclasses:
VK13
Vulkan Version 1.2 promoted a number of key extensions into the core API:
KHR_8bit_storageKHR_buffer_device_addressKHR_create_renderpass2KHR_depth_stencil_resolveKHR_draw_indirect_countKHR_driver_propertiesKHR_image_format_listKHR_imageless_framebufferKHR_sampler_mirror_clamp_to_edgeKHR_separate_depth_stencil_layoutsKHR_shader_atomic_int64KHR_shader_float16_int8KHR_shader_float_controlsKHR_shader_subgroup_extended_typesKHR_spirv_1_4KHR_timeline_semaphoreKHR_uniform_buffer_standard_layoutKHR_vulkan_memory_modelEXT_descriptor_indexingEXT_host_query_resetEXT_sampler_filter_minmaxEXT_scalar_block_layoutEXT_separate_stencil_usageEXT_shader_viewport_index_layer
All differences in behavior between these extensions and the corresponding Vulkan 1.2 functionality are summarized below.
Differences relative to VK_KHR_8bit_storage
If the VK_KHR_8bit_storage extension is not supported, support for the SPIR-V StorageBuffer8BitAccess capability in shader modules
is optional. Support for this feature is defined by VkPhysicalDeviceVulkan12Features::storageBuffer8BitAccess when queried via
GetPhysicalDeviceFeatures2.
Differences relative to VK_KHR_draw_indirect_count
If the VK_KHR_draw_indirect_count extension is not supported, support for the entry points CmdDrawIndirectCount and
CmdDrawIndexedIndirectCount is optional. Support for this feature is defined by VkPhysicalDeviceVulkan12Features::drawIndirectCount
when queried via GetPhysicalDeviceFeatures2.
Differences relative to VK_KHR_sampler_mirror_clamp_to_edge
If the VK_KHR_sampler_mirror_clamp_to_edge extension is not supported, support for the VkSamplerAddressMode
SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE is optional. Support for this feature is defined by
VkPhysicalDeviceVulkan12Features::samplerMirrorClampToEdge when queried via GetPhysicalDeviceFeatures2.
Differences relative to VK_EXT_descriptor_indexing
If the VK_EXT_descriptor_indexing extension is not supported, support for the descriptorIndexing feature is optional. Support for
this feature is defined by VkPhysicalDeviceVulkan12Features::descriptorIndexing when queried via GetPhysicalDeviceFeatures2.
Differences relative to VK_EXT_scalar_block_layout
If the VK_EXT_scalar_block_layout extension is not supported, support for the scalarBlockLayout feature is optional. Support for
this feature is defined by VkPhysicalDeviceVulkan12Features::scalarBlockLayout when queried via GetPhysicalDeviceFeatures2.
Differences relative to VK_EXT_shader_viewport_index_layer
If the VK_EXT_shader_viewport_index_layer extension is not supported, support for the ShaderViewportIndexLayerEXT SPIR-V capability
is optional. Support for this feature is defined by VkPhysicalDeviceVulkan12Features::shaderOutputViewportIndex and
VkPhysicalDeviceVulkan12Features::shaderOutputLayer when queried via GetPhysicalDeviceFeatures2.
Additional Vulkan 1.2 Feature Support
In addition to the promoted extensions described above, Vulkan 1.2 added support for:
- SPIR-V version 1.4.
- SPIR-V version 1.5.
- The samplerMirrorClampToEdge
feature which indicates whether the implementation supports the
SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGEsampler address mode. - The
ShaderNonUniformcapability in SPIR-V version 1.5. - The shaderOutputViewportIndex
feature which indicates that the
ShaderViewportIndexcapability can be used. - The shaderOutputLayer
feature which indicates that the
ShaderLayercapability can be used. - The subgroupBroadcastDynamicId
feature which allows the "
Id" operand ofOpGroupNonUniformBroadcastto be dynamically uniform within a subgroup, and the "Index" operand ofOpGroupNonUniformQuadBroadcastto be dynamically uniform within a derivative group, in shader modules of version 1.5 or higher. - The drawIndirectCount
feature which indicates whether the
CmdDrawIndirectCountandCmdDrawIndexedIndirectCountfunctions can be used. - The descriptorIndexing feature which indicates the implementation supports the minimum number of descriptor indexing features as defined in the Feature Requirements section.
- The samplerFilterMinmax
feature which indicates whether the implementation supports the minimum number of image formats that support the
FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BITfeature bit as defined by thefilterMinmaxSingleComponentFormatsproperty minimum requirements. - The framebufferIntegerColorSampleCounts limit which indicates the color sample counts that are supported for all framebuffer color attachments with integer formats.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intThe API version number for Vulkan 1.2.static final intExtendsVkBufferCreateFlagBits.static final intExtendsVkBufferUsageFlagBits.static final intVkDescriptorBindingFlagBits - Bitmask specifying descriptor set layout binding propertiesstatic final intVkDescriptorBindingFlagBits - Bitmask specifying descriptor set layout binding propertiesstatic final intVkDescriptorBindingFlagBits - Bitmask specifying descriptor set layout binding propertiesstatic final intVkDescriptorBindingFlagBits - Bitmask specifying descriptor set layout binding propertiesstatic final intExtendsVkDescriptorPoolCreateFlagBits.static final intExtendsVkDescriptorSetLayoutCreateFlagBits.static final intVkDriverId - Khronos driver IDsstatic final intVkDriverId - Khronos driver IDsstatic final intVkDriverId - Khronos driver IDsstatic final intVkDriverId - Khronos driver IDsstatic final intVkDriverId - Khronos driver IDsstatic final intVkDriverId - Khronos driver IDsstatic final intVkDriverId - Khronos driver IDsstatic final intVkDriverId - Khronos driver IDsstatic final intVkDriverId - Khronos driver IDsstatic final intVkDriverId - Khronos driver IDsstatic final intVkDriverId - Khronos driver IDsstatic final intVkDriverId - Khronos driver IDsstatic final intVkDriverId - Khronos driver IDsstatic final intVkDriverId - Khronos driver IDsstatic final intVkDriverId - Khronos driver IDsstatic final intVkDriverId - Khronos driver IDsstatic final intVkDriverId - Khronos driver IDsstatic final intVkDriverId - Khronos driver IDsstatic final intVkDriverId - Khronos driver IDsstatic final intVkDriverId - Khronos driver IDsstatic final intVkDriverId - Khronos driver IDsstatic final intVkDriverId - Khronos driver IDsstatic final intVkDriverId - Khronos driver IDsstatic final intVkDriverId - Khronos driver IDsstatic final intVkDriverId - Khronos driver IDsstatic final intVkDriverId - Khronos driver IDsstatic final intVkDriverId - Khronos driver IDsstatic final intExtendsVkResult.static final intExtendsVkResult.static final intExtendsVkFormatFeatureFlagBits.static final intExtendsVkFramebufferCreateFlagBits.static final intExtendsVkImageLayout.static final intExtendsVkImageLayout.static final intExtendsVkImageLayout.static final intExtendsVkImageLayout.static final intExtendsVkMemoryAllocateFlagBits.static final intExtendsVkMemoryAllocateFlagBits.static final intVkResolveModeFlagBits - Bitmask indicating supported depth and stencil resolve modesstatic final intVkResolveModeFlagBits - Bitmask indicating supported depth and stencil resolve modesstatic final intVkResolveModeFlagBits - Bitmask indicating supported depth and stencil resolve modesstatic final intVkResolveModeFlagBits - Bitmask indicating supported depth and stencil resolve modesstatic final intVkResolveModeFlagBits - Bitmask indicating supported depth and stencil resolve modesstatic final intExtendsVkSamplerAddressMode.static final intVkSamplerReductionMode - Specify reduction mode for texture filteringstatic final intVkSamplerReductionMode - Specify reduction mode for texture filteringstatic final intVkSamplerReductionMode - Specify reduction mode for texture filteringstatic final intVkSemaphoreType - Specifies the type of a semaphore objectstatic final intVkSemaphoreType - Specifies the type of a semaphore objectstatic final intVkSemaphoreWaitFlagBits - Bitmask specifying additional parameters of a semaphore wait operationstatic final intVkShaderFloatControlsIndependence - Bitmask specifying whether, and how, shader float controls can be set separatelystatic final intVkShaderFloatControlsIndependence - Bitmask specifying whether, and how, shader float controls can be set separatelystatic final intVkShaderFloatControlsIndependence - Bitmask specifying whether, and how, shader float controls can be set separatelystatic final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.Fields inherited from class org.lwjgl.vulkan.VK11
VK_API_VERSION_1_1, VK_BUFFER_CREATE_PROTECTED_BIT, VK_CHROMA_LOCATION_COSITED_EVEN, VK_CHROMA_LOCATION_MIDPOINT, VK_COMMAND_POOL_CREATE_PROTECTED_BIT, VK_DEPENDENCY_DEVICE_GROUP_BIT, VK_DEPENDENCY_VIEW_LOCAL_BIT, VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT, VK_ERROR_INVALID_EXTERNAL_HANDLE, VK_ERROR_OUT_OF_POOL_MEMORY, VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT, VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT, VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT, VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT, VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT, VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT, VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT, VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT, VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT, VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT, VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT, VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT, VK_FENCE_IMPORT_TEMPORARY_BIT, VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16, VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16, VK_FORMAT_B16G16R16G16_422_UNORM, VK_FORMAT_B8G8R8G8_422_UNORM, VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT, VK_FORMAT_FEATURE_DISJOINT_BIT, VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT, VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT, VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT, VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT, VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT, VK_FORMAT_FEATURE_TRANSFER_DST_BIT, VK_FORMAT_FEATURE_TRANSFER_SRC_BIT, VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16, VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16, VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16, VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16, VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16, VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16, VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16, VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16, VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16, VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16, VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16, VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16, VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM, VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM, VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM, VK_FORMAT_G16_B16R16_2PLANE_420_UNORM, VK_FORMAT_G16_B16R16_2PLANE_422_UNORM, VK_FORMAT_G16B16G16R16_422_UNORM, VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM, VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM, VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM, VK_FORMAT_G8_B8R8_2PLANE_420_UNORM, VK_FORMAT_G8_B8R8_2PLANE_422_UNORM, VK_FORMAT_G8B8G8R8_422_UNORM, VK_FORMAT_R10X6_UNORM_PACK16, VK_FORMAT_R10X6G10X6_UNORM_2PACK16, VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16, VK_FORMAT_R12X4_UNORM_PACK16, VK_FORMAT_R12X4G12X4_UNORM_2PACK16, VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16, VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, VK_IMAGE_ASPECT_PLANE_2_BIT, VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, VK_IMAGE_CREATE_ALIAS_BIT, VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, VK_IMAGE_CREATE_DISJOINT_BIT, VK_IMAGE_CREATE_EXTENDED_USAGE_BIT, VK_IMAGE_CREATE_PROTECTED_BIT, VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT, VK_MEMORY_HEAP_MULTI_INSTANCE_BIT, VK_MEMORY_PROPERTY_PROTECTED_BIT, VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE, VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION, VK_PEER_MEMORY_FEATURE_COPY_DST_BIT, VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT, VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT, VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT, VK_PIPELINE_CREATE_DISPATCH_BASE, VK_PIPELINE_CREATE_DISPATCH_BASE_BIT, VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT, VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES, VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY, VK_QUEUE_PROTECTED_BIT, VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY, VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020, VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601, VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709, VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY, VK_SAMPLER_YCBCR_RANGE_ITU_FULL, VK_SAMPLER_YCBCR_RANGE_ITU_NARROW, VK_SEMAPHORE_IMPORT_TEMPORARY_BIT, VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO, VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO, VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO, VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO, VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO, VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2, VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT, VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO, VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO, VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO, VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO, VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO, VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO, VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2, VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO, VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO, VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO, VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES, VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES, VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES, VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO, VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO, VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES, VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2, VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2, VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2, VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO, VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2, VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO, VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO, VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO, VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS, VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES, VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO, VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO, VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2, VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO, VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO, VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO, VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES, VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO, VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2, VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2, VK_SUBGROUP_FEATURE_ARITHMETIC_BIT, VK_SUBGROUP_FEATURE_BALLOT_BIT, VK_SUBGROUP_FEATURE_BASIC_BIT, VK_SUBGROUP_FEATURE_CLUSTERED_BIT, VK_SUBGROUP_FEATURE_QUAD_BIT, VK_SUBGROUP_FEATURE_SHUFFLE_BIT, VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT, VK_SUBGROUP_FEATURE_VOTE_BIT, VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT, VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFTFields inherited from class org.lwjgl.vulkan.VK10
VK_ACCESS_COLOR_ATTACHMENT_READ_BIT, VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT, VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, VK_ACCESS_HOST_READ_BIT, VK_ACCESS_HOST_WRITE_BIT, VK_ACCESS_INDEX_READ_BIT, VK_ACCESS_INDIRECT_COMMAND_READ_BIT, VK_ACCESS_INPUT_ATTACHMENT_READ_BIT, VK_ACCESS_MEMORY_READ_BIT, VK_ACCESS_MEMORY_WRITE_BIT, VK_ACCESS_SHADER_READ_BIT, VK_ACCESS_SHADER_WRITE_BIT, VK_ACCESS_TRANSFER_READ_BIT, VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_UNIFORM_READ_BIT, VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT, VK_API_VERSION_1_0, VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT, VK_ATTACHMENT_LOAD_OP_CLEAR, VK_ATTACHMENT_LOAD_OP_DONT_CARE, VK_ATTACHMENT_LOAD_OP_LOAD, VK_ATTACHMENT_STORE_OP_DONT_CARE, VK_ATTACHMENT_STORE_OP_STORE, VK_ATTACHMENT_UNUSED, VK_BLEND_FACTOR_CONSTANT_ALPHA, VK_BLEND_FACTOR_CONSTANT_COLOR, VK_BLEND_FACTOR_DST_ALPHA, VK_BLEND_FACTOR_DST_COLOR, VK_BLEND_FACTOR_ONE, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA, VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA, VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC_ALPHA, VK_BLEND_FACTOR_SRC_ALPHA_SATURATE, VK_BLEND_FACTOR_SRC_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ZERO, VK_BLEND_OP_ADD, VK_BLEND_OP_MAX, VK_BLEND_OP_MIN, VK_BLEND_OP_REVERSE_SUBTRACT, VK_BLEND_OP_SUBTRACT, VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK, VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE, VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK, VK_BORDER_COLOR_INT_OPAQUE_BLACK, VK_BORDER_COLOR_INT_OPAQUE_WHITE, VK_BORDER_COLOR_INT_TRANSPARENT_BLACK, VK_BUFFER_CREATE_SPARSE_ALIASED_BIT, VK_BUFFER_CREATE_SPARSE_BINDING_BIT, VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT, VK_BUFFER_USAGE_INDEX_BUFFER_BIT, VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT, VK_BUFFER_USAGE_TRANSFER_DST_BIT, VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT, VK_COLOR_COMPONENT_A_BIT, VK_COLOR_COMPONENT_B_BIT, VK_COLOR_COMPONENT_G_BIT, VK_COLOR_COMPONENT_R_BIT, VK_COMMAND_BUFFER_LEVEL_PRIMARY, VK_COMMAND_BUFFER_LEVEL_SECONDARY, VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT, VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT, VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, VK_COMMAND_POOL_CREATE_TRANSIENT_BIT, VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT, VK_COMPARE_OP_ALWAYS, VK_COMPARE_OP_EQUAL, VK_COMPARE_OP_GREATER, VK_COMPARE_OP_GREATER_OR_EQUAL, VK_COMPARE_OP_LESS, VK_COMPARE_OP_LESS_OR_EQUAL, VK_COMPARE_OP_NEVER, VK_COMPARE_OP_NOT_EQUAL, VK_COMPONENT_SWIZZLE_A, VK_COMPONENT_SWIZZLE_B, VK_COMPONENT_SWIZZLE_G, VK_COMPONENT_SWIZZLE_IDENTITY, VK_COMPONENT_SWIZZLE_ONE, VK_COMPONENT_SWIZZLE_R, VK_COMPONENT_SWIZZLE_ZERO, VK_CULL_MODE_BACK_BIT, VK_CULL_MODE_FRONT_AND_BACK, VK_CULL_MODE_FRONT_BIT, VK_CULL_MODE_NONE, VK_DEPENDENCY_BY_REGION_BIT, VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_SAMPLER, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, VK_DYNAMIC_STATE_BLEND_CONSTANTS, VK_DYNAMIC_STATE_DEPTH_BIAS, VK_DYNAMIC_STATE_DEPTH_BOUNDS, VK_DYNAMIC_STATE_LINE_WIDTH, VK_DYNAMIC_STATE_SCISSOR, VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK, VK_DYNAMIC_STATE_STENCIL_REFERENCE, VK_DYNAMIC_STATE_STENCIL_WRITE_MASK, VK_DYNAMIC_STATE_VIEWPORT, VK_ERROR_DEVICE_LOST, VK_ERROR_EXTENSION_NOT_PRESENT, VK_ERROR_FEATURE_NOT_PRESENT, VK_ERROR_FORMAT_NOT_SUPPORTED, VK_ERROR_FRAGMENTED_POOL, VK_ERROR_INCOMPATIBLE_DRIVER, VK_ERROR_INITIALIZATION_FAILED, VK_ERROR_LAYER_NOT_PRESENT, VK_ERROR_MEMORY_MAP_FAILED, VK_ERROR_OUT_OF_DEVICE_MEMORY, VK_ERROR_OUT_OF_HOST_MEMORY, VK_ERROR_TOO_MANY_OBJECTS, VK_ERROR_UNKNOWN, VK_EVENT_RESET, VK_EVENT_SET, VK_FALSE, VK_FENCE_CREATE_SIGNALED_BIT, VK_FILTER_LINEAR, VK_FILTER_NEAREST, VK_FORMAT_A1R5G5B5_UNORM_PACK16, VK_FORMAT_A2B10G10R10_SINT_PACK32, VK_FORMAT_A2B10G10R10_SNORM_PACK32, VK_FORMAT_A2B10G10R10_SSCALED_PACK32, VK_FORMAT_A2B10G10R10_UINT_PACK32, VK_FORMAT_A2B10G10R10_UNORM_PACK32, VK_FORMAT_A2B10G10R10_USCALED_PACK32, VK_FORMAT_A2R10G10B10_SINT_PACK32, VK_FORMAT_A2R10G10B10_SNORM_PACK32, VK_FORMAT_A2R10G10B10_SSCALED_PACK32, VK_FORMAT_A2R10G10B10_UINT_PACK32, VK_FORMAT_A2R10G10B10_UNORM_PACK32, VK_FORMAT_A2R10G10B10_USCALED_PACK32, VK_FORMAT_A8B8G8R8_SINT_PACK32, VK_FORMAT_A8B8G8R8_SNORM_PACK32, VK_FORMAT_A8B8G8R8_SRGB_PACK32, VK_FORMAT_A8B8G8R8_SSCALED_PACK32, VK_FORMAT_A8B8G8R8_UINT_PACK32, VK_FORMAT_A8B8G8R8_UNORM_PACK32, VK_FORMAT_A8B8G8R8_USCALED_PACK32, VK_FORMAT_ASTC_10x10_SRGB_BLOCK, VK_FORMAT_ASTC_10x10_UNORM_BLOCK, VK_FORMAT_ASTC_10x5_SRGB_BLOCK, VK_FORMAT_ASTC_10x5_UNORM_BLOCK, VK_FORMAT_ASTC_10x6_SRGB_BLOCK, VK_FORMAT_ASTC_10x6_UNORM_BLOCK, VK_FORMAT_ASTC_10x8_SRGB_BLOCK, VK_FORMAT_ASTC_10x8_UNORM_BLOCK, VK_FORMAT_ASTC_12x10_SRGB_BLOCK, VK_FORMAT_ASTC_12x10_UNORM_BLOCK, VK_FORMAT_ASTC_12x12_SRGB_BLOCK, VK_FORMAT_ASTC_12x12_UNORM_BLOCK, VK_FORMAT_ASTC_4x4_SRGB_BLOCK, VK_FORMAT_ASTC_4x4_UNORM_BLOCK, VK_FORMAT_ASTC_5x4_SRGB_BLOCK, VK_FORMAT_ASTC_5x4_UNORM_BLOCK, VK_FORMAT_ASTC_5x5_SRGB_BLOCK, VK_FORMAT_ASTC_5x5_UNORM_BLOCK, VK_FORMAT_ASTC_6x5_SRGB_BLOCK, VK_FORMAT_ASTC_6x5_UNORM_BLOCK, VK_FORMAT_ASTC_6x6_SRGB_BLOCK, VK_FORMAT_ASTC_6x6_UNORM_BLOCK, VK_FORMAT_ASTC_8x5_SRGB_BLOCK, VK_FORMAT_ASTC_8x5_UNORM_BLOCK, VK_FORMAT_ASTC_8x6_SRGB_BLOCK, VK_FORMAT_ASTC_8x6_UNORM_BLOCK, VK_FORMAT_ASTC_8x8_SRGB_BLOCK, VK_FORMAT_ASTC_8x8_UNORM_BLOCK, VK_FORMAT_B10G11R11_UFLOAT_PACK32, VK_FORMAT_B4G4R4A4_UNORM_PACK16, VK_FORMAT_B5G5R5A1_UNORM_PACK16, VK_FORMAT_B5G6R5_UNORM_PACK16, VK_FORMAT_B8G8R8_SINT, VK_FORMAT_B8G8R8_SNORM, VK_FORMAT_B8G8R8_SRGB, VK_FORMAT_B8G8R8_SSCALED, VK_FORMAT_B8G8R8_UINT, VK_FORMAT_B8G8R8_UNORM, VK_FORMAT_B8G8R8_USCALED, VK_FORMAT_B8G8R8A8_SINT, VK_FORMAT_B8G8R8A8_SNORM, VK_FORMAT_B8G8R8A8_SRGB, VK_FORMAT_B8G8R8A8_SSCALED, VK_FORMAT_B8G8R8A8_UINT, VK_FORMAT_B8G8R8A8_UNORM, VK_FORMAT_B8G8R8A8_USCALED, VK_FORMAT_BC1_RGB_SRGB_BLOCK, VK_FORMAT_BC1_RGB_UNORM_BLOCK, VK_FORMAT_BC1_RGBA_SRGB_BLOCK, VK_FORMAT_BC1_RGBA_UNORM_BLOCK, VK_FORMAT_BC2_SRGB_BLOCK, VK_FORMAT_BC2_UNORM_BLOCK, VK_FORMAT_BC3_SRGB_BLOCK, VK_FORMAT_BC3_UNORM_BLOCK, VK_FORMAT_BC4_SNORM_BLOCK, VK_FORMAT_BC4_UNORM_BLOCK, VK_FORMAT_BC5_SNORM_BLOCK, VK_FORMAT_BC5_UNORM_BLOCK, VK_FORMAT_BC6H_SFLOAT_BLOCK, VK_FORMAT_BC6H_UFLOAT_BLOCK, VK_FORMAT_BC7_SRGB_BLOCK, VK_FORMAT_BC7_UNORM_BLOCK, VK_FORMAT_D16_UNORM, VK_FORMAT_D16_UNORM_S8_UINT, VK_FORMAT_D24_UNORM_S8_UINT, VK_FORMAT_D32_SFLOAT, VK_FORMAT_D32_SFLOAT_S8_UINT, VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, VK_FORMAT_EAC_R11_SNORM_BLOCK, VK_FORMAT_EAC_R11_UNORM_BLOCK, VK_FORMAT_EAC_R11G11_SNORM_BLOCK, VK_FORMAT_EAC_R11G11_UNORM_BLOCK, VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK, VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK, VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK, VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK, VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK, VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK, VK_FORMAT_FEATURE_BLIT_DST_BIT, VK_FORMAT_FEATURE_BLIT_SRC_BIT, VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT, VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT, VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT, VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT, VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT, VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT, VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT, VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT, VK_FORMAT_R16_SFLOAT, VK_FORMAT_R16_SINT, VK_FORMAT_R16_SNORM, VK_FORMAT_R16_SSCALED, VK_FORMAT_R16_UINT, VK_FORMAT_R16_UNORM, VK_FORMAT_R16_USCALED, VK_FORMAT_R16G16_SFLOAT, VK_FORMAT_R16G16_SINT, VK_FORMAT_R16G16_SNORM, VK_FORMAT_R16G16_SSCALED, VK_FORMAT_R16G16_UINT, VK_FORMAT_R16G16_UNORM, VK_FORMAT_R16G16_USCALED, VK_FORMAT_R16G16B16_SFLOAT, VK_FORMAT_R16G16B16_SINT, VK_FORMAT_R16G16B16_SNORM, VK_FORMAT_R16G16B16_SSCALED, VK_FORMAT_R16G16B16_UINT, VK_FORMAT_R16G16B16_UNORM, VK_FORMAT_R16G16B16_USCALED, VK_FORMAT_R16G16B16A16_SFLOAT, VK_FORMAT_R16G16B16A16_SINT, VK_FORMAT_R16G16B16A16_SNORM, VK_FORMAT_R16G16B16A16_SSCALED, VK_FORMAT_R16G16B16A16_UINT, VK_FORMAT_R16G16B16A16_UNORM, VK_FORMAT_R16G16B16A16_USCALED, VK_FORMAT_R32_SFLOAT, VK_FORMAT_R32_SINT, VK_FORMAT_R32_UINT, VK_FORMAT_R32G32_SFLOAT, VK_FORMAT_R32G32_SINT, VK_FORMAT_R32G32_UINT, VK_FORMAT_R32G32B32_SFLOAT, VK_FORMAT_R32G32B32_SINT, VK_FORMAT_R32G32B32_UINT, VK_FORMAT_R32G32B32A32_SFLOAT, VK_FORMAT_R32G32B32A32_SINT, VK_FORMAT_R32G32B32A32_UINT, VK_FORMAT_R4G4_UNORM_PACK8, VK_FORMAT_R4G4B4A4_UNORM_PACK16, VK_FORMAT_R5G5B5A1_UNORM_PACK16, VK_FORMAT_R5G6B5_UNORM_PACK16, VK_FORMAT_R64_SFLOAT, VK_FORMAT_R64_SINT, VK_FORMAT_R64_UINT, VK_FORMAT_R64G64_SFLOAT, VK_FORMAT_R64G64_SINT, VK_FORMAT_R64G64_UINT, VK_FORMAT_R64G64B64_SFLOAT, VK_FORMAT_R64G64B64_SINT, VK_FORMAT_R64G64B64_UINT, VK_FORMAT_R64G64B64A64_SFLOAT, VK_FORMAT_R64G64B64A64_SINT, VK_FORMAT_R64G64B64A64_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R8_SNORM, VK_FORMAT_R8_SRGB, VK_FORMAT_R8_SSCALED, VK_FORMAT_R8_UINT, VK_FORMAT_R8_UNORM, VK_FORMAT_R8_USCALED, VK_FORMAT_R8G8_SINT, VK_FORMAT_R8G8_SNORM, VK_FORMAT_R8G8_SRGB, VK_FORMAT_R8G8_SSCALED, VK_FORMAT_R8G8_UINT, VK_FORMAT_R8G8_UNORM, VK_FORMAT_R8G8_USCALED, VK_FORMAT_R8G8B8_SINT, VK_FORMAT_R8G8B8_SNORM, VK_FORMAT_R8G8B8_SRGB, VK_FORMAT_R8G8B8_SSCALED, VK_FORMAT_R8G8B8_UINT, VK_FORMAT_R8G8B8_UNORM, VK_FORMAT_R8G8B8_USCALED, VK_FORMAT_R8G8B8A8_SINT, VK_FORMAT_R8G8B8A8_SNORM, VK_FORMAT_R8G8B8A8_SRGB, VK_FORMAT_R8G8B8A8_SSCALED, VK_FORMAT_R8G8B8A8_UINT, VK_FORMAT_R8G8B8A8_UNORM, VK_FORMAT_R8G8B8A8_USCALED, VK_FORMAT_S8_UINT, VK_FORMAT_UNDEFINED, VK_FORMAT_X8_D24_UNORM_PACK32, VK_FRONT_FACE_CLOCKWISE, VK_FRONT_FACE_COUNTER_CLOCKWISE, VK_HEADER_VERSION, VK_IMAGE_ASPECT_COLOR_BIT, VK_IMAGE_ASPECT_DEPTH_BIT, VK_IMAGE_ASPECT_METADATA_BIT, VK_IMAGE_ASPECT_STENCIL_BIT, VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, VK_IMAGE_CREATE_SPARSE_ALIASED_BIT, VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, VK_IMAGE_LAYOUT_PREINITIALIZED, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_TILING_LINEAR, VK_IMAGE_TILING_OPTIMAL, VK_IMAGE_TYPE_1D, VK_IMAGE_TYPE_2D, VK_IMAGE_TYPE_3D, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, VK_IMAGE_USAGE_STORAGE_BIT, VK_IMAGE_USAGE_TRANSFER_DST_BIT, VK_IMAGE_USAGE_TRANSFER_SRC_BIT, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, VK_IMAGE_VIEW_TYPE_1D, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D, VK_IMAGE_VIEW_TYPE_2D_ARRAY, VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, VK_INCOMPLETE, VK_INDEX_TYPE_UINT16, VK_INDEX_TYPE_UINT32, VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE, VK_LOD_CLAMP_NONE, VK_LOGIC_OP_AND, VK_LOGIC_OP_AND_INVERTED, VK_LOGIC_OP_AND_REVERSE, VK_LOGIC_OP_CLEAR, VK_LOGIC_OP_COPY, VK_LOGIC_OP_COPY_INVERTED, VK_LOGIC_OP_EQUIVALENT, VK_LOGIC_OP_INVERT, VK_LOGIC_OP_NAND, VK_LOGIC_OP_NO_OP, VK_LOGIC_OP_NOR, VK_LOGIC_OP_OR, VK_LOGIC_OP_OR_INVERTED, VK_LOGIC_OP_OR_REVERSE, VK_LOGIC_OP_SET, VK_LOGIC_OP_XOR, VK_LUID_SIZE, VK_MAX_DESCRIPTION_SIZE, VK_MAX_DEVICE_GROUP_SIZE, VK_MAX_DRIVER_INFO_SIZE, VK_MAX_DRIVER_NAME_SIZE, VK_MAX_EXTENSION_NAME_SIZE, VK_MAX_GLOBAL_PRIORITY_SIZE, VK_MAX_MEMORY_HEAPS, VK_MAX_MEMORY_TYPES, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE, VK_MEMORY_HEAP_DEVICE_LOCAL_BIT, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT, VK_MEMORY_PROPERTY_HOST_CACHED_BIT, VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT, VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT, VK_NOT_READY, VK_NULL_HANDLE, VK_OBJECT_TYPE_BUFFER, VK_OBJECT_TYPE_BUFFER_VIEW, VK_OBJECT_TYPE_COMMAND_BUFFER, VK_OBJECT_TYPE_COMMAND_POOL, VK_OBJECT_TYPE_DESCRIPTOR_POOL, VK_OBJECT_TYPE_DESCRIPTOR_SET, VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT, VK_OBJECT_TYPE_DEVICE, VK_OBJECT_TYPE_DEVICE_MEMORY, VK_OBJECT_TYPE_EVENT, VK_OBJECT_TYPE_FENCE, VK_OBJECT_TYPE_FRAMEBUFFER, VK_OBJECT_TYPE_IMAGE, VK_OBJECT_TYPE_IMAGE_VIEW, VK_OBJECT_TYPE_INSTANCE, VK_OBJECT_TYPE_PHYSICAL_DEVICE, VK_OBJECT_TYPE_PIPELINE, VK_OBJECT_TYPE_PIPELINE_CACHE, VK_OBJECT_TYPE_PIPELINE_LAYOUT, VK_OBJECT_TYPE_QUERY_POOL, VK_OBJECT_TYPE_QUEUE, VK_OBJECT_TYPE_RENDER_PASS, VK_OBJECT_TYPE_SAMPLER, VK_OBJECT_TYPE_SEMAPHORE, VK_OBJECT_TYPE_SHADER_MODULE, VK_OBJECT_TYPE_UNKNOWN, VK_PHYSICAL_DEVICE_TYPE_CPU, VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU, VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU, VK_PHYSICAL_DEVICE_TYPE_OTHER, VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU, VK_PIPELINE_BIND_POINT_COMPUTE, VK_PIPELINE_BIND_POINT_GRAPHICS, VK_PIPELINE_CACHE_HEADER_VERSION_ONE, VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT, VK_PIPELINE_CREATE_DERIVATIVE_BIT, VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT, VK_PIPELINE_STAGE_HOST_BIT, VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, VK_POLYGON_MODE_FILL, VK_POLYGON_MODE_LINE, VK_POLYGON_MODE_POINT, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY, VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY, VK_QUERY_CONTROL_PRECISE_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT, VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, VK_QUERY_RESULT_64_BIT, VK_QUERY_RESULT_PARTIAL_BIT, VK_QUERY_RESULT_WAIT_BIT, VK_QUERY_RESULT_WITH_AVAILABILITY_BIT, VK_QUERY_TYPE_OCCLUSION, VK_QUERY_TYPE_PIPELINE_STATISTICS, VK_QUERY_TYPE_TIMESTAMP, VK_QUEUE_COMPUTE_BIT, VK_QUEUE_FAMILY_EXTERNAL, VK_QUEUE_FAMILY_IGNORED, VK_QUEUE_GRAPHICS_BIT, VK_QUEUE_SPARSE_BINDING_BIT, VK_QUEUE_TRANSFER_BIT, VK_REMAINING_ARRAY_LAYERS, VK_REMAINING_MIP_LEVELS, VK_SAMPLE_COUNT_1_BIT, VK_SAMPLE_COUNT_16_BIT, VK_SAMPLE_COUNT_2_BIT, VK_SAMPLE_COUNT_32_BIT, VK_SAMPLE_COUNT_4_BIT, VK_SAMPLE_COUNT_64_BIT, VK_SAMPLE_COUNT_8_BIT, VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT, VK_SAMPLER_ADDRESS_MODE_REPEAT, VK_SAMPLER_MIPMAP_MODE_LINEAR, VK_SAMPLER_MIPMAP_MODE_NEAREST, VK_SHADER_STAGE_ALL, VK_SHADER_STAGE_ALL_GRAPHICS, VK_SHADER_STAGE_COMPUTE_BIT, VK_SHADER_STAGE_FRAGMENT_BIT, VK_SHADER_STAGE_GEOMETRY_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, VK_SHADER_STAGE_VERTEX_BIT, VK_SHARING_MODE_CONCURRENT, VK_SHARING_MODE_EXCLUSIVE, VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT, VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT, VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT, VK_SPARSE_MEMORY_BIND_METADATA_BIT, VK_STENCIL_FACE_BACK_BIT, VK_STENCIL_FACE_FRONT_AND_BACK, VK_STENCIL_FACE_FRONT_BIT, VK_STENCIL_FRONT_AND_BACK, VK_STENCIL_OP_DECREMENT_AND_CLAMP, VK_STENCIL_OP_DECREMENT_AND_WRAP, VK_STENCIL_OP_INCREMENT_AND_CLAMP, VK_STENCIL_OP_INCREMENT_AND_WRAP, VK_STENCIL_OP_INVERT, VK_STENCIL_OP_KEEP, VK_STENCIL_OP_REPLACE, VK_STENCIL_OP_ZERO, VK_STRUCTURE_TYPE_APPLICATION_INFO, VK_STRUCTURE_TYPE_BIND_SPARSE_INFO, VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO, VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER, VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO, VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO, VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO, VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO, VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO, VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO, VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET, VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO, VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO, VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO, VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO, VK_STRUCTURE_TYPE_EVENT_CREATE_INFO, VK_STRUCTURE_TYPE_FENCE_CREATE_INFO, VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO, VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO, VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO, VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO, VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO, VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE, VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO, VK_STRUCTURE_TYPE_MEMORY_BARRIER, VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO, VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO, VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO, VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO, VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO, VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO, VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO, VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO, VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO, VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO, VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO, VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO, VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO, VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO, VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO, VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO, VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO, VK_STRUCTURE_TYPE_SUBMIT_INFO, VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, VK_SUBPASS_CONTENTS_INLINE, VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS, VK_SUBPASS_EXTERNAL, VK_SUCCESS, VK_SYSTEM_ALLOCATION_SCOPE_CACHE, VK_SYSTEM_ALLOCATION_SCOPE_COMMAND, VK_SYSTEM_ALLOCATION_SCOPE_DEVICE, VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE, VK_SYSTEM_ALLOCATION_SCOPE_OBJECT, VK_TIMEOUT, VK_TRUE, VK_UUID_SIZE, VK_VENDOR_ID_CODEPLAY, VK_VENDOR_ID_KAZAN, VK_VENDOR_ID_KHRONOS, VK_VENDOR_ID_MESA, VK_VENDOR_ID_MOBILEYE, VK_VENDOR_ID_POCL, VK_VENDOR_ID_VIV, VK_VENDOR_ID_VSI, VK_VERTEX_INPUT_RATE_INSTANCE, VK_VERTEX_INPUT_RATE_VERTEX, VK_WHOLE_SIZE -
Method Summary
Modifier and TypeMethodDescriptionstatic voidnvkCmdBeginRenderPass2(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long pRenderPassBegin, long pSubpassBeginInfo) Unsafe version of:CmdBeginRenderPass2static voidnvkCmdEndRenderPass2(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long pSubpassEndInfo) Unsafe version of:CmdEndRenderPass2static voidnvkCmdNextSubpass2(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long pSubpassBeginInfo, long pSubpassEndInfo) Unsafe version of:CmdNextSubpass2static intnvkCreateRenderPass2(org.lwjgl.vulkan.VkDevice device, long pCreateInfo, long pAllocator, long pRenderPass) Unsafe version of:CreateRenderPass2static longnvkGetBufferDeviceAddress(org.lwjgl.vulkan.VkDevice device, long pInfo) Unsafe version of:GetBufferDeviceAddressstatic longnvkGetBufferOpaqueCaptureAddress(org.lwjgl.vulkan.VkDevice device, long pInfo) Unsafe version of:GetBufferOpaqueCaptureAddressstatic longnvkGetDeviceMemoryOpaqueCaptureAddress(org.lwjgl.vulkan.VkDevice device, long pInfo) Unsafe version of:GetDeviceMemoryOpaqueCaptureAddressstatic intnvkGetSemaphoreCounterValue(org.lwjgl.vulkan.VkDevice device, long semaphore, long pValue) Unsafe version of:GetSemaphoreCounterValuestatic intnvkSignalSemaphore(org.lwjgl.vulkan.VkDevice device, long pSignalInfo) Unsafe version of:SignalSemaphorestatic intnvkWaitSemaphores(org.lwjgl.vulkan.VkDevice device, long pWaitInfo, long timeout) Unsafe version of:WaitSemaphoresstatic voidvkCmdBeginRenderPass2(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkRenderPassBeginInfo pRenderPassBegin, VkSubpassBeginInfo pSubpassBeginInfo) Begin a new render pass.static voidvkCmdDrawIndexedIndirectCount(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long buffer, long offset, long countBuffer, long countBufferOffset, int maxDrawCount, int stride) Draw parameters with indirect parameters, indexed vertices, and draw count.static voidvkCmdDrawIndirectCount(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long buffer, long offset, long countBuffer, long countBufferOffset, int maxDrawCount, int stride) Draw primitives with indirect parameters and draw count.static voidvkCmdEndRenderPass2(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkSubpassEndInfo pSubpassEndInfo) End the current render pass.static voidvkCmdNextSubpass2(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkSubpassBeginInfo pSubpassBeginInfo, VkSubpassEndInfo pSubpassEndInfo) Transition to the next subpass of a render pass.static intvkCreateRenderPass2(org.lwjgl.vulkan.VkDevice device, VkRenderPassCreateInfo2 pCreateInfo, @Nullable VkAllocationCallbacks pAllocator, long[] pRenderPass) Array version of:CreateRenderPass2static intvkCreateRenderPass2(org.lwjgl.vulkan.VkDevice device, VkRenderPassCreateInfo2 pCreateInfo, @Nullable VkAllocationCallbacks pAllocator, LongBuffer pRenderPass) Create a new render pass object.static longvkGetBufferDeviceAddress(org.lwjgl.vulkan.VkDevice device, VkBufferDeviceAddressInfo pInfo) Query an address of a buffer.static longvkGetBufferOpaqueCaptureAddress(org.lwjgl.vulkan.VkDevice device, VkBufferDeviceAddressInfo pInfo) Query an opaque capture address of a buffer.static longvkGetDeviceMemoryOpaqueCaptureAddress(org.lwjgl.vulkan.VkDevice device, VkDeviceMemoryOpaqueCaptureAddressInfo pInfo) Query an opaque capture address of a memory object.static intvkGetSemaphoreCounterValue(org.lwjgl.vulkan.VkDevice device, long semaphore, long[] pValue) Array version of:GetSemaphoreCounterValuestatic intvkGetSemaphoreCounterValue(org.lwjgl.vulkan.VkDevice device, long semaphore, LongBuffer pValue) Query the current state of a timeline semaphore.static voidvkResetQueryPool(org.lwjgl.vulkan.VkDevice device, long queryPool, int firstQuery, int queryCount) Reset queries in a query pool.static intvkSignalSemaphore(org.lwjgl.vulkan.VkDevice device, VkSemaphoreSignalInfo pSignalInfo) Signal a timeline semaphore on the host.static intvkWaitSemaphores(org.lwjgl.vulkan.VkDevice device, VkSemaphoreWaitInfo pWaitInfo, long timeout) Wait for timeline semaphores on the host.Methods inherited from class org.lwjgl.vulkan.VK11
nvkBindBufferMemory2, nvkBindImageMemory2, nvkCreateDescriptorUpdateTemplate, nvkCreateSamplerYcbcrConversion, nvkDestroyDescriptorUpdateTemplate, nvkDestroySamplerYcbcrConversion, nvkEnumerateInstanceVersion, nvkEnumeratePhysicalDeviceGroups, nvkGetBufferMemoryRequirements2, nvkGetDescriptorSetLayoutSupport, nvkGetDeviceGroupPeerMemoryFeatures, nvkGetDeviceQueue2, nvkGetImageMemoryRequirements2, nvkGetImageSparseMemoryRequirements2, nvkGetPhysicalDeviceExternalBufferProperties, nvkGetPhysicalDeviceExternalFenceProperties, nvkGetPhysicalDeviceExternalSemaphoreProperties, nvkGetPhysicalDeviceFeatures2, nvkGetPhysicalDeviceFormatProperties2, nvkGetPhysicalDeviceImageFormatProperties2, nvkGetPhysicalDeviceMemoryProperties2, nvkGetPhysicalDeviceProperties2, nvkGetPhysicalDeviceQueueFamilyProperties2, nvkGetPhysicalDeviceSparseImageFormatProperties2, vkBindBufferMemory2, vkBindImageMemory2, vkCmdDispatchBase, vkCmdSetDeviceMask, vkCreateDescriptorUpdateTemplate, vkCreateDescriptorUpdateTemplate, vkCreateSamplerYcbcrConversion, vkCreateSamplerYcbcrConversion, vkDestroyDescriptorUpdateTemplate, vkDestroySamplerYcbcrConversion, vkEnumerateInstanceVersion, vkEnumerateInstanceVersion, vkEnumeratePhysicalDeviceGroups, vkEnumeratePhysicalDeviceGroups, vkGetBufferMemoryRequirements2, vkGetDescriptorSetLayoutSupport, vkGetDeviceGroupPeerMemoryFeatures, vkGetDeviceGroupPeerMemoryFeatures, vkGetDeviceQueue2, vkGetImageMemoryRequirements2, vkGetImageSparseMemoryRequirements2, vkGetImageSparseMemoryRequirements2, vkGetPhysicalDeviceExternalBufferProperties, vkGetPhysicalDeviceExternalFenceProperties, vkGetPhysicalDeviceExternalSemaphoreProperties, vkGetPhysicalDeviceFeatures2, vkGetPhysicalDeviceFormatProperties2, vkGetPhysicalDeviceImageFormatProperties2, vkGetPhysicalDeviceMemoryProperties2, vkGetPhysicalDeviceProperties2, vkGetPhysicalDeviceQueueFamilyProperties2, vkGetPhysicalDeviceQueueFamilyProperties2, vkGetPhysicalDeviceSparseImageFormatProperties2, vkGetPhysicalDeviceSparseImageFormatProperties2, vkTrimCommandPool, vkUpdateDescriptorSetWithTemplateMethods inherited from class org.lwjgl.vulkan.VK10
nvkAllocateCommandBuffers, nvkAllocateDescriptorSets, nvkAllocateMemory, nvkBeginCommandBuffer, nvkCmdBeginRenderPass, nvkCmdBindDescriptorSets, nvkCmdBindVertexBuffers, nvkCmdBlitImage, nvkCmdClearAttachments, nvkCmdClearColorImage, nvkCmdClearDepthStencilImage, nvkCmdCopyBuffer, nvkCmdCopyBufferToImage, nvkCmdCopyImage, nvkCmdCopyImageToBuffer, nvkCmdExecuteCommands, nvkCmdPipelineBarrier, nvkCmdPushConstants, nvkCmdResolveImage, nvkCmdSetBlendConstants, nvkCmdSetScissor, nvkCmdSetViewport, nvkCmdUpdateBuffer, nvkCmdWaitEvents, nvkCreateBuffer, nvkCreateBufferView, nvkCreateCommandPool, nvkCreateComputePipelines, nvkCreateDescriptorPool, nvkCreateDescriptorSetLayout, nvkCreateDevice, nvkCreateEvent, nvkCreateFence, nvkCreateFramebuffer, nvkCreateGraphicsPipelines, nvkCreateImage, nvkCreateImageView, nvkCreateInstance, nvkCreatePipelineCache, nvkCreatePipelineLayout, nvkCreateQueryPool, nvkCreateRenderPass, nvkCreateSampler, nvkCreateSemaphore, nvkCreateShaderModule, nvkDestroyBuffer, nvkDestroyBufferView, nvkDestroyCommandPool, nvkDestroyDescriptorPool, nvkDestroyDescriptorSetLayout, nvkDestroyDevice, nvkDestroyEvent, nvkDestroyFence, nvkDestroyFramebuffer, nvkDestroyImage, nvkDestroyImageView, nvkDestroyInstance, nvkDestroyPipeline, nvkDestroyPipelineCache, nvkDestroyPipelineLayout, nvkDestroyQueryPool, nvkDestroyRenderPass, nvkDestroySampler, nvkDestroySemaphore, nvkDestroyShaderModule, nvkEnumerateDeviceExtensionProperties, nvkEnumerateDeviceLayerProperties, nvkEnumerateInstanceExtensionProperties, nvkEnumerateInstanceLayerProperties, nvkEnumeratePhysicalDevices, nvkFlushMappedMemoryRanges, nvkFreeCommandBuffers, nvkFreeDescriptorSets, nvkFreeMemory, nvkGetBufferMemoryRequirements, nvkGetDeviceMemoryCommitment, nvkGetDeviceProcAddr, nvkGetDeviceQueue, nvkGetImageMemoryRequirements, nvkGetImageSparseMemoryRequirements, nvkGetImageSubresourceLayout, nvkGetInstanceProcAddr, nvkGetPhysicalDeviceFeatures, nvkGetPhysicalDeviceFormatProperties, nvkGetPhysicalDeviceImageFormatProperties, nvkGetPhysicalDeviceMemoryProperties, nvkGetPhysicalDeviceProperties, nvkGetPhysicalDeviceQueueFamilyProperties, nvkGetPhysicalDeviceSparseImageFormatProperties, nvkGetPipelineCacheData, nvkGetQueryPoolResults, nvkGetRenderAreaGranularity, nvkInvalidateMappedMemoryRanges, nvkMapMemory, nvkMergePipelineCaches, nvkQueueBindSparse, nvkQueueSubmit, nvkResetFences, nvkUpdateDescriptorSets, nvkWaitForFences, VK_API_VERSION_MAJOR, VK_API_VERSION_MINOR, VK_API_VERSION_PATCH, VK_API_VERSION_VARIANT, VK_MAKE_API_VERSION, VK_MAKE_VERSION, VK_VERSION_MAJOR, VK_VERSION_MINOR, VK_VERSION_PATCH, vkAllocateCommandBuffers, vkAllocateDescriptorSets, vkAllocateDescriptorSets, vkAllocateMemory, vkAllocateMemory, vkBeginCommandBuffer, vkBindBufferMemory, vkBindImageMemory, vkCmdBeginQuery, vkCmdBeginRenderPass, vkCmdBindDescriptorSets, vkCmdBindDescriptorSets, vkCmdBindIndexBuffer, vkCmdBindPipeline, vkCmdBindVertexBuffers, vkCmdBindVertexBuffers, vkCmdBlitImage, vkCmdClearAttachments, vkCmdClearColorImage, vkCmdClearColorImage, vkCmdClearDepthStencilImage, vkCmdClearDepthStencilImage, vkCmdCopyBuffer, vkCmdCopyBufferToImage, vkCmdCopyImage, vkCmdCopyImageToBuffer, vkCmdCopyQueryPoolResults, vkCmdDispatch, vkCmdDispatchIndirect, vkCmdDraw, vkCmdDrawIndexed, vkCmdDrawIndexedIndirect, vkCmdDrawIndirect, vkCmdEndQuery, vkCmdEndRenderPass, vkCmdExecuteCommands, vkCmdExecuteCommands, vkCmdFillBuffer, vkCmdNextSubpass, vkCmdPipelineBarrier, vkCmdPushConstants, vkCmdPushConstants, vkCmdPushConstants, vkCmdPushConstants, vkCmdPushConstants, vkCmdPushConstants, vkCmdPushConstants, vkCmdPushConstants, vkCmdPushConstants, vkCmdPushConstants, vkCmdPushConstants, vkCmdResetEvent, vkCmdResetQueryPool, vkCmdResolveImage, vkCmdResolveImage, vkCmdSetBlendConstants, vkCmdSetBlendConstants, vkCmdSetDepthBias, vkCmdSetDepthBounds, vkCmdSetEvent, vkCmdSetLineWidth, vkCmdSetScissor, vkCmdSetStencilCompareMask, vkCmdSetStencilReference, vkCmdSetStencilWriteMask, vkCmdSetViewport, vkCmdUpdateBuffer, vkCmdUpdateBuffer, vkCmdUpdateBuffer, vkCmdUpdateBuffer, vkCmdUpdateBuffer, vkCmdUpdateBuffer, vkCmdUpdateBuffer, vkCmdUpdateBuffer, vkCmdUpdateBuffer, vkCmdUpdateBuffer, vkCmdUpdateBuffer, vkCmdWaitEvents, vkCmdWaitEvents, vkCmdWriteTimestamp, vkCreateBuffer, vkCreateBuffer, vkCreateBufferView, vkCreateBufferView, vkCreateCommandPool, vkCreateCommandPool, vkCreateComputePipelines, vkCreateComputePipelines, vkCreateDescriptorPool, vkCreateDescriptorPool, vkCreateDescriptorSetLayout, vkCreateDescriptorSetLayout, vkCreateDevice, vkCreateEvent, vkCreateEvent, vkCreateFence, vkCreateFence, vkCreateFramebuffer, vkCreateFramebuffer, vkCreateGraphicsPipelines, vkCreateGraphicsPipelines, vkCreateImage, vkCreateImage, vkCreateImageView, vkCreateImageView, vkCreateInstance, vkCreatePipelineCache, vkCreatePipelineCache, vkCreatePipelineLayout, vkCreatePipelineLayout, vkCreateQueryPool, vkCreateQueryPool, vkCreateRenderPass, vkCreateRenderPass, vkCreateSampler, vkCreateSampler, vkCreateSemaphore, vkCreateSemaphore, vkCreateShaderModule, vkCreateShaderModule, vkDestroyBuffer, vkDestroyBufferView, vkDestroyCommandPool, vkDestroyDescriptorPool, vkDestroyDescriptorSetLayout, vkDestroyDevice, vkDestroyEvent, vkDestroyFence, vkDestroyFramebuffer, vkDestroyImage, vkDestroyImageView, vkDestroyInstance, vkDestroyPipeline, vkDestroyPipelineCache, vkDestroyPipelineLayout, vkDestroyQueryPool, vkDestroyRenderPass, vkDestroySampler, vkDestroySemaphore, vkDestroyShaderModule, vkDeviceWaitIdle, vkEndCommandBuffer, vkEnumerateDeviceExtensionProperties, vkEnumerateDeviceExtensionProperties, vkEnumerateDeviceExtensionProperties, vkEnumerateDeviceExtensionProperties, vkEnumerateDeviceLayerProperties, vkEnumerateDeviceLayerProperties, vkEnumerateInstanceExtensionProperties, vkEnumerateInstanceExtensionProperties, vkEnumerateInstanceExtensionProperties, vkEnumerateInstanceExtensionProperties, vkEnumerateInstanceLayerProperties, vkEnumerateInstanceLayerProperties, vkEnumeratePhysicalDevices, vkEnumeratePhysicalDevices, vkFlushMappedMemoryRanges, vkFlushMappedMemoryRanges, vkFreeCommandBuffers, vkFreeCommandBuffers, vkFreeDescriptorSets, vkFreeDescriptorSets, vkFreeDescriptorSets, vkFreeMemory, vkGetBufferMemoryRequirements, vkGetDeviceMemoryCommitment, vkGetDeviceMemoryCommitment, vkGetDeviceProcAddr, vkGetDeviceProcAddr, vkGetDeviceQueue, vkGetEventStatus, vkGetFenceStatus, vkGetImageMemoryRequirements, vkGetImageSparseMemoryRequirements, vkGetImageSparseMemoryRequirements, vkGetImageSubresourceLayout, vkGetInstanceProcAddr, vkGetInstanceProcAddr, vkGetPhysicalDeviceFeatures, vkGetPhysicalDeviceFormatProperties, vkGetPhysicalDeviceImageFormatProperties, vkGetPhysicalDeviceMemoryProperties, vkGetPhysicalDeviceProperties, vkGetPhysicalDeviceQueueFamilyProperties, vkGetPhysicalDeviceQueueFamilyProperties, vkGetPhysicalDeviceSparseImageFormatProperties, vkGetPhysicalDeviceSparseImageFormatProperties, vkGetPipelineCacheData, vkGetQueryPoolResults, vkGetQueryPoolResults, vkGetQueryPoolResults, vkGetQueryPoolResults, vkGetQueryPoolResults, vkGetRenderAreaGranularity, vkInvalidateMappedMemoryRanges, vkInvalidateMappedMemoryRanges, vkMapMemory, vkMergePipelineCaches, vkMergePipelineCaches, vkQueueBindSparse, vkQueueBindSparse, vkQueueSubmit, vkQueueSubmit, vkQueueWaitIdle, vkResetCommandBuffer, vkResetCommandPool, vkResetDescriptorPool, vkResetEvent, vkResetFences, vkResetFences, vkResetFences, vkSetEvent, vkUnmapMemory, vkUpdateDescriptorSets, vkWaitForFences, vkWaitForFences, vkWaitForFences
-
Field Details
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURESExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIESExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURESExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIESExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFOExtendsVkStructureType.- See Also:
-
VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE
public static final int VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGEExtendsVkSamplerAddressMode.- See Also:
-
VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2
public static final int VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2ExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2
public static final int VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2ExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2
public static final int VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2ExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2
public static final int VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2ExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2
public static final int VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2ExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO
public static final int VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFOExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_SUBPASS_END_INFO
public static final int VK_STRUCTURE_TYPE_SUBPASS_END_INFOExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURESExtendsVkStructureType.- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIESExtendsVkStructureType.- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURESExtendsVkStructureType.- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURESExtendsVkStructureType.- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIESExtendsVkStructureType.- See Also:
-
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFOExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFOSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURESSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIESSTRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFOSTRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT
- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURESExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFOSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURESSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIESSTRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFOSTRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT
- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIESExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFOSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURESSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIESSTRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFOSTRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT
- See Also:
-
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO
public static final int VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFOExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFOSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURESSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIESSTRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFOSTRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT
- See Also:
-
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT
public static final int VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORTExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFOSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURESSTRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIESSTRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFOSTRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT
- See Also:
-
VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT
public static final int VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BITExtendsVkDescriptorPoolCreateFlagBits.- See Also:
-
VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
public static final int VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BITExtendsVkDescriptorSetLayoutCreateFlagBits.- See Also:
-
VK_ERROR_FRAGMENTATION
public static final int VK_ERROR_FRAGMENTATIONExtendsVkResult.- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIESExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE
public static final int VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVEExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURESExtendsVkStructureType.- See Also:
-
VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFOExtendsVkStructureType.- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIESExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFOExtendsVkStructureType.Enum values:
- See Also:
-
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT
public static final int VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BITExtendsVkFormatFeatureFlagBits.- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURESExtendsVkStructureType.- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURESExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFOExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO
public static final int VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFOExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO
public static final int VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFOExtendsVkStructureType.Enum values:
- See Also:
-
VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT
public static final int VK_FRAMEBUFFER_CREATE_IMAGELESS_BITExtendsVkFramebufferCreateFlagBits.- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURESExtendsVkStructureType.- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURESExtendsVkStructureType.- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURESExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT
public static final int VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUTExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT
public static final int VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUTExtendsVkStructureType.Enum values:
- See Also:
-
VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL
public static final int VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMALExtendsVkImageLayout.Enum values:
- See Also:
-
VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
public static final int VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMALExtendsVkImageLayout.Enum values:
- See Also:
-
VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL
public static final int VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMALExtendsVkImageLayout.Enum values:
- See Also:
-
VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
public static final int VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMALExtendsVkImageLayout.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURESExtendsVkStructureType.- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURESExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIESExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFOExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO
public static final int VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFOExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO
public static final int VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFOExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO
public static final int VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFOExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURESExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO
public static final int VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFOExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO
public static final int VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFOExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO
public static final int VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFOExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO
public static final int VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFOExtendsVkStructureType.Enum values:
- See Also:
-
VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT
public static final int VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BITExtendsVkBufferUsageFlagBits.- See Also:
-
VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT
public static final int VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BITExtendsVkBufferCreateFlagBits.- See Also:
-
VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT
public static final int VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BITExtendsVkMemoryAllocateFlagBits.Enum values:
- See Also:
-
VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT
public static final int VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BITExtendsVkMemoryAllocateFlagBits.Enum values:
- See Also:
-
VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS
public static final int VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESSExtendsVkResult.- See Also:
-
VK_DRIVER_ID_AMD_PROPRIETARY
public static final int VK_DRIVER_ID_AMD_PROPRIETARYVkDriverId - Khronos driver IDsDescription
Note
Khronos driver IDs may be allocated by vendors at any time. There may be multiple driver IDs for the same vendor, representing different drivers (for e.g. different platforms, proprietary or open source, etc.). Only the latest canonical versions of this Specification, of the corresponding
vk.xmlAPI Registry, and of the correspondingvulkan_core.hheader file must contain all reserved Khronos driver IDs.Only driver IDs registered with Khronos are given symbolic names. There may be unregistered driver IDs returned.
See Also
VkPhysicalDeviceDriverProperties,VkPhysicalDeviceVulkan12PropertiesEnum values:
DRIVER_ID_AMD_PROPRIETARYDRIVER_ID_AMD_OPEN_SOURCEDRIVER_ID_MESA_RADVDRIVER_ID_NVIDIA_PROPRIETARYDRIVER_ID_INTEL_PROPRIETARY_WINDOWSDRIVER_ID_INTEL_OPEN_SOURCE_MESADRIVER_ID_IMAGINATION_PROPRIETARYDRIVER_ID_QUALCOMM_PROPRIETARYDRIVER_ID_ARM_PROPRIETARYDRIVER_ID_GOOGLE_SWIFTSHADERDRIVER_ID_GGP_PROPRIETARYDRIVER_ID_BROADCOM_PROPRIETARYDRIVER_ID_MESA_LLVMPIPEDRIVER_ID_MOLTENVKDRIVER_ID_COREAVI_PROPRIETARYDRIVER_ID_JUICE_PROPRIETARYDRIVER_ID_VERISILICON_PROPRIETARYDRIVER_ID_MESA_TURNIPDRIVER_ID_MESA_V3DVDRIVER_ID_MESA_PANVKDRIVER_ID_SAMSUNG_PROPRIETARYDRIVER_ID_MESA_VENUSDRIVER_ID_MESA_DOZENDRIVER_ID_MESA_NVKDRIVER_ID_IMAGINATION_OPEN_SOURCE_MESADRIVER_ID_MESA_HONEYKRISPDRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN
- See Also:
-
VK_DRIVER_ID_AMD_OPEN_SOURCE
public static final int VK_DRIVER_ID_AMD_OPEN_SOURCEVkDriverId - Khronos driver IDsDescription
Note
Khronos driver IDs may be allocated by vendors at any time. There may be multiple driver IDs for the same vendor, representing different drivers (for e.g. different platforms, proprietary or open source, etc.). Only the latest canonical versions of this Specification, of the corresponding
vk.xmlAPI Registry, and of the correspondingvulkan_core.hheader file must contain all reserved Khronos driver IDs.Only driver IDs registered with Khronos are given symbolic names. There may be unregistered driver IDs returned.
See Also
VkPhysicalDeviceDriverProperties,VkPhysicalDeviceVulkan12PropertiesEnum values:
DRIVER_ID_AMD_PROPRIETARYDRIVER_ID_AMD_OPEN_SOURCEDRIVER_ID_MESA_RADVDRIVER_ID_NVIDIA_PROPRIETARYDRIVER_ID_INTEL_PROPRIETARY_WINDOWSDRIVER_ID_INTEL_OPEN_SOURCE_MESADRIVER_ID_IMAGINATION_PROPRIETARYDRIVER_ID_QUALCOMM_PROPRIETARYDRIVER_ID_ARM_PROPRIETARYDRIVER_ID_GOOGLE_SWIFTSHADERDRIVER_ID_GGP_PROPRIETARYDRIVER_ID_BROADCOM_PROPRIETARYDRIVER_ID_MESA_LLVMPIPEDRIVER_ID_MOLTENVKDRIVER_ID_COREAVI_PROPRIETARYDRIVER_ID_JUICE_PROPRIETARYDRIVER_ID_VERISILICON_PROPRIETARYDRIVER_ID_MESA_TURNIPDRIVER_ID_MESA_V3DVDRIVER_ID_MESA_PANVKDRIVER_ID_SAMSUNG_PROPRIETARYDRIVER_ID_MESA_VENUSDRIVER_ID_MESA_DOZENDRIVER_ID_MESA_NVKDRIVER_ID_IMAGINATION_OPEN_SOURCE_MESADRIVER_ID_MESA_HONEYKRISPDRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN
- See Also:
-
VK_DRIVER_ID_MESA_RADV
public static final int VK_DRIVER_ID_MESA_RADVVkDriverId - Khronos driver IDsDescription
Note
Khronos driver IDs may be allocated by vendors at any time. There may be multiple driver IDs for the same vendor, representing different drivers (for e.g. different platforms, proprietary or open source, etc.). Only the latest canonical versions of this Specification, of the corresponding
vk.xmlAPI Registry, and of the correspondingvulkan_core.hheader file must contain all reserved Khronos driver IDs.Only driver IDs registered with Khronos are given symbolic names. There may be unregistered driver IDs returned.
See Also
VkPhysicalDeviceDriverProperties,VkPhysicalDeviceVulkan12PropertiesEnum values:
DRIVER_ID_AMD_PROPRIETARYDRIVER_ID_AMD_OPEN_SOURCEDRIVER_ID_MESA_RADVDRIVER_ID_NVIDIA_PROPRIETARYDRIVER_ID_INTEL_PROPRIETARY_WINDOWSDRIVER_ID_INTEL_OPEN_SOURCE_MESADRIVER_ID_IMAGINATION_PROPRIETARYDRIVER_ID_QUALCOMM_PROPRIETARYDRIVER_ID_ARM_PROPRIETARYDRIVER_ID_GOOGLE_SWIFTSHADERDRIVER_ID_GGP_PROPRIETARYDRIVER_ID_BROADCOM_PROPRIETARYDRIVER_ID_MESA_LLVMPIPEDRIVER_ID_MOLTENVKDRIVER_ID_COREAVI_PROPRIETARYDRIVER_ID_JUICE_PROPRIETARYDRIVER_ID_VERISILICON_PROPRIETARYDRIVER_ID_MESA_TURNIPDRIVER_ID_MESA_V3DVDRIVER_ID_MESA_PANVKDRIVER_ID_SAMSUNG_PROPRIETARYDRIVER_ID_MESA_VENUSDRIVER_ID_MESA_DOZENDRIVER_ID_MESA_NVKDRIVER_ID_IMAGINATION_OPEN_SOURCE_MESADRIVER_ID_MESA_HONEYKRISPDRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN
- See Also:
-
VK_DRIVER_ID_NVIDIA_PROPRIETARY
public static final int VK_DRIVER_ID_NVIDIA_PROPRIETARYVkDriverId - Khronos driver IDsDescription
Note
Khronos driver IDs may be allocated by vendors at any time. There may be multiple driver IDs for the same vendor, representing different drivers (for e.g. different platforms, proprietary or open source, etc.). Only the latest canonical versions of this Specification, of the corresponding
vk.xmlAPI Registry, and of the correspondingvulkan_core.hheader file must contain all reserved Khronos driver IDs.Only driver IDs registered with Khronos are given symbolic names. There may be unregistered driver IDs returned.
See Also
VkPhysicalDeviceDriverProperties,VkPhysicalDeviceVulkan12PropertiesEnum values:
DRIVER_ID_AMD_PROPRIETARYDRIVER_ID_AMD_OPEN_SOURCEDRIVER_ID_MESA_RADVDRIVER_ID_NVIDIA_PROPRIETARYDRIVER_ID_INTEL_PROPRIETARY_WINDOWSDRIVER_ID_INTEL_OPEN_SOURCE_MESADRIVER_ID_IMAGINATION_PROPRIETARYDRIVER_ID_QUALCOMM_PROPRIETARYDRIVER_ID_ARM_PROPRIETARYDRIVER_ID_GOOGLE_SWIFTSHADERDRIVER_ID_GGP_PROPRIETARYDRIVER_ID_BROADCOM_PROPRIETARYDRIVER_ID_MESA_LLVMPIPEDRIVER_ID_MOLTENVKDRIVER_ID_COREAVI_PROPRIETARYDRIVER_ID_JUICE_PROPRIETARYDRIVER_ID_VERISILICON_PROPRIETARYDRIVER_ID_MESA_TURNIPDRIVER_ID_MESA_V3DVDRIVER_ID_MESA_PANVKDRIVER_ID_SAMSUNG_PROPRIETARYDRIVER_ID_MESA_VENUSDRIVER_ID_MESA_DOZENDRIVER_ID_MESA_NVKDRIVER_ID_IMAGINATION_OPEN_SOURCE_MESADRIVER_ID_MESA_HONEYKRISPDRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN
- See Also:
-
VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS
public static final int VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWSVkDriverId - Khronos driver IDsDescription
Note
Khronos driver IDs may be allocated by vendors at any time. There may be multiple driver IDs for the same vendor, representing different drivers (for e.g. different platforms, proprietary or open source, etc.). Only the latest canonical versions of this Specification, of the corresponding
vk.xmlAPI Registry, and of the correspondingvulkan_core.hheader file must contain all reserved Khronos driver IDs.Only driver IDs registered with Khronos are given symbolic names. There may be unregistered driver IDs returned.
See Also
VkPhysicalDeviceDriverProperties,VkPhysicalDeviceVulkan12PropertiesEnum values:
DRIVER_ID_AMD_PROPRIETARYDRIVER_ID_AMD_OPEN_SOURCEDRIVER_ID_MESA_RADVDRIVER_ID_NVIDIA_PROPRIETARYDRIVER_ID_INTEL_PROPRIETARY_WINDOWSDRIVER_ID_INTEL_OPEN_SOURCE_MESADRIVER_ID_IMAGINATION_PROPRIETARYDRIVER_ID_QUALCOMM_PROPRIETARYDRIVER_ID_ARM_PROPRIETARYDRIVER_ID_GOOGLE_SWIFTSHADERDRIVER_ID_GGP_PROPRIETARYDRIVER_ID_BROADCOM_PROPRIETARYDRIVER_ID_MESA_LLVMPIPEDRIVER_ID_MOLTENVKDRIVER_ID_COREAVI_PROPRIETARYDRIVER_ID_JUICE_PROPRIETARYDRIVER_ID_VERISILICON_PROPRIETARYDRIVER_ID_MESA_TURNIPDRIVER_ID_MESA_V3DVDRIVER_ID_MESA_PANVKDRIVER_ID_SAMSUNG_PROPRIETARYDRIVER_ID_MESA_VENUSDRIVER_ID_MESA_DOZENDRIVER_ID_MESA_NVKDRIVER_ID_IMAGINATION_OPEN_SOURCE_MESADRIVER_ID_MESA_HONEYKRISPDRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN
- See Also:
-
VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA
public static final int VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESAVkDriverId - Khronos driver IDsDescription
Note
Khronos driver IDs may be allocated by vendors at any time. There may be multiple driver IDs for the same vendor, representing different drivers (for e.g. different platforms, proprietary or open source, etc.). Only the latest canonical versions of this Specification, of the corresponding
vk.xmlAPI Registry, and of the correspondingvulkan_core.hheader file must contain all reserved Khronos driver IDs.Only driver IDs registered with Khronos are given symbolic names. There may be unregistered driver IDs returned.
See Also
VkPhysicalDeviceDriverProperties,VkPhysicalDeviceVulkan12PropertiesEnum values:
DRIVER_ID_AMD_PROPRIETARYDRIVER_ID_AMD_OPEN_SOURCEDRIVER_ID_MESA_RADVDRIVER_ID_NVIDIA_PROPRIETARYDRIVER_ID_INTEL_PROPRIETARY_WINDOWSDRIVER_ID_INTEL_OPEN_SOURCE_MESADRIVER_ID_IMAGINATION_PROPRIETARYDRIVER_ID_QUALCOMM_PROPRIETARYDRIVER_ID_ARM_PROPRIETARYDRIVER_ID_GOOGLE_SWIFTSHADERDRIVER_ID_GGP_PROPRIETARYDRIVER_ID_BROADCOM_PROPRIETARYDRIVER_ID_MESA_LLVMPIPEDRIVER_ID_MOLTENVKDRIVER_ID_COREAVI_PROPRIETARYDRIVER_ID_JUICE_PROPRIETARYDRIVER_ID_VERISILICON_PROPRIETARYDRIVER_ID_MESA_TURNIPDRIVER_ID_MESA_V3DVDRIVER_ID_MESA_PANVKDRIVER_ID_SAMSUNG_PROPRIETARYDRIVER_ID_MESA_VENUSDRIVER_ID_MESA_DOZENDRIVER_ID_MESA_NVKDRIVER_ID_IMAGINATION_OPEN_SOURCE_MESADRIVER_ID_MESA_HONEYKRISPDRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN
- See Also:
-
VK_DRIVER_ID_IMAGINATION_PROPRIETARY
public static final int VK_DRIVER_ID_IMAGINATION_PROPRIETARYVkDriverId - Khronos driver IDsDescription
Note
Khronos driver IDs may be allocated by vendors at any time. There may be multiple driver IDs for the same vendor, representing different drivers (for e.g. different platforms, proprietary or open source, etc.). Only the latest canonical versions of this Specification, of the corresponding
vk.xmlAPI Registry, and of the correspondingvulkan_core.hheader file must contain all reserved Khronos driver IDs.Only driver IDs registered with Khronos are given symbolic names. There may be unregistered driver IDs returned.
See Also
VkPhysicalDeviceDriverProperties,VkPhysicalDeviceVulkan12PropertiesEnum values:
DRIVER_ID_AMD_PROPRIETARYDRIVER_ID_AMD_OPEN_SOURCEDRIVER_ID_MESA_RADVDRIVER_ID_NVIDIA_PROPRIETARYDRIVER_ID_INTEL_PROPRIETARY_WINDOWSDRIVER_ID_INTEL_OPEN_SOURCE_MESADRIVER_ID_IMAGINATION_PROPRIETARYDRIVER_ID_QUALCOMM_PROPRIETARYDRIVER_ID_ARM_PROPRIETARYDRIVER_ID_GOOGLE_SWIFTSHADERDRIVER_ID_GGP_PROPRIETARYDRIVER_ID_BROADCOM_PROPRIETARYDRIVER_ID_MESA_LLVMPIPEDRIVER_ID_MOLTENVKDRIVER_ID_COREAVI_PROPRIETARYDRIVER_ID_JUICE_PROPRIETARYDRIVER_ID_VERISILICON_PROPRIETARYDRIVER_ID_MESA_TURNIPDRIVER_ID_MESA_V3DVDRIVER_ID_MESA_PANVKDRIVER_ID_SAMSUNG_PROPRIETARYDRIVER_ID_MESA_VENUSDRIVER_ID_MESA_DOZENDRIVER_ID_MESA_NVKDRIVER_ID_IMAGINATION_OPEN_SOURCE_MESADRIVER_ID_MESA_HONEYKRISPDRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN
- See Also:
-
VK_DRIVER_ID_QUALCOMM_PROPRIETARY
public static final int VK_DRIVER_ID_QUALCOMM_PROPRIETARYVkDriverId - Khronos driver IDsDescription
Note
Khronos driver IDs may be allocated by vendors at any time. There may be multiple driver IDs for the same vendor, representing different drivers (for e.g. different platforms, proprietary or open source, etc.). Only the latest canonical versions of this Specification, of the corresponding
vk.xmlAPI Registry, and of the correspondingvulkan_core.hheader file must contain all reserved Khronos driver IDs.Only driver IDs registered with Khronos are given symbolic names. There may be unregistered driver IDs returned.
See Also
VkPhysicalDeviceDriverProperties,VkPhysicalDeviceVulkan12PropertiesEnum values:
DRIVER_ID_AMD_PROPRIETARYDRIVER_ID_AMD_OPEN_SOURCEDRIVER_ID_MESA_RADVDRIVER_ID_NVIDIA_PROPRIETARYDRIVER_ID_INTEL_PROPRIETARY_WINDOWSDRIVER_ID_INTEL_OPEN_SOURCE_MESADRIVER_ID_IMAGINATION_PROPRIETARYDRIVER_ID_QUALCOMM_PROPRIETARYDRIVER_ID_ARM_PROPRIETARYDRIVER_ID_GOOGLE_SWIFTSHADERDRIVER_ID_GGP_PROPRIETARYDRIVER_ID_BROADCOM_PROPRIETARYDRIVER_ID_MESA_LLVMPIPEDRIVER_ID_MOLTENVKDRIVER_ID_COREAVI_PROPRIETARYDRIVER_ID_JUICE_PROPRIETARYDRIVER_ID_VERISILICON_PROPRIETARYDRIVER_ID_MESA_TURNIPDRIVER_ID_MESA_V3DVDRIVER_ID_MESA_PANVKDRIVER_ID_SAMSUNG_PROPRIETARYDRIVER_ID_MESA_VENUSDRIVER_ID_MESA_DOZENDRIVER_ID_MESA_NVKDRIVER_ID_IMAGINATION_OPEN_SOURCE_MESADRIVER_ID_MESA_HONEYKRISPDRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN
- See Also:
-
VK_DRIVER_ID_ARM_PROPRIETARY
public static final int VK_DRIVER_ID_ARM_PROPRIETARYVkDriverId - Khronos driver IDsDescription
Note
Khronos driver IDs may be allocated by vendors at any time. There may be multiple driver IDs for the same vendor, representing different drivers (for e.g. different platforms, proprietary or open source, etc.). Only the latest canonical versions of this Specification, of the corresponding
vk.xmlAPI Registry, and of the correspondingvulkan_core.hheader file must contain all reserved Khronos driver IDs.Only driver IDs registered with Khronos are given symbolic names. There may be unregistered driver IDs returned.
See Also
VkPhysicalDeviceDriverProperties,VkPhysicalDeviceVulkan12PropertiesEnum values:
DRIVER_ID_AMD_PROPRIETARYDRIVER_ID_AMD_OPEN_SOURCEDRIVER_ID_MESA_RADVDRIVER_ID_NVIDIA_PROPRIETARYDRIVER_ID_INTEL_PROPRIETARY_WINDOWSDRIVER_ID_INTEL_OPEN_SOURCE_MESADRIVER_ID_IMAGINATION_PROPRIETARYDRIVER_ID_QUALCOMM_PROPRIETARYDRIVER_ID_ARM_PROPRIETARYDRIVER_ID_GOOGLE_SWIFTSHADERDRIVER_ID_GGP_PROPRIETARYDRIVER_ID_BROADCOM_PROPRIETARYDRIVER_ID_MESA_LLVMPIPEDRIVER_ID_MOLTENVKDRIVER_ID_COREAVI_PROPRIETARYDRIVER_ID_JUICE_PROPRIETARYDRIVER_ID_VERISILICON_PROPRIETARYDRIVER_ID_MESA_TURNIPDRIVER_ID_MESA_V3DVDRIVER_ID_MESA_PANVKDRIVER_ID_SAMSUNG_PROPRIETARYDRIVER_ID_MESA_VENUSDRIVER_ID_MESA_DOZENDRIVER_ID_MESA_NVKDRIVER_ID_IMAGINATION_OPEN_SOURCE_MESADRIVER_ID_MESA_HONEYKRISPDRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN
- See Also:
-
VK_DRIVER_ID_GOOGLE_SWIFTSHADER
public static final int VK_DRIVER_ID_GOOGLE_SWIFTSHADERVkDriverId - Khronos driver IDsDescription
Note
Khronos driver IDs may be allocated by vendors at any time. There may be multiple driver IDs for the same vendor, representing different drivers (for e.g. different platforms, proprietary or open source, etc.). Only the latest canonical versions of this Specification, of the corresponding
vk.xmlAPI Registry, and of the correspondingvulkan_core.hheader file must contain all reserved Khronos driver IDs.Only driver IDs registered with Khronos are given symbolic names. There may be unregistered driver IDs returned.
See Also
VkPhysicalDeviceDriverProperties,VkPhysicalDeviceVulkan12PropertiesEnum values:
DRIVER_ID_AMD_PROPRIETARYDRIVER_ID_AMD_OPEN_SOURCEDRIVER_ID_MESA_RADVDRIVER_ID_NVIDIA_PROPRIETARYDRIVER_ID_INTEL_PROPRIETARY_WINDOWSDRIVER_ID_INTEL_OPEN_SOURCE_MESADRIVER_ID_IMAGINATION_PROPRIETARYDRIVER_ID_QUALCOMM_PROPRIETARYDRIVER_ID_ARM_PROPRIETARYDRIVER_ID_GOOGLE_SWIFTSHADERDRIVER_ID_GGP_PROPRIETARYDRIVER_ID_BROADCOM_PROPRIETARYDRIVER_ID_MESA_LLVMPIPEDRIVER_ID_MOLTENVKDRIVER_ID_COREAVI_PROPRIETARYDRIVER_ID_JUICE_PROPRIETARYDRIVER_ID_VERISILICON_PROPRIETARYDRIVER_ID_MESA_TURNIPDRIVER_ID_MESA_V3DVDRIVER_ID_MESA_PANVKDRIVER_ID_SAMSUNG_PROPRIETARYDRIVER_ID_MESA_VENUSDRIVER_ID_MESA_DOZENDRIVER_ID_MESA_NVKDRIVER_ID_IMAGINATION_OPEN_SOURCE_MESADRIVER_ID_MESA_HONEYKRISPDRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN
- See Also:
-
VK_DRIVER_ID_GGP_PROPRIETARY
public static final int VK_DRIVER_ID_GGP_PROPRIETARYVkDriverId - Khronos driver IDsDescription
Note
Khronos driver IDs may be allocated by vendors at any time. There may be multiple driver IDs for the same vendor, representing different drivers (for e.g. different platforms, proprietary or open source, etc.). Only the latest canonical versions of this Specification, of the corresponding
vk.xmlAPI Registry, and of the correspondingvulkan_core.hheader file must contain all reserved Khronos driver IDs.Only driver IDs registered with Khronos are given symbolic names. There may be unregistered driver IDs returned.
See Also
VkPhysicalDeviceDriverProperties,VkPhysicalDeviceVulkan12PropertiesEnum values:
DRIVER_ID_AMD_PROPRIETARYDRIVER_ID_AMD_OPEN_SOURCEDRIVER_ID_MESA_RADVDRIVER_ID_NVIDIA_PROPRIETARYDRIVER_ID_INTEL_PROPRIETARY_WINDOWSDRIVER_ID_INTEL_OPEN_SOURCE_MESADRIVER_ID_IMAGINATION_PROPRIETARYDRIVER_ID_QUALCOMM_PROPRIETARYDRIVER_ID_ARM_PROPRIETARYDRIVER_ID_GOOGLE_SWIFTSHADERDRIVER_ID_GGP_PROPRIETARYDRIVER_ID_BROADCOM_PROPRIETARYDRIVER_ID_MESA_LLVMPIPEDRIVER_ID_MOLTENVKDRIVER_ID_COREAVI_PROPRIETARYDRIVER_ID_JUICE_PROPRIETARYDRIVER_ID_VERISILICON_PROPRIETARYDRIVER_ID_MESA_TURNIPDRIVER_ID_MESA_V3DVDRIVER_ID_MESA_PANVKDRIVER_ID_SAMSUNG_PROPRIETARYDRIVER_ID_MESA_VENUSDRIVER_ID_MESA_DOZENDRIVER_ID_MESA_NVKDRIVER_ID_IMAGINATION_OPEN_SOURCE_MESADRIVER_ID_MESA_HONEYKRISPDRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN
- See Also:
-
VK_DRIVER_ID_BROADCOM_PROPRIETARY
public static final int VK_DRIVER_ID_BROADCOM_PROPRIETARYVkDriverId - Khronos driver IDsDescription
Note
Khronos driver IDs may be allocated by vendors at any time. There may be multiple driver IDs for the same vendor, representing different drivers (for e.g. different platforms, proprietary or open source, etc.). Only the latest canonical versions of this Specification, of the corresponding
vk.xmlAPI Registry, and of the correspondingvulkan_core.hheader file must contain all reserved Khronos driver IDs.Only driver IDs registered with Khronos are given symbolic names. There may be unregistered driver IDs returned.
See Also
VkPhysicalDeviceDriverProperties,VkPhysicalDeviceVulkan12PropertiesEnum values:
DRIVER_ID_AMD_PROPRIETARYDRIVER_ID_AMD_OPEN_SOURCEDRIVER_ID_MESA_RADVDRIVER_ID_NVIDIA_PROPRIETARYDRIVER_ID_INTEL_PROPRIETARY_WINDOWSDRIVER_ID_INTEL_OPEN_SOURCE_MESADRIVER_ID_IMAGINATION_PROPRIETARYDRIVER_ID_QUALCOMM_PROPRIETARYDRIVER_ID_ARM_PROPRIETARYDRIVER_ID_GOOGLE_SWIFTSHADERDRIVER_ID_GGP_PROPRIETARYDRIVER_ID_BROADCOM_PROPRIETARYDRIVER_ID_MESA_LLVMPIPEDRIVER_ID_MOLTENVKDRIVER_ID_COREAVI_PROPRIETARYDRIVER_ID_JUICE_PROPRIETARYDRIVER_ID_VERISILICON_PROPRIETARYDRIVER_ID_MESA_TURNIPDRIVER_ID_MESA_V3DVDRIVER_ID_MESA_PANVKDRIVER_ID_SAMSUNG_PROPRIETARYDRIVER_ID_MESA_VENUSDRIVER_ID_MESA_DOZENDRIVER_ID_MESA_NVKDRIVER_ID_IMAGINATION_OPEN_SOURCE_MESADRIVER_ID_MESA_HONEYKRISPDRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN
- See Also:
-
VK_DRIVER_ID_MESA_LLVMPIPE
public static final int VK_DRIVER_ID_MESA_LLVMPIPEVkDriverId - Khronos driver IDsDescription
Note
Khronos driver IDs may be allocated by vendors at any time. There may be multiple driver IDs for the same vendor, representing different drivers (for e.g. different platforms, proprietary or open source, etc.). Only the latest canonical versions of this Specification, of the corresponding
vk.xmlAPI Registry, and of the correspondingvulkan_core.hheader file must contain all reserved Khronos driver IDs.Only driver IDs registered with Khronos are given symbolic names. There may be unregistered driver IDs returned.
See Also
VkPhysicalDeviceDriverProperties,VkPhysicalDeviceVulkan12PropertiesEnum values:
DRIVER_ID_AMD_PROPRIETARYDRIVER_ID_AMD_OPEN_SOURCEDRIVER_ID_MESA_RADVDRIVER_ID_NVIDIA_PROPRIETARYDRIVER_ID_INTEL_PROPRIETARY_WINDOWSDRIVER_ID_INTEL_OPEN_SOURCE_MESADRIVER_ID_IMAGINATION_PROPRIETARYDRIVER_ID_QUALCOMM_PROPRIETARYDRIVER_ID_ARM_PROPRIETARYDRIVER_ID_GOOGLE_SWIFTSHADERDRIVER_ID_GGP_PROPRIETARYDRIVER_ID_BROADCOM_PROPRIETARYDRIVER_ID_MESA_LLVMPIPEDRIVER_ID_MOLTENVKDRIVER_ID_COREAVI_PROPRIETARYDRIVER_ID_JUICE_PROPRIETARYDRIVER_ID_VERISILICON_PROPRIETARYDRIVER_ID_MESA_TURNIPDRIVER_ID_MESA_V3DVDRIVER_ID_MESA_PANVKDRIVER_ID_SAMSUNG_PROPRIETARYDRIVER_ID_MESA_VENUSDRIVER_ID_MESA_DOZENDRIVER_ID_MESA_NVKDRIVER_ID_IMAGINATION_OPEN_SOURCE_MESADRIVER_ID_MESA_HONEYKRISPDRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN
- See Also:
-
VK_DRIVER_ID_MOLTENVK
public static final int VK_DRIVER_ID_MOLTENVKVkDriverId - Khronos driver IDsDescription
Note
Khronos driver IDs may be allocated by vendors at any time. There may be multiple driver IDs for the same vendor, representing different drivers (for e.g. different platforms, proprietary or open source, etc.). Only the latest canonical versions of this Specification, of the corresponding
vk.xmlAPI Registry, and of the correspondingvulkan_core.hheader file must contain all reserved Khronos driver IDs.Only driver IDs registered with Khronos are given symbolic names. There may be unregistered driver IDs returned.
See Also
VkPhysicalDeviceDriverProperties,VkPhysicalDeviceVulkan12PropertiesEnum values:
DRIVER_ID_AMD_PROPRIETARYDRIVER_ID_AMD_OPEN_SOURCEDRIVER_ID_MESA_RADVDRIVER_ID_NVIDIA_PROPRIETARYDRIVER_ID_INTEL_PROPRIETARY_WINDOWSDRIVER_ID_INTEL_OPEN_SOURCE_MESADRIVER_ID_IMAGINATION_PROPRIETARYDRIVER_ID_QUALCOMM_PROPRIETARYDRIVER_ID_ARM_PROPRIETARYDRIVER_ID_GOOGLE_SWIFTSHADERDRIVER_ID_GGP_PROPRIETARYDRIVER_ID_BROADCOM_PROPRIETARYDRIVER_ID_MESA_LLVMPIPEDRIVER_ID_MOLTENVKDRIVER_ID_COREAVI_PROPRIETARYDRIVER_ID_JUICE_PROPRIETARYDRIVER_ID_VERISILICON_PROPRIETARYDRIVER_ID_MESA_TURNIPDRIVER_ID_MESA_V3DVDRIVER_ID_MESA_PANVKDRIVER_ID_SAMSUNG_PROPRIETARYDRIVER_ID_MESA_VENUSDRIVER_ID_MESA_DOZENDRIVER_ID_MESA_NVKDRIVER_ID_IMAGINATION_OPEN_SOURCE_MESADRIVER_ID_MESA_HONEYKRISPDRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN
- See Also:
-
VK_DRIVER_ID_COREAVI_PROPRIETARY
public static final int VK_DRIVER_ID_COREAVI_PROPRIETARYVkDriverId - Khronos driver IDsDescription
Note
Khronos driver IDs may be allocated by vendors at any time. There may be multiple driver IDs for the same vendor, representing different drivers (for e.g. different platforms, proprietary or open source, etc.). Only the latest canonical versions of this Specification, of the corresponding
vk.xmlAPI Registry, and of the correspondingvulkan_core.hheader file must contain all reserved Khronos driver IDs.Only driver IDs registered with Khronos are given symbolic names. There may be unregistered driver IDs returned.
See Also
VkPhysicalDeviceDriverProperties,VkPhysicalDeviceVulkan12PropertiesEnum values:
DRIVER_ID_AMD_PROPRIETARYDRIVER_ID_AMD_OPEN_SOURCEDRIVER_ID_MESA_RADVDRIVER_ID_NVIDIA_PROPRIETARYDRIVER_ID_INTEL_PROPRIETARY_WINDOWSDRIVER_ID_INTEL_OPEN_SOURCE_MESADRIVER_ID_IMAGINATION_PROPRIETARYDRIVER_ID_QUALCOMM_PROPRIETARYDRIVER_ID_ARM_PROPRIETARYDRIVER_ID_GOOGLE_SWIFTSHADERDRIVER_ID_GGP_PROPRIETARYDRIVER_ID_BROADCOM_PROPRIETARYDRIVER_ID_MESA_LLVMPIPEDRIVER_ID_MOLTENVKDRIVER_ID_COREAVI_PROPRIETARYDRIVER_ID_JUICE_PROPRIETARYDRIVER_ID_VERISILICON_PROPRIETARYDRIVER_ID_MESA_TURNIPDRIVER_ID_MESA_V3DVDRIVER_ID_MESA_PANVKDRIVER_ID_SAMSUNG_PROPRIETARYDRIVER_ID_MESA_VENUSDRIVER_ID_MESA_DOZENDRIVER_ID_MESA_NVKDRIVER_ID_IMAGINATION_OPEN_SOURCE_MESADRIVER_ID_MESA_HONEYKRISPDRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN
- See Also:
-
VK_DRIVER_ID_JUICE_PROPRIETARY
public static final int VK_DRIVER_ID_JUICE_PROPRIETARYVkDriverId - Khronos driver IDsDescription
Note
Khronos driver IDs may be allocated by vendors at any time. There may be multiple driver IDs for the same vendor, representing different drivers (for e.g. different platforms, proprietary or open source, etc.). Only the latest canonical versions of this Specification, of the corresponding
vk.xmlAPI Registry, and of the correspondingvulkan_core.hheader file must contain all reserved Khronos driver IDs.Only driver IDs registered with Khronos are given symbolic names. There may be unregistered driver IDs returned.
See Also
VkPhysicalDeviceDriverProperties,VkPhysicalDeviceVulkan12PropertiesEnum values:
DRIVER_ID_AMD_PROPRIETARYDRIVER_ID_AMD_OPEN_SOURCEDRIVER_ID_MESA_RADVDRIVER_ID_NVIDIA_PROPRIETARYDRIVER_ID_INTEL_PROPRIETARY_WINDOWSDRIVER_ID_INTEL_OPEN_SOURCE_MESADRIVER_ID_IMAGINATION_PROPRIETARYDRIVER_ID_QUALCOMM_PROPRIETARYDRIVER_ID_ARM_PROPRIETARYDRIVER_ID_GOOGLE_SWIFTSHADERDRIVER_ID_GGP_PROPRIETARYDRIVER_ID_BROADCOM_PROPRIETARYDRIVER_ID_MESA_LLVMPIPEDRIVER_ID_MOLTENVKDRIVER_ID_COREAVI_PROPRIETARYDRIVER_ID_JUICE_PROPRIETARYDRIVER_ID_VERISILICON_PROPRIETARYDRIVER_ID_MESA_TURNIPDRIVER_ID_MESA_V3DVDRIVER_ID_MESA_PANVKDRIVER_ID_SAMSUNG_PROPRIETARYDRIVER_ID_MESA_VENUSDRIVER_ID_MESA_DOZENDRIVER_ID_MESA_NVKDRIVER_ID_IMAGINATION_OPEN_SOURCE_MESADRIVER_ID_MESA_HONEYKRISPDRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN
- See Also:
-
VK_DRIVER_ID_VERISILICON_PROPRIETARY
public static final int VK_DRIVER_ID_VERISILICON_PROPRIETARYVkDriverId - Khronos driver IDsDescription
Note
Khronos driver IDs may be allocated by vendors at any time. There may be multiple driver IDs for the same vendor, representing different drivers (for e.g. different platforms, proprietary or open source, etc.). Only the latest canonical versions of this Specification, of the corresponding
vk.xmlAPI Registry, and of the correspondingvulkan_core.hheader file must contain all reserved Khronos driver IDs.Only driver IDs registered with Khronos are given symbolic names. There may be unregistered driver IDs returned.
See Also
VkPhysicalDeviceDriverProperties,VkPhysicalDeviceVulkan12PropertiesEnum values:
DRIVER_ID_AMD_PROPRIETARYDRIVER_ID_AMD_OPEN_SOURCEDRIVER_ID_MESA_RADVDRIVER_ID_NVIDIA_PROPRIETARYDRIVER_ID_INTEL_PROPRIETARY_WINDOWSDRIVER_ID_INTEL_OPEN_SOURCE_MESADRIVER_ID_IMAGINATION_PROPRIETARYDRIVER_ID_QUALCOMM_PROPRIETARYDRIVER_ID_ARM_PROPRIETARYDRIVER_ID_GOOGLE_SWIFTSHADERDRIVER_ID_GGP_PROPRIETARYDRIVER_ID_BROADCOM_PROPRIETARYDRIVER_ID_MESA_LLVMPIPEDRIVER_ID_MOLTENVKDRIVER_ID_COREAVI_PROPRIETARYDRIVER_ID_JUICE_PROPRIETARYDRIVER_ID_VERISILICON_PROPRIETARYDRIVER_ID_MESA_TURNIPDRIVER_ID_MESA_V3DVDRIVER_ID_MESA_PANVKDRIVER_ID_SAMSUNG_PROPRIETARYDRIVER_ID_MESA_VENUSDRIVER_ID_MESA_DOZENDRIVER_ID_MESA_NVKDRIVER_ID_IMAGINATION_OPEN_SOURCE_MESADRIVER_ID_MESA_HONEYKRISPDRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN
- See Also:
-
VK_DRIVER_ID_MESA_TURNIP
public static final int VK_DRIVER_ID_MESA_TURNIPVkDriverId - Khronos driver IDsDescription
Note
Khronos driver IDs may be allocated by vendors at any time. There may be multiple driver IDs for the same vendor, representing different drivers (for e.g. different platforms, proprietary or open source, etc.). Only the latest canonical versions of this Specification, of the corresponding
vk.xmlAPI Registry, and of the correspondingvulkan_core.hheader file must contain all reserved Khronos driver IDs.Only driver IDs registered with Khronos are given symbolic names. There may be unregistered driver IDs returned.
See Also
VkPhysicalDeviceDriverProperties,VkPhysicalDeviceVulkan12PropertiesEnum values:
DRIVER_ID_AMD_PROPRIETARYDRIVER_ID_AMD_OPEN_SOURCEDRIVER_ID_MESA_RADVDRIVER_ID_NVIDIA_PROPRIETARYDRIVER_ID_INTEL_PROPRIETARY_WINDOWSDRIVER_ID_INTEL_OPEN_SOURCE_MESADRIVER_ID_IMAGINATION_PROPRIETARYDRIVER_ID_QUALCOMM_PROPRIETARYDRIVER_ID_ARM_PROPRIETARYDRIVER_ID_GOOGLE_SWIFTSHADERDRIVER_ID_GGP_PROPRIETARYDRIVER_ID_BROADCOM_PROPRIETARYDRIVER_ID_MESA_LLVMPIPEDRIVER_ID_MOLTENVKDRIVER_ID_COREAVI_PROPRIETARYDRIVER_ID_JUICE_PROPRIETARYDRIVER_ID_VERISILICON_PROPRIETARYDRIVER_ID_MESA_TURNIPDRIVER_ID_MESA_V3DVDRIVER_ID_MESA_PANVKDRIVER_ID_SAMSUNG_PROPRIETARYDRIVER_ID_MESA_VENUSDRIVER_ID_MESA_DOZENDRIVER_ID_MESA_NVKDRIVER_ID_IMAGINATION_OPEN_SOURCE_MESADRIVER_ID_MESA_HONEYKRISPDRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN
- See Also:
-
VK_DRIVER_ID_MESA_V3DV
public static final int VK_DRIVER_ID_MESA_V3DVVkDriverId - Khronos driver IDsDescription
Note
Khronos driver IDs may be allocated by vendors at any time. There may be multiple driver IDs for the same vendor, representing different drivers (for e.g. different platforms, proprietary or open source, etc.). Only the latest canonical versions of this Specification, of the corresponding
vk.xmlAPI Registry, and of the correspondingvulkan_core.hheader file must contain all reserved Khronos driver IDs.Only driver IDs registered with Khronos are given symbolic names. There may be unregistered driver IDs returned.
See Also
VkPhysicalDeviceDriverProperties,VkPhysicalDeviceVulkan12PropertiesEnum values:
DRIVER_ID_AMD_PROPRIETARYDRIVER_ID_AMD_OPEN_SOURCEDRIVER_ID_MESA_RADVDRIVER_ID_NVIDIA_PROPRIETARYDRIVER_ID_INTEL_PROPRIETARY_WINDOWSDRIVER_ID_INTEL_OPEN_SOURCE_MESADRIVER_ID_IMAGINATION_PROPRIETARYDRIVER_ID_QUALCOMM_PROPRIETARYDRIVER_ID_ARM_PROPRIETARYDRIVER_ID_GOOGLE_SWIFTSHADERDRIVER_ID_GGP_PROPRIETARYDRIVER_ID_BROADCOM_PROPRIETARYDRIVER_ID_MESA_LLVMPIPEDRIVER_ID_MOLTENVKDRIVER_ID_COREAVI_PROPRIETARYDRIVER_ID_JUICE_PROPRIETARYDRIVER_ID_VERISILICON_PROPRIETARYDRIVER_ID_MESA_TURNIPDRIVER_ID_MESA_V3DVDRIVER_ID_MESA_PANVKDRIVER_ID_SAMSUNG_PROPRIETARYDRIVER_ID_MESA_VENUSDRIVER_ID_MESA_DOZENDRIVER_ID_MESA_NVKDRIVER_ID_IMAGINATION_OPEN_SOURCE_MESADRIVER_ID_MESA_HONEYKRISPDRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN
- See Also:
-
VK_DRIVER_ID_MESA_PANVK
public static final int VK_DRIVER_ID_MESA_PANVKVkDriverId - Khronos driver IDsDescription
Note
Khronos driver IDs may be allocated by vendors at any time. There may be multiple driver IDs for the same vendor, representing different drivers (for e.g. different platforms, proprietary or open source, etc.). Only the latest canonical versions of this Specification, of the corresponding
vk.xmlAPI Registry, and of the correspondingvulkan_core.hheader file must contain all reserved Khronos driver IDs.Only driver IDs registered with Khronos are given symbolic names. There may be unregistered driver IDs returned.
See Also
VkPhysicalDeviceDriverProperties,VkPhysicalDeviceVulkan12PropertiesEnum values:
DRIVER_ID_AMD_PROPRIETARYDRIVER_ID_AMD_OPEN_SOURCEDRIVER_ID_MESA_RADVDRIVER_ID_NVIDIA_PROPRIETARYDRIVER_ID_INTEL_PROPRIETARY_WINDOWSDRIVER_ID_INTEL_OPEN_SOURCE_MESADRIVER_ID_IMAGINATION_PROPRIETARYDRIVER_ID_QUALCOMM_PROPRIETARYDRIVER_ID_ARM_PROPRIETARYDRIVER_ID_GOOGLE_SWIFTSHADERDRIVER_ID_GGP_PROPRIETARYDRIVER_ID_BROADCOM_PROPRIETARYDRIVER_ID_MESA_LLVMPIPEDRIVER_ID_MOLTENVKDRIVER_ID_COREAVI_PROPRIETARYDRIVER_ID_JUICE_PROPRIETARYDRIVER_ID_VERISILICON_PROPRIETARYDRIVER_ID_MESA_TURNIPDRIVER_ID_MESA_V3DVDRIVER_ID_MESA_PANVKDRIVER_ID_SAMSUNG_PROPRIETARYDRIVER_ID_MESA_VENUSDRIVER_ID_MESA_DOZENDRIVER_ID_MESA_NVKDRIVER_ID_IMAGINATION_OPEN_SOURCE_MESADRIVER_ID_MESA_HONEYKRISPDRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN
- See Also:
-
VK_DRIVER_ID_SAMSUNG_PROPRIETARY
public static final int VK_DRIVER_ID_SAMSUNG_PROPRIETARYVkDriverId - Khronos driver IDsDescription
Note
Khronos driver IDs may be allocated by vendors at any time. There may be multiple driver IDs for the same vendor, representing different drivers (for e.g. different platforms, proprietary or open source, etc.). Only the latest canonical versions of this Specification, of the corresponding
vk.xmlAPI Registry, and of the correspondingvulkan_core.hheader file must contain all reserved Khronos driver IDs.Only driver IDs registered with Khronos are given symbolic names. There may be unregistered driver IDs returned.
See Also
VkPhysicalDeviceDriverProperties,VkPhysicalDeviceVulkan12PropertiesEnum values:
DRIVER_ID_AMD_PROPRIETARYDRIVER_ID_AMD_OPEN_SOURCEDRIVER_ID_MESA_RADVDRIVER_ID_NVIDIA_PROPRIETARYDRIVER_ID_INTEL_PROPRIETARY_WINDOWSDRIVER_ID_INTEL_OPEN_SOURCE_MESADRIVER_ID_IMAGINATION_PROPRIETARYDRIVER_ID_QUALCOMM_PROPRIETARYDRIVER_ID_ARM_PROPRIETARYDRIVER_ID_GOOGLE_SWIFTSHADERDRIVER_ID_GGP_PROPRIETARYDRIVER_ID_BROADCOM_PROPRIETARYDRIVER_ID_MESA_LLVMPIPEDRIVER_ID_MOLTENVKDRIVER_ID_COREAVI_PROPRIETARYDRIVER_ID_JUICE_PROPRIETARYDRIVER_ID_VERISILICON_PROPRIETARYDRIVER_ID_MESA_TURNIPDRIVER_ID_MESA_V3DVDRIVER_ID_MESA_PANVKDRIVER_ID_SAMSUNG_PROPRIETARYDRIVER_ID_MESA_VENUSDRIVER_ID_MESA_DOZENDRIVER_ID_MESA_NVKDRIVER_ID_IMAGINATION_OPEN_SOURCE_MESADRIVER_ID_MESA_HONEYKRISPDRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN
- See Also:
-
VK_DRIVER_ID_MESA_VENUS
public static final int VK_DRIVER_ID_MESA_VENUSVkDriverId - Khronos driver IDsDescription
Note
Khronos driver IDs may be allocated by vendors at any time. There may be multiple driver IDs for the same vendor, representing different drivers (for e.g. different platforms, proprietary or open source, etc.). Only the latest canonical versions of this Specification, of the corresponding
vk.xmlAPI Registry, and of the correspondingvulkan_core.hheader file must contain all reserved Khronos driver IDs.Only driver IDs registered with Khronos are given symbolic names. There may be unregistered driver IDs returned.
See Also
VkPhysicalDeviceDriverProperties,VkPhysicalDeviceVulkan12PropertiesEnum values:
DRIVER_ID_AMD_PROPRIETARYDRIVER_ID_AMD_OPEN_SOURCEDRIVER_ID_MESA_RADVDRIVER_ID_NVIDIA_PROPRIETARYDRIVER_ID_INTEL_PROPRIETARY_WINDOWSDRIVER_ID_INTEL_OPEN_SOURCE_MESADRIVER_ID_IMAGINATION_PROPRIETARYDRIVER_ID_QUALCOMM_PROPRIETARYDRIVER_ID_ARM_PROPRIETARYDRIVER_ID_GOOGLE_SWIFTSHADERDRIVER_ID_GGP_PROPRIETARYDRIVER_ID_BROADCOM_PROPRIETARYDRIVER_ID_MESA_LLVMPIPEDRIVER_ID_MOLTENVKDRIVER_ID_COREAVI_PROPRIETARYDRIVER_ID_JUICE_PROPRIETARYDRIVER_ID_VERISILICON_PROPRIETARYDRIVER_ID_MESA_TURNIPDRIVER_ID_MESA_V3DVDRIVER_ID_MESA_PANVKDRIVER_ID_SAMSUNG_PROPRIETARYDRIVER_ID_MESA_VENUSDRIVER_ID_MESA_DOZENDRIVER_ID_MESA_NVKDRIVER_ID_IMAGINATION_OPEN_SOURCE_MESADRIVER_ID_MESA_HONEYKRISPDRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN
- See Also:
-
VK_DRIVER_ID_MESA_DOZEN
public static final int VK_DRIVER_ID_MESA_DOZENVkDriverId - Khronos driver IDsDescription
Note
Khronos driver IDs may be allocated by vendors at any time. There may be multiple driver IDs for the same vendor, representing different drivers (for e.g. different platforms, proprietary or open source, etc.). Only the latest canonical versions of this Specification, of the corresponding
vk.xmlAPI Registry, and of the correspondingvulkan_core.hheader file must contain all reserved Khronos driver IDs.Only driver IDs registered with Khronos are given symbolic names. There may be unregistered driver IDs returned.
See Also
VkPhysicalDeviceDriverProperties,VkPhysicalDeviceVulkan12PropertiesEnum values:
DRIVER_ID_AMD_PROPRIETARYDRIVER_ID_AMD_OPEN_SOURCEDRIVER_ID_MESA_RADVDRIVER_ID_NVIDIA_PROPRIETARYDRIVER_ID_INTEL_PROPRIETARY_WINDOWSDRIVER_ID_INTEL_OPEN_SOURCE_MESADRIVER_ID_IMAGINATION_PROPRIETARYDRIVER_ID_QUALCOMM_PROPRIETARYDRIVER_ID_ARM_PROPRIETARYDRIVER_ID_GOOGLE_SWIFTSHADERDRIVER_ID_GGP_PROPRIETARYDRIVER_ID_BROADCOM_PROPRIETARYDRIVER_ID_MESA_LLVMPIPEDRIVER_ID_MOLTENVKDRIVER_ID_COREAVI_PROPRIETARYDRIVER_ID_JUICE_PROPRIETARYDRIVER_ID_VERISILICON_PROPRIETARYDRIVER_ID_MESA_TURNIPDRIVER_ID_MESA_V3DVDRIVER_ID_MESA_PANVKDRIVER_ID_SAMSUNG_PROPRIETARYDRIVER_ID_MESA_VENUSDRIVER_ID_MESA_DOZENDRIVER_ID_MESA_NVKDRIVER_ID_IMAGINATION_OPEN_SOURCE_MESADRIVER_ID_MESA_HONEYKRISPDRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN
- See Also:
-
VK_DRIVER_ID_MESA_NVK
public static final int VK_DRIVER_ID_MESA_NVKVkDriverId - Khronos driver IDsDescription
Note
Khronos driver IDs may be allocated by vendors at any time. There may be multiple driver IDs for the same vendor, representing different drivers (for e.g. different platforms, proprietary or open source, etc.). Only the latest canonical versions of this Specification, of the corresponding
vk.xmlAPI Registry, and of the correspondingvulkan_core.hheader file must contain all reserved Khronos driver IDs.Only driver IDs registered with Khronos are given symbolic names. There may be unregistered driver IDs returned.
See Also
VkPhysicalDeviceDriverProperties,VkPhysicalDeviceVulkan12PropertiesEnum values:
DRIVER_ID_AMD_PROPRIETARYDRIVER_ID_AMD_OPEN_SOURCEDRIVER_ID_MESA_RADVDRIVER_ID_NVIDIA_PROPRIETARYDRIVER_ID_INTEL_PROPRIETARY_WINDOWSDRIVER_ID_INTEL_OPEN_SOURCE_MESADRIVER_ID_IMAGINATION_PROPRIETARYDRIVER_ID_QUALCOMM_PROPRIETARYDRIVER_ID_ARM_PROPRIETARYDRIVER_ID_GOOGLE_SWIFTSHADERDRIVER_ID_GGP_PROPRIETARYDRIVER_ID_BROADCOM_PROPRIETARYDRIVER_ID_MESA_LLVMPIPEDRIVER_ID_MOLTENVKDRIVER_ID_COREAVI_PROPRIETARYDRIVER_ID_JUICE_PROPRIETARYDRIVER_ID_VERISILICON_PROPRIETARYDRIVER_ID_MESA_TURNIPDRIVER_ID_MESA_V3DVDRIVER_ID_MESA_PANVKDRIVER_ID_SAMSUNG_PROPRIETARYDRIVER_ID_MESA_VENUSDRIVER_ID_MESA_DOZENDRIVER_ID_MESA_NVKDRIVER_ID_IMAGINATION_OPEN_SOURCE_MESADRIVER_ID_MESA_HONEYKRISPDRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN
- See Also:
-
VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA
public static final int VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESAVkDriverId - Khronos driver IDsDescription
Note
Khronos driver IDs may be allocated by vendors at any time. There may be multiple driver IDs for the same vendor, representing different drivers (for e.g. different platforms, proprietary or open source, etc.). Only the latest canonical versions of this Specification, of the corresponding
vk.xmlAPI Registry, and of the correspondingvulkan_core.hheader file must contain all reserved Khronos driver IDs.Only driver IDs registered with Khronos are given symbolic names. There may be unregistered driver IDs returned.
See Also
VkPhysicalDeviceDriverProperties,VkPhysicalDeviceVulkan12PropertiesEnum values:
DRIVER_ID_AMD_PROPRIETARYDRIVER_ID_AMD_OPEN_SOURCEDRIVER_ID_MESA_RADVDRIVER_ID_NVIDIA_PROPRIETARYDRIVER_ID_INTEL_PROPRIETARY_WINDOWSDRIVER_ID_INTEL_OPEN_SOURCE_MESADRIVER_ID_IMAGINATION_PROPRIETARYDRIVER_ID_QUALCOMM_PROPRIETARYDRIVER_ID_ARM_PROPRIETARYDRIVER_ID_GOOGLE_SWIFTSHADERDRIVER_ID_GGP_PROPRIETARYDRIVER_ID_BROADCOM_PROPRIETARYDRIVER_ID_MESA_LLVMPIPEDRIVER_ID_MOLTENVKDRIVER_ID_COREAVI_PROPRIETARYDRIVER_ID_JUICE_PROPRIETARYDRIVER_ID_VERISILICON_PROPRIETARYDRIVER_ID_MESA_TURNIPDRIVER_ID_MESA_V3DVDRIVER_ID_MESA_PANVKDRIVER_ID_SAMSUNG_PROPRIETARYDRIVER_ID_MESA_VENUSDRIVER_ID_MESA_DOZENDRIVER_ID_MESA_NVKDRIVER_ID_IMAGINATION_OPEN_SOURCE_MESADRIVER_ID_MESA_HONEYKRISPDRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN
- See Also:
-
VK_DRIVER_ID_MESA_HONEYKRISP
public static final int VK_DRIVER_ID_MESA_HONEYKRISPVkDriverId - Khronos driver IDsDescription
Note
Khronos driver IDs may be allocated by vendors at any time. There may be multiple driver IDs for the same vendor, representing different drivers (for e.g. different platforms, proprietary or open source, etc.). Only the latest canonical versions of this Specification, of the corresponding
vk.xmlAPI Registry, and of the correspondingvulkan_core.hheader file must contain all reserved Khronos driver IDs.Only driver IDs registered with Khronos are given symbolic names. There may be unregistered driver IDs returned.
See Also
VkPhysicalDeviceDriverProperties,VkPhysicalDeviceVulkan12PropertiesEnum values:
DRIVER_ID_AMD_PROPRIETARYDRIVER_ID_AMD_OPEN_SOURCEDRIVER_ID_MESA_RADVDRIVER_ID_NVIDIA_PROPRIETARYDRIVER_ID_INTEL_PROPRIETARY_WINDOWSDRIVER_ID_INTEL_OPEN_SOURCE_MESADRIVER_ID_IMAGINATION_PROPRIETARYDRIVER_ID_QUALCOMM_PROPRIETARYDRIVER_ID_ARM_PROPRIETARYDRIVER_ID_GOOGLE_SWIFTSHADERDRIVER_ID_GGP_PROPRIETARYDRIVER_ID_BROADCOM_PROPRIETARYDRIVER_ID_MESA_LLVMPIPEDRIVER_ID_MOLTENVKDRIVER_ID_COREAVI_PROPRIETARYDRIVER_ID_JUICE_PROPRIETARYDRIVER_ID_VERISILICON_PROPRIETARYDRIVER_ID_MESA_TURNIPDRIVER_ID_MESA_V3DVDRIVER_ID_MESA_PANVKDRIVER_ID_SAMSUNG_PROPRIETARYDRIVER_ID_MESA_VENUSDRIVER_ID_MESA_DOZENDRIVER_ID_MESA_NVKDRIVER_ID_IMAGINATION_OPEN_SOURCE_MESADRIVER_ID_MESA_HONEYKRISPDRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN
- See Also:
-
VK_DRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN
public static final int VK_DRIVER_ID_VULKAN_SC_EMULATION_ON_VULKANVkDriverId - Khronos driver IDsDescription
Note
Khronos driver IDs may be allocated by vendors at any time. There may be multiple driver IDs for the same vendor, representing different drivers (for e.g. different platforms, proprietary or open source, etc.). Only the latest canonical versions of this Specification, of the corresponding
vk.xmlAPI Registry, and of the correspondingvulkan_core.hheader file must contain all reserved Khronos driver IDs.Only driver IDs registered with Khronos are given symbolic names. There may be unregistered driver IDs returned.
See Also
VkPhysicalDeviceDriverProperties,VkPhysicalDeviceVulkan12PropertiesEnum values:
DRIVER_ID_AMD_PROPRIETARYDRIVER_ID_AMD_OPEN_SOURCEDRIVER_ID_MESA_RADVDRIVER_ID_NVIDIA_PROPRIETARYDRIVER_ID_INTEL_PROPRIETARY_WINDOWSDRIVER_ID_INTEL_OPEN_SOURCE_MESADRIVER_ID_IMAGINATION_PROPRIETARYDRIVER_ID_QUALCOMM_PROPRIETARYDRIVER_ID_ARM_PROPRIETARYDRIVER_ID_GOOGLE_SWIFTSHADERDRIVER_ID_GGP_PROPRIETARYDRIVER_ID_BROADCOM_PROPRIETARYDRIVER_ID_MESA_LLVMPIPEDRIVER_ID_MOLTENVKDRIVER_ID_COREAVI_PROPRIETARYDRIVER_ID_JUICE_PROPRIETARYDRIVER_ID_VERISILICON_PROPRIETARYDRIVER_ID_MESA_TURNIPDRIVER_ID_MESA_V3DVDRIVER_ID_MESA_PANVKDRIVER_ID_SAMSUNG_PROPRIETARYDRIVER_ID_MESA_VENUSDRIVER_ID_MESA_DOZENDRIVER_ID_MESA_NVKDRIVER_ID_IMAGINATION_OPEN_SOURCE_MESADRIVER_ID_MESA_HONEYKRISPDRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN
- See Also:
-
VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY
public static final int VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLYVkShaderFloatControlsIndependence - Bitmask specifying whether, and how, shader float controls can be set separatelyDescription
SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLYspecifies that shader float controls for 32-bit floating-point can be set independently; other bit widths must be set identically to each other.SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALLspecifies that shader float controls for all bit widths can be set independently.SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONEspecifies that shader float controls for all bit widths must be set identically.
See Also
VkPhysicalDeviceFloatControlsProperties,VkPhysicalDeviceVulkan12Properties- See Also:
-
VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL
public static final int VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALLVkShaderFloatControlsIndependence - Bitmask specifying whether, and how, shader float controls can be set separatelyDescription
SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLYspecifies that shader float controls for 32-bit floating-point can be set independently; other bit widths must be set identically to each other.SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALLspecifies that shader float controls for all bit widths can be set independently.SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONEspecifies that shader float controls for all bit widths must be set identically.
See Also
VkPhysicalDeviceFloatControlsProperties,VkPhysicalDeviceVulkan12Properties- See Also:
-
VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
public static final int VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONEVkShaderFloatControlsIndependence - Bitmask specifying whether, and how, shader float controls can be set separatelyDescription
SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLYspecifies that shader float controls for 32-bit floating-point can be set independently; other bit widths must be set identically to each other.SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALLspecifies that shader float controls for all bit widths can be set independently.SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONEspecifies that shader float controls for all bit widths must be set identically.
See Also
VkPhysicalDeviceFloatControlsProperties,VkPhysicalDeviceVulkan12Properties- See Also:
-
VK_RESOLVE_MODE_NONE
public static final int VK_RESOLVE_MODE_NONEVkResolveModeFlagBits - Bitmask indicating supported depth and stencil resolve modesDescription
RESOLVE_MODE_NONEspecifies that no resolve operation is done.RESOLVE_MODE_SAMPLE_ZERO_BITspecifies that result of the resolve operation is equal to the value of sample 0.RESOLVE_MODE_AVERAGE_BITspecifies that result of the resolve operation is the average of the sample values.RESOLVE_MODE_MIN_BITspecifies that result of the resolve operation is the minimum of the sample values.RESOLVE_MODE_MAX_BITspecifies that result of the resolve operation is the maximum of the sample values.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROIDspecifies that rather than a multisample resolve, a single sampled color attachment will be downsampled into a Y′CBCR format image specified by an external Android format. Unlike other resolve modes, implementations can resolve multiple times during rendering, or even bypass writing to the color attachment altogether, as long as the final value is resolved to the resolve attachment. Values in theG,B, andRchannels of the color attachment will be written to theY,CB, andCRchannels of the external format image, respectively. Chroma values are calculated as if sampling with a linear filter from the color attachment at full rate, at the location the chroma values sit according toVkPhysicalDeviceExternalFormatResolvePropertiesANDROID::chromaOffsetX,VkPhysicalDeviceExternalFormatResolvePropertiesANDROID::chromaOffsetY, and the chroma sample rate of the resolved image.
If no resolve mode is otherwise specified,
RESOLVE_MODE_AVERAGE_BITis used.Note
No range compression or Y′CBCR model conversion is performed by
RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID; applications have to do these conversions themselves. Value outputs are expected to match those that would be read through a Y′CBCR sampler usingSAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY. The color space that the values should be in is defined by the platform and is not exposed via Vulkan.See Also
VkRenderingAttachmentInfo,VkSubpassDescriptionDepthStencilResolve- See Also:
-
VK_RESOLVE_MODE_SAMPLE_ZERO_BIT
public static final int VK_RESOLVE_MODE_SAMPLE_ZERO_BITVkResolveModeFlagBits - Bitmask indicating supported depth and stencil resolve modesDescription
RESOLVE_MODE_NONEspecifies that no resolve operation is done.RESOLVE_MODE_SAMPLE_ZERO_BITspecifies that result of the resolve operation is equal to the value of sample 0.RESOLVE_MODE_AVERAGE_BITspecifies that result of the resolve operation is the average of the sample values.RESOLVE_MODE_MIN_BITspecifies that result of the resolve operation is the minimum of the sample values.RESOLVE_MODE_MAX_BITspecifies that result of the resolve operation is the maximum of the sample values.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROIDspecifies that rather than a multisample resolve, a single sampled color attachment will be downsampled into a Y′CBCR format image specified by an external Android format. Unlike other resolve modes, implementations can resolve multiple times during rendering, or even bypass writing to the color attachment altogether, as long as the final value is resolved to the resolve attachment. Values in theG,B, andRchannels of the color attachment will be written to theY,CB, andCRchannels of the external format image, respectively. Chroma values are calculated as if sampling with a linear filter from the color attachment at full rate, at the location the chroma values sit according toVkPhysicalDeviceExternalFormatResolvePropertiesANDROID::chromaOffsetX,VkPhysicalDeviceExternalFormatResolvePropertiesANDROID::chromaOffsetY, and the chroma sample rate of the resolved image.
If no resolve mode is otherwise specified,
RESOLVE_MODE_AVERAGE_BITis used.Note
No range compression or Y′CBCR model conversion is performed by
RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID; applications have to do these conversions themselves. Value outputs are expected to match those that would be read through a Y′CBCR sampler usingSAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY. The color space that the values should be in is defined by the platform and is not exposed via Vulkan.See Also
VkRenderingAttachmentInfo,VkSubpassDescriptionDepthStencilResolve- See Also:
-
VK_RESOLVE_MODE_AVERAGE_BIT
public static final int VK_RESOLVE_MODE_AVERAGE_BITVkResolveModeFlagBits - Bitmask indicating supported depth and stencil resolve modesDescription
RESOLVE_MODE_NONEspecifies that no resolve operation is done.RESOLVE_MODE_SAMPLE_ZERO_BITspecifies that result of the resolve operation is equal to the value of sample 0.RESOLVE_MODE_AVERAGE_BITspecifies that result of the resolve operation is the average of the sample values.RESOLVE_MODE_MIN_BITspecifies that result of the resolve operation is the minimum of the sample values.RESOLVE_MODE_MAX_BITspecifies that result of the resolve operation is the maximum of the sample values.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROIDspecifies that rather than a multisample resolve, a single sampled color attachment will be downsampled into a Y′CBCR format image specified by an external Android format. Unlike other resolve modes, implementations can resolve multiple times during rendering, or even bypass writing to the color attachment altogether, as long as the final value is resolved to the resolve attachment. Values in theG,B, andRchannels of the color attachment will be written to theY,CB, andCRchannels of the external format image, respectively. Chroma values are calculated as if sampling with a linear filter from the color attachment at full rate, at the location the chroma values sit according toVkPhysicalDeviceExternalFormatResolvePropertiesANDROID::chromaOffsetX,VkPhysicalDeviceExternalFormatResolvePropertiesANDROID::chromaOffsetY, and the chroma sample rate of the resolved image.
If no resolve mode is otherwise specified,
RESOLVE_MODE_AVERAGE_BITis used.Note
No range compression or Y′CBCR model conversion is performed by
RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID; applications have to do these conversions themselves. Value outputs are expected to match those that would be read through a Y′CBCR sampler usingSAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY. The color space that the values should be in is defined by the platform and is not exposed via Vulkan.See Also
VkRenderingAttachmentInfo,VkSubpassDescriptionDepthStencilResolve- See Also:
-
VK_RESOLVE_MODE_MIN_BIT
public static final int VK_RESOLVE_MODE_MIN_BITVkResolveModeFlagBits - Bitmask indicating supported depth and stencil resolve modesDescription
RESOLVE_MODE_NONEspecifies that no resolve operation is done.RESOLVE_MODE_SAMPLE_ZERO_BITspecifies that result of the resolve operation is equal to the value of sample 0.RESOLVE_MODE_AVERAGE_BITspecifies that result of the resolve operation is the average of the sample values.RESOLVE_MODE_MIN_BITspecifies that result of the resolve operation is the minimum of the sample values.RESOLVE_MODE_MAX_BITspecifies that result of the resolve operation is the maximum of the sample values.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROIDspecifies that rather than a multisample resolve, a single sampled color attachment will be downsampled into a Y′CBCR format image specified by an external Android format. Unlike other resolve modes, implementations can resolve multiple times during rendering, or even bypass writing to the color attachment altogether, as long as the final value is resolved to the resolve attachment. Values in theG,B, andRchannels of the color attachment will be written to theY,CB, andCRchannels of the external format image, respectively. Chroma values are calculated as if sampling with a linear filter from the color attachment at full rate, at the location the chroma values sit according toVkPhysicalDeviceExternalFormatResolvePropertiesANDROID::chromaOffsetX,VkPhysicalDeviceExternalFormatResolvePropertiesANDROID::chromaOffsetY, and the chroma sample rate of the resolved image.
If no resolve mode is otherwise specified,
RESOLVE_MODE_AVERAGE_BITis used.Note
No range compression or Y′CBCR model conversion is performed by
RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID; applications have to do these conversions themselves. Value outputs are expected to match those that would be read through a Y′CBCR sampler usingSAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY. The color space that the values should be in is defined by the platform and is not exposed via Vulkan.See Also
VkRenderingAttachmentInfo,VkSubpassDescriptionDepthStencilResolve- See Also:
-
VK_RESOLVE_MODE_MAX_BIT
public static final int VK_RESOLVE_MODE_MAX_BITVkResolveModeFlagBits - Bitmask indicating supported depth and stencil resolve modesDescription
RESOLVE_MODE_NONEspecifies that no resolve operation is done.RESOLVE_MODE_SAMPLE_ZERO_BITspecifies that result of the resolve operation is equal to the value of sample 0.RESOLVE_MODE_AVERAGE_BITspecifies that result of the resolve operation is the average of the sample values.RESOLVE_MODE_MIN_BITspecifies that result of the resolve operation is the minimum of the sample values.RESOLVE_MODE_MAX_BITspecifies that result of the resolve operation is the maximum of the sample values.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROIDspecifies that rather than a multisample resolve, a single sampled color attachment will be downsampled into a Y′CBCR format image specified by an external Android format. Unlike other resolve modes, implementations can resolve multiple times during rendering, or even bypass writing to the color attachment altogether, as long as the final value is resolved to the resolve attachment. Values in theG,B, andRchannels of the color attachment will be written to theY,CB, andCRchannels of the external format image, respectively. Chroma values are calculated as if sampling with a linear filter from the color attachment at full rate, at the location the chroma values sit according toVkPhysicalDeviceExternalFormatResolvePropertiesANDROID::chromaOffsetX,VkPhysicalDeviceExternalFormatResolvePropertiesANDROID::chromaOffsetY, and the chroma sample rate of the resolved image.
If no resolve mode is otherwise specified,
RESOLVE_MODE_AVERAGE_BITis used.Note
No range compression or Y′CBCR model conversion is performed by
RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID; applications have to do these conversions themselves. Value outputs are expected to match those that would be read through a Y′CBCR sampler usingSAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY. The color space that the values should be in is defined by the platform and is not exposed via Vulkan.See Also
VkRenderingAttachmentInfo,VkSubpassDescriptionDepthStencilResolve- See Also:
-
VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT
public static final int VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BITVkDescriptorBindingFlagBits - Bitmask specifying descriptor set layout binding propertiesDescription
DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BITspecifies that if descriptors in this binding are updated between when the descriptor set is bound in a command buffer and when that command buffer is submitted to a queue, then the submission will use the most recently set descriptors for this binding and the updates do not invalidate the command buffer. Descriptor bindings created with this flag are also partially exempt from the external synchronization requirement inUpdateDescriptorSetWithTemplateKHRandUpdateDescriptorSets. Multiple descriptors with this flag set can be updated concurrently in different threads, though the same descriptor must not be updated concurrently by two threads. Descriptors with this flag set can be updated concurrently with the set being bound to a command buffer in another thread, but not concurrently with the set being reset or freed.DESCRIPTOR_BINDING_PARTIALLY_BOUND_BITspecifies that descriptors in this binding that are not dynamically used need not contain valid descriptors at the time the descriptors are consumed. A descriptor is dynamically used if any shader invocation executes an instruction that performs any memory access using the descriptor. If a descriptor is not dynamically used, any resource referenced by the descriptor is not considered to be referenced during command execution.DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BITspecifies that descriptors in this binding can be updated after a command buffer has bound this descriptor set, or while a command buffer that uses this descriptor set is pending execution, as long as the descriptors that are updated are not used by those command buffers. Descriptor bindings created with this flag are also partially exempt from the external synchronization requirement inUpdateDescriptorSetWithTemplateKHRandUpdateDescriptorSetsin the same way as forDESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT. IfDESCRIPTOR_BINDING_PARTIALLY_BOUND_BITis also set, then descriptors can be updated as long as they are not dynamically used by any shader invocations. IfDESCRIPTOR_BINDING_PARTIALLY_BOUND_BITis not set, then descriptors can be updated as long as they are not statically used by any shader invocations.DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BITspecifies that this is a variable-sized descriptor binding whose size will be specified when a descriptor set is allocated using this layout. The value ofdescriptorCountis treated as an upper bound on the size of the binding. This must only be used for the last binding in the descriptor set layout (i.e. the binding with the largest value ofbinding). For the purposes of counting against limits such asmaxDescriptorSet* andmaxPerStageDescriptor*, the full value ofdescriptorCountis counted, except for descriptor bindings with a descriptor type ofDESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, whenVkDescriptorSetLayoutCreateInfo::flagsdoes not containDESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT. In this case,descriptorCountspecifies the upper bound on the byte size of the binding; thus it counts against themaxInlineUniformBlockSizeandmaxInlineUniformTotalSizelimits instead.
Note
Note that while
DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BITandDESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BITboth involve updates to descriptor sets after they are bound,DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BITis a weaker requirement since it is only about descriptors that are not used, whereasDESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BITrequires the implementation to observe updates to descriptors that are used.- See Also:
-
VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT
public static final int VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BITVkDescriptorBindingFlagBits - Bitmask specifying descriptor set layout binding propertiesDescription
DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BITspecifies that if descriptors in this binding are updated between when the descriptor set is bound in a command buffer and when that command buffer is submitted to a queue, then the submission will use the most recently set descriptors for this binding and the updates do not invalidate the command buffer. Descriptor bindings created with this flag are also partially exempt from the external synchronization requirement inUpdateDescriptorSetWithTemplateKHRandUpdateDescriptorSets. Multiple descriptors with this flag set can be updated concurrently in different threads, though the same descriptor must not be updated concurrently by two threads. Descriptors with this flag set can be updated concurrently with the set being bound to a command buffer in another thread, but not concurrently with the set being reset or freed.DESCRIPTOR_BINDING_PARTIALLY_BOUND_BITspecifies that descriptors in this binding that are not dynamically used need not contain valid descriptors at the time the descriptors are consumed. A descriptor is dynamically used if any shader invocation executes an instruction that performs any memory access using the descriptor. If a descriptor is not dynamically used, any resource referenced by the descriptor is not considered to be referenced during command execution.DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BITspecifies that descriptors in this binding can be updated after a command buffer has bound this descriptor set, or while a command buffer that uses this descriptor set is pending execution, as long as the descriptors that are updated are not used by those command buffers. Descriptor bindings created with this flag are also partially exempt from the external synchronization requirement inUpdateDescriptorSetWithTemplateKHRandUpdateDescriptorSetsin the same way as forDESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT. IfDESCRIPTOR_BINDING_PARTIALLY_BOUND_BITis also set, then descriptors can be updated as long as they are not dynamically used by any shader invocations. IfDESCRIPTOR_BINDING_PARTIALLY_BOUND_BITis not set, then descriptors can be updated as long as they are not statically used by any shader invocations.DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BITspecifies that this is a variable-sized descriptor binding whose size will be specified when a descriptor set is allocated using this layout. The value ofdescriptorCountis treated as an upper bound on the size of the binding. This must only be used for the last binding in the descriptor set layout (i.e. the binding with the largest value ofbinding). For the purposes of counting against limits such asmaxDescriptorSet* andmaxPerStageDescriptor*, the full value ofdescriptorCountis counted, except for descriptor bindings with a descriptor type ofDESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, whenVkDescriptorSetLayoutCreateInfo::flagsdoes not containDESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT. In this case,descriptorCountspecifies the upper bound on the byte size of the binding; thus it counts against themaxInlineUniformBlockSizeandmaxInlineUniformTotalSizelimits instead.
Note
Note that while
DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BITandDESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BITboth involve updates to descriptor sets after they are bound,DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BITis a weaker requirement since it is only about descriptors that are not used, whereasDESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BITrequires the implementation to observe updates to descriptors that are used.- See Also:
-
VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT
public static final int VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BITVkDescriptorBindingFlagBits - Bitmask specifying descriptor set layout binding propertiesDescription
DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BITspecifies that if descriptors in this binding are updated between when the descriptor set is bound in a command buffer and when that command buffer is submitted to a queue, then the submission will use the most recently set descriptors for this binding and the updates do not invalidate the command buffer. Descriptor bindings created with this flag are also partially exempt from the external synchronization requirement inUpdateDescriptorSetWithTemplateKHRandUpdateDescriptorSets. Multiple descriptors with this flag set can be updated concurrently in different threads, though the same descriptor must not be updated concurrently by two threads. Descriptors with this flag set can be updated concurrently with the set being bound to a command buffer in another thread, but not concurrently with the set being reset or freed.DESCRIPTOR_BINDING_PARTIALLY_BOUND_BITspecifies that descriptors in this binding that are not dynamically used need not contain valid descriptors at the time the descriptors are consumed. A descriptor is dynamically used if any shader invocation executes an instruction that performs any memory access using the descriptor. If a descriptor is not dynamically used, any resource referenced by the descriptor is not considered to be referenced during command execution.DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BITspecifies that descriptors in this binding can be updated after a command buffer has bound this descriptor set, or while a command buffer that uses this descriptor set is pending execution, as long as the descriptors that are updated are not used by those command buffers. Descriptor bindings created with this flag are also partially exempt from the external synchronization requirement inUpdateDescriptorSetWithTemplateKHRandUpdateDescriptorSetsin the same way as forDESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT. IfDESCRIPTOR_BINDING_PARTIALLY_BOUND_BITis also set, then descriptors can be updated as long as they are not dynamically used by any shader invocations. IfDESCRIPTOR_BINDING_PARTIALLY_BOUND_BITis not set, then descriptors can be updated as long as they are not statically used by any shader invocations.DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BITspecifies that this is a variable-sized descriptor binding whose size will be specified when a descriptor set is allocated using this layout. The value ofdescriptorCountis treated as an upper bound on the size of the binding. This must only be used for the last binding in the descriptor set layout (i.e. the binding with the largest value ofbinding). For the purposes of counting against limits such asmaxDescriptorSet* andmaxPerStageDescriptor*, the full value ofdescriptorCountis counted, except for descriptor bindings with a descriptor type ofDESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, whenVkDescriptorSetLayoutCreateInfo::flagsdoes not containDESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT. In this case,descriptorCountspecifies the upper bound on the byte size of the binding; thus it counts against themaxInlineUniformBlockSizeandmaxInlineUniformTotalSizelimits instead.
Note
Note that while
DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BITandDESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BITboth involve updates to descriptor sets after they are bound,DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BITis a weaker requirement since it is only about descriptors that are not used, whereasDESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BITrequires the implementation to observe updates to descriptors that are used.- See Also:
-
VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT
public static final int VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BITVkDescriptorBindingFlagBits - Bitmask specifying descriptor set layout binding propertiesDescription
DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BITspecifies that if descriptors in this binding are updated between when the descriptor set is bound in a command buffer and when that command buffer is submitted to a queue, then the submission will use the most recently set descriptors for this binding and the updates do not invalidate the command buffer. Descriptor bindings created with this flag are also partially exempt from the external synchronization requirement inUpdateDescriptorSetWithTemplateKHRandUpdateDescriptorSets. Multiple descriptors with this flag set can be updated concurrently in different threads, though the same descriptor must not be updated concurrently by two threads. Descriptors with this flag set can be updated concurrently with the set being bound to a command buffer in another thread, but not concurrently with the set being reset or freed.DESCRIPTOR_BINDING_PARTIALLY_BOUND_BITspecifies that descriptors in this binding that are not dynamically used need not contain valid descriptors at the time the descriptors are consumed. A descriptor is dynamically used if any shader invocation executes an instruction that performs any memory access using the descriptor. If a descriptor is not dynamically used, any resource referenced by the descriptor is not considered to be referenced during command execution.DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BITspecifies that descriptors in this binding can be updated after a command buffer has bound this descriptor set, or while a command buffer that uses this descriptor set is pending execution, as long as the descriptors that are updated are not used by those command buffers. Descriptor bindings created with this flag are also partially exempt from the external synchronization requirement inUpdateDescriptorSetWithTemplateKHRandUpdateDescriptorSetsin the same way as forDESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT. IfDESCRIPTOR_BINDING_PARTIALLY_BOUND_BITis also set, then descriptors can be updated as long as they are not dynamically used by any shader invocations. IfDESCRIPTOR_BINDING_PARTIALLY_BOUND_BITis not set, then descriptors can be updated as long as they are not statically used by any shader invocations.DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BITspecifies that this is a variable-sized descriptor binding whose size will be specified when a descriptor set is allocated using this layout. The value ofdescriptorCountis treated as an upper bound on the size of the binding. This must only be used for the last binding in the descriptor set layout (i.e. the binding with the largest value ofbinding). For the purposes of counting against limits such asmaxDescriptorSet* andmaxPerStageDescriptor*, the full value ofdescriptorCountis counted, except for descriptor bindings with a descriptor type ofDESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, whenVkDescriptorSetLayoutCreateInfo::flagsdoes not containDESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT. In this case,descriptorCountspecifies the upper bound on the byte size of the binding; thus it counts against themaxInlineUniformBlockSizeandmaxInlineUniformTotalSizelimits instead.
Note
Note that while
DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BITandDESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BITboth involve updates to descriptor sets after they are bound,DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BITis a weaker requirement since it is only about descriptors that are not used, whereasDESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BITrequires the implementation to observe updates to descriptors that are used.- See Also:
-
VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE
public static final int VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGEVkSamplerReductionMode - Specify reduction mode for texture filteringDescription
SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGEspecifies that texel values are combined by computing a weighted average of values in the footprint, using weights as specified in the image operations chapter.SAMPLER_REDUCTION_MODE_MINspecifies that texel values are combined by taking the component-wise minimum of values in the footprint with non-zero weights.SAMPLER_REDUCTION_MODE_MAXspecifies that texel values are combined by taking the component-wise maximum of values in the footprint with non-zero weights.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOMspecifies values are combined as described bySAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, followed by a texel range clamp.
See Also
- See Also:
-
VK_SAMPLER_REDUCTION_MODE_MIN
public static final int VK_SAMPLER_REDUCTION_MODE_MINVkSamplerReductionMode - Specify reduction mode for texture filteringDescription
SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGEspecifies that texel values are combined by computing a weighted average of values in the footprint, using weights as specified in the image operations chapter.SAMPLER_REDUCTION_MODE_MINspecifies that texel values are combined by taking the component-wise minimum of values in the footprint with non-zero weights.SAMPLER_REDUCTION_MODE_MAXspecifies that texel values are combined by taking the component-wise maximum of values in the footprint with non-zero weights.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOMspecifies values are combined as described bySAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, followed by a texel range clamp.
See Also
- See Also:
-
VK_SAMPLER_REDUCTION_MODE_MAX
public static final int VK_SAMPLER_REDUCTION_MODE_MAXVkSamplerReductionMode - Specify reduction mode for texture filteringDescription
SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGEspecifies that texel values are combined by computing a weighted average of values in the footprint, using weights as specified in the image operations chapter.SAMPLER_REDUCTION_MODE_MINspecifies that texel values are combined by taking the component-wise minimum of values in the footprint with non-zero weights.SAMPLER_REDUCTION_MODE_MAXspecifies that texel values are combined by taking the component-wise maximum of values in the footprint with non-zero weights.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOMspecifies values are combined as described bySAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, followed by a texel range clamp.
See Also
- See Also:
-
VK_SEMAPHORE_TYPE_BINARY
public static final int VK_SEMAPHORE_TYPE_BINARYVkSemaphoreType - Specifies the type of a semaphore objectDescription
SEMAPHORE_TYPE_BINARYspecifies a binary semaphore type that has a boolean payload indicating whether the semaphore is currently signaled or unsignaled. When created, the semaphore is in the unsignaled state.SEMAPHORE_TYPE_TIMELINEspecifies a timeline semaphore type that has a strictly increasing 64-bit unsigned integer payload indicating whether the semaphore is signaled with respect to a particular reference value. When created, the semaphore payload has the value given by theinitialValuefield ofVkSemaphoreTypeCreateInfo.
See Also
- See Also:
-
VK_SEMAPHORE_TYPE_TIMELINE
public static final int VK_SEMAPHORE_TYPE_TIMELINEVkSemaphoreType - Specifies the type of a semaphore objectDescription
SEMAPHORE_TYPE_BINARYspecifies a binary semaphore type that has a boolean payload indicating whether the semaphore is currently signaled or unsignaled. When created, the semaphore is in the unsignaled state.SEMAPHORE_TYPE_TIMELINEspecifies a timeline semaphore type that has a strictly increasing 64-bit unsigned integer payload indicating whether the semaphore is signaled with respect to a particular reference value. When created, the semaphore payload has the value given by theinitialValuefield ofVkSemaphoreTypeCreateInfo.
See Also
- See Also:
-
VK_SEMAPHORE_WAIT_ANY_BIT
public static final int VK_SEMAPHORE_WAIT_ANY_BITVkSemaphoreWaitFlagBits - Bitmask specifying additional parameters of a semaphore wait operationDescription
SEMAPHORE_WAIT_ANY_BITspecifies that the semaphore wait condition is that at least one of the semaphores inVkSemaphoreWaitInfo::pSemaphoreshas reached the value specified by the corresponding element ofVkSemaphoreWaitInfo::pValues. IfSEMAPHORE_WAIT_ANY_BITis not set, the semaphore wait condition is that all of the semaphores inVkSemaphoreWaitInfo::pSemaphoreshave reached the value specified by the corresponding element ofVkSemaphoreWaitInfo::pValues.
- See Also:
-
VK_API_VERSION_1_2
public static final int VK_API_VERSION_1_2The API version number for Vulkan 1.2.
-
-
Method Details
-
vkCmdDrawIndirectCount
public static void vkCmdDrawIndirectCount(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long buffer, long offset, long countBuffer, long countBufferOffset, int maxDrawCount, int stride) Draw primitives with indirect parameters and draw count.C Specification
To record a non-indexed draw call with a draw call count sourced from a buffer, call:
void vkCmdDrawIndirectCount( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);or the equivalent command
void vkCmdDrawIndirectCountKHR( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);or the equivalent command
void vkCmdDrawIndirectCountAMD( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);Description
vkCmdDrawIndirectCountbehaves similarly toCmdDrawIndirectexcept that the draw count is read by the device from a buffer during execution. The command will read an unsigned 32-bit integer fromcountBufferlocated atcountBufferOffsetand use this as the draw count.Valid Usage
- If a
VkSamplercreated withmagFilterorminFilterequal toFILTER_LINEAR,reductionModeequal toSAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, andcompareEnableequal toFALSEis used to sample aVkImageViewas a result of this command, then the image view’s format features must containFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT - If a
VkSamplercreated withmagFilterorminFilterequal toFILTER_LINEARandreductionModeequal to eitherSAMPLER_REDUCTION_MODE_MINorSAMPLER_REDUCTION_MODE_MAXis used to sample aVkImageViewas a result of this command, then the image view’s format features must containFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT - If a
VkSamplercreated withmipmapModeequal toSAMPLER_MIPMAP_MODE_LINEAR,reductionModeequal toSAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, andcompareEnableequal toFALSEis used to sample aVkImageViewas a result of this command, then the image view’s format features must containFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT - If a
VkSamplercreated withmipmapModeequal toSAMPLER_MIPMAP_MODE_LINEARandreductionModeequal to eitherSAMPLER_REDUCTION_MODE_MINorSAMPLER_REDUCTION_MODE_MAXis used to sample aVkImageViewas a result of this command, then the image view’s format features must containFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT - If a
VkSamplercreated withunnormalizedCoordinatesequal toTRUEis used to sample aVkImageViewas a result of this command, then the image view’slevelCountandlayerCountmust be 1 - If a
VkSamplercreated withunnormalizedCoordinatesequal toTRUEis used to sample aVkImageViewas a result of this command, then the image view’sviewTypemust beIMAGE_VIEW_TYPE_1DorIMAGE_VIEW_TYPE_2D - If a
VkSamplercreated withunnormalizedCoordinatesequal toTRUEis used to sample aVkImageViewas a result of this command, then the sampler must not be used with any of the SPIR-VOpImageSample*orOpImageSparseSample*instructions withImplicitLod,DreforProjin their name - If a
VkSamplercreated withunnormalizedCoordinatesequal toTRUEis used to sample aVkImageViewas a result of this command, then the sampler must not be used with any of the SPIR-VOpImageSample*orOpImageSparseSample*instructions that includes a LOD bias or any offset values - If a
VkImageViewis sampled with depth comparison, the image view’s format features must containFORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT - If a
VkImageViewis accessed using atomic operations as a result of this command, then the image view’s format features must containFORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT - If a
DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFERdescriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must containFORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT - If a
VkImageViewis sampled withFILTER_CUBIC_EXTas a result of this command, then the image view’s format features must containFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT - If the
VK_EXT_filter_cubicextension is not enabled and anyVkImageViewis sampled withFILTER_CUBIC_EXTas a result of this command, it must not have aVkImageViewTypeofIMAGE_VIEW_TYPE_3D,IMAGE_VIEW_TYPE_CUBE, orIMAGE_VIEW_TYPE_CUBE_ARRAY - Any
VkImageViewbeing sampled withFILTER_CUBIC_EXTas a result of this command must have aVkImageViewTypeand format that supports cubic filtering, as specified byVkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicreturned byGetPhysicalDeviceImageFormatProperties2 - Any
VkImageViewbeing sampled withFILTER_CUBIC_EXTwith a reduction mode of eitherSAMPLER_REDUCTION_MODE_MINorSAMPLER_REDUCTION_MODE_MAXas a result of this command must have aVkImageViewTypeand format that supports cubic filtering together with minmax filtering, as specified byVkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmaxreturned byGetPhysicalDeviceImageFormatProperties2 - If the
cubicRangeClampfeature is not enabled, then anyVkImageViewbeing sampled withFILTER_CUBIC_EXTas a result of this command must not have aVkSamplerReductionModeCreateInfo::reductionModeequal toSAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM - Any
VkImageViewbeing sampled with aVkSamplerReductionModeCreateInfo::reductionModeequal toSAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOMas a result of this command must sample withFILTER_CUBIC_EXT - If the
selectableCubicWeightsfeature is not enabled, then anyVkImageViewbeing sampled withFILTER_CUBIC_EXTas a result of this command must haveVkSamplerCubicWeightsCreateInfoQCOM::cubicWeightsequal toCUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM - Any
VkImagecreated with aVkImageCreateInfo::flagscontainingIMAGE_CREATE_CORNER_SAMPLED_BIT_NVsampled as a result of this command must only be sampled using aVkSamplerAddressModeofSAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE - For any
VkImageViewbeing written as a storage image where the image format field of theOpTypeImageisUnknown, the view’s format features must containFORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT - For any
VkImageViewbeing read as a storage image where the image format field of theOpTypeImageisUnknown, the view’s format features must containFORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT - For any
VkBufferViewbeing written as a storage texel buffer where the image format field of theOpTypeImageisUnknown, the view’s buffer features must containFORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT - Any
VkBufferViewbeing read as a storage texel buffer where the image format field of theOpTypeImageisUnknownthen the view’s buffer features must containFORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT - For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a
VkPipelineLayoutthat is compatible for set n, with theVkPipelineLayoutused to create the currentVkPipelineor theVkDescriptorSetLayoutarray used to create the currentVkShaderEXT, as described in Pipeline Layout Compatibility - For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a
VkPipelineLayoutthat is compatible for push constants, with theVkPipelineLayoutused to create the currentVkPipelineor theVkDescriptorSetLayoutarray used to create the currentVkShaderEXT, as described in Pipeline Layout Compatibility - For each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
- If the
maintenance4feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with aVkPipelineLayoutthat is compatible for push constants, with theVkPipelineLayoutused to create the currentVkPipelineor theVkDescriptorSetLayoutandVkPushConstantRangearrays used to create the currentVkShaderEXT, as described in Pipeline Layout Compatibility - Descriptors in each bound descriptor set, specified via
CmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by theVkPipelinebound to the pipeline bind point used by this command and the boundVkPipelinewas not created withPIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT - If the descriptors used by the
VkPipelinebound to the pipeline bind point were specified viaCmdBindDescriptorSets, the boundVkPipelinemust have been created withoutPIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT - Descriptors in bound descriptor buffers, specified via
CmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by theVkPipelinebound to the pipeline bind point used by this command and the boundVkPipelinewas created withPIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT - Descriptors in bound descriptor buffers, specified via
CmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by anyVkShaderEXTbound to a stage corresponding to the pipeline bind point used by this command - If the descriptors used by the
VkPipelinebound to the pipeline bind point were specified viaCmdSetDescriptorBufferOffsetsEXT, the boundVkPipelinemust have been created withPIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT - If a descriptor is dynamically used with a
VkPipelinecreated withPIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident - If a descriptor is dynamically used with a
VkShaderEXTcreated with aVkDescriptorSetLayoutthat was created withDESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident - If the
shaderObjectfeature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command - If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the
VkPipelineobject bound to the pipeline bind point used by this command, since that pipeline was bound - If the
shaderObjectfeature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid andNULL_HANDLEshader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command - If any stage of the
VkPipelineobject bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling eitherPIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESSorPIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2foruniformBuffers, and therobustBufferAccessfeature 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
robustBufferAccessfeature is not enabled, and anyVkShaderEXTbound 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
VkPipelineobject bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling eitherPIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESSorPIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2forstorageBuffers, and therobustBufferAccessfeature 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
robustBufferAccessfeature is not enabled, and anyVkShaderEXTbound to a stage corresponding to the pipeline bind point used by this command accesses a storage 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
commandBufferis an unprotected command buffer andprotectedNoFaultis not supported, any resource accessed by bound shaders must not be a protected resource - If a bound shader accesses a
VkSamplerorVkImageViewobject that enables sampler Y′CBCR conversion, that object must only be used withOpImageSample*orOpImageSparseSample*instructions - If a bound shader accesses a
VkSamplerorVkImageViewobject that enables sampler Y′CBCR conversion, that object must not use theConstOffsetandOffsetoperands - If a
VkImageViewis accessed as a result of this command, then the image view’sviewTypemust match theDimoperand of theOpTypeImageas described in Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types - If a
VkImageViewis accessed as a result of this command, then the numeric type of the image view’sformatand theSampledTypeoperand of theOpTypeImagemust match - If a
VkImageViewcreated with a format other thanFORMAT_A8_UNORMis accessed usingOpImageWriteas a result of this command, then theTypeof theTexeloperand of that instruction must have at least as many components as the image view’s format - If a
VkImageViewcreated with the formatFORMAT_A8_UNORMis accessed usingOpImageWriteas a result of this command, then theTypeof theTexeloperand of that instruction must have four components - If a
VkBufferViewis accessed usingOpImageWriteas a result of this command, then theTypeof theTexeloperand of that instruction must have at least as many components as the buffer view’s format - If a
VkImageViewwith aVkFormatthat has a 64-bit component width is accessed as a result of this command, theSampledTypeof theOpTypeImageoperand of that instruction must have aWidthof 64 - If a
VkImageViewwith aVkFormatthat has a component width less than 64-bit is accessed as a result of this command, theSampledTypeof theOpTypeImageoperand of that instruction must have aWidthof 32 - If a
VkBufferViewwith aVkFormatthat has a 64-bit component width is accessed as a result of this command, theSampledTypeof theOpTypeImageoperand of that instruction must have aWidthof 64 - If a
VkBufferViewwith aVkFormatthat has a component width less than 64-bit is accessed as a result of this command, theSampledTypeof theOpTypeImageoperand of that instruction must have aWidthof 32 - If the
sparseImageInt64Atomicsfeature is not enabled,VkImageobjects created with theIMAGE_CREATE_SPARSE_RESIDENCY_BITflag must not be accessed by atomic instructions through anOpTypeImagewith aSampledTypewith aWidthof 64 by this command - If the
sparseImageInt64Atomicsfeature is not enabled,VkBufferobjects created with theBUFFER_CREATE_SPARSE_RESIDENCY_BITflag must not be accessed by atomic instructions through anOpTypeImagewith aSampledTypewith aWidthof 64 by this command - If
OpImageWeightedSampleQCOMis used to sample aVkImageViewas a result of this command, then the image view’s format features must containFORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM - If
OpImageWeightedSampleQCOMuses aVkImageViewas a sample weight image as a result of this command, then the image view’s format features must containFORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM - If
OpImageBoxFilterQCOMis used to sample aVkImageViewas a result of this command, then the image view’s format features must containFORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM - If
OpImageBlockMatchSSDQCOMis used to read from anVkImageViewas a result of this command, then the image view’s format features must containFORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM - If
OpImageBlockMatchSADQCOMis used to read from anVkImageViewas a result of this command, then the image view’s format features must containFORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM - If
OpImageBlockMatchSADQCOMor OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation - If
OpImageWeightedSampleQCOM,OpImageBoxFilterQCOM,OpImageBlockMatchWindowSSDQCOM,OpImageBlockMatchWindowSADQCOM,OpImageBlockMatchGatherSSDQCOM,OpImageBlockMatchGatherSADQCOM,OpImageBlockMatchSSDQCOM, orOpImageBlockMatchSADQCOMuses aVkSampleras a result of this command, then the sampler must have been created withSAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM - If any command other than
OpImageWeightedSampleQCOM,OpImageBoxFilterQCOM,OpImageBlockMatchWindowSSDQCOM,OpImageBlockMatchWindowSADQCOM,OpImageBlockMatchGatherSSDQCOM,OpImageBlockMatchGatherSADQCOM,OpImageBlockMatchSSDQCOM, orOpImageBlockMatchSADQCOMuses aVkSampleras a result of this command, then the sampler must not have been created withSAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM - If a
OpImageBlockMatchWindow*QCOMorOpImageBlockMatchGather*QCOMinstruction is used to read from anVkImageViewas a result of this command, then the image view’s format features must containFORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM - If a
OpImageBlockMatchWindow*QCOMorOpImageBlockMatchGather*QCOMinstruction is used to read from anVkImageViewas a result of this command, then the image view’s format must be a single-component format - If a
OpImageBlockMatchWindow*QCOMorOpImageBlockMatchGather*QCOMread from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation - Any shader invocation executed by this command must terminate
- 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, orDESCRIPTOR_TYPE_INPUT_ATTACHMENTis 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 - The current render pass must be compatible with the
renderPassmember of theVkGraphicsPipelineCreateInfostructure specified when creating theVkPipelinebound toPIPELINE_BIND_POINT_GRAPHICS - The subpass index of the current render pass must be equal to the
subpassmember of theVkGraphicsPipelineCreateInfostructure specified when creating theVkPipelinebound toPIPELINE_BIND_POINT_GRAPHICS - If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
- If any shader executed by this pipeline accesses an
OpTypeImagevariable with aDimoperand ofSubpassData, it must be decorated with anInputAttachmentIndexthat corresponds to a valid input attachment in the current subpass - Input attachment views accessed in a subpass must be created with the same
VkFormatas the corresponding subpass definition, and be created with aVkImageViewthat is compatible with the attachment referenced by the subpass'pInputAttachments[InputAttachmentIndex] in the boundVkFramebufferas specified by Fragment Input Attachment Compatibility - Input attachment views accessed in a dynamic render pass with a
InputAttachmentIndexreferenced byVkRenderingInputAttachmentIndexInfo, or noInputAttachmentIndexifVkRenderingInputAttachmentIndexInfo:pDepthInputAttachmentIndexorVkRenderingInputAttachmentIndexInfo:pStencilInputAttachmentIndexareNULL, must be created with aVkImageViewthat is compatible with the corresponding color, depth, or stencil attachment inVkRenderingInfo - Input attachment views accessed in a dynamic render pass via a shader object must have an
InputAttachmentIndexif bothVkRenderingInputAttachmentIndexInfo:pDepthInputAttachmentIndexandVkRenderingInputAttachmentIndexInfo:pStencilInputAttachmentIndexare non-NULL - If an input attachment view accessed in a dynamic render pass via a shader object has an
InputAttachmentIndex, theInputAttachmentIndexmust match an index inVkRenderingInputAttachmentIndexInfo - Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
- If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the
IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXTimage layout, and either:- the
PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXTis set on the bound pipeline or - the last call to
CmdSetAttachmentFeedbackLoopEnableEXTincludedIMAGE_ASPECT_COLOR_BITand- there is no bound graphics pipeline or
- the bound graphics pipeline was created with
DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT
it must not be accessed in any way other than as an attachment by this command
- the
- If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the
IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXTimage layout, and either:- the
PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXTis set on the bound pipeline or - the last call to
CmdSetAttachmentFeedbackLoopEnableEXTincludedIMAGE_ASPECT_DEPTH_BITand- there is no bound graphics pipeline or
- the bound graphics pipeline was created with
DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT
it must not be accessed in any way other than as an attachment by this command
- the
- If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the
IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXTimage layout, and either:- the
PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXTis set on the bound pipeline or - the last call to
CmdSetAttachmentFeedbackLoopEnableEXTincludedIMAGE_ASPECT_STENCIL_BITand- there is no bound graphics pipeline or
- the bound graphics pipeline was created with
DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT
it must not be accessed in any way other than as an attachment by this command
- the
- If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command
- If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment
- If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled
- If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back
writeMaskare not zero, and stencil test is enabled, all stencil ops must beSTENCIL_OP_KEEP - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_VIEWPORTdynamic state enabled thenCmdSetViewportmust 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_SCISSORdynamic state enabled thenCmdSetScissormust 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_WIDTHdynamic state enabled thenCmdSetLineWidthmust 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, and the most recent call to
CmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, and the most recent call toCmdSetPolygonModeEXTin the current command buffer setpolygonModetoPOLYGON_MODE_LINE,CmdSetLineWidthmust 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, and the most recent call to
CmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, and the most recent call toCmdSetPrimitiveTopologyin the current command buffer setprimitiveTopologyto any line topology,CmdSetLineWidthmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If a shader object that outputs line primitives is bound to the
SHADER_STAGE_TESSELLATION_EVALUATION_BITorSHADER_STAGE_GEOMETRY_BITstage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE,CmdSetLineWidthmust 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_DEPTH_BIASdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value ofdepthBiasEnableisTRUE, thenCmdSetDepthBiasorCmdSetDepthBias2EXTmust 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_BLEND_CONSTANTSdynamic state enabled thenCmdSetBlendConstantsmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If a shader object is bound to the
SHADER_STAGE_FRAGMENT_BITstage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, and the most recent call toCmdSetColorBlendEnableEXTin the current command buffer set any element ofpColorBlendEnablestoTRUE, and the most recent call toCmdSetColorBlendEquationEXTin the current command buffer set the same element ofpColorBlendEquationsto aVkColorBlendEquationEXTstructure with anyVkBlendFactormember with a value ofBLEND_FACTOR_CONSTANT_COLOR,BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,BLEND_FACTOR_CONSTANT_ALPHA, orBLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,CmdSetBlendConstantsmust 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_DEPTH_BOUNDSdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value ofdepthBoundsTestEnableisTRUE, thenCmdSetDepthBoundsmust 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_COMPARE_MASKdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value ofstencilTestEnableisTRUE, thenCmdSetStencilCompareMaskmust 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_WRITE_MASKdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value ofstencilTestEnableisTRUE, thenCmdSetStencilWriteMaskmust 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_REFERENCEdynamic state enabled, the current value of andrasterizerDiscardEnableisFALSE, the current value ofstencilTestEnableisTRUE, thenCmdSetStencilReferencemust 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::maxMultiviewInstanceIndex - If the bound graphics pipeline was created with
VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnableset toTRUEand the current subpass has a depth/stencil attachment, then that attachment must have been created with theIMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXTbit set - If the
VK_EXT_sample_locationsextension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXTdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetSampleLocationsEnableEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_EXT_sample_locationsextension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_SAMPLE_LOCATIONS_EXTdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value ofsampleLocationsEnableisTRUE, thenCmdSetSampleLocationsEXTmust 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_MODEdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetCullModemust 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_FACEdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetFrontFacemust 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_DEPTH_TEST_ENABLEdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE,CmdSetDepthTestEnablemust 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_DEPTH_WRITE_ENABLEdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetDepthWriteEnablemust 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_DEPTH_COMPARE_OPdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value ofdepthTestEnableisTRUE, thenCmdSetDepthCompareOpmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
depthBoundsfeature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLEdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetDepthBoundsTestEnablemust 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_ENABLEdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetStencilTestEnablemust 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_OPdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, the current value ofstencilTestEnableisTRUE, thenCmdSetStencilOpmust 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_VIEWPORT_WITH_COUNTdynamic state enabled, and the state is not inherited, thenCmdSetViewportWithCountmust 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_COUNTdynamic state enabled, and the state is not inherited, thenCmdSetScissorWithCountmust 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_COUNTandDYNAMIC_STATE_VIEWPORT_WITH_COUNTdynamic states enabled, and the state is not inherited, then theviewportCountparameter ofvkCmdSetViewportWithCountmust match thescissorCountparameter ofvkCmdSetScissorWithCount - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_VIEWPORT_WITH_COUNTdynamic state enabled, but not theDYNAMIC_STATE_VIEWPORT_W_SCALING_NVdynamic state enabled, then the bound graphics pipeline must have been created withVkPipelineViewportWScalingStateCreateInfoNV::viewportCountgreater or equal to theviewportCountparameter in the last call toCmdSetViewportWithCount - If the
VK_NV_clip_space_w_scalingextension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_VIEWPORT_WITH_COUNTandDYNAMIC_STATE_VIEWPORT_W_SCALING_NVdynamic state enabled, the current value ofviewportWScalingEnableisTRUE, thenCmdSetViewportWScalingNVmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_NV_clip_space_w_scalingextension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_VIEWPORT_WITH_COUNTandDYNAMIC_STATE_VIEWPORT_W_SCALING_NVdynamic state enabled, the current value ofviewportWScalingEnableisTRUE, then theviewportCountparameter in the last call toCmdSetViewportWScalingNVmust be greater than or equal to theviewportCountparameter in the last call toCmdSetViewportWithCount - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_VIEWPORT_WITH_COUNTdynamic state enabled, but not theDYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NVdynamic state enabled, then the bound graphics pipeline must have been created withVkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCountgreater or equal to theviewportCountparameter in the last call toCmdSetViewportWithCount - If the
shadingRateImagefeature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NVand the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetCoarseSampleOrderNVmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
shadingRateImagefeature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_VIEWPORT_WITH_COUNTandDYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NVdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value ofshadingRateImageEnableisTRUE, thenCmdSetViewportShadingRatePaletteNVmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
shadingRateImagefeature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_VIEWPORT_WITH_COUNTandDYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NVdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value ofshadingRateImageEnableisTRUE, then theviewportCountparameter in the last call toCmdSetViewportShadingRatePaletteNVmust be greater than or equal to theviewportCountparameter in the last call toCmdSetViewportWithCount - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_VIEWPORT_WITH_COUNTdynamic state enabled and aVkPipelineViewportSwizzleStateCreateInfoNVstructure chained fromVkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created withVkPipelineViewportSwizzleStateCreateInfoNV::viewportCountgreater or equal to theviewportCountparameter in the last call toCmdSetViewportWithCount - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_VIEWPORT_WITH_COUNTdynamic state enabled and aVkPipelineViewportExclusiveScissorStateCreateInfoNVstructure chained fromVkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created withVkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCountgreater or equal to theviewportCountparameter in the last call toCmdSetViewportWithCount - If the
exclusiveScissorfeature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NVdynamic state enabled, thenCmdSetExclusiveScissorEnableNVmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
exclusiveScissorfeature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_EXCLUSIVE_SCISSOR_NVdynamic state enabled, and the most recent call toCmdSetExclusiveScissorEnableNVin the current command buffer set any element ofpExclusiveScissorEnablestoTRUE, thenCmdSetExclusiveScissorNVmust 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_RASTERIZER_DISCARD_ENABLEdynamic state enabled, thenCmdSetRasterizerDiscardEnablemust 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_DEPTH_BIAS_ENABLEdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetDepthBiasEnablemust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If a shader object is bound to the
SHADER_STAGE_FRAGMENT_BITor a graphics pipeline is bound which was created with theDYNAMIC_STATE_LOGIC_OP_EXTdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value oflogicOpEnableisTRUE, thenCmdSetLogicOpEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
primitiveFragmentShadingRateWithMultipleViewportslimit is not supported, the bound graphics pipeline was created with theDYNAMIC_STATE_VIEWPORT_WITH_COUNTdynamic state enabled, and any of the shader stages of the bound graphics pipeline write to thePrimitiveShadingRateKHRbuilt-in, thenCmdSetViewportWithCountmust have been called in the current command buffer prior to this drawing command, and theviewportCountparameter ofvkCmdSetViewportWithCountmust be 1 - If the
primitiveFragmentShadingRateWithMultipleViewportslimit is not supported, and any shader object bound to a graphics stage writes to thePrimitiveShadingRateKHRbuilt-in, thenCmdSetViewportWithCountmust have been called in the current command buffer prior to this drawing command, and theviewportCountparameter ofvkCmdSetViewportWithCountmust be 1 - If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain
FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then theblendEnablemember of the corresponding element of thepAttachmentsmember ofpColorBlendStatemust beFALSE - If a shader object is bound to the
SHADER_STAGE_FRAGMENT_BITstage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, then for each color attachment in the render pass, if the corresponding image view’s format features do not containFORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member ofpColorBlendEnablesin the most recent call tovkCmdSetColorBlendEnableEXTin the current command buffer that affected that attachment index must have beenFALSE - If rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled:
- the
VK_AMD_mixed_attachment_samplesextension - the
VK_NV_framebuffer_mixed_samplesextension - the
multisampledRenderToSingleSampledfeature
then
rasterizationSamplesfor the bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments - the
- If a shader object is bound to any graphics stage, and the most recent call to
CmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, and none of the following is enabled:- the
VK_AMD_mixed_attachment_samplesextension - the
VK_NV_framebuffer_mixed_samplesextension - the
multisampledRenderToSingleSampledfeature
then the most recent call to
CmdSetRasterizationSamplesEXTin the current command buffer must have setrasterizationSamplesto be the same as the number of samples for the current render pass color and/or depth/stencil attachments - the
- If a shader object is bound to any graphics stage, the current render pass instance must have been begun with
CmdBeginRendering - If the current render pass instance was begun with
CmdBeginRendering, theimageViewmember ofpDepthAttachmentis notNULL_HANDLE, and thelayoutmember ofpDepthAttachmentisIMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment - If the current render pass instance was begun with
CmdBeginRendering, theimageViewmember ofpStencilAttachmentis notNULL_HANDLE, and thelayoutmember ofpStencilAttachmentisIMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment - If the current render pass instance was begun with
CmdBeginRendering, theimageViewmember ofpDepthAttachmentis notNULL_HANDLE, and thelayoutmember ofpDepthAttachmentisIMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment - If the current render pass instance was begun with
CmdBeginRendering, theimageViewmember ofpStencilAttachmentis notNULL_HANDLE, and thelayoutmember ofpStencilAttachmentisIMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment - If the current render pass instance was begun with
CmdBeginRendering, theimageViewmember ofpDepthAttachmentis notNULL_HANDLE, and thelayoutmember ofpDepthAttachmentisIMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment - If the current render pass instance was begun with
CmdBeginRendering, theimageViewmember ofpStencilAttachmentis notNULL_HANDLE, and thelayoutmember ofpStencilAttachmentisIMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment - If the current render pass instance was begun with
CmdBeginRendering, the bound graphics pipeline must have been created with aVkPipelineRenderingCreateInfo::viewMaskequal toVkRenderingInfo::viewMask - If the
dynamicRenderingUnusedAttachmentsfeature is not enabled and the current render pass instance was begun withCmdBeginRendering, the bound graphics pipeline must have been created with aVkPipelineRenderingCreateInfo::colorAttachmentCountequal toVkRenderingInfo::colorAttachmentCount - If the
dynamicRenderingUnusedAttachmentsfeature is not enabled, and the current render pass instance was begun withCmdBeginRenderingandVkRenderingInfo::colorAttachmentCountgreater than 0, then each element of theVkRenderingInfo::pColorAttachmentsarray with animageViewnot equal toNULL_HANDLEmust have been created with aVkFormatequal to the corresponding element ofVkPipelineRenderingCreateInfo::pColorAttachmentFormatsused to create the bound graphics pipeline - If the
dynamicRenderingUnusedAttachmentsfeature is not enabled, and the current render pass instance was begun withCmdBeginRenderingandVkRenderingInfo::colorAttachmentCountgreater than 0, then each element of theVkRenderingInfo::pColorAttachmentsarray with animageViewequal toNULL_HANDLEmust have the corresponding element ofVkPipelineRenderingCreateInfo::pColorAttachmentFormatsused to create the bound pipeline equal toFORMAT_UNDEFINED - If the
dynamicRenderingUnusedAttachmentsfeature is enabled, and the current render pass instance was begun withCmdBeginRenderingandVkRenderingInfo::colorAttachmentCountgreater than 0, then each element of theVkRenderingInfo::pColorAttachmentsarray with animageViewnot equal toNULL_HANDLEmust have been created with aVkFormatequal to the corresponding element ofVkPipelineRenderingCreateInfo::pColorAttachmentFormatsused to create the bound graphics pipeline, or the corresponding element ofVkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must beFORMAT_UNDEFINED - If the current render pass instance was begun with
CmdBeginRendering, with aVkRenderingInfo::colorAttachmentCountequal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode ofRESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of theVkRenderingInfo::pColorAttachmentsarray with aresolveImageViewnot equal toNULL_HANDLEmust have been created with an image created with aVkExternalFormatANDROID::externalFormatvalue equal to theVkExternalFormatANDROID::externalFormatvalue used to create the bound graphics pipeline - If there is no shader object bound to any graphics stage, the current render pass instance was begun with
CmdBeginRenderingand aVkRenderingInfo::colorAttachmentCountequal to 1, and a color attachment with a resolve mode ofRESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of theVkRenderingInfo::pColorAttachmentsarray with aimageViewnot equal toNULL_HANDLEmust have been created with an image created with aVkExternalFormatANDROID::externalFormatvalue equal to theVkExternalFormatANDROID::externalFormatvalue used to create the bound graphics pipeline - If the current render pass instance was begun with
CmdBeginRendering, there is no shader object bound to any graphics stage, and the bound graphics pipeline was created with a non-zeroVkExternalFormatANDROID::externalFormatvalue and with theDYNAMIC_STATE_COLOR_BLEND_ENABLE_EXTdynamic state enabled, thenCmdSetColorBlendEnableEXTmust have set the blend enable toFALSEprior to this drawing command - If the current render pass instance was begun with
CmdBeginRendering, there is no shader object bound to any graphics stage, and the bound graphics pipeline was created with a non-zeroVkExternalFormatANDROID::externalFormatvalue and with theDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXTdynamic state enabled, thenCmdSetRasterizationSamplesEXTmust have setrasterizationSamplestoSAMPLE_COUNT_1_BITprior to this drawing command - If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the
RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROIDresolve mode, thenCmdSetColorBlendEnableEXTmust have set blend enable toFALSEprior to this drawing command - If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the
RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROIDresolve mode, thenCmdSetRasterizationSamplesEXTmust have setrasterizationSamplestoSAMPLE_COUNT_1_BITprior to this drawing command - If the current render pass instance was begun with
CmdBeginRendering, there is no shader object bound to any graphics stage, and the bound graphics pipeline was created with a non-zeroVkExternalFormatANDROID::externalFormatvalue and with theDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRdynamic state enabled, thenCmdSetFragmentShadingRateKHRmust have setpFragmentSize→widthto 1 prior to this drawing command - If the current render pass instance was begun with
CmdBeginRendering, there is no shader object bound to any graphics stage, and the bound graphics pipeline was created with a non-zeroVkExternalFormatANDROID::externalFormatvalue and with theDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRdynamic state enabled, thenCmdSetFragmentShadingRateKHRmust have setpFragmentSize→heightto 1 prior to this drawing command - If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the
RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROIDresolve mode, thenCmdSetFragmentShadingRateKHRmust have setpFragmentSize→widthto 1 prior to this drawing command - If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the
RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROIDresolve mode, thenCmdSetFragmentShadingRateKHRmust have setpFragmentSize→heightto 1 prior to this drawing command - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXTdynamic state enabled thenCmdSetColorWriteEnableEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
colorWriteEnablefeature is enabled, and a shader object is bound to theSHADER_STAGE_FRAGMENT_BITstage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, thenCmdSetColorWriteEnableEXTmust 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_WRITE_ENABLE_EXTdynamic state enabled then theattachmentCountparameter ofvkCmdSetColorWriteEnableEXTmust be greater than or equal to theVkPipelineColorBlendStateCreateInfo::attachmentCountof the bound graphics pipeline - If the
colorWriteEnablefeature is enabled, and a shader object is bound to theSHADER_STAGE_FRAGMENT_BITstage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, then theattachmentCountparameter of most recent call tovkCmdSetColorWriteEnableEXTin 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_EXTdynamic state enabled thenCmdSetDiscardRectangleEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle inVkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount - If the
VK_EXT_discard_rectanglesextension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXTdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetDiscardRectangleEnableEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_EXT_discard_rectanglesextension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXTdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value ofdiscardRectangleEnableisTRUE, thenCmdSetDiscardRectangleModeEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_EXT_discard_rectanglesextension is enabled, and a shader object is bound to any graphics stage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, and the most recent call toCmdSetDiscardRectangleEnableEXTin the current command buffer setdiscardRectangleEnabletoTRUE, thenCmdSetDiscardRectangleEXTmust 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, thedynamicRenderingUnusedAttachmentsfeature is not enabled, andVkRenderingInfo::pDepthAttachment→imageViewwasNULL_HANDLE, the value ofVkPipelineRenderingCreateInfo::depthAttachmentFormatused to create the bound graphics pipeline must be equal toFORMAT_UNDEFINED - If current render pass instance was begun with
CmdBeginRendering, thedynamicRenderingUnusedAttachmentsfeature is not enabled, andVkRenderingInfo::pDepthAttachment→imageViewwas notNULL_HANDLE, the value ofVkPipelineRenderingCreateInfo::depthAttachmentFormatused to create the bound graphics pipeline must be equal to theVkFormatused to createVkRenderingInfo::pDepthAttachment→imageView - If the current render pass instance was begun with
CmdBeginRendering, thedynamicRenderingUnusedAttachmentsfeature is enabled,VkRenderingInfo::pDepthAttachment→imageViewwas notNULL_HANDLE, and the value ofVkPipelineRenderingCreateInfo::depthAttachmentFormatused to create the bound graphics pipeline was not equal to theVkFormatused to createVkRenderingInfo::pDepthAttachment→imageView, the value of the format must beFORMAT_UNDEFINED - If the current render pass instance was begun with
CmdBeginRendering, thedynamicRenderingUnusedAttachmentsfeature is not enabled, andVkRenderingInfo::pStencilAttachment→imageViewwasNULL_HANDLE, the value ofVkPipelineRenderingCreateInfo::stencilAttachmentFormatused to create the bound graphics pipeline must be equal toFORMAT_UNDEFINED - If current render pass instance was begun with
CmdBeginRendering, thedynamicRenderingUnusedAttachmentsfeature is not enabled, andVkRenderingInfo::pStencilAttachment→imageViewwas notNULL_HANDLE, the value ofVkPipelineRenderingCreateInfo::stencilAttachmentFormatused to create the bound graphics pipeline must be equal to theVkFormatused to createVkRenderingInfo::pStencilAttachment→imageView - If the current render pass instance was begun with
CmdBeginRendering, thedynamicRenderingUnusedAttachmentsfeature is enabled,VkRenderingInfo::pStencilAttachment→imageViewwas notNULL_HANDLE, and the value ofVkPipelineRenderingCreateInfo::stencilAttachmentFormatused to create the bound graphics pipeline was not equal to theVkFormatused to createVkRenderingInfo::pStencilAttachment→imageView, the value of the format must beFORMAT_UNDEFINED - If the current render pass instance was begun with
CmdBeginRenderingandVkRenderingFragmentShadingRateAttachmentInfoKHR::imageViewwas notNULL_HANDLE, the bound graphics pipeline must have been created withPIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR - If the current render pass instance was begun with
CmdBeginRenderingandVkRenderingFragmentDensityMapAttachmentInfoEXT::imageViewwas notNULL_HANDLE, the bound graphics pipeline must have been created withPIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT - If the bound pipeline was created with a
VkAttachmentSampleCountInfoAMDorVkAttachmentSampleCountInfoNVstructure, and the current render pass instance was begun withCmdBeginRenderingwith aVkRenderingInfo::colorAttachmentCountparameter greater than 0, then each element of theVkRenderingInfo::pColorAttachmentsarray with aimageViewnot equal toNULL_HANDLEmust have been created with a sample count equal to the corresponding element of thepColorAttachmentSamplesmember ofVkAttachmentSampleCountInfoAMDorVkAttachmentSampleCountInfoNVused to create the bound graphics pipeline - If the current render pass instance was begun with
CmdBeginRendering, the bound pipeline was created with aVkAttachmentSampleCountInfoAMDorVkAttachmentSampleCountInfoNVstructure, andVkRenderingInfo::pDepthAttachment→imageViewwas notNULL_HANDLE, the value of thedepthStencilAttachmentSamplesmember ofVkAttachmentSampleCountInfoAMDorVkAttachmentSampleCountInfoNVused to create the bound graphics pipeline must be equal to the sample count used to createVkRenderingInfo::pDepthAttachment→imageView - If the current render pass instance was begun with
CmdBeginRendering, the bound pipeline was created with aVkAttachmentSampleCountInfoAMDorVkAttachmentSampleCountInfoNVstructure, andVkRenderingInfo::pStencilAttachment→imageViewwas notNULL_HANDLE, the value of thedepthStencilAttachmentSamplesmember ofVkAttachmentSampleCountInfoAMDorVkAttachmentSampleCountInfoNVused to create the bound graphics pipeline must be equal to the sample count used to createVkRenderingInfo::pStencilAttachment→imageView - If the bound pipeline was created without a
VkAttachmentSampleCountInfoAMDorVkAttachmentSampleCountInfoNVstructure, and themultisampledRenderToSingleSampledfeature is not enabled, and the current render pass instance was begun withCmdBeginRenderingwith aVkRenderingInfo::colorAttachmentCountparameter greater than 0, then each element of theVkRenderingInfo::pColorAttachmentsarray with aimageViewnot equal toNULL_HANDLEmust have been created with a sample count equal to the value ofrasterizationSamplesfor the bound graphics pipeline - If the bound pipeline was created without a
VkAttachmentSampleCountInfoAMDorVkAttachmentSampleCountInfoNVstructure, and themultisampledRenderToSingleSampledfeature is not enabled, andVkRenderingInfo::pDepthAttachment→imageViewwas notNULL_HANDLE, the value ofrasterizationSamplesfor the bound graphics pipeline must be equal to the sample count used to createVkRenderingInfo::pDepthAttachment→imageView - If the bound pipeline was created without a
VkAttachmentSampleCountInfoAMDorVkAttachmentSampleCountInfoNVstructure, and themultisampledRenderToSingleSampledfeature is not enabled, andVkRenderingInfo::pStencilAttachment→imageViewwas notNULL_HANDLE, the value ofrasterizationSamplesfor the bound graphics pipeline must be equal to the sample count used to createVkRenderingInfo::pStencilAttachment→imageView - If this command has been called inside a render pass instance started with
CmdBeginRendering, and thepNextchain ofVkRenderingInfoincludes aVkMultisampledRenderToSingleSampledInfoEXTstructure withmultisampledRenderToSingleSampledEnableequal toTRUE, then the value ofrasterizationSamplesfor the bound graphics pipeline must be equal toVkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples - If the current render pass instance was begun with
CmdBeginRendering, the bound pipeline must have been created with aVkGraphicsPipelineCreateInfo::renderPassequal toNULL_HANDLE - If the current render pass instance was begun with
CmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of theVkRenderingInfo::pColorAttachments→imageViewwas notNULL_HANDLE, then the corresponding element ofVkPipelineRenderingCreateInfo::pColorAttachmentFormatsused to create the pipeline must not beFORMAT_UNDEFINED - If the current render pass instance was begun with
CmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and theVkRenderingInfo::pDepthAttachment→imageViewwas notNULL_HANDLE, then theVkPipelineRenderingCreateInfo::depthAttachmentFormatused to create the pipeline must not beFORMAT_UNDEFINED - If the current render pass instance was begun with
CmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and theVkRenderingInfo::pStencilAttachment→imageViewwas notNULL_HANDLE, then theVkPipelineRenderingCreateInfo::stencilAttachmentFormatused to create the pipeline must not beFORMAT_UNDEFINED - If the
primitivesGeneratedQueryWithRasterizerDiscardfeature is not enabled and theQUERY_TYPE_PRIMITIVES_GENERATED_EXTquery is active, rasterization discard must not be enabled - If the
primitivesGeneratedQueryWithNonZeroStreamsfeature is not enabled and theQUERY_TYPE_PRIMITIVES_GENERATED_EXTquery is active, the bound graphics pipeline must not have been created with a non-zero value inVkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream - If the
depthClampfeature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXTdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetDepthClampEnableEXTmust 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_POLYGON_MODE_EXTdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetPolygonModeEXTmust 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_RASTERIZATION_SAMPLES_EXTdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetRasterizationSamplesEXTmust 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_SAMPLE_MASK_EXTdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetSampleMaskEXTmust 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_ALPHA_TO_COVERAGE_ENABLE_EXTdynamic state enabled, andalphaToCoverageEnablewasTRUEin the last call toCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alphaComponentword inLocation0 atIndex0 - If a shader object is bound to any graphics stage, and the most recent call to
CmdSetAlphaToCoverageEnableEXTin the current command buffer setalphaToCoverageEnabletoTRUE, then the Fragment Output Interface must contain a variable for the alphaComponentword inLocation0 atIndex0 - If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the
DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXTdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetAlphaToCoverageEnableEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
alphaToOnefeature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXTdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetAlphaToOneEnableEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
logicOpfeature is enabled, a shader object is bound to theSHADER_STAGE_FRAGMENT_BITstage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_LOGIC_OP_ENABLE_EXTdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetLogicOpEnableEXTmust 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_ENABLE_EXTdynamic state enabled thenCmdSetColorBlendEnableEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If a shader object is bound to the
SHADER_STAGE_FRAGMENT_BITstage, and both the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSEand there are color attachments bound, thenCmdSetColorBlendEnableEXTmust 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_EQUATION_EXTdynamic state enabled thenCmdSetColorBlendEquationEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If a shader object is bound to the
SHADER_STAGE_FRAGMENT_BITstage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, and the most recent call toCmdSetColorBlendEnableEXTfor any attachment set that attachment’s value inpColorBlendEnablestoTRUE, thenCmdSetColorBlendEquationEXTmust 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_WRITE_MASK_EXTdynamic state enabled thenCmdSetColorWriteMaskEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If a shader object is bound to the
SHADER_STAGE_FRAGMENT_BITstage, and both the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSEand there are color attachments bound, thenCmdSetColorWriteMaskEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
geometryStreamsfeature is enabled, and a shader object is bound to theSHADER_STAGE_GEOMETRY_BITstage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_RASTERIZATION_STREAM_EXTdynamic state enabled, thenCmdSetRasterizationStreamEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_EXT_conservative_rasterizationextension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXTdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetConservativeRasterizationModeEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_EXT_conservative_rasterizationextension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXTdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value ofconservativeRasterizationModeisCONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, thenCmdSetExtraPrimitiveOverestimationSizeEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
depthClipEnablefeature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXTdynamic state, thenCmdSetDepthClipEnableEXTmust 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_EXTdynamic state enabled thenCmdSetColorBlendAdvancedEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_EXT_blend_operation_advancedextension is enabled, and a shader object is bound to theSHADER_STAGE_FRAGMENT_BITstage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, then at least one ofCmdSetColorBlendEquationEXTandCmdSetColorBlendAdvancedEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_EXT_provoking_vertexextension is enabled, a shader object is bound to theSHADER_STAGE_VERTEX_BITstage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXTdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetProvokingVertexModeEXTmust 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_EXTdynamic state enabled thenCmdSetLineRasterizationModeEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If any of the
stippledRectangularLines,stippledBresenhamLinesorstippledSmoothLinesfeatures are enabled, and a shader object is bound to any graphics stage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, and the most recent call toCmdSetPolygonModeEXTin the current command buffer setpolygonModetoPOLYGON_MODE_LINE, thenCmdSetLineRasterizationModeEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If any of the
stippledRectangularLines,stippledBresenhamLinesorstippledSmoothLinesfeatures are enabled, and a shader object is bound to theSHADER_STAGE_VERTEX_BITstage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, and the most recent call toCmdSetPrimitiveTopologyin the current command buffer setprimitiveTopologyto any line topology, thenCmdSetLineRasterizationModeEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If any of the
stippledRectangularLines,stippledBresenhamLinesorstippledSmoothLinesfeatures are enabled, and a shader object that outputs line primitives is bound to theSHADER_STAGE_TESSELLATION_EVALUATION_BITorSHADER_STAGE_GEOMETRY_BITstage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, thenCmdSetLineRasterizationModeEXTmust 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_EXTdynamic state enabled thenCmdSetLineStippleEnableEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If any of the
stippledRectangularLines,stippledBresenhamLinesorstippledSmoothLinesfeatures are enabled, and a shader object is bound to any graphics stage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, and the most recent call toCmdSetPolygonModeEXTin the current command buffer setpolygonModetoPOLYGON_MODE_LINE, thenCmdSetLineStippleEnableEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If any of the
stippledRectangularLines,stippledBresenhamLinesorstippledSmoothLinesfeatures are enabled, and a shader object is bound to theSHADER_STAGE_VERTEX_BITstage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, and the most recent call toCmdSetPrimitiveTopologyin the current command buffer setprimitiveTopologyto any line topology, thenCmdSetLineStippleEnableEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If any of the
stippledRectangularLines,stippledBresenhamLinesorstippledSmoothLinesfeatures are enabled, and a shader object that outputs line primitives is bound to theSHADER_STAGE_TESSELLATION_EVALUATION_BITorSHADER_STAGE_GEOMETRY_BITstage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, thenCmdSetLineStippleEnableEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If any of the
stippledRectangularLines,stippledBresenhamLinesorstippledSmoothLinesfeatures are enabled and a shader object is bound to any graphics stage, or a bound graphics pipeline state was created with theDYNAMIC_STATE_LINE_STIPPLEdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value ofstippledLineEnableisTRUE, thenCmdSetLineStipplemust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
depthClipControlfeature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXTdynamic state enabled, thenCmdSetDepthClipNegativeOneToOneEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
depthClampControlfeature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXTdynamic state enabled, and the current value ofdepthClampEnableisTRUE, thenCmdSetDepthClampRangeEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_NV_clip_space_w_scalingextension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NVdynamic state enabled, thenCmdSetViewportWScalingEnableNVmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_NV_viewport_swizzleextension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_VIEWPORT_SWIZZLE_NVdynamic state enabled, thenCmdSetViewportSwizzleNVmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_NV_fragment_coverage_to_colorextension is enabled, a shader object is bound to theSHADER_STAGE_FRAGMENT_BITstage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NVdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetCoverageToColorEnableNVmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_NV_fragment_coverage_to_colorextension is enabled, a shader object is bound to theSHADER_STAGE_FRAGMENT_BITstage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NVdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value ofcoverageToColorEnableisTRUE, thenCmdSetCoverageToColorLocationNVmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_NV_framebuffer_mixed_samplesextension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_COVERAGE_MODULATION_MODE_NVdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetCoverageModulationModeNVmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_NV_framebuffer_mixed_samplesextension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NVdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value ofcoverageModulationModeis any value other thanCOVERAGE_MODULATION_MODE_NONE_NV, thenCmdSetCoverageModulationTableEnableNVmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_NV_framebuffer_mixed_samplesextension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NVdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value ofcoverageModulationTableEnableisTRUE, thenCmdSetCoverageModulationTableNVmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
shadingRateImagefeature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NVdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetShadingRateImageEnableNVmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
pipelineFragmentShadingRatefeature is enabled, a shader object is bound to theSHADER_STAGE_FRAGMENT_BITstage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetFragmentShadingRateKHRmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
representativeFragmentTestfeature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NVdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetRepresentativeFragmentTestEnableNVmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
coverageReductionModefeature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NVdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetCoverageReductionModeNVmust 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_ENABLE_EXTstate enabled and the last call toCmdSetColorBlendEnableEXTsetpColorBlendEnablesfor any attachment toTRUE, then for those attachments in the subpass the corresponding image view’s format features must containFORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXTstate enabled, and the current subpass does not use any color and/or depth/stencil attachments, then therasterizationSamplesin the last call toCmdSetRasterizationSamplesEXTmust follow the rules for a zero-attachment subpass - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_SAMPLE_MASK_EXTstate enabled and theDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXTstate disabled, then thesamplesparameter in the last call toCmdSetSampleMaskEXTmust be greater or equal to theVkPipelineMultisampleStateCreateInfo::rasterizationSamplesparameter used to create the bound graphics pipeline - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_SAMPLE_MASK_EXTstate andDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXTstates enabled, then thesamplesparameter in the last call toCmdSetSampleMaskEXTmust be greater or equal to therasterizationSamplesparameter in the last call toCmdSetRasterizationSamplesEXT - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXTstate enabled, and themultisampledRenderToSingleSampledfeature is not enabled, and neither theVK_AMD_mixed_attachment_samplesnor theVK_NV_framebuffer_mixed_samplesextensions are enabled, then therasterizationSamplesin the last call toCmdSetRasterizationSamplesEXTmust 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_EXTstate enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes aVkMultisampledRenderToSingleSampledInfoEXTstructure withmultisampledRenderToSingleSampledEnableequal toTRUE, then therasterizationSamplesin the last call toCmdSetRasterizationSamplesEXTmust be the same as therasterizationSamplesmember of that structure - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXTdynamic state enabled thenCmdSetColorBlendEnableEXTmust have been called in the current command buffer prior to this drawing command, and the attachments specified by thefirstAttachmentandattachmentCountparameters ofvkCmdSetColorBlendEnableEXTcalls must specify an enable for all active color attachments in the current subpass - If a shader object is bound to the
SHADER_STAGE_FRAGMENT_BITstage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, thenCmdSetColorBlendEnableEXTmust have been called in the current command buffer prior to this drawing command, and the attachments specified by thefirstAttachmentandattachmentCountparameters ofvkCmdSetColorBlendEnableEXTcalls must specify an enable for all active color attachments in the current subpass - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXTdynamic state enabled thenCmdSetColorBlendEquationEXTmust have been called in the current command buffer prior to this drawing command, and the attachments specified by thefirstAttachmentandattachmentCountparameters ofvkCmdSetColorBlendEquationEXTcalls must specify the blend equations for all active color attachments in the current subpass where blending is enabled - If a shader object is bound to the
SHADER_STAGE_FRAGMENT_BITstage, and both the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSEand there are color attachments bound, thenCmdSetColorBlendEquationEXTmust have been called in the current command buffer prior to this drawing command, and the attachments specified by thefirstAttachmentandattachmentCountparameters ofvkCmdSetColorBlendEquationEXTcalls must specify the blend equations for all active color attachments in the current subpass where blending is enabled - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_COLOR_WRITE_MASK_EXTdynamic state enabled thenCmdSetColorWriteMaskEXTmust have been called in the current command buffer prior to this drawing command, and the attachments specified by thefirstAttachmentandattachmentCountparameters ofvkCmdSetColorWriteMaskEXTcalls must specify the color write mask for all active color attachments in the current subpass - If a shader object is bound to the
SHADER_STAGE_FRAGMENT_BITstage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, thenCmdSetColorWriteMaskEXTmust have been called in the current command buffer prior to this drawing command, and the attachments specified by thefirstAttachmentandattachmentCountparameters ofvkCmdSetColorWriteMaskEXTcalls must specify the color write mask for all active color attachments in the current subpass - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXTdynamic state enabled thenCmdSetColorBlendAdvancedEXTmust have been called in the current command buffer prior to this drawing command, and the attachments specified by thefirstAttachmentandattachmentCountparameters ofvkCmdSetColorBlendAdvancedEXTcalls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXTandDYNAMIC_STATE_COLOR_BLEND_ENABLE_EXTdynamic states enabled and the last calls toCmdSetColorBlendEnableEXTandCmdSetColorBlendAdvancedEXThave enabled advanced blending, then the number of active color attachments in the current subpass must not exceedadvancedBlendMaxColorAttachments - If the
primitivesGeneratedQueryWithNonZeroStreamsfeature is not enabled and theQUERY_TYPE_PRIMITIVES_GENERATED_EXTquery is active, and the bound graphics pipeline was created withDYNAMIC_STATE_RASTERIZATION_STREAM_EXTstate enabled, the last call toCmdSetRasterizationStreamEXTmust have set therasterizationStreamto zero - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_SAMPLE_LOCATIONS_EXTstate enabled and theDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXTstate disabled, and the current value ofsampleLocationsEnableisTRUE, then thesampleLocationsPerPixelmember ofpSampleLocationsInfoin the last call toCmdSetSampleLocationsEXTmust equal therasterizationSamplesmember of theVkPipelineMultisampleStateCreateInfostructure the bound graphics pipeline has been created with - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_SAMPLE_LOCATIONS_EXTstate enabled and theDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXTstate enabled, and the current value ofsampleLocationsEnableisTRUE, then thesampleLocationsPerPixelmember ofpSampleLocationsInfoin the last call toCmdSetSampleLocationsEXTmust equal therasterizationSamplesparameter of the last call toCmdSetRasterizationSamplesEXT - If a shader object is bound to the
SHADER_STAGE_FRAGMENT_BITstage, or the bound graphics pipeline was created with theDYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXTstate enabled, andsampleLocationsEnablewasTRUEin the last call toCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with theIMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXTbit set - If a shader object is bound to the
SHADER_STAGE_FRAGMENT_BITstage, or the bound graphics pipeline state was created with theDYNAMIC_STATE_SAMPLE_LOCATIONS_EXTstate enabled and theDYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXTstate enabled, and ifsampleLocationsEnablewasTRUEin the last call toCmdSetSampleLocationsEnableEXT, then thesampleLocationsInfo.sampleLocationGridSize.widthin the last call toCmdSetSampleLocationsEXTmust evenly divideVkMultisamplePropertiesEXT::sampleLocationGridSize.widthas returned byGetPhysicalDeviceMultisamplePropertiesEXTwith asamplesparameter equalingrasterizationSamples - If a shader object is bound to the
SHADER_STAGE_FRAGMENT_BITstage, or the bound graphics pipeline state was created with theDYNAMIC_STATE_SAMPLE_LOCATIONS_EXTstate enabled and theDYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXTstate enabled, and ifsampleLocationsEnablewasTRUEin the last call toCmdSetSampleLocationsEnableEXT, then thesampleLocationsInfo.sampleLocationGridSize.heightin the last call toCmdSetSampleLocationsEXTmust evenly divideVkMultisamplePropertiesEXT::sampleLocationGridSize.heightas returned byGetPhysicalDeviceMultisamplePropertiesEXTwith asamplesparameter equalingrasterizationSamples - If a shader object is bound to the
SHADER_STAGE_FRAGMENT_BITstage, or the bound graphics pipeline state was created with theDYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXTstate enabled, and ifsampleLocationsEnablewasTRUEin the last call toCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instructionInterpolateAtSample - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_SAMPLE_LOCATIONS_EXTstate disabled and theDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXTstate enabled, and the current value ofsampleLocationsEnableisTRUE, thensampleLocationsInfo.sampleLocationGridSize.widthmust evenly divideVkMultisamplePropertiesEXT::sampleLocationGridSize.widthas returned byGetPhysicalDeviceMultisamplePropertiesEXTwith asamplesparameter equaling the value ofrasterizationSamplesin the last call toCmdSetRasterizationSamplesEXT - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_SAMPLE_LOCATIONS_EXTstate disabled and theDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXTstate enabled, and the current value ofsampleLocationsEnableisTRUE, thensampleLocationsInfo.sampleLocationGridSize.heightmust evenly divideVkMultisamplePropertiesEXT::sampleLocationGridSize.heightas returned byGetPhysicalDeviceMultisamplePropertiesEXTwith asamplesparameter equaling the value ofrasterizationSamplesin the last call toCmdSetRasterizationSamplesEXT - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_SAMPLE_LOCATIONS_EXTstate disabled and theDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXTstate enabled, and the current value ofsampleLocationsEnableisTRUE, thensampleLocationsInfo.sampleLocationsPerPixelmust equalrasterizationSamplesin the last call toCmdSetRasterizationSamplesEXT - If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the
DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NVstate enabled, and the last call toCmdSetCoverageModulationTableEnableNVsetcoverageModulationTableEnabletoTRUE, then thecoverageModulationTableCountparameter in the last call toCmdSetCoverageModulationTableNVmust equal the currentrasterizationSamplesdivided by the number of color samples in the current subpass - If the
VK_NV_framebuffer_mixed_samplesextension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the bound pipeline, then the currentrasterizationSamplesmust be the same as the sample count of the depth/stencil attachment - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NVstate enabled and the last call toCmdSetCoverageToColorEnableNVset thecoverageToColorEnabletoTRUE, then the current subpass must have a color attachment at the location selected by the last call toCmdSetCoverageToColorLocationNVcoverageToColorLocation, with aVkFormatofFORMAT_R8_UINT,FORMAT_R8_SINT,FORMAT_R16_UINT,FORMAT_R16_SINT,FORMAT_R32_UINT, orFORMAT_R32_SINT - If the
VK_NV_fragment_coverage_to_colorextension is enabled, and a shader object is bound to theSHADER_STAGE_FRAGMENT_BITstage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, and the last call toCmdSetCoverageToColorEnableNVset thecoverageToColorEnabletoTRUE, then the current subpass must have a color attachment at the location selected by the last call toCmdSetCoverageToColorLocationNVcoverageToColorLocation, with aVkFormatofFORMAT_R8_UINT,FORMAT_R8_SINT,FORMAT_R16_UINT,FORMAT_R16_SINT,FORMAT_R32_UINT, orFORMAT_R32_SINT - If this
VK_NV_coverage_reduction_modeextension is enabled, the bound graphics pipeline state was created with theDYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NVandDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXTstates enabled, the current coverage reduction modecoverageReductionMode, then the currentrasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned byGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_VIEWPORT_WITH_COUNTdynamic state enabled, but not theDYNAMIC_STATE_VIEWPORT_SWIZZLE_NVdynamic state enabled, then the bound graphics pipeline must have been created withVkPipelineViewportSwizzleStateCreateInfoNV::viewportCountgreater or equal to theviewportCountparameter in the last call toCmdSetViewportWithCount - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_VIEWPORT_WITH_COUNTandDYNAMIC_STATE_VIEWPORT_SWIZZLE_NVdynamic states enabled then theviewportCountparameter in the last call toCmdSetViewportSwizzleNVmust be greater than or equal to theviewportCountparameter in the last call toCmdSetViewportWithCount - If the
VK_NV_viewport_swizzleextension is enabled, and a shader object is bound to any graphics stage, then theviewportCountparameter in the last call toCmdSetViewportSwizzleNVmust be greater than or equal to theviewportCountparameter in the last call toCmdSetViewportWithCount - If the
VK_NV_framebuffer_mixed_samplesextension is enabled, and if the current subpass has any color attachments andrasterizationSamplesof the last call toCmdSetRasterizationSamplesEXTis greater than the number of color samples, then the pipelinesampleShadingEnablemust beFALSE - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXTorDYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXTdynamic states enabled, and if the currentstippledLineEnablestate isTRUEand the currentlineRasterizationModestate isLINE_RASTERIZATION_MODE_RECTANGULAR, then thestippledRectangularLinesfeature must be enabled - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXTorDYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXTdynamic states enabled, and if the currentstippledLineEnablestate isTRUEand the currentlineRasterizationModestate isLINE_RASTERIZATION_MODE_BRESENHAM, then thestippledBresenhamLinesfeature must be enabled - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXTorDYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXTdynamic states enabled, and if the currentstippledLineEnablestate isTRUEand the currentlineRasterizationModestate isLINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then thestippledSmoothLinesfeature must be enabled - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXTorDYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXTdynamic states enabled, and if the currentstippledLineEnablestate isTRUEand the currentlineRasterizationModestate isLINE_RASTERIZATION_MODE_DEFAULT, then thestippledRectangularLinesfeature must be enabled andVkPhysicalDeviceLimits::strictLinesmust beTRUE - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXTdynamic state enabled,conservativePointAndLineRasterizationis not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then theconservativeRasterizationModeset by the last call toCmdSetConservativeRasterizationModeEXTmust beCONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT - If the bound pipeline was created with the
VkPipelineShaderStageCreateInfo::stagemember of an element ofVkGraphicsPipelineCreateInfo::pStagesset toSHADER_STAGE_VERTEX_BIT,SHADER_STAGE_TESSELLATION_CONTROL_BIT,SHADER_STAGE_TESSELLATION_EVALUATION_BITorSHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active - If a shader object is bound to the
SHADER_STAGE_FRAGMENT_BITstage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXTdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetAttachmentFeedbackLoopEnableEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If dynamic state was inherited from
VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command - If there is no bound graphics pipeline,
vkCmdBindShadersEXTmust have been called in the current command buffer withpStageswith an element ofSHADER_STAGE_FRAGMENT_BIT - If there is no bound graphics pipeline, and the
taskShaderfeature is enabled,vkCmdBindShadersEXTmust have been called in the current command buffer withpStageswith an element ofSHADER_STAGE_TASK_BIT_EXT - If there is no bound graphics pipeline, and the
meshShaderfeature is enabled,vkCmdBindShadersEXTmust have been called in the current command buffer withpStageswith an element ofSHADER_STAGE_MESH_BIT_EXT - If there is no bound graphics pipeline, and at least one of the
taskShaderandmeshShaderfeatures is enabled, one of theSHADER_STAGE_VERTEX_BITorSHADER_STAGE_MESH_BIT_EXTstages must have a validVkShaderEXTbound, and the other must have noVkShaderEXTbound - If there is no bound graphics pipeline, and both the
taskShaderandmeshShaderfeatures are enabled, and a validVkShaderEXTis bound the to theSHADER_STAGE_MESH_BIT_EXTstage, and thatVkShaderEXTwas created without theSHADER_CREATE_NO_TASK_SHADER_BIT_EXTflag, a validVkShaderEXTmust be bound to theSHADER_STAGE_TASK_BIT_EXTstage - If there is no bound graphics pipeline, and both the
taskShaderandmeshShaderfeatures are enabled, and a validVkShaderEXTis bound the to theSHADER_STAGE_MESH_BIT_EXTstage, and thatVkShaderEXTwas created with theSHADER_CREATE_NO_TASK_SHADER_BIT_EXTflag, there must be noVkShaderEXTbound to theSHADER_STAGE_TASK_BIT_EXTstage - If there is no bound graphics pipeline, and a valid
VkShaderEXTis bound to theSHADER_STAGE_VERTEX_BITstage, there must be noVkShaderEXTbound to either theSHADER_STAGE_TASK_BIT_EXTstage or theSHADER_STAGE_MESH_BIT_EXTstage - If any graphics shader is bound which was created with the
SHADER_CREATE_LINK_STAGE_BIT_EXTflag, then all shaders created with theSHADER_CREATE_LINK_STAGE_BIT_EXTflag in the sameCreateShadersEXTcall must also be bound - If any graphics shader is bound which was created with the
SHADER_CREATE_LINK_STAGE_BIT_EXTflag, any stages in between stages whose shaders which did not create a shader with theSHADER_CREATE_LINK_STAGE_BIT_EXTflag as part of the sameCreateShadersEXTcall must not have anyVkShaderEXTbound - All bound graphics shader objects must have been created with identical or identically defined push constant ranges
- All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
- If the current render pass instance was begun with
CmdBeginRenderingand aVkRenderingInfo::colorAttachmentCountequal to 1, a color attachment with a resolve mode ofRESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare theDepthReplacingorStencilRefReplacingEXTexecution modes - If the bound graphics pipeline state includes a fragment shader stage, was created with
DYNAMIC_STATE_DEPTH_WRITE_ENABLEset inVkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares theEarlyFragmentTestsexecution mode and usesOpDepthAttachmentReadEXT, thedepthWriteEnableparameter in the last call toCmdSetDepthWriteEnablemust beFALSE - If the bound graphics pipeline state includes a fragment shader stage, was created with
DYNAMIC_STATE_STENCIL_WRITE_MASKset inVkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares theEarlyFragmentTestsexecution mode and usesOpStencilAttachmentReadEXT, thewriteMaskparameter in the last call toCmdSetStencilWriteMaskmust be 0 - If a shader object is bound to any graphics stage or the bound graphics pipeline was created with
DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment isFORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of thepColorWriteMasksparameter ofCmdSetColorWriteMaskEXTmust either include all ofCOLOR_COMPONENT_R_BIT,COLOR_COMPONENT_G_BIT, andCOLOR_COMPONENT_B_BIT, or none of them - If blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of
Locationfor any output attachment statically used in theFragmentExecutionModelexecuted by this command must be less thanmaxFragmentDualSrcAttachments - If the current render pass was begun with
CmdBeginRendering, and there is no shader object bound to any graphics stage, the value of each element ofVkRenderingAttachmentLocationInfo::pColorAttachmentLocationsset byCmdSetRenderingAttachmentLocationsmust match the value set for the corresponding element in the bound pipeline - If the current render pass was begun with
CmdBeginRendering, and there is no shader object bound to any graphics stage, input attachment index mappings in the bound pipeline must match those set for the current render pass instance viaVkRenderingInputAttachmentIndexInfo - If the current render pass was begun with
CmdBeginRenderingwith theRENDERING_ENABLE_LEGACY_DITHERING_BIT_EXTflag, the bound graphics pipeline must have been created withPIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT - If the bound graphics pipeline was created with
PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT, the current render pass must have begun withCmdBeginRenderingwith theRENDERING_ENABLE_LEGACY_DITHERING_BIT_EXTflag
- All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or
NULL_HANDLEbuffers bound - If the
nullDescriptorfeature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not beNULL_HANDLE - If the
robustBufferAccessfeature is not enabled, and that pipeline was created without enablingPIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESSforvertexInputs, then for a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description - For each vertex attribute accessed by this command, if its
VkVertexInputAttributeDescription::formatorVkVertexInputAttributeDescription2EXT::formatis a packed format, andlegacyVertexAttributesis not enabled, the value ofattribAddress, calculated as described in Vertex Input Calculation, must be a multiple of the size of theformat - For each vertex attribute accessed by this command, if its
VkVertexInputAttributeDescription::formatorVkVertexInputAttributeDescription2EXT::formatis not a packed format, and eitherlegacyVertexAttributesis not enabled orformathas 64-bit components, the value ofattribAddress, calculated as described in Vertex Input Calculation, must be a multiple of the size of the components of theformat - If there is a shader object bound to the
SHADER_STAGE_VERTEX_BITstage or the bound graphics pipeline state was created with theDYNAMIC_STATE_PRIMITIVE_TOPOLOGYdynamic state enabled thenCmdSetPrimitiveTopologymust 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_PRIMITIVE_TOPOLOGYdynamic state enabled and thedynamicPrimitiveTopologyUnrestrictedisFALSE, then theprimitiveTopologyparameter ofvkCmdSetPrimitiveTopologymust be of the same topology class as the pipelineVkPipelineInputAssemblyStateCreateInfo::topologystate - If there is a shader object bound to the
SHADER_STAGE_TESSELLATION_CONTROL_BITstage, thenCmdSetPrimitiveTopologymust have setprimitiveTopologytoPRIMITIVE_TOPOLOGY_PATCH_LISTprior to this drawing command - If the bound graphics pipeline was created with the
DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDEdynamic state enabled, but without theDYNAMIC_STATE_VERTEX_INPUT_EXTdynamic state enabled, thenCmdBindVertexBuffers2must have been called and not subsequently invalidated in the current command buffer prior to this draw command, and thepStridesparameter ofCmdBindVertexBuffers2must not beNULL - If there is a shader object bound to the
SHADER_STAGE_VERTEX_BITstage or the bound graphics pipeline state was created with theDYNAMIC_STATE_VERTEX_INPUT_EXTdynamic state enabled thenCmdSetVertexInputEXTmust have been called and not subsequently invalidated in the current command buffer prior to this draw command - If
vertexAttributeRobustnessis not enabled and there is a shader object bound to theSHADER_STAGE_VERTEX_BITstage or the bound graphics pipeline state was created with theDYNAMIC_STATE_VERTEX_INPUT_EXTdynamic state enabled then all variables with theInputstorage class decorated withLocationin theVertexExecutionModelOpEntryPointmust contain a location inVkVertexInputAttributeDescription2EXT::location - If there is a shader object bound to the
SHADER_STAGE_VERTEX_BITstage or the bound graphics pipeline state was created with theDYNAMIC_STATE_VERTEX_INPUT_EXTdynamic state enabled and either thelegacyVertexAttributesfeature is not enabled or the SPIR-V Type associated with a givenInputvariable of the correspondingLocationin theVertexExecutionModelOpEntryPointis 64-bit, then the numeric type associated with allInputvariables of the correspondingLocationin theVertexExecutionModelOpEntryPointmust be the same asVkVertexInputAttributeDescription2EXT::format - If there is a shader object bound to the
SHADER_STAGE_VERTEX_BITstage or the bound graphics pipeline state was created with theDYNAMIC_STATE_VERTEX_INPUT_EXTdynamic state enabled andVkVertexInputAttributeDescription2EXT::formathas a 64-bit component, then the scalar width associated with allInputvariables of the correspondingLocationin theVertexExecutionModelOpEntryPointmust be 64-bit - If there is a shader object bound to the
SHADER_STAGE_VERTEX_BITstage or the bound graphics pipeline state was created with theDYNAMIC_STATE_VERTEX_INPUT_EXTdynamic state enabled and the scalar width associated with aLocationdecoratedInputvariable in theVertexExecutionModelOpEntryPointis 64-bit, then the correspondingVkVertexInputAttributeDescription2EXT::formatmust have a 64-bit component - If there is a shader object bound to the
SHADER_STAGE_VERTEX_BITstage or the bound graphics pipeline state was created with theDYNAMIC_STATE_VERTEX_INPUT_EXTdynamic state enabled andVkVertexInputAttributeDescription2EXT::formathas a 64-bit component, then allInputvariables at the correspondingLocationin theVertexExecutionModelOpEntryPointmust not use components that are not present in the format - If there is a shader object bound to the
SHADER_STAGE_TESSELLATION_CONTROL_BITstage or the bound graphics pipeline state was created with theDYNAMIC_STATE_PATCH_CONTROL_POINTS_EXTdynamic state enabled, and the current value ofprimitiveTopologyisPRIMITIVE_TOPOLOGY_PATCH_LIST, thenCmdSetPatchControlPointsEXTmust 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_BITstage or the bound graphics pipeline state was created with theDYNAMIC_STATE_PRIMITIVE_RESTART_ENABLEdynamic state enabled thenCmdSetPrimitiveRestartEnablemust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
primitiveTopologyListRestartfeature is not enabled, the topology isPRIMITIVE_TOPOLOGY_POINT_LIST,PRIMITIVE_TOPOLOGY_LINE_LIST,PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, orPRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to theSHADER_STAGE_VERTEX_BITstage or the bound graphics pipeline state was created with theDYNAMIC_STATE_PRIMITIVE_RESTART_ENABLEdynamic state enabled thenCmdSetPrimitiveRestartEnablemust beFALSE - The bound graphics pipeline must not have been created with the
VkPipelineShaderStageCreateInfo::stagemember of any element ofVkGraphicsPipelineCreateInfo::pStagesset toSHADER_STAGE_TASK_BIT_EXTorSHADER_STAGE_MESH_BIT_EXT - There must be no shader object bound to either of the
SHADER_STAGE_TASK_BIT_EXTorSHADER_STAGE_MESH_BIT_EXTstages - If a shader object is bound to the
SHADER_STAGE_TESSELLATION_EVALUATION_BITstage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXTdynamic state enabled, thenCmdSetTessellationDomainOriginEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If there is no bound graphics pipeline,
vkCmdBindShadersEXTmust have been called in the current command buffer withpStageswith an element ofSHADER_STAGE_VERTEX_BIT - If there is no bound graphics pipeline, and the
tessellationShaderfeature is enabled,vkCmdBindShadersEXTmust have been called in the current command buffer withpStageswith an element ofSHADER_STAGE_TESSELLATION_CONTROL_BIT - If there is no bound graphics pipeline, and the
tessellationShaderfeature is enabled,vkCmdBindShadersEXTmust have been called in the current command buffer withpStageswith an element ofSHADER_STAGE_TESSELLATION_EVALUATION_BIT - If there is no bound graphics pipeline, and the
geometryShaderfeature is enabled,vkCmdBindShadersEXTmust have been called in the current command buffer withpStageswith an element ofSHADER_STAGE_GEOMETRY_BIT
- If
bufferis non-sparse then it must be bound completely and contiguously to a singleVkDeviceMemoryobject buffermust have been created with theBUFFER_USAGE_INDIRECT_BUFFER_BITbit setoffsetmust be a multiple of 4commandBuffermust not be a protected command buffer
- If
countBufferis non-sparse then it must be bound completely and contiguously to a singleVkDeviceMemoryobject countBuffermust have been created with theBUFFER_USAGE_INDIRECT_BUFFER_BITbit setcountBufferOffsetmust be a multiple of 4- The count stored in
countBuffermust be less than or equal toVkPhysicalDeviceLimits::maxDrawIndirectCount (countBufferOffset + sizeof(uint32_t))must be less than or equal to the size ofcountBuffer- If the
drawIndirectCountfeature is not enabled this function must not be used stridemust be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndirectCommand)- If
maxDrawCountis greater than or equal to 1,(stride × (maxDrawCount - 1) + offset + sizeof(must be less than or equal to the size ofVkDrawIndirectCommand))buffer
Valid Usage (Implicit)
commandBuffermust be a validVkCommandBufferhandlebuffermust be a validVkBufferhandlecountBuffermust be a validVkBufferhandlecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations - This command must only be called inside of a render pass instance
- This command must only be called outside of a video coding scope
- Each of
buffer,commandBuffer, andcountBuffermust have been created, allocated, or retrieved from the sameVkDevice
Host Synchronization
- Host access to
commandBuffermust be externally synchronized - Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
Command Buffer Levels Render Pass Scope Video Coding Scope Supported Queue Types Command Type Primary Secondary Inside Outside Graphics Action - Parameters:
commandBuffer- the command buffer into which the command is recorded.buffer- the buffer containing draw parameters.offset- the byte offset intobufferwhere parameters begin.countBuffer- the buffer containing the draw count.countBufferOffset- the byte offset intocountBufferwhere the draw count begins.maxDrawCount- specifies the maximum number of draws that will be executed. The actual number of executed draw calls is the minimum of the count specified incountBufferandmaxDrawCount.stride- the byte stride between successive sets of draw parameters.
- If a
-
vkCmdDrawIndexedIndirectCount
public static void vkCmdDrawIndexedIndirectCount(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long buffer, long offset, long countBuffer, long countBufferOffset, int maxDrawCount, int stride) Draw parameters with indirect parameters, indexed vertices, and draw count.C Specification
To record an indexed draw call with a draw call count sourced from a buffer, call:
void vkCmdDrawIndexedIndirectCount( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);or the equivalent command
void vkCmdDrawIndexedIndirectCountKHR( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);or the equivalent command
void vkCmdDrawIndexedIndirectCountAMD( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);Description
vkCmdDrawIndexedIndirectCountbehaves similarly toCmdDrawIndexedIndirectexcept that the draw count is read by the device from a buffer during execution. The command will read an unsigned 32-bit integer fromcountBufferlocated atcountBufferOffsetand use this as the draw count.Valid Usage
- If a
VkSamplercreated withmagFilterorminFilterequal toFILTER_LINEAR,reductionModeequal toSAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, andcompareEnableequal toFALSEis used to sample aVkImageViewas a result of this command, then the image view’s format features must containFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT - If a
VkSamplercreated withmagFilterorminFilterequal toFILTER_LINEARandreductionModeequal to eitherSAMPLER_REDUCTION_MODE_MINorSAMPLER_REDUCTION_MODE_MAXis used to sample aVkImageViewas a result of this command, then the image view’s format features must containFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT - If a
VkSamplercreated withmipmapModeequal toSAMPLER_MIPMAP_MODE_LINEAR,reductionModeequal toSAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, andcompareEnableequal toFALSEis used to sample aVkImageViewas a result of this command, then the image view’s format features must containFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT - If a
VkSamplercreated withmipmapModeequal toSAMPLER_MIPMAP_MODE_LINEARandreductionModeequal to eitherSAMPLER_REDUCTION_MODE_MINorSAMPLER_REDUCTION_MODE_MAXis used to sample aVkImageViewas a result of this command, then the image view’s format features must containFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT - If a
VkSamplercreated withunnormalizedCoordinatesequal toTRUEis used to sample aVkImageViewas a result of this command, then the image view’slevelCountandlayerCountmust be 1 - If a
VkSamplercreated withunnormalizedCoordinatesequal toTRUEis used to sample aVkImageViewas a result of this command, then the image view’sviewTypemust beIMAGE_VIEW_TYPE_1DorIMAGE_VIEW_TYPE_2D - If a
VkSamplercreated withunnormalizedCoordinatesequal toTRUEis used to sample aVkImageViewas a result of this command, then the sampler must not be used with any of the SPIR-VOpImageSample*orOpImageSparseSample*instructions withImplicitLod,DreforProjin their name - If a
VkSamplercreated withunnormalizedCoordinatesequal toTRUEis used to sample aVkImageViewas a result of this command, then the sampler must not be used with any of the SPIR-VOpImageSample*orOpImageSparseSample*instructions that includes a LOD bias or any offset values - If a
VkImageViewis sampled with depth comparison, the image view’s format features must containFORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT - If a
VkImageViewis accessed using atomic operations as a result of this command, then the image view’s format features must containFORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT - If a
DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFERdescriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must containFORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT - If a
VkImageViewis sampled withFILTER_CUBIC_EXTas a result of this command, then the image view’s format features must containFORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT - If the
VK_EXT_filter_cubicextension is not enabled and anyVkImageViewis sampled withFILTER_CUBIC_EXTas a result of this command, it must not have aVkImageViewTypeofIMAGE_VIEW_TYPE_3D,IMAGE_VIEW_TYPE_CUBE, orIMAGE_VIEW_TYPE_CUBE_ARRAY - Any
VkImageViewbeing sampled withFILTER_CUBIC_EXTas a result of this command must have aVkImageViewTypeand format that supports cubic filtering, as specified byVkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicreturned byGetPhysicalDeviceImageFormatProperties2 - Any
VkImageViewbeing sampled withFILTER_CUBIC_EXTwith a reduction mode of eitherSAMPLER_REDUCTION_MODE_MINorSAMPLER_REDUCTION_MODE_MAXas a result of this command must have aVkImageViewTypeand format that supports cubic filtering together with minmax filtering, as specified byVkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmaxreturned byGetPhysicalDeviceImageFormatProperties2 - If the
cubicRangeClampfeature is not enabled, then anyVkImageViewbeing sampled withFILTER_CUBIC_EXTas a result of this command must not have aVkSamplerReductionModeCreateInfo::reductionModeequal toSAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM - Any
VkImageViewbeing sampled with aVkSamplerReductionModeCreateInfo::reductionModeequal toSAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOMas a result of this command must sample withFILTER_CUBIC_EXT - If the
selectableCubicWeightsfeature is not enabled, then anyVkImageViewbeing sampled withFILTER_CUBIC_EXTas a result of this command must haveVkSamplerCubicWeightsCreateInfoQCOM::cubicWeightsequal toCUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM - Any
VkImagecreated with aVkImageCreateInfo::flagscontainingIMAGE_CREATE_CORNER_SAMPLED_BIT_NVsampled as a result of this command must only be sampled using aVkSamplerAddressModeofSAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE - For any
VkImageViewbeing written as a storage image where the image format field of theOpTypeImageisUnknown, the view’s format features must containFORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT - For any
VkImageViewbeing read as a storage image where the image format field of theOpTypeImageisUnknown, the view’s format features must containFORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT - For any
VkBufferViewbeing written as a storage texel buffer where the image format field of theOpTypeImageisUnknown, the view’s buffer features must containFORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT - Any
VkBufferViewbeing read as a storage texel buffer where the image format field of theOpTypeImageisUnknownthen the view’s buffer features must containFORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT - For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a
VkPipelineLayoutthat is compatible for set n, with theVkPipelineLayoutused to create the currentVkPipelineor theVkDescriptorSetLayoutarray used to create the currentVkShaderEXT, as described in Pipeline Layout Compatibility - For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a
VkPipelineLayoutthat is compatible for push constants, with theVkPipelineLayoutused to create the currentVkPipelineor theVkDescriptorSetLayoutarray used to create the currentVkShaderEXT, as described in Pipeline Layout Compatibility - For each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command
- If the
maintenance4feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with aVkPipelineLayoutthat is compatible for push constants, with theVkPipelineLayoutused to create the currentVkPipelineor theVkDescriptorSetLayoutandVkPushConstantRangearrays used to create the currentVkShaderEXT, as described in Pipeline Layout Compatibility - Descriptors in each bound descriptor set, specified via
CmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by theVkPipelinebound to the pipeline bind point used by this command and the boundVkPipelinewas not created withPIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT - If the descriptors used by the
VkPipelinebound to the pipeline bind point were specified viaCmdBindDescriptorSets, the boundVkPipelinemust have been created withoutPIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT - Descriptors in bound descriptor buffers, specified via
CmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by theVkPipelinebound to the pipeline bind point used by this command and the boundVkPipelinewas created withPIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT - Descriptors in bound descriptor buffers, specified via
CmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by anyVkShaderEXTbound to a stage corresponding to the pipeline bind point used by this command - If the descriptors used by the
VkPipelinebound to the pipeline bind point were specified viaCmdSetDescriptorBufferOffsetsEXT, the boundVkPipelinemust have been created withPIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT - If a descriptor is dynamically used with a
VkPipelinecreated withPIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident - If a descriptor is dynamically used with a
VkShaderEXTcreated with aVkDescriptorSetLayoutthat was created withDESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident - If the
shaderObjectfeature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command - If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the
VkPipelineobject bound to the pipeline bind point used by this command, since that pipeline was bound - If the
shaderObjectfeature is enabled, either a valid pipeline must be bound to the pipeline bind point used by this command, or a valid combination of valid andNULL_HANDLEshader objects must be bound to every supported shader stage corresponding to the pipeline bind point used by this command - If any stage of the
VkPipelineobject bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling eitherPIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESSorPIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2foruniformBuffers, and therobustBufferAccessfeature 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
robustBufferAccessfeature is not enabled, and anyVkShaderEXTbound 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
VkPipelineobject bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling eitherPIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESSorPIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2forstorageBuffers, and therobustBufferAccessfeature 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
robustBufferAccessfeature is not enabled, and anyVkShaderEXTbound to a stage corresponding to the pipeline bind point used by this command accesses a storage 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
commandBufferis an unprotected command buffer andprotectedNoFaultis not supported, any resource accessed by bound shaders must not be a protected resource - If a bound shader accesses a
VkSamplerorVkImageViewobject that enables sampler Y′CBCR conversion, that object must only be used withOpImageSample*orOpImageSparseSample*instructions - If a bound shader accesses a
VkSamplerorVkImageViewobject that enables sampler Y′CBCR conversion, that object must not use theConstOffsetandOffsetoperands - If a
VkImageViewis accessed as a result of this command, then the image view’sviewTypemust match theDimoperand of theOpTypeImageas described in Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types - If a
VkImageViewis accessed as a result of this command, then the numeric type of the image view’sformatand theSampledTypeoperand of theOpTypeImagemust match - If a
VkImageViewcreated with a format other thanFORMAT_A8_UNORMis accessed usingOpImageWriteas a result of this command, then theTypeof theTexeloperand of that instruction must have at least as many components as the image view’s format - If a
VkImageViewcreated with the formatFORMAT_A8_UNORMis accessed usingOpImageWriteas a result of this command, then theTypeof theTexeloperand of that instruction must have four components - If a
VkBufferViewis accessed usingOpImageWriteas a result of this command, then theTypeof theTexeloperand of that instruction must have at least as many components as the buffer view’s format - If a
VkImageViewwith aVkFormatthat has a 64-bit component width is accessed as a result of this command, theSampledTypeof theOpTypeImageoperand of that instruction must have aWidthof 64 - If a
VkImageViewwith aVkFormatthat has a component width less than 64-bit is accessed as a result of this command, theSampledTypeof theOpTypeImageoperand of that instruction must have aWidthof 32 - If a
VkBufferViewwith aVkFormatthat has a 64-bit component width is accessed as a result of this command, theSampledTypeof theOpTypeImageoperand of that instruction must have aWidthof 64 - If a
VkBufferViewwith aVkFormatthat has a component width less than 64-bit is accessed as a result of this command, theSampledTypeof theOpTypeImageoperand of that instruction must have aWidthof 32 - If the
sparseImageInt64Atomicsfeature is not enabled,VkImageobjects created with theIMAGE_CREATE_SPARSE_RESIDENCY_BITflag must not be accessed by atomic instructions through anOpTypeImagewith aSampledTypewith aWidthof 64 by this command - If the
sparseImageInt64Atomicsfeature is not enabled,VkBufferobjects created with theBUFFER_CREATE_SPARSE_RESIDENCY_BITflag must not be accessed by atomic instructions through anOpTypeImagewith aSampledTypewith aWidthof 64 by this command - If
OpImageWeightedSampleQCOMis used to sample aVkImageViewas a result of this command, then the image view’s format features must containFORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM - If
OpImageWeightedSampleQCOMuses aVkImageViewas a sample weight image as a result of this command, then the image view’s format features must containFORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM - If
OpImageBoxFilterQCOMis used to sample aVkImageViewas a result of this command, then the image view’s format features must containFORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM - If
OpImageBlockMatchSSDQCOMis used to read from anVkImageViewas a result of this command, then the image view’s format features must containFORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM - If
OpImageBlockMatchSADQCOMis used to read from anVkImageViewas a result of this command, then the image view’s format features must containFORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM - If
OpImageBlockMatchSADQCOMor OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation - If
OpImageWeightedSampleQCOM,OpImageBoxFilterQCOM,OpImageBlockMatchWindowSSDQCOM,OpImageBlockMatchWindowSADQCOM,OpImageBlockMatchGatherSSDQCOM,OpImageBlockMatchGatherSADQCOM,OpImageBlockMatchSSDQCOM, orOpImageBlockMatchSADQCOMuses aVkSampleras a result of this command, then the sampler must have been created withSAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM - If any command other than
OpImageWeightedSampleQCOM,OpImageBoxFilterQCOM,OpImageBlockMatchWindowSSDQCOM,OpImageBlockMatchWindowSADQCOM,OpImageBlockMatchGatherSSDQCOM,OpImageBlockMatchGatherSADQCOM,OpImageBlockMatchSSDQCOM, orOpImageBlockMatchSADQCOMuses aVkSampleras a result of this command, then the sampler must not have been created withSAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM - If a
OpImageBlockMatchWindow*QCOMorOpImageBlockMatchGather*QCOMinstruction is used to read from anVkImageViewas a result of this command, then the image view’s format features must containFORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM - If a
OpImageBlockMatchWindow*QCOMorOpImageBlockMatchGather*QCOMinstruction is used to read from anVkImageViewas a result of this command, then the image view’s format must be a single-component format - If a
OpImageBlockMatchWindow*QCOMorOpImageBlockMatchGather*QCOMread from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation - Any shader invocation executed by this command must terminate
- 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, orDESCRIPTOR_TYPE_INPUT_ATTACHMENTis 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 - The current render pass must be compatible with the
renderPassmember of theVkGraphicsPipelineCreateInfostructure specified when creating theVkPipelinebound toPIPELINE_BIND_POINT_GRAPHICS - The subpass index of the current render pass must be equal to the
subpassmember of theVkGraphicsPipelineCreateInfostructure specified when creating theVkPipelinebound toPIPELINE_BIND_POINT_GRAPHICS - If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
- If any shader executed by this pipeline accesses an
OpTypeImagevariable with aDimoperand ofSubpassData, it must be decorated with anInputAttachmentIndexthat corresponds to a valid input attachment in the current subpass - Input attachment views accessed in a subpass must be created with the same
VkFormatas the corresponding subpass definition, and be created with aVkImageViewthat is compatible with the attachment referenced by the subpass'pInputAttachments[InputAttachmentIndex] in the boundVkFramebufferas specified by Fragment Input Attachment Compatibility - Input attachment views accessed in a dynamic render pass with a
InputAttachmentIndexreferenced byVkRenderingInputAttachmentIndexInfo, or noInputAttachmentIndexifVkRenderingInputAttachmentIndexInfo:pDepthInputAttachmentIndexorVkRenderingInputAttachmentIndexInfo:pStencilInputAttachmentIndexareNULL, must be created with aVkImageViewthat is compatible with the corresponding color, depth, or stencil attachment inVkRenderingInfo - Input attachment views accessed in a dynamic render pass via a shader object must have an
InputAttachmentIndexif bothVkRenderingInputAttachmentIndexInfo:pDepthInputAttachmentIndexandVkRenderingInputAttachmentIndexInfo:pStencilInputAttachmentIndexare non-NULL - If an input attachment view accessed in a dynamic render pass via a shader object has an
InputAttachmentIndex, theInputAttachmentIndexmust match an index inVkRenderingInputAttachmentIndexInfo - Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
- If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the
IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXTimage layout, and either:- the
PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXTis set on the bound pipeline or - the last call to
CmdSetAttachmentFeedbackLoopEnableEXTincludedIMAGE_ASPECT_COLOR_BITand- there is no bound graphics pipeline or
- the bound graphics pipeline was created with
DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT
it must not be accessed in any way other than as an attachment by this command
- the
- If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the
IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXTimage layout, and either:- the
PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXTis set on the bound pipeline or - the last call to
CmdSetAttachmentFeedbackLoopEnableEXTincludedIMAGE_ASPECT_DEPTH_BITand- there is no bound graphics pipeline or
- the bound graphics pipeline was created with
DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT
it must not be accessed in any way other than as an attachment by this command
- the
- If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the
IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXTimage layout, and either:- the
PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXTis set on the bound pipeline or - the last call to
CmdSetAttachmentFeedbackLoopEnableEXTincludedIMAGE_ASPECT_STENCIL_BITand- there is no bound graphics pipeline or
- the bound graphics pipeline was created with
DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT
it must not be accessed in any way other than as an attachment by this command
- the
- If an attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it must not be accessed in any way other than as an attachment, storage image, or sampled image by this command
- If any previously recorded command in the current subpass accessed an image subresource used as an attachment in this subpass in any way other than as an attachment, this command must not write to that image subresource as an attachment
- If the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled
- If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect, both front and back
writeMaskare not zero, and stencil test is enabled, all stencil ops must beSTENCIL_OP_KEEP - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_VIEWPORTdynamic state enabled thenCmdSetViewportmust 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_SCISSORdynamic state enabled thenCmdSetScissormust 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_WIDTHdynamic state enabled thenCmdSetLineWidthmust 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, and the most recent call to
CmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, and the most recent call toCmdSetPolygonModeEXTin the current command buffer setpolygonModetoPOLYGON_MODE_LINE,CmdSetLineWidthmust 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, and the most recent call to
CmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, and the most recent call toCmdSetPrimitiveTopologyin the current command buffer setprimitiveTopologyto any line topology,CmdSetLineWidthmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If a shader object that outputs line primitives is bound to the
SHADER_STAGE_TESSELLATION_EVALUATION_BITorSHADER_STAGE_GEOMETRY_BITstage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE,CmdSetLineWidthmust 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_DEPTH_BIASdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value ofdepthBiasEnableisTRUE, thenCmdSetDepthBiasorCmdSetDepthBias2EXTmust 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_BLEND_CONSTANTSdynamic state enabled thenCmdSetBlendConstantsmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If a shader object is bound to the
SHADER_STAGE_FRAGMENT_BITstage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, and the most recent call toCmdSetColorBlendEnableEXTin the current command buffer set any element ofpColorBlendEnablestoTRUE, and the most recent call toCmdSetColorBlendEquationEXTin the current command buffer set the same element ofpColorBlendEquationsto aVkColorBlendEquationEXTstructure with anyVkBlendFactormember with a value ofBLEND_FACTOR_CONSTANT_COLOR,BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,BLEND_FACTOR_CONSTANT_ALPHA, orBLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,CmdSetBlendConstantsmust 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_DEPTH_BOUNDSdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value ofdepthBoundsTestEnableisTRUE, thenCmdSetDepthBoundsmust 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_COMPARE_MASKdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value ofstencilTestEnableisTRUE, thenCmdSetStencilCompareMaskmust 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_WRITE_MASKdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value ofstencilTestEnableisTRUE, thenCmdSetStencilWriteMaskmust 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_REFERENCEdynamic state enabled, the current value of andrasterizerDiscardEnableisFALSE, the current value ofstencilTestEnableisTRUE, thenCmdSetStencilReferencemust 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::maxMultiviewInstanceIndex - If the bound graphics pipeline was created with
VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnableset toTRUEand the current subpass has a depth/stencil attachment, then that attachment must have been created with theIMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXTbit set - If the
VK_EXT_sample_locationsextension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXTdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetSampleLocationsEnableEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_EXT_sample_locationsextension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_SAMPLE_LOCATIONS_EXTdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value ofsampleLocationsEnableisTRUE, thenCmdSetSampleLocationsEXTmust 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_MODEdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetCullModemust 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_FACEdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetFrontFacemust 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_DEPTH_TEST_ENABLEdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE,CmdSetDepthTestEnablemust 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_DEPTH_WRITE_ENABLEdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetDepthWriteEnablemust 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_DEPTH_COMPARE_OPdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value ofdepthTestEnableisTRUE, thenCmdSetDepthCompareOpmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
depthBoundsfeature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLEdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetDepthBoundsTestEnablemust 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_ENABLEdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetStencilTestEnablemust 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_OPdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, the current value ofstencilTestEnableisTRUE, thenCmdSetStencilOpmust 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_VIEWPORT_WITH_COUNTdynamic state enabled, and the state is not inherited, thenCmdSetViewportWithCountmust 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_COUNTdynamic state enabled, and the state is not inherited, thenCmdSetScissorWithCountmust 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_COUNTandDYNAMIC_STATE_VIEWPORT_WITH_COUNTdynamic states enabled, and the state is not inherited, then theviewportCountparameter ofvkCmdSetViewportWithCountmust match thescissorCountparameter ofvkCmdSetScissorWithCount - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_VIEWPORT_WITH_COUNTdynamic state enabled, but not theDYNAMIC_STATE_VIEWPORT_W_SCALING_NVdynamic state enabled, then the bound graphics pipeline must have been created withVkPipelineViewportWScalingStateCreateInfoNV::viewportCountgreater or equal to theviewportCountparameter in the last call toCmdSetViewportWithCount - If the
VK_NV_clip_space_w_scalingextension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_VIEWPORT_WITH_COUNTandDYNAMIC_STATE_VIEWPORT_W_SCALING_NVdynamic state enabled, the current value ofviewportWScalingEnableisTRUE, thenCmdSetViewportWScalingNVmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_NV_clip_space_w_scalingextension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_VIEWPORT_WITH_COUNTandDYNAMIC_STATE_VIEWPORT_W_SCALING_NVdynamic state enabled, the current value ofviewportWScalingEnableisTRUE, then theviewportCountparameter in the last call toCmdSetViewportWScalingNVmust be greater than or equal to theviewportCountparameter in the last call toCmdSetViewportWithCount - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_VIEWPORT_WITH_COUNTdynamic state enabled, but not theDYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NVdynamic state enabled, then the bound graphics pipeline must have been created withVkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCountgreater or equal to theviewportCountparameter in the last call toCmdSetViewportWithCount - If the
shadingRateImagefeature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NVand the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetCoarseSampleOrderNVmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
shadingRateImagefeature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_VIEWPORT_WITH_COUNTandDYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NVdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value ofshadingRateImageEnableisTRUE, thenCmdSetViewportShadingRatePaletteNVmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
shadingRateImagefeature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_VIEWPORT_WITH_COUNTandDYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NVdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value ofshadingRateImageEnableisTRUE, then theviewportCountparameter in the last call toCmdSetViewportShadingRatePaletteNVmust be greater than or equal to theviewportCountparameter in the last call toCmdSetViewportWithCount - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_VIEWPORT_WITH_COUNTdynamic state enabled and aVkPipelineViewportSwizzleStateCreateInfoNVstructure chained fromVkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created withVkPipelineViewportSwizzleStateCreateInfoNV::viewportCountgreater or equal to theviewportCountparameter in the last call toCmdSetViewportWithCount - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_VIEWPORT_WITH_COUNTdynamic state enabled and aVkPipelineViewportExclusiveScissorStateCreateInfoNVstructure chained fromVkPipelineViewportStateCreateInfo, then the bound graphics pipeline must have been created withVkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCountgreater or equal to theviewportCountparameter in the last call toCmdSetViewportWithCount - If the
exclusiveScissorfeature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NVdynamic state enabled, thenCmdSetExclusiveScissorEnableNVmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
exclusiveScissorfeature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_EXCLUSIVE_SCISSOR_NVdynamic state enabled, and the most recent call toCmdSetExclusiveScissorEnableNVin the current command buffer set any element ofpExclusiveScissorEnablestoTRUE, thenCmdSetExclusiveScissorNVmust 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_RASTERIZER_DISCARD_ENABLEdynamic state enabled, thenCmdSetRasterizerDiscardEnablemust 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_DEPTH_BIAS_ENABLEdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetDepthBiasEnablemust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If a shader object is bound to the
SHADER_STAGE_FRAGMENT_BITor a graphics pipeline is bound which was created with theDYNAMIC_STATE_LOGIC_OP_EXTdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value oflogicOpEnableisTRUE, thenCmdSetLogicOpEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
primitiveFragmentShadingRateWithMultipleViewportslimit is not supported, the bound graphics pipeline was created with theDYNAMIC_STATE_VIEWPORT_WITH_COUNTdynamic state enabled, and any of the shader stages of the bound graphics pipeline write to thePrimitiveShadingRateKHRbuilt-in, thenCmdSetViewportWithCountmust have been called in the current command buffer prior to this drawing command, and theviewportCountparameter ofvkCmdSetViewportWithCountmust be 1 - If the
primitiveFragmentShadingRateWithMultipleViewportslimit is not supported, and any shader object bound to a graphics stage writes to thePrimitiveShadingRateKHRbuilt-in, thenCmdSetViewportWithCountmust have been called in the current command buffer prior to this drawing command, and theviewportCountparameter ofvkCmdSetViewportWithCountmust be 1 - If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view’s format features do not contain
FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then theblendEnablemember of the corresponding element of thepAttachmentsmember ofpColorBlendStatemust beFALSE - If a shader object is bound to the
SHADER_STAGE_FRAGMENT_BITstage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, then for each color attachment in the render pass, if the corresponding image view’s format features do not containFORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the corresponding member ofpColorBlendEnablesin the most recent call tovkCmdSetColorBlendEnableEXTin the current command buffer that affected that attachment index must have beenFALSE - If rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled:
- the
VK_AMD_mixed_attachment_samplesextension - the
VK_NV_framebuffer_mixed_samplesextension - the
multisampledRenderToSingleSampledfeature
then
rasterizationSamplesfor the bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments - the
- If a shader object is bound to any graphics stage, and the most recent call to
CmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, and none of the following is enabled:- the
VK_AMD_mixed_attachment_samplesextension - the
VK_NV_framebuffer_mixed_samplesextension - the
multisampledRenderToSingleSampledfeature
then the most recent call to
CmdSetRasterizationSamplesEXTin the current command buffer must have setrasterizationSamplesto be the same as the number of samples for the current render pass color and/or depth/stencil attachments - the
- If a shader object is bound to any graphics stage, the current render pass instance must have been begun with
CmdBeginRendering - If the current render pass instance was begun with
CmdBeginRendering, theimageViewmember ofpDepthAttachmentis notNULL_HANDLE, and thelayoutmember ofpDepthAttachmentisIMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment - If the current render pass instance was begun with
CmdBeginRendering, theimageViewmember ofpStencilAttachmentis notNULL_HANDLE, and thelayoutmember ofpStencilAttachmentisIMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment - If the current render pass instance was begun with
CmdBeginRendering, theimageViewmember ofpDepthAttachmentis notNULL_HANDLE, and thelayoutmember ofpDepthAttachmentisIMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this command must not write any values to the depth attachment - If the current render pass instance was begun with
CmdBeginRendering, theimageViewmember ofpStencilAttachmentis notNULL_HANDLE, and thelayoutmember ofpStencilAttachmentisIMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment - If the current render pass instance was begun with
CmdBeginRendering, theimageViewmember ofpDepthAttachmentis notNULL_HANDLE, and thelayoutmember ofpDepthAttachmentisIMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must not write any values to the depth attachment - If the current render pass instance was begun with
CmdBeginRendering, theimageViewmember ofpStencilAttachmentis notNULL_HANDLE, and thelayoutmember ofpStencilAttachmentisIMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must not write any values to the stencil attachment - If the current render pass instance was begun with
CmdBeginRendering, the bound graphics pipeline must have been created with aVkPipelineRenderingCreateInfo::viewMaskequal toVkRenderingInfo::viewMask - If the
dynamicRenderingUnusedAttachmentsfeature is not enabled and the current render pass instance was begun withCmdBeginRendering, the bound graphics pipeline must have been created with aVkPipelineRenderingCreateInfo::colorAttachmentCountequal toVkRenderingInfo::colorAttachmentCount - If the
dynamicRenderingUnusedAttachmentsfeature is not enabled, and the current render pass instance was begun withCmdBeginRenderingandVkRenderingInfo::colorAttachmentCountgreater than 0, then each element of theVkRenderingInfo::pColorAttachmentsarray with animageViewnot equal toNULL_HANDLEmust have been created with aVkFormatequal to the corresponding element ofVkPipelineRenderingCreateInfo::pColorAttachmentFormatsused to create the bound graphics pipeline - If the
dynamicRenderingUnusedAttachmentsfeature is not enabled, and the current render pass instance was begun withCmdBeginRenderingandVkRenderingInfo::colorAttachmentCountgreater than 0, then each element of theVkRenderingInfo::pColorAttachmentsarray with animageViewequal toNULL_HANDLEmust have the corresponding element ofVkPipelineRenderingCreateInfo::pColorAttachmentFormatsused to create the bound pipeline equal toFORMAT_UNDEFINED - If the
dynamicRenderingUnusedAttachmentsfeature is enabled, and the current render pass instance was begun withCmdBeginRenderingandVkRenderingInfo::colorAttachmentCountgreater than 0, then each element of theVkRenderingInfo::pColorAttachmentsarray with animageViewnot equal toNULL_HANDLEmust have been created with aVkFormatequal to the corresponding element ofVkPipelineRenderingCreateInfo::pColorAttachmentFormatsused to create the bound graphics pipeline, or the corresponding element ofVkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must beFORMAT_UNDEFINED - If the current render pass instance was begun with
CmdBeginRendering, with aVkRenderingInfo::colorAttachmentCountequal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode ofRESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of theVkRenderingInfo::pColorAttachmentsarray with aresolveImageViewnot equal toNULL_HANDLEmust have been created with an image created with aVkExternalFormatANDROID::externalFormatvalue equal to theVkExternalFormatANDROID::externalFormatvalue used to create the bound graphics pipeline - If there is no shader object bound to any graphics stage, the current render pass instance was begun with
CmdBeginRenderingand aVkRenderingInfo::colorAttachmentCountequal to 1, and a color attachment with a resolve mode ofRESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of theVkRenderingInfo::pColorAttachmentsarray with aimageViewnot equal toNULL_HANDLEmust have been created with an image created with aVkExternalFormatANDROID::externalFormatvalue equal to theVkExternalFormatANDROID::externalFormatvalue used to create the bound graphics pipeline - If the current render pass instance was begun with
CmdBeginRendering, there is no shader object bound to any graphics stage, and the bound graphics pipeline was created with a non-zeroVkExternalFormatANDROID::externalFormatvalue and with theDYNAMIC_STATE_COLOR_BLEND_ENABLE_EXTdynamic state enabled, thenCmdSetColorBlendEnableEXTmust have set the blend enable toFALSEprior to this drawing command - If the current render pass instance was begun with
CmdBeginRendering, there is no shader object bound to any graphics stage, and the bound graphics pipeline was created with a non-zeroVkExternalFormatANDROID::externalFormatvalue and with theDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXTdynamic state enabled, thenCmdSetRasterizationSamplesEXTmust have setrasterizationSamplestoSAMPLE_COUNT_1_BITprior to this drawing command - If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the
RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROIDresolve mode, thenCmdSetColorBlendEnableEXTmust have set blend enable toFALSEprior to this drawing command - If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the
RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROIDresolve mode, thenCmdSetRasterizationSamplesEXTmust have setrasterizationSamplestoSAMPLE_COUNT_1_BITprior to this drawing command - If the current render pass instance was begun with
CmdBeginRendering, there is no shader object bound to any graphics stage, and the bound graphics pipeline was created with a non-zeroVkExternalFormatANDROID::externalFormatvalue and with theDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRdynamic state enabled, thenCmdSetFragmentShadingRateKHRmust have setpFragmentSize→widthto 1 prior to this drawing command - If the current render pass instance was begun with
CmdBeginRendering, there is no shader object bound to any graphics stage, and the bound graphics pipeline was created with a non-zeroVkExternalFormatANDROID::externalFormatvalue and with theDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRdynamic state enabled, thenCmdSetFragmentShadingRateKHRmust have setpFragmentSize→heightto 1 prior to this drawing command - If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the
RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROIDresolve mode, thenCmdSetFragmentShadingRateKHRmust have setpFragmentSize→widthto 1 prior to this drawing command - If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the
RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROIDresolve mode, thenCmdSetFragmentShadingRateKHRmust have setpFragmentSize→heightto 1 prior to this drawing command - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXTdynamic state enabled thenCmdSetColorWriteEnableEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
colorWriteEnablefeature is enabled, and a shader object is bound to theSHADER_STAGE_FRAGMENT_BITstage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, thenCmdSetColorWriteEnableEXTmust 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_WRITE_ENABLE_EXTdynamic state enabled then theattachmentCountparameter ofvkCmdSetColorWriteEnableEXTmust be greater than or equal to theVkPipelineColorBlendStateCreateInfo::attachmentCountof the bound graphics pipeline - If the
colorWriteEnablefeature is enabled, and a shader object is bound to theSHADER_STAGE_FRAGMENT_BITstage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, then theattachmentCountparameter of most recent call tovkCmdSetColorWriteEnableEXTin 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_EXTdynamic state enabled thenCmdSetDiscardRectangleEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command for each discard rectangle inVkPipelineDiscardRectangleStateCreateInfoEXT::discardRectangleCount - If the
VK_EXT_discard_rectanglesextension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXTdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetDiscardRectangleEnableEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_EXT_discard_rectanglesextension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXTdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value ofdiscardRectangleEnableisTRUE, thenCmdSetDiscardRectangleModeEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_EXT_discard_rectanglesextension is enabled, and a shader object is bound to any graphics stage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, and the most recent call toCmdSetDiscardRectangleEnableEXTin the current command buffer setdiscardRectangleEnabletoTRUE, thenCmdSetDiscardRectangleEXTmust 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, thedynamicRenderingUnusedAttachmentsfeature is not enabled, andVkRenderingInfo::pDepthAttachment→imageViewwasNULL_HANDLE, the value ofVkPipelineRenderingCreateInfo::depthAttachmentFormatused to create the bound graphics pipeline must be equal toFORMAT_UNDEFINED - If current render pass instance was begun with
CmdBeginRendering, thedynamicRenderingUnusedAttachmentsfeature is not enabled, andVkRenderingInfo::pDepthAttachment→imageViewwas notNULL_HANDLE, the value ofVkPipelineRenderingCreateInfo::depthAttachmentFormatused to create the bound graphics pipeline must be equal to theVkFormatused to createVkRenderingInfo::pDepthAttachment→imageView - If the current render pass instance was begun with
CmdBeginRendering, thedynamicRenderingUnusedAttachmentsfeature is enabled,VkRenderingInfo::pDepthAttachment→imageViewwas notNULL_HANDLE, and the value ofVkPipelineRenderingCreateInfo::depthAttachmentFormatused to create the bound graphics pipeline was not equal to theVkFormatused to createVkRenderingInfo::pDepthAttachment→imageView, the value of the format must beFORMAT_UNDEFINED - If the current render pass instance was begun with
CmdBeginRendering, thedynamicRenderingUnusedAttachmentsfeature is not enabled, andVkRenderingInfo::pStencilAttachment→imageViewwasNULL_HANDLE, the value ofVkPipelineRenderingCreateInfo::stencilAttachmentFormatused to create the bound graphics pipeline must be equal toFORMAT_UNDEFINED - If current render pass instance was begun with
CmdBeginRendering, thedynamicRenderingUnusedAttachmentsfeature is not enabled, andVkRenderingInfo::pStencilAttachment→imageViewwas notNULL_HANDLE, the value ofVkPipelineRenderingCreateInfo::stencilAttachmentFormatused to create the bound graphics pipeline must be equal to theVkFormatused to createVkRenderingInfo::pStencilAttachment→imageView - If the current render pass instance was begun with
CmdBeginRendering, thedynamicRenderingUnusedAttachmentsfeature is enabled,VkRenderingInfo::pStencilAttachment→imageViewwas notNULL_HANDLE, and the value ofVkPipelineRenderingCreateInfo::stencilAttachmentFormatused to create the bound graphics pipeline was not equal to theVkFormatused to createVkRenderingInfo::pStencilAttachment→imageView, the value of the format must beFORMAT_UNDEFINED - If the current render pass instance was begun with
CmdBeginRenderingandVkRenderingFragmentShadingRateAttachmentInfoKHR::imageViewwas notNULL_HANDLE, the bound graphics pipeline must have been created withPIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR - If the current render pass instance was begun with
CmdBeginRenderingandVkRenderingFragmentDensityMapAttachmentInfoEXT::imageViewwas notNULL_HANDLE, the bound graphics pipeline must have been created withPIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT - If the bound pipeline was created with a
VkAttachmentSampleCountInfoAMDorVkAttachmentSampleCountInfoNVstructure, and the current render pass instance was begun withCmdBeginRenderingwith aVkRenderingInfo::colorAttachmentCountparameter greater than 0, then each element of theVkRenderingInfo::pColorAttachmentsarray with aimageViewnot equal toNULL_HANDLEmust have been created with a sample count equal to the corresponding element of thepColorAttachmentSamplesmember ofVkAttachmentSampleCountInfoAMDorVkAttachmentSampleCountInfoNVused to create the bound graphics pipeline - If the current render pass instance was begun with
CmdBeginRendering, the bound pipeline was created with aVkAttachmentSampleCountInfoAMDorVkAttachmentSampleCountInfoNVstructure, andVkRenderingInfo::pDepthAttachment→imageViewwas notNULL_HANDLE, the value of thedepthStencilAttachmentSamplesmember ofVkAttachmentSampleCountInfoAMDorVkAttachmentSampleCountInfoNVused to create the bound graphics pipeline must be equal to the sample count used to createVkRenderingInfo::pDepthAttachment→imageView - If the current render pass instance was begun with
CmdBeginRendering, the bound pipeline was created with aVkAttachmentSampleCountInfoAMDorVkAttachmentSampleCountInfoNVstructure, andVkRenderingInfo::pStencilAttachment→imageViewwas notNULL_HANDLE, the value of thedepthStencilAttachmentSamplesmember ofVkAttachmentSampleCountInfoAMDorVkAttachmentSampleCountInfoNVused to create the bound graphics pipeline must be equal to the sample count used to createVkRenderingInfo::pStencilAttachment→imageView - If the bound pipeline was created without a
VkAttachmentSampleCountInfoAMDorVkAttachmentSampleCountInfoNVstructure, and themultisampledRenderToSingleSampledfeature is not enabled, and the current render pass instance was begun withCmdBeginRenderingwith aVkRenderingInfo::colorAttachmentCountparameter greater than 0, then each element of theVkRenderingInfo::pColorAttachmentsarray with aimageViewnot equal toNULL_HANDLEmust have been created with a sample count equal to the value ofrasterizationSamplesfor the bound graphics pipeline - If the bound pipeline was created without a
VkAttachmentSampleCountInfoAMDorVkAttachmentSampleCountInfoNVstructure, and themultisampledRenderToSingleSampledfeature is not enabled, andVkRenderingInfo::pDepthAttachment→imageViewwas notNULL_HANDLE, the value ofrasterizationSamplesfor the bound graphics pipeline must be equal to the sample count used to createVkRenderingInfo::pDepthAttachment→imageView - If the bound pipeline was created without a
VkAttachmentSampleCountInfoAMDorVkAttachmentSampleCountInfoNVstructure, and themultisampledRenderToSingleSampledfeature is not enabled, andVkRenderingInfo::pStencilAttachment→imageViewwas notNULL_HANDLE, the value ofrasterizationSamplesfor the bound graphics pipeline must be equal to the sample count used to createVkRenderingInfo::pStencilAttachment→imageView - If this command has been called inside a render pass instance started with
CmdBeginRendering, and thepNextchain ofVkRenderingInfoincludes aVkMultisampledRenderToSingleSampledInfoEXTstructure withmultisampledRenderToSingleSampledEnableequal toTRUE, then the value ofrasterizationSamplesfor the bound graphics pipeline must be equal toVkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples - If the current render pass instance was begun with
CmdBeginRendering, the bound pipeline must have been created with aVkGraphicsPipelineCreateInfo::renderPassequal toNULL_HANDLE - If the current render pass instance was begun with
CmdBeginRendering, there is a graphics pipeline bound with a fragment shader that statically writes to a color attachment, the color write mask is not zero, color writes are enabled, and the corresponding element of theVkRenderingInfo::pColorAttachments→imageViewwas notNULL_HANDLE, then the corresponding element ofVkPipelineRenderingCreateInfo::pColorAttachmentFormatsused to create the pipeline must not beFORMAT_UNDEFINED - If the current render pass instance was begun with
CmdBeginRendering, there is a graphics pipeline bound, depth test is enabled, depth write is enabled, and theVkRenderingInfo::pDepthAttachment→imageViewwas notNULL_HANDLE, then theVkPipelineRenderingCreateInfo::depthAttachmentFormatused to create the pipeline must not beFORMAT_UNDEFINED - If the current render pass instance was begun with
CmdBeginRendering, there is a graphics pipeline bound, stencil test is enabled and theVkRenderingInfo::pStencilAttachment→imageViewwas notNULL_HANDLE, then theVkPipelineRenderingCreateInfo::stencilAttachmentFormatused to create the pipeline must not beFORMAT_UNDEFINED - If the
primitivesGeneratedQueryWithRasterizerDiscardfeature is not enabled and theQUERY_TYPE_PRIMITIVES_GENERATED_EXTquery is active, rasterization discard must not be enabled - If the
primitivesGeneratedQueryWithNonZeroStreamsfeature is not enabled and theQUERY_TYPE_PRIMITIVES_GENERATED_EXTquery is active, the bound graphics pipeline must not have been created with a non-zero value inVkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream - If the
depthClampfeature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXTdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetDepthClampEnableEXTmust 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_POLYGON_MODE_EXTdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetPolygonModeEXTmust 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_RASTERIZATION_SAMPLES_EXTdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetRasterizationSamplesEXTmust 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_SAMPLE_MASK_EXTdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetSampleMaskEXTmust 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_ALPHA_TO_COVERAGE_ENABLE_EXTdynamic state enabled, andalphaToCoverageEnablewasTRUEin the last call toCmdSetAlphaToCoverageEnableEXT, then the Fragment Output Interface must contain a variable for the alphaComponentword inLocation0 atIndex0 - If a shader object is bound to any graphics stage, and the most recent call to
CmdSetAlphaToCoverageEnableEXTin the current command buffer setalphaToCoverageEnabletoTRUE, then the Fragment Output Interface must contain a variable for the alphaComponentword inLocation0 atIndex0 - If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the
DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXTdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetAlphaToCoverageEnableEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
alphaToOnefeature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXTdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetAlphaToOneEnableEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
logicOpfeature is enabled, a shader object is bound to theSHADER_STAGE_FRAGMENT_BITstage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_LOGIC_OP_ENABLE_EXTdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetLogicOpEnableEXTmust 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_ENABLE_EXTdynamic state enabled thenCmdSetColorBlendEnableEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If a shader object is bound to the
SHADER_STAGE_FRAGMENT_BITstage, and both the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSEand there are color attachments bound, thenCmdSetColorBlendEnableEXTmust 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_EQUATION_EXTdynamic state enabled thenCmdSetColorBlendEquationEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If a shader object is bound to the
SHADER_STAGE_FRAGMENT_BITstage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, and the most recent call toCmdSetColorBlendEnableEXTfor any attachment set that attachment’s value inpColorBlendEnablestoTRUE, thenCmdSetColorBlendEquationEXTmust 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_WRITE_MASK_EXTdynamic state enabled thenCmdSetColorWriteMaskEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If a shader object is bound to the
SHADER_STAGE_FRAGMENT_BITstage, and both the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSEand there are color attachments bound, thenCmdSetColorWriteMaskEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
geometryStreamsfeature is enabled, and a shader object is bound to theSHADER_STAGE_GEOMETRY_BITstage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_RASTERIZATION_STREAM_EXTdynamic state enabled, thenCmdSetRasterizationStreamEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_EXT_conservative_rasterizationextension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXTdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetConservativeRasterizationModeEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_EXT_conservative_rasterizationextension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXTdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value ofconservativeRasterizationModeisCONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, thenCmdSetExtraPrimitiveOverestimationSizeEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
depthClipEnablefeature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXTdynamic state, thenCmdSetDepthClipEnableEXTmust 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_EXTdynamic state enabled thenCmdSetColorBlendAdvancedEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_EXT_blend_operation_advancedextension is enabled, and a shader object is bound to theSHADER_STAGE_FRAGMENT_BITstage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, then at least one ofCmdSetColorBlendEquationEXTandCmdSetColorBlendAdvancedEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_EXT_provoking_vertexextension is enabled, a shader object is bound to theSHADER_STAGE_VERTEX_BITstage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXTdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetProvokingVertexModeEXTmust 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_EXTdynamic state enabled thenCmdSetLineRasterizationModeEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If any of the
stippledRectangularLines,stippledBresenhamLinesorstippledSmoothLinesfeatures are enabled, and a shader object is bound to any graphics stage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, and the most recent call toCmdSetPolygonModeEXTin the current command buffer setpolygonModetoPOLYGON_MODE_LINE, thenCmdSetLineRasterizationModeEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If any of the
stippledRectangularLines,stippledBresenhamLinesorstippledSmoothLinesfeatures are enabled, and a shader object is bound to theSHADER_STAGE_VERTEX_BITstage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, and the most recent call toCmdSetPrimitiveTopologyin the current command buffer setprimitiveTopologyto any line topology, thenCmdSetLineRasterizationModeEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If any of the
stippledRectangularLines,stippledBresenhamLinesorstippledSmoothLinesfeatures are enabled, and a shader object that outputs line primitives is bound to theSHADER_STAGE_TESSELLATION_EVALUATION_BITorSHADER_STAGE_GEOMETRY_BITstage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, thenCmdSetLineRasterizationModeEXTmust 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_EXTdynamic state enabled thenCmdSetLineStippleEnableEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If any of the
stippledRectangularLines,stippledBresenhamLinesorstippledSmoothLinesfeatures are enabled, and a shader object is bound to any graphics stage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, and the most recent call toCmdSetPolygonModeEXTin the current command buffer setpolygonModetoPOLYGON_MODE_LINE, thenCmdSetLineStippleEnableEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If any of the
stippledRectangularLines,stippledBresenhamLinesorstippledSmoothLinesfeatures are enabled, and a shader object is bound to theSHADER_STAGE_VERTEX_BITstage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, and the most recent call toCmdSetPrimitiveTopologyin the current command buffer setprimitiveTopologyto any line topology, thenCmdSetLineStippleEnableEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If any of the
stippledRectangularLines,stippledBresenhamLinesorstippledSmoothLinesfeatures are enabled, and a shader object that outputs line primitives is bound to theSHADER_STAGE_TESSELLATION_EVALUATION_BITorSHADER_STAGE_GEOMETRY_BITstage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, thenCmdSetLineStippleEnableEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If any of the
stippledRectangularLines,stippledBresenhamLinesorstippledSmoothLinesfeatures are enabled and a shader object is bound to any graphics stage, or a bound graphics pipeline state was created with theDYNAMIC_STATE_LINE_STIPPLEdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value ofstippledLineEnableisTRUE, thenCmdSetLineStipplemust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
depthClipControlfeature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXTdynamic state enabled, thenCmdSetDepthClipNegativeOneToOneEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
depthClampControlfeature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXTdynamic state enabled, and the current value ofdepthClampEnableisTRUE, thenCmdSetDepthClampRangeEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_NV_clip_space_w_scalingextension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NVdynamic state enabled, thenCmdSetViewportWScalingEnableNVmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_NV_viewport_swizzleextension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_VIEWPORT_SWIZZLE_NVdynamic state enabled, thenCmdSetViewportSwizzleNVmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_NV_fragment_coverage_to_colorextension is enabled, a shader object is bound to theSHADER_STAGE_FRAGMENT_BITstage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NVdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetCoverageToColorEnableNVmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_NV_fragment_coverage_to_colorextension is enabled, a shader object is bound to theSHADER_STAGE_FRAGMENT_BITstage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NVdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value ofcoverageToColorEnableisTRUE, thenCmdSetCoverageToColorLocationNVmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_NV_framebuffer_mixed_samplesextension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_COVERAGE_MODULATION_MODE_NVdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetCoverageModulationModeNVmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_NV_framebuffer_mixed_samplesextension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NVdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value ofcoverageModulationModeis any value other thanCOVERAGE_MODULATION_MODE_NONE_NV, thenCmdSetCoverageModulationTableEnableNVmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
VK_NV_framebuffer_mixed_samplesextension is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NVdynamic state enabled, the current value ofrasterizerDiscardEnableisFALSE, and the current value ofcoverageModulationTableEnableisTRUE, thenCmdSetCoverageModulationTableNVmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
shadingRateImagefeature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NVdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetShadingRateImageEnableNVmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
pipelineFragmentShadingRatefeature is enabled, a shader object is bound to theSHADER_STAGE_FRAGMENT_BITstage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetFragmentShadingRateKHRmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
representativeFragmentTestfeature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NVdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetRepresentativeFragmentTestEnableNVmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
coverageReductionModefeature is enabled, a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NVdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetCoverageReductionModeNVmust 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_ENABLE_EXTstate enabled and the last call toCmdSetColorBlendEnableEXTsetpColorBlendEnablesfor any attachment toTRUE, then for those attachments in the subpass the corresponding image view’s format features must containFORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXTstate enabled, and the current subpass does not use any color and/or depth/stencil attachments, then therasterizationSamplesin the last call toCmdSetRasterizationSamplesEXTmust follow the rules for a zero-attachment subpass - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_SAMPLE_MASK_EXTstate enabled and theDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXTstate disabled, then thesamplesparameter in the last call toCmdSetSampleMaskEXTmust be greater or equal to theVkPipelineMultisampleStateCreateInfo::rasterizationSamplesparameter used to create the bound graphics pipeline - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_SAMPLE_MASK_EXTstate andDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXTstates enabled, then thesamplesparameter in the last call toCmdSetSampleMaskEXTmust be greater or equal to therasterizationSamplesparameter in the last call toCmdSetRasterizationSamplesEXT - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXTstate enabled, and themultisampledRenderToSingleSampledfeature is not enabled, and neither theVK_AMD_mixed_attachment_samplesnor theVK_NV_framebuffer_mixed_samplesextensions are enabled, then therasterizationSamplesin the last call toCmdSetRasterizationSamplesEXTmust 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_EXTstate enabled, or a shader object is bound to any graphics stage, and the current render pass instance includes aVkMultisampledRenderToSingleSampledInfoEXTstructure withmultisampledRenderToSingleSampledEnableequal toTRUE, then therasterizationSamplesin the last call toCmdSetRasterizationSamplesEXTmust be the same as therasterizationSamplesmember of that structure - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXTdynamic state enabled thenCmdSetColorBlendEnableEXTmust have been called in the current command buffer prior to this drawing command, and the attachments specified by thefirstAttachmentandattachmentCountparameters ofvkCmdSetColorBlendEnableEXTcalls must specify an enable for all active color attachments in the current subpass - If a shader object is bound to the
SHADER_STAGE_FRAGMENT_BITstage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, thenCmdSetColorBlendEnableEXTmust have been called in the current command buffer prior to this drawing command, and the attachments specified by thefirstAttachmentandattachmentCountparameters ofvkCmdSetColorBlendEnableEXTcalls must specify an enable for all active color attachments in the current subpass - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXTdynamic state enabled thenCmdSetColorBlendEquationEXTmust have been called in the current command buffer prior to this drawing command, and the attachments specified by thefirstAttachmentandattachmentCountparameters ofvkCmdSetColorBlendEquationEXTcalls must specify the blend equations for all active color attachments in the current subpass where blending is enabled - If a shader object is bound to the
SHADER_STAGE_FRAGMENT_BITstage, and both the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSEand there are color attachments bound, thenCmdSetColorBlendEquationEXTmust have been called in the current command buffer prior to this drawing command, and the attachments specified by thefirstAttachmentandattachmentCountparameters ofvkCmdSetColorBlendEquationEXTcalls must specify the blend equations for all active color attachments in the current subpass where blending is enabled - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_COLOR_WRITE_MASK_EXTdynamic state enabled thenCmdSetColorWriteMaskEXTmust have been called in the current command buffer prior to this drawing command, and the attachments specified by thefirstAttachmentandattachmentCountparameters ofvkCmdSetColorWriteMaskEXTcalls must specify the color write mask for all active color attachments in the current subpass - If a shader object is bound to the
SHADER_STAGE_FRAGMENT_BITstage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, thenCmdSetColorWriteMaskEXTmust have been called in the current command buffer prior to this drawing command, and the attachments specified by thefirstAttachmentandattachmentCountparameters ofvkCmdSetColorWriteMaskEXTcalls must specify the color write mask for all active color attachments in the current subpass - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXTdynamic state enabled thenCmdSetColorBlendAdvancedEXTmust have been called in the current command buffer prior to this drawing command, and the attachments specified by thefirstAttachmentandattachmentCountparameters ofvkCmdSetColorBlendAdvancedEXTcalls must specify the advanced blend equations for all active color attachments in the current subpass where blending is enabled - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXTandDYNAMIC_STATE_COLOR_BLEND_ENABLE_EXTdynamic states enabled and the last calls toCmdSetColorBlendEnableEXTandCmdSetColorBlendAdvancedEXThave enabled advanced blending, then the number of active color attachments in the current subpass must not exceedadvancedBlendMaxColorAttachments - If the
primitivesGeneratedQueryWithNonZeroStreamsfeature is not enabled and theQUERY_TYPE_PRIMITIVES_GENERATED_EXTquery is active, and the bound graphics pipeline was created withDYNAMIC_STATE_RASTERIZATION_STREAM_EXTstate enabled, the last call toCmdSetRasterizationStreamEXTmust have set therasterizationStreamto zero - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_SAMPLE_LOCATIONS_EXTstate enabled and theDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXTstate disabled, and the current value ofsampleLocationsEnableisTRUE, then thesampleLocationsPerPixelmember ofpSampleLocationsInfoin the last call toCmdSetSampleLocationsEXTmust equal therasterizationSamplesmember of theVkPipelineMultisampleStateCreateInfostructure the bound graphics pipeline has been created with - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_SAMPLE_LOCATIONS_EXTstate enabled and theDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXTstate enabled, and the current value ofsampleLocationsEnableisTRUE, then thesampleLocationsPerPixelmember ofpSampleLocationsInfoin the last call toCmdSetSampleLocationsEXTmust equal therasterizationSamplesparameter of the last call toCmdSetRasterizationSamplesEXT - If a shader object is bound to the
SHADER_STAGE_FRAGMENT_BITstage, or the bound graphics pipeline was created with theDYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXTstate enabled, andsampleLocationsEnablewasTRUEin the last call toCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with theIMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXTbit set - If a shader object is bound to the
SHADER_STAGE_FRAGMENT_BITstage, or the bound graphics pipeline state was created with theDYNAMIC_STATE_SAMPLE_LOCATIONS_EXTstate enabled and theDYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXTstate enabled, and ifsampleLocationsEnablewasTRUEin the last call toCmdSetSampleLocationsEnableEXT, then thesampleLocationsInfo.sampleLocationGridSize.widthin the last call toCmdSetSampleLocationsEXTmust evenly divideVkMultisamplePropertiesEXT::sampleLocationGridSize.widthas returned byGetPhysicalDeviceMultisamplePropertiesEXTwith asamplesparameter equalingrasterizationSamples - If a shader object is bound to the
SHADER_STAGE_FRAGMENT_BITstage, or the bound graphics pipeline state was created with theDYNAMIC_STATE_SAMPLE_LOCATIONS_EXTstate enabled and theDYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXTstate enabled, and ifsampleLocationsEnablewasTRUEin the last call toCmdSetSampleLocationsEnableEXT, then thesampleLocationsInfo.sampleLocationGridSize.heightin the last call toCmdSetSampleLocationsEXTmust evenly divideVkMultisamplePropertiesEXT::sampleLocationGridSize.heightas returned byGetPhysicalDeviceMultisamplePropertiesEXTwith asamplesparameter equalingrasterizationSamples - If a shader object is bound to the
SHADER_STAGE_FRAGMENT_BITstage, or the bound graphics pipeline state was created with theDYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXTstate enabled, and ifsampleLocationsEnablewasTRUEin the last call toCmdSetSampleLocationsEnableEXT, the fragment shader code must not statically use the extended instructionInterpolateAtSample - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_SAMPLE_LOCATIONS_EXTstate disabled and theDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXTstate enabled, and the current value ofsampleLocationsEnableisTRUE, thensampleLocationsInfo.sampleLocationGridSize.widthmust evenly divideVkMultisamplePropertiesEXT::sampleLocationGridSize.widthas returned byGetPhysicalDeviceMultisamplePropertiesEXTwith asamplesparameter equaling the value ofrasterizationSamplesin the last call toCmdSetRasterizationSamplesEXT - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_SAMPLE_LOCATIONS_EXTstate disabled and theDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXTstate enabled, and the current value ofsampleLocationsEnableisTRUE, thensampleLocationsInfo.sampleLocationGridSize.heightmust evenly divideVkMultisamplePropertiesEXT::sampleLocationGridSize.heightas returned byGetPhysicalDeviceMultisamplePropertiesEXTwith asamplesparameter equaling the value ofrasterizationSamplesin the last call toCmdSetRasterizationSamplesEXT - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_SAMPLE_LOCATIONS_EXTstate disabled and theDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXTstate enabled, and the current value ofsampleLocationsEnableisTRUE, thensampleLocationsInfo.sampleLocationsPerPixelmust equalrasterizationSamplesin the last call toCmdSetRasterizationSamplesEXT - If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the
DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NVstate enabled, and the last call toCmdSetCoverageModulationTableEnableNVsetcoverageModulationTableEnabletoTRUE, then thecoverageModulationTableCountparameter in the last call toCmdSetCoverageModulationTableNVmust equal the currentrasterizationSamplesdivided by the number of color samples in the current subpass - If the
VK_NV_framebuffer_mixed_samplesextension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the bound pipeline, then the currentrasterizationSamplesmust be the same as the sample count of the depth/stencil attachment - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NVstate enabled and the last call toCmdSetCoverageToColorEnableNVset thecoverageToColorEnabletoTRUE, then the current subpass must have a color attachment at the location selected by the last call toCmdSetCoverageToColorLocationNVcoverageToColorLocation, with aVkFormatofFORMAT_R8_UINT,FORMAT_R8_SINT,FORMAT_R16_UINT,FORMAT_R16_SINT,FORMAT_R32_UINT, orFORMAT_R32_SINT - If the
VK_NV_fragment_coverage_to_colorextension is enabled, and a shader object is bound to theSHADER_STAGE_FRAGMENT_BITstage, and the most recent call toCmdSetRasterizerDiscardEnablein the current command buffer setrasterizerDiscardEnabletoFALSE, and the last call toCmdSetCoverageToColorEnableNVset thecoverageToColorEnabletoTRUE, then the current subpass must have a color attachment at the location selected by the last call toCmdSetCoverageToColorLocationNVcoverageToColorLocation, with aVkFormatofFORMAT_R8_UINT,FORMAT_R8_SINT,FORMAT_R16_UINT,FORMAT_R16_SINT,FORMAT_R32_UINT, orFORMAT_R32_SINT - If this
VK_NV_coverage_reduction_modeextension is enabled, the bound graphics pipeline state was created with theDYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NVandDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXTstates enabled, the current coverage reduction modecoverageReductionMode, then the currentrasterizationSamples, and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned byGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_VIEWPORT_WITH_COUNTdynamic state enabled, but not theDYNAMIC_STATE_VIEWPORT_SWIZZLE_NVdynamic state enabled, then the bound graphics pipeline must have been created withVkPipelineViewportSwizzleStateCreateInfoNV::viewportCountgreater or equal to theviewportCountparameter in the last call toCmdSetViewportWithCount - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_VIEWPORT_WITH_COUNTandDYNAMIC_STATE_VIEWPORT_SWIZZLE_NVdynamic states enabled then theviewportCountparameter in the last call toCmdSetViewportSwizzleNVmust be greater than or equal to theviewportCountparameter in the last call toCmdSetViewportWithCount - If the
VK_NV_viewport_swizzleextension is enabled, and a shader object is bound to any graphics stage, then theviewportCountparameter in the last call toCmdSetViewportSwizzleNVmust be greater than or equal to theviewportCountparameter in the last call toCmdSetViewportWithCount - If the
VK_NV_framebuffer_mixed_samplesextension is enabled, and if the current subpass has any color attachments andrasterizationSamplesof the last call toCmdSetRasterizationSamplesEXTis greater than the number of color samples, then the pipelinesampleShadingEnablemust beFALSE - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXTorDYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXTdynamic states enabled, and if the currentstippledLineEnablestate isTRUEand the currentlineRasterizationModestate isLINE_RASTERIZATION_MODE_RECTANGULAR, then thestippledRectangularLinesfeature must be enabled - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXTorDYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXTdynamic states enabled, and if the currentstippledLineEnablestate isTRUEand the currentlineRasterizationModestate isLINE_RASTERIZATION_MODE_BRESENHAM, then thestippledBresenhamLinesfeature must be enabled - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXTorDYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXTdynamic states enabled, and if the currentstippledLineEnablestate isTRUEand the currentlineRasterizationModestate isLINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then thestippledSmoothLinesfeature must be enabled - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXTorDYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXTdynamic states enabled, and if the currentstippledLineEnablestate isTRUEand the currentlineRasterizationModestate isLINE_RASTERIZATION_MODE_DEFAULT, then thestippledRectangularLinesfeature must be enabled andVkPhysicalDeviceLimits::strictLinesmust beTRUE - If the bound graphics pipeline state was created with the
DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXTdynamic state enabled,conservativePointAndLineRasterizationis not supported, and the effective primitive topology output by the last pre-rasterization shader stage is a line or point, then theconservativeRasterizationModeset by the last call toCmdSetConservativeRasterizationModeEXTmust beCONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT - If the bound pipeline was created with the
VkPipelineShaderStageCreateInfo::stagemember of an element ofVkGraphicsPipelineCreateInfo::pStagesset toSHADER_STAGE_VERTEX_BIT,SHADER_STAGE_TESSELLATION_CONTROL_BIT,SHADER_STAGE_TESSELLATION_EVALUATION_BITorSHADER_STAGE_GEOMETRY_BIT, then Mesh Shader Queries must not be active - If a shader object is bound to the
SHADER_STAGE_FRAGMENT_BITstage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXTdynamic state enabled, and the current value ofrasterizerDiscardEnableisFALSE, thenCmdSetAttachmentFeedbackLoopEnableEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If dynamic state was inherited from
VkCommandBufferInheritanceViewportScissorInfoNV, it must be set in the current command buffer prior to this drawing command - If there is no bound graphics pipeline,
vkCmdBindShadersEXTmust have been called in the current command buffer withpStageswith an element ofSHADER_STAGE_FRAGMENT_BIT - If there is no bound graphics pipeline, and the
taskShaderfeature is enabled,vkCmdBindShadersEXTmust have been called in the current command buffer withpStageswith an element ofSHADER_STAGE_TASK_BIT_EXT - If there is no bound graphics pipeline, and the
meshShaderfeature is enabled,vkCmdBindShadersEXTmust have been called in the current command buffer withpStageswith an element ofSHADER_STAGE_MESH_BIT_EXT - If there is no bound graphics pipeline, and at least one of the
taskShaderandmeshShaderfeatures is enabled, one of theSHADER_STAGE_VERTEX_BITorSHADER_STAGE_MESH_BIT_EXTstages must have a validVkShaderEXTbound, and the other must have noVkShaderEXTbound - If there is no bound graphics pipeline, and both the
taskShaderandmeshShaderfeatures are enabled, and a validVkShaderEXTis bound the to theSHADER_STAGE_MESH_BIT_EXTstage, and thatVkShaderEXTwas created without theSHADER_CREATE_NO_TASK_SHADER_BIT_EXTflag, a validVkShaderEXTmust be bound to theSHADER_STAGE_TASK_BIT_EXTstage - If there is no bound graphics pipeline, and both the
taskShaderandmeshShaderfeatures are enabled, and a validVkShaderEXTis bound the to theSHADER_STAGE_MESH_BIT_EXTstage, and thatVkShaderEXTwas created with theSHADER_CREATE_NO_TASK_SHADER_BIT_EXTflag, there must be noVkShaderEXTbound to theSHADER_STAGE_TASK_BIT_EXTstage - If there is no bound graphics pipeline, and a valid
VkShaderEXTis bound to theSHADER_STAGE_VERTEX_BITstage, there must be noVkShaderEXTbound to either theSHADER_STAGE_TASK_BIT_EXTstage or theSHADER_STAGE_MESH_BIT_EXTstage - If any graphics shader is bound which was created with the
SHADER_CREATE_LINK_STAGE_BIT_EXTflag, then all shaders created with theSHADER_CREATE_LINK_STAGE_BIT_EXTflag in the sameCreateShadersEXTcall must also be bound - If any graphics shader is bound which was created with the
SHADER_CREATE_LINK_STAGE_BIT_EXTflag, any stages in between stages whose shaders which did not create a shader with theSHADER_CREATE_LINK_STAGE_BIT_EXTflag as part of the sameCreateShadersEXTcall must not have anyVkShaderEXTbound - All bound graphics shader objects must have been created with identical or identically defined push constant ranges
- All bound graphics shader objects must have been created with identical or identically defined arrays of descriptor set layouts
- If the current render pass instance was begun with
CmdBeginRenderingand aVkRenderingInfo::colorAttachmentCountequal to 1, a color attachment with a resolve mode ofRESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare theDepthReplacingorStencilRefReplacingEXTexecution modes - If the bound graphics pipeline state includes a fragment shader stage, was created with
DYNAMIC_STATE_DEPTH_WRITE_ENABLEset inVkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares theEarlyFragmentTestsexecution mode and usesOpDepthAttachmentReadEXT, thedepthWriteEnableparameter in the last call toCmdSetDepthWriteEnablemust beFALSE - If the bound graphics pipeline state includes a fragment shader stage, was created with
DYNAMIC_STATE_STENCIL_WRITE_MASKset inVkPipelineDynamicStateCreateInfo::pDynamicStates, and the fragment shader declares theEarlyFragmentTestsexecution mode and usesOpStencilAttachmentReadEXT, thewriteMaskparameter in the last call toCmdSetStencilWriteMaskmust be 0 - If a shader object is bound to any graphics stage or the bound graphics pipeline was created with
DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, and the format of any color attachment isFORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of thepColorWriteMasksparameter ofCmdSetColorWriteMaskEXTmust either include all ofCOLOR_COMPONENT_R_BIT,COLOR_COMPONENT_G_BIT, andCOLOR_COMPONENT_B_BIT, or none of them - If blending is enabled for any attachment where either the source or destination blend factors for that attachment use the secondary color input, the maximum value of
Locationfor any output attachment statically used in theFragmentExecutionModelexecuted by this command must be less thanmaxFragmentDualSrcAttachments - If the current render pass was begun with
CmdBeginRendering, and there is no shader object bound to any graphics stage, the value of each element ofVkRenderingAttachmentLocationInfo::pColorAttachmentLocationsset byCmdSetRenderingAttachmentLocationsmust match the value set for the corresponding element in the bound pipeline - If the current render pass was begun with
CmdBeginRendering, and there is no shader object bound to any graphics stage, input attachment index mappings in the bound pipeline must match those set for the current render pass instance viaVkRenderingInputAttachmentIndexInfo - If the current render pass was begun with
CmdBeginRenderingwith theRENDERING_ENABLE_LEGACY_DITHERING_BIT_EXTflag, the bound graphics pipeline must have been created withPIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT - If the bound graphics pipeline was created with
PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT, the current render pass must have begun withCmdBeginRenderingwith theRENDERING_ENABLE_LEGACY_DITHERING_BIT_EXTflag
- All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or
NULL_HANDLEbuffers bound - If the
nullDescriptorfeature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not beNULL_HANDLE - If the
robustBufferAccessfeature is not enabled, and that pipeline was created without enablingPIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESSforvertexInputs, then for a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description - For each vertex attribute accessed by this command, if its
VkVertexInputAttributeDescription::formatorVkVertexInputAttributeDescription2EXT::formatis a packed format, andlegacyVertexAttributesis not enabled, the value ofattribAddress, calculated as described in Vertex Input Calculation, must be a multiple of the size of theformat - For each vertex attribute accessed by this command, if its
VkVertexInputAttributeDescription::formatorVkVertexInputAttributeDescription2EXT::formatis not a packed format, and eitherlegacyVertexAttributesis not enabled orformathas 64-bit components, the value ofattribAddress, calculated as described in Vertex Input Calculation, must be a multiple of the size of the components of theformat - If there is a shader object bound to the
SHADER_STAGE_VERTEX_BITstage or the bound graphics pipeline state was created with theDYNAMIC_STATE_PRIMITIVE_TOPOLOGYdynamic state enabled thenCmdSetPrimitiveTopologymust 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_PRIMITIVE_TOPOLOGYdynamic state enabled and thedynamicPrimitiveTopologyUnrestrictedisFALSE, then theprimitiveTopologyparameter ofvkCmdSetPrimitiveTopologymust be of the same topology class as the pipelineVkPipelineInputAssemblyStateCreateInfo::topologystate - If there is a shader object bound to the
SHADER_STAGE_TESSELLATION_CONTROL_BITstage, thenCmdSetPrimitiveTopologymust have setprimitiveTopologytoPRIMITIVE_TOPOLOGY_PATCH_LISTprior to this drawing command - If the bound graphics pipeline was created with the
DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDEdynamic state enabled, but without theDYNAMIC_STATE_VERTEX_INPUT_EXTdynamic state enabled, thenCmdBindVertexBuffers2must have been called and not subsequently invalidated in the current command buffer prior to this draw command, and thepStridesparameter ofCmdBindVertexBuffers2must not beNULL - If there is a shader object bound to the
SHADER_STAGE_VERTEX_BITstage or the bound graphics pipeline state was created with theDYNAMIC_STATE_VERTEX_INPUT_EXTdynamic state enabled thenCmdSetVertexInputEXTmust have been called and not subsequently invalidated in the current command buffer prior to this draw command - If
vertexAttributeRobustnessis not enabled and there is a shader object bound to theSHADER_STAGE_VERTEX_BITstage or the bound graphics pipeline state was created with theDYNAMIC_STATE_VERTEX_INPUT_EXTdynamic state enabled then all variables with theInputstorage class decorated withLocationin theVertexExecutionModelOpEntryPointmust contain a location inVkVertexInputAttributeDescription2EXT::location - If there is a shader object bound to the
SHADER_STAGE_VERTEX_BITstage or the bound graphics pipeline state was created with theDYNAMIC_STATE_VERTEX_INPUT_EXTdynamic state enabled and either thelegacyVertexAttributesfeature is not enabled or the SPIR-V Type associated with a givenInputvariable of the correspondingLocationin theVertexExecutionModelOpEntryPointis 64-bit, then the numeric type associated with allInputvariables of the correspondingLocationin theVertexExecutionModelOpEntryPointmust be the same asVkVertexInputAttributeDescription2EXT::format - If there is a shader object bound to the
SHADER_STAGE_VERTEX_BITstage or the bound graphics pipeline state was created with theDYNAMIC_STATE_VERTEX_INPUT_EXTdynamic state enabled andVkVertexInputAttributeDescription2EXT::formathas a 64-bit component, then the scalar width associated with allInputvariables of the correspondingLocationin theVertexExecutionModelOpEntryPointmust be 64-bit - If there is a shader object bound to the
SHADER_STAGE_VERTEX_BITstage or the bound graphics pipeline state was created with theDYNAMIC_STATE_VERTEX_INPUT_EXTdynamic state enabled and the scalar width associated with aLocationdecoratedInputvariable in theVertexExecutionModelOpEntryPointis 64-bit, then the correspondingVkVertexInputAttributeDescription2EXT::formatmust have a 64-bit component - If there is a shader object bound to the
SHADER_STAGE_VERTEX_BITstage or the bound graphics pipeline state was created with theDYNAMIC_STATE_VERTEX_INPUT_EXTdynamic state enabled andVkVertexInputAttributeDescription2EXT::formathas a 64-bit component, then allInputvariables at the correspondingLocationin theVertexExecutionModelOpEntryPointmust not use components that are not present in the format - If there is a shader object bound to the
SHADER_STAGE_TESSELLATION_CONTROL_BITstage or the bound graphics pipeline state was created with theDYNAMIC_STATE_PATCH_CONTROL_POINTS_EXTdynamic state enabled, and the current value ofprimitiveTopologyisPRIMITIVE_TOPOLOGY_PATCH_LIST, thenCmdSetPatchControlPointsEXTmust 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_BITstage or the bound graphics pipeline state was created with theDYNAMIC_STATE_PRIMITIVE_RESTART_ENABLEdynamic state enabled thenCmdSetPrimitiveRestartEnablemust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If the
primitiveTopologyListRestartfeature is not enabled, the topology isPRIMITIVE_TOPOLOGY_POINT_LIST,PRIMITIVE_TOPOLOGY_LINE_LIST,PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, orPRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to theSHADER_STAGE_VERTEX_BITstage or the bound graphics pipeline state was created with theDYNAMIC_STATE_PRIMITIVE_RESTART_ENABLEdynamic state enabled thenCmdSetPrimitiveRestartEnablemust beFALSE - The bound graphics pipeline must not have been created with the
VkPipelineShaderStageCreateInfo::stagemember of any element ofVkGraphicsPipelineCreateInfo::pStagesset toSHADER_STAGE_TASK_BIT_EXTorSHADER_STAGE_MESH_BIT_EXT - There must be no shader object bound to either of the
SHADER_STAGE_TASK_BIT_EXTorSHADER_STAGE_MESH_BIT_EXTstages - If a shader object is bound to the
SHADER_STAGE_TESSELLATION_EVALUATION_BITstage or a graphics pipeline is bound which was created with theDYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXTdynamic state enabled, thenCmdSetTessellationDomainOriginEXTmust have been called and not subsequently invalidated in the current command buffer prior to this drawing command - If there is no bound graphics pipeline,
vkCmdBindShadersEXTmust have been called in the current command buffer withpStageswith an element ofSHADER_STAGE_VERTEX_BIT - If there is no bound graphics pipeline, and the
tessellationShaderfeature is enabled,vkCmdBindShadersEXTmust have been called in the current command buffer withpStageswith an element ofSHADER_STAGE_TESSELLATION_CONTROL_BIT - If there is no bound graphics pipeline, and the
tessellationShaderfeature is enabled,vkCmdBindShadersEXTmust have been called in the current command buffer withpStageswith an element ofSHADER_STAGE_TESSELLATION_EVALUATION_BIT - If there is no bound graphics pipeline, and the
geometryShaderfeature is enabled,vkCmdBindShadersEXTmust have been called in the current command buffer withpStageswith an element ofSHADER_STAGE_GEOMETRY_BIT
- If
bufferis non-sparse then it must be bound completely and contiguously to a singleVkDeviceMemoryobject buffermust have been created with theBUFFER_USAGE_INDIRECT_BUFFER_BITbit setoffsetmust be a multiple of 4commandBuffermust not be a protected command buffer
- If
countBufferis non-sparse then it must be bound completely and contiguously to a singleVkDeviceMemoryobject countBuffermust have been created with theBUFFER_USAGE_INDIRECT_BUFFER_BITbit setcountBufferOffsetmust be a multiple of 4- The count stored in
countBuffermust be less than or equal toVkPhysicalDeviceLimits::maxDrawIndirectCount (countBufferOffset + sizeof(uint32_t))must be less than or equal to the size ofcountBuffer- If the
drawIndirectCountfeature is not enabled this function must not be used
- If the
maintenance6feature is not enabled, a valid index buffer must be bound stridemust be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndexedIndirectCommand)- If
maxDrawCountis greater than or equal to 1,(stride × (maxDrawCount - 1) + offset + sizeof(must be less than or equal to the size ofVkDrawIndexedIndirectCommand))buffer
Valid Usage (Implicit)
commandBuffermust be a validVkCommandBufferhandlebuffermust be a validVkBufferhandlecountBuffermust be a validVkBufferhandlecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations - This command must only be called inside of a render pass instance
- This command must only be called outside of a video coding scope
- Each of
buffer,commandBuffer, andcountBuffermust have been created, allocated, or retrieved from the sameVkDevice
Host Synchronization
- Host access to
commandBuffermust be externally synchronized - Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
Command Buffer Levels Render Pass Scope Video Coding Scope Supported Queue Types Command Type Primary Secondary Inside Outside Graphics Action - Parameters:
commandBuffer- the command buffer into which the command is recorded.buffer- the buffer containing draw parameters.offset- the byte offset intobufferwhere parameters begin.countBuffer- the buffer containing the draw count.countBufferOffset- the byte offset intocountBufferwhere the draw count begins.maxDrawCount- specifies the maximum number of draws that will be executed. The actual number of executed draw calls is the minimum of the count specified incountBufferandmaxDrawCount.stride- the byte stride between successive sets of draw parameters.
- If a
-
nvkCreateRenderPass2
public static int nvkCreateRenderPass2(org.lwjgl.vulkan.VkDevice device, long pCreateInfo, long pAllocator, long pRenderPass) Unsafe version of:CreateRenderPass2 -
vkCreateRenderPass2
public static int vkCreateRenderPass2(org.lwjgl.vulkan.VkDevice device, VkRenderPassCreateInfo2 pCreateInfo, @Nullable VkAllocationCallbacks pAllocator, LongBuffer pRenderPass) Create a new render pass object.C Specification
To create a render pass, call:
VkResult vkCreateRenderPass2( VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);or the equivalent command
VkResult vkCreateRenderPass2KHR( VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);Description
This command is functionally identical to
CreateRenderPass, but includes extensible sub-structures that includesTypeandpNextparameters, allowing them to be more easily extended.Valid Usage
devicemust support at least one queue family with theQUEUE_GRAPHICS_BITcapability
Valid Usage (Implicit)
devicemust be a validVkDevicehandlepCreateInfomust be a valid pointer to a validVkRenderPassCreateInfo2structure- If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validVkAllocationCallbacksstructure pRenderPassmust be a valid pointer to aVkRenderPasshandle
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
device- the logical device that creates the render pass.pCreateInfo- a pointer to aVkRenderPassCreateInfo2structure describing the parameters of the render pass.pAllocator- controls host memory allocation as described in the Memory Allocation chapter.pRenderPass- a pointer to aVkRenderPasshandle in which the resulting render pass object is returned.
-
nvkCmdBeginRenderPass2
public static void nvkCmdBeginRenderPass2(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long pRenderPassBegin, long pSubpassBeginInfo) Unsafe version of:CmdBeginRenderPass2 -
vkCmdBeginRenderPass2
public static void vkCmdBeginRenderPass2(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkRenderPassBeginInfo pRenderPassBegin, VkSubpassBeginInfo pSubpassBeginInfo) Begin a new render pass.C Specification
Alternatively to begin a render pass, call:
void vkCmdBeginRenderPass2( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo);or the equivalent command
void vkCmdBeginRenderPass2KHR( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo);Description
After beginning a render pass instance, the command buffer is ready to record the commands for the first subpass of that render pass.
Valid Usage
- Both the
framebufferandrenderPassmembers ofpRenderPassBeginmust have been created on the sameVkDevicethatcommandBufferwas allocated on - If any of the
initialLayoutorfinalLayoutmember of theVkAttachmentDescriptionstructures or thelayoutmember of theVkAttachmentReferencestructures specified when creating the render pass specified in therenderPassmember ofpRenderPassBeginisIMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMALthen the corresponding attachment image view of the framebuffer specified in theframebuffermember ofpRenderPassBeginmust have been created with ausagevalue includingIMAGE_USAGE_COLOR_ATTACHMENT_BIT - If any of the
initialLayoutorfinalLayoutmember of theVkAttachmentDescriptionstructures or thelayoutmember of theVkAttachmentReferencestructures specified when creating the render pass specified in therenderPassmember ofpRenderPassBeginisIMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, orIMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMALthen the corresponding attachment image view of the framebuffer specified in theframebuffermember ofpRenderPassBeginmust have been created with ausagevalue includingIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT - If any of the
initialLayoutorfinalLayoutmember of theVkAttachmentDescriptionstructures or thelayoutmember of theVkAttachmentReferencestructures specified when creating the render pass specified in therenderPassmember ofpRenderPassBeginisIMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, orIMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, orIMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMALthen the corresponding attachment image view of the framebuffer specified in theframebuffermember ofpRenderPassBeginmust have been created with ausagevalue includingIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT - If any of the
stencilInitialLayoutorstencilFinalLayoutmember of theVkAttachmentDescriptionStencilLayoutstructures or thestencilLayoutmember of theVkAttachmentReferenceStencilLayoutstructures specified when creating the render pass specified in therenderPassmember ofpRenderPassBeginisIMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, orIMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMALthen the corresponding attachment image view of the framebuffer specified in theframebuffermember ofpRenderPassBeginmust have been created with ausagevalue includingIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT - If any of the
initialLayoutorfinalLayoutmember of theVkAttachmentDescriptionstructures or thelayoutmember of theVkAttachmentReferencestructures specified when creating the render pass specified in therenderPassmember ofpRenderPassBeginisIMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMALthen the corresponding attachment image view of the framebuffer specified in theframebuffermember ofpRenderPassBeginmust have been created with ausagevalue includingIMAGE_USAGE_SAMPLED_BITorIMAGE_USAGE_INPUT_ATTACHMENT_BIT - If any of the
initialLayoutorfinalLayoutmember of theVkAttachmentDescriptionstructures or thelayoutmember of theVkAttachmentReferencestructures specified when creating the render pass specified in therenderPassmember ofpRenderPassBeginisIMAGE_LAYOUT_TRANSFER_SRC_OPTIMALthen the corresponding attachment image view of the framebuffer specified in theframebuffermember ofpRenderPassBeginmust have been created with ausagevalue includingIMAGE_USAGE_TRANSFER_SRC_BIT - If any of the
initialLayoutorfinalLayoutmember of theVkAttachmentDescriptionstructures or thelayoutmember of theVkAttachmentReferencestructures specified when creating the render pass specified in therenderPassmember ofpRenderPassBeginisIMAGE_LAYOUT_TRANSFER_DST_OPTIMALthen the corresponding attachment image view of the framebuffer specified in theframebuffermember ofpRenderPassBeginmust have been created with ausagevalue includingIMAGE_USAGE_TRANSFER_DST_BIT - If the
initialLayoutmember of any of theVkAttachmentDescriptionstructures specified when creating the render pass specified in therenderPassmember ofpRenderPassBeginis notIMAGE_LAYOUT_UNDEFINED, then each suchinitialLayoutmust be equal to the current layout of the corresponding attachment image subresource of the framebuffer specified in theframebuffermember ofpRenderPassBegin - The
srcStageMaskmembers of any element of thepDependenciesmember ofVkRenderPassCreateInfoused to createrenderPassmust be supported by the capabilities of the queue family identified by thequeueFamilyIndexmember of theVkCommandPoolCreateInfoused to create the command pool whichcommandBufferwas allocated from - The
dstStageMaskmembers of any element of thepDependenciesmember ofVkRenderPassCreateInfoused to createrenderPassmust be supported by the capabilities of the queue family identified by thequeueFamilyIndexmember of theVkCommandPoolCreateInfoused to create the command pool whichcommandBufferwas allocated from - For any attachment in
framebufferthat is used byrenderPassand is bound to memory locations that are also bound to another attachment used byrenderPass, and if at least one of those uses causes either attachment to be written to, both attachments must have had theATTACHMENT_DESCRIPTION_MAY_ALIAS_BITset - If any attachments specified in
framebufferare used byrenderPassand are bound to overlapping memory locations, there must be only one that is used as a color attachment, depth/stencil, or resolve attachment in any subpass - If any of the
initialLayoutorfinalLayoutmember of theVkAttachmentDescriptionstructures or thelayoutmember of theVkAttachmentReferencestructures specified when creating the render pass specified in therenderPassmember ofpRenderPassBeginisIMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXTthen the corresponding attachment image view of the framebuffer specified in theframebuffermember ofpRenderPassBeginmust have been created with ausagevalue including either theIMAGE_USAGE_COLOR_ATTACHMENT_BITorIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BITand either theIMAGE_USAGE_INPUT_ATTACHMENT_BITorIMAGE_USAGE_SAMPLED_BITusage bits - If any of the
initialLayoutorfinalLayoutmember of theVkAttachmentDescriptionstructures or thelayoutmember of theVkAttachmentReferencestructures specified when creating the render pass specified in therenderPassmember ofpRenderPassBeginisIMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXTthen the corresponding attachment image view of the framebuffer specified in theframebuffermember ofpRenderPassBeginmust have been created with ausagevalue theIMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXTusage bit - If any of the
initialLayoutorfinalLayoutmember of theVkAttachmentDescriptionstructures or thelayoutmember of theVkAttachmentReferencestructures specified when creating the render pass specified in therenderPassmember ofpRenderPassBeginisIMAGE_LAYOUT_RENDERING_LOCAL_READthen the corresponding attachment image view of the framebuffer specified in theframebuffermember ofpRenderPassBeginmust have been created with ausagevalue including eitherIMAGE_USAGE_STORAGE_BIT, or bothIMAGE_USAGE_INPUT_ATTACHMENT_BITand either ofIMAGE_USAGE_COLOR_ATTACHMENT_BITorIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
Valid Usage (Implicit)
commandBuffermust be a validVkCommandBufferhandlepRenderPassBeginmust be a valid pointer to a validVkRenderPassBeginInfostructurepSubpassBeginInfomust be a valid pointer to a validVkSubpassBeginInfostructurecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics 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
commandBuffermust be a primaryVkCommandBuffer
Host Synchronization
- Host access to
commandBuffermust be externally synchronized - Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
Command Buffer Levels Render Pass Scope Video Coding Scope Supported Queue Types Command Type Primary Outside Outside Graphics Action State Synchronization See Also
- Parameters:
commandBuffer- the command buffer in which to record the command.pRenderPassBegin- a pointer to aVkRenderPassBeginInfostructure specifying the render pass to begin an instance of, and the framebuffer the instance uses.pSubpassBeginInfo- a pointer to aVkSubpassBeginInfostructure containing information about the subpass which is about to begin rendering.
- Both the
-
nvkCmdNextSubpass2
public static void nvkCmdNextSubpass2(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long pSubpassBeginInfo, long pSubpassEndInfo) Unsafe version of:CmdNextSubpass2 -
vkCmdNextSubpass2
public static void vkCmdNextSubpass2(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkSubpassBeginInfo pSubpassBeginInfo, VkSubpassEndInfo pSubpassEndInfo) Transition to the next subpass of a render pass.C Specification
To transition to the next subpass in the render pass instance after recording the commands for a subpass, call:
void vkCmdNextSubpass2( VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo);or the equivalent command
void vkCmdNextSubpass2KHR( VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo);Description
vkCmdNextSubpass2is semantically identical toCmdNextSubpass, except that it is extensible, and thatcontentsis provided as part of an extensible structure instead of as a flat parameter.Valid Usage
- The current subpass index must be less than the number of subpasses in the render pass minus one
- This command must not be recorded when transform feedback is active
Valid Usage (Implicit)
commandBuffermust be a validVkCommandBufferhandlepSubpassBeginInfomust be a valid pointer to a validVkSubpassBeginInfostructurepSubpassEndInfomust be a valid pointer to a validVkSubpassEndInfostructurecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations - This command must only be called inside of a render pass instance
- This command must only be called outside of a video coding scope
commandBuffermust be a primaryVkCommandBuffer
Host Synchronization
- Host access to
commandBuffermust be externally synchronized - Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
Command Buffer Levels Render Pass Scope Video Coding Scope Supported Queue Types Command Type Primary Inside Outside Graphics Action State Synchronization See Also
- Parameters:
commandBuffer- the command buffer in which to record the command.pSubpassBeginInfo- a pointer to aVkSubpassBeginInfostructure containing information about the subpass which is about to begin rendering.pSubpassEndInfo- a pointer to aVkSubpassEndInfostructure containing information about how the previous subpass will be ended.
-
nvkCmdEndRenderPass2
public static void nvkCmdEndRenderPass2(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long pSubpassEndInfo) Unsafe version of:CmdEndRenderPass2 -
vkCmdEndRenderPass2
public static void vkCmdEndRenderPass2(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, VkSubpassEndInfo pSubpassEndInfo) End the current render pass.C Specification
To record a command to end a render pass instance after recording the commands for the last subpass, call:
void vkCmdEndRenderPass2( VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo);or the equivalent command
void vkCmdEndRenderPass2KHR( VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo);Description
vkCmdEndRenderPass2is semantically identical toCmdEndRenderPass, except that it is extensible.Valid Usage
- The current subpass index must be equal to the number of subpasses in the render pass minus one
- This command must not be recorded when transform feedback is active
- The current render pass instance must not have been begun with
CmdBeginRendering - If
vkCmdBeginQuery* was called within a subpass of the render pass, the correspondingvkCmdEndQuery* must have been called subsequently within the same subpass
Valid Usage (Implicit)
commandBuffermust be a validVkCommandBufferhandlepSubpassEndInfomust be a valid pointer to a validVkSubpassEndInfostructurecommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations - This command must only be called inside of a render pass instance
- This command must only be called outside of a video coding scope
commandBuffermust be a primaryVkCommandBuffer
Host Synchronization
- Host access to
commandBuffermust be externally synchronized - Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
Command Buffer Levels Render Pass Scope Video Coding Scope Supported Queue Types Command Type Primary Inside Outside Graphics Action State Synchronization See Also
- Parameters:
commandBuffer- the command buffer in which to end the current render pass instance.pSubpassEndInfo- a pointer to aVkSubpassEndInfostructure containing information about how the last subpass will be ended.
-
vkResetQueryPool
public static void vkResetQueryPool(org.lwjgl.vulkan.VkDevice device, long queryPool, int firstQuery, int queryCount) Reset queries in a query pool.C Specification
To reset a range of queries in a query pool on the host, call:
void vkResetQueryPool( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);or the equivalent command
void vkResetQueryPoolEXT( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);Description
This command sets the status of query indices
[firstQuery, firstQuery + queryCount - 1]to unavailable.If
queryPoolisQUERY_TYPE_PERFORMANCE_QUERY_KHRthis command sets the status of query indices[firstQuery, firstQuery + queryCount - 1]to unavailable for each pass.Valid Usage
firstQuerymust be less than the number of queries inqueryPool- The sum of
firstQueryandqueryCountmust be less than or equal to the number of queries inqueryPool
- The
hostQueryResetfeature must be enabled - Submitted commands that refer to the range specified by
firstQueryandqueryCountinqueryPoolmust have completed execution - The range of queries specified by
firstQueryandqueryCountinqueryPoolmust not be in use by calls toGetQueryPoolResultsorvkResetQueryPoolin other threads
Valid Usage (Implicit)
devicemust be a validVkDevicehandlequeryPoolmust be a validVkQueryPoolhandlequeryPoolmust have been created, allocated, or retrieved fromdevice
- Parameters:
device- the logical device that owns the query pool.queryPool- the handle of the query pool managing the queries being reset.firstQuery- the initial query index to reset.queryCount- the number of queries to reset.
-
nvkGetSemaphoreCounterValue
public static int nvkGetSemaphoreCounterValue(org.lwjgl.vulkan.VkDevice device, long semaphore, long pValue) Unsafe version of:GetSemaphoreCounterValue -
vkGetSemaphoreCounterValue
public static int vkGetSemaphoreCounterValue(org.lwjgl.vulkan.VkDevice device, long semaphore, LongBuffer pValue) Query the current state of a timeline semaphore.C Specification
To query the current counter value of a semaphore created with a
VkSemaphoreTypeofSEMAPHORE_TYPE_TIMELINEfrom the host, call:VkResult vkGetSemaphoreCounterValue( VkDevice device, VkSemaphore semaphore, uint64_t* pValue);or the equivalent command
VkResult vkGetSemaphoreCounterValueKHR( VkDevice device, VkSemaphore semaphore, uint64_t* pValue);Description
Note
If a queue submission command is pending execution, then the value returned by this command may immediately be out of date.
Valid Usage
semaphoremust have been created with aVkSemaphoreTypeofSEMAPHORE_TYPE_TIMELINE
Valid Usage (Implicit)
devicemust be a validVkDevicehandlesemaphoremust be a validVkSemaphorehandlepValuemust be a valid pointer to auint64_tvaluesemaphoremust have been created, allocated, or retrieved fromdevice
Return Codes
- On success, this command returns
- On failure, this command returns
- Parameters:
device- the logical device that owns the semaphore.semaphore- the handle of the semaphore to query.pValue- a pointer to a 64-bit integer value in which the current counter value of the semaphore is returned.
-
nvkWaitSemaphores
public static int nvkWaitSemaphores(org.lwjgl.vulkan.VkDevice device, long pWaitInfo, long timeout) Unsafe version of:WaitSemaphores -
vkWaitSemaphores
public static int vkWaitSemaphores(org.lwjgl.vulkan.VkDevice device, VkSemaphoreWaitInfo pWaitInfo, long timeout) Wait for timeline semaphores on the host.C Specification
To wait for a set of semaphores created with a
VkSemaphoreTypeofSEMAPHORE_TYPE_TIMELINEto reach particular counter values on the host, call:VkResult vkWaitSemaphores( VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);or the equivalent command
VkResult vkWaitSemaphoresKHR( VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);Description
If the condition is satisfied when
vkWaitSemaphoresis called, thenvkWaitSemaphoresreturns immediately. If the condition is not satisfied at the timevkWaitSemaphoresis called, thenvkWaitSemaphoreswill block and wait until the condition is satisfied or thetimeouthas expired, whichever is sooner.If
timeoutis zero, thenvkWaitSemaphoresdoes not wait, but simply returns information about the current state of the semaphores.TIMEOUTwill be returned in this case if the condition is not satisfied, even though no actual wait was performed.If the condition is satisfied before the
timeouthas expired,vkWaitSemaphoresreturnsSUCCESS. Otherwise,vkWaitSemaphoresreturnsTIMEOUTafter thetimeouthas expired.If device loss occurs (see Lost Device) before the timeout has expired,
vkWaitSemaphoresmust return in finite time with eitherSUCCESSorERROR_DEVICE_LOST.Valid Usage (Implicit)
devicemust be a validVkDevicehandlepWaitInfomust be a valid pointer to a validVkSemaphoreWaitInfostructure
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
device- the logical device that owns the semaphores.pWaitInfo- a pointer to aVkSemaphoreWaitInfostructure containing information about the wait condition.timeout- the timeout period in units of nanoseconds.timeoutis adjusted to the closest value allowed by the implementation-dependent timeout accuracy, which may be substantially longer than one nanosecond, and may be longer than the requested period.
-
nvkSignalSemaphore
public static int nvkSignalSemaphore(org.lwjgl.vulkan.VkDevice device, long pSignalInfo) Unsafe version of:SignalSemaphore -
vkSignalSemaphore
public static int vkSignalSemaphore(org.lwjgl.vulkan.VkDevice device, VkSemaphoreSignalInfo pSignalInfo) Signal a timeline semaphore on the host.C Specification
To signal a semaphore created with a
VkSemaphoreTypeofSEMAPHORE_TYPE_TIMELINEwith a particular counter value, on the host, call:VkResult vkSignalSemaphore( VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);or the equivalent command
VkResult vkSignalSemaphoreKHR( VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);Description
When
vkSignalSemaphoreis executed on the host, it defines and immediately executes a semaphore signal operation which sets the timeline semaphore to the given value.The first synchronization scope is defined by the host execution model, but includes execution of
vkSignalSemaphoreon the host and anything that happened-before it.The second synchronization scope is empty.
Valid Usage (Implicit)
devicemust be a validVkDevicehandlepSignalInfomust be a valid pointer to a validVkSemaphoreSignalInfostructure
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
device- the logical device that owns the semaphore.pSignalInfo- a pointer to aVkSemaphoreSignalInfostructure containing information about the signal operation.
-
nvkGetBufferDeviceAddress
public static long nvkGetBufferDeviceAddress(org.lwjgl.vulkan.VkDevice device, long pInfo) Unsafe version of:GetBufferDeviceAddress -
vkGetBufferDeviceAddress
public static long vkGetBufferDeviceAddress(org.lwjgl.vulkan.VkDevice device, VkBufferDeviceAddressInfo pInfo) Query an address of a buffer.C Specification
To query a 64-bit buffer device address value through which buffer memory can be accessed in a shader, call:
VkDeviceAddress vkGetBufferDeviceAddress( VkDevice device, const VkBufferDeviceAddressInfo* pInfo);or the equivalent command
VkDeviceAddress vkGetBufferDeviceAddressKHR( VkDevice device, const VkBufferDeviceAddressInfo* pInfo);or the equivalent command
VkDeviceAddress vkGetBufferDeviceAddressEXT( VkDevice device, const VkBufferDeviceAddressInfo* pInfo);Description
The 64-bit return value is an address of the start of
pInfo→buffer. The address range starting at this value and whose size is the size of the buffer can be used in a shader to access the memory bound to that buffer, using theSPV_KHR_physical_storage_bufferextension or the equivalentSPV_EXT_physical_storage_bufferextension and thePhysicalStorageBufferstorage class. For example, this value can be stored in a uniform buffer, and the shader can read the value from the uniform buffer and use it to do a dependent read/write to this buffer. A value of zero is reserved as a “null” pointer and must not be returned as a valid buffer device address. All loads, stores, and atomics in a shader throughPhysicalStorageBufferpointers must access addresses in the address range of some buffer.If the buffer was created with a non-zero value of
VkBufferOpaqueCaptureAddressCreateInfo::opaqueCaptureAddressorVkBufferDeviceAddressCreateInfoEXT::deviceAddress, the return value will be the same address that was returned at capture time.The returned address must satisfy the alignment requirement specified by
VkMemoryRequirements::alignmentfor the buffer inVkBufferDeviceAddressInfo::buffer.If multiple
VkBufferobjects are bound to overlapping ranges ofVkDeviceMemory, implementations may return address ranges which overlap. In this case, it is ambiguous whichVkBufferis associated with any given device address. For purposes of valid usage, if multipleVkBufferobjects can be attributed to a device address, aVkBufferis selected such that valid usage passes, if it exists.Valid Usage
- The
bufferDeviceAddressorVkPhysicalDeviceBufferDeviceAddressFeaturesEXT::bufferDeviceAddressfeature must be enabled - If
devicewas created with multiple physical devices, then thebufferDeviceAddressMultiDeviceorVkPhysicalDeviceBufferDeviceAddressFeaturesEXT::bufferDeviceAddressMultiDevicefeature must be enabled
Valid Usage (Implicit)
devicemust be a validVkDevicehandlepInfomust be a valid pointer to a validVkBufferDeviceAddressInfostructure
See Also
- Parameters:
device- the logical device that the buffer was created on.pInfo- a pointer to aVkBufferDeviceAddressInfostructure specifying the buffer to retrieve an address for.
- The
-
nvkGetBufferOpaqueCaptureAddress
public static long nvkGetBufferOpaqueCaptureAddress(org.lwjgl.vulkan.VkDevice device, long pInfo) Unsafe version of:GetBufferOpaqueCaptureAddress -
vkGetBufferOpaqueCaptureAddress
public static long vkGetBufferOpaqueCaptureAddress(org.lwjgl.vulkan.VkDevice device, VkBufferDeviceAddressInfo pInfo) Query an opaque capture address of a buffer.C Specification
To query a 64-bit buffer opaque capture address, call:
uint64_t vkGetBufferOpaqueCaptureAddress( VkDevice device, const VkBufferDeviceAddressInfo* pInfo);or the equivalent command
uint64_t vkGetBufferOpaqueCaptureAddressKHR( VkDevice device, const VkBufferDeviceAddressInfo* pInfo);Description
The 64-bit return value is an opaque capture address of the start of
pInfo→buffer.If the buffer was created with a non-zero value of
VkBufferOpaqueCaptureAddressCreateInfo::opaqueCaptureAddressthe return value must be the same address.Valid Usage
- The
bufferDeviceAddressfeature must be enabled - If
devicewas created with multiple physical devices, then thebufferDeviceAddressMultiDevicefeature must be enabled
Valid Usage (Implicit)
devicemust be a validVkDevicehandlepInfomust be a valid pointer to a validVkBufferDeviceAddressInfostructure
See Also
- Parameters:
device- the logical device that the buffer was created on.pInfo- a pointer to aVkBufferDeviceAddressInfostructure specifying the buffer to retrieve an address for.
- The
-
nvkGetDeviceMemoryOpaqueCaptureAddress
public static long nvkGetDeviceMemoryOpaqueCaptureAddress(org.lwjgl.vulkan.VkDevice device, long pInfo) Unsafe version of:GetDeviceMemoryOpaqueCaptureAddress -
vkGetDeviceMemoryOpaqueCaptureAddress
public static long vkGetDeviceMemoryOpaqueCaptureAddress(org.lwjgl.vulkan.VkDevice device, VkDeviceMemoryOpaqueCaptureAddressInfo pInfo) Query an opaque capture address of a memory object.C Specification
To query a 64-bit opaque capture address value from a memory object, call:
uint64_t vkGetDeviceMemoryOpaqueCaptureAddress( VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);or the equivalent command
uint64_t vkGetDeviceMemoryOpaqueCaptureAddressKHR( VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);Description
The 64-bit return value is an opaque address representing the start of
pInfo→memory.If the memory object was allocated with a non-zero value of
VkMemoryOpaqueCaptureAddressAllocateInfo::opaqueCaptureAddress, the return value must be the same address.Note
The expected usage for these opaque addresses is only for trace capture/replay tools to store these addresses in a trace and subsequently specify them during replay.
Valid Usage
- The
bufferDeviceAddressfeature must be enabled - If
devicewas created with multiple physical devices, then thebufferDeviceAddressMultiDevicefeature must be enabled
Valid Usage (Implicit)
devicemust be a validVkDevicehandlepInfomust be a valid pointer to a validVkDeviceMemoryOpaqueCaptureAddressInfostructure
See Also
- Parameters:
device- the logical device that the memory object was allocated on.pInfo- a pointer to aVkDeviceMemoryOpaqueCaptureAddressInfostructure specifying the memory object to retrieve an address for.
- The
-
vkCreateRenderPass2
public static int vkCreateRenderPass2(org.lwjgl.vulkan.VkDevice device, VkRenderPassCreateInfo2 pCreateInfo, @Nullable VkAllocationCallbacks pAllocator, long[] pRenderPass) Array version of:CreateRenderPass2 -
vkGetSemaphoreCounterValue
public static int vkGetSemaphoreCounterValue(org.lwjgl.vulkan.VkDevice device, long semaphore, long[] pValue) Array version of:GetSemaphoreCounterValue
-