/* Copyright (c) 2015-2026 The Khronos Group Inc.
 * Copyright (c) 2015-2026 Valve Corporation
 * Copyright (c) 2015-2026 LunarG, Inc.
 * Copyright (C) 2015-2026 Google Inc.
 * Modifications Copyright (C) 2020-2026 Advanced Micro Devices, Inc. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#pragma once

#include "generated/error_location_helper.h"

namespace vvl {

enum class ActionVUID {
    UNKNOWN,
    IMAGE_LAYOUT_09600,

    VERTEX_BINDING_04007,
    VERTEX_BINDING_04008,
    SUBPASS_INDEX_02685,
    SAMPLE_LOCATION_02689,
    SAMPLE_LOCATION_07484,
    SAMPLE_LOCATION_07485,
    SAMPLE_LOCATION_07486,
    SAMPLE_LOCATION_07487,
    RASTERIZATION_SAMPLES_09211,
    LINEAR_FILTER_04553,
    LINEAR_FILTER_09598,
    LINEAR_MIPMAP_04770,
    LINEAR_MIPMAP_09599,
    EXTERNAL_FORMAT_RESOLVE_09362,
    EXTERNAL_FORMAT_RESOLVE_09363,
    EXTERNAL_FORMAT_RESOLVE_09364,
    EXTERNAL_FORMAT_RESOLVE_09365,
    EXTERNAL_FORMAT_RESOLVE_09368,
    EXTERNAL_FORMAT_RESOLVE_09369,
    EXTERNAL_FORMAT_RESOLVE_09372,
    CUSTOM_RESOLVE_11521,
    CUSTOM_RESOLVE_11522,
    CUSTOM_RESOLVE_11523,
    CUSTOM_RESOLVE_11524,
    CUSTOM_RESOLVE_11525,
    CUSTOM_RESOLVE_11529,
    CUSTOM_RESOLVE_11530,
    CUSTOM_RESOLVE_11539,
    CUSTOM_RESOLVE_11540,
    CUSTOM_RESOLVE_11860,
    CUSTOM_RESOLVE_11861,
    CUSTOM_RESOLVE_11862,
    CUSTOM_RESOLVE_11863,
    CUSTOM_RESOLVE_11864,
    CUSTOM_RESOLVE_11865,
    CUSTOM_RESOLVE_11866,
    CUSTOM_RESOLVE_11867,
    CUSTOM_RESOLVE_11868,
    CUSTOM_RESOLVE_11869,
    CUSTOM_RESOLVE_11870,
    STIPPLED_RECTANGULAR_07495,
    STIPPLED_BRESENHAM_07496,
    STIPPLED_SMOOTH_07497,
    STIPPLED_STRICT_07498,
    IMAGE_VIEW_ACCESS_04470,
    IMAGE_VIEW_ACCESS_04471,
    IMAGE_VIEW_SPARSE_04474,
    BUFFER_VIEW_ACCESS_04472,
    BUFFER_VIEW_ACCESS_04473,
    STORAGE_IMAGE_FORMAT_07028,
    STORAGE_IMAGE_FORMAT_07027,
    STORAGE_TEXEL_FORMAT_07030,
    STORAGE_TEXEL_FORMAT_07029,
    STORAGE_IMAGE_TEXEL_08795,
    STORAGE_IMAGE_TEXEL_08796,
    STORAGE_TEXEL_04469,
    IMAGE_VIEW_ATOMIC_02691,
    BUFFER_VIEW_ATOMIC_07888,
    IMAGE_VIEW_DIM_07752,
    IMAGE_VIEW_NUMERIC_07753,
    SUBRESOURCE_RP_WRTIE_06537,
    SUBRESOURCE_SUBPASS_12338,
    SUBRESOURCE_SUBPASS_12339,
    SUBRESOURCE_SUBPASS_12340,
    DESCRIPTOR_HEAP_11308,
    DESCRIPTOR_HEAP_11375,
    DESCRIPTOR_HEAP_11376,
    SAMPLER_TYPE_08609,
    SAMPLER_DREF_PROJ_08610,
    SAMPLER_BIAS_OFFSET_08611,
    SAMPLER_CUBIC_02692,
    SAMPLER_CORNER_02696,
    FILTER_CUBIC_02693,
    FILTER_CUBIC_02694,
    FILTER_CUBIC_02695,
    IMAGE_LAYOUT_00344,
    PUSH_CONSTANT_08601,
    INDEPENDENT_SETS_13361,
    INDEPENDENT_SETS_13362,
    INDEPENDENT_SETS_13363,
    INDEPENDENT_SETS_13364,
    INDEPENDENT_SETS_13365,

    DYNAMIC_STATE_ALL_SET_08608,
    DYNAMIC_DEPTH_COMPARE_OP_07845,
    DYNAMIC_DEPTH_BIAS_07834,
    DYNAMIC_DEPTH_BOUNDS_07836,
    DYNAMIC_CULL_MODE_07840,
    DYNAMIC_DEPTH_TEST_ENABLE_07843,
    DYNAMIC_DEPTH_WRITE_ENABLE_07844,
    DYNAMIC_STENCIL_TEST_ENABLE_07847,
    DYNAMIC_DEPTH_BIAS_ENABLE_04877,
    DYNAMIC_DEPTH_BOUND_TEST_ENABLE_07846,
    DYNAMIC_STENCIL_COMPARE_MASK_07837,
    DYNAMIC_STENCIL_WRITE_MASK_07838,
    DYNAMIC_STENCIL_REFERENCE_07839,
    DYNAMIC_STENCIL_OP_07848,
    DYNAMIC_PRIMITIVE_TOPOLOGY_07842,
    DYNAMIC_PRIMITIVE_RESTART_ENABLE_04879,
    DYNAMIC_VERTEX_INPUT_04914,
    DYNAMIC_SET_FRAGMENT_SHADING_RATE_09238,
    DYNAMIC_LOGIC_OP_04878,
    DYNAMIC_POLYGON_MODE_07621,
    DYNAMIC_RASTERIZATION_SAMPLES_07622,
    DYNAMIC_SAMPLE_MASK_07623,
    DYNAMIC_ALPHA_TO_COVERAGE_ENABLE_07624,
    DYNAMIC_ALPHA_TO_ONE_ENABLE_07625,
    DYNAMIC_LOGIC_OP_ENABLE_07626,
    DYNAMIC_RASTERIZER_DISCARD_ENABLE_04876,
    DYNAMIC_SAMPLE_LOCATIONS_ENABLE_07634,
    DYNAMIC_SAMPLE_LOCATIONS_06666,
    DYNAMIC_ATTACHMENT_FEEDBACK_LOOP_08877,
    DYNAMIC_COLOR_WRITE_ENABLE_07749,
    DYNAMIC_COLOR_BLEND_ENABLE_07627,
    DYNAMIC_COLOR_WRITE_MASK_07629,
    DYNAMIC_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_07639,
    DYNAMIC_DEPTH_CLAMP_CONTROL_09650,
    DYNAMIC_DEPTH_CLIP_ENABLE_07633,
    DYNAMIC_DEPTH_CLAMP_ENABLE_07620,
    DYNAMIC_EXCLUSIVE_SCISSOR_ENABLE_07878,
    DYNAMIC_EXCLUSIVE_SCISSOR_07879,
    DYNAMIC_TESSELLATION_DOMAIN_ORIGIN_07619,
    DYNAMIC_RASTERIZATION_STREAM_07630,
    DYNAMIC_CONSERVATIVE_RASTERIZATION_MODE_07631,
    DYNAMIC_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_07632,
    DYNAMIC_PROVOKING_VERTEX_MODE_07636,
    DYNAMIC_VIEWPORT_W_SCALING_ENABLE_07640,
    DYNAMIC_VIEWPORT_SWIZZLE_07641,
    DYNAMIC_COVERAGE_TO_COLOR_ENABLE_07642,
    DYNAMIC_COVERAGE_TO_COLOR_LOCATION_07643,
    DYNAMIC_COVERAGE_MODULATION_MODE_07644,
    DYNAMIC_COVERAGE_MODULATION_TABLE_ENABLE_07645,
    DYNAMIC_COVERAGE_MODULATION_TABLE_07646,
    DYNAMIC_SHADING_RATE_IMAGE_ENABLE_07647,
    DYNAMIC_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_07648,
    DYNAMIC_COVERAGE_REDUCTION_MODE_07649,
    DYNAMIC_FRONT_FACE_07841,
    DYNAMIC_VIEWPORT_COUNT_03417,
    DYNAMIC_SCISSOR_COUNT_03418,
    DYNAMIC_SET_VIEWPORT_COARSE_SAMPLE_ORDER_09233,
    DYNAMIC_SET_VIEWPORT_SHADING_RATE_PALETTE_09234,
    DYNAMIC_SET_CLIP_SPACE_W_SCALING_04138,
    DYNAMIC_PATCH_CONTROL_POINTS_04875,
    DYNAMIC_DISCARD_RECTANGLE_ENABLE_07880,
    DYNAMIC_DISCARD_RECTANGLE_MODE_07881,
    DYNAMIC_LINE_STIPPLE_EXT_07849,
    DYNAMIC_SET_LINE_WIDTH_08617,
    DYNAMIC_VERTEX_INPUT_BINDING_STRIDE_04913,
    DYNAMIC_SET_LINE_RASTERIZATION_MODE_08666,
    DYNAMIC_SET_LINE_STIPPLE_ENABLE_08669,

    DISCARD_RECTANGLE_07751,
    DISCARD_RECTANGLE_09236,
    COVERAGE_TO_COLOR_09420,
    COVERAGE_TO_COLOR_07490,
    SET_RASTERIZATION_SAMPLES_08644,
    COLOR_WRITE_ENABLE_COUNT_07750,
    DEPTH_COMPARE_SAMPLE_06479,
    DEPTH_READ_ONLY_06886,
    STENCIL_READ_ONLY_06887,
    ALPHA_TO_COVERAGE_COMPONENT_08919,
    COLOR_BLEND_ENABLE_07476,
    COLOR_WRITE_MASK_07478,
    COLOR_BLEND_EQUATION_10862,
    COLOR_BLEND_EQUATION_10863,
    COLOR_BLEND_EQUATION_10864,
    VIEWPORT_07831,
    SCISSOR_07832,
    BLEND_CONSTANTS_07835,
    DEPTH_ENABLE_08715,
    STENCIL_WRITE_MASK_08716,
    STATE_INHERITED_07850,
    COLOR_WRITE_MASK_09116,
    LINE_RASTERIZATION_10608,
    VIEWPORT_AND_SCISSOR_WITH_COUNT_03419,
    VIEWPORT_W_SCALING_08636,
    SHADING_RATE_PALETTE_08637,
    SET_VIEWPORT_SWIZZLE_09421,
    SET_VIEWPORT_SWIZZLE_07493,
    ALPHA_COMPONENT_WORD_08920,
    VIEWPORT_MULTIVIEW_12262,
    SCISSOR_MULTIVIEW_12263,
    CONVERVATIVE_RASTERIZATION_07499,
    BLEND_ENABLE_04727,
    BLEND_DUAL_SOURCE_09239,
    BLEND_ADVANCED_07480,
    PRIMITIVES_GENERATED_QUERY_07481,
    PRIMITIVE_TOPOLOGY_CLASS_07500,
    SAMPLE_LOCATIONS_07482,
    SAMPLE_LOCATIONS_07483,
    SAMPLE_LOCATIONS_07471,
    SAMPLE_LOCATIONS_ENABLE_07936,
    SAMPLE_LOCATIONS_ENABLE_07937,
    SAMPLE_LOCATIONS_ENABLE_07938,
    SAMPLE_MASK_07472,
    SAMPLE_MASK_07473,
    PRIMITIVE_TOPOLOGY_10286,
    PRIMITIVE_TOPOLOGY_10747,
    PRIMITIVE_TOPOLOGY_10748,
    PRIMITIVE_RESTART_09637,
    PRIMITIVE_RESTART_10909,
    VERTEX_INPUT_08734,
    VERTEX_INPUT_FORMAT_08936,
    VERTEX_INPUT_FORMAT_08937,
    VERTEX_INPUT_FORMAT_09203,
    VERTEX_INPUT_FORMAT_07939,
    RAY_QUERY_04617,
    MAX_MULTIVIEW_INSTANCE_INDEX_02688,
    VIEWPORT_COUNT_PRIMITIVE_SHADING_RATE_04552,
    PRIMITIVES_GENERATED_06708,
    PRIMITIVES_GENERATED_STREAMS_06709,
    INVALID_MESH_SHADER_STAGES_06481,
    SHADER_OBJECT_MULTIVIEW_10772,
    NEXT_STAGE_10745,
    VERTEX_SHADER_08684,
    TESSELLATION_CONTROL_SHADER_08685,
    TESSELLATION_EVALUATION_SHADER_08686,
    GEOMETRY_SHADER_08687,
    FRAGMENT_SHADER_08688,
    TASK_SHADER_08689,
    MESH_SHADER_08690,
    VERT_MESH_SHADER_08693,
    VERT_TASK_MESH_SHADER_08696,
    LINKED_SHADERS_08698,
    LINKED_SHADERS_08699,
    SHADERS_PUSH_CONSTANTS_08878,
    SHADERS_DESCRIPTOR_LAYOUTS_08879,
    DRAW_SHADERS_NO_TASK_MESH_08885,
    TESSELLATION_SUBDIVISION_12239,
    TESSELLATION_TRIANGLES_12240,
    TESSELLATION_SEGMENT_12241,
    TESSELLATION_PATCH_SIZE_12242,
    SET_VIEWPORT_WITH_COUNT_08642,
    RASTERIZATION_SAMPLES_07935,
    MESH_SHADER_QUERIES_07073,
    FDM_LAYERED_10831,
    COLOR_ATTACHMENT_08963,
    DEPTH_ATTACHMENT_08964,
    STENCIL_ATTACHMENT_08965,
    VERTEX_INPUT_09461,
    VERTEX_INPUT_09462,
    RENDERING_CONTENTS_10582,
    RENDER_PASS_BEGAN_08876,
    UNNORMALIZED_COORDINATES_09635,
    SPIRV_OPTYPETENSORARM_09906,
    TILE_MEMORY_HEAP_10746,
    BIND_VERTEX_BUFFERS_3_STRIDE_13118,
    DESCRIPTOR_BUFFER_BIT_08115,
    DESCRIPTOR_BUFFER_BIT_08117,
    COMPATIBLE_PIPELINE_08600,
    PIPELINE_BOUND_08606,
    VERTEX_BINDING_ATTRIBUTE_02721,
    CB_UNPROTECTED_02707,
    CB_PROTECTED_02712,
    DESCRIPTOR_08114,
    TENSOR_09900,
    TENSOR_09905,
    PER_TILE_DRAW_ENABLED_10677,
    TILE_SHADING_SHADER_STAGE_10678,
    PER_TILE_MODEL_FEEDBACK_LOOP_IMAGE_ACCESS_10679,

    IMAGE_SAMPLE_WEIGHTED_QCOM_06971,
    IMAGE_SAMPLE_WEIGHTED_QCOM_06972,
    IMAGE_BOX_FILTER_QCOM_06973,
    IMAGE_BLOCK_MATCH_SSD_QCOM_06974,
    IMAGE_PROCESSING_SAMPLE_QCOM_06977,
    IMAGE_PROCESSING_SAMPLE_QCOM_06978,
    IMAGE_BLOCK_MATCH_WINDOW_QCOM_09215,
    IMAGE_BLOCK_MATCH_WINDOW_QCOM_09216,
    IMAGE_BLOCK_MATCH_SAD_QCOM_12420,
    IMAGE_BLOCK_MATCH_WINDOW_QCOM_12421,
    IMAGE_BLOCK_MATCH_WINDOW_QCOM_12422,

    DYNAMIC_RENDERING_VIEW_MASK_06178,
    DYNAMIC_RENDERING_COLOR_COUNT_06179,
    DYNAMIC_RENDERING_COLOR_FORMATS_08910,
    DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_08911,
    DYNAMIC_RENDERING_UNDEFINED_COLOR_FORMATS_08912,
    DYNAMIC_RENDERING_UNDEFINED_DEPTH_FORMAT_08913,
    DYNAMIC_RENDERING_UNDEFINED_STENCIL_FORMAT_08916,
    DYNAMIC_RENDERING_DEPTH_FORMAT_08914,
    DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_08915,
    DYNAMIC_RENDERING_STENCIL_FORMAT_08917,
    DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_08918,
    DYNAMIC_RENDERING_FSR_06183,
    DYNAMIC_RENDERING_FDM_06184,
    DYNAMIC_RENDERING_COLOR_SAMPLE_06185,
    DYNAMIC_RENDERING_DEPTH_SAMPLE_06186,
    DYNAMIC_RENDERING_STENCIL_SAMPLE_06187,
    DYNAMIC_RENDERING_06198,
    DYNAMIC_RENDERING_07285,
    DYNAMIC_RENDERING_07286,
    DYNAMIC_RENDERING_07287,
    DYNAMIC_RENDERING_LOCAL_LOCATION_09548,
    DYNAMIC_RENDERING_LOCAL_INDEX_09549,
    DYNAMIC_RENDERING_LOCAL_INDEX_10927,
    DYNAMIC_RENDERING_LOCAL_INDEX_10928,
    DYNAMIC_RENDERING_DITHERING_09642,
    DYNAMIC_RENDERING_DITHERING_09643,
    DYNAMIC_RENDERING_LOCAL_READ_11797,

    // Indexed draws only
    INDEX_BINDING_07312,
    PRIMITIVE_RESTART_INDEX_12401,

    // Dispatch only
    COMPUTE_NOT_BOUND_10743,
    PER_TILE_DISPATCH_ENABLED_10674,

    // Mesh only
    MESH_SHADER_STAGES_06480,
    TASK_MESH_SHADER_08694,
    TASK_MESH_SHADER_08695,
    BOUND_NON_MESH_10680,
    XFB_QUERIES_07074,
    PG_QUERIES_07075,
    PIPELINE_STATISTICS_QUERIES_07076,

    // RTX only
    RTX_STACK_SIZE_09458,
    RAY_QUERY_PROTECT_03635,

    // GPU-AV
    UNIFORM_ACCESS_OOB_06935,
    STORAGE_ACCESS_OOB_06936,
    UNIFORM_ACCESS_OOB_08612,
    STORAGE_ACCESS_OOB_08613,
    INVALID_DESCRIPTOR_08114,
    DESCRIPTOR_INDEX_OOB_10068,
    DESCRIPTOR_BUFFER_08116,
    DESCRIPTOR_HEAP_OOB_11309,
    DESCRIPTOR_HEAP_ALIGNMENT_11297,
    DESCRIPTOR_HEAP_ALIGNMENT_11298,
    DESCRIPTOR_HEAP_ALIGNMENT_11299,
    DESCRIPTOR_HEAP_INDIRECT_INDEX_PUSH_11300,
    DESCRIPTOR_HEAP_INDIRECT_ADDRESS_PUSH_11304,
    DESCRIPTOR_HEAP_ADDRESS_BUFFER_ALIGNMENT_11441,
    DESCRIPTOR_HEAP_ADDRESS_BUFFER_ALIGNMENT_11442,
    DESCRIPTOR_HEAP_INVALID_ADDRESS_11301,
    DESCRIPTOR_HEAP_INVALID_ADDRESS_11302,
    DESCRIPTOR_HEAP_INVALID_ADDRESS_11305,
    DESCRIPTOR_HEAP_INVALID_ADDRESS_11306,
    DESCRIPTOR_HEAP_HASHING_12472,
    INDIRECT_COUNT_LIMIT,
};

std::string CreateActionVuid(vvl::Func function, const ActionVUID id);

}  // namespace vvl
