# Please include a comment with the log message and a testcase triggering each
# VUID at the bottom of the file.
khronos_validation.message_id_filter = VUID-VkPhysicalDeviceProperties2-pNext-pNext,VUID-VkDeviceCreateInfo-pNext-pNext,VUID-RuntimeSpirv-Location-06272,02699,VUID-RuntimeSpirv-OpEntryPoint-08743,VUID-vkCmdPipelineBarrier2-shaderTileImageColorReadAccess-08718,VUID-VkGraphicsPipelineCreateInfo-flags-06482,VUID-vkCmdPipelineBarrier2-None-08719,07474,VUID-vkDestroyDevice-device-05137,VUID-VkImageMemoryBarrier2-srcAccessMask-07454,10909,08911,VUID-VkRenderingAttachmentInfo-None-12256,VUID-vkCmdBeginRendering-pRenderingInfo-09592,VUID-vkCmdCopyImage-srcImageLayout-00128,VUID-StandaloneSpirv-OpEntryPoint-08721,VUID-VkImageDrmFormatModifierListCreateInfoEXT-pDrmFormatModifiers-02263,UNASSIGNED-VkMemoryAllocateInfo-pNext-dedicated-image-export,VUID-vkCmdBeginQuery-queryPool-01922,VUID-vkDestroyShaderEXT-shader-08482,VUID-vkGetImageSubresourceLayout-image-07790,VUID-VkPresentInfoKHR-pImageIndices-01430,UNASSIGNED-vkAllocateMemory-maxMemoryAllocationSize,UNASSIGNED-vkAllocateMemory-maxMemoryAllocationSize,VUID-vkGetImageSubresourceLayout-image-07790,VUID-VkShaderModuleCreateInfo-pCode-08737,VUID-VkRenderingAttachmentInfo-imageView-06130,VUID-vkCmdDraw-None-09462
khronos_validation.report_flags = error
khronos_validation.debug_action = VK_DBG_LAYER_ACTION_LOG_MSG,VK_DBG_LAYER_ACTION_BREAK
VK_LAYER_ENABLES=VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT
khronos_validation.printf_buffer_size = 40960
khronos_validation.printf_to_stdout = true
khronos_validation.log_filename = stdout

# VUID-VkPhysicalDeviceProperties2-pNext-pNext
# VUID-VkDeviceCreateInfo-pNext-pNext
# never error due to unrecognized extensions


# KHR-GL46.shader_image_load_store.basic-allTargets-atomic:
# [ VUID-vkCmdDrawMultiEXT-viewType-07752 ] Object 0: handle =
# 0x5581c500000000d5, type = VK_OBJECT_TYPE_DESCRIPTOR_SET; | MessageID =
# 0xacde5967 | vkCmdDrawMultiEXT: Descriptor set VkDescriptorSet
# 0x5581c500000000d5[] in binding #129 index 0 requires an image view of type
# VK_IMAGE_VIEW_TYPE_CUBE but got VkImageView 0x359e9300000000cb[] which is of
# type VK_IMAGE_VIEW_TYPE_CUBE_ARRAY. The Vulkan spec states: If a VkImageView is
# accessed as a result of this command, then the image view's viewType must match
# the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image
# View Validation
# (https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VUID-vkCmdDrawMultiEXT-viewType-07752)

#  KHR-Single-GL46.enhanced_layouts.varying_array_locations:
#
# [ VUID-RuntimeSpirv-Location-06272 ] Object 0: handle =
# 0x8f5f070000000095, type = VK_OBJECT_TYPE_SHADER_MODULE; | MessageID =
# 0xa3614f8b | Invalid Pipeline CreateInfo State: Geometry shader exceeds
# VkPhysicalDeviceLimits::maxGeometryInputComponents of 64 components by
# 1 components The Vulkan spec states: The sum of Location and the number
# of locations the variable it decorates consumes must be less than or
# equal to the value for the matching {ExecutionModel} defined in Shader
# Input and Output Locations
# (https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VUID-RuntimeSpirv-Location-06272)

