Edit

IABSD.fr/xenocara/lib/mesa/generated/src/vulkan/runtime/vk_cmd_queue.h

Branch :

  • Show log

    Commit

  • Author : jsg
    Date : 2025-06-05 14:17:56
    Hash : 452696b8
    Message : Merge Mesa 25.0.7

  • lib/mesa/generated/src/vulkan/runtime/vk_cmd_queue.h
  • /* Copyright © 2015-2021 Intel Corporation
     * Copyright © 2021 Collabora, Ltd.
     *
     * Permission is hereby granted, free of charge, to any person obtaining a
     * copy of this software and associated documentation files (the "Software"),
     * to deal in the Software without restriction, including without limitation
     * the rights to use, copy, modify, merge, publish, distribute, sublicense,
     * and/or sell copies of the Software, and to permit persons to whom the
     * Software is furnished to do so, subject to the following conditions:
     *
     * The above copyright notice and this permission notice (including the next
     * paragraph) shall be included in all copies or substantial portions of the
     * Software.
     *
     * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
     * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
     * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
     * IN THE SOFTWARE.
     */
    /* This file generated from vk_cmd_queue_gen.py, don't edit directly. */
    
    #pragma once
    
    #include "util/list.h"
    
    #define VK_PROTOTYPES
    #include <vulkan/vulkan_core.h>
    #ifdef VK_ENABLE_BETA_EXTENSIONS
    #include <vulkan/vulkan_beta.h>
    #endif
    
    #ifdef __cplusplus
    extern "C" {
    #endif
    
    struct vk_device_dispatch_table;
    
    struct vk_cmd_queue {
       const VkAllocationCallbacks *alloc;
       struct list_head cmds;
    };
    
    enum vk_cmd_type {
       VK_CMD_BIND_PIPELINE,
       VK_CMD_SET_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT,
       VK_CMD_SET_VIEWPORT,
       VK_CMD_SET_SCISSOR,
       VK_CMD_SET_LINE_WIDTH,
       VK_CMD_SET_DEPTH_BIAS,
       VK_CMD_SET_BLEND_CONSTANTS,
       VK_CMD_SET_DEPTH_BOUNDS,
       VK_CMD_SET_STENCIL_COMPARE_MASK,
       VK_CMD_SET_STENCIL_WRITE_MASK,
       VK_CMD_SET_STENCIL_REFERENCE,
       VK_CMD_BIND_DESCRIPTOR_SETS,
       VK_CMD_BIND_INDEX_BUFFER,
       VK_CMD_BIND_VERTEX_BUFFERS,
       VK_CMD_DRAW,
       VK_CMD_DRAW_INDEXED,
       VK_CMD_DRAW_MULTI_EXT,
       VK_CMD_DRAW_MULTI_INDEXED_EXT,
       VK_CMD_DRAW_INDIRECT,
       VK_CMD_DRAW_INDEXED_INDIRECT,
       VK_CMD_DISPATCH,
       VK_CMD_DISPATCH_INDIRECT,
       VK_CMD_SUBPASS_SHADING_HUAWEI,
       VK_CMD_DRAW_CLUSTER_HUAWEI,
       VK_CMD_DRAW_CLUSTER_INDIRECT_HUAWEI,
       VK_CMD_UPDATE_PIPELINE_INDIRECT_BUFFER_NV,
       VK_CMD_COPY_BUFFER,
       VK_CMD_COPY_IMAGE,
       VK_CMD_BLIT_IMAGE,
       VK_CMD_COPY_BUFFER_TO_IMAGE,
       VK_CMD_COPY_IMAGE_TO_BUFFER,
       VK_CMD_COPY_MEMORY_INDIRECT_NV,
       VK_CMD_COPY_MEMORY_TO_IMAGE_INDIRECT_NV,
       VK_CMD_UPDATE_BUFFER,
       VK_CMD_FILL_BUFFER,
       VK_CMD_CLEAR_COLOR_IMAGE,
       VK_CMD_CLEAR_DEPTH_STENCIL_IMAGE,
       VK_CMD_CLEAR_ATTACHMENTS,
       VK_CMD_RESOLVE_IMAGE,
       VK_CMD_SET_EVENT,
       VK_CMD_RESET_EVENT,
       VK_CMD_WAIT_EVENTS,
       VK_CMD_PIPELINE_BARRIER,
       VK_CMD_BEGIN_QUERY,
       VK_CMD_END_QUERY,
       VK_CMD_BEGIN_CONDITIONAL_RENDERING_EXT,
       VK_CMD_END_CONDITIONAL_RENDERING_EXT,
       VK_CMD_RESET_QUERY_POOL,
       VK_CMD_WRITE_TIMESTAMP,
       VK_CMD_COPY_QUERY_POOL_RESULTS,
       VK_CMD_PUSH_CONSTANTS,
       VK_CMD_BEGIN_RENDER_PASS,
       VK_CMD_NEXT_SUBPASS,
       VK_CMD_END_RENDER_PASS,
       VK_CMD_EXECUTE_COMMANDS,
       VK_CMD_DEBUG_MARKER_BEGIN_EXT,
       VK_CMD_DEBUG_MARKER_END_EXT,
       VK_CMD_DEBUG_MARKER_INSERT_EXT,
       VK_CMD_EXECUTE_GENERATED_COMMANDS_NV,
       VK_CMD_PREPROCESS_GENERATED_COMMANDS_NV,
       VK_CMD_BIND_PIPELINE_SHADER_GROUP_NV,
       VK_CMD_EXECUTE_GENERATED_COMMANDS_EXT,
       VK_CMD_PREPROCESS_GENERATED_COMMANDS_EXT,
       VK_CMD_PUSH_DESCRIPTOR_SET,
       VK_CMD_SET_DEVICE_MASK,
       VK_CMD_DISPATCH_BASE,
       VK_CMD_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE,
       VK_CMD_SET_VIEWPORT_WSCALING_NV,
       VK_CMD_SET_DISCARD_RECTANGLE_EXT,
       VK_CMD_SET_DISCARD_RECTANGLE_ENABLE_EXT,
       VK_CMD_SET_DISCARD_RECTANGLE_MODE_EXT,
       VK_CMD_SET_SAMPLE_LOCATIONS_EXT,
       VK_CMD_BEGIN_DEBUG_UTILS_LABEL_EXT,
       VK_CMD_END_DEBUG_UTILS_LABEL_EXT,
       VK_CMD_INSERT_DEBUG_UTILS_LABEL_EXT,
       VK_CMD_WRITE_BUFFER_MARKER_AMD,
       VK_CMD_BEGIN_RENDER_PASS2,
       VK_CMD_NEXT_SUBPASS2,
       VK_CMD_END_RENDER_PASS2,
       VK_CMD_DRAW_INDIRECT_COUNT,
       VK_CMD_DRAW_INDEXED_INDIRECT_COUNT,
       VK_CMD_SET_CHECKPOINT_NV,
       VK_CMD_BIND_TRANSFORM_FEEDBACK_BUFFERS_EXT,
       VK_CMD_BEGIN_TRANSFORM_FEEDBACK_EXT,
       VK_CMD_END_TRANSFORM_FEEDBACK_EXT,
       VK_CMD_BEGIN_QUERY_INDEXED_EXT,
       VK_CMD_END_QUERY_INDEXED_EXT,
       VK_CMD_DRAW_INDIRECT_BYTE_COUNT_EXT,
       VK_CMD_SET_EXCLUSIVE_SCISSOR_NV,
       VK_CMD_SET_EXCLUSIVE_SCISSOR_ENABLE_NV,
       VK_CMD_BIND_SHADING_RATE_IMAGE_NV,
       VK_CMD_SET_VIEWPORT_SHADING_RATE_PALETTE_NV,
       VK_CMD_SET_COARSE_SAMPLE_ORDER_NV,
       VK_CMD_DRAW_MESH_TASKS_NV,
       VK_CMD_DRAW_MESH_TASKS_INDIRECT_NV,
       VK_CMD_DRAW_MESH_TASKS_INDIRECT_COUNT_NV,
       VK_CMD_DRAW_MESH_TASKS_EXT,
       VK_CMD_DRAW_MESH_TASKS_INDIRECT_EXT,
       VK_CMD_DRAW_MESH_TASKS_INDIRECT_COUNT_EXT,
       VK_CMD_BIND_INVOCATION_MASK_HUAWEI,
       VK_CMD_COPY_ACCELERATION_STRUCTURE_NV,
       VK_CMD_COPY_ACCELERATION_STRUCTURE_KHR,
       VK_CMD_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_KHR,
       VK_CMD_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_KHR,
       VK_CMD_WRITE_ACCELERATION_STRUCTURES_PROPERTIES_KHR,
       VK_CMD_WRITE_ACCELERATION_STRUCTURES_PROPERTIES_NV,
       VK_CMD_BUILD_ACCELERATION_STRUCTURE_NV,
       VK_CMD_TRACE_RAYS_KHR,
       VK_CMD_TRACE_RAYS_NV,
       VK_CMD_TRACE_RAYS_INDIRECT_KHR,
       VK_CMD_TRACE_RAYS_INDIRECT2_KHR,
       VK_CMD_SET_RAY_TRACING_PIPELINE_STACK_SIZE_KHR,
       VK_CMD_SET_PERFORMANCE_MARKER_INTEL,
       VK_CMD_SET_PERFORMANCE_STREAM_MARKER_INTEL,
       VK_CMD_SET_PERFORMANCE_OVERRIDE_INTEL,
       VK_CMD_SET_LINE_STIPPLE,
       VK_CMD_BUILD_ACCELERATION_STRUCTURES_KHR,
       VK_CMD_BUILD_ACCELERATION_STRUCTURES_INDIRECT_KHR,
       VK_CMD_SET_CULL_MODE,
       VK_CMD_SET_FRONT_FACE,
       VK_CMD_SET_PRIMITIVE_TOPOLOGY,
       VK_CMD_SET_VIEWPORT_WITH_COUNT,
       VK_CMD_SET_SCISSOR_WITH_COUNT,
       VK_CMD_BIND_INDEX_BUFFER2,
       VK_CMD_BIND_VERTEX_BUFFERS2,
       VK_CMD_SET_DEPTH_TEST_ENABLE,
       VK_CMD_SET_DEPTH_WRITE_ENABLE,
       VK_CMD_SET_DEPTH_COMPARE_OP,
       VK_CMD_SET_DEPTH_BOUNDS_TEST_ENABLE,
       VK_CMD_SET_STENCIL_TEST_ENABLE,
       VK_CMD_SET_STENCIL_OP,
       VK_CMD_SET_PATCH_CONTROL_POINTS_EXT,
       VK_CMD_SET_RASTERIZER_DISCARD_ENABLE,
       VK_CMD_SET_DEPTH_BIAS_ENABLE,
       VK_CMD_SET_LOGIC_OP_EXT,
       VK_CMD_SET_PRIMITIVE_RESTART_ENABLE,
       VK_CMD_SET_TESSELLATION_DOMAIN_ORIGIN_EXT,
       VK_CMD_SET_DEPTH_CLAMP_ENABLE_EXT,
       VK_CMD_SET_POLYGON_MODE_EXT,
       VK_CMD_SET_RASTERIZATION_SAMPLES_EXT,
       VK_CMD_SET_SAMPLE_MASK_EXT,
       VK_CMD_SET_ALPHA_TO_COVERAGE_ENABLE_EXT,
       VK_CMD_SET_ALPHA_TO_ONE_ENABLE_EXT,
       VK_CMD_SET_LOGIC_OP_ENABLE_EXT,
       VK_CMD_SET_COLOR_BLEND_ENABLE_EXT,
       VK_CMD_SET_COLOR_BLEND_EQUATION_EXT,
       VK_CMD_SET_COLOR_WRITE_MASK_EXT,
       VK_CMD_SET_RASTERIZATION_STREAM_EXT,
       VK_CMD_SET_CONSERVATIVE_RASTERIZATION_MODE_EXT,
       VK_CMD_SET_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT,
       VK_CMD_SET_DEPTH_CLIP_ENABLE_EXT,
       VK_CMD_SET_SAMPLE_LOCATIONS_ENABLE_EXT,
       VK_CMD_SET_COLOR_BLEND_ADVANCED_EXT,
       VK_CMD_SET_PROVOKING_VERTEX_MODE_EXT,
       VK_CMD_SET_LINE_RASTERIZATION_MODE_EXT,
       VK_CMD_SET_LINE_STIPPLE_ENABLE_EXT,
       VK_CMD_SET_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT,
       VK_CMD_SET_VIEWPORT_WSCALING_ENABLE_NV,
       VK_CMD_SET_VIEWPORT_SWIZZLE_NV,
       VK_CMD_SET_COVERAGE_TO_COLOR_ENABLE_NV,
       VK_CMD_SET_COVERAGE_TO_COLOR_LOCATION_NV,
       VK_CMD_SET_COVERAGE_MODULATION_MODE_NV,
       VK_CMD_SET_COVERAGE_MODULATION_TABLE_ENABLE_NV,
       VK_CMD_SET_COVERAGE_MODULATION_TABLE_NV,
       VK_CMD_SET_SHADING_RATE_IMAGE_ENABLE_NV,
       VK_CMD_SET_COVERAGE_REDUCTION_MODE_NV,
       VK_CMD_SET_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV,
       VK_CMD_COPY_BUFFER2,
       VK_CMD_COPY_IMAGE2,
       VK_CMD_BLIT_IMAGE2,
       VK_CMD_COPY_BUFFER_TO_IMAGE2,
       VK_CMD_COPY_IMAGE_TO_BUFFER2,
       VK_CMD_RESOLVE_IMAGE2,
       VK_CMD_SET_FRAGMENT_SHADING_RATE_KHR,
       VK_CMD_SET_FRAGMENT_SHADING_RATE_ENUM_NV,
       VK_CMD_SET_VERTEX_INPUT_EXT,
       VK_CMD_SET_COLOR_WRITE_ENABLE_EXT,
       VK_CMD_SET_EVENT2,
       VK_CMD_RESET_EVENT2,
       VK_CMD_WAIT_EVENTS2,
       VK_CMD_PIPELINE_BARRIER2,
       VK_CMD_WRITE_TIMESTAMP2,
       VK_CMD_WRITE_BUFFER_MARKER2_AMD,
       VK_CMD_DECODE_VIDEO_KHR,
       VK_CMD_BEGIN_VIDEO_CODING_KHR,
       VK_CMD_CONTROL_VIDEO_CODING_KHR,
       VK_CMD_END_VIDEO_CODING_KHR,
       VK_CMD_ENCODE_VIDEO_KHR,
       VK_CMD_DECOMPRESS_MEMORY_NV,
       VK_CMD_DECOMPRESS_MEMORY_INDIRECT_COUNT_NV,
       VK_CMD_CU_LAUNCH_KERNEL_NVX,
       VK_CMD_BIND_DESCRIPTOR_BUFFERS_EXT,
       VK_CMD_SET_DESCRIPTOR_BUFFER_OFFSETS_EXT,
       VK_CMD_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_EXT,
       VK_CMD_BEGIN_RENDERING,
       VK_CMD_END_RENDERING,
       VK_CMD_BUILD_MICROMAPS_EXT,
       VK_CMD_COPY_MICROMAP_EXT,
       VK_CMD_COPY_MICROMAP_TO_MEMORY_EXT,
       VK_CMD_COPY_MEMORY_TO_MICROMAP_EXT,
       VK_CMD_WRITE_MICROMAPS_PROPERTIES_EXT,
       VK_CMD_OPTICAL_FLOW_EXECUTE_NV,
       VK_CMD_SET_DEPTH_BIAS2_EXT,
       VK_CMD_BIND_SHADERS_EXT,
       VK_CMD_BIND_DESCRIPTOR_SETS2,
       VK_CMD_PUSH_CONSTANTS2,
       VK_CMD_PUSH_DESCRIPTOR_SET2,
       VK_CMD_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE2,
       VK_CMD_SET_DESCRIPTOR_BUFFER_OFFSETS2_EXT,
       VK_CMD_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS2_EXT,
       VK_CMD_SET_RENDERING_ATTACHMENT_LOCATIONS,
       VK_CMD_SET_RENDERING_INPUT_ATTACHMENT_INDICES,
       VK_CMD_SET_DEPTH_CLAMP_RANGE_EXT,
    };
    
    extern const char *vk_cmd_queue_type_names[];
    extern size_t vk_cmd_queue_type_sizes[];
    
    struct vk_cmd_bind_pipeline {
       VkPipelineBindPoint pipeline_bind_point;
       VkPipeline pipeline;
    };
    struct vk_cmd_set_attachment_feedback_loop_enable_ext {
       VkImageAspectFlags aspect_mask;
    };
    struct vk_cmd_set_viewport {
       uint32_t first_viewport;
       uint32_t viewport_count;
       VkViewport* viewports;
    };
    struct vk_cmd_set_scissor {
       uint32_t first_scissor;
       uint32_t scissor_count;
       VkRect2D* scissors;
    };
    struct vk_cmd_set_line_width {
       float line_width;
    };
    struct vk_cmd_set_depth_bias {
       float depth_bias_constant_factor;
       float depth_bias_clamp;
       float depth_bias_slope_factor;
    };
    struct vk_cmd_set_blend_constants {
       float blend_constants[4];
    };
    struct vk_cmd_set_depth_bounds {
       float min_depth_bounds;
       float max_depth_bounds;
    };
    struct vk_cmd_set_stencil_compare_mask {
       VkStencilFaceFlags face_mask;
       uint32_t compare_mask;
    };
    struct vk_cmd_set_stencil_write_mask {
       VkStencilFaceFlags face_mask;
       uint32_t write_mask;
    };
    struct vk_cmd_set_stencil_reference {
       VkStencilFaceFlags face_mask;
       uint32_t reference;
    };
    struct vk_cmd_bind_descriptor_sets {
       VkPipelineBindPoint pipeline_bind_point;
       VkPipelineLayout layout;
       uint32_t first_set;
       uint32_t descriptor_set_count;
       VkDescriptorSet* descriptor_sets;
       uint32_t dynamic_offset_count;
       uint32_t* dynamic_offsets;
    };
    struct vk_cmd_bind_index_buffer {
       VkBuffer buffer;
       VkDeviceSize offset;
       VkIndexType index_type;
    };
    struct vk_cmd_bind_vertex_buffers {
       uint32_t first_binding;
       uint32_t binding_count;
       VkBuffer* buffers;
       VkDeviceSize* offsets;
    };
    struct vk_cmd_draw {
       uint32_t vertex_count;
       uint32_t instance_count;
       uint32_t first_vertex;
       uint32_t first_instance;
    };
    struct vk_cmd_draw_indexed {
       uint32_t index_count;
       uint32_t instance_count;
       uint32_t first_index;
       int32_t vertex_offset;
       uint32_t first_instance;
    };
    struct vk_cmd_draw_multi_ext {
       uint32_t draw_count;
       VkMultiDrawInfoEXT* vertex_info;
       uint32_t instance_count;
       uint32_t first_instance;
       uint32_t stride;
    };
    struct vk_cmd_draw_multi_indexed_ext {
       uint32_t draw_count;
       VkMultiDrawIndexedInfoEXT* index_info;
       uint32_t instance_count;
       uint32_t first_instance;
       uint32_t stride;
       int32_t* vertex_offset;
    };
    struct vk_cmd_draw_indirect {
       VkBuffer buffer;
       VkDeviceSize offset;
       uint32_t draw_count;
       uint32_t stride;
    };
    struct vk_cmd_draw_indexed_indirect {
       VkBuffer buffer;
       VkDeviceSize offset;
       uint32_t draw_count;
       uint32_t stride;
    };
    struct vk_cmd_dispatch {
       uint32_t group_count_x;
       uint32_t group_count_y;
       uint32_t group_count_z;
    };
    struct vk_cmd_dispatch_indirect {
       VkBuffer buffer;
       VkDeviceSize offset;
    };
    struct vk_cmd_draw_cluster_huawei {
       uint32_t group_count_x;
       uint32_t group_count_y;
       uint32_t group_count_z;
    };
    struct vk_cmd_draw_cluster_indirect_huawei {
       VkBuffer buffer;
       VkDeviceSize offset;
    };
    struct vk_cmd_update_pipeline_indirect_buffer_nv {
       VkPipelineBindPoint           pipeline_bind_point;
       VkPipeline                    pipeline;
    };
    struct vk_cmd_copy_buffer {
       VkBuffer src_buffer;
       VkBuffer dst_buffer;
       uint32_t region_count;
       VkBufferCopy* regions;
    };
    struct vk_cmd_copy_image {
       VkImage src_image;
       VkImageLayout src_image_layout;
       VkImage dst_image;
       VkImageLayout dst_image_layout;
       uint32_t region_count;
       VkImageCopy* regions;
    };
    struct vk_cmd_blit_image {
       VkImage src_image;
       VkImageLayout src_image_layout;
       VkImage dst_image;
       VkImageLayout dst_image_layout;
       uint32_t region_count;
       VkImageBlit* regions;
       VkFilter filter;
    };
    struct vk_cmd_copy_buffer_to_image {
       VkBuffer src_buffer;
       VkImage dst_image;
       VkImageLayout dst_image_layout;
       uint32_t region_count;
       VkBufferImageCopy* regions;
    };
    struct vk_cmd_copy_image_to_buffer {
       VkImage src_image;
       VkImageLayout src_image_layout;
       VkBuffer dst_buffer;
       uint32_t region_count;
       VkBufferImageCopy* regions;
    };
    struct vk_cmd_copy_memory_indirect_nv {
       VkDeviceAddress copy_buffer_address;
       uint32_t copy_count;
       uint32_t stride;
    };
    struct vk_cmd_copy_memory_to_image_indirect_nv {
       VkDeviceAddress copy_buffer_address;
       uint32_t copy_count;
       uint32_t stride;
       VkImage dst_image;
       VkImageLayout dst_image_layout;
       VkImageSubresourceLayers* image_subresources;
    };
    struct vk_cmd_update_buffer {
       VkBuffer dst_buffer;
       VkDeviceSize dst_offset;
       VkDeviceSize data_size;
       void* data;
    };
    struct vk_cmd_fill_buffer {
       VkBuffer dst_buffer;
       VkDeviceSize dst_offset;
       VkDeviceSize size;
       uint32_t data;
    };
    struct vk_cmd_clear_color_image {
       VkImage image;
       VkImageLayout image_layout;
       VkClearColorValue* color;
       uint32_t range_count;
       VkImageSubresourceRange* ranges;
    };
    struct vk_cmd_clear_depth_stencil_image {
       VkImage image;
       VkImageLayout image_layout;
       VkClearDepthStencilValue* depth_stencil;
       uint32_t range_count;
       VkImageSubresourceRange* ranges;
    };
    struct vk_cmd_clear_attachments {
       uint32_t attachment_count;
       VkClearAttachment* attachments;
       uint32_t rect_count;
       VkClearRect* rects;
    };
    struct vk_cmd_resolve_image {
       VkImage src_image;
       VkImageLayout src_image_layout;
       VkImage dst_image;
       VkImageLayout dst_image_layout;
       uint32_t region_count;
       VkImageResolve* regions;
    };
    struct vk_cmd_set_event {
       VkEvent event;
       VkPipelineStageFlags stage_mask;
    };
    struct vk_cmd_reset_event {
       VkEvent event;
       VkPipelineStageFlags stage_mask;
    };
    struct vk_cmd_wait_events {
       uint32_t event_count;
       VkEvent* events;
       VkPipelineStageFlags src_stage_mask;
       VkPipelineStageFlags dst_stage_mask;
       uint32_t memory_barrier_count;
       VkMemoryBarrier* memory_barriers;
       uint32_t buffer_memory_barrier_count;
       VkBufferMemoryBarrier* buffer_memory_barriers;
       uint32_t image_memory_barrier_count;
       VkImageMemoryBarrier* image_memory_barriers;
    };
    struct vk_cmd_pipeline_barrier {
       VkPipelineStageFlags src_stage_mask;
       VkPipelineStageFlags dst_stage_mask;
       VkDependencyFlags dependency_flags;
       uint32_t memory_barrier_count;
       VkMemoryBarrier* memory_barriers;
       uint32_t buffer_memory_barrier_count;
       VkBufferMemoryBarrier* buffer_memory_barriers;
       uint32_t image_memory_barrier_count;
       VkImageMemoryBarrier* image_memory_barriers;
    };
    struct vk_cmd_begin_query {
       VkQueryPool query_pool;
       uint32_t query;
       VkQueryControlFlags flags;
    };
    struct vk_cmd_end_query {
       VkQueryPool query_pool;
       uint32_t query;
    };
    struct vk_cmd_begin_conditional_rendering_ext {
       VkConditionalRenderingBeginInfoEXT* conditional_rendering_begin;
    };
    struct vk_cmd_reset_query_pool {
       VkQueryPool query_pool;
       uint32_t first_query;
       uint32_t query_count;
    };
    struct vk_cmd_write_timestamp {
       VkPipelineStageFlagBits pipeline_stage;
       VkQueryPool query_pool;
       uint32_t query;
    };
    struct vk_cmd_copy_query_pool_results {
       VkQueryPool query_pool;
       uint32_t first_query;
       uint32_t query_count;
       VkBuffer dst_buffer;
       VkDeviceSize dst_offset;
       VkDeviceSize stride;
       VkQueryResultFlags flags;
    };
    struct vk_cmd_push_constants {
       VkPipelineLayout layout;
       VkShaderStageFlags stage_flags;
       uint32_t offset;
       uint32_t size;
       void* values;
    };
    struct vk_cmd_begin_render_pass {
       VkRenderPassBeginInfo* render_pass_begin;
       VkSubpassContents contents;
    };
    struct vk_cmd_next_subpass {
       VkSubpassContents contents;
    };
    struct vk_cmd_execute_commands {
       uint32_t command_buffer_count;
       VkCommandBuffer* command_buffers;
    };
    struct vk_cmd_debug_marker_begin_ext {
       VkDebugMarkerMarkerInfoEXT* marker_info;
    };
    struct vk_cmd_debug_marker_insert_ext {
       VkDebugMarkerMarkerInfoEXT* marker_info;
    };
    struct vk_cmd_execute_generated_commands_nv {
       VkBool32 is_preprocessed;
       VkGeneratedCommandsInfoNV* generated_commands_info;
    };
    struct vk_cmd_preprocess_generated_commands_nv {
       VkGeneratedCommandsInfoNV* generated_commands_info;
    };
    struct vk_cmd_bind_pipeline_shader_group_nv {
       VkPipelineBindPoint pipeline_bind_point;
       VkPipeline pipeline;
       uint32_t group_index;
    };
    struct vk_cmd_execute_generated_commands_ext {
       VkBool32 is_preprocessed;
       VkGeneratedCommandsInfoEXT* generated_commands_info;
    };
    struct vk_cmd_preprocess_generated_commands_ext {
       VkGeneratedCommandsInfoEXT* generated_commands_info;
       VkCommandBuffer state_command_buffer;
    };
    struct vk_cmd_push_descriptor_set {
       VkPipelineBindPoint pipeline_bind_point;
       VkPipelineLayout layout;
       uint32_t set;
       uint32_t descriptor_write_count;
       VkWriteDescriptorSet* descriptor_writes;
    };
    struct vk_cmd_set_device_mask {
       uint32_t device_mask;
    };
    struct vk_cmd_dispatch_base {
       uint32_t base_group_x;
       uint32_t base_group_y;
       uint32_t base_group_z;
       uint32_t group_count_x;
       uint32_t group_count_y;
       uint32_t group_count_z;
    };
    struct vk_cmd_push_descriptor_set_with_template {
       VkDescriptorUpdateTemplate descriptor_update_template;
       VkPipelineLayout layout;
       uint32_t set;
       void* data;
    };
    struct vk_cmd_set_viewport_wscaling_nv {
       uint32_t first_viewport;
       uint32_t viewport_count;
       VkViewportWScalingNV* viewport_wscalings;
    };
    struct vk_cmd_set_discard_rectangle_ext {
       uint32_t first_discard_rectangle;
       uint32_t discard_rectangle_count;
       VkRect2D* discard_rectangles;
    };
    struct vk_cmd_set_discard_rectangle_enable_ext {
       VkBool32 discard_rectangle_enable;
    };
    struct vk_cmd_set_discard_rectangle_mode_ext {
       VkDiscardRectangleModeEXT discard_rectangle_mode;
    };
    struct vk_cmd_set_sample_locations_ext {
       VkSampleLocationsInfoEXT* sample_locations_info;
    };
    struct vk_cmd_begin_debug_utils_label_ext {
       VkDebugUtilsLabelEXT* label_info;
    };
    struct vk_cmd_insert_debug_utils_label_ext {
       VkDebugUtilsLabelEXT* label_info;
    };
    struct vk_cmd_write_buffer_marker_amd {
       VkPipelineStageFlagBits pipeline_stage;
       VkBuffer dst_buffer;
       VkDeviceSize dst_offset;
       uint32_t marker;
    };
    struct vk_cmd_begin_render_pass2 {
       VkRenderPassBeginInfo*      render_pass_begin;
       VkSubpassBeginInfo*      subpass_begin_info;
    };
    struct vk_cmd_next_subpass2 {
       VkSubpassBeginInfo*      subpass_begin_info;
       VkSubpassEndInfo*        subpass_end_info;
    };
    struct vk_cmd_end_render_pass2 {
       VkSubpassEndInfo*        subpass_end_info;
    };
    struct vk_cmd_draw_indirect_count {
       VkBuffer buffer;
       VkDeviceSize offset;
       VkBuffer count_buffer;
       VkDeviceSize count_buffer_offset;
       uint32_t max_draw_count;
       uint32_t stride;
    };
    struct vk_cmd_draw_indexed_indirect_count {
       VkBuffer buffer;
       VkDeviceSize offset;
       VkBuffer count_buffer;
       VkDeviceSize count_buffer_offset;
       uint32_t max_draw_count;
       uint32_t stride;
    };
    struct vk_cmd_set_checkpoint_nv {
       void* checkpoint_marker;
    };
    struct vk_cmd_bind_transform_feedback_buffers_ext {
       uint32_t first_binding;
       uint32_t binding_count;
       VkBuffer* buffers;
       VkDeviceSize* offsets;
       VkDeviceSize* sizes;
    };
    struct vk_cmd_begin_transform_feedback_ext {
       uint32_t first_counter_buffer;
       uint32_t counter_buffer_count;
       VkBuffer* counter_buffers;
       VkDeviceSize* counter_buffer_offsets;
    };
    struct vk_cmd_end_transform_feedback_ext {
       uint32_t first_counter_buffer;
       uint32_t counter_buffer_count;
       VkBuffer* counter_buffers;
       VkDeviceSize* counter_buffer_offsets;
    };
    struct vk_cmd_begin_query_indexed_ext {
       VkQueryPool query_pool;
       uint32_t query;
       VkQueryControlFlags flags;
       uint32_t index;
    };
    struct vk_cmd_end_query_indexed_ext {
       VkQueryPool query_pool;
       uint32_t query;
       uint32_t index;
    };
    struct vk_cmd_draw_indirect_byte_count_ext {
       uint32_t instance_count;
       uint32_t first_instance;
       VkBuffer counter_buffer;
       VkDeviceSize counter_buffer_offset;
       uint32_t counter_offset;
       uint32_t vertex_stride;
    };
    struct vk_cmd_set_exclusive_scissor_nv {
       uint32_t first_exclusive_scissor;
       uint32_t exclusive_scissor_count;
       VkRect2D* exclusive_scissors;
    };
    struct vk_cmd_set_exclusive_scissor_enable_nv {
       uint32_t first_exclusive_scissor;
       uint32_t exclusive_scissor_count;
       VkBool32* exclusive_scissor_enables;
    };
    struct vk_cmd_bind_shading_rate_image_nv {
       VkImageView image_view;
       VkImageLayout image_layout;
    };
    struct vk_cmd_set_viewport_shading_rate_palette_nv {
       uint32_t first_viewport;
       uint32_t viewport_count;
       VkShadingRatePaletteNV* shading_rate_palettes;
    };
    struct vk_cmd_set_coarse_sample_order_nv {
       VkCoarseSampleOrderTypeNV sample_order_type;
       uint32_t custom_sample_order_count;
       VkCoarseSampleOrderCustomNV* custom_sample_orders;
    };
    struct vk_cmd_draw_mesh_tasks_nv {
       uint32_t task_count;
       uint32_t first_task;
    };
    struct vk_cmd_draw_mesh_tasks_indirect_nv {
       VkBuffer buffer;
       VkDeviceSize offset;
       uint32_t draw_count;
       uint32_t stride;
    };
    struct vk_cmd_draw_mesh_tasks_indirect_count_nv {
       VkBuffer buffer;
       VkDeviceSize offset;
       VkBuffer count_buffer;
       VkDeviceSize count_buffer_offset;
       uint32_t max_draw_count;
       uint32_t stride;
    };
    struct vk_cmd_draw_mesh_tasks_ext {
       uint32_t group_count_x;
       uint32_t group_count_y;
       uint32_t group_count_z;
    };
    struct vk_cmd_draw_mesh_tasks_indirect_ext {
       VkBuffer buffer;
       VkDeviceSize offset;
       uint32_t draw_count;
       uint32_t stride;
    };
    struct vk_cmd_draw_mesh_tasks_indirect_count_ext {
       VkBuffer buffer;
       VkDeviceSize offset;
       VkBuffer count_buffer;
       VkDeviceSize count_buffer_offset;
       uint32_t max_draw_count;
       uint32_t stride;
    };
    struct vk_cmd_bind_invocation_mask_huawei {
       VkImageView image_view;
       VkImageLayout image_layout;
    };
    struct vk_cmd_copy_acceleration_structure_nv {
       VkAccelerationStructureNV dst;
       VkAccelerationStructureNV src;
       VkCopyAccelerationStructureModeKHR mode;
    };
    struct vk_cmd_copy_acceleration_structure_khr {
       VkCopyAccelerationStructureInfoKHR* info;
    };
    struct vk_cmd_copy_acceleration_structure_to_memory_khr {
       VkCopyAccelerationStructureToMemoryInfoKHR* info;
    };
    struct vk_cmd_copy_memory_to_acceleration_structure_khr {
       VkCopyMemoryToAccelerationStructureInfoKHR* info;
    };
    struct vk_cmd_write_acceleration_structures_properties_khr {
       uint32_t acceleration_structure_count;
       VkAccelerationStructureKHR* acceleration_structures;
       VkQueryType query_type;
       VkQueryPool query_pool;
       uint32_t first_query;
    };
    struct vk_cmd_write_acceleration_structures_properties_nv {
       uint32_t acceleration_structure_count;
       VkAccelerationStructureNV* acceleration_structures;
       VkQueryType query_type;
       VkQueryPool query_pool;
       uint32_t first_query;
    };
    struct vk_cmd_build_acceleration_structure_nv {
       VkAccelerationStructureInfoNV* info;
       VkBuffer instance_data;
       VkDeviceSize instance_offset;
       VkBool32 update;
       VkAccelerationStructureNV dst;
       VkAccelerationStructureNV src;
       VkBuffer scratch;
       VkDeviceSize scratch_offset;
    };
    struct vk_cmd_trace_rays_khr {
       VkStridedDeviceAddressRegionKHR* raygen_shader_binding_table;
       VkStridedDeviceAddressRegionKHR* miss_shader_binding_table;
       VkStridedDeviceAddressRegionKHR* hit_shader_binding_table;
       VkStridedDeviceAddressRegionKHR* callable_shader_binding_table;
       uint32_t width;
       uint32_t height;
       uint32_t depth;
    };
    struct vk_cmd_trace_rays_nv {
       VkBuffer raygen_shader_binding_table_buffer;
       VkDeviceSize raygen_shader_binding_offset;
       VkBuffer miss_shader_binding_table_buffer;
       VkDeviceSize miss_shader_binding_offset;
       VkDeviceSize miss_shader_binding_stride;
       VkBuffer hit_shader_binding_table_buffer;
       VkDeviceSize hit_shader_binding_offset;
       VkDeviceSize hit_shader_binding_stride;
       VkBuffer callable_shader_binding_table_buffer;
       VkDeviceSize callable_shader_binding_offset;
       VkDeviceSize callable_shader_binding_stride;
       uint32_t width;
       uint32_t height;
       uint32_t depth;
    };
    struct vk_cmd_trace_rays_indirect_khr {
       VkStridedDeviceAddressRegionKHR* raygen_shader_binding_table;
       VkStridedDeviceAddressRegionKHR* miss_shader_binding_table;
       VkStridedDeviceAddressRegionKHR* hit_shader_binding_table;
       VkStridedDeviceAddressRegionKHR* callable_shader_binding_table;
       VkDeviceAddress indirect_device_address;
    };
    struct vk_cmd_trace_rays_indirect2_khr {
       VkDeviceAddress indirect_device_address;
    };
    struct vk_cmd_set_ray_tracing_pipeline_stack_size_khr {
       uint32_t pipeline_stack_size;
    };
    struct vk_cmd_set_performance_marker_intel {
       VkPerformanceMarkerInfoINTEL* marker_info;
    };
    struct vk_cmd_set_performance_stream_marker_intel {
       VkPerformanceStreamMarkerInfoINTEL* marker_info;
    };
    struct vk_cmd_set_performance_override_intel {
       VkPerformanceOverrideInfoINTEL* override_info;
    };
    struct vk_cmd_set_line_stipple {
       uint32_t line_stipple_factor;
       uint16_t line_stipple_pattern;
    };
    struct vk_cmd_build_acceleration_structures_khr {
       uint32_t info_count;
       VkAccelerationStructureBuildGeometryInfoKHR* infos;
       const VkAccelerationStructureBuildRangeInfoKHR* * pp_build_range_infos;
    };
    struct vk_cmd_build_acceleration_structures_indirect_khr {
       uint32_t                                           info_count;
       VkAccelerationStructureBuildGeometryInfoKHR* infos;
       VkDeviceAddress*             indirect_device_addresses;
       uint32_t*                    indirect_strides;
       const uint32_t* *             pp_max_primitive_counts;
    };
    struct vk_cmd_set_cull_mode {
       VkCullModeFlags cull_mode;
    };
    struct vk_cmd_set_front_face {
       VkFrontFace front_face;
    };
    struct vk_cmd_set_primitive_topology {
       VkPrimitiveTopology primitive_topology;
    };
    struct vk_cmd_set_viewport_with_count {
       uint32_t viewport_count;
       VkViewport* viewports;
    };
    struct vk_cmd_set_scissor_with_count {
       uint32_t scissor_count;
       VkRect2D* scissors;
    };
    struct vk_cmd_bind_index_buffer2 {
       VkBuffer buffer;
       VkDeviceSize offset;
       VkDeviceSize size;
       VkIndexType index_type;
    };
    struct vk_cmd_bind_vertex_buffers2 {
       uint32_t first_binding;
       uint32_t binding_count;
       VkBuffer* buffers;
       VkDeviceSize* offsets;
       VkDeviceSize* sizes;
       VkDeviceSize* strides;
    };
    struct vk_cmd_set_depth_test_enable {
       VkBool32 depth_test_enable;
    };
    struct vk_cmd_set_depth_write_enable {
       VkBool32 depth_write_enable;
    };
    struct vk_cmd_set_depth_compare_op {
       VkCompareOp depth_compare_op;
    };
    struct vk_cmd_set_depth_bounds_test_enable {
       VkBool32 depth_bounds_test_enable;
    };
    struct vk_cmd_set_stencil_test_enable {
       VkBool32 stencil_test_enable;
    };
    struct vk_cmd_set_stencil_op {
       VkStencilFaceFlags face_mask;
       VkStencilOp fail_op;
       VkStencilOp pass_op;
       VkStencilOp depth_fail_op;
       VkCompareOp compare_op;
    };
    struct vk_cmd_set_patch_control_points_ext {
       uint32_t patch_control_points;
    };
    struct vk_cmd_set_rasterizer_discard_enable {
       VkBool32 rasterizer_discard_enable;
    };
    struct vk_cmd_set_depth_bias_enable {
       VkBool32 depth_bias_enable;
    };
    struct vk_cmd_set_logic_op_ext {
       VkLogicOp logic_op;
    };
    struct vk_cmd_set_primitive_restart_enable {
       VkBool32 primitive_restart_enable;
    };
    struct vk_cmd_set_tessellation_domain_origin_ext {
       VkTessellationDomainOrigin domain_origin;
    };
    struct vk_cmd_set_depth_clamp_enable_ext {
       VkBool32 depth_clamp_enable;
    };
    struct vk_cmd_set_polygon_mode_ext {
       VkPolygonMode polygon_mode;
    };
    struct vk_cmd_set_rasterization_samples_ext {
       VkSampleCountFlagBits  rasterization_samples;
    };
    struct vk_cmd_set_sample_mask_ext {
       VkSampleCountFlagBits  samples;
       VkSampleMask*    sample_mask;
    };
    struct vk_cmd_set_alpha_to_coverage_enable_ext {
       VkBool32 alpha_to_coverage_enable;
    };
    struct vk_cmd_set_alpha_to_one_enable_ext {
       VkBool32 alpha_to_one_enable;
    };
    struct vk_cmd_set_logic_op_enable_ext {
       VkBool32 logic_op_enable;
    };
    struct vk_cmd_set_color_blend_enable_ext {
       uint32_t first_attachment;
       uint32_t attachment_count;
       VkBool32* color_blend_enables;
    };
    struct vk_cmd_set_color_blend_equation_ext {
       uint32_t first_attachment;
       uint32_t attachment_count;
       VkColorBlendEquationEXT* color_blend_equations;
    };
    struct vk_cmd_set_color_write_mask_ext {
       uint32_t first_attachment;
       uint32_t attachment_count;
       VkColorComponentFlags* color_write_masks;
    };
    struct vk_cmd_set_rasterization_stream_ext {
       uint32_t rasterization_stream;
    };
    struct vk_cmd_set_conservative_rasterization_mode_ext {
       VkConservativeRasterizationModeEXT conservative_rasterization_mode;
    };
    struct vk_cmd_set_extra_primitive_overestimation_size_ext {
       float extra_primitive_overestimation_size;
    };
    struct vk_cmd_set_depth_clip_enable_ext {
       VkBool32 depth_clip_enable;
    };
    struct vk_cmd_set_sample_locations_enable_ext {
       VkBool32 sample_locations_enable;
    };
    struct vk_cmd_set_color_blend_advanced_ext {
       uint32_t first_attachment;
       uint32_t attachment_count;
       VkColorBlendAdvancedEXT* color_blend_advanced;
    };
    struct vk_cmd_set_provoking_vertex_mode_ext {
       VkProvokingVertexModeEXT provoking_vertex_mode;
    };
    struct vk_cmd_set_line_rasterization_mode_ext {
       VkLineRasterizationModeEXT line_rasterization_mode;
    };
    struct vk_cmd_set_line_stipple_enable_ext {
       VkBool32 stippled_line_enable;
    };
    struct vk_cmd_set_depth_clip_negative_one_to_one_ext {
       VkBool32 negative_one_to_one;
    };
    struct vk_cmd_set_viewport_wscaling_enable_nv {
       VkBool32 viewport_wscaling_enable;
    };
    struct vk_cmd_set_viewport_swizzle_nv {
       uint32_t first_viewport;
       uint32_t viewport_count;
       VkViewportSwizzleNV* viewport_swizzles;
    };
    struct vk_cmd_set_coverage_to_color_enable_nv {
       VkBool32 coverage_to_color_enable;
    };
    struct vk_cmd_set_coverage_to_color_location_nv {
       uint32_t coverage_to_color_location;
    };
    struct vk_cmd_set_coverage_modulation_mode_nv {
       VkCoverageModulationModeNV coverage_modulation_mode;
    };
    struct vk_cmd_set_coverage_modulation_table_enable_nv {
       VkBool32 coverage_modulation_table_enable;
    };
    struct vk_cmd_set_coverage_modulation_table_nv {
       uint32_t coverage_modulation_table_count;
       float* coverage_modulation_table;
    };
    struct vk_cmd_set_shading_rate_image_enable_nv {
       VkBool32 shading_rate_image_enable;
    };
    struct vk_cmd_set_coverage_reduction_mode_nv {
       VkCoverageReductionModeNV coverage_reduction_mode;
    };
    struct vk_cmd_set_representative_fragment_test_enable_nv {
       VkBool32 representative_fragment_test_enable;
    };
    struct vk_cmd_copy_buffer2 {
       VkCopyBufferInfo2* copy_buffer_info;
    };
    struct vk_cmd_copy_image2 {
       VkCopyImageInfo2* copy_image_info;
    };
    struct vk_cmd_blit_image2 {
       VkBlitImageInfo2* blit_image_info;
    };
    struct vk_cmd_copy_buffer_to_image2 {
       VkCopyBufferToImageInfo2* copy_buffer_to_image_info;
    };
    struct vk_cmd_copy_image_to_buffer2 {
       VkCopyImageToBufferInfo2* copy_image_to_buffer_info;
    };
    struct vk_cmd_resolve_image2 {
       VkResolveImageInfo2* resolve_image_info;
    };
    struct vk_cmd_set_fragment_shading_rate_khr {
       VkExtent2D*                           fragment_size;
       VkFragmentShadingRateCombinerOpKHR    combiner_ops[2];
    };
    struct vk_cmd_set_fragment_shading_rate_enum_nv {
       VkFragmentShadingRateNV                     shading_rate;
       VkFragmentShadingRateCombinerOpKHR    combiner_ops[2];
    };
    struct vk_cmd_set_vertex_input_ext {
       uint32_t vertex_binding_description_count;
       VkVertexInputBindingDescription2EXT* vertex_binding_descriptions;
       uint32_t vertex_attribute_description_count;
       VkVertexInputAttributeDescription2EXT* vertex_attribute_descriptions;
    };
    struct vk_cmd_set_color_write_enable_ext {
       uint32_t                                attachment_count;
       VkBool32*   color_write_enables;
    };
    struct vk_cmd_set_event2 {
       VkEvent                                             event;
       VkDependencyInfo*                             dependency_info;
    };
    struct vk_cmd_reset_event2 {
       VkEvent                                             event;
       VkPipelineStageFlags2               stage_mask;
    };
    struct vk_cmd_wait_events2 {
       uint32_t                                            event_count;
       VkEvent*                     events;
       VkDependencyInfo*            dependency_infos;
    };
    struct vk_cmd_pipeline_barrier2 {
       VkDependencyInfo*                             dependency_info;
    };
    struct vk_cmd_write_timestamp2 {
       VkPipelineStageFlags2               stage;
       VkQueryPool                                         query_pool;
       uint32_t                                            query;
    };
    struct vk_cmd_write_buffer_marker2_amd {
       VkPipelineStageFlags2               stage;
       VkBuffer                                            dst_buffer;
       VkDeviceSize                                        dst_offset;
       uint32_t                                            marker;
    };
    struct vk_cmd_decode_video_khr {
       VkVideoDecodeInfoKHR* decode_info;
    };
    struct vk_cmd_begin_video_coding_khr {
       VkVideoBeginCodingInfoKHR* begin_info;
    };
    struct vk_cmd_control_video_coding_khr {
       VkVideoCodingControlInfoKHR* coding_control_info;
    };
    struct vk_cmd_end_video_coding_khr {
       VkVideoEndCodingInfoKHR* end_coding_info;
    };
    struct vk_cmd_encode_video_khr {
       VkVideoEncodeInfoKHR* encode_info;
    };
    struct vk_cmd_decompress_memory_nv {
       uint32_t decompress_region_count;
       VkDecompressMemoryRegionNV* decompress_memory_regions;
    };
    struct vk_cmd_decompress_memory_indirect_count_nv {
       VkDeviceAddress indirect_commands_address;
       VkDeviceAddress indirect_commands_count_address;
       uint32_t stride;
    };
    struct vk_cmd_cu_launch_kernel_nvx {
       VkCuLaunchInfoNVX* launch_info;
    };
    struct vk_cmd_bind_descriptor_buffers_ext {
       uint32_t buffer_count;
       VkDescriptorBufferBindingInfoEXT* binding_infos;
    };
    struct vk_cmd_set_descriptor_buffer_offsets_ext {
       VkPipelineBindPoint pipeline_bind_point;
       VkPipelineLayout layout;
       uint32_t first_set;
       uint32_t set_count;
       uint32_t* buffer_indices;
       VkDeviceSize* offsets;
    };
    struct vk_cmd_bind_descriptor_buffer_embedded_samplers_ext {
       VkPipelineBindPoint pipeline_bind_point;
       VkPipelineLayout layout;
       uint32_t set;
    };
    struct vk_cmd_begin_rendering {
       VkRenderingInfo*                              rendering_info;
    };
    struct vk_cmd_build_micromaps_ext {
       uint32_t info_count;
       VkMicromapBuildInfoEXT* infos;
    };
    struct vk_cmd_copy_micromap_ext {
       VkCopyMicromapInfoEXT* info;
    };
    struct vk_cmd_copy_micromap_to_memory_ext {
       VkCopyMicromapToMemoryInfoEXT* info;
    };
    struct vk_cmd_copy_memory_to_micromap_ext {
       VkCopyMemoryToMicromapInfoEXT* info;
    };
    struct vk_cmd_write_micromaps_properties_ext {
       uint32_t micromap_count;
       VkMicromapEXT* micromaps;
       VkQueryType query_type;
       VkQueryPool query_pool;
       uint32_t first_query;
    };
    struct vk_cmd_optical_flow_execute_nv {
       VkOpticalFlowSessionNV session;
       VkOpticalFlowExecuteInfoNV* execute_info;
    };
    struct vk_cmd_set_depth_bias2_ext {
       VkDepthBiasInfoEXT*         depth_bias_info;
    };
    struct vk_cmd_bind_shaders_ext {
       uint32_t stage_count;
       VkShaderStageFlagBits* stages;
       VkShaderEXT* shaders;
    };
    struct vk_cmd_bind_descriptor_sets2 {
       VkBindDescriptorSetsInfo*   bind_descriptor_sets_info;
    };
    struct vk_cmd_push_constants2 {
       VkPushConstantsInfo*        push_constants_info;
    };
    struct vk_cmd_push_descriptor_set2 {
       VkPushDescriptorSetInfo*    push_descriptor_set_info;
    };
    struct vk_cmd_push_descriptor_set_with_template2 {
       VkPushDescriptorSetWithTemplateInfo* push_descriptor_set_with_template_info;
    };
    struct vk_cmd_set_descriptor_buffer_offsets2_ext {
       VkSetDescriptorBufferOffsetsInfoEXT* set_descriptor_buffer_offsets_info;
    };
    struct vk_cmd_bind_descriptor_buffer_embedded_samplers2_ext {
       VkBindDescriptorBufferEmbeddedSamplersInfoEXT* bind_descriptor_buffer_embedded_samplers_info;
    };
    struct vk_cmd_set_rendering_attachment_locations {
       VkRenderingAttachmentLocationInfo* location_info;
    };
    struct vk_cmd_set_rendering_input_attachment_indices {
       VkRenderingInputAttachmentIndexInfo* input_attachment_index_info;
    };
    struct vk_cmd_set_depth_clamp_range_ext {
       VkDepthClampModeEXT depth_clamp_mode;
       VkDepthClampRangeEXT* depth_clamp_range;
    };
    
    struct vk_cmd_queue_entry;
    
    /* this ordering must match vk_cmd_queue_entry */
    struct vk_cmd_queue_entry_base {
       struct list_head cmd_link;
       enum vk_cmd_type type;
       void *driver_data;
       void (*driver_free_cb)(struct vk_cmd_queue *queue,
                              struct vk_cmd_queue_entry *cmd);
    };
    
    /* this ordering must match vk_cmd_queue_entry_base */
    struct vk_cmd_queue_entry {
       struct list_head cmd_link;
       enum vk_cmd_type type;
       void *driver_data;
       void (*driver_free_cb)(struct vk_cmd_queue *queue,
                              struct vk_cmd_queue_entry *cmd);
       union {
          struct vk_cmd_bind_pipeline bind_pipeline;
          struct vk_cmd_set_attachment_feedback_loop_enable_ext set_attachment_feedback_loop_enable_ext;
          struct vk_cmd_set_viewport set_viewport;
          struct vk_cmd_set_scissor set_scissor;
          struct vk_cmd_set_line_width set_line_width;
          struct vk_cmd_set_depth_bias set_depth_bias;
          struct vk_cmd_set_blend_constants set_blend_constants;
          struct vk_cmd_set_depth_bounds set_depth_bounds;
          struct vk_cmd_set_stencil_compare_mask set_stencil_compare_mask;
          struct vk_cmd_set_stencil_write_mask set_stencil_write_mask;
          struct vk_cmd_set_stencil_reference set_stencil_reference;
          struct vk_cmd_bind_descriptor_sets bind_descriptor_sets;
          struct vk_cmd_bind_index_buffer bind_index_buffer;
          struct vk_cmd_bind_vertex_buffers bind_vertex_buffers;
          struct vk_cmd_draw draw;
          struct vk_cmd_draw_indexed draw_indexed;
          struct vk_cmd_draw_multi_ext draw_multi_ext;
          struct vk_cmd_draw_multi_indexed_ext draw_multi_indexed_ext;
          struct vk_cmd_draw_indirect draw_indirect;
          struct vk_cmd_draw_indexed_indirect draw_indexed_indirect;
          struct vk_cmd_dispatch dispatch;
          struct vk_cmd_dispatch_indirect dispatch_indirect;
          struct vk_cmd_draw_cluster_huawei draw_cluster_huawei;
          struct vk_cmd_draw_cluster_indirect_huawei draw_cluster_indirect_huawei;
          struct vk_cmd_update_pipeline_indirect_buffer_nv update_pipeline_indirect_buffer_nv;
          struct vk_cmd_copy_buffer copy_buffer;
          struct vk_cmd_copy_image copy_image;
          struct vk_cmd_blit_image blit_image;
          struct vk_cmd_copy_buffer_to_image copy_buffer_to_image;
          struct vk_cmd_copy_image_to_buffer copy_image_to_buffer;
          struct vk_cmd_copy_memory_indirect_nv copy_memory_indirect_nv;
          struct vk_cmd_copy_memory_to_image_indirect_nv copy_memory_to_image_indirect_nv;
          struct vk_cmd_update_buffer update_buffer;
          struct vk_cmd_fill_buffer fill_buffer;
          struct vk_cmd_clear_color_image clear_color_image;
          struct vk_cmd_clear_depth_stencil_image clear_depth_stencil_image;
          struct vk_cmd_clear_attachments clear_attachments;
          struct vk_cmd_resolve_image resolve_image;
          struct vk_cmd_set_event set_event;
          struct vk_cmd_reset_event reset_event;
          struct vk_cmd_wait_events wait_events;
          struct vk_cmd_pipeline_barrier pipeline_barrier;
          struct vk_cmd_begin_query begin_query;
          struct vk_cmd_end_query end_query;
          struct vk_cmd_begin_conditional_rendering_ext begin_conditional_rendering_ext;
          struct vk_cmd_reset_query_pool reset_query_pool;
          struct vk_cmd_write_timestamp write_timestamp;
          struct vk_cmd_copy_query_pool_results copy_query_pool_results;
          struct vk_cmd_push_constants push_constants;
          struct vk_cmd_begin_render_pass begin_render_pass;
          struct vk_cmd_next_subpass next_subpass;
          struct vk_cmd_execute_commands execute_commands;
          struct vk_cmd_debug_marker_begin_ext debug_marker_begin_ext;
          struct vk_cmd_debug_marker_insert_ext debug_marker_insert_ext;
          struct vk_cmd_execute_generated_commands_nv execute_generated_commands_nv;
          struct vk_cmd_preprocess_generated_commands_nv preprocess_generated_commands_nv;
          struct vk_cmd_bind_pipeline_shader_group_nv bind_pipeline_shader_group_nv;
          struct vk_cmd_execute_generated_commands_ext execute_generated_commands_ext;
          struct vk_cmd_preprocess_generated_commands_ext preprocess_generated_commands_ext;
          struct vk_cmd_push_descriptor_set push_descriptor_set;
          struct vk_cmd_set_device_mask set_device_mask;
          struct vk_cmd_dispatch_base dispatch_base;
          struct vk_cmd_push_descriptor_set_with_template push_descriptor_set_with_template;
          struct vk_cmd_set_viewport_wscaling_nv set_viewport_wscaling_nv;
          struct vk_cmd_set_discard_rectangle_ext set_discard_rectangle_ext;
          struct vk_cmd_set_discard_rectangle_enable_ext set_discard_rectangle_enable_ext;
          struct vk_cmd_set_discard_rectangle_mode_ext set_discard_rectangle_mode_ext;
          struct vk_cmd_set_sample_locations_ext set_sample_locations_ext;
          struct vk_cmd_begin_debug_utils_label_ext begin_debug_utils_label_ext;
          struct vk_cmd_insert_debug_utils_label_ext insert_debug_utils_label_ext;
          struct vk_cmd_write_buffer_marker_amd write_buffer_marker_amd;
          struct vk_cmd_begin_render_pass2 begin_render_pass2;
          struct vk_cmd_next_subpass2 next_subpass2;
          struct vk_cmd_end_render_pass2 end_render_pass2;
          struct vk_cmd_draw_indirect_count draw_indirect_count;
          struct vk_cmd_draw_indexed_indirect_count draw_indexed_indirect_count;
          struct vk_cmd_set_checkpoint_nv set_checkpoint_nv;
          struct vk_cmd_bind_transform_feedback_buffers_ext bind_transform_feedback_buffers_ext;
          struct vk_cmd_begin_transform_feedback_ext begin_transform_feedback_ext;
          struct vk_cmd_end_transform_feedback_ext end_transform_feedback_ext;
          struct vk_cmd_begin_query_indexed_ext begin_query_indexed_ext;
          struct vk_cmd_end_query_indexed_ext end_query_indexed_ext;
          struct vk_cmd_draw_indirect_byte_count_ext draw_indirect_byte_count_ext;
          struct vk_cmd_set_exclusive_scissor_nv set_exclusive_scissor_nv;
          struct vk_cmd_set_exclusive_scissor_enable_nv set_exclusive_scissor_enable_nv;
          struct vk_cmd_bind_shading_rate_image_nv bind_shading_rate_image_nv;
          struct vk_cmd_set_viewport_shading_rate_palette_nv set_viewport_shading_rate_palette_nv;
          struct vk_cmd_set_coarse_sample_order_nv set_coarse_sample_order_nv;
          struct vk_cmd_draw_mesh_tasks_nv draw_mesh_tasks_nv;
          struct vk_cmd_draw_mesh_tasks_indirect_nv draw_mesh_tasks_indirect_nv;
          struct vk_cmd_draw_mesh_tasks_indirect_count_nv draw_mesh_tasks_indirect_count_nv;
          struct vk_cmd_draw_mesh_tasks_ext draw_mesh_tasks_ext;
          struct vk_cmd_draw_mesh_tasks_indirect_ext draw_mesh_tasks_indirect_ext;
          struct vk_cmd_draw_mesh_tasks_indirect_count_ext draw_mesh_tasks_indirect_count_ext;
          struct vk_cmd_bind_invocation_mask_huawei bind_invocation_mask_huawei;
          struct vk_cmd_copy_acceleration_structure_nv copy_acceleration_structure_nv;
          struct vk_cmd_copy_acceleration_structure_khr copy_acceleration_structure_khr;
          struct vk_cmd_copy_acceleration_structure_to_memory_khr copy_acceleration_structure_to_memory_khr;
          struct vk_cmd_copy_memory_to_acceleration_structure_khr copy_memory_to_acceleration_structure_khr;
          struct vk_cmd_write_acceleration_structures_properties_khr write_acceleration_structures_properties_khr;
          struct vk_cmd_write_acceleration_structures_properties_nv write_acceleration_structures_properties_nv;
          struct vk_cmd_build_acceleration_structure_nv build_acceleration_structure_nv;
          struct vk_cmd_trace_rays_khr trace_rays_khr;
          struct vk_cmd_trace_rays_nv trace_rays_nv;
          struct vk_cmd_trace_rays_indirect_khr trace_rays_indirect_khr;
          struct vk_cmd_trace_rays_indirect2_khr trace_rays_indirect2_khr;
          struct vk_cmd_set_ray_tracing_pipeline_stack_size_khr set_ray_tracing_pipeline_stack_size_khr;
          struct vk_cmd_set_performance_marker_intel set_performance_marker_intel;
          struct vk_cmd_set_performance_stream_marker_intel set_performance_stream_marker_intel;
          struct vk_cmd_set_performance_override_intel set_performance_override_intel;
          struct vk_cmd_set_line_stipple set_line_stipple;
          struct vk_cmd_build_acceleration_structures_khr build_acceleration_structures_khr;
          struct vk_cmd_build_acceleration_structures_indirect_khr build_acceleration_structures_indirect_khr;
          struct vk_cmd_set_cull_mode set_cull_mode;
          struct vk_cmd_set_front_face set_front_face;
          struct vk_cmd_set_primitive_topology set_primitive_topology;
          struct vk_cmd_set_viewport_with_count set_viewport_with_count;
          struct vk_cmd_set_scissor_with_count set_scissor_with_count;
          struct vk_cmd_bind_index_buffer2 bind_index_buffer2;
          struct vk_cmd_bind_vertex_buffers2 bind_vertex_buffers2;
          struct vk_cmd_set_depth_test_enable set_depth_test_enable;
          struct vk_cmd_set_depth_write_enable set_depth_write_enable;
          struct vk_cmd_set_depth_compare_op set_depth_compare_op;
          struct vk_cmd_set_depth_bounds_test_enable set_depth_bounds_test_enable;
          struct vk_cmd_set_stencil_test_enable set_stencil_test_enable;
          struct vk_cmd_set_stencil_op set_stencil_op;
          struct vk_cmd_set_patch_control_points_ext set_patch_control_points_ext;
          struct vk_cmd_set_rasterizer_discard_enable set_rasterizer_discard_enable;
          struct vk_cmd_set_depth_bias_enable set_depth_bias_enable;
          struct vk_cmd_set_logic_op_ext set_logic_op_ext;
          struct vk_cmd_set_primitive_restart_enable set_primitive_restart_enable;
          struct vk_cmd_set_tessellation_domain_origin_ext set_tessellation_domain_origin_ext;
          struct vk_cmd_set_depth_clamp_enable_ext set_depth_clamp_enable_ext;
          struct vk_cmd_set_polygon_mode_ext set_polygon_mode_ext;
          struct vk_cmd_set_rasterization_samples_ext set_rasterization_samples_ext;
          struct vk_cmd_set_sample_mask_ext set_sample_mask_ext;
          struct vk_cmd_set_alpha_to_coverage_enable_ext set_alpha_to_coverage_enable_ext;
          struct vk_cmd_set_alpha_to_one_enable_ext set_alpha_to_one_enable_ext;
          struct vk_cmd_set_logic_op_enable_ext set_logic_op_enable_ext;
          struct vk_cmd_set_color_blend_enable_ext set_color_blend_enable_ext;
          struct vk_cmd_set_color_blend_equation_ext set_color_blend_equation_ext;
          struct vk_cmd_set_color_write_mask_ext set_color_write_mask_ext;
          struct vk_cmd_set_rasterization_stream_ext set_rasterization_stream_ext;
          struct vk_cmd_set_conservative_rasterization_mode_ext set_conservative_rasterization_mode_ext;
          struct vk_cmd_set_extra_primitive_overestimation_size_ext set_extra_primitive_overestimation_size_ext;
          struct vk_cmd_set_depth_clip_enable_ext set_depth_clip_enable_ext;
          struct vk_cmd_set_sample_locations_enable_ext set_sample_locations_enable_ext;
          struct vk_cmd_set_color_blend_advanced_ext set_color_blend_advanced_ext;
          struct vk_cmd_set_provoking_vertex_mode_ext set_provoking_vertex_mode_ext;
          struct vk_cmd_set_line_rasterization_mode_ext set_line_rasterization_mode_ext;
          struct vk_cmd_set_line_stipple_enable_ext set_line_stipple_enable_ext;
          struct vk_cmd_set_depth_clip_negative_one_to_one_ext set_depth_clip_negative_one_to_one_ext;
          struct vk_cmd_set_viewport_wscaling_enable_nv set_viewport_wscaling_enable_nv;
          struct vk_cmd_set_viewport_swizzle_nv set_viewport_swizzle_nv;
          struct vk_cmd_set_coverage_to_color_enable_nv set_coverage_to_color_enable_nv;
          struct vk_cmd_set_coverage_to_color_location_nv set_coverage_to_color_location_nv;
          struct vk_cmd_set_coverage_modulation_mode_nv set_coverage_modulation_mode_nv;
          struct vk_cmd_set_coverage_modulation_table_enable_nv set_coverage_modulation_table_enable_nv;
          struct vk_cmd_set_coverage_modulation_table_nv set_coverage_modulation_table_nv;
          struct vk_cmd_set_shading_rate_image_enable_nv set_shading_rate_image_enable_nv;
          struct vk_cmd_set_coverage_reduction_mode_nv set_coverage_reduction_mode_nv;
          struct vk_cmd_set_representative_fragment_test_enable_nv set_representative_fragment_test_enable_nv;
          struct vk_cmd_copy_buffer2 copy_buffer2;
          struct vk_cmd_copy_image2 copy_image2;
          struct vk_cmd_blit_image2 blit_image2;
          struct vk_cmd_copy_buffer_to_image2 copy_buffer_to_image2;
          struct vk_cmd_copy_image_to_buffer2 copy_image_to_buffer2;
          struct vk_cmd_resolve_image2 resolve_image2;
          struct vk_cmd_set_fragment_shading_rate_khr set_fragment_shading_rate_khr;
          struct vk_cmd_set_fragment_shading_rate_enum_nv set_fragment_shading_rate_enum_nv;
          struct vk_cmd_set_vertex_input_ext set_vertex_input_ext;
          struct vk_cmd_set_color_write_enable_ext set_color_write_enable_ext;
          struct vk_cmd_set_event2 set_event2;
          struct vk_cmd_reset_event2 reset_event2;
          struct vk_cmd_wait_events2 wait_events2;
          struct vk_cmd_pipeline_barrier2 pipeline_barrier2;
          struct vk_cmd_write_timestamp2 write_timestamp2;
          struct vk_cmd_write_buffer_marker2_amd write_buffer_marker2_amd;
          struct vk_cmd_decode_video_khr decode_video_khr;
          struct vk_cmd_begin_video_coding_khr begin_video_coding_khr;
          struct vk_cmd_control_video_coding_khr control_video_coding_khr;
          struct vk_cmd_end_video_coding_khr end_video_coding_khr;
          struct vk_cmd_encode_video_khr encode_video_khr;
          struct vk_cmd_decompress_memory_nv decompress_memory_nv;
          struct vk_cmd_decompress_memory_indirect_count_nv decompress_memory_indirect_count_nv;
          struct vk_cmd_cu_launch_kernel_nvx cu_launch_kernel_nvx;
          struct vk_cmd_bind_descriptor_buffers_ext bind_descriptor_buffers_ext;
          struct vk_cmd_set_descriptor_buffer_offsets_ext set_descriptor_buffer_offsets_ext;
          struct vk_cmd_bind_descriptor_buffer_embedded_samplers_ext bind_descriptor_buffer_embedded_samplers_ext;
          struct vk_cmd_begin_rendering begin_rendering;
          struct vk_cmd_build_micromaps_ext build_micromaps_ext;
          struct vk_cmd_copy_micromap_ext copy_micromap_ext;
          struct vk_cmd_copy_micromap_to_memory_ext copy_micromap_to_memory_ext;
          struct vk_cmd_copy_memory_to_micromap_ext copy_memory_to_micromap_ext;
          struct vk_cmd_write_micromaps_properties_ext write_micromaps_properties_ext;
          struct vk_cmd_optical_flow_execute_nv optical_flow_execute_nv;
          struct vk_cmd_set_depth_bias2_ext set_depth_bias2_ext;
          struct vk_cmd_bind_shaders_ext bind_shaders_ext;
          struct vk_cmd_bind_descriptor_sets2 bind_descriptor_sets2;
          struct vk_cmd_push_constants2 push_constants2;
          struct vk_cmd_push_descriptor_set2 push_descriptor_set2;
          struct vk_cmd_push_descriptor_set_with_template2 push_descriptor_set_with_template2;
          struct vk_cmd_set_descriptor_buffer_offsets2_ext set_descriptor_buffer_offsets2_ext;
          struct vk_cmd_bind_descriptor_buffer_embedded_samplers2_ext bind_descriptor_buffer_embedded_samplers2_ext;
          struct vk_cmd_set_rendering_attachment_locations set_rendering_attachment_locations;
          struct vk_cmd_set_rendering_input_attachment_indices set_rendering_input_attachment_indices;
          struct vk_cmd_set_depth_clamp_range_ext set_depth_clamp_range_ext;
       } u;
    };
    
      VkResult vk_enqueue_cmd_bind_pipeline(struct vk_cmd_queue *queue
       , VkPipelineBindPoint pipelineBindPoint
       , VkPipeline pipeline
      );
    
      VkResult vk_enqueue_cmd_set_attachment_feedback_loop_enable_ext(struct vk_cmd_queue *queue
       , VkImageAspectFlags aspectMask
      );
    
      VkResult vk_enqueue_cmd_set_viewport(struct vk_cmd_queue *queue
       , uint32_t firstViewport
       , uint32_t viewportCount
       , const VkViewport* pViewports
      );
    
      VkResult vk_enqueue_cmd_set_scissor(struct vk_cmd_queue *queue
       , uint32_t firstScissor
       , uint32_t scissorCount
       , const VkRect2D* pScissors
      );
    
      VkResult vk_enqueue_cmd_set_line_width(struct vk_cmd_queue *queue
       , float lineWidth
      );
    
      VkResult vk_enqueue_cmd_set_depth_bias(struct vk_cmd_queue *queue
       , float depthBiasConstantFactor
       , float depthBiasClamp
       , float depthBiasSlopeFactor
      );
    
      VkResult vk_enqueue_cmd_set_blend_constants(struct vk_cmd_queue *queue
       , const float blendConstants[4]
      );
    
      VkResult vk_enqueue_cmd_set_depth_bounds(struct vk_cmd_queue *queue
       , float minDepthBounds
       , float maxDepthBounds
      );
    
      VkResult vk_enqueue_cmd_set_stencil_compare_mask(struct vk_cmd_queue *queue
       , VkStencilFaceFlags faceMask
       , uint32_t compareMask
      );
    
      VkResult vk_enqueue_cmd_set_stencil_write_mask(struct vk_cmd_queue *queue
       , VkStencilFaceFlags faceMask
       , uint32_t writeMask
      );
    
      VkResult vk_enqueue_cmd_set_stencil_reference(struct vk_cmd_queue *queue
       , VkStencilFaceFlags faceMask
       , uint32_t reference
      );
    
      VkResult vk_enqueue_cmd_bind_index_buffer(struct vk_cmd_queue *queue
       , VkBuffer buffer
       , VkDeviceSize offset
       , VkIndexType indexType
      );
    
      VkResult vk_enqueue_cmd_bind_vertex_buffers(struct vk_cmd_queue *queue
       , uint32_t firstBinding
       , uint32_t bindingCount
       , const VkBuffer* pBuffers
       , const VkDeviceSize* pOffsets
      );
    
      VkResult vk_enqueue_cmd_draw(struct vk_cmd_queue *queue
       , uint32_t vertexCount
       , uint32_t instanceCount
       , uint32_t firstVertex
       , uint32_t firstInstance
      );
    
      VkResult vk_enqueue_cmd_draw_indexed(struct vk_cmd_queue *queue
       , uint32_t indexCount
       , uint32_t instanceCount
       , uint32_t firstIndex
       , int32_t vertexOffset
       , uint32_t firstInstance
      );
    
      VkResult vk_enqueue_cmd_draw_indirect(struct vk_cmd_queue *queue
       , VkBuffer buffer
       , VkDeviceSize offset
       , uint32_t drawCount
       , uint32_t stride
      );
    
      VkResult vk_enqueue_cmd_draw_indexed_indirect(struct vk_cmd_queue *queue
       , VkBuffer buffer
       , VkDeviceSize offset
       , uint32_t drawCount
       , uint32_t stride
      );
    
      VkResult vk_enqueue_cmd_dispatch(struct vk_cmd_queue *queue
       , uint32_t groupCountX
       , uint32_t groupCountY
       , uint32_t groupCountZ
      );
    
      VkResult vk_enqueue_cmd_dispatch_indirect(struct vk_cmd_queue *queue
       , VkBuffer buffer
       , VkDeviceSize offset
      );
    
      VkResult vk_enqueue_cmd_subpass_shading_huawei(struct vk_cmd_queue *queue
      );
    
      VkResult vk_enqueue_cmd_draw_cluster_huawei(struct vk_cmd_queue *queue
       , uint32_t groupCountX
       , uint32_t groupCountY
       , uint32_t groupCountZ
      );
    
      VkResult vk_enqueue_cmd_draw_cluster_indirect_huawei(struct vk_cmd_queue *queue
       , VkBuffer buffer
       , VkDeviceSize offset
      );
    
      VkResult vk_enqueue_cmd_update_pipeline_indirect_buffer_nv(struct vk_cmd_queue *queue
       , VkPipelineBindPoint           pipelineBindPoint
       , VkPipeline                    pipeline
      );
    
      VkResult vk_enqueue_cmd_copy_buffer(struct vk_cmd_queue *queue
       , VkBuffer srcBuffer
       , VkBuffer dstBuffer
       , uint32_t regionCount
       , const VkBufferCopy* pRegions
      );
    
      VkResult vk_enqueue_cmd_copy_image(struct vk_cmd_queue *queue
       , VkImage srcImage
       , VkImageLayout srcImageLayout
       , VkImage dstImage
       , VkImageLayout dstImageLayout
       , uint32_t regionCount
       , const VkImageCopy* pRegions
      );
    
      VkResult vk_enqueue_cmd_blit_image(struct vk_cmd_queue *queue
       , VkImage srcImage
       , VkImageLayout srcImageLayout
       , VkImage dstImage
       , VkImageLayout dstImageLayout
       , uint32_t regionCount
       , const VkImageBlit* pRegions
       , VkFilter filter
      );
    
      VkResult vk_enqueue_cmd_copy_buffer_to_image(struct vk_cmd_queue *queue
       , VkBuffer srcBuffer
       , VkImage dstImage
       , VkImageLayout dstImageLayout
       , uint32_t regionCount
       , const VkBufferImageCopy* pRegions
      );
    
      VkResult vk_enqueue_cmd_copy_image_to_buffer(struct vk_cmd_queue *queue
       , VkImage srcImage
       , VkImageLayout srcImageLayout
       , VkBuffer dstBuffer
       , uint32_t regionCount
       , const VkBufferImageCopy* pRegions
      );
    
      VkResult vk_enqueue_cmd_copy_memory_indirect_nv(struct vk_cmd_queue *queue
       , VkDeviceAddress copyBufferAddress
       , uint32_t copyCount
       , uint32_t stride
      );
    
      VkResult vk_enqueue_cmd_copy_memory_to_image_indirect_nv(struct vk_cmd_queue *queue
       , VkDeviceAddress copyBufferAddress
       , uint32_t copyCount
       , uint32_t stride
       , VkImage dstImage
       , VkImageLayout dstImageLayout
       , const VkImageSubresourceLayers* pImageSubresources
      );
    
      VkResult vk_enqueue_cmd_update_buffer(struct vk_cmd_queue *queue
       , VkBuffer dstBuffer
       , VkDeviceSize dstOffset
       , VkDeviceSize dataSize
       , const void* pData
      );
    
      VkResult vk_enqueue_cmd_fill_buffer(struct vk_cmd_queue *queue
       , VkBuffer dstBuffer
       , VkDeviceSize dstOffset
       , VkDeviceSize size
       , uint32_t data
      );
    
      VkResult vk_enqueue_cmd_clear_color_image(struct vk_cmd_queue *queue
       , VkImage image
       , VkImageLayout imageLayout
       , const VkClearColorValue* pColor
       , uint32_t rangeCount
       , const VkImageSubresourceRange* pRanges
      );
    
      VkResult vk_enqueue_cmd_clear_depth_stencil_image(struct vk_cmd_queue *queue
       , VkImage image
       , VkImageLayout imageLayout
       , const VkClearDepthStencilValue* pDepthStencil
       , uint32_t rangeCount
       , const VkImageSubresourceRange* pRanges
      );
    
      VkResult vk_enqueue_cmd_clear_attachments(struct vk_cmd_queue *queue
       , uint32_t attachmentCount
       , const VkClearAttachment* pAttachments
       , uint32_t rectCount
       , const VkClearRect* pRects
      );
    
      VkResult vk_enqueue_cmd_resolve_image(struct vk_cmd_queue *queue
       , VkImage srcImage
       , VkImageLayout srcImageLayout
       , VkImage dstImage
       , VkImageLayout dstImageLayout
       , uint32_t regionCount
       , const VkImageResolve* pRegions
      );
    
      VkResult vk_enqueue_cmd_set_event(struct vk_cmd_queue *queue
       , VkEvent event
       , VkPipelineStageFlags stageMask
      );
    
      VkResult vk_enqueue_cmd_reset_event(struct vk_cmd_queue *queue
       , VkEvent event
       , VkPipelineStageFlags stageMask
      );
    
      VkResult vk_enqueue_cmd_wait_events(struct vk_cmd_queue *queue
       , uint32_t eventCount
       , const VkEvent* pEvents
       , VkPipelineStageFlags srcStageMask
       , VkPipelineStageFlags dstStageMask
       , uint32_t memoryBarrierCount
       , const VkMemoryBarrier* pMemoryBarriers
       , uint32_t bufferMemoryBarrierCount
       , const VkBufferMemoryBarrier* pBufferMemoryBarriers
       , uint32_t imageMemoryBarrierCount
       , const VkImageMemoryBarrier* pImageMemoryBarriers
      );
    
      VkResult vk_enqueue_cmd_pipeline_barrier(struct vk_cmd_queue *queue
       , VkPipelineStageFlags srcStageMask
       , VkPipelineStageFlags dstStageMask
       , VkDependencyFlags dependencyFlags
       , uint32_t memoryBarrierCount
       , const VkMemoryBarrier* pMemoryBarriers
       , uint32_t bufferMemoryBarrierCount
       , const VkBufferMemoryBarrier* pBufferMemoryBarriers
       , uint32_t imageMemoryBarrierCount
       , const VkImageMemoryBarrier* pImageMemoryBarriers
      );
    
      VkResult vk_enqueue_cmd_begin_query(struct vk_cmd_queue *queue
       , VkQueryPool queryPool
       , uint32_t query
       , VkQueryControlFlags flags
      );
    
      VkResult vk_enqueue_cmd_end_query(struct vk_cmd_queue *queue
       , VkQueryPool queryPool
       , uint32_t query
      );
    
      VkResult vk_enqueue_cmd_begin_conditional_rendering_ext(struct vk_cmd_queue *queue
       , const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin
      );
    
      VkResult vk_enqueue_cmd_end_conditional_rendering_ext(struct vk_cmd_queue *queue
      );
    
      VkResult vk_enqueue_cmd_reset_query_pool(struct vk_cmd_queue *queue
       , VkQueryPool queryPool
       , uint32_t firstQuery
       , uint32_t queryCount
      );
    
      VkResult vk_enqueue_cmd_write_timestamp(struct vk_cmd_queue *queue
       , VkPipelineStageFlagBits pipelineStage
       , VkQueryPool queryPool
       , uint32_t query
      );
    
      VkResult vk_enqueue_cmd_copy_query_pool_results(struct vk_cmd_queue *queue
       , VkQueryPool queryPool
       , uint32_t firstQuery
       , uint32_t queryCount
       , VkBuffer dstBuffer
       , VkDeviceSize dstOffset
       , VkDeviceSize stride
       , VkQueryResultFlags flags
      );
    
      VkResult vk_enqueue_cmd_push_constants(struct vk_cmd_queue *queue
       , VkPipelineLayout layout
       , VkShaderStageFlags stageFlags
       , uint32_t offset
       , uint32_t size
       , const void* pValues
      );
    
      VkResult vk_enqueue_cmd_begin_render_pass(struct vk_cmd_queue *queue
       , const VkRenderPassBeginInfo* pRenderPassBegin
       , VkSubpassContents contents
      );
    
      VkResult vk_enqueue_cmd_next_subpass(struct vk_cmd_queue *queue
       , VkSubpassContents contents
      );
    
      VkResult vk_enqueue_cmd_end_render_pass(struct vk_cmd_queue *queue
      );
    
      VkResult vk_enqueue_cmd_execute_commands(struct vk_cmd_queue *queue
       , uint32_t commandBufferCount
       , const VkCommandBuffer* pCommandBuffers
      );
    
      VkResult vk_enqueue_cmd_debug_marker_begin_ext(struct vk_cmd_queue *queue
       , const VkDebugMarkerMarkerInfoEXT* pMarkerInfo
      );
    
      VkResult vk_enqueue_cmd_debug_marker_end_ext(struct vk_cmd_queue *queue
      );
    
      VkResult vk_enqueue_cmd_debug_marker_insert_ext(struct vk_cmd_queue *queue
       , const VkDebugMarkerMarkerInfoEXT* pMarkerInfo
      );
    
      VkResult vk_enqueue_cmd_execute_generated_commands_nv(struct vk_cmd_queue *queue
       , VkBool32 isPreprocessed
       , const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo
      );
    
      VkResult vk_enqueue_cmd_preprocess_generated_commands_nv(struct vk_cmd_queue *queue
       , const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo
      );
    
      VkResult vk_enqueue_cmd_bind_pipeline_shader_group_nv(struct vk_cmd_queue *queue
       , VkPipelineBindPoint pipelineBindPoint
       , VkPipeline pipeline
       , uint32_t groupIndex
      );
    
      VkResult vk_enqueue_cmd_execute_generated_commands_ext(struct vk_cmd_queue *queue
       , VkBool32 isPreprocessed
       , const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo
      );
    
      VkResult vk_enqueue_cmd_preprocess_generated_commands_ext(struct vk_cmd_queue *queue
       , const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo
       , VkCommandBuffer stateCommandBuffer
      );
    
      VkResult vk_enqueue_cmd_set_device_mask(struct vk_cmd_queue *queue
       , uint32_t deviceMask
      );
    
      VkResult vk_enqueue_cmd_dispatch_base(struct vk_cmd_queue *queue
       , uint32_t baseGroupX
       , uint32_t baseGroupY
       , uint32_t baseGroupZ
       , uint32_t groupCountX
       , uint32_t groupCountY
       , uint32_t groupCountZ
      );
    
      VkResult vk_enqueue_cmd_set_viewport_wscaling_nv(struct vk_cmd_queue *queue
       , uint32_t firstViewport
       , uint32_t viewportCount
       , const VkViewportWScalingNV* pViewportWScalings
      );
    
      VkResult vk_enqueue_cmd_set_discard_rectangle_ext(struct vk_cmd_queue *queue
       , uint32_t firstDiscardRectangle
       , uint32_t discardRectangleCount
       , const VkRect2D* pDiscardRectangles
      );
    
      VkResult vk_enqueue_cmd_set_discard_rectangle_enable_ext(struct vk_cmd_queue *queue
       , VkBool32 discardRectangleEnable
      );
    
      VkResult vk_enqueue_cmd_set_discard_rectangle_mode_ext(struct vk_cmd_queue *queue
       , VkDiscardRectangleModeEXT discardRectangleMode
      );
    
      VkResult vk_enqueue_cmd_set_sample_locations_ext(struct vk_cmd_queue *queue
       , const VkSampleLocationsInfoEXT* pSampleLocationsInfo
      );
    
      VkResult vk_enqueue_cmd_begin_debug_utils_label_ext(struct vk_cmd_queue *queue
       , const VkDebugUtilsLabelEXT* pLabelInfo
      );
    
      VkResult vk_enqueue_cmd_end_debug_utils_label_ext(struct vk_cmd_queue *queue
      );
    
      VkResult vk_enqueue_cmd_insert_debug_utils_label_ext(struct vk_cmd_queue *queue
       , const VkDebugUtilsLabelEXT* pLabelInfo
      );
    
      VkResult vk_enqueue_cmd_write_buffer_marker_amd(struct vk_cmd_queue *queue
       , VkPipelineStageFlagBits pipelineStage
       , VkBuffer dstBuffer
       , VkDeviceSize dstOffset
       , uint32_t marker
      );
    
      VkResult vk_enqueue_cmd_begin_render_pass2(struct vk_cmd_queue *queue
       , const VkRenderPassBeginInfo*      pRenderPassBegin
       , const VkSubpassBeginInfo*      pSubpassBeginInfo
      );
    
      VkResult vk_enqueue_cmd_next_subpass2(struct vk_cmd_queue *queue
       , const VkSubpassBeginInfo*      pSubpassBeginInfo
       , const VkSubpassEndInfo*        pSubpassEndInfo
      );
    
      VkResult vk_enqueue_cmd_end_render_pass2(struct vk_cmd_queue *queue
       , const VkSubpassEndInfo*        pSubpassEndInfo
      );
    
      VkResult vk_enqueue_cmd_draw_indirect_count(struct vk_cmd_queue *queue
       , VkBuffer buffer
       , VkDeviceSize offset
       , VkBuffer countBuffer
       , VkDeviceSize countBufferOffset
       , uint32_t maxDrawCount
       , uint32_t stride
      );
    
      VkResult vk_enqueue_cmd_draw_indexed_indirect_count(struct vk_cmd_queue *queue
       , VkBuffer buffer
       , VkDeviceSize offset
       , VkBuffer countBuffer
       , VkDeviceSize countBufferOffset
       , uint32_t maxDrawCount
       , uint32_t stride
      );
    
      VkResult vk_enqueue_cmd_set_checkpoint_nv(struct vk_cmd_queue *queue
       , const void* pCheckpointMarker
      );
    
      VkResult vk_enqueue_cmd_bind_transform_feedback_buffers_ext(struct vk_cmd_queue *queue
       , uint32_t firstBinding
       , uint32_t bindingCount
       , const VkBuffer* pBuffers
       , const VkDeviceSize* pOffsets
       , const VkDeviceSize* pSizes
      );
    
      VkResult vk_enqueue_cmd_begin_transform_feedback_ext(struct vk_cmd_queue *queue
       , uint32_t firstCounterBuffer
       , uint32_t counterBufferCount
       , const VkBuffer* pCounterBuffers
       , const VkDeviceSize* pCounterBufferOffsets
      );
    
      VkResult vk_enqueue_cmd_end_transform_feedback_ext(struct vk_cmd_queue *queue
       , uint32_t firstCounterBuffer
       , uint32_t counterBufferCount
       , const VkBuffer* pCounterBuffers
       , const VkDeviceSize* pCounterBufferOffsets
      );
    
      VkResult vk_enqueue_cmd_begin_query_indexed_ext(struct vk_cmd_queue *queue
       , VkQueryPool queryPool
       , uint32_t query
       , VkQueryControlFlags flags
       , uint32_t index
      );
    
      VkResult vk_enqueue_cmd_end_query_indexed_ext(struct vk_cmd_queue *queue
       , VkQueryPool queryPool
       , uint32_t query
       , uint32_t index
      );
    
      VkResult vk_enqueue_cmd_draw_indirect_byte_count_ext(struct vk_cmd_queue *queue
       , uint32_t instanceCount
       , uint32_t firstInstance
       , VkBuffer counterBuffer
       , VkDeviceSize counterBufferOffset
       , uint32_t counterOffset
       , uint32_t vertexStride
      );
    
      VkResult vk_enqueue_cmd_set_exclusive_scissor_nv(struct vk_cmd_queue *queue
       , uint32_t firstExclusiveScissor
       , uint32_t exclusiveScissorCount
       , const VkRect2D* pExclusiveScissors
      );
    
      VkResult vk_enqueue_cmd_set_exclusive_scissor_enable_nv(struct vk_cmd_queue *queue
       , uint32_t firstExclusiveScissor
       , uint32_t exclusiveScissorCount
       , const VkBool32* pExclusiveScissorEnables
      );
    
      VkResult vk_enqueue_cmd_bind_shading_rate_image_nv(struct vk_cmd_queue *queue
       , VkImageView imageView
       , VkImageLayout imageLayout
      );
    
      VkResult vk_enqueue_cmd_set_viewport_shading_rate_palette_nv(struct vk_cmd_queue *queue
       , uint32_t firstViewport
       , uint32_t viewportCount
       , const VkShadingRatePaletteNV* pShadingRatePalettes
      );
    
      VkResult vk_enqueue_cmd_set_coarse_sample_order_nv(struct vk_cmd_queue *queue
       , VkCoarseSampleOrderTypeNV sampleOrderType
       , uint32_t customSampleOrderCount
       , const VkCoarseSampleOrderCustomNV* pCustomSampleOrders
      );
    
      VkResult vk_enqueue_cmd_draw_mesh_tasks_nv(struct vk_cmd_queue *queue
       , uint32_t taskCount
       , uint32_t firstTask
      );
    
      VkResult vk_enqueue_cmd_draw_mesh_tasks_indirect_nv(struct vk_cmd_queue *queue
       , VkBuffer buffer
       , VkDeviceSize offset
       , uint32_t drawCount
       , uint32_t stride
      );
    
      VkResult vk_enqueue_cmd_draw_mesh_tasks_indirect_count_nv(struct vk_cmd_queue *queue
       , VkBuffer buffer
       , VkDeviceSize offset
       , VkBuffer countBuffer
       , VkDeviceSize countBufferOffset
       , uint32_t maxDrawCount
       , uint32_t stride
      );
    
      VkResult vk_enqueue_cmd_draw_mesh_tasks_ext(struct vk_cmd_queue *queue
       , uint32_t groupCountX
       , uint32_t groupCountY
       , uint32_t groupCountZ
      );
    
      VkResult vk_enqueue_cmd_draw_mesh_tasks_indirect_ext(struct vk_cmd_queue *queue
       , VkBuffer buffer
       , VkDeviceSize offset
       , uint32_t drawCount
       , uint32_t stride
      );
    
      VkResult vk_enqueue_cmd_draw_mesh_tasks_indirect_count_ext(struct vk_cmd_queue *queue
       , VkBuffer buffer
       , VkDeviceSize offset
       , VkBuffer countBuffer
       , VkDeviceSize countBufferOffset
       , uint32_t maxDrawCount
       , uint32_t stride
      );
    
      VkResult vk_enqueue_cmd_bind_invocation_mask_huawei(struct vk_cmd_queue *queue
       , VkImageView imageView
       , VkImageLayout imageLayout
      );
    
      VkResult vk_enqueue_cmd_copy_acceleration_structure_nv(struct vk_cmd_queue *queue
       , VkAccelerationStructureNV dst
       , VkAccelerationStructureNV src
       , VkCopyAccelerationStructureModeKHR mode
      );
    
      VkResult vk_enqueue_cmd_copy_acceleration_structure_khr(struct vk_cmd_queue *queue
       , const VkCopyAccelerationStructureInfoKHR* pInfo
      );
    
      VkResult vk_enqueue_cmd_copy_acceleration_structure_to_memory_khr(struct vk_cmd_queue *queue
       , const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo
      );
    
      VkResult vk_enqueue_cmd_copy_memory_to_acceleration_structure_khr(struct vk_cmd_queue *queue
       , const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo
      );
    
      VkResult vk_enqueue_cmd_write_acceleration_structures_properties_khr(struct vk_cmd_queue *queue
       , uint32_t accelerationStructureCount
       , const VkAccelerationStructureKHR* pAccelerationStructures
       , VkQueryType queryType
       , VkQueryPool queryPool
       , uint32_t firstQuery
      );
    
      VkResult vk_enqueue_cmd_write_acceleration_structures_properties_nv(struct vk_cmd_queue *queue
       , uint32_t accelerationStructureCount
       , const VkAccelerationStructureNV* pAccelerationStructures
       , VkQueryType queryType
       , VkQueryPool queryPool
       , uint32_t firstQuery
      );
    
      VkResult vk_enqueue_cmd_build_acceleration_structure_nv(struct vk_cmd_queue *queue
       , const VkAccelerationStructureInfoNV* pInfo
       , VkBuffer instanceData
       , VkDeviceSize instanceOffset
       , VkBool32 update
       , VkAccelerationStructureNV dst
       , VkAccelerationStructureNV src
       , VkBuffer scratch
       , VkDeviceSize scratchOffset
      );
    
      VkResult vk_enqueue_cmd_trace_rays_khr(struct vk_cmd_queue *queue
       , const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable
       , const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable
       , const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable
       , const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable
       , uint32_t width
       , uint32_t height
       , uint32_t depth
      );
    
      VkResult vk_enqueue_cmd_trace_rays_nv(struct vk_cmd_queue *queue
       , VkBuffer raygenShaderBindingTableBuffer
       , VkDeviceSize raygenShaderBindingOffset
       , VkBuffer missShaderBindingTableBuffer
       , VkDeviceSize missShaderBindingOffset
       , VkDeviceSize missShaderBindingStride
       , VkBuffer hitShaderBindingTableBuffer
       , VkDeviceSize hitShaderBindingOffset
       , VkDeviceSize hitShaderBindingStride
       , VkBuffer callableShaderBindingTableBuffer
       , VkDeviceSize callableShaderBindingOffset
       , VkDeviceSize callableShaderBindingStride
       , uint32_t width
       , uint32_t height
       , uint32_t depth
      );
    
      VkResult vk_enqueue_cmd_trace_rays_indirect_khr(struct vk_cmd_queue *queue
       , const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable
       , const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable
       , const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable
       , const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable
       , VkDeviceAddress indirectDeviceAddress
      );
    
      VkResult vk_enqueue_cmd_trace_rays_indirect2_khr(struct vk_cmd_queue *queue
       , VkDeviceAddress indirectDeviceAddress
      );
    
      VkResult vk_enqueue_cmd_set_ray_tracing_pipeline_stack_size_khr(struct vk_cmd_queue *queue
       , uint32_t pipelineStackSize
      );
    
      VkResult vk_enqueue_cmd_set_line_stipple(struct vk_cmd_queue *queue
       , uint32_t lineStippleFactor
       , uint16_t lineStipplePattern
      );
    
      VkResult vk_enqueue_cmd_build_acceleration_structures_indirect_khr(struct vk_cmd_queue *queue
       , uint32_t                                           infoCount
       , const VkAccelerationStructureBuildGeometryInfoKHR* pInfos
       , const VkDeviceAddress*             pIndirectDeviceAddresses
       , const uint32_t*                    pIndirectStrides
       , const uint32_t* const*             ppMaxPrimitiveCounts
      );
    
      VkResult vk_enqueue_cmd_set_cull_mode(struct vk_cmd_queue *queue
       , VkCullModeFlags cullMode
      );
    
      VkResult vk_enqueue_cmd_set_front_face(struct vk_cmd_queue *queue
       , VkFrontFace frontFace
      );
    
      VkResult vk_enqueue_cmd_set_primitive_topology(struct vk_cmd_queue *queue
       , VkPrimitiveTopology primitiveTopology
      );
    
      VkResult vk_enqueue_cmd_set_viewport_with_count(struct vk_cmd_queue *queue
       , uint32_t viewportCount
       , const VkViewport* pViewports
      );
    
      VkResult vk_enqueue_cmd_set_scissor_with_count(struct vk_cmd_queue *queue
       , uint32_t scissorCount
       , const VkRect2D* pScissors
      );
    
      VkResult vk_enqueue_cmd_bind_index_buffer2(struct vk_cmd_queue *queue
       , VkBuffer buffer
       , VkDeviceSize offset
       , VkDeviceSize size
       , VkIndexType indexType
      );
    
      VkResult vk_enqueue_cmd_bind_vertex_buffers2(struct vk_cmd_queue *queue
       , uint32_t firstBinding
       , uint32_t bindingCount
       , const VkBuffer* pBuffers
       , const VkDeviceSize* pOffsets
       , const VkDeviceSize* pSizes
       , const VkDeviceSize* pStrides
      );
    
      VkResult vk_enqueue_cmd_set_depth_test_enable(struct vk_cmd_queue *queue
       , VkBool32 depthTestEnable
      );
    
      VkResult vk_enqueue_cmd_set_depth_write_enable(struct vk_cmd_queue *queue
       , VkBool32 depthWriteEnable
      );
    
      VkResult vk_enqueue_cmd_set_depth_compare_op(struct vk_cmd_queue *queue
       , VkCompareOp depthCompareOp
      );
    
      VkResult vk_enqueue_cmd_set_depth_bounds_test_enable(struct vk_cmd_queue *queue
       , VkBool32 depthBoundsTestEnable
      );
    
      VkResult vk_enqueue_cmd_set_stencil_test_enable(struct vk_cmd_queue *queue
       , VkBool32 stencilTestEnable
      );
    
      VkResult vk_enqueue_cmd_set_stencil_op(struct vk_cmd_queue *queue
       , VkStencilFaceFlags faceMask
       , VkStencilOp failOp
       , VkStencilOp passOp
       , VkStencilOp depthFailOp
       , VkCompareOp compareOp
      );
    
      VkResult vk_enqueue_cmd_set_patch_control_points_ext(struct vk_cmd_queue *queue
       , uint32_t patchControlPoints
      );
    
      VkResult vk_enqueue_cmd_set_rasterizer_discard_enable(struct vk_cmd_queue *queue
       , VkBool32 rasterizerDiscardEnable
      );
    
      VkResult vk_enqueue_cmd_set_depth_bias_enable(struct vk_cmd_queue *queue
       , VkBool32 depthBiasEnable
      );
    
      VkResult vk_enqueue_cmd_set_logic_op_ext(struct vk_cmd_queue *queue
       , VkLogicOp logicOp
      );
    
      VkResult vk_enqueue_cmd_set_primitive_restart_enable(struct vk_cmd_queue *queue
       , VkBool32 primitiveRestartEnable
      );
    
      VkResult vk_enqueue_cmd_set_tessellation_domain_origin_ext(struct vk_cmd_queue *queue
       , VkTessellationDomainOrigin domainOrigin
      );
    
      VkResult vk_enqueue_cmd_set_depth_clamp_enable_ext(struct vk_cmd_queue *queue
       , VkBool32 depthClampEnable
      );
    
      VkResult vk_enqueue_cmd_set_polygon_mode_ext(struct vk_cmd_queue *queue
       , VkPolygonMode polygonMode
      );
    
      VkResult vk_enqueue_cmd_set_rasterization_samples_ext(struct vk_cmd_queue *queue
       , VkSampleCountFlagBits  rasterizationSamples
      );
    
      VkResult vk_enqueue_cmd_set_sample_mask_ext(struct vk_cmd_queue *queue
       , VkSampleCountFlagBits  samples
       , const VkSampleMask*    pSampleMask
      );
    
      VkResult vk_enqueue_cmd_set_alpha_to_coverage_enable_ext(struct vk_cmd_queue *queue
       , VkBool32 alphaToCoverageEnable
      );
    
      VkResult vk_enqueue_cmd_set_alpha_to_one_enable_ext(struct vk_cmd_queue *queue
       , VkBool32 alphaToOneEnable
      );
    
      VkResult vk_enqueue_cmd_set_logic_op_enable_ext(struct vk_cmd_queue *queue
       , VkBool32 logicOpEnable
      );
    
      VkResult vk_enqueue_cmd_set_color_blend_enable_ext(struct vk_cmd_queue *queue
       , uint32_t firstAttachment
       , uint32_t attachmentCount
       , const VkBool32* pColorBlendEnables
      );
    
      VkResult vk_enqueue_cmd_set_color_blend_equation_ext(struct vk_cmd_queue *queue
       , uint32_t firstAttachment
       , uint32_t attachmentCount
       , const VkColorBlendEquationEXT* pColorBlendEquations
      );
    
      VkResult vk_enqueue_cmd_set_color_write_mask_ext(struct vk_cmd_queue *queue
       , uint32_t firstAttachment
       , uint32_t attachmentCount
       , const VkColorComponentFlags* pColorWriteMasks
      );
    
      VkResult vk_enqueue_cmd_set_rasterization_stream_ext(struct vk_cmd_queue *queue
       , uint32_t rasterizationStream
      );
    
      VkResult vk_enqueue_cmd_set_conservative_rasterization_mode_ext(struct vk_cmd_queue *queue
       , VkConservativeRasterizationModeEXT conservativeRasterizationMode
      );
    
      VkResult vk_enqueue_cmd_set_extra_primitive_overestimation_size_ext(struct vk_cmd_queue *queue
       , float extraPrimitiveOverestimationSize
      );
    
      VkResult vk_enqueue_cmd_set_depth_clip_enable_ext(struct vk_cmd_queue *queue
       , VkBool32 depthClipEnable
      );
    
      VkResult vk_enqueue_cmd_set_sample_locations_enable_ext(struct vk_cmd_queue *queue
       , VkBool32 sampleLocationsEnable
      );
    
      VkResult vk_enqueue_cmd_set_color_blend_advanced_ext(struct vk_cmd_queue *queue
       , uint32_t firstAttachment
       , uint32_t attachmentCount
       , const VkColorBlendAdvancedEXT* pColorBlendAdvanced
      );
    
      VkResult vk_enqueue_cmd_set_provoking_vertex_mode_ext(struct vk_cmd_queue *queue
       , VkProvokingVertexModeEXT provokingVertexMode
      );
    
      VkResult vk_enqueue_cmd_set_line_rasterization_mode_ext(struct vk_cmd_queue *queue
       , VkLineRasterizationModeEXT lineRasterizationMode
      );
    
      VkResult vk_enqueue_cmd_set_line_stipple_enable_ext(struct vk_cmd_queue *queue
       , VkBool32 stippledLineEnable
      );
    
      VkResult vk_enqueue_cmd_set_depth_clip_negative_one_to_one_ext(struct vk_cmd_queue *queue
       , VkBool32 negativeOneToOne
      );
    
      VkResult vk_enqueue_cmd_set_viewport_wscaling_enable_nv(struct vk_cmd_queue *queue
       , VkBool32 viewportWScalingEnable
      );
    
      VkResult vk_enqueue_cmd_set_viewport_swizzle_nv(struct vk_cmd_queue *queue
       , uint32_t firstViewport
       , uint32_t viewportCount
       , const VkViewportSwizzleNV* pViewportSwizzles
      );
    
      VkResult vk_enqueue_cmd_set_coverage_to_color_enable_nv(struct vk_cmd_queue *queue
       , VkBool32 coverageToColorEnable
      );
    
      VkResult vk_enqueue_cmd_set_coverage_to_color_location_nv(struct vk_cmd_queue *queue
       , uint32_t coverageToColorLocation
      );
    
      VkResult vk_enqueue_cmd_set_coverage_modulation_mode_nv(struct vk_cmd_queue *queue
       , VkCoverageModulationModeNV coverageModulationMode
      );
    
      VkResult vk_enqueue_cmd_set_coverage_modulation_table_enable_nv(struct vk_cmd_queue *queue
       , VkBool32 coverageModulationTableEnable
      );
    
      VkResult vk_enqueue_cmd_set_coverage_modulation_table_nv(struct vk_cmd_queue *queue
       , uint32_t coverageModulationTableCount
       , const float* pCoverageModulationTable
      );
    
      VkResult vk_enqueue_cmd_set_shading_rate_image_enable_nv(struct vk_cmd_queue *queue
       , VkBool32 shadingRateImageEnable
      );
    
      VkResult vk_enqueue_cmd_set_coverage_reduction_mode_nv(struct vk_cmd_queue *queue
       , VkCoverageReductionModeNV coverageReductionMode
      );
    
      VkResult vk_enqueue_cmd_set_representative_fragment_test_enable_nv(struct vk_cmd_queue *queue
       , VkBool32 representativeFragmentTestEnable
      );
    
      VkResult vk_enqueue_cmd_copy_buffer2(struct vk_cmd_queue *queue
       , const VkCopyBufferInfo2* pCopyBufferInfo
      );
    
      VkResult vk_enqueue_cmd_copy_image2(struct vk_cmd_queue *queue
       , const VkCopyImageInfo2* pCopyImageInfo
      );
    
      VkResult vk_enqueue_cmd_blit_image2(struct vk_cmd_queue *queue
       , const VkBlitImageInfo2* pBlitImageInfo
      );
    
      VkResult vk_enqueue_cmd_copy_buffer_to_image2(struct vk_cmd_queue *queue
       , const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo
      );
    
      VkResult vk_enqueue_cmd_copy_image_to_buffer2(struct vk_cmd_queue *queue
       , const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo
      );
    
      VkResult vk_enqueue_cmd_resolve_image2(struct vk_cmd_queue *queue
       , const VkResolveImageInfo2* pResolveImageInfo
      );
    
      VkResult vk_enqueue_cmd_set_fragment_shading_rate_khr(struct vk_cmd_queue *queue
       , const VkExtent2D*                           pFragmentSize
       , const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]
      );
    
      VkResult vk_enqueue_cmd_set_fragment_shading_rate_enum_nv(struct vk_cmd_queue *queue
       , VkFragmentShadingRateNV                     shadingRate
       , const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]
      );
    
      VkResult vk_enqueue_cmd_set_vertex_input_ext(struct vk_cmd_queue *queue
       , uint32_t vertexBindingDescriptionCount
       , const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions
       , uint32_t vertexAttributeDescriptionCount
       , const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions
      );
    
      VkResult vk_enqueue_cmd_set_color_write_enable_ext(struct vk_cmd_queue *queue
       , uint32_t                                attachmentCount
       , const VkBool32*   pColorWriteEnables
      );
    
      VkResult vk_enqueue_cmd_set_event2(struct vk_cmd_queue *queue
       , VkEvent                                             event
       , const VkDependencyInfo*                             pDependencyInfo
      );
    
      VkResult vk_enqueue_cmd_reset_event2(struct vk_cmd_queue *queue
       , VkEvent                                             event
       , VkPipelineStageFlags2               stageMask
      );
    
      VkResult vk_enqueue_cmd_wait_events2(struct vk_cmd_queue *queue
       , uint32_t                                            eventCount
       , const VkEvent*                     pEvents
       , const VkDependencyInfo*            pDependencyInfos
      );
    
      VkResult vk_enqueue_cmd_pipeline_barrier2(struct vk_cmd_queue *queue
       , const VkDependencyInfo*                             pDependencyInfo
      );
    
      VkResult vk_enqueue_cmd_write_timestamp2(struct vk_cmd_queue *queue
       , VkPipelineStageFlags2               stage
       , VkQueryPool                                         queryPool
       , uint32_t                                            query
      );
    
      VkResult vk_enqueue_cmd_write_buffer_marker2_amd(struct vk_cmd_queue *queue
       , VkPipelineStageFlags2               stage
       , VkBuffer                                            dstBuffer
       , VkDeviceSize                                        dstOffset
       , uint32_t                                            marker
      );
    
      VkResult vk_enqueue_cmd_decode_video_khr(struct vk_cmd_queue *queue
       , const VkVideoDecodeInfoKHR* pDecodeInfo
      );
    
      VkResult vk_enqueue_cmd_begin_video_coding_khr(struct vk_cmd_queue *queue
       , const VkVideoBeginCodingInfoKHR* pBeginInfo
      );
    
      VkResult vk_enqueue_cmd_control_video_coding_khr(struct vk_cmd_queue *queue
       , const VkVideoCodingControlInfoKHR* pCodingControlInfo
      );
    
      VkResult vk_enqueue_cmd_end_video_coding_khr(struct vk_cmd_queue *queue
       , const VkVideoEndCodingInfoKHR* pEndCodingInfo
      );
    
      VkResult vk_enqueue_cmd_encode_video_khr(struct vk_cmd_queue *queue
       , const VkVideoEncodeInfoKHR* pEncodeInfo
      );
    
      VkResult vk_enqueue_cmd_decompress_memory_nv(struct vk_cmd_queue *queue
       , uint32_t decompressRegionCount
       , const VkDecompressMemoryRegionNV* pDecompressMemoryRegions
      );
    
      VkResult vk_enqueue_cmd_decompress_memory_indirect_count_nv(struct vk_cmd_queue *queue
       , VkDeviceAddress indirectCommandsAddress
       , VkDeviceAddress indirectCommandsCountAddress
       , uint32_t stride
      );
    
      VkResult vk_enqueue_cmd_cu_launch_kernel_nvx(struct vk_cmd_queue *queue
       , const VkCuLaunchInfoNVX* pLaunchInfo
      );
    
      VkResult vk_enqueue_cmd_bind_descriptor_buffers_ext(struct vk_cmd_queue *queue
       , uint32_t bufferCount
       , const VkDescriptorBufferBindingInfoEXT* pBindingInfos
      );
    
      VkResult vk_enqueue_cmd_set_descriptor_buffer_offsets_ext(struct vk_cmd_queue *queue
       , VkPipelineBindPoint pipelineBindPoint
       , VkPipelineLayout layout
       , uint32_t firstSet
       , uint32_t setCount
       , const uint32_t* pBufferIndices
       , const VkDeviceSize* pOffsets
      );
    
      VkResult vk_enqueue_cmd_bind_descriptor_buffer_embedded_samplers_ext(struct vk_cmd_queue *queue
       , VkPipelineBindPoint pipelineBindPoint
       , VkPipelineLayout layout
       , uint32_t set
      );
    
      VkResult vk_enqueue_cmd_begin_rendering(struct vk_cmd_queue *queue
       , const VkRenderingInfo*                              pRenderingInfo
      );
    
      VkResult vk_enqueue_cmd_end_rendering(struct vk_cmd_queue *queue
      );
    
      VkResult vk_enqueue_cmd_build_micromaps_ext(struct vk_cmd_queue *queue
       , uint32_t infoCount
       , const VkMicromapBuildInfoEXT* pInfos
      );
    
      VkResult vk_enqueue_cmd_copy_micromap_ext(struct vk_cmd_queue *queue
       , const VkCopyMicromapInfoEXT* pInfo
      );
    
      VkResult vk_enqueue_cmd_copy_micromap_to_memory_ext(struct vk_cmd_queue *queue
       , const VkCopyMicromapToMemoryInfoEXT* pInfo
      );
    
      VkResult vk_enqueue_cmd_copy_memory_to_micromap_ext(struct vk_cmd_queue *queue
       , const VkCopyMemoryToMicromapInfoEXT* pInfo
      );
    
      VkResult vk_enqueue_cmd_write_micromaps_properties_ext(struct vk_cmd_queue *queue
       , uint32_t micromapCount
       , const VkMicromapEXT* pMicromaps
       , VkQueryType queryType
       , VkQueryPool queryPool
       , uint32_t firstQuery
      );
    
      VkResult vk_enqueue_cmd_optical_flow_execute_nv(struct vk_cmd_queue *queue
       , VkOpticalFlowSessionNV session
       , const VkOpticalFlowExecuteInfoNV* pExecuteInfo
      );
    
      VkResult vk_enqueue_cmd_set_depth_bias2_ext(struct vk_cmd_queue *queue
       , const VkDepthBiasInfoEXT*         pDepthBiasInfo
      );
    
      VkResult vk_enqueue_cmd_bind_shaders_ext(struct vk_cmd_queue *queue
       , uint32_t stageCount
       , const VkShaderStageFlagBits* pStages
       , const VkShaderEXT* pShaders
      );
    
      VkResult vk_enqueue_cmd_bind_descriptor_sets2(struct vk_cmd_queue *queue
       , const VkBindDescriptorSetsInfo*   pBindDescriptorSetsInfo
      );
    
      VkResult vk_enqueue_cmd_set_descriptor_buffer_offsets2_ext(struct vk_cmd_queue *queue
       , const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo
      );
    
      VkResult vk_enqueue_cmd_bind_descriptor_buffer_embedded_samplers2_ext(struct vk_cmd_queue *queue
       , const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo
      );
    
      VkResult vk_enqueue_cmd_set_rendering_attachment_locations(struct vk_cmd_queue *queue
       , const VkRenderingAttachmentLocationInfo* pLocationInfo
      );
    
      VkResult vk_enqueue_cmd_set_rendering_input_attachment_indices(struct vk_cmd_queue *queue
       , const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo
      );
    
      VkResult vk_enqueue_cmd_set_depth_clamp_range_ext(struct vk_cmd_queue *queue
       , VkDepthClampModeEXT depthClampMode
       , const VkDepthClampRangeEXT* pDepthClampRange
      );
    
    
    void vk_free_queue(struct vk_cmd_queue *queue);
    
    static inline void
    vk_cmd_queue_init(struct vk_cmd_queue *queue, VkAllocationCallbacks *alloc)
    {
       queue->alloc = alloc;
       list_inithead(&queue->cmds);
    }
    
    static inline void
    vk_cmd_queue_reset(struct vk_cmd_queue *queue)
    {
       vk_free_queue(queue);
       list_inithead(&queue->cmds);
    }
    
    static inline void
    vk_cmd_queue_finish(struct vk_cmd_queue *queue)
    {
       vk_free_queue(queue);
       list_inithead(&queue->cmds);
    }
    
    void vk_cmd_queue_execute(struct vk_cmd_queue *queue,
                              VkCommandBuffer commandBuffer,
                              const struct vk_device_dispatch_table *disp);
    
    #ifdef __cplusplus
    }
    #endif