# 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-vkCmdDrawMultiEXT-colorAttachmentCount-06188,VUID-VkGraphicsPipelineCreateInfo-Geometry-07725,VUID-VkShaderModuleCreateInfo-pCode-01091,VUID-vkCmdCopyImage-srcImage-07743,VUID-vkCmdDrawMultiIndexedEXT-format-07753,VUID-vkCmdDrawMultiEXT-viewType-07752,VUID-vkCmdDispatch-viewType-07752,VUID-RuntimeSpirv-Location-06272,VUID-vkCmdDrawMultiEXT-None-02699
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

# caselist of :
#   dEQP-GLES31.functional.shaders.helper_invocation.value.triangles
#   dEQP-GLES31.functional.shaders.helper_invocation.value.wide_points_4_samples
#
# [VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06188 ] Object 0: handle
# = 0x56444e83ff20, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID =
# 0x3d2cdcc3 | vkCmdDrawMultiEXT: Color attachment (0) sample count
# (VK_SAMPLE_COUNT_4_BIT) must match corresponding
# VkPipelineMultisampleStateCreateInfo sample count
# (VK_SAMPLE_COUNT_1_BIT) The Vulkan spec states: If the currently
# bound pipeline was created without a VkAttachmentSampleCountInfoAMD
# or VkAttachmentSampleCountInfoNV structure, and the current render
# pass instance was begun with vkCmdBeginRendering with a
# VkRenderingInfo::colorAttachmentCount parameter greater than 0, then
# each element of the VkRenderingInfo::pColorAttachments array with a
# imageView not equal to VK_NULL_HANDLE must have been created with a
# sample count equal to the value of
# VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to
# create the currently bound graphics pipeline
# (https://github.com/KhronosGroup/Vulkan-Docs/search?q=)VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06188)
#
# https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/5136

# dEQP-GLES31.functional.geometry_shading.emit.points_emit_0_end_1:
#
# [ VUID-VkGraphicsPipelineCreateInfo-Geometry-07725 ] Object 0: handle =
# 0x2e2941000000001f, type = VK_OBJECT_TYPE_SHADER_MODULE; | MessageID =
# 0x64e29d24 | vkCreateGraphicsPipelines():
# shaderTessellationAndGeometryPointSize is enabled, but PointSize is not
# written in the Geometry shader. The Vulkan spec states: If the pipeline
# is being created with a Geometry {ExecutionModel}, uses the
# OutputPoints {ExecutionMode}, and
# shaderTessellationAndGeometryPointSize is enabled, a PointSize
# decorated variable must be written to
# (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-VkGraphicsPipelineCreateInfo-Geometry-07725)

# KHR-GL46.compute_shader.resources-max:
#
# [ VUID-VkShaderModuleCreateInfo-pCode-01091 ] Object 0: handle =
# 0x55b4bf3a48d0, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0xa7bb8db6
# | vkCreateShaderModule(): The SPIR-V Capability
# (StorageImageArrayDynamicIndexing) was declared, but none of the
# requirements were met to use it. The Vulkan spec states: If pCode
# declares any of the capabilities listed in the SPIR-V Environment
# appendix, one of the corresponding requirements must be satisfied
# (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-VkShaderModuleCreateInfo-pCode-01091)
#
# lvp doesn't support the feature and we don't lower it.  Hopefully lvp gains it with
# https://gitlab.freedesktop.org/mesa/mesa/-/issues/6972

# KHR-GL46.copy_image.invalid_target:
#
# [ VUID-vkCmdCopyImage-srcImage-07743 ] Object 0: handle =
# 0x557060e9ffd0, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID =
# 0xa4e981d8 | vkCmdCopyImage: pRegion[0] srcImage (VK_IMAGE_TYPE_2D)
# must be equal to dstImage (VK_IMAGE_TYPE_1D) or else one must be 2D and
# the other 3D The Vulkan spec states: If srcImage and dstImage have a
# different VkImageType, one must be VK_IMAGE_TYPE_3D and the other must
# be VK_IMAGE_TYPE_2D
# (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdCopyImage-srcImage-07743)
#
# Recent VU regression:
# https://gitlab.khronos.org/vulkan/vulkan/-/issues/3357

# KHR-GL46.shader_atomic_counter_ops_tests.ShaderAtomicCounterOpsAdditionSubstractionTestCase:
#
# [ VUID-vkCmdDrawMultiIndexedEXT-format-07753 ] Object 0: handle =
# 0xa952a5000000016f, type = VK_OBJECT_TYPE_DESCRIPTOR_SET; | MessageID =
# 0xd35852d3 | vkCmdDrawMultiIndexedEXT: Descriptor set VkDescriptorSet
# 0xa952a5000000016f[] in binding #128 index 0 requires FLOAT component
# type, but bound descriptor format is VK_FORMAT_R32G32B32A32_UINT
# (VkImageView 0xbf15540000000166[]). The Vulkan spec states: If a
# VkImageView is accessed as a result of this command, then the image
# view's format must match the numeric format from the Sampled Type
# operand of the OpTypeImage as described in the SPIR-V Sampled Type
# column of the Interpretation of Numeric Format table
# (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdDrawMultiIndexedEXT-format-07753)
#
# https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/4244
# https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/4250

# 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://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdDrawMultiEXT-viewType-07752)

# KHR-GL46.shader_image_size.advanced-nonMS-cs-int:
#
# [ VUID-vkCmdDispatch-viewType-07752 ] Object 0: handle = 0xc8986900000032ed,
# type = VK_OBJECT_TYPE_DESCRIPTOR_SET; | MessageID = 0x6174abc7 | vkCmdDispatch:
# Descriptor set VkDescriptorSet 0xc8986900000032ed[] in binding #3 index 0
# requires an image view of type VK_IMAGE_VIEW_TYPE_CUBE but got VkImageView
# 0x3ce28700000032e2[] which is of type VK_IMAGE_VIEW_TYPE_2D. 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://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdDispatch-viewType-07752)
#
# https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/4250

#  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://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-RuntimeSpirv-Location-06272)