# dEQP-GLES31.functional.separate_shader.random.69
# 
# UNASSIGNED-CoreValidation-Shader-MissingOutput(ERROR / SPEC): msgNum: 1086655814 -
# Validation Error: [ UNASSIGNED-CoreValidation-Shader-MissingOutput ]
# vkCreateGraphicsPipelines(): pCreateInfos[0] VK_SHADER_STAGE_FRAGMENT_BIT declared input at Location 0
# Comonent 2 but it is not an Output declared in VK_SHADER_STAGE_VERTEX_BIT
#
# VUID-RuntimeSpirv-OpEntryPoint-08743(ERROR / SPEC): msgNum: -1986897773 -
# Validation Error: [ VUID-RuntimeSpirv-OpEntryPoint-08743 ]
# vkCreateGraphicsPipelines(): pCreateInfos[0] VK_SHADER_STAGE_FRAGMENT_BIT declared input at
# Location 1 Comonent 2 but it is not an Output declared in VK_SHADER_STAGE_VERTEX_BIT
# The Vulkan spec states: Any user-defined variables shared between the OpEntryPoint of two shader stages,
# and declared with Input as its {StorageClass} for the subsequent shader stage,
# must have all Location slots and Component words declared in the preceding shader stage's
# OpEntryPoint with Output as the {StorageClass}
# (https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VUID-RuntimeSpirv-OpEntryPoint-08743)
#
# VVL bug https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/5735

# spec broken
# VUID-vkCmdDrawMultiEXT-rasterizationSamples-07474

# dEQP-GLES3.functional.draw_buffers_indexed.random.max_required_draw_buffers.10
#
# Validation Error: [ VUID-vkDestroyDevice-device-05137 ] | MessageID = 0x4872eaa0
# vkDestroyDevice(): Object Tracking - For VkDevice 0x55997ba34f80, VkImage 0x25e600000025e6 has not been destroyed.
# The Vulkan spec states: All child objects created on device that can be destroyed or freed must have been destroyed or freed prior to destroying device (https://docs.vulkan.org/spec/latest/chapters/devsandqueues.html#VUID-vkDestroyDevice-device-05137)
# Objects: 1
#     [0] VkImage 0x25e600000025e6

# Validation Error: [ VUID-VkImageMemoryBarrier2-srcAccessMask-07454 ] | MessageID = 0x3fac578b
# vkCmdPipelineBarrier2(): pDependencyInfo->pImageMemoryBarriers[0].srcAccessMask (VK_ACCESS_SHADER_READ_BIT) is not supported by stage mask (VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT).
# The Vulkan spec states: If srcAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages (https://docs.vulkan.org/spec/latest/chapters/synchronization.html#VUID-VkImageMemoryBarrier2-srcAccessMask-07454)
# Objects: 1
#     [0] VkCommandBuffer 0x55da40ee59e0[zink barrier cmdbuf]

# KHR-GL46.packed_pixels.varied_rectangle.rgb32i_format_rg_integer
#
# Validation Error: [ VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08911 ] | MessageID = 0xa053d57e
# vkCmdDrawMultiEXT(): VkRenderingInfo::pColorAttachments[0].imageView format (VK_FORMAT_R32G32B32A32_SINT) must match the corresponding format in VkPipelineRenderingCreateInfo::pColorAttachmentFormats[0] (VK_FORMAT_R32G32_SINT) when both are not VK_FORMAT_UNDEFINED.
# The Vulkan spec states: If the dynamicRenderingUnusedAttachments feature is enabled, and the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with an imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the bound graphics pipeline, or the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats, if it exists, must be VK_FORMAT_UNDEFINED (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08911)
# Objects: 2
#     [0] VkCommandBuffer 0x55f638578670[zink barrier cmdbuf]
#     [1] VkPipeline 0x996e000000996e

# dEQP-GLES3.functional.fbo.multiview.samples_4
#
# Validation Error: [ VUID-VkRenderingAttachmentInfo-None-12256 ] | MessageID = 0x93b0a512
# vkCmdBeginRendering(): pRenderingInfo->pColorAttachments[0].resolveMode is VK_RESOLVE_MODE_NONE but imageView is VK_SAMPLE_COUNT_1_BIT and VkMultisampledRenderToSingleSampledInfoEXT::multisampledRenderToSingleSampledEnable is VK_TRUE.
# The Vulkan spec states: If all of the following are true: imageView is not VK_NULL_HANDLE imageView has a sample count of VK_SAMPLE_COUNT_1_BIT the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT structure with the multisampledRenderToSingleSampledEnable field equal to VK_TRUE then resolveMode must not be VK_RESOLVE_MODE_NONE (https://docs.vulkan.org/spec/latest/chapters/renderpass.html#VUID-VkRenderingAttachmentInfo-None-12256)
# Objects: 1
#     [0] VkCommandBuffer 0x55edefc6d8a0[zink cmdbuf]

# KHR-GL46.pipeline_statistics_query_tests_ARB.functional_non_rendering_commands_do_not_affect_queries
#
# Validation Error: [ VUID-vkCmdBeginRendering-pRenderingInfo-09592 ] | MessageID = 0x889f7bc3
# vkCmdBeginRendering(): pRenderingInfo->pColorAttachments[0] (VkImage 0x96dd00000096dd, layer 0, mip 0) is expected to have layout VK_IMAGE_LAYOUT_GENERAL but previously used layout is VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL.
# The Vulkan spec states: For each element of pRenderingInfo->pColorAttachments, if imageView is not VK_NULL_HANDLE, when that image view is accessed it must be in the layout specified by the imageLayout member of that same element of pRenderingInfo->pColorAttachments (https://docs.vulkan.org/spec/latest/chapters/renderpass.html#VUID-vkCmdBeginRendering-pRenderingInfo-09592)
# Objects: 3
#     [0] VkCommandBuffer 0x555958841390[zink cmdbuf]
#     [1] VkImage 0x96dd00000096dd
#     [2] VkImageView 0x96e200000096e2

# KHR-GL46.pipeline_statistics_query_tests_ARB.functional_non_rendering_commands_do_not_affect_queries
#
# Validation Error: [ VUID-vkCmdCopyImage-srcImageLayout-00128 ] | MessageID = 0xef9e2bd6
# vkCmdCopyImage(): srcImage Cannot use VkImage 0x96dd00000096dd (layer 0, mip 0) with specific layout VK_IMAGE_LAYOUT_GENERAL that doesn't match the previously used layout VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL.
# The Vulkan spec states: srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice (https://docs.vulkan.org/spec/latest/chapters/copies.html#VUID-vkCmdCopyImage-srcImageLayout-00128)
# Objects: 2
#     [0] VkCommandBuffer 0x564a48f23550[zink cmdbuf]
#     [1] VkImage 0x96dd00000096dd

# spec@arb_pipeline_statistics_query@arb_pipeline_statistics_query-geom
#
# Validation Error: [ VUID-vkCmdBeginQuery-queryPool-01922 ] | MessageID = 0xeeb9cdf3
# vkCmdBeginQuery(): query 0 in VkQueryPool 0x290000000029 has the same queryType (VK_QUERY_TYPE_PIPELINE_STATISTICS) as the active query 0 from VkQueryPool 0x280000000028 (both are using index 0) in VkCommandBuffer 0x557b898db7c0[zink cmdbuf].
# The Vulkan spec states: queryPool must have been created with a queryType that differs from that of any queries that are active within commandBuffer (https://docs.vulkan.org/spec/latest/chapters/queries.html#VUID-vkCmdBeginQuery-queryPool-01922)
# Objects: 3
#    [0] VkCommandBuffer 0x557b898db7c0[zink cmdbuf]
#    [1] VkQueryPool 0x290000000029
#    [2] VkQueryPool 0x280000000028

# spec@arb_texture_rg@multisample-formats 8 gl_arb_texture_rg-int
#
# Validation Error: [ VUID-VkRenderingAttachmentInfo-imageView-06130 ] | MessageID = 0x3a1ccba9
# vkCmdBeginRendering(): pRenderingInfo->pColorAttachments[0].resolveMode (VK_RESOLVE_MODE_AVERAGE_BIT) is not valid for integer formats (VK_FORMAT_R8_SINT)
# Valid resolveMode: NONE, SAMPLE_ZERO, CUSTOM, EXTERNAL_FORMAT_DOWNSAMPLE.
# The Vulkan spec states: If imageView is not VK_NULL_HANDLE and has an integer color format, resolveMode must be VK_RESOLVE_MODE_NONE or VK_RESOLVE_MODE_CUSTOM_BIT_EXT or VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID or VK_RESOLVE_MODE_SAMPLE_ZERO_BIT (https://docs.vulkan.org/spec/latest/chapters/renderpass.html#VUID-VkRenderingAttachmentInfo-imageView-06130)
# Objects: 5
#    [0] VkCommandBuffer 0x55a94806ae00[zink cmdbuf]
#    [1] VkImageView 0x3a000000003a
#    [2] VkImage 0x290000000029
#    [3] VkImageView 0x3b000000003b
#    [4] VkImage 0x240000000024

# spec@ext_base_instance@arb_base_instance-drawarrays_gles3
#
# Validation Error: [ VUID-vkCmdDrawMultiEXT-None-09462 ] | MessageID = 0xfc7e33be
# vkCmdDrawMultiEXT(): vkCmdSetVertexInputEXT set pVertexBindingDivisors[1] (binding 1) divisor as 2, but firstInstance is 1 and supportsNonZeroFirstInstance is VK_FALSE.
# The Vulkan spec states: If shader objects are used for drawing or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, any member of the pVertexBindingDescriptions parameter to the vkCmdSetVertexInputEXT call that sets this dynamic state has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorProperties::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0 (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawMultiEXT-None-09462)
# Objects: 2
#    [0] VkCommandBuffer 0x55dd81174760[zink cmdbuf]
#    [1] VkPipeline 0x2a000000002a

# spec@glsl-1.30@execution@interpolation@interpolation-smooth-gl_backcolor-flat-distance
#
# Validation Error: [ VUID-StandaloneSpirv-OpEntryPoint-08721 ] | MessageID = 0xed5eb645
# vkCreateShaderModule(): pCreateInfo->pCode (spirv-val produced an error):
# Entry-point has conflicting input location assignment at location 0, component 0
#   OpEntryPoint Fragment %main "main" %14 %18 %19 %gl_FragData_0_ %gl_FragData_1_ %gl_FragData_2_ %gl_FragData_3_ %gl_FragData_4_ %gl_FragData_5_ %gl_FragData_6_ %gl_FragData_7_ %gl_FrontFacing
#
# Command to reproduce:
#	spirv-val <input.spv> --relax-block-layout --uniform-buffer-standard-layout --scalar-block-layout --workgroup-scalar-block-layout --allow-localsizeid --allow-offset-texture-operand --allow-vulkan-32-bit-bitwise --target-env vulkan1.4
#
# The Vulkan spec states: Each OpEntryPoint must not have more than one Input variable assigned the same Component word inside a Location slot, either explicitly or implicitly (https://docs.vulkan.org/spec/latest/appendices/spirvenv.html#VUID-StandaloneSpirv-OpEntryPoint-08721)

# spec@!opengl 1.1@max-texture-size
#
# Validation Error: [ UNASSIGNED-vkAllocateMemory-maxMemoryAllocationSize ] | MessageID = 0x9db21593
# vkAllocateMemory(): pAllocateInfo->allocationSize (4294967296) is larger than maxMemoryAllocationSize (2147483648). While this might work locally on your machine, there are many external factors each platform has that is used to determine this limit. You should receive VK_ERROR_OUT_OF_DEVICE_MEMORY from this call, but even if you do not, it is highly advised from all hardware vendors to not ignore this limit.

# spec@ext_image_dma_buf_import@ext_image_dma_buf_import-tex-modifier
#
# Validation Error: [ VUID-vkGetImageSubresourceLayout-image-07790 ] | MessageID = 0xb61daa51
# vkGetImageSubresourceLayout(): image was created with tiling VK_IMAGE_TILING_OPTIMAL.
# The Vulkan spec states: image must have been created with tiling equal to VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT (https://docs.vulkan.org/spec/latest/chapters/resources.html#VUID-vkGetImageSubresourceLayout-image-07790)
# Objects: 1
#     [0] VkImage 0x210000000021

# spec@nv_shader_atomic_float@execution@ssbo-atomicadd-float
#
# Validation Error: [ VUID-VkShaderModuleCreateInfo-pCode-08737 ] | MessageID = 0xa5625282
# vkCreateShaderModule(): pCreateInfo->pCode (spirv-val produced an error):
# Instruction may not have a logical pointer operand
#  %52 = OpBitcast %_ptr_StorageBuffer_float %50
#
# Command to reproduce:
#	spirv-val <input.spv> --relax-block-layout --uniform-buffer-standard-layout --scalar-block-layout --workgroup-scalar-block-layout --allow-localsizeid --allow-offset-texture-operand --allow-vulkan-32-bit-bitwise --target-env vulkan1.4
#
# The Vulkan spec states: If pCode is a pointer to SPIR-V code, pCode must adhere to the validation rules described by the Validation Rules within a Module section of the SPIR-V Environment appendix (https://docs.vulkan.org/spec/latest/chapters/shaders.html#VUID-VkShaderModuleCreateInfo-pCode-08737)

# spec@arb_texture_rg@multisample-formats 8 gl_arb_texture_rg-int
#
# Validation Error: [ VUID-VkRenderingAttachmentInfo-imageView-06130 ] | MessageID = 0x3a1ccba9
# vkCmdBeginRendering(): pRenderingInfo->pColorAttachments[0].resolveMode (VK_RESOLVE_MODE_AVERAGE_BIT) is not valid for integer formats (VK_FORMAT_R8_SINT)
# Valid resolveMode: NONE, SAMPLE_ZERO, CUSTOM, EXTERNAL_FORMAT_DOWNSAMPLE.
# The Vulkan spec states: If imageView is not VK_NULL_HANDLE and has an integer color format, resolveMode must be VK_RESOLVE_MODE_NONE or VK_RESOLVE_MODE_CUSTOM_BIT_EXT or VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID or VK_RESOLVE_MODE_SAMPLE_ZERO_BIT (https://docs.vulkan.org/spec/latest/chapters/renderpass.html#VUID-VkRenderingAttachmentInfo-imageView-06130)
# Objects: 5
#    [0] VkCommandBuffer 0x557ab1a3a080[zink cmdbuf]
#    [1] VkImageView 0x3a000000003a
#    [2] VkImage 0x290000000029
#    [3] VkImageView 0x3b000000003b
#    [4] VkImage 0x240000000024

# spec@ext_base_instance@arb_base_instance-drawarrays_gles3
# Validation Error: [ VUID-vkCmdDraw-None-09462 ] | MessageID = 0x25d3a672
# vkCmdDraw(): vkCmdSetVertexInputEXT set pVertexBindingDivisors[1] (binding 1) divisor as 2, but firstInstance is 1 and supportsNonZeroFirstInstance is VK_FALSE.
# The Vulkan spec states: If shader objects are used for drawing or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, any member of the pVertexBindingDescriptions parameter to the vkCmdSetVertexInputEXT call that sets this dynamic state has a value other than 1 in divisor, and VkPhysicalDeviceVertexAttributeDivisorProperties::supportsNonZeroFirstInstance is VK_FALSE, then firstInstance must be 0 (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDraw-None-09462)
# Objects: 2
#    [0] VkCommandBuffer 0x56411df388a0[zink cmdbuf]
#    [1] VkPipeline 0x2a000000002a
