Skip to content

Instantly share code, notes, and snippets.

@CapsAdmin
Created November 3, 2025 12:43
Show Gist options
  • Save CapsAdmin/f92ef1f7debdb950513b77abcb0874c2 to your computer and use it in GitHub Desktop.
Save CapsAdmin/f92ef1f7debdb950513b77abcb0874c2 to your computer and use it in GitHub Desktop.
local vk = require("vulkan")
local lib = vk.find_library()
local appInfo = vk.Box(
vk.VkApplicationInfo,
{
sType = "VK_STRUCTURE_TYPE_APPLICATION_INFO",
pApplicationName = "NattLua Vulkan Test",
applicationVersion = 1,
pEngineName = "No Engine",
engineVersion = 1,
apiVersion = vk.VK_API_VERSION_1_0,
}
)
local createInfo = vk.Box(
vk.VkInstanceCreateInfo,
{
sType = "VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO",
pNext = nil,
flags = 0,
pApplicationInfo = appInfo,
enabledLayerCount = 0,
ppEnabledLayerNames = nil,
enabledExtensionCount = 0,
ppEnabledExtensionNames = nil,
}
)
local instance = vk.Box(vk.VkInstance)()
local result = lib.vkCreateInstance(createInfo, nil, instance)
if result ~= 0 then
error("failed to create vulkan instance: " .. vk.EnumToString(result))
end
print("vulkan instance created successfully: " .. vk.EnumToString(result))
local deviceCount = ffi.new("uint32_t[1]", 0)
result = lib.vkEnumeratePhysicalDevices(instance[0], deviceCount, nil)
if result ~= 0 or deviceCount[0] == 0 then error("devices found") end
print(string.format("found %d physical device(s)", deviceCount[0]))
local devices = vk.Array(vk.VkPhysicalDevice)(deviceCount[0])
result = lib.vkEnumeratePhysicalDevices(instance[0], deviceCount, devices)
for i = 0, deviceCount[0] - 1 do
local properties = vk.Box(vk.VkPhysicalDeviceProperties)()
lib.vkGetPhysicalDeviceProperties(devices[i], properties)
local props = properties[0]
-- Decode API version (major.minor.patch)
print(string.format("device %d:", i))
print(string.format(" name: %s", ffi.string(props.deviceName)))
local apiVersion = props.apiVersion
print(
string.format(
" api version: %d.%d.%d",
bit.rshift(apiVersion, 22),
bit.band(bit.rshift(apiVersion, 12), 0x3FF),
bit.band(apiVersion, 0xFFF)
)
)
print(string.format(" driver version: 0x%08X", props.driverVersion))
print(string.format(" vendor id: 0x%04X", props.vendorID))
print(string.format(" device id: 0x%04X", props.deviceID))
print(string.format(" device type: %s", vk.EnumToString(props.deviceType)))
-- Print some limits
local limits = props.limits
print(string.format(" max image dimension 2D: %d", tonumber(limits.maxImageDimension2D)))
print(
string.format(
" max compute shared memory size: %d bytes",
tonumber(limits.maxComputeSharedMemorySize)
)
)
print(
string.format(
" max compute work group count: [%d, %d, %d]",
tonumber(limits.maxComputeWorkGroupCount[0]),
tonumber(limits.maxComputeWorkGroupCount[1]),
tonumber(limits.maxComputeWorkGroupCount[2])
)
)
end
This file has been truncated, but you can view the full file.
local ffi = require("ffi")
local mod = {}
do
local cache = {}
function mod.EnumToString(enum_type, index)
if not index then
index = tonumber(enum_type)
end
local enum_id = tonumber(ffi.typeof(enum_type))
if cache[enum_id] ~= nil then return cache[enum_id] end
local enum_ctype = ffi.typeinfo(enum_id)
local current_index = 0
local sib = enum_ctype.sib
while sib do
local sib_ctype = ffi.typeinfo(sib)
local CT_code = bit.rshift(sib_ctype.info, 28)
if CT_code == 11 then -- constant
if current_index == index then
cache[enum_id] = sib_ctype.name
return cache[enum_id]
end
current_index = current_index + 1
end
sib = sib_ctype.sib
end
cache[enum_id] = false
return nil
end
end
do
local t_cache = {}
local function array_type(t, len)
if len then
t_cache[t] = t_cache[t] or ffi.typeof("$[" .. len .. "]", t)
return t_cache[t]
end
t_cache[t] = t_cache[t] or ffi.typeof("$[?]", t)
return t_cache[t]
end
function mod.Array(t, len, ctor)
if ctor then return array_type(t, len)(ctor) end
return array_type(t, len)
end
function mod.Box(t, ctor)
if ctor then return array_type(t, 1)({ctor}) end
return array_type(t, 1)
end
end
function mod.find_library()
local function try_load(tbl)
local errors = {}
for _, name in ipairs(tbl) do
local status, lib = pcall(ffi.load, name)
if status then return lib else table.insert(errors, lib) end
end
return nil, table.concat(errors, "\n")
end
if ffi.os == "Windows" then
return assert(try_load({"vulkan-1.dll"}))
elseif ffi.os == "OSX" then
-- Try user's home directory first (expand ~ manually)
local home = os.getenv("HOME")
local vulkan_sdk = os.getenv("VULKAN_SDK")
local paths = {}
-- Try MoltenVK directly first (more reliable on macOS)
if home then
table.insert(paths, home .. "/VulkanSDK/1.4.328.1/macOS/lib/libMoltenVK.dylib")
end
-- Try VULKAN_SDK environment variable
if vulkan_sdk then
table.insert(paths, vulkan_sdk .. "/lib/libMoltenVK.dylib")
table.insert(paths, vulkan_sdk .. "/lib/libvulkan.dylib")
end
-- Try standard locations
table.insert(paths, "libMoltenVK.dylib")
table.insert(paths, "libvulkan.dylib")
table.insert(paths, "libvulkan.1.dylib")
table.insert(paths, "/usr/local/lib/libvulkan.dylib")
return assert(try_load(paths))
end
return assert(try_load({"libvulkan.so", "libvulkan.so.1"}))
end
do -- Preprocessor Definitions
mod.VK_NV_low_latency = 1
mod.VK_NV_LOW_LATENCY_SPEC_VERSION = 1
mod.VK_NV_LOW_LATENCY_EXTENSION_NAME = "VK_NV_low_latency"
mod.VK_EXT_descriptor_buffer = 1
mod.VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION = 1
mod.VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME = "VK_EXT_descriptor_buffer"
mod.VULKAN_VIDEO_CODEC_AV1STD_DECODE_H_ = 1
mod.vulkan_video_codec_av1std_decode = 1
mod.VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_API_VERSION_1_0_0 = bit.bor( bit.lshift( ffi.cast("uint32_t", 1) , 22) , bit.lshift( ffi.cast("uint32_t", 0) , 12) , ffi.cast("uint32_t", 0) )
mod.VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_SPEC_VERSION = bit.bor( bit.lshift( ffi.cast("uint32_t", 1) , 22) , bit.lshift( ffi.cast("uint32_t", 0) , 12) , ffi.cast("uint32_t", 0) )
mod.VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_av1_decode"
mod.VK_KHR_8bit_storage = 1
mod.VK_KHR_8BIT_STORAGE_SPEC_VERSION = 1
mod.VK_KHR_8BIT_STORAGE_EXTENSION_NAME = "VK_KHR_8bit_storage"
mod.VK_KHR_shader_atomic_int64 = 1
mod.VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION = 1
mod.VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME = "VK_KHR_shader_atomic_int64"
mod.VK_KHR_shader_clock = 1
mod.VK_KHR_SHADER_CLOCK_SPEC_VERSION = 1
mod.VK_KHR_SHADER_CLOCK_EXTENSION_NAME = "VK_KHR_shader_clock"
mod.VK_KHR_video_decode_h265 = 1
mod.VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ = 1
mod.vulkan_video_codec_h265std_decode = 1
mod.VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 = bit.bor( bit.lshift( ffi.cast("uint32_t", 1) , 22) , bit.lshift( ffi.cast("uint32_t", 0) , 12) , ffi.cast("uint32_t", 0) )
mod.VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION = bit.bor( bit.lshift( ffi.cast("uint32_t", 1) , 22) , bit.lshift( ffi.cast("uint32_t", 0) , 12) , ffi.cast("uint32_t", 0) )
mod.VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h265_decode"
mod.STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE = 8
mod.VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION = 8
mod.VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME = "VK_KHR_video_decode_h265"
mod.VK_KHR_global_priority = 1
mod.VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION = 1
mod.VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME = "VK_KHR_global_priority"
mod.VK_MAX_GLOBAL_PRIORITY_SIZE_KHR = 16
mod.VK_KHR_driver_properties = 1
mod.VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION = 1
mod.VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME = "VK_KHR_driver_properties"
mod.VK_MAX_DRIVER_NAME_SIZE_KHR = 256
mod.VK_MAX_DRIVER_INFO_SIZE_KHR = 256
mod.VK_EXT_graphics_pipeline_library = 1
mod.VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION = 1
mod.VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME = "VK_EXT_graphics_pipeline_library"
mod.VK_NV_MESH_SHADER_SPEC_VERSION = 1
mod.VK_NV_MESH_SHADER_EXTENSION_NAME = "VK_NV_mesh_shader"
mod.VK_KHR_depth_stencil_resolve = 1
mod.VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION = 1
mod.VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME = "VK_KHR_depth_stencil_resolve"
mod.VK_KHR_swapchain_mutable_format = 1
mod.VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION = 1
mod.VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME = "VK_KHR_swapchain_mutable_format"
mod.VK_AMD_shader_early_and_late_fragment_tests = 1
mod.VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION = 1
mod.VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME = "VK_AMD_shader_early_and_late_fragment_tests"
mod.VK_QCOM_filter_cubic_clamp = 1
mod.VK_QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION = 1
mod.VK_NV_fragment_shading_rate_enums = 1
mod.VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION = 1
mod.VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME = "VK_NV_fragment_shading_rate_enums"
mod.VK_EXT_attachment_feedback_loop_dynamic_state = 1
mod.VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION = 1
mod.VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME = "VK_EXT_attachment_feedback_loop_dynamic_state"
mod.VK_NV_fragment_shader_barycentric = 1
mod.VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION = 1
mod.VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME = "VK_NV_fragment_shader_barycentric"
mod.VK_KHR_vulkan_memory_model = 1
mod.VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION = 3
mod.VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME = "VK_KHR_vulkan_memory_model"
mod.VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME = "VK_NV_shader_image_footprint"
mod.VK_KHR_shader_terminate_invocation = 1
mod.VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION = 1
mod.VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME = "VK_KHR_shader_terminate_invocation"
mod.VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION = 2
mod.VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME = "VK_NV_scissor_exclusive"
mod.VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION = 2
mod.VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME = "VK_KHR_fragment_shading_rate"
mod.VK_QCOM_tile_memory_heap = 1
mod.VK_QCOM_TILE_MEMORY_HEAP_SPEC_VERSION = 1
mod.VK_QCOM_TILE_MEMORY_HEAP_EXTENSION_NAME = "VK_QCOM_tile_memory_heap"
mod.VK_NV_ray_tracing_motion_blur = 1
mod.VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION = 1
mod.VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME = "VK_NV_ray_tracing_motion_blur"
mod.STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS = 16
mod.STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS = 6
mod.STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS = 64
mod.STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS = 6
mod.STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS = 64
mod.STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS = 2
mod.STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS = 64
mod.STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE = 6
mod.STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE = 19
mod.STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE = 21
mod.STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE = 3
mod.VK_KHR_VIDEO_ENCODE_INTRA_REFRESH_SPEC_VERSION = 1
mod.STD_VIDEO_H265_MAX_NUM_LIST_REF = 15
mod.STD_VIDEO_H265_MAX_CHROMA_PLANES = 2
mod.STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS = 64
mod.STD_VIDEO_H265_MAX_DPB_SIZE = 16
mod.STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS = 32
mod.STD_VIDEO_H265_MAX_LONG_TERM_PICS = 16
mod.STD_VIDEO_H265_MAX_DELTA_POC = 48
mod.STD_VIDEO_H265_NO_REFERENCE_PICTURE = 0xFF
mod.VK_INTEL_performance_query = 1
mod.VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION = 2
mod.VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME = "VK_INTEL_performance_query"
mod.VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION = 1
mod.VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME = "VK_KHR_ray_tracing_maintenance1"
mod.VK_KHR_dynamic_rendering_local_read = 1
mod.VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_SPEC_VERSION = 1
mod.VK_KHR_video_encode_quantization_map = 1
mod.VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_SPEC_VERSION = 2
mod.VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME = "VK_KHR_video_encode_quantization_map"
mod.VK_KHR_shader_quad_control = 1
mod.VK_KHR_SHADER_QUAD_CONTROL_SPEC_VERSION = 1
mod.VK_KHR_SHADER_QUAD_CONTROL_EXTENSION_NAME = "VK_KHR_shader_quad_control"
mod.VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME = "VK_KHR_shader_untyped_pointers"
mod.VK_KHR_spirv_1_4 = 1
mod.VK_KHR_SPIRV_1_4_SPEC_VERSION = 1
mod.VK_KHR_SPIRV_1_4_EXTENSION_NAME = "VK_KHR_spirv_1_4"
mod.VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME = "VK_KHR_portability_enumeration"
mod.VK_KHR_maintenance4 = 1
mod.VK_KHR_MAINTENANCE_4_SPEC_VERSION = 2
mod.VK_KHR_MAINTENANCE_4_EXTENSION_NAME = "VK_KHR_maintenance4"
mod.VK_KHR_shader_relaxed_extended_instruction = 1
mod.VK_KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION = 1
mod.VK_KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME = "VK_KHR_shader_relaxed_extended_instruction"
mod.VK_KHR_maintenance7 = 1
mod.VK_KHR_MAINTENANCE_7_SPEC_VERSION = 1
mod.VK_KHR_shader_subgroup_rotate = 1
mod.VK_KHR_SHADER_SUBGROUP_ROTATE_SPEC_VERSION = 2
mod.VK_KHR_SHADER_SUBGROUP_ROTATE_EXTENSION_NAME = "VK_KHR_shader_subgroup_rotate"
mod.VK_KHR_shader_maximal_reconvergence = 1
mod.VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_SPEC_VERSION = 1
mod.VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_EXTENSION_NAME = "VK_KHR_shader_maximal_reconvergence"
mod.VK_KHR_maintenance5 = 1
mod.VK_KHR_MAINTENANCE_5_SPEC_VERSION = 1
mod.VK_KHR_MAINTENANCE_5_EXTENSION_NAME = "VK_KHR_maintenance5"
mod.VK_KHR_present_id2 = 1
mod.VK_KHR_PRESENT_ID_2_SPEC_VERSION = 1
mod.VK_KHR_PRESENT_ID_2_EXTENSION_NAME = "VK_KHR_present_id2"
mod.VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION = 1
mod.VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME = "VK_EXT_primitives_generated_query"
mod.VK_KHR_present_wait2 = 1
mod.VK_KHR_PRESENT_WAIT_2_SPEC_VERSION = 1
mod.VK_KHR_PRESENT_WAIT_2_EXTENSION_NAME = "VK_KHR_present_wait2"
mod.VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION = 1
mod.VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME = "VK_EXT_global_priority_query"
mod.VK_MAX_GLOBAL_PRIORITY_SIZE_EXT = 16
mod.VK_VALVE_video_encode_rgb_conversion = 1
mod.VK_VALVE_VIDEO_ENCODE_RGB_CONVERSION_SPEC_VERSION = 1
mod.VK_VALVE_VIDEO_ENCODE_RGB_CONVERSION_EXTENSION_NAME = "VK_VALVE_video_encode_rgb_conversion"
mod.VK_KHR_ray_tracing_position_fetch = 1
mod.VK_KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION = 1
mod.VK_KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME = "VK_KHR_ray_tracing_position_fetch"
mod.VK_KHR_pipeline_binary = 1
mod.VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR = 32
mod.VK_KHR_PIPELINE_BINARY_SPEC_VERSION = 1
mod.VK_KHR_PIPELINE_BINARY_EXTENSION_NAME = "VK_KHR_pipeline_binary"
mod.VK_NV_linear_color_attachment = 1
mod.VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION = 1
mod.VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME = "VK_NV_linear_color_attachment"
mod.VK_EXT_image_view_min_lod = 1
mod.VK_EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION = 1
mod.VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME = "VK_EXT_image_view_min_lod"
mod.VK_EXT_image_compression_control_swapchain = 1
mod.VK_EXT_multi_draw = 1
mod.VK_EXT_MULTI_DRAW_SPEC_VERSION = 1
mod.VK_EXT_MULTI_DRAW_EXTENSION_NAME = "VK_EXT_multi_draw"
mod.VK_QCOM_image_processing = 1
mod.VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION = 1
mod.VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME = "VK_QCOM_image_processing"
mod.VK_EXT_image_2d_view_of_3d = 1
mod.VK_KHR_surface_maintenance1 = 1
mod.VK_KHR_SURFACE_MAINTENANCE_1_SPEC_VERSION = 1
mod.VK_KHR_SURFACE_MAINTENANCE_1_EXTENSION_NAME = "VK_KHR_surface_maintenance1"
mod.VK_EXT_nested_command_buffer = 1
mod.VK_EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION = 1
mod.VK_EXT_shader_tile_image = 1
mod.VK_EXT_SHADER_TILE_IMAGE_SPEC_VERSION = 1
mod.VK_EXT_SHADER_TILE_IMAGE_EXTENSION_NAME = "VK_EXT_shader_tile_image"
mod.VK_EXT_external_memory_acquire_unmodified = 1
mod.VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION = 1
mod.VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME = "VK_EXT_external_memory_acquire_unmodified"
mod.VK_KHR_load_store_op_none = 1
mod.VK_KHR_LOAD_STORE_OP_NONE_SPEC_VERSION = 1
mod.VK_KHR_LOAD_STORE_OP_NONE_EXTENSION_NAME = "VK_KHR_load_store_op_none"
mod.VK_EXT_OPACITY_MICROMAP_SPEC_VERSION = 2
mod.VK_KHR_unified_image_layouts = 1
mod.VK_KHR_UNIFIED_IMAGE_LAYOUTS_SPEC_VERSION = 1
mod.VK_KHR_UNIFIED_IMAGE_LAYOUTS_EXTENSION_NAME = "VK_KHR_unified_image_layouts"
mod.VK_KHR_shader_float_controls2 = 1
mod.VK_KHR_SHADER_FLOAT_CONTROLS_2_SPEC_VERSION = 1
mod.VK_KHR_SHADER_FLOAT_CONTROLS_2_EXTENSION_NAME = "VK_KHR_shader_float_controls2"
mod.VK_KHR_index_type_uint8 = 1
mod.VK_KHR_INDEX_TYPE_UINT8_SPEC_VERSION = 1
mod.VK_KHR_INDEX_TYPE_UINT8_EXTENSION_NAME = "VK_KHR_index_type_uint8"
mod.VK_KHR_line_rasterization = 1
mod.VK_KHR_LINE_RASTERIZATION_SPEC_VERSION = 1
mod.VK_KHR_LINE_RASTERIZATION_EXTENSION_NAME = "VK_KHR_line_rasterization"
mod.VK_KHR_calibrated_timestamps = 1
mod.VK_KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION = 1
mod.VK_KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME = "VK_KHR_calibrated_timestamps"
mod.VK_KHR_shader_expect_assume = 1
mod.VK_KHR_SHADER_EXPECT_ASSUME_SPEC_VERSION = 1
mod.VK_KHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME = "VK_KHR_shader_expect_assume"
mod.VK_KHR_maintenance6 = 1
mod.VK_KHR_MAINTENANCE_6_SPEC_VERSION = 1
mod.VK_KHR_MAINTENANCE_6_EXTENSION_NAME = "VK_KHR_maintenance6"
mod.VK_EXT_map_memory_placed = 1
mod.VK_EXT_MAP_MEMORY_PLACED_SPEC_VERSION = 1
mod.VK_EXT_MAP_MEMORY_PLACED_EXTENSION_NAME = "VK_EXT_map_memory_placed"
mod.VK_EXT_shader_atomic_float2 = 1
mod.VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION = 1
mod.VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME = "VK_EXT_shader_atomic_float2"
mod.VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION = 1
mod.VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME = "VK_KHR_ray_tracing_pipeline"
mod.VK_KHR_copy_memory_indirect = 1
mod.VK_KHR_COPY_MEMORY_INDIRECT_SPEC_VERSION = 1
mod.VK_EXT_surface_maintenance1 = 1
mod.VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION = 1
mod.VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_surface_maintenance1"
mod.VK_EXT_swapchain_maintenance1 = 1
mod.VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION = 1
mod.VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_swapchain_maintenance1"
mod.VK_EXT_shader_demote_to_helper_invocation = 1
mod.VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION = 1
mod.VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME = "VK_EXT_shader_demote_to_helper_invocation"
mod.VK_NV_device_generated_commands = 1
mod.VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION = 3
mod.VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME = "VK_NV_device_generated_commands"
mod.VK_NV_representative_fragment_test = 1
mod.VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION = 2
mod.VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME = "VK_NV_representative_fragment_test"
mod.VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME = "VK_EXT_load_store_op_none"
mod.VK_HUAWEI_cluster_culling_shader = 1
mod.VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION = 3
mod.VK_EXT_filter_cubic = 1
mod.VK_EXT_FILTER_CUBIC_SPEC_VERSION = 3
mod.VK_EXT_FILTER_CUBIC_EXTENSION_NAME = "VK_EXT_filter_cubic"
mod.VK_EXT_mesh_shader = 1
mod.VK_EXT_MESH_SHADER_SPEC_VERSION = 1
mod.VK_EXT_MESH_SHADER_EXTENSION_NAME = "VK_EXT_mesh_shader"
mod.VK_QCOM_render_pass_shader_resolve = 1
mod.VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION = 4
mod.VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME = "VK_QCOM_render_pass_shader_resolve"
mod.VK_EXT_global_priority = 1
mod.VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION = 2
mod.VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME = "VK_EXT_global_priority"
mod.VK_EXT_pci_bus_info = 1
mod.VK_EXT_PCI_BUS_INFO_SPEC_VERSION = 2
mod.VK_EXT_PCI_BUS_INFO_EXTENSION_NAME = "VK_EXT_pci_bus_info"
mod.VK_AMD_display_native_hdr = 1
mod.VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION = 1
mod.VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME = "VK_AMD_display_native_hdr"
mod.VK_KHR_sampler_mirror_clamp_to_edge = 1
mod.VK_EXT_fragment_density_map = 1
mod.VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION = 2
mod.VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME = "VK_EXT_fragment_density_map"
mod.VK_KHR_video_queue = 1
mod.VK_KHR_VIDEO_QUEUE_SPEC_VERSION = 8
mod.VK_KHR_VIDEO_QUEUE_EXTENSION_NAME = "VK_KHR_video_queue"
mod.VK_EXT_scalar_block_layout = 1
mod.VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION = 1
mod.VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME = "VK_EXT_scalar_block_layout"
mod.VK_GOOGLE_hlsl_functionality1 = 1
mod.VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION = 1
mod.VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME = "VK_GOOGLE_hlsl_functionality1"
mod.VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION = 1
mod.VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME = "VK_GOOGLE_hlsl_functionality1"
mod.VK_GOOGLE_decorate_string = 1
mod.VK_GOOGLE_DECORATE_STRING_SPEC_VERSION = 1
mod.VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME = "VK_GOOGLE_decorate_string"
mod.VK_EXT_subgroup_size_control = 1
mod.VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION = 2
mod.VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME = "VK_EXT_subgroup_size_control"
mod.VK_AMD_shader_core_properties2 = 1
mod.VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION = 1
mod.VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME = "VK_AMD_shader_core_properties2"
mod.VK_IMG_relaxed_line_rasterization = 1
mod.VK_IMG_RELAXED_LINE_RASTERIZATION_SPEC_VERSION = 1
mod.VK_AMD_device_coherent_memory = 1
mod.VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION = 1
mod.VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME = "VK_AMD_device_coherent_memory"
mod.VK_QUEUE_FAMILY_EXTERNAL = bit.bnot(1)
mod.VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION = 1
mod.VK_EXT_shader_image_atomic_int64 = 1
mod.VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION = 1
mod.VK_EXT_queue_family_foreign = 1
mod.VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION = 1
mod.VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME = "VK_EXT_queue_family_foreign"
mod.VK_QUEUE_FAMILY_FOREIGN_EXT = bit.bnot(2)
mod.VK_EXT_memory_budget = 1
mod.VK_EXT_MEMORY_BUDGET_SPEC_VERSION = 1
mod.VK_EXT_MEMORY_BUDGET_EXTENSION_NAME = "VK_EXT_memory_budget"
mod.VK_EXT_DEBUG_UTILS_SPEC_VERSION = 2
mod.VK_EXT_DEBUG_UTILS_EXTENSION_NAME = "VK_EXT_debug_utils"
mod.VK_KHR_maintenance8 = 1
mod.VK_EXT_memory_priority = 1
mod.VK_EXT_MEMORY_PRIORITY_SPEC_VERSION = 1
mod.VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME = "VK_EXT_memory_priority"
mod.VK_NV_dedicated_allocation_image_aliasing = 1
mod.VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION = 1
mod.VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME = "VK_NV_dedicated_allocation_image_aliasing"
mod.VK_KHR_shader_fma = 1
mod.VK_EXT_buffer_device_address = 1
mod.VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION = 2
mod.VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME = "VK_EXT_buffer_device_address"
mod.VK_KHR_MAINTENANCE_9_SPEC_VERSION = 1
mod.VK_KHR_MAINTENANCE_9_EXTENSION_NAME = "VK_KHR_maintenance9"
mod.VK_EXT_tooling_info = 1
mod.VK_EXT_TOOLING_INFO_SPEC_VERSION = 1
mod.VK_EXT_TOOLING_INFO_EXTENSION_NAME = "VK_EXT_tooling_info"
mod.VK_EXT_separate_stencil_usage = 1
mod.VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION = 1
mod.VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME = "VK_EXT_separate_stencil_usage"
mod.VK_KHR_video_maintenance2 = 1
mod.VK_EXT_validation_features = 1
mod.VK_EXT_VALIDATION_FEATURES_SPEC_VERSION = 6
mod.VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME = "VK_EXT_validation_features"
mod.VK_EXT_ycbcr_2plane_444_formats = 1
mod.VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION = 1
mod.VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME = "VK_EXT_ycbcr_2plane_444_formats"
mod.VK_KHR_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION = 1
mod.VK_KHR_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME = "VK_KHR_depth_clamp_zero_one"
mod.VK_EXT_fragment_density_map2 = 1
mod.VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION = 1
mod.VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME = "VK_EXT_fragment_density_map2"
mod.VK_KHR_ROBUSTNESS_2_SPEC_VERSION = 1
mod.VK_KHR_ROBUSTNESS_2_EXTENSION_NAME = "VK_KHR_robustness2"
mod.VK_QCOM_rotated_copy_commands = 1
mod.VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION = 2
mod.VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME = "VK_QCOM_rotated_copy_commands"
mod.VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION = 1
mod.VK_EXT_image_robustness = 1
mod.VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION = 1
mod.VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_image_robustness"
mod.VK_VERSION_1_0 = 1
mod.VK_EXT_image_compression_control = 1
mod.VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION = 1
mod.VK_AMD_gpu_shader_int16 = 1
mod.VK_AMD_GPU_SHADER_INT16_SPEC_VERSION = 2
mod.VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME = "VK_AMD_gpu_shader_int16"
mod.VK_NV_coverage_reduction_mode = 1
mod.VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME = "VK_NV_coverage_reduction_mode"
mod.VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME = "VK_AMD_mixed_attachment_samples"
mod.VK_AMD_shader_fragment_mask = 1
mod.VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION = 1
mod.VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME = "VK_AMD_shader_fragment_mask"
mod.VK_EXT_inline_uniform_block = 1
mod.VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION = 1
mod.VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME = "VK_EXT_inline_uniform_block"
mod.VK_KHR_VARIABLE_POINTERS_SPEC_VERSION = 1
mod.VK_EXT_fragment_shader_interlock = 1
mod.VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION = 1
mod.VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME = "VK_EXT_fragment_shader_interlock"
mod.VK_EXT_sample_locations = 1
mod.VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION = 1
mod.VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME = "VK_EXT_sample_locations"
mod.VK_EXT_ycbcr_image_arrays = 1
mod.VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION = 1
mod.VK_KHR_dedicated_allocation = 1
mod.VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION = 3
mod.VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME = "VK_KHR_dedicated_allocation"
mod.VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION = 2
mod.VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME = "VK_EXT_attachment_feedback_loop_layout"
mod.VK_KHR_storage_buffer_storage_class = 1
mod.VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION = 1
mod.VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME = "VK_KHR_storage_buffer_storage_class"
mod.VK_EXT_4444_FORMATS_SPEC_VERSION = 1
mod.VK_KHR_shader_bfloat16 = 1
mod.VK_KHR_SHADER_BFLOAT16_SPEC_VERSION = 1
mod.VK_KHR_SHADER_BFLOAT16_EXTENSION_NAME = "VK_KHR_shader_bfloat16"
mod.VK_KHR_video_encode_h264 = 1
mod.VK_EXT_device_fault = 1
mod.VK_EXT_DEVICE_FAULT_SPEC_VERSION = 2
mod.VK_EXT_DEVICE_FAULT_EXTENSION_NAME = "VK_EXT_device_fault"
mod.VK_KHR_relaxed_block_layout = 1
mod.VK_EXT_blend_operation_advanced = 1
mod.VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION = 2
mod.VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME = "VK_EXT_blend_operation_advanced"
mod.VK_KHR_get_memory_requirements2 = 1
mod.VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION = 1
mod.VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME = "VK_KHR_get_memory_requirements2"
mod.VULKAN_VIDEO_CODEC_H264STD_H_ = 1
mod.vulkan_video_codec_h264std = 1
mod.VULKAN_VIDEO_CODECS_COMMON_H_ = 1
mod.VK_KHR_image_format_list = 1
mod.VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION = 1
mod.VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME = "VK_KHR_image_format_list"
mod.VK_NV_fragment_coverage_to_color = 1
mod.VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION = 1
mod.VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME = "VK_NV_fragment_coverage_to_color"
mod.VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME = "VK_KHR_sampler_ycbcr_conversion"
mod.VK_NV_framebuffer_mixed_samples = 1
mod.VK_ARM_rasterization_order_attachment_access = 1
mod.VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1
mod.VK_KHR_bind_memory2 = 1
mod.VK_KHR_BIND_MEMORY_2_SPEC_VERSION = 1
mod.VK_KHR_BIND_MEMORY_2_EXTENSION_NAME = "VK_KHR_bind_memory2"
mod.VK_KHR_maintenance3 = 1
mod.VK_KHR_MAINTENANCE_3_SPEC_VERSION = 1
mod.VK_KHR_MAINTENANCE_3_EXTENSION_NAME = "VK_KHR_maintenance3"
mod.VK_KHR_MAINTENANCE3_SPEC_VERSION = 1
mod.VK_KHR_MAINTENANCE3_EXTENSION_NAME = "VK_KHR_maintenance3"
mod.VK_KHR_draw_indirect_count = 1
mod.VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION = 1
mod.VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME = "VK_KHR_draw_indirect_count"
mod.VK_KHR_shader_subgroup_extended_types = 1
mod.VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION = 1
mod.VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME = "VK_KHR_shader_subgroup_extended_types"
mod.VK_KHR_swapchain_maintenance1 = 1
mod.VK_KHR_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION = 1
mod.VK_KHR_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME = "VK_KHR_swapchain_maintenance1"
mod.VK_KHR_cooperative_matrix = 1
mod.VK_KHR_COOPERATIVE_MATRIX_SPEC_VERSION = 2
mod.VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME = "VK_KHR_cooperative_matrix"
mod.VK_KHR_surface_protected_capabilities = 1
mod.VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION = 1
mod.VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME = "VK_KHR_surface_protected_capabilities"
mod.VK_KHR_separate_depth_stencil_layouts = 1
mod.VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION = 1
mod.VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME = "VK_KHR_separate_depth_stencil_layouts"
mod.VK_EXT_rgba10x6_formats = 1
mod.VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION = 1
mod.VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME = "VK_EXT_rgba10x6_formats"
mod.VK_VALVE_mutable_descriptor_type = 1
mod.VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1
mod.VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME = "VK_VALVE_mutable_descriptor_type"
mod.__STDC__ = 1
mod.__STDC_VERSION__ = 201710
mod.__STDC_HOSTED__ = 1
mod.__GNUC__ = 4
mod.__GNUC_MINOR__ = 2
mod.__GNUC_PATCHLEVEL__ = 1
mod.__DATE__ = "Nov 03 2025"
mod.__TIME__ = "13:41:50"
mod.VK_EXT_vertex_input_dynamic_state = 1
mod.VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION = 2
mod.VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME = "VK_EXT_vertex_input_dynamic_state"
mod.VK_KHR_compute_shader_derivatives = 1
mod.VK_KHR_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION = 1
mod.VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME = "VK_KHR_compute_shader_derivatives"
mod.VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION = 1
mod.VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME = "VK_EXT_physical_device_drm"
mod.VK_KHR_video_decode_av1 = 1
mod.VK_EXT_device_address_binding_report = 1
mod.VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION = 1
mod.VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME = "VK_EXT_device_address_binding_report"
mod.VULKAN_VIDEO_CODEC_AV1STD_H_ = 1
mod.vulkan_video_codec_av1std = 1
mod.STD_VIDEO_AV1_NUM_REF_FRAMES = 8
mod.STD_VIDEO_AV1_REFS_PER_FRAME = 7
mod.STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME = 8
mod.STD_VIDEO_AV1_MAX_TILE_COLS = 64
mod.STD_VIDEO_AV1_MAX_TILE_ROWS = 64
mod.STD_VIDEO_AV1_MAX_SEGMENTS = 8
mod.STD_VIDEO_AV1_SEG_LVL_MAX = 8
mod.STD_VIDEO_AV1_PRIMARY_REF_NONE = 7
mod.STD_VIDEO_AV1_SELECT_INTEGER_MV = 2
mod.STD_VIDEO_AV1_SELECT_SCREEN_CONTENT_TOOLS = 2
mod.STD_VIDEO_AV1_SKIP_MODE_FRAMES = 2
mod.STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS = 4
mod.STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS = 2
mod.STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS = 8
mod.STD_VIDEO_AV1_MAX_NUM_PLANES = 3
mod.STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS = 6
mod.STD_VIDEO_AV1_MAX_NUM_Y_POINTS = 14
mod.STD_VIDEO_AV1_MAX_NUM_CB_POINTS = 10
mod.STD_VIDEO_AV1_MAX_NUM_CR_POINTS = 10
mod.VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ = 1
mod.vulkan_video_codec_h264std_decode = 1
mod.VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION = 1
mod.VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME = "VK_EXT_present_mode_fifo_latest_ready"
mod.VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 = bit.bor( bit.lshift( ffi.cast("uint32_t", 1) , 22) , bit.lshift( ffi.cast("uint32_t", 0) , 12) , ffi.cast("uint32_t", 0) )
mod.VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION = bit.bor( bit.lshift( ffi.cast("uint32_t", 1) , 22) , bit.lshift( ffi.cast("uint32_t", 0) , 12) , ffi.cast("uint32_t", 0) )
mod.VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h264_decode"
mod.STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE = 2
mod.VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION = 1
mod.VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME = "VK_NV_framebuffer_mixed_samples"
mod.VK_KHR_video_encode_h265 = 1
mod.VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME = "VK_EXT_shader_subgroup_vote"
mod.VK_EXT_texture_compression_astc_hdr = 1
mod.VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION = 1
mod.VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME = "VK_EXT_texture_compression_astc_hdr"
mod.VK_EXT_astc_decode_mode = 1
mod.VULKAN_VIDEO_CODEC_H265STD_H_ = 1
mod.vulkan_video_codec_h265std = 1
mod.VK_API_VERSION_1_2 = bit.bor( bit.lshift( ffi.cast("uint32_t", 0) , 29) , bit.lshift( ffi.cast("uint32_t", 1) , 22) , bit.lshift( ffi.cast("uint32_t", 2) , 12) , ffi.cast("uint32_t", 0) )
mod.VK_MAX_DRIVER_NAME_SIZE = 256
mod.VK_MAX_DRIVER_INFO_SIZE = 256
mod.VK_EXT_pipeline_robustness = 1
mod.VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION = 1
mod.VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_pipeline_robustness"
mod.VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION = 1
mod.VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME = "VK_NV_shader_sm_builtins"
mod.VK_EXT_conditional_rendering = 1
mod.VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION = 2
mod.VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME = "VK_EXT_conditional_rendering"
mod.VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION = 1
mod.VK_KHR_dynamic_rendering = 1
mod.VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION = 1
mod.VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME = "VK_KHR_dynamic_rendering"
mod.VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION = 2
mod.VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME = "VK_EXT_image_drm_format_modifier"
mod.VK_KHR_multiview = 1
mod.VK_KHR_MULTIVIEW_SPEC_VERSION = 1
mod.VK_KHR_MULTIVIEW_EXTENSION_NAME = "VK_KHR_multiview"
mod.VK_KHR_get_physical_device_properties2 = 1
mod.VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION = 2
mod.VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME = "VK_KHR_get_physical_device_properties2"
mod.VK_EXT_VALIDATION_CACHE_SPEC_VERSION = 1
mod.VK_EXT_direct_mode_display = 1
mod.VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION = 1
mod.VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME = "VK_EXT_direct_mode_display"
mod.VK_EXT_display_surface_counter = 1
mod.VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION = 1
mod.VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME = "VK_EXT_display_surface_counter"
mod.VK_EXT_descriptor_indexing = 1
mod.VK_EXT_display_control = 1
mod.VK_EXT_DISPLAY_CONTROL_SPEC_VERSION = 1
mod.VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME = "VK_EXT_display_control"
mod.VK_KHR_device_group = 1
mod.VK_KHR_DEVICE_GROUP_SPEC_VERSION = 4
mod.VK_VERSION_1_4 = 1
mod.VK_KHR_present_id = 1
mod.VK_API_VERSION_1_4 = bit.bor( bit.lshift( ffi.cast("uint32_t", 0) , 29) , bit.lshift( ffi.cast("uint32_t", 1) , 22) , bit.lshift( ffi.cast("uint32_t", 4) , 12) , ffi.cast("uint32_t", 0) )
mod.VK_MAX_GLOBAL_PRIORITY_SIZE = 16
mod.VK_EXT_shader_viewport_index_layer = 1
mod.VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION = 1
mod.VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME = "VK_EXT_shader_viewport_index_layer"
mod.VK_KHR_video_encode_queue = 1
mod.VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION = 12
mod.VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME = "VK_KHR_video_encode_queue"
mod.VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME = "VK_NV_shading_rate_image"
mod.VK_KHR_shader_draw_parameters = 1
mod.VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION = 1
mod.VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME = "VK_KHR_shader_draw_parameters"
mod.VK_KHR_maintenance1 = 1
mod.VK_KHR_MAINTENANCE_1_SPEC_VERSION = 2
mod.VK_KHR_MAINTENANCE_1_EXTENSION_NAME = "VK_KHR_maintenance1"
mod.VK_KHR_MAINTENANCE1_SPEC_VERSION = 2
mod.VK_KHR_MAINTENANCE1_EXTENSION_NAME = "VK_KHR_maintenance1"
mod.VK_GOOGLE_display_timing = 1
mod.VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION = 1
mod.VK_KHR_device_group_creation = 1
mod.VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION = 1
mod.VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME = "VK_KHR_device_group_creation"
mod.VK_MAX_DEVICE_GROUP_SIZE_KHR = 32
mod.VK_KHR_external_memory_capabilities = 1
mod.VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION = 1
mod.VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME = "VK_KHR_external_memory_capabilities"
mod.VK_LUID_SIZE_KHR = 8
mod.VK_NV_sample_mask_override_coverage = 1
mod.VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION = 1
mod.VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME = "VK_NV_sample_mask_override_coverage"
mod.VK_KHR_surface = 1
mod.VK_KHR_external_memory = 1
mod.VULKAN_VIDEO_CODEC_H265STD_ENCODE_H_ = 1
mod.VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME = "VK_KHR_external_memory"
mod.VK_NV_viewport_array2 = 1
mod.VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION = 1
mod.VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME = "VK_NV_viewport_array2"
mod.VK_NV_ray_tracing = 1
mod.VK_KHR_external_memory_fd = 1
mod.VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION = 1
mod.VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME = "VK_NV_viewport_array2"
mod.VK_SHADER_UNUSED_KHR = bit.bnot(0)
mod.VK_NVX_multiview_per_view_attributes = 1
mod.VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION = 1
mod.VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME = "VK_NVX_multiview_per_view_attributes"
mod.VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_SPEC_VERSION = bit.bor( bit.lshift( ffi.cast("uint32_t", 1) , 22) , bit.lshift( ffi.cast("uint32_t", 0) , 12) , ffi.cast("uint32_t", 0) )
mod.VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h265_encode"
mod.VK_EXT_DEBUG_REPORT_SPEC_VERSION = 10
mod.VK_EXT_DEBUG_REPORT_EXTENSION_NAME = "VK_EXT_debug_report"
mod.VK_HEADER_VERSION = 330
mod.VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION = 1
mod.VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME = "VK_NV_viewport_swizzle"
mod.VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION = 1
mod.VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME = "VK_KHR_external_semaphore_capabilities"
mod.VK_KHR_external_semaphore = 1
mod.VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION = 1
mod.VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME = "VK_KHR_external_semaphore"
mod.VK_EXT_discard_rectangles = 1
mod.VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION = 2
mod.VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME = "VK_EXT_discard_rectangles"
mod.VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION = 1
mod.VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME = "VK_KHR_external_semaphore_fd"
mod.VK_NV_raw_access_chains = 1
mod.VK_NV_RAW_ACCESS_CHAINS_SPEC_VERSION = 1
mod.VK_NV_RAW_ACCESS_CHAINS_EXTENSION_NAME = "VK_NV_raw_access_chains"
mod.VK_NV_external_compute_queue = 1
mod.VK_NV_EXTERNAL_COMPUTE_QUEUE_SPEC_VERSION = 1
mod.VK_NV_EXTERNAL_COMPUTE_QUEUE_EXTENSION_NAME = "VK_NV_external_compute_queue"
mod.VK_EXT_conservative_rasterization = 1
mod.VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION = 1
mod.VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME = "VK_EXT_conservative_rasterization"
mod.VK_FALSE = 0
mod.VK_LOD_CLAMP_NONE = 1000.0
mod.VK_QUEUE_FAMILY_IGNORED = bit.bnot(0)
mod.VK_NV_command_buffer_inheritance = 1
mod.VK_REMAINING_ARRAY_LAYERS = bit.bnot(0)
mod.VK_NV_COMMAND_BUFFER_INHERITANCE_EXTENSION_NAME = "VK_NV_command_buffer_inheritance"
mod.VK_REMAINING_MIP_LEVELS = bit.bnot(0)
mod.VK_TRUE = 1
mod.VK_NV_shader_atomic_float16_vector = 1
mod.VK_WHOLE_SIZE = bit.bnot(0LL)
mod.VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_EXTENSION_NAME = "VK_NV_shader_atomic_float16_vector"
mod.VK_MAX_MEMORY_TYPES = 32
mod.VK_KHR_VIDEO_ENCODE_H265_SPEC_VERSION = 14
mod.VK_KHR_VIDEO_ENCODE_H265_EXTENSION_NAME = "VK_KHR_video_encode_h265"
mod.VK_UUID_SIZE = 16
mod.VK_MAX_EXTENSION_NAME_SIZE = 256
mod.VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION = 1
mod.VK_MAX_DESCRIPTION_SIZE = 256
mod.VK_MAX_MEMORY_HEAPS = 16
mod.VK_ATTACHMENT_UNUSED = bit.bnot(0)
mod.STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS = 6
mod.VK_SUBPASS_EXTERNAL = bit.bnot(0)
mod.VK_KHR_SWAPCHAIN_EXTENSION_NAME = "VK_KHR_swapchain"
mod.STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS = 64
mod.STD_VIDEO_H264_MAX_NUM_LIST_REF = 32
mod.STD_VIDEO_H264_MAX_CHROMA_PLANES = 2
mod.STD_VIDEO_H264_NO_REFERENCE_PICTURE = 0xFF
mod.VK_NV_GLSL_SHADER_EXTENSION_NAME = "VK_NV_glsl_shader"
mod.VK_AMD_GCN_SHADER_EXTENSION_NAME = "VK_AMD_gcn_shader"
mod.VK_EXT_depth_range_unrestricted = 1
mod.VK_NV_dedicated_allocation = 1
mod.VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION = 1
mod.VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME = "VK_NV_dedicated_allocation"
mod.VK_IMG_filter_cubic = 1
mod.VK_IMG_FILTER_CUBIC_SPEC_VERSION = 1
mod.VK_IMG_FILTER_CUBIC_EXTENSION_NAME = "VK_IMG_filter_cubic"
mod.VK_EXT_transform_feedback = 1
mod.VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION = 1
mod.VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME = "VK_AMD_rasterization_order"
mod.VK_AMD_shader_trinary_minmax = 1
mod.VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION = 1
mod.VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME = "VK_AMD_shader_trinary_minmax"
mod.VK_AMD_shader_explicit_vertex_parameter = 1
mod.VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION = 1
mod.VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME = "VK_AMD_shader_explicit_vertex_parameter"
mod.VK_EXT_debug_marker = 1
mod.VK_EXT_DEBUG_MARKER_SPEC_VERSION = 4
mod.VK_EXT_DEBUG_MARKER_EXTENSION_NAME = "VK_EXT_debug_marker"
mod.VK_ARM_data_graph = 1
mod.VK_MAX_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_SET_NAME_SIZE_ARM = 128
mod.VK_ARM_DATA_GRAPH_SPEC_VERSION = 1
mod.VK_ARM_DATA_GRAPH_EXTENSION_NAME = "VK_ARM_data_graph"
mod.VK_KHR_RAY_QUERY_EXTENSION_NAME = "VK_KHR_ray_query"
mod.VK_KHR_RAY_QUERY_SPEC_VERSION = 1
mod.VK_KHR_ray_query = 1
mod.VK_KHR_ray_tracing_pipeline = 1
mod.VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION = 1
mod.VK_EXT_layer_settings = 1
mod.VK_KHR_acceleration_structure = 1
mod.VK_NVX_binary_import = 1
mod.VK_EXT_LAYER_SETTINGS_SPEC_VERSION = 2
mod.VK_EXT_LAYER_SETTINGS_EXTENSION_NAME = "VK_EXT_layer_settings"
mod.VK_NVX_BINARY_IMPORT_SPEC_VERSION = 2
mod.VK_NVX_BINARY_IMPORT_EXTENSION_NAME = "VK_NVX_binary_import"
mod.VK_EXT_shader_uniform_buffer_unsized_array = 1
mod.VK_SEC_PIPELINE_CACHE_INCREMENTAL_MODE_EXTENSION_NAME = "VK_SEC_pipeline_cache_incremental_mode"
mod.VK_SEC_PIPELINE_CACHE_INCREMENTAL_MODE_SPEC_VERSION = 1
mod.VK_ARM_shader_core_builtins = 1
mod.VK_EXT_pipeline_library_group_handles = 1
mod.VK_EXT_SHADER_64BIT_INDEXING_SPEC_VERSION = 1
mod.VK_EXT_shader_64bit_indexing = 1
mod.VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME = "VK_EXT_pipeline_library_group_handles"
mod.VK_KHR_SHADER_UNTYPED_POINTERS_SPEC_VERSION = 1
mod.VK_KHR_shader_untyped_pointers = 1
mod.VK_NV_LOW_LATENCY_2_EXTENSION_NAME = "VK_NV_low_latency2"
mod.VK_EXT_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION = 1
mod.VK_KHR_display = 1
mod.VK_EXT_fragment_density_map_offset = 1
mod.VK_NV_PRESENT_METERING_EXTENSION_NAME = "VK_NV_present_metering"
mod.VK_KHR_DISPLAY_SPEC_VERSION = 23
mod.VK_KHR_DISPLAY_EXTENSION_NAME = "VK_KHR_display"
mod.VK_NV_PRESENT_METERING_SPEC_VERSION = 1
mod.VK_NV_present_metering = 1
mod.VK_QCOM_image_processing2 = 1
mod.VK_QCOM_IMAGE_PROCESSING_2_SPEC_VERSION = 1
mod.VK_QCOM_filter_cubic_weights = 1
mod.VK_ARM_FORMAT_PACK_EXTENSION_NAME = "VK_ARM_format_pack"
mod.VK_ARM_FORMAT_PACK_SPEC_VERSION = 1
mod.VK_ARM_format_pack = 1
mod.VK_EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_vertex_attribute_robustness"
mod.VK_EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_SPEC_VERSION = 1
mod.VK_EXT_vertex_attribute_robustness = 1
mod.VK_ARM_PIPELINE_OPACITY_MICROMAP_EXTENSION_NAME = "VK_ARM_pipeline_opacity_micromap"
mod.VK_VERSION_1_3 = 1
mod.VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION = 3
mod.VK_API_VERSION_1_3 = bit.bor( bit.lshift( ffi.cast("uint32_t", 0) , 29) , bit.lshift( ffi.cast("uint32_t", 1) , 22) , bit.lshift( ffi.cast("uint32_t", 3) , 12) , ffi.cast("uint32_t", 0) )
mod.VK_ARM_PIPELINE_OPACITY_MICROMAP_SPEC_VERSION = 1
mod.VK_ARM_pipeline_opacity_micromap = 1
mod.VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION = 1
mod.VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME = "VK_NV_descriptor_pool_overallocation"
mod.VK_EXT_memory_decompression = 1
mod.VK_NV_partitioned_acceleration_structure = 1
mod.VK_NV_PARTITIONED_ACCELERATION_STRUCTURE_SPEC_VERSION = 1
mod.VK_NV_PARTITIONED_ACCELERATION_STRUCTURE_EXTENSION_NAME = "VK_NV_partitioned_acceleration_structure"
mod.VK_PARTITIONED_ACCELERATION_STRUCTURE_PARTITION_INDEX_GLOBAL_NV = bit.bnot(0)
mod.VK_AMD_draw_indirect_count = 1
mod.VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION = 2
mod.VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME = "VK_AMD_draw_indirect_count"
mod.VK_HUAWEI_HDR_VIVID_EXTENSION_NAME = "VK_HUAWEI_hdr_vivid"
mod.VK_HUAWEI_HDR_VIVID_SPEC_VERSION = 1
mod.VK_EXT_shader_module_identifier = 1
mod.VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT = 32
mod.VK_AMD_negative_viewport_height = 1
mod.VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION = 1
mod.VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME = "VK_AMD_negative_viewport_height"
mod.VK_HUAWEI_hdr_vivid = 1
mod.VK_AMD_gpu_shader_half_float = 1
mod.VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION = 2
mod.VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME = "VK_AMD_gpu_shader_half_float"
mod.VK_EXT_DEPTH_CLAMP_CONTROL_EXTENSION_NAME = "VK_EXT_depth_clamp_control"
mod.VK_AMD_shader_ballot = 1
mod.VK_AMD_SHADER_BALLOT_SPEC_VERSION = 1
mod.VK_AMD_SHADER_BALLOT_EXTENSION_NAME = "VK_AMD_shader_ballot"
mod.VK_EXT_DEPTH_CLAMP_CONTROL_SPEC_VERSION = 1
mod.VK_AMD_texture_gather_bias_lod = 1
mod.VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION = 1
mod.VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME = "VK_AMD_texture_gather_bias_lod"
mod.VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION = 1
mod.VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME = "VK_EXT_rasterization_order_attachment_access"
mod.VK_AMD_shader_info = 1
mod.VK_AMD_SHADER_INFO_SPEC_VERSION = 1
mod.VK_AMD_SHADER_INFO_EXTENSION_NAME = "VK_AMD_shader_info"
mod.VK_NV_OPTICAL_FLOW_SPEC_VERSION = 1
mod.VK_NV_OPTICAL_FLOW_EXTENSION_NAME = "VK_NV_optical_flow"
mod.VK_NV_COMMAND_BUFFER_INHERITANCE_SPEC_VERSION = 1
mod.VK_MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME = "VK_MESA_image_alignment_control"
mod.VK_MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION = 1
mod.VK_EXT_shader_replicated_composites = 1
mod.VK_EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME = "VK_EXT_device_generated_commands"
mod.VK_EXT_DEVICE_GENERATED_COMMANDS_SPEC_VERSION = 1
mod.VK_EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME = "VK_EXT_shader_replicated_composites"
mod.VK_NV_CLUSTER_ACCELERATION_STRUCTURE_EXTENSION_NAME = "VK_NV_cluster_acceleration_structure"
mod.VK_NV_CLUSTER_ACCELERATION_STRUCTURE_SPEC_VERSION = 4
mod.VK_NV_cluster_acceleration_structure = 1
mod.VK_NV_RAY_TRACING_VALIDATION_EXTENSION_NAME = "VK_NV_ray_tracing_validation"
mod.VK_NV_RAY_TRACING_VALIDATION_SPEC_VERSION = 1
mod.VK_NV_ray_tracing_validation = 1
mod.VK_QCOM_multiview_per_view_render_areas = 1
mod.VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_SPEC_VERSION = 1
mod.VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_EXTENSION_NAME = "VK_QCOM_multiview_per_view_render_areas"
mod.VK_EXT_SHADER_FLOAT8_EXTENSION_NAME = "VK_EXT_shader_float8"
mod.VK_EXT_SHADER_FLOAT8_SPEC_VERSION = 1
mod.VK_EXT_shader_float8 = 1
mod.VK_EXT_device_generated_commands = 1
mod.VK_EXT_SHADER_REPLICATED_COMPOSITES_SPEC_VERSION = 1
mod.VK_NV_per_stage_descriptor_set = 1
mod.VK_AMD_shader_image_load_store_lod = 1
mod.VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION = 1
mod.VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME = "VK_AMD_shader_image_load_store_lod"
mod.VK_MESA_image_alignment_control = 1
mod.VK_NV_corner_sampled_image = 1
mod.VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION = 2
mod.VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME = "VK_NV_corner_sampled_image"
mod.VK_QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME = "VK_QCOM_image_processing2"
mod.VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION = 1
mod.VK_IMG_format_pvrtc = 1
mod.VK_IMG_FORMAT_PVRTC_SPEC_VERSION = 1
mod.VK_IMG_FORMAT_PVRTC_EXTENSION_NAME = "VK_IMG_format_pvrtc"
mod.VK_EXT_depth_clamp_control = 1
mod.VK_QCOM_render_pass_store_ops = 1
mod.VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION = 2
mod.VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME = "VK_QCOM_render_pass_store_ops"
mod.VK_NV_DISPLAY_STEREO_EXTENSION_NAME = "VK_NV_display_stereo"
mod.VK_QCOM_tile_shading = 1
mod.VK_QCOM_TILE_SHADING_SPEC_VERSION = 2
mod.VK_QCOM_TILE_SHADING_EXTENSION_NAME = "VK_QCOM_tile_shading"
mod.VK_QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION = 1
mod.VK_QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME = "VK_QCOM_filter_cubic_weights"
mod.VK_NV_DISPLAY_STEREO_SPEC_VERSION = 1
mod.VK_NV_display_stereo = 1
mod.VK_EXT_MEMORY_DECOMPRESSION_EXTENSION_NAME = "VK_EXT_memory_decompression"
mod.VK_EXT_MEMORY_DECOMPRESSION_SPEC_VERSION = 1
mod.VK_NV_cooperative_matrix2 = 1
mod.VK_NV_COOPERATIVE_MATRIX_2_SPEC_VERSION = 1
mod.VK_NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME = "VK_NV_cooperative_matrix2"
mod.VK_NV_descriptor_pool_overallocation = 1
mod.VK_MSFT_LAYERED_DRIVER_EXTENSION_NAME = "VK_MSFT_layered_driver"
mod.VK_MSFT_LAYERED_DRIVER_SPEC_VERSION = 1
mod.VK_KHR_push_descriptor = 1
mod.VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION = 2
mod.VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME = "VK_KHR_push_descriptor"
mod.VK_EXT_external_memory_host = 1
mod.VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION = 1
mod.VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME = "VK_EXT_external_memory_host"
mod.VK_MSFT_layered_driver = 1
mod.VK_QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME = "VK_QCOM_filter_cubic_clamp"
mod.VK_KHR_shader_float16_int8 = 1
mod.VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION = 1
mod.VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME = "VK_KHR_shader_float16_int8"
mod.VK_QCOM_YCBCR_DEGAMMA_EXTENSION_NAME = "VK_QCOM_ycbcr_degamma"
mod.VK_QCOM_YCBCR_DEGAMMA_SPEC_VERSION = 1
mod.VK_KHR_16bit_storage = 1
mod.VK_KHR_16BIT_STORAGE_SPEC_VERSION = 1
mod.VK_KHR_16BIT_STORAGE_EXTENSION_NAME = "VK_KHR_16bit_storage"
mod.VK_KHR_present_wait = 1
mod.VK_KHR_PRESENT_WAIT_SPEC_VERSION = 1
mod.VK_KHR_PRESENT_WAIT_EXTENSION_NAME = "VK_KHR_present_wait"
mod.VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME = "VK_KHR_incremental_present"
mod.VK_QCOM_ycbcr_degamma = 1
mod.VK_AMD_pipeline_compiler_control = 1
mod.VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION = 1
mod.VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME = "VK_AMD_pipeline_compiler_control"
mod.VK_KHR_uniform_buffer_standard_layout = 1
mod.VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION = 1
mod.VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME = "VK_KHR_uniform_buffer_standard_layout"
mod.VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION = 1
mod.VK_KHR_buffer_device_address = 1
mod.VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION = 1
mod.VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME = "VK_KHR_buffer_device_address"
mod.VK_VALVE_fragment_density_map_layered = 1
mod.VK_VALVE_FRAGMENT_DENSITY_MAP_LAYERED_SPEC_VERSION = 1
mod.VK_VALVE_FRAGMENT_DENSITY_MAP_LAYERED_EXTENSION_NAME = "VK_VALVE_fragment_density_map_layered"
mod.VK_NV_PER_STAGE_DESCRIPTOR_SET_EXTENSION_NAME = "VK_NV_per_stage_descriptor_set"
mod.VK_EXT_legacy_dithering = 1
mod.VK_EXT_LEGACY_DITHERING_SPEC_VERSION = 2
mod.VK_EXT_LEGACY_DITHERING_EXTENSION_NAME = "VK_EXT_legacy_dithering"
mod.__LP64__ = 1
mod.VK_KHR_imageless_framebuffer = 1
mod.VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION = 1
mod.VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME = "VK_KHR_imageless_framebuffer"
mod.VK_KHR_deferred_host_operations = 1
mod.VK_NV_PER_STAGE_DESCRIPTOR_SET_SPEC_VERSION = 1
mod.VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION = 4
mod.VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME = "VK_KHR_deferred_host_operations"
mod.VK_KHR_create_renderpass2 = 1
mod.VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION = 1
mod.VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME = "VK_KHR_create_renderpass2"
mod.VK_EXT_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME = "VK_EXT_fragment_density_map_offset"
mod.VK_NV_LOW_LATENCY_2_SPEC_VERSION = 2
mod.VK_NV_low_latency2 = 1
mod.VK_KHR_ray_tracing_maintenance1 = 1
mod.VK_EXT_zero_initialize_device_memory = 1
mod.VK_EXT_ZERO_INITIALIZE_DEVICE_MEMORY_SPEC_VERSION = 1
mod.VK_EXT_ZERO_INITIALIZE_DEVICE_MEMORY_EXTENSION_NAME = "VK_EXT_zero_initialize_device_memory"
mod.VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION = 1
mod.VK_KHR_pipeline_executable_properties = 1
mod.VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION = 1
mod.VK_API_VERSION_1_0 = bit.bor( bit.lshift( ffi.cast("uint32_t", 0) , 29) , bit.lshift( ffi.cast("uint32_t", 1) , 22) , bit.lshift( ffi.cast("uint32_t", 0) , 12) , ffi.cast("uint32_t", 0) )
mod.VK_EXT_SHADER_64BIT_INDEXING_EXTENSION_NAME = "VK_EXT_shader_64bit_indexing"
mod.VK_KHR_fragment_shader_barycentric = 1
mod.VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION = 2
mod.VK_SEC_pipeline_cache_incremental_mode = 1
mod.VK_KHR_shared_presentable_image = 1
mod.VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION = 1
mod.VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME = "VK_KHR_shared_presentable_image"
mod.VK_EXT_SHADER_OBJECT_SPEC_VERSION = 1
mod.VK_EXT_SHADER_OBJECT_EXTENSION_NAME = "VK_EXT_shader_object"
mod.VK_EXT_SHADER_UNIFORM_BUFFER_UNSIZED_ARRAY_SPEC_VERSION = 1
mod.VK_EXT_SHADER_UNIFORM_BUFFER_UNSIZED_ARRAY_EXTENSION_NAME = "VK_EXT_shader_uniform_buffer_unsized_array"
mod.VK_KHR_external_fence_capabilities = 1
mod.VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION = 1
mod.VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME = "VK_KHR_external_fence_capabilities"
mod.VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION = 13
mod.VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME = "VK_KHR_acceleration_structure"
mod.VK_EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION = 1
mod.VK_EXT_legacy_vertex_attributes = 1
mod.VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME = "VK_EXT_mutable_descriptor_type"
mod.VK_EXT_present_mode_fifo_latest_ready = 1
mod.VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME = "VK_HUAWEI_subpass_shading"
mod.VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME = "VK_NV_extended_sparse_address_space"
mod.VK_KHR_external_fence = 1
mod.VK_KHR_EXTERNAL_FENCE_SPEC_VERSION = 1
mod.VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME = "VK_KHR_external_fence"
mod.VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION = 1
mod.VK_NV_extended_sparse_address_space = 1
mod.VK_NV_COOPERATIVE_VECTOR_EXTENSION_NAME = "VK_NV_cooperative_vector"
mod.VK_KHR_external_fence_fd = 1
mod.VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION = 1
mod.VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME = "VK_KHR_external_fence_fd"
mod.VK_EXT_global_priority_query = 1
mod.VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION = 1
mod.VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME = "VK_NV_ray_tracing_invocation_reorder"
mod.VK_KHR_map_memory2 = 1
mod.VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME = "VK_EXT_ycbcr_image_arrays"
mod.VK_KHR_MAP_MEMORY_2_EXTENSION_NAME = "VK_KHR_map_memory2"
mod.VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION = 1
mod.VK_EXT_provoking_vertex = 1
mod.VK_EXT_PROVOKING_VERTEX_SPEC_VERSION = 1
mod.VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME = "VK_EXT_provoking_vertex"
mod.VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION = 1
mod.VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME = "VK_QCOM_multiview_per_view_viewports"
mod.VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION = 1
mod.VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME = "VK_EXT_multisampled_render_to_single_sampled"
mod.VK_KHR_shader_integer_dot_product = 1
mod.VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION = 1
mod.VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME = "VK_KHR_shader_integer_dot_product"
mod.VK_SEC_AMIGO_PROFILING_EXTENSION_NAME = "VK_SEC_amigo_profiling"
mod.VK_SEC_AMIGO_PROFILING_SPEC_VERSION = 1
mod.VK_KHR_pipeline_library = 1
mod.VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION = 1
mod.VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME = "VK_KHR_pipeline_library"
mod.VK_EXT_headless_surface = 1
mod.VK_EXT_HEADLESS_SURFACE_SPEC_VERSION = 1
mod.VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME = "VK_EXT_headless_surface"
mod.VK_KHR_shader_non_semantic_info = 1
mod.VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION = 1
mod.VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME = "VK_KHR_shader_non_semantic_info"
mod.VK_SEC_amigo_profiling = 1
mod.VK_EXT_line_rasterization = 1
mod.VK_EXT_LINE_RASTERIZATION_SPEC_VERSION = 1
mod.VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME = "VK_EXT_line_rasterization"
mod.VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME = "VK_QCOM_tile_properties"
mod.VK_QCOM_TILE_PROPERTIES_SPEC_VERSION = 1
mod.VK_QCOM_tile_properties = 1
mod.VK_EXT_shader_object = 1
mod.VK_AMD_ANTI_LAG_EXTENSION_NAME = "VK_AMD_anti_lag"
mod.VK_AMD_ANTI_LAG_SPEC_VERSION = 1
mod.VK_EXT_shader_atomic_float = 1
mod.VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION = 1
mod.VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME = "VK_EXT_shader_atomic_float"
mod.VK_AMD_anti_lag = 1
mod.VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME = "VK_EXT_pipeline_protected_access"
mod.VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION = 1
mod.VK_EXT_pipeline_protected_access = 1
mod.VK_NV_optical_flow = 1
mod.VK_EXT_rasterization_order_attachment_access = 1
mod.VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME = "VK_EXT_shader_module_identifier"
mod.VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION = 1
mod.VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME = "VK_EXT_depth_range_unrestricted"
mod.VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION = 1
mod.VK_EXT_debug_report = 1
mod.VK_KHR_swapchain = 1
mod.VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME = "VK_KHR_variable_pointers"
mod.VK_EXT_host_query_reset = 1
mod.VK_EXT_HOST_QUERY_RESET_SPEC_VERSION = 1
mod.VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME = "VK_EXT_host_query_reset"
mod.VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME = "VK_KHR_get_surface_capabilities2"
mod.VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME = "VK_EXT_subpass_merge_feedback"
mod.VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION = 2
mod.VK_EXT_index_type_uint8 = 1
mod.VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION = 1
mod.VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME = "VK_EXT_index_type_uint8"
mod.VK_EXT_subpass_merge_feedback = 1
mod.VK_EXT_extended_dynamic_state = 1
mod.VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION = 1
mod.VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME = "VK_EXT_extended_dynamic_state"
mod.VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME = "VK_EXT_extended_dynamic_state3"
mod.VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION = 2
mod.VK_EXT_extended_dynamic_state3 = 1
mod.VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME = "VK_EXT_nested_command_buffer"
mod.VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME = "VK_EXT_image_compression_control_swapchain"
mod.VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION = 1
mod.VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME = "VK_GOOGLE_surfaceless_query"
mod.VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 2
mod.VK_GOOGLE_surfaceless_query = 1
mod.VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME = "VK_EXT_transform_feedback"
mod.VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION = 1
mod.VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME = "VK_KHR_relaxed_block_layout"
mod.VK_KHR_maintenance9 = 1
mod.VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION = 2
mod.VK_NV_device_generated_commands_compute = 1
mod.VK_EXT_shader_stencil_export = 1
mod.VK_KHR_video_decode_h264 = 1
mod.VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION = 2
mod.VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME = "VK_NV_copy_memory_indirect"
mod.VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION = 1
mod.VK_NV_copy_memory_indirect = 1
mod.VK_KHR_maintenance2 = 1
mod.VK_KHR_MAINTENANCE_2_SPEC_VERSION = 1
mod.VK_KHR_MAINTENANCE_2_EXTENSION_NAME = "VK_KHR_maintenance2"
mod.VK_KHR_PRESENT_ID_SPEC_VERSION = 1
mod.VK_KHR_MAINTENANCE2_SPEC_VERSION = 1
mod.VK_EXT_host_image_copy = 1
mod.VK_EXT_HOST_IMAGE_COPY_SPEC_VERSION = 1
mod.VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME = "VK_EXT_host_image_copy"
mod.VK_KHR_PRESENT_ID_EXTENSION_NAME = "VK_KHR_present_id"
mod.VK_QCOM_fragment_density_map_offset = 1
mod.VK_ARM_RENDER_PASS_STRIPED_EXTENSION_NAME = "VK_ARM_render_pass_striped"
mod.VK_ARM_RENDER_PASS_STRIPED_SPEC_VERSION = 1
mod.VK_ARM_render_pass_striped = 1
mod.VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION = 3
mod.VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME = "VK_KHR_synchronization2"
mod.STD_VIDEO_AV1_MAX_NUM_POS_LUMA = 24
mod.VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR = 7
mod.VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION = 1
mod.VK_MAX_VIDEO_VP9_REFERENCES_PER_FRAME_KHR = 3
mod.VK_KHR_VIDEO_DECODE_VP9_SPEC_VERSION = 1
mod.VK_KHR_VIDEO_DECODE_VP9_EXTENSION_NAME = "VK_KHR_video_decode_vp9"
mod.VK_EXT_depth_clamp_zero_one = 1
mod.VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME = "VK_VALVE_descriptor_set_host_mapping"
mod.VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION = 1
mod.VK_VALVE_descriptor_set_host_mapping = 1
mod.VK_REMAINING_3D_SLICES_EXT = bit.bnot(0)
mod.VK_EXT_IMAGE_SLICED_VIEW_OF_3D_EXTENSION_NAME = "VK_EXT_image_sliced_view_of_3d"
mod.VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION = 1
mod.VK_KHR_synchronization2 = 1
mod.VK_KHR_video_maintenance1 = 1
mod.VK_KHR_VIDEO_MAINTENANCE_1_SPEC_VERSION = 1
mod.VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME = "VK_KHR_video_maintenance1"
mod.VK_EXT_image_sliced_view_of_3d = 1
mod.VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME = "VK_EXT_primitive_topology_list_restart"
mod.VK_ARM_SCHEDULING_CONTROLS_SPEC_VERSION = 1
mod.VK_KHR_vertex_attribute_divisor = 1
mod.VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION = 1
mod.VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME = "VK_KHR_vertex_attribute_divisor"
mod.VULKAN_VIDEO_CODEC_VP9STD_H_ = 1
mod.vulkan_video_codec_vp9std = 1
mod.STD_VIDEO_VP9_NUM_REF_FRAMES = 8
mod.STD_VIDEO_VP9_REFS_PER_FRAME = 3
mod.STD_VIDEO_VP9_MAX_REF_FRAMES = 4
mod.STD_VIDEO_VP9_LOOP_FILTER_ADJUSTMENTS = 2
mod.STD_VIDEO_VP9_MAX_SEGMENTS = 8
mod.STD_VIDEO_VP9_SEG_LVL_MAX = 4
mod.STD_VIDEO_VP9_MAX_SEGMENTATION_TREE_PROBS = 7
mod.STD_VIDEO_VP9_MAX_SEGMENTATION_PRED_PROB = 3
mod.VK_ARM_scheduling_controls = 1
mod.VK_ARM_SHADER_CORE_PROPERTIES_EXTENSION_NAME = "VK_ARM_shader_core_properties"
mod.VK_ARM_SHADER_CORE_PROPERTIES_SPEC_VERSION = 1
mod.VK_ARM_shader_core_properties = 1
mod.VK_EXT_FRAME_BOUNDARY_SPEC_VERSION = 1
mod.VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION = 1
mod.VULKAN_VIDEO_CODEC_AV1STD_ENCODE_H_ = 1
mod.vulkan_video_codec_av1std_encode = 1
mod.VK_STD_VULKAN_VIDEO_CODEC_AV1_ENCODE_API_VERSION_1_0_0 = bit.bor( bit.lshift( ffi.cast("uint32_t", 1) , 22) , bit.lshift( ffi.cast("uint32_t", 0) , 12) , ffi.cast("uint32_t", 0) )
mod.VK_STD_VULKAN_VIDEO_CODEC_AV1_ENCODE_SPEC_VERSION = bit.bor( bit.lshift( ffi.cast("uint32_t", 1) , 22) , bit.lshift( ffi.cast("uint32_t", 0) , 12) , ffi.cast("uint32_t", 0) )
mod.VK_STD_VULKAN_VIDEO_CODEC_AV1_ENCODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_av1_encode"
mod.VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME = "VK_KHR_fragment_shader_barycentric"
mod.VK_EXT_pageable_device_local_memory = 1
mod.VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME = "VK_EXT_border_color_swizzle"
mod.VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION = 1
mod.VK_QCOM_multiview_per_view_viewports = 1
mod.VK_KHR_shader_subgroup_uniform_control_flow = 1
mod.VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION = 1
mod.VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME = "VK_KHR_shader_subgroup_uniform_control_flow"
mod.VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME = "VK_HUAWEI_cluster_culling_shader"
mod.VK_NV_ray_tracing_invocation_reorder = 1
mod.VK_KHR_zero_initialize_workgroup_memory = 1
mod.VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION = 1
mod.VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME = "VK_KHR_zero_initialize_workgroup_memory"
mod.VK_EXT_load_store_op_none = 1
mod.VK_KHR_workgroup_memory_explicit_layout = 1
mod.VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION = 1
mod.VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME = "VK_KHR_workgroup_memory_explicit_layout"
mod.VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME = "VK_EXT_opacity_micromap"
mod.VK_EXT_opacity_micromap = 1
mod.VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME = "VK_EXT_image_2d_view_of_3d"
mod.VK_NV_cooperative_vector = 1
mod.VK_NV_COOPERATIVE_VECTOR_SPEC_VERSION = 4
mod.VK_KHR_copy_commands2 = 1
mod.VK_KHR_COPY_COMMANDS_2_SPEC_VERSION = 1
mod.VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME = "VK_KHR_copy_commands2"
mod.VK_MAX_PHYSICAL_DEVICE_NAME_SIZE = 256
mod.VK_NV_inherited_viewport_scissor = 1
mod.VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION = 1
mod.VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME = "VK_NV_inherited_viewport_scissor"
mod.VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME = "VK_EXT_color_write_enable"
mod.VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION = 1
mod.VK_EXT_color_write_enable = 1
mod.VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION = 1
mod.VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION = 1
mod.VK_KHR_VIDEO_ENCODE_AV1_SPEC_VERSION = 1
mod.VK_EXT_texel_buffer_alignment = 1
mod.VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION = 1
mod.VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME = "VK_EXT_texel_buffer_alignment"
mod.VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION = 1
mod.VK_EXT_border_color_swizzle = 1
mod.VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION = 1
mod.VK_QCOM_render_pass_transform = 1
mod.VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 5
mod.VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME = "VK_QCOM_render_pass_transform"
mod.VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_1_0_0 = bit.bor( bit.lshift( ffi.cast("uint32_t", 1) , 22) , bit.lshift( ffi.cast("uint32_t", 0) , 12) , ffi.cast("uint32_t", 0) )
mod.VK_EXT_FRAME_BOUNDARY_EXTENSION_NAME = "VK_EXT_frame_boundary"
mod.VK_EXT_depth_bias_control = 1
mod.VK_EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION = 1
mod.VK_EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME = "VK_EXT_depth_bias_control"
mod.VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME = "VK_EXT_pageable_device_local_memory"
mod.VK_EXT_frame_boundary = 1
mod.VK_EXT_attachment_feedback_loop_layout = 1
mod.VK_EXT_4444_formats = 1
mod.VK_HUAWEI_subpass_shading = 1
mod.VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION = 3
mod.VK_EXT_calibrated_timestamps = 1
mod.VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION = 2
mod.VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME = "VK_EXT_calibrated_timestamps"
mod.VK_EXT_4444_FORMATS_EXTENSION_NAME = "VK_EXT_4444_formats"
mod.VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME = "VK_EXT_depth_clip_control"
mod.VK_EXT_primitive_topology_list_restart = 1
mod.VULKAN_VIDEO_CODEC_VP9STD_DECODE_H_ = 1
mod.vulkan_video_codec_vp9std_decode = 1
mod.VK_ARM_SCHEDULING_CONTROLS_EXTENSION_NAME = "VK_ARM_scheduling_controls"
mod.VK_AMD_shader_core_properties = 1
mod.VK_EXT_device_memory_report = 1
mod.VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION = 2
mod.VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME = "VK_EXT_device_memory_report"
mod.VK_STD_VULKAN_VIDEO_CODEC_VP9_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_vp9_decode"
mod.VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME = "VK_HUAWEI_invocation_mask"
mod.VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION = 1
mod.VK_HUAWEI_invocation_mask = 1
mod.VK_EXT_mutable_descriptor_type = 1
mod.VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION = 1
mod.VK_NV_external_memory_rdma = 1
mod.VK_EXT_IMAGE_SLICED_VIEW_OF_3D_SPEC_VERSION = 1
mod.VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION = 1
mod.VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME = "VK_NV_external_memory_rdma"
mod.VK_EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME = "VK_EXT_legacy_vertex_attributes"
mod.VK_EXT_depth_clip_control = 1
mod.VK_EXT_physical_device_drm = 1
mod.VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME = "VK_ARM_rasterization_order_attachment_access"
mod.VK_EXT_acquire_drm_display = 1
mod.VK_EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION = 1
mod.VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME = "VK_EXT_acquire_drm_display"
mod.VK_EXT_pipeline_properties = 1
mod.VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION = 1
mod.VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME = "VK_EXT_pipeline_properties"
mod.VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME = "VK_EXT_image_compression_control"
mod.VK_KHR_video_decode_vp9 = 1
mod.VK_KHR_video_encode_av1 = 1
mod.VK_EXT_robustness2 = 1
mod.VK_EXT_ROBUSTNESS_2_SPEC_VERSION = 1
mod.VK_EXT_ROBUSTNESS_2_EXTENSION_NAME = "VK_EXT_robustness2"
mod.VK_KHR_VIDEO_DECODE_AV1_EXTENSION_NAME = "VK_KHR_video_decode_av1"
mod.VK_KHR_VIDEO_DECODE_AV1_SPEC_VERSION = 1
mod.VK_EXT_custom_border_color = 1
mod.VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION = 12
mod.VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME = "VK_EXT_custom_border_color"
mod.VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME = "VK_EXT_depth_clamp_zero_one"
mod.STD_VIDEO_AV1_MAX_NUM_POS_CHROMA = 25
mod.VK_EXT_non_seamless_cube_map = 1
mod.VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION = 1
mod.VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME = "VK_EXT_non_seamless_cube_map"
mod.VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME = "VK_ARM_shader_core_builtins"
mod.VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME = "VK_KHR_external_memory_fd"
mod.VK_GOOGLE_user_type = 1
mod.VK_GOOGLE_USER_TYPE_SPEC_VERSION = 1
mod.VK_GOOGLE_USER_TYPE_EXTENSION_NAME = "VK_GOOGLE_user_type"
mod.VK_EXT_multisampled_render_to_single_sampled = 1
mod.VK_NV_present_barrier = 1
mod.VK_NV_PRESENT_BARRIER_SPEC_VERSION = 1
mod.VK_NV_PRESENT_BARRIER_EXTENSION_NAME = "VK_NV_present_barrier"
mod.VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION = 1
mod.VK_KHR_portability_enumeration = 1
mod.VK_EXT_dynamic_rendering_unused_attachments = 1
mod.VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION = 1
mod.VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME = "VK_EXT_dynamic_rendering_unused_attachments"
mod.VK_EXT_extended_dynamic_state2 = 1
mod.VK_EXT_private_data = 1
mod.VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME = "VK_EXT_extended_dynamic_state2"
mod.VK_EXT_PRIVATE_DATA_SPEC_VERSION = 1
mod.VK_EXT_PRIVATE_DATA_EXTENSION_NAME = "VK_EXT_private_data"
mod.VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION = 3
mod.VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME = "VK_QCOM_fragment_density_map_offset"
mod.VK_VERSION_1_2 = 1
mod.vulkan_video_codec_h265std_encode = 1
mod.VK_NULL_HANDLE = nil -- ((void*)0) -- Failed to parse: [string "local ffi = require('ffi') local x = ( void ..."]:1: unexpected symbol near ')'
mod.VK_LUID_SIZE = 8
mod.STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE = 128
mod.VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_EXTENSION_NAME = "VK_KHR_dynamic_rendering_local_read"
mod.VK_KHR_fragment_shading_rate = 1
mod.VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME = "VK_KHR_timeline_semaphore"
mod.VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME = "VK_KHR_shader_float_controls"
mod.VK_KHR_sampler_ycbcr_conversion = 1
mod.VK_EXT_pipeline_creation_cache_control = 1
mod.VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION = 3
mod.VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME = "VK_EXT_pipeline_creation_cache_control"
mod.STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS = 16
mod.VK_NV_device_diagnostics_config = 1
mod.VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 2
mod.VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME = "VK_NV_device_diagnostics_config"
mod.VK_HEADER_VERSION_COMPLETE = bit.bor( bit.lshift( ffi.cast("uint32_t", 0) , 29) , bit.lshift( ffi.cast("uint32_t", 1) , 22) , bit.lshift( ffi.cast("uint32_t", 4) , 12) , ffi.cast("uint32_t", 330) )
mod.VK_EXT_primitives_generated_query = 1
mod.VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION = 1
mod.VK_KHR_display_swapchain = 1
mod.VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION = 10
mod.VK_NV_memory_decompression = 1
mod.VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION = 1
mod.VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME = "VK_NV_memory_decompression"
mod.VK_KHR_incremental_present = 1
mod.VK_AMD_mixed_attachment_samples = 1
mod.VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME = "VK_GOOGLE_display_timing"
mod.VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME = "VK_KHR_descriptor_update_template"
mod.VK_KHR_SURFACE_EXTENSION_NAME = "VK_KHR_surface"
mod.VK_KHR_SURFACE_SPEC_VERSION = 25
mod.VK_EXT_VALIDATION_FLAGS_SPEC_VERSION = 3
mod.VK_KHR_format_feature_flags2 = 1
mod.VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION = 2
mod.VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME = "VK_KHR_format_feature_flags2"
mod.VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME = "VK_NV_external_memory"
mod.VULKAN_H_ = 1
mod.VK_KHR_VIDEO_ENCODE_AV1_EXTENSION_NAME = "VK_KHR_video_encode_av1"
mod.VK_EXT_sampler_filter_minmax = 1
mod.VK_KHR_SHADER_FMA_SPEC_VERSION = 1
mod.VK_KHR_SHADER_FMA_EXTENSION_NAME = "VK_KHR_shader_fma"
mod.VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME = "VK_KHR_sampler_mirror_clamp_to_edge"
mod.vulkan_video_codecs_common = 1
mod.VK_STD_VULKAN_VIDEO_CODEC_VP9_DECODE_SPEC_VERSION = bit.bor( bit.lshift( ffi.cast("uint32_t", 1) , 22) , bit.lshift( ffi.cast("uint32_t", 0) , 12) , ffi.cast("uint32_t", 0) )
mod.VK_KHR_VIDEO_MAINTENANCE_2_SPEC_VERSION = 1
mod.VK_LUNARG_direct_driver_loading = 1
mod.VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION = 1
mod.VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME = "VK_LUNARG_direct_driver_loading"
mod.VK_KHR_video_encode_intra_refresh = 1
mod.VK_KHR_VIDEO_ENCODE_INTRA_REFRESH_EXTENSION_NAME = "VK_KHR_video_encode_intra_refresh"
mod.VK_KHR_MAINTENANCE_7_EXTENSION_NAME = "VK_KHR_maintenance7"
mod.VULKAN_VIDEO_CODEC_H264STD_ENCODE_H_ = 1
mod.vulkan_video_codec_h264std_encode = 1
mod.VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME = "VK_NV_device_generated_commands_compute"
mod.VK_KHR_present_mode_fifo_latest_ready = 1
mod.VK_KHR_maintenance10 = 1
mod.VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_1_0_0 = bit.bor( bit.lshift( ffi.cast("uint32_t", 1) , 22) , bit.lshift( ffi.cast("uint32_t", 0) , 12) , ffi.cast("uint32_t", 0) )
mod.VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_SPEC_VERSION = bit.bor( bit.lshift( ffi.cast("uint32_t", 1) , 22) , bit.lshift( ffi.cast("uint32_t", 0) , 12) , ffi.cast("uint32_t", 0) )
mod.VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h264_encode"
mod.VK_ARM_tensors = 1
mod.VK_NV_glsl_shader = 1
mod.VK_NV_GLSL_SHADER_SPEC_VERSION = 1
mod.VK_ARM_TENSORS_SPEC_VERSION = 1
mod.VK_ARM_TENSORS_EXTENSION_NAME = "VK_ARM_tensors"
mod.VK_AMD_rasterization_order = 1
mod.VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION = 1
mod.VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION = 14
mod.VK_AMD_gcn_shader = 1
mod.VK_AMD_GCN_SHADER_SPEC_VERSION = 1
mod.VK_NV_ray_tracing_linear_swept_spheres = 1
mod.VK_NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_SPEC_VERSION = 1
mod.VK_NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_EXTENSION_NAME = "VK_NV_ray_tracing_linear_swept_spheres"
mod.VK_NVX_image_view_handle = 1
mod.VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME = "VK_NVX_image_view_handle"
mod.VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME = "VK_NV_external_memory_capabilities"
mod.VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION = 9
mod.VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME = "VK_KHR_video_decode_queue"
mod.VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION = 8
mod.VK_KHR_video_decode_queue = 1
mod.VK_KHR_descriptor_update_template = 1
mod.VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME = "VK_KHR_get_display_properties2"
mod.VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION = 1
mod.VK_KHR_get_display_properties2 = 1
mod.VK_KHR_variable_pointers = 1
mod.VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION = 1
mod.VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME = "VK_NV_clip_space_w_scaling"
mod.VK_USE_64_BIT_PTR_DEFINES = 1
mod.VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION = 1
mod.VK_KHR_get_surface_capabilities2 = 1
mod.VK_KHR_MAINTENANCE_10_EXTENSION_NAME = "VK_KHR_maintenance10"
mod.VK_KHR_MAINTENANCE_10_SPEC_VERSION = 1
mod.VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME = "VK_EXT_sampler_filter_minmax"
mod.VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION = 2
mod.VK_KHR_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME = "VK_KHR_present_mode_fifo_latest_ready"
mod.VK_KHR_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION = 1
mod.VULKAN_CORE_H_ = 1
mod.VK_EXT_vertex_attribute_divisor = 1
mod.VK_NV_viewport_swizzle = 1
mod.VK_KHR_robustness2 = 1
mod.VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME = "VK_AMD_memory_overallocation_behavior"
mod.VK_KHR_depth_clamp_zero_one = 1
mod.VK_EXT_depth_clip_enable = 1
mod.VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME = "VK_EXT_depth_clip_enable"
mod.VK_KHR_VIDEO_MAINTENANCE_2_EXTENSION_NAME = "VK_KHR_video_maintenance2"
mod.VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION = 3
mod.VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME = "VK_EXT_vertex_attribute_divisor"
mod.VK_STD_VULKAN_VIDEO_CODEC_VP9_DECODE_API_VERSION_1_0_0 = bit.bor( bit.lshift( ffi.cast("uint32_t", 1) , 22) , bit.lshift( ffi.cast("uint32_t", 0) , 12) , ffi.cast("uint32_t", 0) )
mod.VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION = 2
mod.VK_EXT_HDR_METADATA_SPEC_VERSION = 3
mod.VK_IMG_RELAXED_LINE_RASTERIZATION_EXTENSION_NAME = "VK_IMG_relaxed_line_rasterization"
mod.VK_EXT_pipeline_creation_feedback = 1
mod.VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION = 1
mod.VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME = "VK_EXT_pipeline_creation_feedback"
mod.VK_KHR_MAINTENANCE_8_EXTENSION_NAME = "VK_KHR_maintenance8"
mod.VK_KHR_MAINTENANCE_8_SPEC_VERSION = 1
mod.VK_NV_external_memory = 1
mod.VK_NV_EXTERNAL_MEMORY_SPEC_VERSION = 1
mod.VK_NV_shader_subgroup_partitioned = 1
mod.VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION = 1
mod.VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME = "VK_NV_shader_subgroup_partitioned"
mod.VK_EXT_validation_flags = 1
mod.VK_NV_compute_shader_derivatives = 1
mod.VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME = "VK_EXT_validation_flags"
mod.VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME = "VK_NV_compute_shader_derivatives"
mod.VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME = "VK_EXT_external_memory_dma_buf"
mod.VK_MAX_DEVICE_GROUP_SIZE = 32
mod.VK_API_VERSION_1_1 = bit.bor( bit.lshift( ffi.cast("uint32_t", 0) , 29) , bit.lshift( ffi.cast("uint32_t", 1) , 22) , bit.lshift( ffi.cast("uint32_t", 1) , 12) , ffi.cast("uint32_t", 0) )
mod.VK_VERSION_1_1 = 1
mod.VK_KHR_VIDEO_ENCODE_H264_SPEC_VERSION = 14
mod.VK_KHR_VIDEO_ENCODE_H264_EXTENSION_NAME = "VK_KHR_video_encode_h264"
mod.VK_EXT_shader_subgroup_ballot = 1
mod.VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION = 1
mod.VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME = "VK_EXT_shader_subgroup_ballot"
mod.VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME = "VK_KHR_display_swapchain"
mod.VK_EXT_shader_subgroup_vote = 1
mod.VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION = 1
mod.VK_NV_fill_rectangle = 1
mod.VK_NV_FILL_RECTANGLE_SPEC_VERSION = 1
mod.VK_NV_FILL_RECTANGLE_EXTENSION_NAME = "VK_NV_fill_rectangle"
mod.VK_NV_shader_sm_builtins = 1
mod.VK_EXT_post_depth_coverage = 1
mod.VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME = "VK_EXT_post_depth_coverage"
mod.VK_EXT_image_drm_format_modifier = 1
mod.VK_EXT_validation_cache = 1
mod.VK_KHR_MAINTENANCE2_EXTENSION_NAME = "VK_KHR_maintenance2"
mod.VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME = "VK_EXT_descriptor_indexing"
mod.VK_NV_shading_rate_image = 1
mod.VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION = 3
mod.VK_NV_RAY_TRACING_SPEC_VERSION = 3
mod.VK_NV_RAY_TRACING_EXTENSION_NAME = "VK_NV_ray_tracing"
mod.VK_SHADER_UNUSED_NV = bit.bnot(0)
mod.VK_AMD_buffer_marker = 1
mod.VK_AMD_BUFFER_MARKER_SPEC_VERSION = 1
mod.VK_AMD_BUFFER_MARKER_EXTENSION_NAME = "VK_AMD_buffer_marker"
mod.VK_EXT_hdr_metadata = 1
mod.VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME = "VK_EXT_swapchain_colorspace"
mod.VK_KHR_SWAPCHAIN_SPEC_VERSION = 70
mod.STD_VIDEO_H264_CPB_CNT_LIST_SIZE = 32
mod.VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION = 1
mod.VK_NV_mesh_shader = 1
mod.VK_NV_shader_image_footprint = 1
mod.VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION = 2
mod.VK_NV_scissor_exclusive = 1
mod.VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION = 2
mod.VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME = "VK_NV_device_diagnostic_checkpoints"
mod.VK_INTEL_shader_integer_functions2 = 1
mod.VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION = 1
mod.VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME = "VK_INTEL_shader_integer_functions2"
mod.VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME = "VK_KHR_performance_query"
mod.VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION = 1
mod.VK_KHR_performance_query = 1
mod.VK_KHR_MAP_MEMORY_2_SPEC_VERSION = 1
mod.VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME = "VK_EXT_shader_stencil_export"
mod.VK_NV_clip_space_w_scaling = 1
mod.VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION = 1
mod.VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION = 1
mod.VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME = "VK_KHR_pipeline_executable_properties"
mod.VK_KHR_COPY_MEMORY_INDIRECT_EXTENSION_NAME = "VK_KHR_copy_memory_indirect"
mod.VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME = "VK_EXT_shader_image_atomic_int64"
mod.VK_NV_geometry_shader_passthrough = 1
mod.VK_EXT_debug_utils = 1
mod.VK_EXT_external_memory_dma_buf = 1
mod.VK_EXT_HDR_METADATA_EXTENSION_NAME = "VK_EXT_hdr_metadata"
mod.VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION = 5
mod.VK_EXT_swapchain_colorspace = 1
mod.VK_NV_cooperative_matrix = 1
mod.VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME = "VK_NV_cooperative_matrix"
mod.VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION = 1
mod.VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION = 1
mod.VK_NV_device_diagnostic_checkpoints = 1
mod.VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME = "VK_KHR_video_decode_h264"
mod.VK_KHR_DEVICE_GROUP_EXTENSION_NAME = "VK_KHR_device_group"
mod.STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS = 6
mod.VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION = 1
mod.VK_AMD_memory_overallocation_behavior = 1
mod.VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME = "VK_AMD_shader_core_properties"
mod.VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION = 2
mod.VK_EXT_VALIDATION_CACHE_EXTENSION_NAME = "VK_EXT_validation_cache"
mod.VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME = "VK_EXT_astc_decode_mode"
mod.VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION = 1
mod.VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME = "VK_NV_geometry_shader_passthrough"
mod.VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION = 1
mod.STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS = 6
mod.STD_VIDEO_H265_SUBLAYERS_LIST_SIZE = 7
mod.STD_VIDEO_H265_CPB_CNT_LIST_SIZE = 32
mod.VK_KHR_external_semaphore_fd = 1
mod.VK_KHR_external_semaphore_capabilities = 1
mod.VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION = 2
mod.VK_KHR_timeline_semaphore = 1
mod.VK_QUEUE_FAMILY_EXTERNAL_KHR = bit.bnot(1)
mod.VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION = 4
mod.VK_KHR_shader_float_controls = 1
mod.VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION = 1
mod.VK_NV_external_memory_capabilities = 1
end
mod.VkSamplerYcbcrConversion = ffi.typeof([[int ]])
mod.VkDescriptorUpdateTemplate = ffi.typeof([[int ]])
mod.VkBool32 = ffi.typeof([[uint32_t ]])
mod.VkDeviceAddress = ffi.typeof([[uint64_t ]])
mod.VkDeviceSize = ffi.typeof([[uint64_t ]])
mod.VkFlags = ffi.typeof([[uint32_t ]])
mod.VkSampleMask = ffi.typeof([[uint32_t ]])
mod.VkBuffer = ffi.typeof([[void*]])
mod.VkImage = ffi.typeof([[void*]])
mod.VkInstance = ffi.typeof([[void*]])
mod.VkPhysicalDevice = ffi.typeof([[void*]])
mod.VkDevice = ffi.typeof([[void*]])
mod.VkQueue = ffi.typeof([[void*]])
mod.VkSemaphore = ffi.typeof([[void*]])
mod.VkCommandBuffer = ffi.typeof([[void*]])
mod.VkFence = ffi.typeof([[void*]])
mod.VkDeviceMemory = ffi.typeof([[void*]])
mod.VkQueryPool = ffi.typeof([[void*]])
mod.VkImageView = ffi.typeof([[void*]])
mod.VkCommandPool = ffi.typeof([[void*]])
mod.VkRenderPass = ffi.typeof([[void*]])
mod.VkFramebuffer = ffi.typeof([[void*]])
mod.VkEvent = ffi.typeof([[void*]])
mod.VkBufferView = ffi.typeof([[void*]])
mod.VkShaderModule = ffi.typeof([[void*]])
mod.VkPipelineCache = ffi.typeof([[void*]])
mod.VkPipelineLayout = ffi.typeof([[void*]])
mod.VkPipeline = ffi.typeof([[void*]])
mod.VkDescriptorSetLayout = ffi.typeof([[void*]])
mod.VkSampler = ffi.typeof([[void*]])
mod.VkDescriptorSet = ffi.typeof([[void*]])
mod.VkDescriptorPool = ffi.typeof([[void*]])
mod.VkResult = ffi.typeof([[enum {
VK_SUCCESS,
VK_NOT_READY,
VK_TIMEOUT,
VK_EVENT_SET,
VK_EVENT_RESET,
VK_INCOMPLETE,
VK_ERROR_OUT_OF_HOST_MEMORY,
VK_ERROR_OUT_OF_DEVICE_MEMORY,
VK_ERROR_INITIALIZATION_FAILED,
VK_ERROR_DEVICE_LOST,
VK_ERROR_MEMORY_MAP_FAILED,
VK_ERROR_LAYER_NOT_PRESENT,
VK_ERROR_EXTENSION_NOT_PRESENT,
VK_ERROR_FEATURE_NOT_PRESENT,
VK_ERROR_INCOMPATIBLE_DRIVER,
VK_ERROR_TOO_MANY_OBJECTS,
VK_ERROR_FORMAT_NOT_SUPPORTED,
VK_ERROR_FRAGMENTED_POOL,
VK_ERROR_UNKNOWN,
VK_ERROR_VALIDATION_FAILED,
VK_ERROR_OUT_OF_POOL_MEMORY,
VK_ERROR_INVALID_EXTERNAL_HANDLE,
VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
VK_ERROR_FRAGMENTATION,
VK_PIPELINE_COMPILE_REQUIRED,
VK_ERROR_NOT_PERMITTED,
VK_ERROR_SURFACE_LOST_KHR,
VK_ERROR_NATIVE_WINDOW_IN_USE_KHR,
VK_SUBOPTIMAL_KHR,
VK_ERROR_OUT_OF_DATE_KHR,
VK_ERROR_INCOMPATIBLE_DISPLAY_KHR,
VK_ERROR_INVALID_SHADER_NV,
VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR,
VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR,
VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR,
VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR,
VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR,
VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR,
VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT,
VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT,
VK_THREAD_IDLE_KHR,
VK_THREAD_DONE_KHR,
VK_OPERATION_DEFERRED_KHR,
VK_OPERATION_NOT_DEFERRED_KHR,
VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR,
VK_ERROR_COMPRESSION_EXHAUSTED_EXT,
VK_INCOMPATIBLE_SHADER_BINARY_EXT,
VK_PIPELINE_BINARY_MISSING_KHR,
VK_ERROR_NOT_ENOUGH_SPACE_KHR,
VK_ERROR_VALIDATION_FAILED_EXT,
VK_ERROR_OUT_OF_POOL_MEMORY_KHR,
VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR,
VK_ERROR_FRAGMENTATION_EXT,
VK_ERROR_NOT_PERMITTED_EXT,
VK_ERROR_NOT_PERMITTED_KHR,
VK_ERROR_INVALID_DEVICE_ADDRESS_EXT,
VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR,
VK_PIPELINE_COMPILE_REQUIRED_EXT,
VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT,
VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT,
VK_RESULT_MAX_ENUM,
}]])
mod.VkStructureType = ffi.typeof([[enum {
VK_STRUCTURE_TYPE_APPLICATION_INFO,
VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO,
VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
VK_STRUCTURE_TYPE_SUBMIT_INFO,
VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE,
VK_STRUCTURE_TYPE_BIND_SPARSE_INFO,
VK_STRUCTURE_TYPE_FENCE_CREATE_INFO,
VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO,
VK_STRUCTURE_TYPE_EVENT_CREATE_INFO,
VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO,
VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO,
VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO,
VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO,
VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,
VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,
VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO,
VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO,
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO,
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,
VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,
VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,
VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,
VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO,
VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,
VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO,
VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,
VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO,
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,
VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO,
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO,
VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,
VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET,
VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,
VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO,
VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO,
VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO,
VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,
VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,
VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
VK_STRUCTURE_TYPE_MEMORY_BARRIER,
VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO,
VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES,
VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES,
VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES,
VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO,
VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO,
VK_STRUCTURE_TYPE_MEMORY_BARRIER_2,
VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2,
VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2,
VK_STRUCTURE_TYPE_DEPENDENCY_INFO,
VK_STRUCTURE_TYPE_SUBMIT_INFO_2,
VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO,
VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES,
VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2,
VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2,
VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2,
VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2,
VK_STRUCTURE_TYPE_BUFFER_COPY_2,
VK_STRUCTURE_TYPE_IMAGE_COPY_2,
VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES,
VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES,
VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS,
VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS,
VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES,
VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES,
VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK,
VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES,
VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2,
VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2,
VK_STRUCTURE_TYPE_IMAGE_BLIT_2,
VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2,
VK_STRUCTURE_TYPE_RENDERING_INFO,
VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO,
VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES,
VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES,
VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES,
VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES,
VK_STRUCTURE_TYPE_MEMORY_MAP_INFO,
VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES,
VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO,
VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2,
VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2,
VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES,
VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES,
VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY,
VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY,
VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO,
VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO,
VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO,
VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO,
VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE,
VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES,
VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES,
VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO,
VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO,
VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO,
VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES,
VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES,
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES,
VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES,
VK_STRUCTURE_TYPE_RENDERING_AREA_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES,
VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO,
VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO,
VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_PRESENT_INFO_KHR,
VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR,
VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR,
VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR,
VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR,
VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR,
VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD,
VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT,
VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT,
VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT,
VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR,
VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR,
VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR,
VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR,
VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR,
VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV,
VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV,
VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX,
VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX,
VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX,
VK_STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX,
VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX,
VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR,
VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD,
VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV,
VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV,
VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV,
VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV,
VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV,
VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV,
VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT,
VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN,
VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT,
VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR,
VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR,
VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR,
VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR,
VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR,
VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR,
VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR,
VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR,
VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT,
VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT,
VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR,
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV,
VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT,
VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT,
VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT,
VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX,
VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX,
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT,
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_HDR_METADATA_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG,
VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR,
VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR,
VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR,
VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR,
VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR,
VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR,
VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR,
VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR,
VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR,
VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR,
VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR,
VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR,
VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR,
VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR,
VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR,
VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR,
VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK,
VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK,
VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT,
VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT,
VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT,
VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT,
VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID,
VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID,
VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID,
VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID,
VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID,
VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_BFLOAT16_FEATURES_KHR,
VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT,
VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT,
VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV,
VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR,
VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR,
VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR,
VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR,
VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV,
VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT,
VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT,
VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV,
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV,
VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV,
VK_STRUCTURE_TYPE_GEOMETRY_NV,
VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV,
VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV,
VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV,
VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV,
VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV,
VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT,
VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT,
VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR,
VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR,
VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV,
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV,
VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV,
VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV,
VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV,
VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL,
VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL,
VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL,
VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL,
VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL,
VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD,
VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD,
VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA,
VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT,
VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR,
VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR,
VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT,
VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT,
VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV,
VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV,
VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV,
VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT,
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT,
VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT,
VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT,
VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR,
VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR,
VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR,
VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV,
VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV,
VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV,
VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV,
VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV,
VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV,
VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV,
VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT,
VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM,
VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT,
VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT,
VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT,
VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT,
VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT,
VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV,
VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV,
VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV,
VK_STRUCTURE_TYPE_PRESENT_ID_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR,
VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV,
VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_SHADING_FEATURES_QCOM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_SHADING_PROPERTIES_QCOM,
VK_STRUCTURE_TYPE_RENDER_PASS_TILE_SHADING_CREATE_INFO_QCOM,
VK_STRUCTURE_TYPE_PER_TILE_BEGIN_INFO_QCOM,
VK_STRUCTURE_TYPE_PER_TILE_END_INFO_QCOM,
VK_STRUCTURE_TYPE_DISPATCH_TILE_INFO_QCOM,
VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV,
VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT,
VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT,
VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT,
VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT,
VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT,
VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT,
VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT,
VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT,
VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT,
VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT,
VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT,
VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT,
VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT,
VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT,
VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV,
VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT,
VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT,
VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT,
VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT,
VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT,
VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT,
VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT,
VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT,
VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT,
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT,
VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA,
VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA,
VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA,
VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA,
VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA,
VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA,
VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA,
VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA,
VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA,
VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA,
VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA,
VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA,
VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA,
VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA,
VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA,
VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI,
VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV,
VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT,
VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT,
VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT,
VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT,
VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT,
VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_UNTYPED_POINTERS_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_RGB_CONVERSION_FEATURES_VALVE,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_RGB_CONVERSION_CAPABILITIES_VALVE,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_PROFILE_RGB_CONVERSION_INFO_VALVE,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_RGB_CONVERSION_CREATE_INFO_VALVE,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT,
VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT,
VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT,
VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT,
VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT,
VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT,
VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM,
VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT,
VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE,
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE,
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM,
VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM,
VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM,
VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV,
VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV,
VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM,
VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT,
VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT,
VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG,
VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG,
VK_STRUCTURE_TYPE_TENSOR_CREATE_INFO_ARM,
VK_STRUCTURE_TYPE_TENSOR_VIEW_CREATE_INFO_ARM,
VK_STRUCTURE_TYPE_BIND_TENSOR_MEMORY_INFO_ARM,
VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_TENSOR_ARM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_PROPERTIES_ARM,
VK_STRUCTURE_TYPE_TENSOR_FORMAT_PROPERTIES_ARM,
VK_STRUCTURE_TYPE_TENSOR_DESCRIPTION_ARM,
VK_STRUCTURE_TYPE_TENSOR_MEMORY_REQUIREMENTS_INFO_ARM,
VK_STRUCTURE_TYPE_TENSOR_MEMORY_BARRIER_ARM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_FEATURES_ARM,
VK_STRUCTURE_TYPE_DEVICE_TENSOR_MEMORY_REQUIREMENTS_ARM,
VK_STRUCTURE_TYPE_COPY_TENSOR_INFO_ARM,
VK_STRUCTURE_TYPE_TENSOR_COPY_ARM,
VK_STRUCTURE_TYPE_TENSOR_DEPENDENCY_INFO_ARM,
VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_TENSOR_ARM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_TENSOR_INFO_ARM,
VK_STRUCTURE_TYPE_EXTERNAL_TENSOR_PROPERTIES_ARM,
VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_TENSOR_CREATE_INFO_ARM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_FEATURES_ARM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_PROPERTIES_ARM,
VK_STRUCTURE_TYPE_DESCRIPTOR_GET_TENSOR_INFO_ARM,
VK_STRUCTURE_TYPE_TENSOR_CAPTURE_DESCRIPTOR_DATA_INFO_ARM,
VK_STRUCTURE_TYPE_TENSOR_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_ARM,
VK_STRUCTURE_TYPE_FRAME_BOUNDARY_TENSORS_ARM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV,
VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV,
VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV,
VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV,
VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV,
VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID,
VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD,
VK_STRUCTURE_TYPE_ANTI_LAG_DATA_AMD,
VK_STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD,
VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_ID_2_KHR,
VK_STRUCTURE_TYPE_PRESENT_ID_2_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR,
VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR,
VK_STRUCTURE_TYPE_PRESENT_WAIT_2_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR,
VK_STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR,
VK_STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR,
VK_STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR,
VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR,
VK_STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM,
VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC,
VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC,
VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_KHR,
VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_KHR,
VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_KHR,
VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_KHR,
VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_KHR,
VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_PROPERTIES_NV,
VK_STRUCTURE_TYPE_COOPERATIVE_VECTOR_PROPERTIES_NV,
VK_STRUCTURE_TYPE_CONVERT_COOPERATIVE_VECTOR_MATRIX_INFO_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT,
VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT,
VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV,
VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV,
VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV,
VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV,
VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV,
VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV,
VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV,
VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV,
VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR,
VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CREATE_INFO_ARM,
VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_CREATE_INFO_ARM,
VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_RESOURCE_INFO_ARM,
VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CONSTANT_ARM,
VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_MEMORY_REQUIREMENTS_INFO_ARM,
VK_STRUCTURE_TYPE_BIND_DATA_GRAPH_PIPELINE_SESSION_MEMORY_INFO_ARM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_FEATURES_ARM,
VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SHADER_MODULE_CREATE_INFO_ARM,
VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_PROPERTY_QUERY_RESULT_ARM,
VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_INFO_ARM,
VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_COMPILER_CONTROL_CREATE_INFO_ARM,
VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENTS_INFO_ARM,
VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENT_ARM,
VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_IDENTIFIER_CREATE_INFO_ARM,
VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_DISPATCH_INFO_ARM,
VK_STRUCTURE_TYPE_DATA_GRAPH_PROCESSING_ENGINE_CREATE_INFO_ARM,
VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_PROPERTIES_ARM,
VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_PROPERTIES_ARM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_INFO_ARM,
VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CONSTANT_TENSOR_SEMI_STRUCTURED_SPARSITY_INFO_ARM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM,
VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR,
VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_CAPABILITIES_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PICTURE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_DPB_SLOT_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PROFILE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_DECODE_VP9_FEATURES_KHR,
VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_CAPABILITIES_KHR,
VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PICTURE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PROFILE_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR,
VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM,
VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM,
VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM,
VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM,
VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFIED_IMAGE_LAYOUTS_FEATURES_KHR,
VK_STRUCTURE_TYPE_ATTACHMENT_FEEDBACK_LOOP_INFO_EXT,
VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX,
VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX,
VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX,
VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT,
VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR,
VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT,
VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_MEMORY_HEAP_FEATURES_QCOM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_MEMORY_HEAP_PROPERTIES_QCOM,
VK_STRUCTURE_TYPE_TILE_MEMORY_REQUIREMENTS_QCOM,
VK_STRUCTURE_TYPE_TILE_MEMORY_BIND_INFO_QCOM,
VK_STRUCTURE_TYPE_TILE_MEMORY_SIZE_INFO_QCOM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_COPY_MEMORY_INDIRECT_INFO_KHR,
VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INDIRECT_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_DECOMPRESS_MEMORY_INFO_EXT,
VK_STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV,
VK_STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_INTRA_REFRESH_CAPABILITIES_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_INTRA_REFRESH_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_INTRA_REFRESH_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_REFERENCE_INTRA_REFRESH_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_INTRA_REFRESH_FEATURES_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR,
VK_STRUCTURE_TYPE_VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR,
VK_STRUCTURE_TYPE_VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR,
VK_STRUCTURE_TYPE_VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV,
VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_DEVICE_CREATE_INFO_NV,
VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_CREATE_INFO_NV,
VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_DATA_PARAMS_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_COMPUTE_QUEUE_PROPERTIES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT8_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV,
VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV,
VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_TRIANGLE_CLUSTER_INPUT_NV,
VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_MOVE_OBJECTS_INPUT_NV,
VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV,
VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_COMMANDS_INFO_NV,
VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_PROPERTIES_NV,
VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV,
VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCES_INPUT_NV,
VK_STRUCTURE_TYPE_BUILD_PARTITIONED_ACCELERATION_STRUCTURE_INFO_NV,
VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT,
VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT,
VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT,
VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT,
VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT,
VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT,
VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT,
VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT,
VK_STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT,
VK_STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR,
VK_STRUCTURE_TYPE_MEMORY_BARRIER_ACCESS_FLAGS_3_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA,
VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FMA_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT,
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_QUEUE_FAMILY_OWNERSHIP_TRANSFER_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_INLINE_SESSION_PARAMETERS_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_INLINE_SESSION_PARAMETERS_INFO_KHR,
VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_INLINE_SESSION_PARAMETERS_INFO_KHR,
VK_STRUCTURE_TYPE_SURFACE_CREATE_INFO_OHOS,
VK_STRUCTURE_TYPE_NATIVE_BUFFER_OHOS,
VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_OHOS,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_OHOS,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI,
VK_STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV,
VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_OPACITY_MICROMAP_FEATURES_ARM,
VK_STRUCTURE_TYPE_IMPORT_MEMORY_METAL_HANDLE_INFO_EXT,
VK_STRUCTURE_TYPE_MEMORY_METAL_HANDLE_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_MEMORY_GET_METAL_HANDLE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FORMAT_PACK_FEATURES_ARM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_FEATURES_VALVE,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_PROPERTIES_VALVE,
VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_DENSITY_MAP_LAYERED_CREATE_INFO_VALVE,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_DEVICE_MEMORY_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_64_BIT_INDEXING_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_10_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_10_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_FLAGS_INFO_KHR,
VK_STRUCTURE_TYPE_RENDERING_END_INFO_KHR,
VK_STRUCTURE_TYPE_RESOLVE_IMAGE_MODE_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CACHE_INCREMENTAL_MODE_FEATURES_SEC,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_UNIFORM_BUFFER_UNSIZED_ARRAY_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES,
VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_RENDERING_INFO_KHR,
VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR,
VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR,
VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR,
VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR,
VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR,
VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR,
VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR,
VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR,
VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR,
VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR,
VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR,
VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR,
VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR,
VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR,
VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT,
VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR,
VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR,
VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR,
VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR,
VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR,
VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR,
VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR,
VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR,
VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR,
VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR,
VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR,
VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR,
VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR,
VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR,
VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR,
VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR,
VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT,
VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR,
VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR,
VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR,
VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR,
VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR,
VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV,
VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR,
VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR,
VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR,
VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR,
VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR,
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT,
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR,
VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR,
VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT,
VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR,
VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT,
VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR,
VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR,
VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR,
VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR,
VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR,
VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR,
VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR,
VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT,
VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR,
VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR,
VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR,
VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT,
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT,
VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT,
VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT,
VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT,
VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT,
VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT,
VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT,
VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT,
VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR,
VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR,
VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT,
VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT,
VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT,
VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT,
VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT,
VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT,
VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT,
VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR,
VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR,
VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR,
VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR,
VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR,
VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR,
VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT,
VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR,
VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR,
VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR,
VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR,
VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR,
VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR,
VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR,
VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR,
VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR,
VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR,
VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR,
VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT,
VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE,
VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE,
VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT,
VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT,
VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR,
VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM,
VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR,
VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR,
VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR,
VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR,
VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_SHADER_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR,
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR,
VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR,
VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR,
VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR,
VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR,
VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR,
VK_STRUCTURE_TYPE_RENDERING_END_INFO_EXT,
VK_STRUCTURE_TYPE_MAX_ENUM,
}]])
mod.VkImageLayout = ffi.typeof([[enum {
VK_IMAGE_LAYOUT_UNDEFINED,
VK_IMAGE_LAYOUT_GENERAL,
VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,
VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
VK_IMAGE_LAYOUT_PREINITIALIZED,
VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL,
VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL,
VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ,
VK_IMAGE_LAYOUT_PRESENT_SRC_KHR,
VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR,
VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR,
VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR,
VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR,
VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT,
VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,
VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR,
VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR,
VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR,
VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT,
VK_IMAGE_LAYOUT_TENSOR_ALIASING_ARM,
VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR,
VK_IMAGE_LAYOUT_ZERO_INITIALIZED_EXT,
VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR,
VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR,
VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV,
VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR,
VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR,
VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR,
VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR,
VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR,
VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR,
VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR,
VK_IMAGE_LAYOUT_MAX_ENUM,
}]])
mod.VkObjectType = ffi.typeof([[enum {
VK_OBJECT_TYPE_UNKNOWN,
VK_OBJECT_TYPE_INSTANCE,
VK_OBJECT_TYPE_PHYSICAL_DEVICE,
VK_OBJECT_TYPE_DEVICE,
VK_OBJECT_TYPE_QUEUE,
VK_OBJECT_TYPE_SEMAPHORE,
VK_OBJECT_TYPE_COMMAND_BUFFER,
VK_OBJECT_TYPE_FENCE,
VK_OBJECT_TYPE_DEVICE_MEMORY,
VK_OBJECT_TYPE_BUFFER,
VK_OBJECT_TYPE_IMAGE,
VK_OBJECT_TYPE_EVENT,
VK_OBJECT_TYPE_QUERY_POOL,
VK_OBJECT_TYPE_BUFFER_VIEW,
VK_OBJECT_TYPE_IMAGE_VIEW,
VK_OBJECT_TYPE_SHADER_MODULE,
VK_OBJECT_TYPE_PIPELINE_CACHE,
VK_OBJECT_TYPE_PIPELINE_LAYOUT,
VK_OBJECT_TYPE_RENDER_PASS,
VK_OBJECT_TYPE_PIPELINE,
VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT,
VK_OBJECT_TYPE_SAMPLER,
VK_OBJECT_TYPE_DESCRIPTOR_POOL,
VK_OBJECT_TYPE_DESCRIPTOR_SET,
VK_OBJECT_TYPE_FRAMEBUFFER,
VK_OBJECT_TYPE_COMMAND_POOL,
VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
VK_OBJECT_TYPE_PRIVATE_DATA_SLOT,
VK_OBJECT_TYPE_SURFACE_KHR,
VK_OBJECT_TYPE_SWAPCHAIN_KHR,
VK_OBJECT_TYPE_DISPLAY_KHR,
VK_OBJECT_TYPE_DISPLAY_MODE_KHR,
VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT,
VK_OBJECT_TYPE_VIDEO_SESSION_KHR,
VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR,
VK_OBJECT_TYPE_CU_MODULE_NVX,
VK_OBJECT_TYPE_CU_FUNCTION_NVX,
VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT,
VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR,
VK_OBJECT_TYPE_VALIDATION_CACHE_EXT,
VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV,
VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL,
VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR,
VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV,
VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA,
VK_OBJECT_TYPE_MICROMAP_EXT,
VK_OBJECT_TYPE_TENSOR_ARM,
VK_OBJECT_TYPE_TENSOR_VIEW_ARM,
VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV,
VK_OBJECT_TYPE_SHADER_EXT,
VK_OBJECT_TYPE_PIPELINE_BINARY_KHR,
VK_OBJECT_TYPE_DATA_GRAPH_PIPELINE_SESSION_ARM,
VK_OBJECT_TYPE_EXTERNAL_COMPUTE_QUEUE_NV,
VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT,
VK_OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT,
VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR,
VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR,
VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT,
VK_OBJECT_TYPE_MAX_ENUM,
}]])
mod.VkVendorId = ffi.typeof([[enum {
VK_VENDOR_ID_KHRONOS,
VK_VENDOR_ID_VIV,
VK_VENDOR_ID_VSI,
VK_VENDOR_ID_KAZAN,
VK_VENDOR_ID_CODEPLAY,
VK_VENDOR_ID_MESA,
VK_VENDOR_ID_POCL,
VK_VENDOR_ID_MOBILEYE,
VK_VENDOR_ID_MAX_ENUM,
}]])
mod.VkSystemAllocationScope = ffi.typeof([[enum {
VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
VK_SYSTEM_ALLOCATION_SCOPE_OBJECT,
VK_SYSTEM_ALLOCATION_SCOPE_CACHE,
VK_SYSTEM_ALLOCATION_SCOPE_DEVICE,
VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE,
VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM,
}]])
mod.VkInternalAllocationType = ffi.typeof([[enum {
VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM,
}]])
mod.VkFormat = ffi.typeof([[enum {
VK_FORMAT_UNDEFINED,
VK_FORMAT_R4G4_UNORM_PACK8,
VK_FORMAT_R4G4B4A4_UNORM_PACK16,
VK_FORMAT_B4G4R4A4_UNORM_PACK16,
VK_FORMAT_R5G6B5_UNORM_PACK16,
VK_FORMAT_B5G6R5_UNORM_PACK16,
VK_FORMAT_R5G5B5A1_UNORM_PACK16,
VK_FORMAT_B5G5R5A1_UNORM_PACK16,
VK_FORMAT_A1R5G5B5_UNORM_PACK16,
VK_FORMAT_R8_UNORM,
VK_FORMAT_R8_SNORM,
VK_FORMAT_R8_USCALED,
VK_FORMAT_R8_SSCALED,
VK_FORMAT_R8_UINT,
VK_FORMAT_R8_SINT,
VK_FORMAT_R8_SRGB,
VK_FORMAT_R8G8_UNORM,
VK_FORMAT_R8G8_SNORM,
VK_FORMAT_R8G8_USCALED,
VK_FORMAT_R8G8_SSCALED,
VK_FORMAT_R8G8_UINT,
VK_FORMAT_R8G8_SINT,
VK_FORMAT_R8G8_SRGB,
VK_FORMAT_R8G8B8_UNORM,
VK_FORMAT_R8G8B8_SNORM,
VK_FORMAT_R8G8B8_USCALED,
VK_FORMAT_R8G8B8_SSCALED,
VK_FORMAT_R8G8B8_UINT,
VK_FORMAT_R8G8B8_SINT,
VK_FORMAT_R8G8B8_SRGB,
VK_FORMAT_B8G8R8_UNORM,
VK_FORMAT_B8G8R8_SNORM,
VK_FORMAT_B8G8R8_USCALED,
VK_FORMAT_B8G8R8_SSCALED,
VK_FORMAT_B8G8R8_UINT,
VK_FORMAT_B8G8R8_SINT,
VK_FORMAT_B8G8R8_SRGB,
VK_FORMAT_R8G8B8A8_UNORM,
VK_FORMAT_R8G8B8A8_SNORM,
VK_FORMAT_R8G8B8A8_USCALED,
VK_FORMAT_R8G8B8A8_SSCALED,
VK_FORMAT_R8G8B8A8_UINT,
VK_FORMAT_R8G8B8A8_SINT,
VK_FORMAT_R8G8B8A8_SRGB,
VK_FORMAT_B8G8R8A8_UNORM,
VK_FORMAT_B8G8R8A8_SNORM,
VK_FORMAT_B8G8R8A8_USCALED,
VK_FORMAT_B8G8R8A8_SSCALED,
VK_FORMAT_B8G8R8A8_UINT,
VK_FORMAT_B8G8R8A8_SINT,
VK_FORMAT_B8G8R8A8_SRGB,
VK_FORMAT_A8B8G8R8_UNORM_PACK32,
VK_FORMAT_A8B8G8R8_SNORM_PACK32,
VK_FORMAT_A8B8G8R8_USCALED_PACK32,
VK_FORMAT_A8B8G8R8_SSCALED_PACK32,
VK_FORMAT_A8B8G8R8_UINT_PACK32,
VK_FORMAT_A8B8G8R8_SINT_PACK32,
VK_FORMAT_A8B8G8R8_SRGB_PACK32,
VK_FORMAT_A2R10G10B10_UNORM_PACK32,
VK_FORMAT_A2R10G10B10_SNORM_PACK32,
VK_FORMAT_A2R10G10B10_USCALED_PACK32,
VK_FORMAT_A2R10G10B10_SSCALED_PACK32,
VK_FORMAT_A2R10G10B10_UINT_PACK32,
VK_FORMAT_A2R10G10B10_SINT_PACK32,
VK_FORMAT_A2B10G10R10_UNORM_PACK32,
VK_FORMAT_A2B10G10R10_SNORM_PACK32,
VK_FORMAT_A2B10G10R10_USCALED_PACK32,
VK_FORMAT_A2B10G10R10_SSCALED_PACK32,
VK_FORMAT_A2B10G10R10_UINT_PACK32,
VK_FORMAT_A2B10G10R10_SINT_PACK32,
VK_FORMAT_R16_UNORM,
VK_FORMAT_R16_SNORM,
VK_FORMAT_R16_USCALED,
VK_FORMAT_R16_SSCALED,
VK_FORMAT_R16_UINT,
VK_FORMAT_R16_SINT,
VK_FORMAT_R16_SFLOAT,
VK_FORMAT_R16G16_UNORM,
VK_FORMAT_R16G16_SNORM,
VK_FORMAT_R16G16_USCALED,
VK_FORMAT_R16G16_SSCALED,
VK_FORMAT_R16G16_UINT,
VK_FORMAT_R16G16_SINT,
VK_FORMAT_R16G16_SFLOAT,
VK_FORMAT_R16G16B16_UNORM,
VK_FORMAT_R16G16B16_SNORM,
VK_FORMAT_R16G16B16_USCALED,
VK_FORMAT_R16G16B16_SSCALED,
VK_FORMAT_R16G16B16_UINT,
VK_FORMAT_R16G16B16_SINT,
VK_FORMAT_R16G16B16_SFLOAT,
VK_FORMAT_R16G16B16A16_UNORM,
VK_FORMAT_R16G16B16A16_SNORM,
VK_FORMAT_R16G16B16A16_USCALED,
VK_FORMAT_R16G16B16A16_SSCALED,
VK_FORMAT_R16G16B16A16_UINT,
VK_FORMAT_R16G16B16A16_SINT,
VK_FORMAT_R16G16B16A16_SFLOAT,
VK_FORMAT_R32_UINT,
VK_FORMAT_R32_SINT,
VK_FORMAT_R32_SFLOAT,
VK_FORMAT_R32G32_UINT,
VK_FORMAT_R32G32_SINT,
VK_FORMAT_R32G32_SFLOAT,
VK_FORMAT_R32G32B32_UINT,
VK_FORMAT_R32G32B32_SINT,
VK_FORMAT_R32G32B32_SFLOAT,
VK_FORMAT_R32G32B32A32_UINT,
VK_FORMAT_R32G32B32A32_SINT,
VK_FORMAT_R32G32B32A32_SFLOAT,
VK_FORMAT_R64_UINT,
VK_FORMAT_R64_SINT,
VK_FORMAT_R64_SFLOAT,
VK_FORMAT_R64G64_UINT,
VK_FORMAT_R64G64_SINT,
VK_FORMAT_R64G64_SFLOAT,
VK_FORMAT_R64G64B64_UINT,
VK_FORMAT_R64G64B64_SINT,
VK_FORMAT_R64G64B64_SFLOAT,
VK_FORMAT_R64G64B64A64_UINT,
VK_FORMAT_R64G64B64A64_SINT,
VK_FORMAT_R64G64B64A64_SFLOAT,
VK_FORMAT_B10G11R11_UFLOAT_PACK32,
VK_FORMAT_E5B9G9R9_UFLOAT_PACK32,
VK_FORMAT_D16_UNORM,
VK_FORMAT_X8_D24_UNORM_PACK32,
VK_FORMAT_D32_SFLOAT,
VK_FORMAT_S8_UINT,
VK_FORMAT_D16_UNORM_S8_UINT,
VK_FORMAT_D24_UNORM_S8_UINT,
VK_FORMAT_D32_SFLOAT_S8_UINT,
VK_FORMAT_BC1_RGB_UNORM_BLOCK,
VK_FORMAT_BC1_RGB_SRGB_BLOCK,
VK_FORMAT_BC1_RGBA_UNORM_BLOCK,
VK_FORMAT_BC1_RGBA_SRGB_BLOCK,
VK_FORMAT_BC2_UNORM_BLOCK,
VK_FORMAT_BC2_SRGB_BLOCK,
VK_FORMAT_BC3_UNORM_BLOCK,
VK_FORMAT_BC3_SRGB_BLOCK,
VK_FORMAT_BC4_UNORM_BLOCK,
VK_FORMAT_BC4_SNORM_BLOCK,
VK_FORMAT_BC5_UNORM_BLOCK,
VK_FORMAT_BC5_SNORM_BLOCK,
VK_FORMAT_BC6H_UFLOAT_BLOCK,
VK_FORMAT_BC6H_SFLOAT_BLOCK,
VK_FORMAT_BC7_UNORM_BLOCK,
VK_FORMAT_BC7_SRGB_BLOCK,
VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK,
VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK,
VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK,
VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK,
VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK,
VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK,
VK_FORMAT_EAC_R11_UNORM_BLOCK,
VK_FORMAT_EAC_R11_SNORM_BLOCK,
VK_FORMAT_EAC_R11G11_UNORM_BLOCK,
VK_FORMAT_EAC_R11G11_SNORM_BLOCK,
VK_FORMAT_ASTC_4x4_UNORM_BLOCK,
VK_FORMAT_ASTC_4x4_SRGB_BLOCK,
VK_FORMAT_ASTC_5x4_UNORM_BLOCK,
VK_FORMAT_ASTC_5x4_SRGB_BLOCK,
VK_FORMAT_ASTC_5x5_UNORM_BLOCK,
VK_FORMAT_ASTC_5x5_SRGB_BLOCK,
VK_FORMAT_ASTC_6x5_UNORM_BLOCK,
VK_FORMAT_ASTC_6x5_SRGB_BLOCK,
VK_FORMAT_ASTC_6x6_UNORM_BLOCK,
VK_FORMAT_ASTC_6x6_SRGB_BLOCK,
VK_FORMAT_ASTC_8x5_UNORM_BLOCK,
VK_FORMAT_ASTC_8x5_SRGB_BLOCK,
VK_FORMAT_ASTC_8x6_UNORM_BLOCK,
VK_FORMAT_ASTC_8x6_SRGB_BLOCK,
VK_FORMAT_ASTC_8x8_UNORM_BLOCK,
VK_FORMAT_ASTC_8x8_SRGB_BLOCK,
VK_FORMAT_ASTC_10x5_UNORM_BLOCK,
VK_FORMAT_ASTC_10x5_SRGB_BLOCK,
VK_FORMAT_ASTC_10x6_UNORM_BLOCK,
VK_FORMAT_ASTC_10x6_SRGB_BLOCK,
VK_FORMAT_ASTC_10x8_UNORM_BLOCK,
VK_FORMAT_ASTC_10x8_SRGB_BLOCK,
VK_FORMAT_ASTC_10x10_UNORM_BLOCK,
VK_FORMAT_ASTC_10x10_SRGB_BLOCK,
VK_FORMAT_ASTC_12x10_UNORM_BLOCK,
VK_FORMAT_ASTC_12x10_SRGB_BLOCK,
VK_FORMAT_ASTC_12x12_UNORM_BLOCK,
VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
VK_FORMAT_G8B8G8R8_422_UNORM,
VK_FORMAT_B8G8R8G8_422_UNORM,
VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
VK_FORMAT_R10X6_UNORM_PACK16,
VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
VK_FORMAT_R12X4_UNORM_PACK16,
VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
VK_FORMAT_G16B16G16R16_422_UNORM,
VK_FORMAT_B16G16R16G16_422_UNORM,
VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
VK_FORMAT_G8_B8R8_2PLANE_444_UNORM,
VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16,
VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16,
VK_FORMAT_G16_B16R16_2PLANE_444_UNORM,
VK_FORMAT_A4R4G4B4_UNORM_PACK16,
VK_FORMAT_A4B4G4R4_UNORM_PACK16,
VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK,
VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK,
VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK,
VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK,
VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK,
VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK,
VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK,
VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK,
VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK,
VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK,
VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK,
VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK,
VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK,
VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK,
VK_FORMAT_A1B5G5R5_UNORM_PACK16,
VK_FORMAT_A8_UNORM,
VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG,
VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG,
VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG,
VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG,
VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG,
VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG,
VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG,
VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG,
VK_FORMAT_R8_BOOL_ARM,
VK_FORMAT_R16G16_SFIXED5_NV,
VK_FORMAT_R10X6_UINT_PACK16_ARM,
VK_FORMAT_R10X6G10X6_UINT_2PACK16_ARM,
VK_FORMAT_R10X6G10X6B10X6A10X6_UINT_4PACK16_ARM,
VK_FORMAT_R12X4_UINT_PACK16_ARM,
VK_FORMAT_R12X4G12X4_UINT_2PACK16_ARM,
VK_FORMAT_R12X4G12X4B12X4A12X4_UINT_4PACK16_ARM,
VK_FORMAT_R14X2_UINT_PACK16_ARM,
VK_FORMAT_R14X2G14X2_UINT_2PACK16_ARM,
VK_FORMAT_R14X2G14X2B14X2A14X2_UINT_4PACK16_ARM,
VK_FORMAT_R14X2_UNORM_PACK16_ARM,
VK_FORMAT_R14X2G14X2_UNORM_2PACK16_ARM,
VK_FORMAT_R14X2G14X2B14X2A14X2_UNORM_4PACK16_ARM,
VK_FORMAT_G14X2_B14X2R14X2_2PLANE_420_UNORM_3PACK16_ARM,
VK_FORMAT_G14X2_B14X2R14X2_2PLANE_422_UNORM_3PACK16_ARM,
VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT,
VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT,
VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT,
VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT,
VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT,
VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT,
VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT,
VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT,
VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT,
VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT,
VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT,
VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT,
VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT,
VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT,
VK_FORMAT_G8B8G8R8_422_UNORM_KHR,
VK_FORMAT_B8G8R8G8_422_UNORM_KHR,
VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR,
VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR,
VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR,
VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR,
VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR,
VK_FORMAT_R10X6_UNORM_PACK16_KHR,
VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR,
VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR,
VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR,
VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR,
VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR,
VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR,
VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR,
VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR,
VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR,
VK_FORMAT_R12X4_UNORM_PACK16_KHR,
VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR,
VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR,
VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR,
VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR,
VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR,
VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR,
VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR,
VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR,
VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR,
VK_FORMAT_G16B16G16R16_422_UNORM_KHR,
VK_FORMAT_B16G16R16G16_422_UNORM_KHR,
VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR,
VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR,
VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR,
VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR,
VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR,
VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT,
VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT,
VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT,
VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT,
VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT,
VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT,
VK_FORMAT_R16G16_S10_5_NV,
VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR,
VK_FORMAT_A8_UNORM_KHR,
VK_FORMAT_MAX_ENUM,
}]])
mod.VkImageTiling = ffi.typeof([[enum {
VK_IMAGE_TILING_OPTIMAL,
VK_IMAGE_TILING_LINEAR,
VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT,
VK_IMAGE_TILING_MAX_ENUM,
}]])
mod.VkImageType = ffi.typeof([[enum {
VK_IMAGE_TYPE_1D,
VK_IMAGE_TYPE_2D,
VK_IMAGE_TYPE_3D,
VK_IMAGE_TYPE_MAX_ENUM,
}]])
mod.VkPhysicalDeviceType = ffi.typeof([[enum {
VK_PHYSICAL_DEVICE_TYPE_OTHER,
VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU,
VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,
VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU,
VK_PHYSICAL_DEVICE_TYPE_CPU,
VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM,
}]])
mod.VkQueryType = ffi.typeof([[enum {
VK_QUERY_TYPE_OCCLUSION,
VK_QUERY_TYPE_PIPELINE_STATISTICS,
VK_QUERY_TYPE_TIMESTAMP,
VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR,
VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT,
VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR,
VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR,
VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR,
VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV,
VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL,
VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR,
VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT,
VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT,
VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR,
VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR,
VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT,
VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT,
VK_QUERY_TYPE_MAX_ENUM,
}]])
mod.VkSharingMode = ffi.typeof([[enum {
VK_SHARING_MODE_EXCLUSIVE,
VK_SHARING_MODE_CONCURRENT,
VK_SHARING_MODE_MAX_ENUM,
}]])
mod.VkComponentSwizzle = ffi.typeof([[enum {
VK_COMPONENT_SWIZZLE_IDENTITY,
VK_COMPONENT_SWIZZLE_ZERO,
VK_COMPONENT_SWIZZLE_ONE,
VK_COMPONENT_SWIZZLE_R,
VK_COMPONENT_SWIZZLE_G,
VK_COMPONENT_SWIZZLE_B,
VK_COMPONENT_SWIZZLE_A,
VK_COMPONENT_SWIZZLE_MAX_ENUM,
}]])
mod.VkImageViewType = ffi.typeof([[enum {
VK_IMAGE_VIEW_TYPE_1D,
VK_IMAGE_VIEW_TYPE_2D,
VK_IMAGE_VIEW_TYPE_3D,
VK_IMAGE_VIEW_TYPE_CUBE,
VK_IMAGE_VIEW_TYPE_1D_ARRAY,
VK_IMAGE_VIEW_TYPE_2D_ARRAY,
VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,
VK_IMAGE_VIEW_TYPE_MAX_ENUM,
}]])
mod.VkCommandBufferLevel = ffi.typeof([[enum {
VK_COMMAND_BUFFER_LEVEL_PRIMARY,
VK_COMMAND_BUFFER_LEVEL_SECONDARY,
VK_COMMAND_BUFFER_LEVEL_MAX_ENUM,
}]])
mod.VkIndexType = ffi.typeof([[enum {
VK_INDEX_TYPE_UINT16,
VK_INDEX_TYPE_UINT32,
VK_INDEX_TYPE_UINT8,
VK_INDEX_TYPE_NONE_KHR,
VK_INDEX_TYPE_NONE_NV,
VK_INDEX_TYPE_UINT8_EXT,
VK_INDEX_TYPE_UINT8_KHR,
VK_INDEX_TYPE_MAX_ENUM,
}]])
mod.VkPipelineCacheHeaderVersion = ffi.typeof([[enum {
VK_PIPELINE_CACHE_HEADER_VERSION_ONE,
VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM,
}]])
mod.VkBorderColor = ffi.typeof([[enum {
VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
VK_BORDER_COLOR_INT_TRANSPARENT_BLACK,
VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK,
VK_BORDER_COLOR_INT_OPAQUE_BLACK,
VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE,
VK_BORDER_COLOR_INT_OPAQUE_WHITE,
VK_BORDER_COLOR_FLOAT_CUSTOM_EXT,
VK_BORDER_COLOR_INT_CUSTOM_EXT,
VK_BORDER_COLOR_MAX_ENUM,
}]])
mod.VkFilter = ffi.typeof([[enum {
VK_FILTER_NEAREST,
VK_FILTER_LINEAR,
VK_FILTER_CUBIC_EXT,
VK_FILTER_CUBIC_IMG,
VK_FILTER_MAX_ENUM,
}]])
mod.VkSamplerAddressMode = ffi.typeof([[enum {
VK_SAMPLER_ADDRESS_MODE_REPEAT,
VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT,
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR,
VK_SAMPLER_ADDRESS_MODE_MAX_ENUM,
}]])
mod.VkSamplerMipmapMode = ffi.typeof([[enum {
VK_SAMPLER_MIPMAP_MODE_NEAREST,
VK_SAMPLER_MIPMAP_MODE_LINEAR,
VK_SAMPLER_MIPMAP_MODE_MAX_ENUM,
}]])
mod.VkCompareOp = ffi.typeof([[enum {
VK_COMPARE_OP_NEVER,
VK_COMPARE_OP_LESS,
VK_COMPARE_OP_EQUAL,
VK_COMPARE_OP_LESS_OR_EQUAL,
VK_COMPARE_OP_GREATER,
VK_COMPARE_OP_NOT_EQUAL,
VK_COMPARE_OP_GREATER_OR_EQUAL,
VK_COMPARE_OP_ALWAYS,
VK_COMPARE_OP_MAX_ENUM,
}]])
mod.VkDescriptorType = ffi.typeof([[enum {
VK_DESCRIPTOR_TYPE_SAMPLER,
VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,
VK_DESCRIPTOR_TYPE_STORAGE_IMAGE,
VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER,
VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER,
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC,
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC,
VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK,
VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR,
VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV,
VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM,
VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM,
VK_DESCRIPTOR_TYPE_TENSOR_ARM,
VK_DESCRIPTOR_TYPE_MUTABLE_EXT,
VK_DESCRIPTOR_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_NV,
VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT,
VK_DESCRIPTOR_TYPE_MUTABLE_VALVE,
VK_DESCRIPTOR_TYPE_MAX_ENUM,
}]])
mod.VkPipelineBindPoint = ffi.typeof([[enum {
VK_PIPELINE_BIND_POINT_GRAPHICS,
VK_PIPELINE_BIND_POINT_COMPUTE,
VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI,
VK_PIPELINE_BIND_POINT_DATA_GRAPH_ARM,
VK_PIPELINE_BIND_POINT_RAY_TRACING_NV,
VK_PIPELINE_BIND_POINT_MAX_ENUM,
}]])
mod.VkBlendFactor = ffi.typeof([[enum {
VK_BLEND_FACTOR_ZERO,
VK_BLEND_FACTOR_ONE,
VK_BLEND_FACTOR_SRC_COLOR,
VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR,
VK_BLEND_FACTOR_DST_COLOR,
VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR,
VK_BLEND_FACTOR_SRC_ALPHA,
VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA,
VK_BLEND_FACTOR_DST_ALPHA,
VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA,
VK_BLEND_FACTOR_CONSTANT_COLOR,
VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,
VK_BLEND_FACTOR_CONSTANT_ALPHA,
VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,
VK_BLEND_FACTOR_SRC_ALPHA_SATURATE,
VK_BLEND_FACTOR_SRC1_COLOR,
VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR,
VK_BLEND_FACTOR_SRC1_ALPHA,
VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA,
VK_BLEND_FACTOR_MAX_ENUM,
}]])
mod.VkBlendOp = ffi.typeof([[enum {
VK_BLEND_OP_ADD,
VK_BLEND_OP_SUBTRACT,
VK_BLEND_OP_REVERSE_SUBTRACT,
VK_BLEND_OP_MIN,
VK_BLEND_OP_MAX,
VK_BLEND_OP_ZERO_EXT,
VK_BLEND_OP_SRC_EXT,
VK_BLEND_OP_DST_EXT,
VK_BLEND_OP_SRC_OVER_EXT,
VK_BLEND_OP_DST_OVER_EXT,
VK_BLEND_OP_SRC_IN_EXT,
VK_BLEND_OP_DST_IN_EXT,
VK_BLEND_OP_SRC_OUT_EXT,
VK_BLEND_OP_DST_OUT_EXT,
VK_BLEND_OP_SRC_ATOP_EXT,
VK_BLEND_OP_DST_ATOP_EXT,
VK_BLEND_OP_XOR_EXT,
VK_BLEND_OP_MULTIPLY_EXT,
VK_BLEND_OP_SCREEN_EXT,
VK_BLEND_OP_OVERLAY_EXT,
VK_BLEND_OP_DARKEN_EXT,
VK_BLEND_OP_LIGHTEN_EXT,
VK_BLEND_OP_COLORDODGE_EXT,
VK_BLEND_OP_COLORBURN_EXT,
VK_BLEND_OP_HARDLIGHT_EXT,
VK_BLEND_OP_SOFTLIGHT_EXT,
VK_BLEND_OP_DIFFERENCE_EXT,
VK_BLEND_OP_EXCLUSION_EXT,
VK_BLEND_OP_INVERT_EXT,
VK_BLEND_OP_INVERT_RGB_EXT,
VK_BLEND_OP_LINEARDODGE_EXT,
VK_BLEND_OP_LINEARBURN_EXT,
VK_BLEND_OP_VIVIDLIGHT_EXT,
VK_BLEND_OP_LINEARLIGHT_EXT,
VK_BLEND_OP_PINLIGHT_EXT,
VK_BLEND_OP_HARDMIX_EXT,
VK_BLEND_OP_HSL_HUE_EXT,
VK_BLEND_OP_HSL_SATURATION_EXT,
VK_BLEND_OP_HSL_COLOR_EXT,
VK_BLEND_OP_HSL_LUMINOSITY_EXT,
VK_BLEND_OP_PLUS_EXT,
VK_BLEND_OP_PLUS_CLAMPED_EXT,
VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT,
VK_BLEND_OP_PLUS_DARKER_EXT,
VK_BLEND_OP_MINUS_EXT,
VK_BLEND_OP_MINUS_CLAMPED_EXT,
VK_BLEND_OP_CONTRAST_EXT,
VK_BLEND_OP_INVERT_OVG_EXT,
VK_BLEND_OP_RED_EXT,
VK_BLEND_OP_GREEN_EXT,
VK_BLEND_OP_BLUE_EXT,
VK_BLEND_OP_MAX_ENUM,
}]])
mod.VkDynamicState = ffi.typeof([[enum {
VK_DYNAMIC_STATE_VIEWPORT,
VK_DYNAMIC_STATE_SCISSOR,
VK_DYNAMIC_STATE_LINE_WIDTH,
VK_DYNAMIC_STATE_DEPTH_BIAS,
VK_DYNAMIC_STATE_BLEND_CONSTANTS,
VK_DYNAMIC_STATE_DEPTH_BOUNDS,
VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK,
VK_DYNAMIC_STATE_STENCIL_WRITE_MASK,
VK_DYNAMIC_STATE_STENCIL_REFERENCE,
VK_DYNAMIC_STATE_CULL_MODE,
VK_DYNAMIC_STATE_FRONT_FACE,
VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY,
VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT,
VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT,
VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE,
VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE,
VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE,
VK_DYNAMIC_STATE_DEPTH_COMPARE_OP,
VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE,
VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE,
VK_DYNAMIC_STATE_STENCIL_OP,
VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE,
VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE,
VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE,
VK_DYNAMIC_STATE_LINE_STIPPLE,
VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV,
VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT,
VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT,
VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT,
VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT,
VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR,
VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV,
VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV,
VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV,
VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV,
VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR,
VK_DYNAMIC_STATE_VERTEX_INPUT_EXT,
VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT,
VK_DYNAMIC_STATE_LOGIC_OP_EXT,
VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT,
VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT,
VK_DYNAMIC_STATE_POLYGON_MODE_EXT,
VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT,
VK_DYNAMIC_STATE_SAMPLE_MASK_EXT,
VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT,
VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT,
VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT,
VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT,
VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT,
VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT,
VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT,
VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT,
VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT,
VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT,
VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT,
VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT,
VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT,
VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT,
VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT,
VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT,
VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT,
VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV,
VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV,
VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV,
VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV,
VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV,
VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV,
VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV,
VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV,
VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV,
VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV,
VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT,
VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT,
VK_DYNAMIC_STATE_LINE_STIPPLE_EXT,
VK_DYNAMIC_STATE_CULL_MODE_EXT,
VK_DYNAMIC_STATE_FRONT_FACE_EXT,
VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT,
VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT,
VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT,
VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT,
VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT,
VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT,
VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT,
VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT,
VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT,
VK_DYNAMIC_STATE_STENCIL_OP_EXT,
VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT,
VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT,
VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT,
VK_DYNAMIC_STATE_LINE_STIPPLE_KHR,
VK_DYNAMIC_STATE_MAX_ENUM,
}]])
mod.VkFrontFace = ffi.typeof([[enum {
VK_FRONT_FACE_COUNTER_CLOCKWISE,
VK_FRONT_FACE_CLOCKWISE,
VK_FRONT_FACE_MAX_ENUM,
}]])
mod.VkVertexInputRate = ffi.typeof([[enum {
VK_VERTEX_INPUT_RATE_VERTEX,
VK_VERTEX_INPUT_RATE_INSTANCE,
VK_VERTEX_INPUT_RATE_MAX_ENUM,
}]])
mod.VkPrimitiveTopology = ffi.typeof([[enum {
VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
VK_PRIMITIVE_TOPOLOGY_LINE_LIST,
VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN,
VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY,
VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY,
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY,
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY,
VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,
VK_PRIMITIVE_TOPOLOGY_MAX_ENUM,
}]])
mod.VkPolygonMode = ffi.typeof([[enum {
VK_POLYGON_MODE_FILL,
VK_POLYGON_MODE_LINE,
VK_POLYGON_MODE_POINT,
VK_POLYGON_MODE_FILL_RECTANGLE_NV,
VK_POLYGON_MODE_MAX_ENUM,
}]])
mod.VkStencilOp = ffi.typeof([[enum {
VK_STENCIL_OP_KEEP,
VK_STENCIL_OP_ZERO,
VK_STENCIL_OP_REPLACE,
VK_STENCIL_OP_INCREMENT_AND_CLAMP,
VK_STENCIL_OP_DECREMENT_AND_CLAMP,
VK_STENCIL_OP_INVERT,
VK_STENCIL_OP_INCREMENT_AND_WRAP,
VK_STENCIL_OP_DECREMENT_AND_WRAP,
VK_STENCIL_OP_MAX_ENUM,
}]])
mod.VkLogicOp = ffi.typeof([[enum {
VK_LOGIC_OP_CLEAR,
VK_LOGIC_OP_AND,
VK_LOGIC_OP_AND_REVERSE,
VK_LOGIC_OP_COPY,
VK_LOGIC_OP_AND_INVERTED,
VK_LOGIC_OP_NO_OP,
VK_LOGIC_OP_XOR,
VK_LOGIC_OP_OR,
VK_LOGIC_OP_NOR,
VK_LOGIC_OP_EQUIVALENT,
VK_LOGIC_OP_INVERT,
VK_LOGIC_OP_OR_REVERSE,
VK_LOGIC_OP_COPY_INVERTED,
VK_LOGIC_OP_OR_INVERTED,
VK_LOGIC_OP_NAND,
VK_LOGIC_OP_SET,
VK_LOGIC_OP_MAX_ENUM,
}]])
mod.VkAttachmentLoadOp = ffi.typeof([[enum {
VK_ATTACHMENT_LOAD_OP_LOAD,
VK_ATTACHMENT_LOAD_OP_CLEAR,
VK_ATTACHMENT_LOAD_OP_DONT_CARE,
VK_ATTACHMENT_LOAD_OP_NONE,
VK_ATTACHMENT_LOAD_OP_NONE_EXT,
VK_ATTACHMENT_LOAD_OP_NONE_KHR,
VK_ATTACHMENT_LOAD_OP_MAX_ENUM,
}]])
mod.VkAttachmentStoreOp = ffi.typeof([[enum {
VK_ATTACHMENT_STORE_OP_STORE,
VK_ATTACHMENT_STORE_OP_DONT_CARE,
VK_ATTACHMENT_STORE_OP_NONE,
VK_ATTACHMENT_STORE_OP_NONE_KHR,
VK_ATTACHMENT_STORE_OP_NONE_QCOM,
VK_ATTACHMENT_STORE_OP_NONE_EXT,
VK_ATTACHMENT_STORE_OP_MAX_ENUM,
}]])
mod.VkSubpassContents = ffi.typeof([[enum {
VK_SUBPASS_CONTENTS_INLINE,
VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS,
VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR,
VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT,
VK_SUBPASS_CONTENTS_MAX_ENUM,
}]])
mod.VkAccessFlagBits = ffi.typeof([[enum {
VK_ACCESS_INDIRECT_COMMAND_READ_BIT,
VK_ACCESS_INDEX_READ_BIT,
VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,
VK_ACCESS_UNIFORM_READ_BIT,
VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
VK_ACCESS_SHADER_READ_BIT,
VK_ACCESS_SHADER_WRITE_BIT,
VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,
VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
VK_ACCESS_TRANSFER_READ_BIT,
VK_ACCESS_TRANSFER_WRITE_BIT,
VK_ACCESS_HOST_READ_BIT,
VK_ACCESS_HOST_WRITE_BIT,
VK_ACCESS_MEMORY_READ_BIT,
VK_ACCESS_MEMORY_WRITE_BIT,
VK_ACCESS_NONE,
VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,
VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,
VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,
VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT,
VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,
VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,
VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT,
VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT,
VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV,
VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV,
VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV,
VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV,
VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV,
VK_ACCESS_NONE_KHR,
VK_ACCESS_FLAG_BITS_MAX_ENUM,
}]])
mod.VkAccessFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkImageAspectFlagBits = ffi.typeof([[enum {
VK_IMAGE_ASPECT_COLOR_BIT,
VK_IMAGE_ASPECT_DEPTH_BIT,
VK_IMAGE_ASPECT_STENCIL_BIT,
VK_IMAGE_ASPECT_METADATA_BIT,
VK_IMAGE_ASPECT_PLANE_0_BIT,
VK_IMAGE_ASPECT_PLANE_1_BIT,
VK_IMAGE_ASPECT_PLANE_2_BIT,
VK_IMAGE_ASPECT_NONE,
VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT,
VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT,
VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT,
VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT,
VK_IMAGE_ASPECT_PLANE_0_BIT_KHR,
VK_IMAGE_ASPECT_PLANE_1_BIT_KHR,
VK_IMAGE_ASPECT_PLANE_2_BIT_KHR,
VK_IMAGE_ASPECT_NONE_KHR,
VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM,
}]])
mod.VkImageAspectFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkFormatFeatureFlagBits = ffi.typeof([[enum {
VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,
VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT,
VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT,
VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT,
VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT,
VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,
VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT,
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,
VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT,
VK_FORMAT_FEATURE_BLIT_SRC_BIT,
VK_FORMAT_FEATURE_BLIT_DST_BIT,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT,
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
VK_FORMAT_FEATURE_DISJOINT_BIT,
VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR,
VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR,
VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT,
VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR,
VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR,
VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT,
VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR,
VK_FORMAT_FEATURE_DISJOINT_BIT_KHR,
VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR,
VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkFormatFeatureFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkImageCreateFlagBits = ffi.typeof([[enum {
VK_IMAGE_CREATE_SPARSE_BINDING_BIT,
VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT,
VK_IMAGE_CREATE_SPARSE_ALIASED_BIT,
VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT,
VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,
VK_IMAGE_CREATE_ALIAS_BIT,
VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
VK_IMAGE_CREATE_PROTECTED_BIT,
VK_IMAGE_CREATE_DISJOINT_BIT,
VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV,
VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT,
VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,
VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,
VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT,
VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT,
VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR,
VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT,
VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,
VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR,
VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR,
VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR,
VK_IMAGE_CREATE_DISJOINT_BIT_KHR,
VK_IMAGE_CREATE_ALIAS_BIT_KHR,
VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM,
VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkImageCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkSampleCountFlagBits = ffi.typeof([[enum {
VK_SAMPLE_COUNT_1_BIT,
VK_SAMPLE_COUNT_2_BIT,
VK_SAMPLE_COUNT_4_BIT,
VK_SAMPLE_COUNT_8_BIT,
VK_SAMPLE_COUNT_16_BIT,
VK_SAMPLE_COUNT_32_BIT,
VK_SAMPLE_COUNT_64_BIT,
VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM,
}]])
mod.VkSampleCountFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkImageUsageFlagBits = ffi.typeof([[enum {
VK_IMAGE_USAGE_TRANSFER_SRC_BIT,
VK_IMAGE_USAGE_TRANSFER_DST_BIT,
VK_IMAGE_USAGE_SAMPLED_BIT,
VK_IMAGE_USAGE_STORAGE_BIT,
VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,
VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,
VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,
VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,
VK_IMAGE_USAGE_HOST_TRANSFER_BIT,
VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR,
VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR,
VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR,
VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,
VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR,
VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,
VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR,
VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,
VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI,
VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM,
VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM,
VK_IMAGE_USAGE_TENSOR_ALIASING_BIT_ARM,
VK_IMAGE_USAGE_TILE_MEMORY_BIT_QCOM,
VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR,
VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR,
VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV,
VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT,
VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkImageUsageFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkInstanceCreateFlagBits = ffi.typeof([[enum {
VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR,
VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkInstanceCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkMemoryHeapFlagBits = ffi.typeof([[enum {
VK_MEMORY_HEAP_DEVICE_LOCAL_BIT,
VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
VK_MEMORY_HEAP_TILE_MEMORY_BIT_QCOM,
VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR,
VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM,
}]])
mod.VkMemoryHeapFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkMemoryPropertyFlagBits = ffi.typeof([[enum {
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
VK_MEMORY_PROPERTY_HOST_CACHED_BIT,
VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT,
VK_MEMORY_PROPERTY_PROTECTED_BIT,
VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD,
VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD,
VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV,
VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM,
}]])
mod.VkMemoryPropertyFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkQueueFlagBits = ffi.typeof([[enum {
VK_QUEUE_GRAPHICS_BIT,
VK_QUEUE_COMPUTE_BIT,
VK_QUEUE_TRANSFER_BIT,
VK_QUEUE_SPARSE_BINDING_BIT,
VK_QUEUE_PROTECTED_BIT,
VK_QUEUE_VIDEO_DECODE_BIT_KHR,
VK_QUEUE_VIDEO_ENCODE_BIT_KHR,
VK_QUEUE_OPTICAL_FLOW_BIT_NV,
VK_QUEUE_DATA_GRAPH_BIT_ARM,
VK_QUEUE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkQueueFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkDeviceCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkDeviceQueueCreateFlagBits = ffi.typeof([[enum {
VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT,
VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkDeviceQueueCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPipelineStageFlagBits = ffi.typeof([[enum {
VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,
VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,
VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,
VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,
VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,
VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,
VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,
VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,
VK_PIPELINE_STAGE_TRANSFER_BIT,
VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,
VK_PIPELINE_STAGE_HOST_BIT,
VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,
VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,
VK_PIPELINE_STAGE_NONE,
VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT,
VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT,
VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT,
VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT,
VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT,
VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT,
VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV,
VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV,
VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV,
VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV,
VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV,
VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV,
VK_PIPELINE_STAGE_NONE_KHR,
VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkPipelineStageFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkMemoryMapFlagBits = ffi.typeof([[enum {
VK_MEMORY_MAP_PLACED_BIT_EXT,
VK_MEMORY_MAP_FLAG_BITS_MAX_ENUM,
}]])
mod.VkMemoryMapFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkSparseMemoryBindFlagBits = ffi.typeof([[enum {
VK_SPARSE_MEMORY_BIND_METADATA_BIT,
VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM,
}]])
mod.VkSparseMemoryBindFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkSparseImageFormatFlagBits = ffi.typeof([[enum {
VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT,
VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT,
VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT,
VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM,
}]])
mod.VkSparseImageFormatFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkFenceCreateFlagBits = ffi.typeof([[enum {
VK_FENCE_CREATE_SIGNALED_BIT,
VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkFenceCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkSemaphoreCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkQueryPoolCreateFlagBits = ffi.typeof([[enum {
VK_QUERY_POOL_CREATE_RESET_BIT_KHR,
VK_QUERY_POOL_CREATE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkQueryPoolCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkQueryPipelineStatisticFlagBits = ffi.typeof([[enum {
VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT,
VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT,
VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT,
VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT,
VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT,
VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT,
VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT,
VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT,
VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT,
VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT,
VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT,
VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT,
VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT,
VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI,
VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM,
}]])
mod.VkQueryPipelineStatisticFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkQueryResultFlagBits = ffi.typeof([[enum {
VK_QUERY_RESULT_64_BIT,
VK_QUERY_RESULT_WAIT_BIT,
VK_QUERY_RESULT_WITH_AVAILABILITY_BIT,
VK_QUERY_RESULT_PARTIAL_BIT,
VK_QUERY_RESULT_WITH_STATUS_BIT_KHR,
VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM,
}]])
mod.VkQueryResultFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkBufferCreateFlagBits = ffi.typeof([[enum {
VK_BUFFER_CREATE_SPARSE_BINDING_BIT,
VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT,
VK_BUFFER_CREATE_SPARSE_ALIASED_BIT,
VK_BUFFER_CREATE_PROTECTED_BIT,
VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,
VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR,
VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT,
VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,
VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkBufferCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkBufferUsageFlagBits = ffi.typeof([[enum {
VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
VK_BUFFER_USAGE_TRANSFER_DST_BIT,
VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,
VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,
VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
VK_BUFFER_USAGE_INDEX_BUFFER_BIT,
VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,
VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,
VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR,
VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR,
VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,
VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,
VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,
VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR,
VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR,
VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,
VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR,
VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,
VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT,
VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT,
VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT,
VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT,
VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT,
VK_BUFFER_USAGE_TILE_MEMORY_BIT_QCOM,
VK_BUFFER_USAGE_RAY_TRACING_BIT_NV,
VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT,
VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR,
VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkBufferUsageFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkImageViewCreateFlagBits = ffi.typeof([[enum {
VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT,
VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,
VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT,
VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkImageViewCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkDependencyFlagBits = ffi.typeof([[enum {
VK_DEPENDENCY_BY_REGION_BIT,
VK_DEPENDENCY_DEVICE_GROUP_BIT,
VK_DEPENDENCY_VIEW_LOCAL_BIT,
VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT,
VK_DEPENDENCY_QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES_BIT_KHR,
VK_DEPENDENCY_ASYMMETRIC_EVENT_BIT_KHR,
VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR,
VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR,
VK_DEPENDENCY_FLAG_BITS_MAX_ENUM,
}]])
mod.VkDependencyFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkCommandPoolCreateFlagBits = ffi.typeof([[enum {
VK_COMMAND_POOL_CREATE_TRANSIENT_BIT,
VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,
VK_COMMAND_POOL_CREATE_PROTECTED_BIT,
VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkCommandPoolCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkCommandPoolResetFlagBits = ffi.typeof([[enum {
VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT,
VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM,
}]])
mod.VkCommandPoolResetFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkCommandBufferUsageFlagBits = ffi.typeof([[enum {
VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,
VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT,
VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT,
VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkCommandBufferUsageFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkQueryControlFlagBits = ffi.typeof([[enum {
VK_QUERY_CONTROL_PRECISE_BIT,
VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM,
}]])
mod.VkQueryControlFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkCommandBufferResetFlagBits = ffi.typeof([[enum {
VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT,
VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM,
}]])
mod.VkCommandBufferResetFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkEventCreateFlagBits = ffi.typeof([[enum {
VK_EVENT_CREATE_DEVICE_ONLY_BIT,
VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR,
VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkEventCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkBufferViewCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkShaderModuleCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPipelineCacheCreateFlagBits = ffi.typeof([[enum {
VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,
VK_PIPELINE_CACHE_CREATE_INTERNALLY_SYNCHRONIZED_MERGE_BIT_KHR,
VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT,
VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkPipelineCacheCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPipelineCreateFlagBits = ffi.typeof([[enum {
VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT,
VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT,
VK_PIPELINE_CREATE_DERIVATIVE_BIT,
VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,
VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,
VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT,
VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT,
VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR,
VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR,
VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR,
VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR,
VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR,
VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR,
VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR,
VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV,
VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR,
VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,
VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV,
VK_PIPELINE_CREATE_LIBRARY_BIT_KHR,
VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT,
VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT,
VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT,
VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV,
VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,
VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,
VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT,
VK_PIPELINE_CREATE_DISPATCH_BASE,
VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR,
VK_PIPELINE_CREATE_DISPATCH_BASE_BIT_KHR,
VK_PIPELINE_CREATE_DISPATCH_BASE_KHR,
VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT,
VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT,
VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT,
VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT,
VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkPipelineCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPipelineShaderStageCreateFlagBits = ffi.typeof([[enum {
VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT,
VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,
VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT,
VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT,
VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkPipelineShaderStageCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkShaderStageFlagBits = ffi.typeof([[enum {
VK_SHADER_STAGE_VERTEX_BIT,
VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,
VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,
VK_SHADER_STAGE_GEOMETRY_BIT,
VK_SHADER_STAGE_FRAGMENT_BIT,
VK_SHADER_STAGE_COMPUTE_BIT,
VK_SHADER_STAGE_ALL_GRAPHICS,
VK_SHADER_STAGE_ALL,
VK_SHADER_STAGE_RAYGEN_BIT_KHR,
VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
VK_SHADER_STAGE_MISS_BIT_KHR,
VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
VK_SHADER_STAGE_CALLABLE_BIT_KHR,
VK_SHADER_STAGE_TASK_BIT_EXT,
VK_SHADER_STAGE_MESH_BIT_EXT,
VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI,
VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI,
VK_SHADER_STAGE_RAYGEN_BIT_NV,
VK_SHADER_STAGE_ANY_HIT_BIT_NV,
VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV,
VK_SHADER_STAGE_MISS_BIT_NV,
VK_SHADER_STAGE_INTERSECTION_BIT_NV,
VK_SHADER_STAGE_CALLABLE_BIT_NV,
VK_SHADER_STAGE_TASK_BIT_NV,
VK_SHADER_STAGE_MESH_BIT_NV,
VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkPipelineLayoutCreateFlagBits = ffi.typeof([[enum {
VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT,
VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkPipelineLayoutCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkShaderStageFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkSamplerCreateFlagBits = ffi.typeof([[enum {
VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT,
VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT,
VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,
VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT,
VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM,
VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkSamplerCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkDescriptorPoolCreateFlagBits = ffi.typeof([[enum {
VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,
VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT,
VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV,
VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV,
VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT,
VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE,
VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkDescriptorPoolCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkDescriptorPoolResetFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkDescriptorSetLayoutCreateFlagBits = ffi.typeof([[enum {
VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT,
VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT,
VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT,
VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV,
VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT,
VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV,
VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR,
VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT,
VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE,
VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkDescriptorSetLayoutCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkColorComponentFlagBits = ffi.typeof([[enum {
VK_COLOR_COMPONENT_R_BIT,
VK_COLOR_COMPONENT_G_BIT,
VK_COLOR_COMPONENT_B_BIT,
VK_COLOR_COMPONENT_A_BIT,
VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM,
}]])
mod.VkColorComponentFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkCullModeFlagBits = ffi.typeof([[enum {
VK_CULL_MODE_NONE,
VK_CULL_MODE_FRONT_BIT,
VK_CULL_MODE_BACK_BIT,
VK_CULL_MODE_FRONT_AND_BACK,
VK_CULL_MODE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkCullModeFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPipelineVertexInputStateCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPipelineInputAssemblyStateCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPipelineTessellationStateCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPipelineViewportStateCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPipelineRasterizationStateCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPipelineMultisampleStateCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPipelineDepthStencilStateCreateFlagBits = ffi.typeof([[enum {
VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,
VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,
VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM,
VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM,
VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkPipelineDepthStencilStateCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPipelineColorBlendStateCreateFlagBits = ffi.typeof([[enum {
VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT,
VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM,
VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkPipelineColorBlendStateCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPipelineDynamicStateCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkAttachmentDescriptionFlagBits = ffi.typeof([[enum {
VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT,
VK_ATTACHMENT_DESCRIPTION_RESOLVE_SKIP_TRANSFER_FUNCTION_BIT_KHR,
VK_ATTACHMENT_DESCRIPTION_RESOLVE_ENABLE_TRANSFER_FUNCTION_BIT_KHR,
VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM,
}]])
mod.VkAttachmentDescriptionFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkFramebufferCreateFlagBits = ffi.typeof([[enum {
VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR,
VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkFramebufferCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkRenderPassCreateFlagBits = ffi.typeof([[enum {
VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM,
VK_RENDER_PASS_CREATE_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE,
VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkRenderPassCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkSubpassDescriptionFlagBits = ffi.typeof([[enum {
VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX,
VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX,
VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM,
VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM,
VK_SUBPASS_DESCRIPTION_TILE_SHADING_APRON_BIT_QCOM,
VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT,
VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,
VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,
VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT,
VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM,
VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM,
VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM,
VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM,
}]])
mod.VkSubpassDescriptionFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkStencilFaceFlagBits = ffi.typeof([[enum {
VK_STENCIL_FACE_FRONT_BIT,
VK_STENCIL_FACE_BACK_BIT,
VK_STENCIL_FACE_FRONT_AND_BACK,
VK_STENCIL_FRONT_AND_BACK,
VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkStencilFaceFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkExtent2D = ffi.typeof([[struct {
uint32_t width;
uint32_t height;
}]])
mod.VkExtent3D = ffi.typeof([[struct {
uint32_t width;
uint32_t height;
uint32_t depth;
}]])
mod.VkOffset2D = ffi.typeof([[struct {
int32_t x;
int32_t y;
}]])
mod.VkOffset3D = ffi.typeof([[struct {
int32_t x;
int32_t y;
int32_t z;
}]])
mod.VkRect2D = ffi.typeof([[struct {
$ offset;
$ extent;
}]], mod.VkOffset2D, mod.VkExtent2D)
mod.VkBaseInStructure = ffi.typeof([[struct {
$ sType;
const void* pNext;
}]], mod.VkStructureType)
mod.VkBaseOutStructure = ffi.typeof([[struct {
$ sType;
void* pNext;
}]], mod.VkStructureType)
mod.VkBufferMemoryBarrier = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ srcAccessMask;
$ dstAccessMask;
uint32_t srcQueueFamilyIndex;
uint32_t dstQueueFamilyIndex;
$ buffer;
$ offset;
$ size;
}]], mod.VkStructureType, mod.VkAccessFlags, mod.VkAccessFlags, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize)
mod.VkImageSubresourceRange = ffi.typeof([[struct {
$ aspectMask;
uint32_t baseMipLevel;
uint32_t levelCount;
uint32_t baseArrayLayer;
uint32_t layerCount;
}]], mod.VkImageAspectFlags)
mod.VkImageMemoryBarrier = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ srcAccessMask;
$ dstAccessMask;
$ oldLayout;
$ newLayout;
uint32_t srcQueueFamilyIndex;
uint32_t dstQueueFamilyIndex;
$ image;
$ subresourceRange;
}]], mod.VkStructureType, mod.VkAccessFlags, mod.VkAccessFlags, mod.VkImageLayout, mod.VkImageLayout, mod.VkImage, mod.VkImageSubresourceRange)
mod.VkMemoryBarrier = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ srcAccessMask;
$ dstAccessMask;
}]], mod.VkStructureType, mod.VkAccessFlags, mod.VkAccessFlags)
mod.PFN_vkAllocationFunction = ffi.typeof([[void*(*)(void*, size_t , size_t , $ )]], mod.VkSystemAllocationScope)
mod.PFN_vkFreeFunction = ffi.typeof([[void (*)(void*, void*)]])
mod.PFN_vkInternalAllocationNotification = ffi.typeof([[void (*)(void*, size_t , $ , $ )]], mod.VkInternalAllocationType, mod.VkSystemAllocationScope)
mod.PFN_vkInternalFreeNotification = ffi.typeof([[void (*)(void*, size_t , $ , $ )]], mod.VkInternalAllocationType, mod.VkSystemAllocationScope)
mod.PFN_vkReallocationFunction = ffi.typeof([[void*(*)(void*, void*, size_t , size_t , $ )]], mod.VkSystemAllocationScope)
mod.PFN_vkVoidFunction = ffi.typeof([[void (*)(void )]])
mod.VkAllocationCallbacks = ffi.typeof([[struct {
void* pUserData;
$ pfnAllocation;
$ pfnReallocation;
$ pfnFree;
$ pfnInternalAllocation;
$ pfnInternalFree;
}]], mod.PFN_vkAllocationFunction, mod.PFN_vkReallocationFunction, mod.PFN_vkFreeFunction, mod.PFN_vkInternalAllocationNotification, mod.PFN_vkInternalFreeNotification)
mod.VkApplicationInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
const char* pApplicationName;
uint32_t applicationVersion;
const char* pEngineName;
uint32_t engineVersion;
uint32_t apiVersion;
}]], mod.VkStructureType)
mod.VkFormatProperties = ffi.typeof([[struct {
$ linearTilingFeatures;
$ optimalTilingFeatures;
$ bufferFeatures;
}]], mod.VkFormatFeatureFlags, mod.VkFormatFeatureFlags, mod.VkFormatFeatureFlags)
mod.VkImageFormatProperties = ffi.typeof([[struct {
$ maxExtent;
uint32_t maxMipLevels;
uint32_t maxArrayLayers;
$ sampleCounts;
$ maxResourceSize;
}]], mod.VkExtent3D, mod.VkSampleCountFlags, mod.VkDeviceSize)
mod.VkInstanceCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
const $* pApplicationInfo;
uint32_t enabledLayerCount;
const char** const ppEnabledLayerNames;
uint32_t enabledExtensionCount;
const char** const ppEnabledExtensionNames;
}]], mod.VkStructureType, mod.VkInstanceCreateFlags, mod.VkApplicationInfo)
mod.VkMemoryHeap = ffi.typeof([[struct {
$ size;
$ flags;
}]], mod.VkDeviceSize, mod.VkMemoryHeapFlags)
mod.VkMemoryType = ffi.typeof([[struct {
$ propertyFlags;
uint32_t heapIndex;
}]], mod.VkMemoryPropertyFlags)
mod.VkPhysicalDeviceFeatures = ffi.typeof([[struct {
$ robustBufferAccess;
$ fullDrawIndexUint32;
$ imageCubeArray;
$ independentBlend;
$ geometryShader;
$ tessellationShader;
$ sampleRateShading;
$ dualSrcBlend;
$ logicOp;
$ multiDrawIndirect;
$ drawIndirectFirstInstance;
$ depthClamp;
$ depthBiasClamp;
$ fillModeNonSolid;
$ depthBounds;
$ wideLines;
$ largePoints;
$ alphaToOne;
$ multiViewport;
$ samplerAnisotropy;
$ textureCompressionETC2;
$ textureCompressionASTC_LDR;
$ textureCompressionBC;
$ occlusionQueryPrecise;
$ pipelineStatisticsQuery;
$ vertexPipelineStoresAndAtomics;
$ fragmentStoresAndAtomics;
$ shaderTessellationAndGeometryPointSize;
$ shaderImageGatherExtended;
$ shaderStorageImageExtendedFormats;
$ shaderStorageImageMultisample;
$ shaderStorageImageReadWithoutFormat;
$ shaderStorageImageWriteWithoutFormat;
$ shaderUniformBufferArrayDynamicIndexing;
$ shaderSampledImageArrayDynamicIndexing;
$ shaderStorageBufferArrayDynamicIndexing;
$ shaderStorageImageArrayDynamicIndexing;
$ shaderClipDistance;
$ shaderCullDistance;
$ shaderFloat64;
$ shaderInt64;
$ shaderInt16;
$ shaderResourceResidency;
$ shaderResourceMinLod;
$ sparseBinding;
$ sparseResidencyBuffer;
$ sparseResidencyImage2D;
$ sparseResidencyImage3D;
$ sparseResidency2Samples;
$ sparseResidency4Samples;
$ sparseResidency8Samples;
$ sparseResidency16Samples;
$ sparseResidencyAliased;
$ variableMultisampleRate;
$ inheritedQueries;
}]], mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceLimits = ffi.typeof([[struct {
uint32_t maxImageDimension1D;
uint32_t maxImageDimension2D;
uint32_t maxImageDimension3D;
uint32_t maxImageDimensionCube;
uint32_t maxImageArrayLayers;
uint32_t maxTexelBufferElements;
uint32_t maxUniformBufferRange;
uint32_t maxStorageBufferRange;
uint32_t maxPushConstantsSize;
uint32_t maxMemoryAllocationCount;
uint32_t maxSamplerAllocationCount;
$ bufferImageGranularity;
$ sparseAddressSpaceSize;
uint32_t maxBoundDescriptorSets;
uint32_t maxPerStageDescriptorSamplers;
uint32_t maxPerStageDescriptorUniformBuffers;
uint32_t maxPerStageDescriptorStorageBuffers;
uint32_t maxPerStageDescriptorSampledImages;
uint32_t maxPerStageDescriptorStorageImages;
uint32_t maxPerStageDescriptorInputAttachments;
uint32_t maxPerStageResources;
uint32_t maxDescriptorSetSamplers;
uint32_t maxDescriptorSetUniformBuffers;
uint32_t maxDescriptorSetUniformBuffersDynamic;
uint32_t maxDescriptorSetStorageBuffers;
uint32_t maxDescriptorSetStorageBuffersDynamic;
uint32_t maxDescriptorSetSampledImages;
uint32_t maxDescriptorSetStorageImages;
uint32_t maxDescriptorSetInputAttachments;
uint32_t maxVertexInputAttributes;
uint32_t maxVertexInputBindings;
uint32_t maxVertexInputAttributeOffset;
uint32_t maxVertexInputBindingStride;
uint32_t maxVertexOutputComponents;
uint32_t maxTessellationGenerationLevel;
uint32_t maxTessellationPatchSize;
uint32_t maxTessellationControlPerVertexInputComponents;
uint32_t maxTessellationControlPerVertexOutputComponents;
uint32_t maxTessellationControlPerPatchOutputComponents;
uint32_t maxTessellationControlTotalOutputComponents;
uint32_t maxTessellationEvaluationInputComponents;
uint32_t maxTessellationEvaluationOutputComponents;
uint32_t maxGeometryShaderInvocations;
uint32_t maxGeometryInputComponents;
uint32_t maxGeometryOutputComponents;
uint32_t maxGeometryOutputVertices;
uint32_t maxGeometryTotalOutputComponents;
uint32_t maxFragmentInputComponents;
uint32_t maxFragmentOutputAttachments;
uint32_t maxFragmentDualSrcAttachments;
uint32_t maxFragmentCombinedOutputResources;
uint32_t maxComputeSharedMemorySize;
uint32_t maxComputeWorkGroupCount[3];
uint32_t maxComputeWorkGroupInvocations;
uint32_t maxComputeWorkGroupSize[3];
uint32_t subPixelPrecisionBits;
uint32_t subTexelPrecisionBits;
uint32_t mipmapPrecisionBits;
uint32_t maxDrawIndexedIndexValue;
uint32_t maxDrawIndirectCount;
float maxSamplerLodBias;
float maxSamplerAnisotropy;
uint32_t maxViewports;
uint32_t maxViewportDimensions[2];
float viewportBoundsRange[2];
uint32_t viewportSubPixelBits;
size_t minMemoryMapAlignment;
$ minTexelBufferOffsetAlignment;
$ minUniformBufferOffsetAlignment;
$ minStorageBufferOffsetAlignment;
int32_t minTexelOffset;
uint32_t maxTexelOffset;
int32_t minTexelGatherOffset;
uint32_t maxTexelGatherOffset;
float minInterpolationOffset;
float maxInterpolationOffset;
uint32_t subPixelInterpolationOffsetBits;
uint32_t maxFramebufferWidth;
uint32_t maxFramebufferHeight;
uint32_t maxFramebufferLayers;
$ framebufferColorSampleCounts;
$ framebufferDepthSampleCounts;
$ framebufferStencilSampleCounts;
$ framebufferNoAttachmentsSampleCounts;
uint32_t maxColorAttachments;
$ sampledImageColorSampleCounts;
$ sampledImageIntegerSampleCounts;
$ sampledImageDepthSampleCounts;
$ sampledImageStencilSampleCounts;
$ storageImageSampleCounts;
uint32_t maxSampleMaskWords;
$ timestampComputeAndGraphics;
float timestampPeriod;
uint32_t maxClipDistances;
uint32_t maxCullDistances;
uint32_t maxCombinedClipAndCullDistances;
uint32_t discreteQueuePriorities;
float pointSizeRange[2];
float lineWidthRange[2];
float pointSizeGranularity;
float lineWidthGranularity;
$ strictLines;
$ standardSampleLocations;
$ optimalBufferCopyOffsetAlignment;
$ optimalBufferCopyRowPitchAlignment;
$ nonCoherentAtomSize;
}]], mod.VkDeviceSize, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkSampleCountFlags, mod.VkSampleCountFlags, mod.VkSampleCountFlags, mod.VkSampleCountFlags, mod.VkSampleCountFlags, mod.VkSampleCountFlags, mod.VkSampleCountFlags, mod.VkSampleCountFlags, mod.VkSampleCountFlags, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkDeviceSize)
mod.VkPhysicalDeviceMemoryProperties = ffi.typeof([[struct {
uint32_t memoryTypeCount;
$ memoryTypes[32U];
uint32_t memoryHeapCount;
$ memoryHeaps[16U];
}]], mod.VkMemoryType, mod.VkMemoryHeap)
mod.VkPhysicalDeviceSparseProperties = ffi.typeof([[struct {
$ residencyStandard2DBlockShape;
$ residencyStandard2DMultisampleBlockShape;
$ residencyStandard3DBlockShape;
$ residencyAlignedMipSize;
$ residencyNonResidentStrict;
}]], mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceProperties = ffi.typeof([[struct {
uint32_t apiVersion;
uint32_t driverVersion;
uint32_t vendorID;
uint32_t deviceID;
$ deviceType;
char deviceName[256U];
uint8_t pipelineCacheUUID[16U];
$ limits;
$ sparseProperties;
}]], mod.VkPhysicalDeviceType, mod.VkPhysicalDeviceLimits, mod.VkPhysicalDeviceSparseProperties)
mod.VkQueueFamilyProperties = ffi.typeof([[struct {
$ queueFlags;
uint32_t queueCount;
uint32_t timestampValidBits;
$ minImageTransferGranularity;
}]], mod.VkQueueFlags, mod.VkExtent3D)
mod.VkDeviceQueueCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
uint32_t queueFamilyIndex;
uint32_t queueCount;
const float* pQueuePriorities;
}]], mod.VkStructureType, mod.VkDeviceQueueCreateFlags)
mod.VkDeviceCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
uint32_t queueCreateInfoCount;
const $* pQueueCreateInfos;
uint32_t enabledLayerCount;
const char** const ppEnabledLayerNames;
uint32_t enabledExtensionCount;
const char** const ppEnabledExtensionNames;
const $* pEnabledFeatures;
}]], mod.VkStructureType, mod.VkDeviceCreateFlags, mod.VkDeviceQueueCreateInfo, mod.VkPhysicalDeviceFeatures)
mod.VkExtensionProperties = ffi.typeof([[struct {
char extensionName[256U];
uint32_t specVersion;
}]])
mod.VkLayerProperties = ffi.typeof([[struct {
char layerName[256U];
uint32_t specVersion;
uint32_t implementationVersion;
char description[256U];
}]])
mod.VkSubmitInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t waitSemaphoreCount;
const $* pWaitSemaphores;
const $* pWaitDstStageMask;
uint32_t commandBufferCount;
const $* pCommandBuffers;
uint32_t signalSemaphoreCount;
const $* pSignalSemaphores;
}]], mod.VkStructureType, mod.VkSemaphore, mod.VkPipelineStageFlags, mod.VkCommandBuffer, mod.VkSemaphore)
mod.VkMappedMemoryRange = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ memory;
$ offset;
$ size;
}]], mod.VkStructureType, mod.VkDeviceMemory, mod.VkDeviceSize, mod.VkDeviceSize)
mod.VkMemoryAllocateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ allocationSize;
uint32_t memoryTypeIndex;
}]], mod.VkStructureType, mod.VkDeviceSize)
mod.VkMemoryRequirements = ffi.typeof([[struct {
$ size;
$ alignment;
uint32_t memoryTypeBits;
}]], mod.VkDeviceSize, mod.VkDeviceSize)
mod.VkSparseMemoryBind = ffi.typeof([[struct {
$ resourceOffset;
$ size;
$ memory;
$ memoryOffset;
$ flags;
}]], mod.VkDeviceSize, mod.VkDeviceSize, mod.VkDeviceMemory, mod.VkDeviceSize, mod.VkSparseMemoryBindFlags)
mod.VkSparseBufferMemoryBindInfo = ffi.typeof([[struct {
$ buffer;
uint32_t bindCount;
const $* pBinds;
}]], mod.VkBuffer, mod.VkSparseMemoryBind)
mod.VkSparseImageOpaqueMemoryBindInfo = ffi.typeof([[struct {
$ image;
uint32_t bindCount;
const $* pBinds;
}]], mod.VkImage, mod.VkSparseMemoryBind)
mod.VkImageSubresource = ffi.typeof([[struct {
$ aspectMask;
uint32_t mipLevel;
uint32_t arrayLayer;
}]], mod.VkImageAspectFlags)
mod.VkSparseImageMemoryBind = ffi.typeof([[struct {
$ subresource;
$ offset;
$ extent;
$ memory;
$ memoryOffset;
$ flags;
}]], mod.VkImageSubresource, mod.VkOffset3D, mod.VkExtent3D, mod.VkDeviceMemory, mod.VkDeviceSize, mod.VkSparseMemoryBindFlags)
mod.VkSparseImageMemoryBindInfo = ffi.typeof([[struct {
$ image;
uint32_t bindCount;
const $* pBinds;
}]], mod.VkImage, mod.VkSparseImageMemoryBind)
mod.VkBindSparseInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t waitSemaphoreCount;
const $* pWaitSemaphores;
uint32_t bufferBindCount;
const $* pBufferBinds;
uint32_t imageOpaqueBindCount;
const $* pImageOpaqueBinds;
uint32_t imageBindCount;
const $* pImageBinds;
uint32_t signalSemaphoreCount;
const $* pSignalSemaphores;
}]], mod.VkStructureType, mod.VkSemaphore, mod.VkSparseBufferMemoryBindInfo, mod.VkSparseImageOpaqueMemoryBindInfo, mod.VkSparseImageMemoryBindInfo, mod.VkSemaphore)
mod.VkSparseImageFormatProperties = ffi.typeof([[struct {
$ aspectMask;
$ imageGranularity;
$ flags;
}]], mod.VkImageAspectFlags, mod.VkExtent3D, mod.VkSparseImageFormatFlags)
mod.VkSparseImageMemoryRequirements = ffi.typeof([[struct {
$ formatProperties;
uint32_t imageMipTailFirstLod;
$ imageMipTailSize;
$ imageMipTailOffset;
$ imageMipTailStride;
}]], mod.VkSparseImageFormatProperties, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkDeviceSize)
mod.VkFenceCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
}]], mod.VkStructureType, mod.VkFenceCreateFlags)
mod.VkSemaphoreCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
}]], mod.VkStructureType, mod.VkSemaphoreCreateFlags)
mod.VkQueryPoolCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ queryType;
uint32_t queryCount;
$ pipelineStatistics;
}]], mod.VkStructureType, mod.VkQueryPoolCreateFlags, mod.VkQueryType, mod.VkQueryPipelineStatisticFlags)
mod.VkBufferCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ size;
$ usage;
$ sharingMode;
uint32_t queueFamilyIndexCount;
const uint32_t* pQueueFamilyIndices;
}]], mod.VkStructureType, mod.VkBufferCreateFlags, mod.VkDeviceSize, mod.VkBufferUsageFlags, mod.VkSharingMode)
mod.VkImageCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ imageType;
$ format;
$ extent;
uint32_t mipLevels;
uint32_t arrayLayers;
$ samples;
$ tiling;
$ usage;
$ sharingMode;
uint32_t queueFamilyIndexCount;
const uint32_t* pQueueFamilyIndices;
$ initialLayout;
}]], mod.VkStructureType, mod.VkImageCreateFlags, mod.VkImageType, mod.VkFormat, mod.VkExtent3D, mod.VkSampleCountFlagBits, mod.VkImageTiling, mod.VkImageUsageFlags, mod.VkSharingMode, mod.VkImageLayout)
mod.VkSubresourceLayout = ffi.typeof([[struct {
$ offset;
$ size;
$ rowPitch;
$ arrayPitch;
$ depthPitch;
}]], mod.VkDeviceSize, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkDeviceSize)
mod.VkComponentMapping = ffi.typeof([[struct {
$ r;
$ g;
$ b;
$ a;
}]], mod.VkComponentSwizzle, mod.VkComponentSwizzle, mod.VkComponentSwizzle, mod.VkComponentSwizzle)
mod.VkImageViewCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ image;
$ viewType;
$ format;
$ components;
$ subresourceRange;
}]], mod.VkStructureType, mod.VkImageViewCreateFlags, mod.VkImage, mod.VkImageViewType, mod.VkFormat, mod.VkComponentMapping, mod.VkImageSubresourceRange)
mod.VkCommandPoolCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
uint32_t queueFamilyIndex;
}]], mod.VkStructureType, mod.VkCommandPoolCreateFlags)
mod.VkCommandBufferAllocateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ commandPool;
$ level;
uint32_t commandBufferCount;
}]], mod.VkStructureType, mod.VkCommandPool, mod.VkCommandBufferLevel)
mod.VkCommandBufferInheritanceInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ renderPass;
uint32_t subpass;
$ framebuffer;
$ occlusionQueryEnable;
$ queryFlags;
$ pipelineStatistics;
}]], mod.VkStructureType, mod.VkRenderPass, mod.VkFramebuffer, mod.VkBool32, mod.VkQueryControlFlags, mod.VkQueryPipelineStatisticFlags)
mod.VkCommandBufferBeginInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
const $* pInheritanceInfo;
}]], mod.VkStructureType, mod.VkCommandBufferUsageFlags, mod.VkCommandBufferInheritanceInfo)
mod.VkBufferCopy = ffi.typeof([[struct {
$ srcOffset;
$ dstOffset;
$ size;
}]], mod.VkDeviceSize, mod.VkDeviceSize, mod.VkDeviceSize)
mod.VkImageSubresourceLayers = ffi.typeof([[struct {
$ aspectMask;
uint32_t mipLevel;
uint32_t baseArrayLayer;
uint32_t layerCount;
}]], mod.VkImageAspectFlags)
mod.VkBufferImageCopy = ffi.typeof([[struct {
$ bufferOffset;
uint32_t bufferRowLength;
uint32_t bufferImageHeight;
$ imageSubresource;
$ imageOffset;
$ imageExtent;
}]], mod.VkDeviceSize, mod.VkImageSubresourceLayers, mod.VkOffset3D, mod.VkExtent3D)
mod.VkImageCopy = ffi.typeof([[struct {
$ srcSubresource;
$ srcOffset;
$ dstSubresource;
$ dstOffset;
$ extent;
}]], mod.VkImageSubresourceLayers, mod.VkOffset3D, mod.VkImageSubresourceLayers, mod.VkOffset3D, mod.VkExtent3D)
mod.VkDispatchIndirectCommand = ffi.typeof([[struct {
uint32_t x;
uint32_t y;
uint32_t z;
}]])
mod.VkPipelineCacheHeaderVersionOne = ffi.typeof([[struct {
uint32_t headerSize;
$ headerVersion;
uint32_t vendorID;
uint32_t deviceID;
uint8_t pipelineCacheUUID[16U];
}]], mod.VkPipelineCacheHeaderVersion)
mod.VkEventCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
}]], mod.VkStructureType, mod.VkEventCreateFlags)
mod.VkBufferViewCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ buffer;
$ format;
$ offset;
$ range;
}]], mod.VkStructureType, mod.VkBufferViewCreateFlags, mod.VkBuffer, mod.VkFormat, mod.VkDeviceSize, mod.VkDeviceSize)
mod.VkShaderModuleCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
size_t codeSize;
const uint32_t* pCode;
}]], mod.VkStructureType, mod.VkShaderModuleCreateFlags)
mod.VkPipelineCacheCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
size_t initialDataSize;
const void* pInitialData;
}]], mod.VkStructureType, mod.VkPipelineCacheCreateFlags)
mod.VkSpecializationMapEntry = ffi.typeof([[struct {
uint32_t constantID;
uint32_t offset;
size_t size;
}]])
mod.VkSpecializationInfo = ffi.typeof([[struct {
uint32_t mapEntryCount;
const $* pMapEntries;
size_t dataSize;
const void* pData;
}]], mod.VkSpecializationMapEntry)
mod.VkPipelineShaderStageCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ stage;
$ module;
const char* pName;
const $* pSpecializationInfo;
}]], mod.VkStructureType, mod.VkPipelineShaderStageCreateFlags, mod.VkShaderStageFlagBits, mod.VkShaderModule, mod.VkSpecializationInfo)
mod.VkComputePipelineCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ stage;
$ layout;
$ basePipelineHandle;
int32_t basePipelineIndex;
}]], mod.VkStructureType, mod.VkPipelineCreateFlags, mod.VkPipelineShaderStageCreateInfo, mod.VkPipelineLayout, mod.VkPipeline)
mod.VkPushConstantRange = ffi.typeof([[struct {
$ stageFlags;
uint32_t offset;
uint32_t size;
}]], mod.VkShaderStageFlags)
mod.VkPipelineLayoutCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
uint32_t setLayoutCount;
const $* pSetLayouts;
uint32_t pushConstantRangeCount;
const $* pPushConstantRanges;
}]], mod.VkStructureType, mod.VkPipelineLayoutCreateFlags, mod.VkDescriptorSetLayout, mod.VkPushConstantRange)
mod.VkSamplerCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ magFilter;
$ minFilter;
$ mipmapMode;
$ addressModeU;
$ addressModeV;
$ addressModeW;
float mipLodBias;
$ anisotropyEnable;
float maxAnisotropy;
$ compareEnable;
$ compareOp;
float minLod;
float maxLod;
$ borderColor;
$ unnormalizedCoordinates;
}]], mod.VkStructureType, mod.VkSamplerCreateFlags, mod.VkFilter, mod.VkFilter, mod.VkSamplerMipmapMode, mod.VkSamplerAddressMode, mod.VkSamplerAddressMode, mod.VkSamplerAddressMode, mod.VkBool32, mod.VkBool32, mod.VkCompareOp, mod.VkBorderColor, mod.VkBool32)
mod.VkCopyDescriptorSet = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ srcSet;
uint32_t srcBinding;
uint32_t srcArrayElement;
$ dstSet;
uint32_t dstBinding;
uint32_t dstArrayElement;
uint32_t descriptorCount;
}]], mod.VkStructureType, mod.VkDescriptorSet, mod.VkDescriptorSet)
mod.VkDescriptorBufferInfo = ffi.typeof([[struct {
$ buffer;
$ offset;
$ range;
}]], mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize)
mod.VkDescriptorImageInfo = ffi.typeof([[struct {
$ sampler;
$ imageView;
$ imageLayout;
}]], mod.VkSampler, mod.VkImageView, mod.VkImageLayout)
mod.VkDescriptorPoolSize = ffi.typeof([[struct {
$ type;
uint32_t descriptorCount;
}]], mod.VkDescriptorType)
mod.VkDescriptorPoolCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
uint32_t maxSets;
uint32_t poolSizeCount;
const $* pPoolSizes;
}]], mod.VkStructureType, mod.VkDescriptorPoolCreateFlags, mod.VkDescriptorPoolSize)
mod.VkDescriptorSetAllocateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ descriptorPool;
uint32_t descriptorSetCount;
const $* pSetLayouts;
}]], mod.VkStructureType, mod.VkDescriptorPool, mod.VkDescriptorSetLayout)
mod.VkDescriptorSetLayoutBinding = ffi.typeof([[struct {
uint32_t binding;
$ descriptorType;
uint32_t descriptorCount;
$ stageFlags;
const $* pImmutableSamplers;
}]], mod.VkDescriptorType, mod.VkShaderStageFlags, mod.VkSampler)
mod.VkDescriptorSetLayoutCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
uint32_t bindingCount;
const $* pBindings;
}]], mod.VkStructureType, mod.VkDescriptorSetLayoutCreateFlags, mod.VkDescriptorSetLayoutBinding)
mod.VkWriteDescriptorSet = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ dstSet;
uint32_t dstBinding;
uint32_t dstArrayElement;
uint32_t descriptorCount;
$ descriptorType;
const $* pImageInfo;
const $* pBufferInfo;
const $* pTexelBufferView;
}]], mod.VkStructureType, mod.VkDescriptorSet, mod.VkDescriptorType, mod.VkDescriptorImageInfo, mod.VkDescriptorBufferInfo, mod.VkBufferView)
mod.VkClearColorValue = ffi.typeof([[union {
float float32[4];
int32_t int32[4];
uint32_t uint32[4];
}]])
mod.VkDrawIndexedIndirectCommand = ffi.typeof([[struct {
uint32_t indexCount;
uint32_t instanceCount;
uint32_t firstIndex;
int32_t vertexOffset;
uint32_t firstInstance;
}]])
mod.VkDrawIndirectCommand = ffi.typeof([[struct {
uint32_t vertexCount;
uint32_t instanceCount;
uint32_t firstVertex;
uint32_t firstInstance;
}]])
mod.VkVertexInputBindingDescription = ffi.typeof([[struct {
uint32_t binding;
uint32_t stride;
$ inputRate;
}]], mod.VkVertexInputRate)
mod.VkVertexInputAttributeDescription = ffi.typeof([[struct {
uint32_t location;
uint32_t binding;
$ format;
uint32_t offset;
}]], mod.VkFormat)
mod.VkPipelineVertexInputStateCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
uint32_t vertexBindingDescriptionCount;
const $* pVertexBindingDescriptions;
uint32_t vertexAttributeDescriptionCount;
const $* pVertexAttributeDescriptions;
}]], mod.VkStructureType, mod.VkPipelineVertexInputStateCreateFlags, mod.VkVertexInputBindingDescription, mod.VkVertexInputAttributeDescription)
mod.VkPipelineInputAssemblyStateCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ topology;
$ primitiveRestartEnable;
}]], mod.VkStructureType, mod.VkPipelineInputAssemblyStateCreateFlags, mod.VkPrimitiveTopology, mod.VkBool32)
mod.VkPipelineTessellationStateCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
uint32_t patchControlPoints;
}]], mod.VkStructureType, mod.VkPipelineTessellationStateCreateFlags)
mod.VkViewport = ffi.typeof([[struct {
float x;
float y;
float width;
float height;
float minDepth;
float maxDepth;
}]])
mod.VkPipelineViewportStateCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
uint32_t viewportCount;
const $* pViewports;
uint32_t scissorCount;
const $* pScissors;
}]], mod.VkStructureType, mod.VkPipelineViewportStateCreateFlags, mod.VkViewport, mod.VkRect2D)
mod.VkPipelineRasterizationStateCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ depthClampEnable;
$ rasterizerDiscardEnable;
$ polygonMode;
$ cullMode;
$ frontFace;
$ depthBiasEnable;
float depthBiasConstantFactor;
float depthBiasClamp;
float depthBiasSlopeFactor;
float lineWidth;
}]], mod.VkStructureType, mod.VkPipelineRasterizationStateCreateFlags, mod.VkBool32, mod.VkBool32, mod.VkPolygonMode, mod.VkCullModeFlags, mod.VkFrontFace, mod.VkBool32)
mod.VkPipelineMultisampleStateCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ rasterizationSamples;
$ sampleShadingEnable;
float minSampleShading;
const $* pSampleMask;
$ alphaToCoverageEnable;
$ alphaToOneEnable;
}]], mod.VkStructureType, mod.VkPipelineMultisampleStateCreateFlags, mod.VkSampleCountFlagBits, mod.VkBool32, mod.VkSampleMask, mod.VkBool32, mod.VkBool32)
mod.VkStencilOpState = ffi.typeof([[struct {
$ failOp;
$ passOp;
$ depthFailOp;
$ compareOp;
uint32_t compareMask;
uint32_t writeMask;
uint32_t reference;
}]], mod.VkStencilOp, mod.VkStencilOp, mod.VkStencilOp, mod.VkCompareOp)
mod.VkPipelineDepthStencilStateCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ depthTestEnable;
$ depthWriteEnable;
$ depthCompareOp;
$ depthBoundsTestEnable;
$ stencilTestEnable;
$ front;
$ back;
float minDepthBounds;
float maxDepthBounds;
}]], mod.VkStructureType, mod.VkPipelineDepthStencilStateCreateFlags, mod.VkBool32, mod.VkBool32, mod.VkCompareOp, mod.VkBool32, mod.VkBool32, mod.VkStencilOpState, mod.VkStencilOpState)
mod.VkPipelineColorBlendAttachmentState = ffi.typeof([[struct {
$ blendEnable;
$ srcColorBlendFactor;
$ dstColorBlendFactor;
$ colorBlendOp;
$ srcAlphaBlendFactor;
$ dstAlphaBlendFactor;
$ alphaBlendOp;
$ colorWriteMask;
}]], mod.VkBool32, mod.VkBlendFactor, mod.VkBlendFactor, mod.VkBlendOp, mod.VkBlendFactor, mod.VkBlendFactor, mod.VkBlendOp, mod.VkColorComponentFlags)
mod.VkPipelineColorBlendStateCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ logicOpEnable;
$ logicOp;
uint32_t attachmentCount;
const $* pAttachments;
float blendConstants[4];
}]], mod.VkStructureType, mod.VkPipelineColorBlendStateCreateFlags, mod.VkBool32, mod.VkLogicOp, mod.VkPipelineColorBlendAttachmentState)
mod.VkPipelineDynamicStateCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
uint32_t dynamicStateCount;
const $* pDynamicStates;
}]], mod.VkStructureType, mod.VkPipelineDynamicStateCreateFlags, mod.VkDynamicState)
mod.VkGraphicsPipelineCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
uint32_t stageCount;
const $* pStages;
const $* pVertexInputState;
const $* pInputAssemblyState;
const $* pTessellationState;
const $* pViewportState;
const $* pRasterizationState;
const $* pMultisampleState;
const $* pDepthStencilState;
const $* pColorBlendState;
const $* pDynamicState;
$ layout;
$ renderPass;
uint32_t subpass;
$ basePipelineHandle;
int32_t basePipelineIndex;
}]], mod.VkStructureType, mod.VkPipelineCreateFlags, mod.VkPipelineShaderStageCreateInfo, mod.VkPipelineVertexInputStateCreateInfo, mod.VkPipelineInputAssemblyStateCreateInfo, mod.VkPipelineTessellationStateCreateInfo, mod.VkPipelineViewportStateCreateInfo, mod.VkPipelineRasterizationStateCreateInfo, mod.VkPipelineMultisampleStateCreateInfo, mod.VkPipelineDepthStencilStateCreateInfo, mod.VkPipelineColorBlendStateCreateInfo, mod.VkPipelineDynamicStateCreateInfo, mod.VkPipelineLayout, mod.VkRenderPass, mod.VkPipeline)
mod.VkAttachmentDescription = ffi.typeof([[struct {
$ flags;
$ format;
$ samples;
$ loadOp;
$ storeOp;
$ stencilLoadOp;
$ stencilStoreOp;
$ initialLayout;
$ finalLayout;
}]], mod.VkAttachmentDescriptionFlags, mod.VkFormat, mod.VkSampleCountFlagBits, mod.VkAttachmentLoadOp, mod.VkAttachmentStoreOp, mod.VkAttachmentLoadOp, mod.VkAttachmentStoreOp, mod.VkImageLayout, mod.VkImageLayout)
mod.VkAttachmentReference = ffi.typeof([[struct {
uint32_t attachment;
$ layout;
}]], mod.VkImageLayout)
mod.VkFramebufferCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ renderPass;
uint32_t attachmentCount;
const $* pAttachments;
uint32_t width;
uint32_t height;
uint32_t layers;
}]], mod.VkStructureType, mod.VkFramebufferCreateFlags, mod.VkRenderPass, mod.VkImageView)
mod.VkSubpassDescription = ffi.typeof([[struct {
$ flags;
$ pipelineBindPoint;
uint32_t inputAttachmentCount;
const $* pInputAttachments;
uint32_t colorAttachmentCount;
const $* pColorAttachments;
const $* pResolveAttachments;
const $* pDepthStencilAttachment;
uint32_t preserveAttachmentCount;
const uint32_t* pPreserveAttachments;
}]], mod.VkSubpassDescriptionFlags, mod.VkPipelineBindPoint, mod.VkAttachmentReference, mod.VkAttachmentReference, mod.VkAttachmentReference, mod.VkAttachmentReference)
mod.VkSubpassDependency = ffi.typeof([[struct {
uint32_t srcSubpass;
uint32_t dstSubpass;
$ srcStageMask;
$ dstStageMask;
$ srcAccessMask;
$ dstAccessMask;
$ dependencyFlags;
}]], mod.VkPipelineStageFlags, mod.VkPipelineStageFlags, mod.VkAccessFlags, mod.VkAccessFlags, mod.VkDependencyFlags)
mod.VkRenderPassCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
uint32_t attachmentCount;
const $* pAttachments;
uint32_t subpassCount;
const $* pSubpasses;
uint32_t dependencyCount;
const $* pDependencies;
}]], mod.VkStructureType, mod.VkRenderPassCreateFlags, mod.VkAttachmentDescription, mod.VkSubpassDescription, mod.VkSubpassDependency)
mod.VkClearDepthStencilValue = ffi.typeof([[struct {
float depth;
uint32_t stencil;
}]])
mod.VkClearValue = ffi.typeof([[union {
$ color;
$ depthStencil;
}]], mod.VkClearColorValue, mod.VkClearDepthStencilValue)
mod.VkClearAttachment = ffi.typeof([[struct {
$ aspectMask;
uint32_t colorAttachment;
$ clearValue;
}]], mod.VkImageAspectFlags, mod.VkClearValue)
mod.VkClearRect = ffi.typeof([[struct {
$ rect;
uint32_t baseArrayLayer;
uint32_t layerCount;
}]], mod.VkRect2D)
mod.VkImageBlit = ffi.typeof([[struct {
$ srcSubresource;
$ srcOffsets[2];
$ dstSubresource;
$ dstOffsets[2];
}]], mod.VkImageSubresourceLayers, mod.VkOffset3D, mod.VkImageSubresourceLayers, mod.VkOffset3D)
mod.VkImageResolve = ffi.typeof([[struct {
$ srcSubresource;
$ srcOffset;
$ dstSubresource;
$ dstOffset;
$ extent;
}]], mod.VkImageSubresourceLayers, mod.VkOffset3D, mod.VkImageSubresourceLayers, mod.VkOffset3D, mod.VkExtent3D)
mod.VkRenderPassBeginInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ renderPass;
$ framebuffer;
$ renderArea;
uint32_t clearValueCount;
const $* pClearValues;
}]], mod.VkStructureType, mod.VkRenderPass, mod.VkFramebuffer, mod.VkRect2D, mod.VkClearValue)
mod.PFN_vkCreateInstance = ffi.typeof([[$ (*)(const $*, const $*, $*)]], mod.VkResult, mod.VkInstanceCreateInfo, mod.VkAllocationCallbacks, mod.VkInstance)
mod.PFN_vkDestroyInstance = ffi.typeof([[void (*)($ , const $*)]], mod.VkInstance, mod.VkAllocationCallbacks)
mod.PFN_vkEnumeratePhysicalDevices = ffi.typeof([[$ (*)($ , uint32_t*, $*)]], mod.VkResult, mod.VkInstance, mod.VkPhysicalDevice)
mod.PFN_vkGetPhysicalDeviceFeatures = ffi.typeof([[void (*)($ , $*)]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceFeatures)
mod.PFN_vkGetPhysicalDeviceFormatProperties = ffi.typeof([[void (*)($ , $ , $*)]], mod.VkPhysicalDevice, mod.VkFormat, mod.VkFormatProperties)
mod.PFN_vkGetPhysicalDeviceImageFormatProperties = ffi.typeof([[$ (*)($ , $ , $ , $ , $ , $ , $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkFormat, mod.VkImageType, mod.VkImageTiling, mod.VkImageUsageFlags, mod.VkImageCreateFlags, mod.VkImageFormatProperties)
mod.PFN_vkGetPhysicalDeviceProperties = ffi.typeof([[void (*)($ , $*)]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceProperties)
mod.PFN_vkGetPhysicalDeviceQueueFamilyProperties = ffi.typeof([[void (*)($ , uint32_t*, $*)]], mod.VkPhysicalDevice, mod.VkQueueFamilyProperties)
mod.PFN_vkGetPhysicalDeviceMemoryProperties = ffi.typeof([[void (*)($ , $*)]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceMemoryProperties)
mod.PFN_vkGetInstanceProcAddr = ffi.typeof([[$ (*)($ , const char*)]], mod.PFN_vkVoidFunction, mod.VkInstance)
mod.PFN_vkGetDeviceProcAddr = ffi.typeof([[$ (*)($ , const char*)]], mod.PFN_vkVoidFunction, mod.VkDevice)
mod.PFN_vkCreateDevice = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkDeviceCreateInfo, mod.VkAllocationCallbacks, mod.VkDevice)
mod.PFN_vkDestroyDevice = ffi.typeof([[void (*)($ , const $*)]], mod.VkDevice, mod.VkAllocationCallbacks)
mod.PFN_vkEnumerateInstanceExtensionProperties = ffi.typeof([[$ (*)(const char*, uint32_t*, $*)]], mod.VkResult, mod.VkExtensionProperties)
mod.PFN_vkEnumerateDeviceExtensionProperties = ffi.typeof([[$ (*)($ , const char*, uint32_t*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkExtensionProperties)
mod.PFN_vkEnumerateInstanceLayerProperties = ffi.typeof([[$ (*)(uint32_t*, $*)]], mod.VkResult, mod.VkLayerProperties)
mod.PFN_vkEnumerateDeviceLayerProperties = ffi.typeof([[$ (*)($ , uint32_t*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkLayerProperties)
mod.PFN_vkGetDeviceQueue = ffi.typeof([[void (*)($ , uint32_t , uint32_t , $*)]], mod.VkDevice, mod.VkQueue)
mod.PFN_vkQueueSubmit = ffi.typeof([[$ (*)($ , uint32_t , const $*, $ )]], mod.VkResult, mod.VkQueue, mod.VkSubmitInfo, mod.VkFence)
mod.PFN_vkQueueWaitIdle = ffi.typeof([[$ (*)($ )]], mod.VkResult, mod.VkQueue)
mod.PFN_vkDeviceWaitIdle = ffi.typeof([[$ (*)($ )]], mod.VkResult, mod.VkDevice)
mod.PFN_vkAllocateMemory = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkMemoryAllocateInfo, mod.VkAllocationCallbacks, mod.VkDeviceMemory)
mod.PFN_vkFreeMemory = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkDeviceMemory, mod.VkAllocationCallbacks)
mod.PFN_vkMapMemory = ffi.typeof([[$ (*)($ , $ , $ , $ , $ , void**)]], mod.VkResult, mod.VkDevice, mod.VkDeviceMemory, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkMemoryMapFlags)
mod.PFN_vkUnmapMemory = ffi.typeof([[void (*)($ , $ )]], mod.VkDevice, mod.VkDeviceMemory)
mod.PFN_vkFlushMappedMemoryRanges = ffi.typeof([[$ (*)($ , uint32_t , const $*)]], mod.VkResult, mod.VkDevice, mod.VkMappedMemoryRange)
mod.PFN_vkInvalidateMappedMemoryRanges = ffi.typeof([[$ (*)($ , uint32_t , const $*)]], mod.VkResult, mod.VkDevice, mod.VkMappedMemoryRange)
mod.PFN_vkGetDeviceMemoryCommitment = ffi.typeof([[void (*)($ , $ , $*)]], mod.VkDevice, mod.VkDeviceMemory, mod.VkDeviceSize)
mod.PFN_vkBindBufferMemory = ffi.typeof([[$ (*)($ , $ , $ , $ )]], mod.VkResult, mod.VkDevice, mod.VkBuffer, mod.VkDeviceMemory, mod.VkDeviceSize)
mod.PFN_vkBindImageMemory = ffi.typeof([[$ (*)($ , $ , $ , $ )]], mod.VkResult, mod.VkDevice, mod.VkImage, mod.VkDeviceMemory, mod.VkDeviceSize)
mod.PFN_vkGetBufferMemoryRequirements = ffi.typeof([[void (*)($ , $ , $*)]], mod.VkDevice, mod.VkBuffer, mod.VkMemoryRequirements)
mod.PFN_vkGetImageMemoryRequirements = ffi.typeof([[void (*)($ , $ , $*)]], mod.VkDevice, mod.VkImage, mod.VkMemoryRequirements)
mod.PFN_vkGetImageSparseMemoryRequirements = ffi.typeof([[void (*)($ , $ , uint32_t*, $*)]], mod.VkDevice, mod.VkImage, mod.VkSparseImageMemoryRequirements)
mod.PFN_vkGetPhysicalDeviceSparseImageFormatProperties = ffi.typeof([[void (*)($ , $ , $ , $ , $ , $ , uint32_t*, $*)]], mod.VkPhysicalDevice, mod.VkFormat, mod.VkImageType, mod.VkSampleCountFlagBits, mod.VkImageUsageFlags, mod.VkImageTiling, mod.VkSparseImageFormatProperties)
mod.PFN_vkQueueBindSparse = ffi.typeof([[$ (*)($ , uint32_t , const $*, $ )]], mod.VkResult, mod.VkQueue, mod.VkBindSparseInfo, mod.VkFence)
mod.PFN_vkCreateFence = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkFenceCreateInfo, mod.VkAllocationCallbacks, mod.VkFence)
mod.PFN_vkDestroyFence = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkFence, mod.VkAllocationCallbacks)
mod.PFN_vkResetFences = ffi.typeof([[$ (*)($ , uint32_t , const $*)]], mod.VkResult, mod.VkDevice, mod.VkFence)
mod.PFN_vkGetFenceStatus = ffi.typeof([[$ (*)($ , $ )]], mod.VkResult, mod.VkDevice, mod.VkFence)
mod.PFN_vkWaitForFences = ffi.typeof([[$ (*)($ , uint32_t , const $*, $ , uint64_t )]], mod.VkResult, mod.VkDevice, mod.VkFence, mod.VkBool32)
mod.PFN_vkCreateSemaphore = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkSemaphoreCreateInfo, mod.VkAllocationCallbacks, mod.VkSemaphore)
mod.PFN_vkDestroySemaphore = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkSemaphore, mod.VkAllocationCallbacks)
mod.PFN_vkCreateQueryPool = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkQueryPoolCreateInfo, mod.VkAllocationCallbacks, mod.VkQueryPool)
mod.PFN_vkDestroyQueryPool = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkQueryPool, mod.VkAllocationCallbacks)
mod.PFN_vkGetQueryPoolResults = ffi.typeof([[$ (*)($ , $ , uint32_t , uint32_t , size_t , void*, $ , $ )]], mod.VkResult, mod.VkDevice, mod.VkQueryPool, mod.VkDeviceSize, mod.VkQueryResultFlags)
mod.PFN_vkCreateBuffer = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkBufferCreateInfo, mod.VkAllocationCallbacks, mod.VkBuffer)
mod.PFN_vkDestroyBuffer = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkBuffer, mod.VkAllocationCallbacks)
mod.PFN_vkCreateImage = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkImageCreateInfo, mod.VkAllocationCallbacks, mod.VkImage)
mod.PFN_vkDestroyImage = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkImage, mod.VkAllocationCallbacks)
mod.PFN_vkGetImageSubresourceLayout = ffi.typeof([[void (*)($ , $ , const $*, $*)]], mod.VkDevice, mod.VkImage, mod.VkImageSubresource, mod.VkSubresourceLayout)
mod.PFN_vkCreateImageView = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkImageViewCreateInfo, mod.VkAllocationCallbacks, mod.VkImageView)
mod.PFN_vkDestroyImageView = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkImageView, mod.VkAllocationCallbacks)
mod.PFN_vkCreateCommandPool = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkCommandPoolCreateInfo, mod.VkAllocationCallbacks, mod.VkCommandPool)
mod.PFN_vkDestroyCommandPool = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkCommandPool, mod.VkAllocationCallbacks)
mod.PFN_vkResetCommandPool = ffi.typeof([[$ (*)($ , $ , $ )]], mod.VkResult, mod.VkDevice, mod.VkCommandPool, mod.VkCommandPoolResetFlags)
mod.PFN_vkAllocateCommandBuffers = ffi.typeof([[$ (*)($ , const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkCommandBufferAllocateInfo, mod.VkCommandBuffer)
mod.PFN_vkFreeCommandBuffers = ffi.typeof([[void (*)($ , $ , uint32_t , const $*)]], mod.VkDevice, mod.VkCommandPool, mod.VkCommandBuffer)
mod.PFN_vkBeginCommandBuffer = ffi.typeof([[$ (*)($ , const $*)]], mod.VkResult, mod.VkCommandBuffer, mod.VkCommandBufferBeginInfo)
mod.PFN_vkEndCommandBuffer = ffi.typeof([[$ (*)($ )]], mod.VkResult, mod.VkCommandBuffer)
mod.PFN_vkResetCommandBuffer = ffi.typeof([[$ (*)($ , $ )]], mod.VkResult, mod.VkCommandBuffer, mod.VkCommandBufferResetFlags)
mod.PFN_vkCmdCopyBuffer = ffi.typeof([[void (*)($ , $ , $ , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkBuffer, mod.VkBufferCopy)
mod.PFN_vkCmdCopyImage = ffi.typeof([[void (*)($ , $ , $ , $ , $ , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkImage, mod.VkImageLayout, mod.VkImage, mod.VkImageLayout, mod.VkImageCopy)
mod.PFN_vkCmdCopyBufferToImage = ffi.typeof([[void (*)($ , $ , $ , $ , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkImage, mod.VkImageLayout, mod.VkBufferImageCopy)
mod.PFN_vkCmdCopyImageToBuffer = ffi.typeof([[void (*)($ , $ , $ , $ , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkImage, mod.VkImageLayout, mod.VkBuffer, mod.VkBufferImageCopy)
mod.PFN_vkCmdUpdateBuffer = ffi.typeof([[void (*)($ , $ , $ , $ , const void*)]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize)
mod.PFN_vkCmdFillBuffer = ffi.typeof([[void (*)($ , $ , $ , $ , uint32_t )]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize)
mod.PFN_vkCmdPipelineBarrier = ffi.typeof([[void (*)($ , $ , $ , $ , uint32_t , const $*, uint32_t , const $*, uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkPipelineStageFlags, mod.VkPipelineStageFlags, mod.VkDependencyFlags, mod.VkMemoryBarrier, mod.VkBufferMemoryBarrier, mod.VkImageMemoryBarrier)
mod.PFN_vkCmdBeginQuery = ffi.typeof([[void (*)($ , $ , uint32_t , $ )]], mod.VkCommandBuffer, mod.VkQueryPool, mod.VkQueryControlFlags)
mod.PFN_vkCmdEndQuery = ffi.typeof([[void (*)($ , $ , uint32_t )]], mod.VkCommandBuffer, mod.VkQueryPool)
mod.PFN_vkCmdResetQueryPool = ffi.typeof([[void (*)($ , $ , uint32_t , uint32_t )]], mod.VkCommandBuffer, mod.VkQueryPool)
mod.PFN_vkCmdWriteTimestamp = ffi.typeof([[void (*)($ , $ , $ , uint32_t )]], mod.VkCommandBuffer, mod.VkPipelineStageFlagBits, mod.VkQueryPool)
mod.PFN_vkCmdCopyQueryPoolResults = ffi.typeof([[void (*)($ , $ , uint32_t , uint32_t , $ , $ , $ , $ )]], mod.VkCommandBuffer, mod.VkQueryPool, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkQueryResultFlags)
mod.PFN_vkCmdExecuteCommands = ffi.typeof([[void (*)($ , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkCommandBuffer)
mod.PFN_vkCreateEvent = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkEventCreateInfo, mod.VkAllocationCallbacks, mod.VkEvent)
mod.PFN_vkDestroyEvent = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkEvent, mod.VkAllocationCallbacks)
mod.PFN_vkGetEventStatus = ffi.typeof([[$ (*)($ , $ )]], mod.VkResult, mod.VkDevice, mod.VkEvent)
mod.PFN_vkSetEvent = ffi.typeof([[$ (*)($ , $ )]], mod.VkResult, mod.VkDevice, mod.VkEvent)
mod.PFN_vkResetEvent = ffi.typeof([[$ (*)($ , $ )]], mod.VkResult, mod.VkDevice, mod.VkEvent)
mod.PFN_vkCreateBufferView = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkBufferViewCreateInfo, mod.VkAllocationCallbacks, mod.VkBufferView)
mod.PFN_vkDestroyBufferView = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkBufferView, mod.VkAllocationCallbacks)
mod.PFN_vkCreateShaderModule = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkShaderModuleCreateInfo, mod.VkAllocationCallbacks, mod.VkShaderModule)
mod.PFN_vkDestroyShaderModule = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkShaderModule, mod.VkAllocationCallbacks)
mod.PFN_vkCreatePipelineCache = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkPipelineCacheCreateInfo, mod.VkAllocationCallbacks, mod.VkPipelineCache)
mod.PFN_vkDestroyPipelineCache = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkPipelineCache, mod.VkAllocationCallbacks)
mod.PFN_vkGetPipelineCacheData = ffi.typeof([[$ (*)($ , $ , size_t*, void*)]], mod.VkResult, mod.VkDevice, mod.VkPipelineCache)
mod.PFN_vkMergePipelineCaches = ffi.typeof([[$ (*)($ , $ , uint32_t , const $*)]], mod.VkResult, mod.VkDevice, mod.VkPipelineCache, mod.VkPipelineCache)
mod.PFN_vkCreateComputePipelines = ffi.typeof([[$ (*)($ , $ , uint32_t , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkPipelineCache, mod.VkComputePipelineCreateInfo, mod.VkAllocationCallbacks, mod.VkPipeline)
mod.PFN_vkDestroyPipeline = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkPipeline, mod.VkAllocationCallbacks)
mod.PFN_vkCreatePipelineLayout = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkPipelineLayoutCreateInfo, mod.VkAllocationCallbacks, mod.VkPipelineLayout)
mod.PFN_vkDestroyPipelineLayout = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkPipelineLayout, mod.VkAllocationCallbacks)
mod.PFN_vkCreateSampler = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkSamplerCreateInfo, mod.VkAllocationCallbacks, mod.VkSampler)
mod.PFN_vkDestroySampler = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkSampler, mod.VkAllocationCallbacks)
mod.PFN_vkCreateDescriptorSetLayout = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkDescriptorSetLayoutCreateInfo, mod.VkAllocationCallbacks, mod.VkDescriptorSetLayout)
mod.PFN_vkDestroyDescriptorSetLayout = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkDescriptorSetLayout, mod.VkAllocationCallbacks)
mod.PFN_vkCreateDescriptorPool = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkDescriptorPoolCreateInfo, mod.VkAllocationCallbacks, mod.VkDescriptorPool)
mod.PFN_vkDestroyDescriptorPool = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkDescriptorPool, mod.VkAllocationCallbacks)
mod.PFN_vkResetDescriptorPool = ffi.typeof([[$ (*)($ , $ , $ )]], mod.VkResult, mod.VkDevice, mod.VkDescriptorPool, mod.VkDescriptorPoolResetFlags)
mod.PFN_vkAllocateDescriptorSets = ffi.typeof([[$ (*)($ , const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkDescriptorSetAllocateInfo, mod.VkDescriptorSet)
mod.PFN_vkFreeDescriptorSets = ffi.typeof([[$ (*)($ , $ , uint32_t , const $*)]], mod.VkResult, mod.VkDevice, mod.VkDescriptorPool, mod.VkDescriptorSet)
mod.PFN_vkUpdateDescriptorSets = ffi.typeof([[void (*)($ , uint32_t , const $*, uint32_t , const $*)]], mod.VkDevice, mod.VkWriteDescriptorSet, mod.VkCopyDescriptorSet)
mod.PFN_vkCmdBindPipeline = ffi.typeof([[void (*)($ , $ , $ )]], mod.VkCommandBuffer, mod.VkPipelineBindPoint, mod.VkPipeline)
mod.PFN_vkCmdBindDescriptorSets = ffi.typeof([[void (*)($ , $ , $ , uint32_t , uint32_t , const $*, uint32_t , const uint32_t*)]], mod.VkCommandBuffer, mod.VkPipelineBindPoint, mod.VkPipelineLayout, mod.VkDescriptorSet)
mod.PFN_vkCmdClearColorImage = ffi.typeof([[void (*)($ , $ , $ , const $*, uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkImage, mod.VkImageLayout, mod.VkClearColorValue, mod.VkImageSubresourceRange)
mod.PFN_vkCmdDispatch = ffi.typeof([[void (*)($ , uint32_t , uint32_t , uint32_t )]], mod.VkCommandBuffer)
mod.PFN_vkCmdDispatchIndirect = ffi.typeof([[void (*)($ , $ , $ )]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize)
mod.PFN_vkCmdSetEvent = ffi.typeof([[void (*)($ , $ , $ )]], mod.VkCommandBuffer, mod.VkEvent, mod.VkPipelineStageFlags)
mod.PFN_vkCmdResetEvent = ffi.typeof([[void (*)($ , $ , $ )]], mod.VkCommandBuffer, mod.VkEvent, mod.VkPipelineStageFlags)
mod.PFN_vkCmdWaitEvents = ffi.typeof([[void (*)($ , uint32_t , const $*, $ , $ , uint32_t , const $*, uint32_t , const $*, uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkEvent, mod.VkPipelineStageFlags, mod.VkPipelineStageFlags, mod.VkMemoryBarrier, mod.VkBufferMemoryBarrier, mod.VkImageMemoryBarrier)
mod.PFN_vkCmdPushConstants = ffi.typeof([[void (*)($ , $ , $ , uint32_t , uint32_t , const void*)]], mod.VkCommandBuffer, mod.VkPipelineLayout, mod.VkShaderStageFlags)
mod.PFN_vkCreateGraphicsPipelines = ffi.typeof([[$ (*)($ , $ , uint32_t , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkPipelineCache, mod.VkGraphicsPipelineCreateInfo, mod.VkAllocationCallbacks, mod.VkPipeline)
mod.PFN_vkCreateFramebuffer = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkFramebufferCreateInfo, mod.VkAllocationCallbacks, mod.VkFramebuffer)
mod.PFN_vkDestroyFramebuffer = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkFramebuffer, mod.VkAllocationCallbacks)
mod.PFN_vkCreateRenderPass = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkRenderPassCreateInfo, mod.VkAllocationCallbacks, mod.VkRenderPass)
mod.PFN_vkDestroyRenderPass = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkRenderPass, mod.VkAllocationCallbacks)
mod.PFN_vkGetRenderAreaGranularity = ffi.typeof([[void (*)($ , $ , $*)]], mod.VkDevice, mod.VkRenderPass, mod.VkExtent2D)
mod.PFN_vkCmdSetViewport = ffi.typeof([[void (*)($ , uint32_t , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkViewport)
mod.PFN_vkCmdSetScissor = ffi.typeof([[void (*)($ , uint32_t , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkRect2D)
mod.PFN_vkCmdSetLineWidth = ffi.typeof([[void (*)($ , float )]], mod.VkCommandBuffer)
mod.PFN_vkCmdSetDepthBias = ffi.typeof([[void (*)($ , float , float , float )]], mod.VkCommandBuffer)
mod.PFN_vkCmdSetBlendConstants = ffi.typeof([[void (*)($ , const float[4])]], mod.VkCommandBuffer)
mod.PFN_vkCmdSetDepthBounds = ffi.typeof([[void (*)($ , float , float )]], mod.VkCommandBuffer)
mod.PFN_vkCmdSetStencilCompareMask = ffi.typeof([[void (*)($ , $ , uint32_t )]], mod.VkCommandBuffer, mod.VkStencilFaceFlags)
mod.PFN_vkCmdSetStencilWriteMask = ffi.typeof([[void (*)($ , $ , uint32_t )]], mod.VkCommandBuffer, mod.VkStencilFaceFlags)
mod.PFN_vkCmdSetStencilReference = ffi.typeof([[void (*)($ , $ , uint32_t )]], mod.VkCommandBuffer, mod.VkStencilFaceFlags)
mod.PFN_vkCmdBindIndexBuffer = ffi.typeof([[void (*)($ , $ , $ , $ )]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkIndexType)
mod.PFN_vkCmdBindVertexBuffers = ffi.typeof([[void (*)($ , uint32_t , uint32_t , const $*, const $*)]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize)
mod.PFN_vkCmdDraw = ffi.typeof([[void (*)($ , uint32_t , uint32_t , uint32_t , uint32_t )]], mod.VkCommandBuffer)
mod.PFN_vkCmdDrawIndexed = ffi.typeof([[void (*)($ , uint32_t , uint32_t , uint32_t , int32_t , uint32_t )]], mod.VkCommandBuffer)
mod.PFN_vkCmdDrawIndirect = ffi.typeof([[void (*)($ , $ , $ , uint32_t , uint32_t )]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize)
mod.PFN_vkCmdDrawIndexedIndirect = ffi.typeof([[void (*)($ , $ , $ , uint32_t , uint32_t )]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize)
mod.PFN_vkCmdBlitImage = ffi.typeof([[void (*)($ , $ , $ , $ , $ , uint32_t , const $*, $ )]], mod.VkCommandBuffer, mod.VkImage, mod.VkImageLayout, mod.VkImage, mod.VkImageLayout, mod.VkImageBlit, mod.VkFilter)
mod.PFN_vkCmdClearDepthStencilImage = ffi.typeof([[void (*)($ , $ , $ , const $*, uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkImage, mod.VkImageLayout, mod.VkClearDepthStencilValue, mod.VkImageSubresourceRange)
mod.PFN_vkCmdClearAttachments = ffi.typeof([[void (*)($ , uint32_t , const $*, uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkClearAttachment, mod.VkClearRect)
mod.PFN_vkCmdResolveImage = ffi.typeof([[void (*)($ , $ , $ , $ , $ , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkImage, mod.VkImageLayout, mod.VkImage, mod.VkImageLayout, mod.VkImageResolve)
mod.PFN_vkCmdBeginRenderPass = ffi.typeof([[void (*)($ , const $*, $ )]], mod.VkCommandBuffer, mod.VkRenderPassBeginInfo, mod.VkSubpassContents)
mod.PFN_vkCmdNextSubpass = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkSubpassContents)
mod.PFN_vkCmdEndRenderPass = ffi.typeof([[void (*)($ )]], mod.VkCommandBuffer)
ffi.cdef([[$ vkCreateInstance(const $*, const $*, $*);]], mod.VkResult, mod.VkInstanceCreateInfo, mod.VkAllocationCallbacks, mod.VkInstance)
ffi.cdef([[void vkDestroyInstance($ , const $*);]], mod.VkInstance, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkEnumeratePhysicalDevices($ , uint32_t*, $*);]], mod.VkResult, mod.VkInstance, mod.VkPhysicalDevice)
ffi.cdef([[void vkGetPhysicalDeviceFeatures($ , $*);]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceFeatures)
ffi.cdef([[void vkGetPhysicalDeviceFormatProperties($ , $ , $*);]], mod.VkPhysicalDevice, mod.VkFormat, mod.VkFormatProperties)
ffi.cdef([[$ vkGetPhysicalDeviceImageFormatProperties($ , $ , $ , $ , $ , $ , $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkFormat, mod.VkImageType, mod.VkImageTiling, mod.VkImageUsageFlags, mod.VkImageCreateFlags, mod.VkImageFormatProperties)
ffi.cdef([[void vkGetPhysicalDeviceProperties($ , $*);]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceProperties)
ffi.cdef([[void vkGetPhysicalDeviceQueueFamilyProperties($ , uint32_t*, $*);]], mod.VkPhysicalDevice, mod.VkQueueFamilyProperties)
ffi.cdef([[void vkGetPhysicalDeviceMemoryProperties($ , $*);]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceMemoryProperties)
ffi.cdef([[$ vkGetInstanceProcAddr($ , const char*);]], mod.PFN_vkVoidFunction, mod.VkInstance)
ffi.cdef([[$ vkGetDeviceProcAddr($ , const char*);]], mod.PFN_vkVoidFunction, mod.VkDevice)
ffi.cdef([[$ vkCreateDevice($ , const $*, const $*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkDeviceCreateInfo, mod.VkAllocationCallbacks, mod.VkDevice)
ffi.cdef([[void vkDestroyDevice($ , const $*);]], mod.VkDevice, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkEnumerateInstanceExtensionProperties(const char*, uint32_t*, $*);]], mod.VkResult, mod.VkExtensionProperties)
ffi.cdef([[$ vkEnumerateDeviceExtensionProperties($ , const char*, uint32_t*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkExtensionProperties)
ffi.cdef([[$ vkEnumerateInstanceLayerProperties(uint32_t*, $*);]], mod.VkResult, mod.VkLayerProperties)
ffi.cdef([[$ vkEnumerateDeviceLayerProperties($ , uint32_t*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkLayerProperties)
ffi.cdef([[void vkGetDeviceQueue($ , uint32_t , uint32_t , $*);]], mod.VkDevice, mod.VkQueue)
ffi.cdef([[$ vkQueueSubmit($ , uint32_t , const $*, $ );]], mod.VkResult, mod.VkQueue, mod.VkSubmitInfo, mod.VkFence)
ffi.cdef([[$ vkQueueWaitIdle($ );]], mod.VkResult, mod.VkQueue)
ffi.cdef([[$ vkDeviceWaitIdle($ );]], mod.VkResult, mod.VkDevice)
ffi.cdef([[$ vkAllocateMemory($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkMemoryAllocateInfo, mod.VkAllocationCallbacks, mod.VkDeviceMemory)
ffi.cdef([[void vkFreeMemory($ , $ , const $*);]], mod.VkDevice, mod.VkDeviceMemory, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkMapMemory($ , $ , $ , $ , $ , void**);]], mod.VkResult, mod.VkDevice, mod.VkDeviceMemory, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkMemoryMapFlags)
ffi.cdef([[void vkUnmapMemory($ , $ );]], mod.VkDevice, mod.VkDeviceMemory)
ffi.cdef([[$ vkFlushMappedMemoryRanges($ , uint32_t , const $*);]], mod.VkResult, mod.VkDevice, mod.VkMappedMemoryRange)
ffi.cdef([[$ vkInvalidateMappedMemoryRanges($ , uint32_t , const $*);]], mod.VkResult, mod.VkDevice, mod.VkMappedMemoryRange)
ffi.cdef([[void vkGetDeviceMemoryCommitment($ , $ , $*);]], mod.VkDevice, mod.VkDeviceMemory, mod.VkDeviceSize)
ffi.cdef([[$ vkBindBufferMemory($ , $ , $ , $ );]], mod.VkResult, mod.VkDevice, mod.VkBuffer, mod.VkDeviceMemory, mod.VkDeviceSize)
ffi.cdef([[$ vkBindImageMemory($ , $ , $ , $ );]], mod.VkResult, mod.VkDevice, mod.VkImage, mod.VkDeviceMemory, mod.VkDeviceSize)
ffi.cdef([[void vkGetBufferMemoryRequirements($ , $ , $*);]], mod.VkDevice, mod.VkBuffer, mod.VkMemoryRequirements)
ffi.cdef([[void vkGetImageMemoryRequirements($ , $ , $*);]], mod.VkDevice, mod.VkImage, mod.VkMemoryRequirements)
ffi.cdef([[void vkGetImageSparseMemoryRequirements($ , $ , uint32_t*, $*);]], mod.VkDevice, mod.VkImage, mod.VkSparseImageMemoryRequirements)
ffi.cdef([[void vkGetPhysicalDeviceSparseImageFormatProperties($ , $ , $ , $ , $ , $ , uint32_t*, $*);]], mod.VkPhysicalDevice, mod.VkFormat, mod.VkImageType, mod.VkSampleCountFlagBits, mod.VkImageUsageFlags, mod.VkImageTiling, mod.VkSparseImageFormatProperties)
ffi.cdef([[$ vkQueueBindSparse($ , uint32_t , const $*, $ );]], mod.VkResult, mod.VkQueue, mod.VkBindSparseInfo, mod.VkFence)
ffi.cdef([[$ vkCreateFence($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkFenceCreateInfo, mod.VkAllocationCallbacks, mod.VkFence)
ffi.cdef([[void vkDestroyFence($ , $ , const $*);]], mod.VkDevice, mod.VkFence, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkResetFences($ , uint32_t , const $*);]], mod.VkResult, mod.VkDevice, mod.VkFence)
ffi.cdef([[$ vkGetFenceStatus($ , $ );]], mod.VkResult, mod.VkDevice, mod.VkFence)
ffi.cdef([[$ vkWaitForFences($ , uint32_t , const $*, $ , uint64_t );]], mod.VkResult, mod.VkDevice, mod.VkFence, mod.VkBool32)
ffi.cdef([[$ vkCreateSemaphore($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkSemaphoreCreateInfo, mod.VkAllocationCallbacks, mod.VkSemaphore)
ffi.cdef([[void vkDestroySemaphore($ , $ , const $*);]], mod.VkDevice, mod.VkSemaphore, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkCreateQueryPool($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkQueryPoolCreateInfo, mod.VkAllocationCallbacks, mod.VkQueryPool)
ffi.cdef([[void vkDestroyQueryPool($ , $ , const $*);]], mod.VkDevice, mod.VkQueryPool, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkGetQueryPoolResults($ , $ , uint32_t , uint32_t , size_t , void*, $ , $ );]], mod.VkResult, mod.VkDevice, mod.VkQueryPool, mod.VkDeviceSize, mod.VkQueryResultFlags)
ffi.cdef([[$ vkCreateBuffer($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkBufferCreateInfo, mod.VkAllocationCallbacks, mod.VkBuffer)
ffi.cdef([[void vkDestroyBuffer($ , $ , const $*);]], mod.VkDevice, mod.VkBuffer, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkCreateImage($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkImageCreateInfo, mod.VkAllocationCallbacks, mod.VkImage)
ffi.cdef([[void vkDestroyImage($ , $ , const $*);]], mod.VkDevice, mod.VkImage, mod.VkAllocationCallbacks)
ffi.cdef([[void vkGetImageSubresourceLayout($ , $ , const $*, $*);]], mod.VkDevice, mod.VkImage, mod.VkImageSubresource, mod.VkSubresourceLayout)
ffi.cdef([[$ vkCreateImageView($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkImageViewCreateInfo, mod.VkAllocationCallbacks, mod.VkImageView)
ffi.cdef([[void vkDestroyImageView($ , $ , const $*);]], mod.VkDevice, mod.VkImageView, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkCreateCommandPool($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkCommandPoolCreateInfo, mod.VkAllocationCallbacks, mod.VkCommandPool)
ffi.cdef([[void vkDestroyCommandPool($ , $ , const $*);]], mod.VkDevice, mod.VkCommandPool, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkResetCommandPool($ , $ , $ );]], mod.VkResult, mod.VkDevice, mod.VkCommandPool, mod.VkCommandPoolResetFlags)
ffi.cdef([[$ vkAllocateCommandBuffers($ , const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkCommandBufferAllocateInfo, mod.VkCommandBuffer)
ffi.cdef([[void vkFreeCommandBuffers($ , $ , uint32_t , const $*);]], mod.VkDevice, mod.VkCommandPool, mod.VkCommandBuffer)
ffi.cdef([[$ vkBeginCommandBuffer($ , const $*);]], mod.VkResult, mod.VkCommandBuffer, mod.VkCommandBufferBeginInfo)
ffi.cdef([[$ vkEndCommandBuffer($ );]], mod.VkResult, mod.VkCommandBuffer)
ffi.cdef([[$ vkResetCommandBuffer($ , $ );]], mod.VkResult, mod.VkCommandBuffer, mod.VkCommandBufferResetFlags)
ffi.cdef([[void vkCmdCopyBuffer($ , $ , $ , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkBuffer, mod.VkBufferCopy)
ffi.cdef([[void vkCmdCopyImage($ , $ , $ , $ , $ , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkImage, mod.VkImageLayout, mod.VkImage, mod.VkImageLayout, mod.VkImageCopy)
ffi.cdef([[void vkCmdCopyBufferToImage($ , $ , $ , $ , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkImage, mod.VkImageLayout, mod.VkBufferImageCopy)
ffi.cdef([[void vkCmdCopyImageToBuffer($ , $ , $ , $ , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkImage, mod.VkImageLayout, mod.VkBuffer, mod.VkBufferImageCopy)
ffi.cdef([[void vkCmdUpdateBuffer($ , $ , $ , $ , const void*);]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize)
ffi.cdef([[void vkCmdFillBuffer($ , $ , $ , $ , uint32_t );]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize)
ffi.cdef([[void vkCmdPipelineBarrier($ , $ , $ , $ , uint32_t , const $*, uint32_t , const $*, uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkPipelineStageFlags, mod.VkPipelineStageFlags, mod.VkDependencyFlags, mod.VkMemoryBarrier, mod.VkBufferMemoryBarrier, mod.VkImageMemoryBarrier)
ffi.cdef([[void vkCmdBeginQuery($ , $ , uint32_t , $ );]], mod.VkCommandBuffer, mod.VkQueryPool, mod.VkQueryControlFlags)
ffi.cdef([[void vkCmdEndQuery($ , $ , uint32_t );]], mod.VkCommandBuffer, mod.VkQueryPool)
ffi.cdef([[void vkCmdResetQueryPool($ , $ , uint32_t , uint32_t );]], mod.VkCommandBuffer, mod.VkQueryPool)
ffi.cdef([[void vkCmdWriteTimestamp($ , $ , $ , uint32_t );]], mod.VkCommandBuffer, mod.VkPipelineStageFlagBits, mod.VkQueryPool)
ffi.cdef([[void vkCmdCopyQueryPoolResults($ , $ , uint32_t , uint32_t , $ , $ , $ , $ );]], mod.VkCommandBuffer, mod.VkQueryPool, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkQueryResultFlags)
ffi.cdef([[void vkCmdExecuteCommands($ , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkCommandBuffer)
ffi.cdef([[$ vkCreateEvent($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkEventCreateInfo, mod.VkAllocationCallbacks, mod.VkEvent)
ffi.cdef([[void vkDestroyEvent($ , $ , const $*);]], mod.VkDevice, mod.VkEvent, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkGetEventStatus($ , $ );]], mod.VkResult, mod.VkDevice, mod.VkEvent)
ffi.cdef([[$ vkSetEvent($ , $ );]], mod.VkResult, mod.VkDevice, mod.VkEvent)
ffi.cdef([[$ vkResetEvent($ , $ );]], mod.VkResult, mod.VkDevice, mod.VkEvent)
ffi.cdef([[$ vkCreateBufferView($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkBufferViewCreateInfo, mod.VkAllocationCallbacks, mod.VkBufferView)
ffi.cdef([[void vkDestroyBufferView($ , $ , const $*);]], mod.VkDevice, mod.VkBufferView, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkCreateShaderModule($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkShaderModuleCreateInfo, mod.VkAllocationCallbacks, mod.VkShaderModule)
ffi.cdef([[void vkDestroyShaderModule($ , $ , const $*);]], mod.VkDevice, mod.VkShaderModule, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkCreatePipelineCache($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkPipelineCacheCreateInfo, mod.VkAllocationCallbacks, mod.VkPipelineCache)
ffi.cdef([[void vkDestroyPipelineCache($ , $ , const $*);]], mod.VkDevice, mod.VkPipelineCache, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkGetPipelineCacheData($ , $ , size_t*, void*);]], mod.VkResult, mod.VkDevice, mod.VkPipelineCache)
ffi.cdef([[$ vkMergePipelineCaches($ , $ , uint32_t , const $*);]], mod.VkResult, mod.VkDevice, mod.VkPipelineCache, mod.VkPipelineCache)
ffi.cdef([[$ vkCreateComputePipelines($ , $ , uint32_t , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkPipelineCache, mod.VkComputePipelineCreateInfo, mod.VkAllocationCallbacks, mod.VkPipeline)
ffi.cdef([[void vkDestroyPipeline($ , $ , const $*);]], mod.VkDevice, mod.VkPipeline, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkCreatePipelineLayout($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkPipelineLayoutCreateInfo, mod.VkAllocationCallbacks, mod.VkPipelineLayout)
ffi.cdef([[void vkDestroyPipelineLayout($ , $ , const $*);]], mod.VkDevice, mod.VkPipelineLayout, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkCreateSampler($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkSamplerCreateInfo, mod.VkAllocationCallbacks, mod.VkSampler)
ffi.cdef([[void vkDestroySampler($ , $ , const $*);]], mod.VkDevice, mod.VkSampler, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkCreateDescriptorSetLayout($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkDescriptorSetLayoutCreateInfo, mod.VkAllocationCallbacks, mod.VkDescriptorSetLayout)
ffi.cdef([[void vkDestroyDescriptorSetLayout($ , $ , const $*);]], mod.VkDevice, mod.VkDescriptorSetLayout, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkCreateDescriptorPool($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkDescriptorPoolCreateInfo, mod.VkAllocationCallbacks, mod.VkDescriptorPool)
ffi.cdef([[void vkDestroyDescriptorPool($ , $ , const $*);]], mod.VkDevice, mod.VkDescriptorPool, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkResetDescriptorPool($ , $ , $ );]], mod.VkResult, mod.VkDevice, mod.VkDescriptorPool, mod.VkDescriptorPoolResetFlags)
ffi.cdef([[$ vkAllocateDescriptorSets($ , const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkDescriptorSetAllocateInfo, mod.VkDescriptorSet)
ffi.cdef([[$ vkFreeDescriptorSets($ , $ , uint32_t , const $*);]], mod.VkResult, mod.VkDevice, mod.VkDescriptorPool, mod.VkDescriptorSet)
ffi.cdef([[void vkUpdateDescriptorSets($ , uint32_t , const $*, uint32_t , const $*);]], mod.VkDevice, mod.VkWriteDescriptorSet, mod.VkCopyDescriptorSet)
ffi.cdef([[void vkCmdBindPipeline($ , $ , $ );]], mod.VkCommandBuffer, mod.VkPipelineBindPoint, mod.VkPipeline)
ffi.cdef([[void vkCmdBindDescriptorSets($ , $ , $ , uint32_t , uint32_t , const $*, uint32_t , const uint32_t*);]], mod.VkCommandBuffer, mod.VkPipelineBindPoint, mod.VkPipelineLayout, mod.VkDescriptorSet)
ffi.cdef([[void vkCmdClearColorImage($ , $ , $ , const $*, uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkImage, mod.VkImageLayout, mod.VkClearColorValue, mod.VkImageSubresourceRange)
ffi.cdef([[void vkCmdDispatch($ , uint32_t , uint32_t , uint32_t );]], mod.VkCommandBuffer)
ffi.cdef([[void vkCmdDispatchIndirect($ , $ , $ );]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize)
ffi.cdef([[void vkCmdSetEvent($ , $ , $ );]], mod.VkCommandBuffer, mod.VkEvent, mod.VkPipelineStageFlags)
ffi.cdef([[void vkCmdResetEvent($ , $ , $ );]], mod.VkCommandBuffer, mod.VkEvent, mod.VkPipelineStageFlags)
ffi.cdef([[void vkCmdWaitEvents($ , uint32_t , const $*, $ , $ , uint32_t , const $*, uint32_t , const $*, uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkEvent, mod.VkPipelineStageFlags, mod.VkPipelineStageFlags, mod.VkMemoryBarrier, mod.VkBufferMemoryBarrier, mod.VkImageMemoryBarrier)
ffi.cdef([[void vkCmdPushConstants($ , $ , $ , uint32_t , uint32_t , const void*);]], mod.VkCommandBuffer, mod.VkPipelineLayout, mod.VkShaderStageFlags)
ffi.cdef([[$ vkCreateGraphicsPipelines($ , $ , uint32_t , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkPipelineCache, mod.VkGraphicsPipelineCreateInfo, mod.VkAllocationCallbacks, mod.VkPipeline)
ffi.cdef([[$ vkCreateFramebuffer($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkFramebufferCreateInfo, mod.VkAllocationCallbacks, mod.VkFramebuffer)
ffi.cdef([[void vkDestroyFramebuffer($ , $ , const $*);]], mod.VkDevice, mod.VkFramebuffer, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkCreateRenderPass($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkRenderPassCreateInfo, mod.VkAllocationCallbacks, mod.VkRenderPass)
ffi.cdef([[void vkDestroyRenderPass($ , $ , const $*);]], mod.VkDevice, mod.VkRenderPass, mod.VkAllocationCallbacks)
ffi.cdef([[void vkGetRenderAreaGranularity($ , $ , $*);]], mod.VkDevice, mod.VkRenderPass, mod.VkExtent2D)
ffi.cdef([[void vkCmdSetViewport($ , uint32_t , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkViewport)
ffi.cdef([[void vkCmdSetScissor($ , uint32_t , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkRect2D)
ffi.cdef([[void vkCmdSetLineWidth($ , float );]], mod.VkCommandBuffer)
ffi.cdef([[void vkCmdSetDepthBias($ , float , float , float );]], mod.VkCommandBuffer)
ffi.cdef([[void vkCmdSetBlendConstants($ , const float[4]);]], mod.VkCommandBuffer)
ffi.cdef([[void vkCmdSetDepthBounds($ , float , float );]], mod.VkCommandBuffer)
ffi.cdef([[void vkCmdSetStencilCompareMask($ , $ , uint32_t );]], mod.VkCommandBuffer, mod.VkStencilFaceFlags)
ffi.cdef([[void vkCmdSetStencilWriteMask($ , $ , uint32_t );]], mod.VkCommandBuffer, mod.VkStencilFaceFlags)
ffi.cdef([[void vkCmdSetStencilReference($ , $ , uint32_t );]], mod.VkCommandBuffer, mod.VkStencilFaceFlags)
ffi.cdef([[void vkCmdBindIndexBuffer($ , $ , $ , $ );]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkIndexType)
ffi.cdef([[void vkCmdBindVertexBuffers($ , uint32_t , uint32_t , const $*, const $*);]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize)
ffi.cdef([[void vkCmdDraw($ , uint32_t , uint32_t , uint32_t , uint32_t );]], mod.VkCommandBuffer)
ffi.cdef([[void vkCmdDrawIndexed($ , uint32_t , uint32_t , uint32_t , int32_t , uint32_t );]], mod.VkCommandBuffer)
ffi.cdef([[void vkCmdDrawIndirect($ , $ , $ , uint32_t , uint32_t );]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize)
ffi.cdef([[void vkCmdDrawIndexedIndirect($ , $ , $ , uint32_t , uint32_t );]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize)
ffi.cdef([[void vkCmdBlitImage($ , $ , $ , $ , $ , uint32_t , const $*, $ );]], mod.VkCommandBuffer, mod.VkImage, mod.VkImageLayout, mod.VkImage, mod.VkImageLayout, mod.VkImageBlit, mod.VkFilter)
ffi.cdef([[void vkCmdClearDepthStencilImage($ , $ , $ , const $*, uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkImage, mod.VkImageLayout, mod.VkClearDepthStencilValue, mod.VkImageSubresourceRange)
ffi.cdef([[void vkCmdClearAttachments($ , uint32_t , const $*, uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkClearAttachment, mod.VkClearRect)
ffi.cdef([[void vkCmdResolveImage($ , $ , $ , $ , $ , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkImage, mod.VkImageLayout, mod.VkImage, mod.VkImageLayout, mod.VkImageResolve)
ffi.cdef([[void vkCmdBeginRenderPass($ , const $*, $ );]], mod.VkCommandBuffer, mod.VkRenderPassBeginInfo, mod.VkSubpassContents)
ffi.cdef([[void vkCmdNextSubpass($ , $ );]], mod.VkCommandBuffer, mod.VkSubpassContents)
ffi.cdef([[void vkCmdEndRenderPass($ );]], mod.VkCommandBuffer)
mod.VkDescriptorUpdateTemplateType = ffi.typeof([[enum {
VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS,
VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR,
VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR,
VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM,
}]])
mod.VkSamplerYcbcrModelConversion = ffi.typeof([[enum {
VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR,
VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR,
VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR,
VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR,
VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR,
VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM,
}]])
mod.VkSamplerYcbcrRange = ffi.typeof([[enum {
VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR,
VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR,
VK_SAMPLER_YCBCR_RANGE_MAX_ENUM,
}]])
mod.VkChromaLocation = ffi.typeof([[enum {
VK_CHROMA_LOCATION_COSITED_EVEN,
VK_CHROMA_LOCATION_MIDPOINT,
VK_CHROMA_LOCATION_COSITED_EVEN_KHR,
VK_CHROMA_LOCATION_MIDPOINT_KHR,
VK_CHROMA_LOCATION_MAX_ENUM,
}]])
mod.VkPointClippingBehavior = ffi.typeof([[enum {
VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR,
VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR,
VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM,
}]])
mod.VkTessellationDomainOrigin = ffi.typeof([[enum {
VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR,
VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR,
VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM,
}]])
mod.VkPeerMemoryFeatureFlagBits = ffi.typeof([[enum {
VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,
VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR,
VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR,
VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR,
VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR,
VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkPeerMemoryFeatureFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkMemoryAllocateFlagBits = ffi.typeof([[enum {
VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
VK_MEMORY_ALLOCATE_ZERO_INITIALIZE_BIT_EXT,
VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR,
VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR,
VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,
VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkMemoryAllocateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkCommandPoolTrimFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkExternalMemoryHandleTypeFlagBits = ffi.typeof([[enum {
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLBUFFER_BIT_EXT,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLTEXTURE_BIT_EXT,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLHEAP_BIT_EXT,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkExternalMemoryHandleTypeFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkExternalMemoryFeatureFlagBits = ffi.typeof([[enum {
VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,
VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR,
VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR,
VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR,
VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkExternalMemoryFeatureFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkExternalFenceHandleTypeFlagBits = ffi.typeof([[enum {
VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,
VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR,
VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR,
VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR,
VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR,
VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkExternalFenceHandleTypeFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkExternalFenceFeatureFlagBits = ffi.typeof([[enum {
VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,
VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR,
VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR,
VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkExternalFenceFeatureFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkFenceImportFlagBits = ffi.typeof([[enum {
VK_FENCE_IMPORT_TEMPORARY_BIT,
VK_FENCE_IMPORT_TEMPORARY_BIT_KHR,
VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM,
}]])
mod.VkFenceImportFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkSemaphoreImportFlagBits = ffi.typeof([[enum {
VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,
VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR,
VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM,
}]])
mod.VkSemaphoreImportFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkExternalSemaphoreHandleTypeFlagBits = ffi.typeof([[enum {
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA,
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT,
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR,
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR,
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR,
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR,
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR,
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkExternalSemaphoreHandleTypeFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkExternalSemaphoreFeatureFlagBits = ffi.typeof([[enum {
VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,
VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR,
VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR,
VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkExternalSemaphoreFeatureFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkSubgroupFeatureFlagBits = ffi.typeof([[enum {
VK_SUBGROUP_FEATURE_BASIC_BIT,
VK_SUBGROUP_FEATURE_VOTE_BIT,
VK_SUBGROUP_FEATURE_ARITHMETIC_BIT,
VK_SUBGROUP_FEATURE_BALLOT_BIT,
VK_SUBGROUP_FEATURE_SHUFFLE_BIT,
VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT,
VK_SUBGROUP_FEATURE_CLUSTERED_BIT,
VK_SUBGROUP_FEATURE_QUAD_BIT,
VK_SUBGROUP_FEATURE_ROTATE_BIT,
VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT,
VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV,
VK_SUBGROUP_FEATURE_ROTATE_BIT_KHR,
VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT_KHR,
VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkSubgroupFeatureFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkDescriptorUpdateTemplateCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkBindBufferMemoryInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ buffer;
$ memory;
$ memoryOffset;
}]], mod.VkStructureType, mod.VkBuffer, mod.VkDeviceMemory, mod.VkDeviceSize)
mod.VkBindImageMemoryInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ image;
$ memory;
$ memoryOffset;
}]], mod.VkStructureType, mod.VkImage, mod.VkDeviceMemory, mod.VkDeviceSize)
mod.VkMemoryDedicatedRequirements = ffi.typeof([[struct {
$ sType;
void* pNext;
$ prefersDedicatedAllocation;
$ requiresDedicatedAllocation;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkMemoryDedicatedAllocateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ image;
$ buffer;
}]], mod.VkStructureType, mod.VkImage, mod.VkBuffer)
mod.VkMemoryAllocateFlagsInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
uint32_t deviceMask;
}]], mod.VkStructureType, mod.VkMemoryAllocateFlags)
mod.VkDeviceGroupCommandBufferBeginInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t deviceMask;
}]], mod.VkStructureType)
mod.VkDeviceGroupSubmitInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t waitSemaphoreCount;
const uint32_t* pWaitSemaphoreDeviceIndices;
uint32_t commandBufferCount;
const uint32_t* pCommandBufferDeviceMasks;
uint32_t signalSemaphoreCount;
const uint32_t* pSignalSemaphoreDeviceIndices;
}]], mod.VkStructureType)
mod.VkDeviceGroupBindSparseInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t resourceDeviceIndex;
uint32_t memoryDeviceIndex;
}]], mod.VkStructureType)
mod.VkBindBufferMemoryDeviceGroupInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t deviceIndexCount;
const uint32_t* pDeviceIndices;
}]], mod.VkStructureType)
mod.VkBindImageMemoryDeviceGroupInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t deviceIndexCount;
const uint32_t* pDeviceIndices;
uint32_t splitInstanceBindRegionCount;
const $* pSplitInstanceBindRegions;
}]], mod.VkStructureType, mod.VkRect2D)
mod.VkPhysicalDeviceGroupProperties = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t physicalDeviceCount;
$ physicalDevices[32U];
$ subsetAllocation;
}]], mod.VkStructureType, mod.VkPhysicalDevice, mod.VkBool32)
mod.VkDeviceGroupDeviceCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t physicalDeviceCount;
const $* pPhysicalDevices;
}]], mod.VkStructureType, mod.VkPhysicalDevice)
mod.VkBufferMemoryRequirementsInfo2 = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ buffer;
}]], mod.VkStructureType, mod.VkBuffer)
mod.VkImageMemoryRequirementsInfo2 = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ image;
}]], mod.VkStructureType, mod.VkImage)
mod.VkImageSparseMemoryRequirementsInfo2 = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ image;
}]], mod.VkStructureType, mod.VkImage)
mod.VkMemoryRequirements2 = ffi.typeof([[struct {
$ sType;
void* pNext;
$ memoryRequirements;
}]], mod.VkStructureType, mod.VkMemoryRequirements)
mod.VkSparseImageMemoryRequirements2 = ffi.typeof([[struct {
$ sType;
void* pNext;
$ memoryRequirements;
}]], mod.VkStructureType, mod.VkSparseImageMemoryRequirements)
mod.VkPhysicalDeviceFeatures2 = ffi.typeof([[struct {
$ sType;
void* pNext;
$ features;
}]], mod.VkStructureType, mod.VkPhysicalDeviceFeatures)
mod.VkPhysicalDeviceProperties2 = ffi.typeof([[struct {
$ sType;
void* pNext;
$ properties;
}]], mod.VkStructureType, mod.VkPhysicalDeviceProperties)
mod.VkFormatProperties2 = ffi.typeof([[struct {
$ sType;
void* pNext;
$ formatProperties;
}]], mod.VkStructureType, mod.VkFormatProperties)
mod.VkImageFormatProperties2 = ffi.typeof([[struct {
$ sType;
void* pNext;
$ imageFormatProperties;
}]], mod.VkStructureType, mod.VkImageFormatProperties)
mod.VkPhysicalDeviceImageFormatInfo2 = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ format;
$ type;
$ tiling;
$ usage;
$ flags;
}]], mod.VkStructureType, mod.VkFormat, mod.VkImageType, mod.VkImageTiling, mod.VkImageUsageFlags, mod.VkImageCreateFlags)
mod.VkQueueFamilyProperties2 = ffi.typeof([[struct {
$ sType;
void* pNext;
$ queueFamilyProperties;
}]], mod.VkStructureType, mod.VkQueueFamilyProperties)
mod.VkPhysicalDeviceMemoryProperties2 = ffi.typeof([[struct {
$ sType;
void* pNext;
$ memoryProperties;
}]], mod.VkStructureType, mod.VkPhysicalDeviceMemoryProperties)
mod.VkSparseImageFormatProperties2 = ffi.typeof([[struct {
$ sType;
void* pNext;
$ properties;
}]], mod.VkStructureType, mod.VkSparseImageFormatProperties)
mod.VkPhysicalDeviceSparseImageFormatInfo2 = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ format;
$ type;
$ samples;
$ usage;
$ tiling;
}]], mod.VkStructureType, mod.VkFormat, mod.VkImageType, mod.VkSampleCountFlagBits, mod.VkImageUsageFlags, mod.VkImageTiling)
mod.VkImageViewUsageCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ usage;
}]], mod.VkStructureType, mod.VkImageUsageFlags)
mod.VkPhysicalDeviceProtectedMemoryFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ protectedMemory;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceProtectedMemoryProperties = ffi.typeof([[struct {
$ sType;
void* pNext;
$ protectedNoFault;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkDeviceQueueInfo2 = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
uint32_t queueFamilyIndex;
uint32_t queueIndex;
}]], mod.VkStructureType, mod.VkDeviceQueueCreateFlags)
mod.VkProtectedSubmitInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ protectedSubmit;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkBindImagePlaneMemoryInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ planeAspect;
}]], mod.VkStructureType, mod.VkImageAspectFlagBits)
mod.VkImagePlaneMemoryRequirementsInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ planeAspect;
}]], mod.VkStructureType, mod.VkImageAspectFlagBits)
mod.VkExternalMemoryProperties = ffi.typeof([[struct {
$ externalMemoryFeatures;
$ exportFromImportedHandleTypes;
$ compatibleHandleTypes;
}]], mod.VkExternalMemoryFeatureFlags, mod.VkExternalMemoryHandleTypeFlags, mod.VkExternalMemoryHandleTypeFlags)
mod.VkPhysicalDeviceExternalImageFormatInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ handleType;
}]], mod.VkStructureType, mod.VkExternalMemoryHandleTypeFlagBits)
mod.VkExternalImageFormatProperties = ffi.typeof([[struct {
$ sType;
void* pNext;
$ externalMemoryProperties;
}]], mod.VkStructureType, mod.VkExternalMemoryProperties)
mod.VkPhysicalDeviceExternalBufferInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ usage;
$ handleType;
}]], mod.VkStructureType, mod.VkBufferCreateFlags, mod.VkBufferUsageFlags, mod.VkExternalMemoryHandleTypeFlagBits)
mod.VkExternalBufferProperties = ffi.typeof([[struct {
$ sType;
void* pNext;
$ externalMemoryProperties;
}]], mod.VkStructureType, mod.VkExternalMemoryProperties)
mod.VkPhysicalDeviceIDProperties = ffi.typeof([[struct {
$ sType;
void* pNext;
uint8_t deviceUUID[16U];
uint8_t driverUUID[16U];
uint8_t deviceLUID[8U];
uint32_t deviceNodeMask;
$ deviceLUIDValid;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkExternalMemoryImageCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ handleTypes;
}]], mod.VkStructureType, mod.VkExternalMemoryHandleTypeFlags)
mod.VkExternalMemoryBufferCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ handleTypes;
}]], mod.VkStructureType, mod.VkExternalMemoryHandleTypeFlags)
mod.VkExportMemoryAllocateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ handleTypes;
}]], mod.VkStructureType, mod.VkExternalMemoryHandleTypeFlags)
mod.VkPhysicalDeviceExternalFenceInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ handleType;
}]], mod.VkStructureType, mod.VkExternalFenceHandleTypeFlagBits)
mod.VkExternalFenceProperties = ffi.typeof([[struct {
$ sType;
void* pNext;
$ exportFromImportedHandleTypes;
$ compatibleHandleTypes;
$ externalFenceFeatures;
}]], mod.VkStructureType, mod.VkExternalFenceHandleTypeFlags, mod.VkExternalFenceHandleTypeFlags, mod.VkExternalFenceFeatureFlags)
mod.VkExportFenceCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ handleTypes;
}]], mod.VkStructureType, mod.VkExternalFenceHandleTypeFlags)
mod.VkExportSemaphoreCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ handleTypes;
}]], mod.VkStructureType, mod.VkExternalSemaphoreHandleTypeFlags)
mod.VkPhysicalDeviceExternalSemaphoreInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ handleType;
}]], mod.VkStructureType, mod.VkExternalSemaphoreHandleTypeFlagBits)
mod.VkExternalSemaphoreProperties = ffi.typeof([[struct {
$ sType;
void* pNext;
$ exportFromImportedHandleTypes;
$ compatibleHandleTypes;
$ externalSemaphoreFeatures;
}]], mod.VkStructureType, mod.VkExternalSemaphoreHandleTypeFlags, mod.VkExternalSemaphoreHandleTypeFlags, mod.VkExternalSemaphoreFeatureFlags)
mod.VkPhysicalDeviceSubgroupProperties = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t subgroupSize;
$ supportedStages;
$ supportedOperations;
$ quadOperationsInAllStages;
}]], mod.VkStructureType, mod.VkShaderStageFlags, mod.VkSubgroupFeatureFlags, mod.VkBool32)
mod.VkPhysicalDevice16BitStorageFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ storageBuffer16BitAccess;
$ uniformAndStorageBuffer16BitAccess;
$ storagePushConstant16;
$ storageInputOutput16;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceVariablePointersFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ variablePointersStorageBuffer;
$ variablePointers;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceVariablePointerFeatures = ffi.typeof([[$ ]], mod.VkPhysicalDeviceVariablePointersFeatures)
mod.VkDescriptorUpdateTemplateEntry = ffi.typeof([[struct {
uint32_t dstBinding;
uint32_t dstArrayElement;
uint32_t descriptorCount;
$ descriptorType;
size_t offset;
size_t stride;
}]], mod.VkDescriptorType)
mod.VkDescriptorUpdateTemplateCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
uint32_t descriptorUpdateEntryCount;
const $* pDescriptorUpdateEntries;
$ templateType;
$ descriptorSetLayout;
$ pipelineBindPoint;
$ pipelineLayout;
uint32_t set;
}]], mod.VkStructureType, mod.VkDescriptorUpdateTemplateCreateFlags, mod.VkDescriptorUpdateTemplateEntry, mod.VkDescriptorUpdateTemplateType, mod.VkDescriptorSetLayout, mod.VkPipelineBindPoint, mod.VkPipelineLayout)
mod.VkPhysicalDeviceMaintenance3Properties = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t maxPerSetDescriptors;
$ maxMemoryAllocationSize;
}]], mod.VkStructureType, mod.VkDeviceSize)
mod.VkDescriptorSetLayoutSupport = ffi.typeof([[struct {
$ sType;
void* pNext;
$ supported;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkSamplerYcbcrConversionCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ format;
$ ycbcrModel;
$ ycbcrRange;
$ components;
$ xChromaOffset;
$ yChromaOffset;
$ chromaFilter;
$ forceExplicitReconstruction;
}]], mod.VkStructureType, mod.VkFormat, mod.VkSamplerYcbcrModelConversion, mod.VkSamplerYcbcrRange, mod.VkComponentMapping, mod.VkChromaLocation, mod.VkChromaLocation, mod.VkFilter, mod.VkBool32)
mod.VkSamplerYcbcrConversionInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ conversion;
}]], mod.VkStructureType, mod.VkSamplerYcbcrConversion)
mod.VkPhysicalDeviceSamplerYcbcrConversionFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ samplerYcbcrConversion;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkSamplerYcbcrConversionImageFormatProperties = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t combinedImageSamplerDescriptorCount;
}]], mod.VkStructureType)
mod.VkDeviceGroupRenderPassBeginInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t deviceMask;
uint32_t deviceRenderAreaCount;
const $* pDeviceRenderAreas;
}]], mod.VkStructureType, mod.VkRect2D)
mod.VkPhysicalDevicePointClippingProperties = ffi.typeof([[struct {
$ sType;
void* pNext;
$ pointClippingBehavior;
}]], mod.VkStructureType, mod.VkPointClippingBehavior)
mod.VkInputAttachmentAspectReference = ffi.typeof([[struct {
uint32_t subpass;
uint32_t inputAttachmentIndex;
$ aspectMask;
}]], mod.VkImageAspectFlags)
mod.VkRenderPassInputAttachmentAspectCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t aspectReferenceCount;
const $* pAspectReferences;
}]], mod.VkStructureType, mod.VkInputAttachmentAspectReference)
mod.VkPipelineTessellationDomainOriginStateCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ domainOrigin;
}]], mod.VkStructureType, mod.VkTessellationDomainOrigin)
mod.VkRenderPassMultiviewCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t subpassCount;
const uint32_t* pViewMasks;
uint32_t dependencyCount;
const int32_t* pViewOffsets;
uint32_t correlationMaskCount;
const uint32_t* pCorrelationMasks;
}]], mod.VkStructureType)
mod.VkPhysicalDeviceMultiviewFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ multiview;
$ multiviewGeometryShader;
$ multiviewTessellationShader;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceMultiviewProperties = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t maxMultiviewViewCount;
uint32_t maxMultiviewInstanceIndex;
}]], mod.VkStructureType)
mod.VkPhysicalDeviceShaderDrawParametersFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderDrawParameters;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceShaderDrawParameterFeatures = ffi.typeof([[$ ]], mod.VkPhysicalDeviceShaderDrawParametersFeatures)
mod.PFN_vkEnumerateInstanceVersion = ffi.typeof([[$ (*)(uint32_t*)]], mod.VkResult)
mod.PFN_vkBindBufferMemory2 = ffi.typeof([[$ (*)($ , uint32_t , const $*)]], mod.VkResult, mod.VkDevice, mod.VkBindBufferMemoryInfo)
mod.PFN_vkBindImageMemory2 = ffi.typeof([[$ (*)($ , uint32_t , const $*)]], mod.VkResult, mod.VkDevice, mod.VkBindImageMemoryInfo)
mod.PFN_vkGetDeviceGroupPeerMemoryFeatures = ffi.typeof([[void (*)($ , uint32_t , uint32_t , uint32_t , $*)]], mod.VkDevice, mod.VkPeerMemoryFeatureFlags)
mod.PFN_vkCmdSetDeviceMask = ffi.typeof([[void (*)($ , uint32_t )]], mod.VkCommandBuffer)
mod.PFN_vkEnumeratePhysicalDeviceGroups = ffi.typeof([[$ (*)($ , uint32_t*, $*)]], mod.VkResult, mod.VkInstance, mod.VkPhysicalDeviceGroupProperties)
mod.PFN_vkGetImageMemoryRequirements2 = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkDevice, mod.VkImageMemoryRequirementsInfo2, mod.VkMemoryRequirements2)
mod.PFN_vkGetBufferMemoryRequirements2 = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkDevice, mod.VkBufferMemoryRequirementsInfo2, mod.VkMemoryRequirements2)
mod.PFN_vkGetImageSparseMemoryRequirements2 = ffi.typeof([[void (*)($ , const $*, uint32_t*, $*)]], mod.VkDevice, mod.VkImageSparseMemoryRequirementsInfo2, mod.VkSparseImageMemoryRequirements2)
mod.PFN_vkGetPhysicalDeviceFeatures2 = ffi.typeof([[void (*)($ , $*)]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceFeatures2)
mod.PFN_vkGetPhysicalDeviceProperties2 = ffi.typeof([[void (*)($ , $*)]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceProperties2)
mod.PFN_vkGetPhysicalDeviceFormatProperties2 = ffi.typeof([[void (*)($ , $ , $*)]], mod.VkPhysicalDevice, mod.VkFormat, mod.VkFormatProperties2)
mod.PFN_vkGetPhysicalDeviceImageFormatProperties2 = ffi.typeof([[$ (*)($ , const $*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkPhysicalDeviceImageFormatInfo2, mod.VkImageFormatProperties2)
mod.PFN_vkGetPhysicalDeviceQueueFamilyProperties2 = ffi.typeof([[void (*)($ , uint32_t*, $*)]], mod.VkPhysicalDevice, mod.VkQueueFamilyProperties2)
mod.PFN_vkGetPhysicalDeviceMemoryProperties2 = ffi.typeof([[void (*)($ , $*)]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceMemoryProperties2)
mod.PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 = ffi.typeof([[void (*)($ , const $*, uint32_t*, $*)]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceSparseImageFormatInfo2, mod.VkSparseImageFormatProperties2)
mod.PFN_vkTrimCommandPool = ffi.typeof([[void (*)($ , $ , $ )]], mod.VkDevice, mod.VkCommandPool, mod.VkCommandPoolTrimFlags)
mod.PFN_vkGetDeviceQueue2 = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkDevice, mod.VkDeviceQueueInfo2, mod.VkQueue)
mod.PFN_vkGetPhysicalDeviceExternalBufferProperties = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceExternalBufferInfo, mod.VkExternalBufferProperties)
mod.PFN_vkGetPhysicalDeviceExternalFenceProperties = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceExternalFenceInfo, mod.VkExternalFenceProperties)
mod.PFN_vkGetPhysicalDeviceExternalSemaphoreProperties = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceExternalSemaphoreInfo, mod.VkExternalSemaphoreProperties)
mod.PFN_vkCmdDispatchBase = ffi.typeof([[void (*)($ , uint32_t , uint32_t , uint32_t , uint32_t , uint32_t , uint32_t )]], mod.VkCommandBuffer)
mod.PFN_vkCreateDescriptorUpdateTemplate = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkDescriptorUpdateTemplateCreateInfo, mod.VkAllocationCallbacks, mod.VkDescriptorUpdateTemplate)
mod.PFN_vkDestroyDescriptorUpdateTemplate = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkDescriptorUpdateTemplate, mod.VkAllocationCallbacks)
mod.PFN_vkUpdateDescriptorSetWithTemplate = ffi.typeof([[void (*)($ , $ , $ , const void*)]], mod.VkDevice, mod.VkDescriptorSet, mod.VkDescriptorUpdateTemplate)
mod.PFN_vkGetDescriptorSetLayoutSupport = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkDevice, mod.VkDescriptorSetLayoutCreateInfo, mod.VkDescriptorSetLayoutSupport)
mod.PFN_vkCreateSamplerYcbcrConversion = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkSamplerYcbcrConversionCreateInfo, mod.VkAllocationCallbacks, mod.VkSamplerYcbcrConversion)
mod.PFN_vkDestroySamplerYcbcrConversion = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkSamplerYcbcrConversion, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkEnumerateInstanceVersion(uint32_t*);]], mod.VkResult)
ffi.cdef([[$ vkBindBufferMemory2($ , uint32_t , const $*);]], mod.VkResult, mod.VkDevice, mod.VkBindBufferMemoryInfo)
ffi.cdef([[$ vkBindImageMemory2($ , uint32_t , const $*);]], mod.VkResult, mod.VkDevice, mod.VkBindImageMemoryInfo)
ffi.cdef([[void vkGetDeviceGroupPeerMemoryFeatures($ , uint32_t , uint32_t , uint32_t , $*);]], mod.VkDevice, mod.VkPeerMemoryFeatureFlags)
ffi.cdef([[void vkCmdSetDeviceMask($ , uint32_t );]], mod.VkCommandBuffer)
ffi.cdef([[$ vkEnumeratePhysicalDeviceGroups($ , uint32_t*, $*);]], mod.VkResult, mod.VkInstance, mod.VkPhysicalDeviceGroupProperties)
ffi.cdef([[void vkGetImageMemoryRequirements2($ , const $*, $*);]], mod.VkDevice, mod.VkImageMemoryRequirementsInfo2, mod.VkMemoryRequirements2)
ffi.cdef([[void vkGetBufferMemoryRequirements2($ , const $*, $*);]], mod.VkDevice, mod.VkBufferMemoryRequirementsInfo2, mod.VkMemoryRequirements2)
ffi.cdef([[void vkGetImageSparseMemoryRequirements2($ , const $*, uint32_t*, $*);]], mod.VkDevice, mod.VkImageSparseMemoryRequirementsInfo2, mod.VkSparseImageMemoryRequirements2)
ffi.cdef([[void vkGetPhysicalDeviceFeatures2($ , $*);]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceFeatures2)
ffi.cdef([[void vkGetPhysicalDeviceProperties2($ , $*);]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceProperties2)
ffi.cdef([[void vkGetPhysicalDeviceFormatProperties2($ , $ , $*);]], mod.VkPhysicalDevice, mod.VkFormat, mod.VkFormatProperties2)
ffi.cdef([[$ vkGetPhysicalDeviceImageFormatProperties2($ , const $*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkPhysicalDeviceImageFormatInfo2, mod.VkImageFormatProperties2)
ffi.cdef([[void vkGetPhysicalDeviceQueueFamilyProperties2($ , uint32_t*, $*);]], mod.VkPhysicalDevice, mod.VkQueueFamilyProperties2)
ffi.cdef([[void vkGetPhysicalDeviceMemoryProperties2($ , $*);]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceMemoryProperties2)
ffi.cdef([[void vkGetPhysicalDeviceSparseImageFormatProperties2($ , const $*, uint32_t*, $*);]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceSparseImageFormatInfo2, mod.VkSparseImageFormatProperties2)
ffi.cdef([[void vkTrimCommandPool($ , $ , $ );]], mod.VkDevice, mod.VkCommandPool, mod.VkCommandPoolTrimFlags)
ffi.cdef([[void vkGetDeviceQueue2($ , const $*, $*);]], mod.VkDevice, mod.VkDeviceQueueInfo2, mod.VkQueue)
ffi.cdef([[void vkGetPhysicalDeviceExternalBufferProperties($ , const $*, $*);]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceExternalBufferInfo, mod.VkExternalBufferProperties)
ffi.cdef([[void vkGetPhysicalDeviceExternalFenceProperties($ , const $*, $*);]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceExternalFenceInfo, mod.VkExternalFenceProperties)
ffi.cdef([[void vkGetPhysicalDeviceExternalSemaphoreProperties($ , const $*, $*);]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceExternalSemaphoreInfo, mod.VkExternalSemaphoreProperties)
ffi.cdef([[void vkCmdDispatchBase($ , uint32_t , uint32_t , uint32_t , uint32_t , uint32_t , uint32_t );]], mod.VkCommandBuffer)
ffi.cdef([[$ vkCreateDescriptorUpdateTemplate($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkDescriptorUpdateTemplateCreateInfo, mod.VkAllocationCallbacks, mod.VkDescriptorUpdateTemplate)
ffi.cdef([[void vkDestroyDescriptorUpdateTemplate($ , $ , const $*);]], mod.VkDevice, mod.VkDescriptorUpdateTemplate, mod.VkAllocationCallbacks)
ffi.cdef([[void vkUpdateDescriptorSetWithTemplate($ , $ , $ , const void*);]], mod.VkDevice, mod.VkDescriptorSet, mod.VkDescriptorUpdateTemplate)
ffi.cdef([[void vkGetDescriptorSetLayoutSupport($ , const $*, $*);]], mod.VkDevice, mod.VkDescriptorSetLayoutCreateInfo, mod.VkDescriptorSetLayoutSupport)
ffi.cdef([[$ vkCreateSamplerYcbcrConversion($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkSamplerYcbcrConversionCreateInfo, mod.VkAllocationCallbacks, mod.VkSamplerYcbcrConversion)
ffi.cdef([[void vkDestroySamplerYcbcrConversion($ , $ , const $*);]], mod.VkDevice, mod.VkSamplerYcbcrConversion, mod.VkAllocationCallbacks)
mod.VkDriverId = ffi.typeof([[enum {
VK_DRIVER_ID_AMD_PROPRIETARY,
VK_DRIVER_ID_AMD_OPEN_SOURCE,
VK_DRIVER_ID_MESA_RADV,
VK_DRIVER_ID_NVIDIA_PROPRIETARY,
VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
VK_DRIVER_ID_ARM_PROPRIETARY,
VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
VK_DRIVER_ID_GGP_PROPRIETARY,
VK_DRIVER_ID_BROADCOM_PROPRIETARY,
VK_DRIVER_ID_MESA_LLVMPIPE,
VK_DRIVER_ID_MOLTENVK,
VK_DRIVER_ID_COREAVI_PROPRIETARY,
VK_DRIVER_ID_JUICE_PROPRIETARY,
VK_DRIVER_ID_VERISILICON_PROPRIETARY,
VK_DRIVER_ID_MESA_TURNIP,
VK_DRIVER_ID_MESA_V3DV,
VK_DRIVER_ID_MESA_PANVK,
VK_DRIVER_ID_SAMSUNG_PROPRIETARY,
VK_DRIVER_ID_MESA_VENUS,
VK_DRIVER_ID_MESA_DOZEN,
VK_DRIVER_ID_MESA_NVK,
VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA,
VK_DRIVER_ID_MESA_HONEYKRISP,
VK_DRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN,
VK_DRIVER_ID_MESA_KOSMICKRISP,
VK_DRIVER_ID_AMD_PROPRIETARY_KHR,
VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR,
VK_DRIVER_ID_MESA_RADV_KHR,
VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR,
VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR,
VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR,
VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR,
VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR,
VK_DRIVER_ID_ARM_PROPRIETARY_KHR,
VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR,
VK_DRIVER_ID_GGP_PROPRIETARY_KHR,
VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR,
VK_DRIVER_ID_MAX_ENUM,
}]])
mod.VkShaderFloatControlsIndependence = ffi.typeof([[enum {
VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE,
VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR,
VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR,
VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR,
VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM,
}]])
mod.VkSemaphoreType = ffi.typeof([[enum {
VK_SEMAPHORE_TYPE_BINARY,
VK_SEMAPHORE_TYPE_TIMELINE,
VK_SEMAPHORE_TYPE_BINARY_KHR,
VK_SEMAPHORE_TYPE_TIMELINE_KHR,
VK_SEMAPHORE_TYPE_MAX_ENUM,
}]])
mod.VkSamplerReductionMode = ffi.typeof([[enum {
VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
VK_SAMPLER_REDUCTION_MODE_MIN,
VK_SAMPLER_REDUCTION_MODE_MAX,
VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM,
VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT,
VK_SAMPLER_REDUCTION_MODE_MIN_EXT,
VK_SAMPLER_REDUCTION_MODE_MAX_EXT,
VK_SAMPLER_REDUCTION_MODE_MAX_ENUM,
}]])
mod.VkResolveModeFlagBits = ffi.typeof([[enum {
VK_RESOLVE_MODE_NONE,
VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
VK_RESOLVE_MODE_AVERAGE_BIT,
VK_RESOLVE_MODE_MIN_BIT,
VK_RESOLVE_MODE_MAX_BIT,
VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID,
VK_RESOLVE_MODE_NONE_KHR,
VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR,
VK_RESOLVE_MODE_AVERAGE_BIT_KHR,
VK_RESOLVE_MODE_MIN_BIT_KHR,
VK_RESOLVE_MODE_MAX_BIT_KHR,
VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,
VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkResolveModeFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkSemaphoreWaitFlagBits = ffi.typeof([[enum {
VK_SEMAPHORE_WAIT_ANY_BIT,
VK_SEMAPHORE_WAIT_ANY_BIT_KHR,
VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM,
}]])
mod.VkSemaphoreWaitFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkDescriptorBindingFlagBits = ffi.typeof([[enum {
VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,
VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT,
VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT,
VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT,
VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT,
VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM,
}]])
mod.VkDescriptorBindingFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPhysicalDeviceVulkan11Features = ffi.typeof([[struct {
$ sType;
void* pNext;
$ storageBuffer16BitAccess;
$ uniformAndStorageBuffer16BitAccess;
$ storagePushConstant16;
$ storageInputOutput16;
$ multiview;
$ multiviewGeometryShader;
$ multiviewTessellationShader;
$ variablePointersStorageBuffer;
$ variablePointers;
$ protectedMemory;
$ samplerYcbcrConversion;
$ shaderDrawParameters;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceVulkan11Properties = ffi.typeof([[struct {
$ sType;
void* pNext;
uint8_t deviceUUID[16U];
uint8_t driverUUID[16U];
uint8_t deviceLUID[8U];
uint32_t deviceNodeMask;
$ deviceLUIDValid;
uint32_t subgroupSize;
$ subgroupSupportedStages;
$ subgroupSupportedOperations;
$ subgroupQuadOperationsInAllStages;
$ pointClippingBehavior;
uint32_t maxMultiviewViewCount;
uint32_t maxMultiviewInstanceIndex;
$ protectedNoFault;
uint32_t maxPerSetDescriptors;
$ maxMemoryAllocationSize;
}]], mod.VkStructureType, mod.VkBool32, mod.VkShaderStageFlags, mod.VkSubgroupFeatureFlags, mod.VkBool32, mod.VkPointClippingBehavior, mod.VkBool32, mod.VkDeviceSize)
mod.VkPhysicalDeviceVulkan12Features = ffi.typeof([[struct {
$ sType;
void* pNext;
$ samplerMirrorClampToEdge;
$ drawIndirectCount;
$ storageBuffer8BitAccess;
$ uniformAndStorageBuffer8BitAccess;
$ storagePushConstant8;
$ shaderBufferInt64Atomics;
$ shaderSharedInt64Atomics;
$ shaderFloat16;
$ shaderInt8;
$ descriptorIndexing;
$ shaderInputAttachmentArrayDynamicIndexing;
$ shaderUniformTexelBufferArrayDynamicIndexing;
$ shaderStorageTexelBufferArrayDynamicIndexing;
$ shaderUniformBufferArrayNonUniformIndexing;
$ shaderSampledImageArrayNonUniformIndexing;
$ shaderStorageBufferArrayNonUniformIndexing;
$ shaderStorageImageArrayNonUniformIndexing;
$ shaderInputAttachmentArrayNonUniformIndexing;
$ shaderUniformTexelBufferArrayNonUniformIndexing;
$ shaderStorageTexelBufferArrayNonUniformIndexing;
$ descriptorBindingUniformBufferUpdateAfterBind;
$ descriptorBindingSampledImageUpdateAfterBind;
$ descriptorBindingStorageImageUpdateAfterBind;
$ descriptorBindingStorageBufferUpdateAfterBind;
$ descriptorBindingUniformTexelBufferUpdateAfterBind;
$ descriptorBindingStorageTexelBufferUpdateAfterBind;
$ descriptorBindingUpdateUnusedWhilePending;
$ descriptorBindingPartiallyBound;
$ descriptorBindingVariableDescriptorCount;
$ runtimeDescriptorArray;
$ samplerFilterMinmax;
$ scalarBlockLayout;
$ imagelessFramebuffer;
$ uniformBufferStandardLayout;
$ shaderSubgroupExtendedTypes;
$ separateDepthStencilLayouts;
$ hostQueryReset;
$ timelineSemaphore;
$ bufferDeviceAddress;
$ bufferDeviceAddressCaptureReplay;
$ bufferDeviceAddressMultiDevice;
$ vulkanMemoryModel;
$ vulkanMemoryModelDeviceScope;
$ vulkanMemoryModelAvailabilityVisibilityChains;
$ shaderOutputViewportIndex;
$ shaderOutputLayer;
$ subgroupBroadcastDynamicId;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkConformanceVersion = ffi.typeof([[struct {
uint8_t major;
uint8_t minor;
uint8_t subminor;
uint8_t patch;
}]])
mod.VkPhysicalDeviceVulkan12Properties = ffi.typeof([[struct {
$ sType;
void* pNext;
$ driverID;
char driverName[256U];
char driverInfo[256U];
$ conformanceVersion;
$ denormBehaviorIndependence;
$ roundingModeIndependence;
$ shaderSignedZeroInfNanPreserveFloat16;
$ shaderSignedZeroInfNanPreserveFloat32;
$ shaderSignedZeroInfNanPreserveFloat64;
$ shaderDenormPreserveFloat16;
$ shaderDenormPreserveFloat32;
$ shaderDenormPreserveFloat64;
$ shaderDenormFlushToZeroFloat16;
$ shaderDenormFlushToZeroFloat32;
$ shaderDenormFlushToZeroFloat64;
$ shaderRoundingModeRTEFloat16;
$ shaderRoundingModeRTEFloat32;
$ shaderRoundingModeRTEFloat64;
$ shaderRoundingModeRTZFloat16;
$ shaderRoundingModeRTZFloat32;
$ shaderRoundingModeRTZFloat64;
uint32_t maxUpdateAfterBindDescriptorsInAllPools;
$ shaderUniformBufferArrayNonUniformIndexingNative;
$ shaderSampledImageArrayNonUniformIndexingNative;
$ shaderStorageBufferArrayNonUniformIndexingNative;
$ shaderStorageImageArrayNonUniformIndexingNative;
$ shaderInputAttachmentArrayNonUniformIndexingNative;
$ robustBufferAccessUpdateAfterBind;
$ quadDivergentImplicitLod;
uint32_t maxPerStageDescriptorUpdateAfterBindSamplers;
uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers;
uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers;
uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages;
uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages;
uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments;
uint32_t maxPerStageUpdateAfterBindResources;
uint32_t maxDescriptorSetUpdateAfterBindSamplers;
uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers;
uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers;
uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
uint32_t maxDescriptorSetUpdateAfterBindSampledImages;
uint32_t maxDescriptorSetUpdateAfterBindStorageImages;
uint32_t maxDescriptorSetUpdateAfterBindInputAttachments;
$ supportedDepthResolveModes;
$ supportedStencilResolveModes;
$ independentResolveNone;
$ independentResolve;
$ filterMinmaxSingleComponentFormats;
$ filterMinmaxImageComponentMapping;
uint64_t maxTimelineSemaphoreValueDifference;
$ framebufferIntegerColorSampleCounts;
}]], mod.VkStructureType, mod.VkDriverId, mod.VkConformanceVersion, mod.VkShaderFloatControlsIndependence, mod.VkShaderFloatControlsIndependence, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkResolveModeFlags, mod.VkResolveModeFlags, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkSampleCountFlags)
mod.VkImageFormatListCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t viewFormatCount;
const $* pViewFormats;
}]], mod.VkStructureType, mod.VkFormat)
mod.VkPhysicalDeviceDriverProperties = ffi.typeof([[struct {
$ sType;
void* pNext;
$ driverID;
char driverName[256U];
char driverInfo[256U];
$ conformanceVersion;
}]], mod.VkStructureType, mod.VkDriverId, mod.VkConformanceVersion)
mod.VkPhysicalDeviceVulkanMemoryModelFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ vulkanMemoryModel;
$ vulkanMemoryModelDeviceScope;
$ vulkanMemoryModelAvailabilityVisibilityChains;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceHostQueryResetFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ hostQueryReset;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceTimelineSemaphoreFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ timelineSemaphore;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceTimelineSemaphoreProperties = ffi.typeof([[struct {
$ sType;
void* pNext;
uint64_t maxTimelineSemaphoreValueDifference;
}]], mod.VkStructureType)
mod.VkSemaphoreTypeCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ semaphoreType;
uint64_t initialValue;
}]], mod.VkStructureType, mod.VkSemaphoreType)
mod.VkTimelineSemaphoreSubmitInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t waitSemaphoreValueCount;
const uint64_t* pWaitSemaphoreValues;
uint32_t signalSemaphoreValueCount;
const uint64_t* pSignalSemaphoreValues;
}]], mod.VkStructureType)
mod.VkSemaphoreWaitInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
uint32_t semaphoreCount;
const $* pSemaphores;
const uint64_t* pValues;
}]], mod.VkStructureType, mod.VkSemaphoreWaitFlags, mod.VkSemaphore)
mod.VkSemaphoreSignalInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ semaphore;
uint64_t value;
}]], mod.VkStructureType, mod.VkSemaphore)
mod.VkPhysicalDeviceBufferDeviceAddressFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ bufferDeviceAddress;
$ bufferDeviceAddressCaptureReplay;
$ bufferDeviceAddressMultiDevice;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkBufferDeviceAddressInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ buffer;
}]], mod.VkStructureType, mod.VkBuffer)
mod.VkBufferOpaqueCaptureAddressCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint64_t opaqueCaptureAddress;
}]], mod.VkStructureType)
mod.VkMemoryOpaqueCaptureAddressAllocateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint64_t opaqueCaptureAddress;
}]], mod.VkStructureType)
mod.VkDeviceMemoryOpaqueCaptureAddressInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ memory;
}]], mod.VkStructureType, mod.VkDeviceMemory)
mod.VkPhysicalDevice8BitStorageFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ storageBuffer8BitAccess;
$ uniformAndStorageBuffer8BitAccess;
$ storagePushConstant8;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceShaderAtomicInt64Features = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderBufferInt64Atomics;
$ shaderSharedInt64Atomics;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceShaderFloat16Int8Features = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderFloat16;
$ shaderInt8;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceFloatControlsProperties = ffi.typeof([[struct {
$ sType;
void* pNext;
$ denormBehaviorIndependence;
$ roundingModeIndependence;
$ shaderSignedZeroInfNanPreserveFloat16;
$ shaderSignedZeroInfNanPreserveFloat32;
$ shaderSignedZeroInfNanPreserveFloat64;
$ shaderDenormPreserveFloat16;
$ shaderDenormPreserveFloat32;
$ shaderDenormPreserveFloat64;
$ shaderDenormFlushToZeroFloat16;
$ shaderDenormFlushToZeroFloat32;
$ shaderDenormFlushToZeroFloat64;
$ shaderRoundingModeRTEFloat16;
$ shaderRoundingModeRTEFloat32;
$ shaderRoundingModeRTEFloat64;
$ shaderRoundingModeRTZFloat16;
$ shaderRoundingModeRTZFloat32;
$ shaderRoundingModeRTZFloat64;
}]], mod.VkStructureType, mod.VkShaderFloatControlsIndependence, mod.VkShaderFloatControlsIndependence, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkDescriptorSetLayoutBindingFlagsCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t bindingCount;
const $* pBindingFlags;
}]], mod.VkStructureType, mod.VkDescriptorBindingFlags)
mod.VkPhysicalDeviceDescriptorIndexingFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderInputAttachmentArrayDynamicIndexing;
$ shaderUniformTexelBufferArrayDynamicIndexing;
$ shaderStorageTexelBufferArrayDynamicIndexing;
$ shaderUniformBufferArrayNonUniformIndexing;
$ shaderSampledImageArrayNonUniformIndexing;
$ shaderStorageBufferArrayNonUniformIndexing;
$ shaderStorageImageArrayNonUniformIndexing;
$ shaderInputAttachmentArrayNonUniformIndexing;
$ shaderUniformTexelBufferArrayNonUniformIndexing;
$ shaderStorageTexelBufferArrayNonUniformIndexing;
$ descriptorBindingUniformBufferUpdateAfterBind;
$ descriptorBindingSampledImageUpdateAfterBind;
$ descriptorBindingStorageImageUpdateAfterBind;
$ descriptorBindingStorageBufferUpdateAfterBind;
$ descriptorBindingUniformTexelBufferUpdateAfterBind;
$ descriptorBindingStorageTexelBufferUpdateAfterBind;
$ descriptorBindingUpdateUnusedWhilePending;
$ descriptorBindingPartiallyBound;
$ descriptorBindingVariableDescriptorCount;
$ runtimeDescriptorArray;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceDescriptorIndexingProperties = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t maxUpdateAfterBindDescriptorsInAllPools;
$ shaderUniformBufferArrayNonUniformIndexingNative;
$ shaderSampledImageArrayNonUniformIndexingNative;
$ shaderStorageBufferArrayNonUniformIndexingNative;
$ shaderStorageImageArrayNonUniformIndexingNative;
$ shaderInputAttachmentArrayNonUniformIndexingNative;
$ robustBufferAccessUpdateAfterBind;
$ quadDivergentImplicitLod;
uint32_t maxPerStageDescriptorUpdateAfterBindSamplers;
uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers;
uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers;
uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages;
uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages;
uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments;
uint32_t maxPerStageUpdateAfterBindResources;
uint32_t maxDescriptorSetUpdateAfterBindSamplers;
uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers;
uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers;
uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
uint32_t maxDescriptorSetUpdateAfterBindSampledImages;
uint32_t maxDescriptorSetUpdateAfterBindStorageImages;
uint32_t maxDescriptorSetUpdateAfterBindInputAttachments;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkDescriptorSetVariableDescriptorCountAllocateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t descriptorSetCount;
const uint32_t* pDescriptorCounts;
}]], mod.VkStructureType)
mod.VkDescriptorSetVariableDescriptorCountLayoutSupport = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t maxVariableDescriptorCount;
}]], mod.VkStructureType)
mod.VkPhysicalDeviceScalarBlockLayoutFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ scalarBlockLayout;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkSamplerReductionModeCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ reductionMode;
}]], mod.VkStructureType, mod.VkSamplerReductionMode)
mod.VkPhysicalDeviceSamplerFilterMinmaxProperties = ffi.typeof([[struct {
$ sType;
void* pNext;
$ filterMinmaxSingleComponentFormats;
$ filterMinmaxImageComponentMapping;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceUniformBufferStandardLayoutFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ uniformBufferStandardLayout;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderSubgroupExtendedTypes;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkAttachmentDescription2 = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ format;
$ samples;
$ loadOp;
$ storeOp;
$ stencilLoadOp;
$ stencilStoreOp;
$ initialLayout;
$ finalLayout;
}]], mod.VkStructureType, mod.VkAttachmentDescriptionFlags, mod.VkFormat, mod.VkSampleCountFlagBits, mod.VkAttachmentLoadOp, mod.VkAttachmentStoreOp, mod.VkAttachmentLoadOp, mod.VkAttachmentStoreOp, mod.VkImageLayout, mod.VkImageLayout)
mod.VkAttachmentReference2 = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t attachment;
$ layout;
$ aspectMask;
}]], mod.VkStructureType, mod.VkImageLayout, mod.VkImageAspectFlags)
mod.VkSubpassDescription2 = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ pipelineBindPoint;
uint32_t viewMask;
uint32_t inputAttachmentCount;
const $* pInputAttachments;
uint32_t colorAttachmentCount;
const $* pColorAttachments;
const $* pResolveAttachments;
const $* pDepthStencilAttachment;
uint32_t preserveAttachmentCount;
const uint32_t* pPreserveAttachments;
}]], mod.VkStructureType, mod.VkSubpassDescriptionFlags, mod.VkPipelineBindPoint, mod.VkAttachmentReference2, mod.VkAttachmentReference2, mod.VkAttachmentReference2, mod.VkAttachmentReference2)
mod.VkSubpassDependency2 = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t srcSubpass;
uint32_t dstSubpass;
$ srcStageMask;
$ dstStageMask;
$ srcAccessMask;
$ dstAccessMask;
$ dependencyFlags;
int32_t viewOffset;
}]], mod.VkStructureType, mod.VkPipelineStageFlags, mod.VkPipelineStageFlags, mod.VkAccessFlags, mod.VkAccessFlags, mod.VkDependencyFlags)
mod.VkRenderPassCreateInfo2 = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
uint32_t attachmentCount;
const $* pAttachments;
uint32_t subpassCount;
const $* pSubpasses;
uint32_t dependencyCount;
const $* pDependencies;
uint32_t correlatedViewMaskCount;
const uint32_t* pCorrelatedViewMasks;
}]], mod.VkStructureType, mod.VkRenderPassCreateFlags, mod.VkAttachmentDescription2, mod.VkSubpassDescription2, mod.VkSubpassDependency2)
mod.VkSubpassBeginInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ contents;
}]], mod.VkStructureType, mod.VkSubpassContents)
mod.VkSubpassEndInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
}]], mod.VkStructureType)
mod.VkSubpassDescriptionDepthStencilResolve = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ depthResolveMode;
$ stencilResolveMode;
const $* pDepthStencilResolveAttachment;
}]], mod.VkStructureType, mod.VkResolveModeFlagBits, mod.VkResolveModeFlagBits, mod.VkAttachmentReference2)
mod.VkPhysicalDeviceDepthStencilResolveProperties = ffi.typeof([[struct {
$ sType;
void* pNext;
$ supportedDepthResolveModes;
$ supportedStencilResolveModes;
$ independentResolveNone;
$ independentResolve;
}]], mod.VkStructureType, mod.VkResolveModeFlags, mod.VkResolveModeFlags, mod.VkBool32, mod.VkBool32)
mod.VkImageStencilUsageCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ stencilUsage;
}]], mod.VkStructureType, mod.VkImageUsageFlags)
mod.VkPhysicalDeviceImagelessFramebufferFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ imagelessFramebuffer;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkFramebufferAttachmentImageInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ usage;
uint32_t width;
uint32_t height;
uint32_t layerCount;
uint32_t viewFormatCount;
const $* pViewFormats;
}]], mod.VkStructureType, mod.VkImageCreateFlags, mod.VkImageUsageFlags, mod.VkFormat)
mod.VkFramebufferAttachmentsCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t attachmentImageInfoCount;
const $* pAttachmentImageInfos;
}]], mod.VkStructureType, mod.VkFramebufferAttachmentImageInfo)
mod.VkRenderPassAttachmentBeginInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t attachmentCount;
const $* pAttachments;
}]], mod.VkStructureType, mod.VkImageView)
mod.VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ separateDepthStencilLayouts;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkAttachmentReferenceStencilLayout = ffi.typeof([[struct {
$ sType;
void* pNext;
$ stencilLayout;
}]], mod.VkStructureType, mod.VkImageLayout)
mod.VkAttachmentDescriptionStencilLayout = ffi.typeof([[struct {
$ sType;
void* pNext;
$ stencilInitialLayout;
$ stencilFinalLayout;
}]], mod.VkStructureType, mod.VkImageLayout, mod.VkImageLayout)
mod.PFN_vkResetQueryPool = ffi.typeof([[void (*)($ , $ , uint32_t , uint32_t )]], mod.VkDevice, mod.VkQueryPool)
mod.PFN_vkGetSemaphoreCounterValue = ffi.typeof([[$ (*)($ , $ , uint64_t*)]], mod.VkResult, mod.VkDevice, mod.VkSemaphore)
mod.PFN_vkWaitSemaphores = ffi.typeof([[$ (*)($ , const $*, uint64_t )]], mod.VkResult, mod.VkDevice, mod.VkSemaphoreWaitInfo)
mod.PFN_vkSignalSemaphore = ffi.typeof([[$ (*)($ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkSemaphoreSignalInfo)
mod.PFN_vkGetBufferDeviceAddress = ffi.typeof([[$ (*)($ , const $*)]], mod.VkDeviceAddress, mod.VkDevice, mod.VkBufferDeviceAddressInfo)
mod.PFN_vkGetBufferOpaqueCaptureAddress = ffi.typeof([[uint64_t (*)($ , const $*)]], mod.VkDevice, mod.VkBufferDeviceAddressInfo)
mod.PFN_vkGetDeviceMemoryOpaqueCaptureAddress = ffi.typeof([[uint64_t (*)($ , const $*)]], mod.VkDevice, mod.VkDeviceMemoryOpaqueCaptureAddressInfo)
mod.PFN_vkCmdDrawIndirectCount = ffi.typeof([[void (*)($ , $ , $ , $ , $ , uint32_t , uint32_t )]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkBuffer, mod.VkDeviceSize)
mod.PFN_vkCmdDrawIndexedIndirectCount = ffi.typeof([[void (*)($ , $ , $ , $ , $ , uint32_t , uint32_t )]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkBuffer, mod.VkDeviceSize)
mod.PFN_vkCreateRenderPass2 = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkRenderPassCreateInfo2, mod.VkAllocationCallbacks, mod.VkRenderPass)
mod.PFN_vkCmdBeginRenderPass2 = ffi.typeof([[void (*)($ , const $*, const $*)]], mod.VkCommandBuffer, mod.VkRenderPassBeginInfo, mod.VkSubpassBeginInfo)
mod.PFN_vkCmdNextSubpass2 = ffi.typeof([[void (*)($ , const $*, const $*)]], mod.VkCommandBuffer, mod.VkSubpassBeginInfo, mod.VkSubpassEndInfo)
mod.PFN_vkCmdEndRenderPass2 = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkSubpassEndInfo)
ffi.cdef([[void vkResetQueryPool($ , $ , uint32_t , uint32_t );]], mod.VkDevice, mod.VkQueryPool)
ffi.cdef([[$ vkGetSemaphoreCounterValue($ , $ , uint64_t*);]], mod.VkResult, mod.VkDevice, mod.VkSemaphore)
ffi.cdef([[$ vkWaitSemaphores($ , const $*, uint64_t );]], mod.VkResult, mod.VkDevice, mod.VkSemaphoreWaitInfo)
ffi.cdef([[$ vkSignalSemaphore($ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkSemaphoreSignalInfo)
ffi.cdef([[$ vkGetBufferDeviceAddress($ , const $*);]], mod.VkDeviceAddress, mod.VkDevice, mod.VkBufferDeviceAddressInfo)
ffi.cdef([[uint64_t vkGetBufferOpaqueCaptureAddress($ , const $*);]], mod.VkDevice, mod.VkBufferDeviceAddressInfo)
ffi.cdef([[uint64_t vkGetDeviceMemoryOpaqueCaptureAddress($ , const $*);]], mod.VkDevice, mod.VkDeviceMemoryOpaqueCaptureAddressInfo)
ffi.cdef([[void vkCmdDrawIndirectCount($ , $ , $ , $ , $ , uint32_t , uint32_t );]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkBuffer, mod.VkDeviceSize)
ffi.cdef([[void vkCmdDrawIndexedIndirectCount($ , $ , $ , $ , $ , uint32_t , uint32_t );]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkBuffer, mod.VkDeviceSize)
ffi.cdef([[$ vkCreateRenderPass2($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkRenderPassCreateInfo2, mod.VkAllocationCallbacks, mod.VkRenderPass)
ffi.cdef([[void vkCmdBeginRenderPass2($ , const $*, const $*);]], mod.VkCommandBuffer, mod.VkRenderPassBeginInfo, mod.VkSubpassBeginInfo)
ffi.cdef([[void vkCmdNextSubpass2($ , const $*, const $*);]], mod.VkCommandBuffer, mod.VkSubpassBeginInfo, mod.VkSubpassEndInfo)
ffi.cdef([[void vkCmdEndRenderPass2($ , const $*);]], mod.VkCommandBuffer, mod.VkSubpassEndInfo)
mod.VkFlags64 = ffi.typeof([[uint64_t ]])
mod.VkPrivateDataSlot = ffi.typeof([[void*]])
mod.VkToolPurposeFlagBits = ffi.typeof([[enum {
VK_TOOL_PURPOSE_VALIDATION_BIT,
VK_TOOL_PURPOSE_PROFILING_BIT,
VK_TOOL_PURPOSE_TRACING_BIT,
VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,
VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,
VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT,
VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT,
VK_TOOL_PURPOSE_VALIDATION_BIT_EXT,
VK_TOOL_PURPOSE_PROFILING_BIT_EXT,
VK_TOOL_PURPOSE_TRACING_BIT_EXT,
VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT,
VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT,
VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM,
}]])
mod.VkToolPurposeFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPrivateDataSlotCreateFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPipelineStageFlags2 = ffi.typeof([[$ ]], mod.VkFlags64)
mod.VkPipelineStageFlagBits2 = ffi.typeof([[$ ]], mod.VkFlags64)
mod.VK_PIPELINE_STAGE_2_NONE = 0ULL
mod.VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT = 0x00000001ULL
mod.VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT = 0x00000002ULL
mod.VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT = 0x00000004ULL
mod.VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT = 0x00000008ULL
mod.VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010ULL
mod.VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020ULL
mod.VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT = 0x00000040ULL
mod.VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT = 0x00000080ULL
mod.VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT = 0x00000100ULL
mod.VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = 0x00000200ULL
mod.VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400ULL
mod.VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT = 0x00000800ULL
mod.VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT = 0x00001000ULL
mod.VK_PIPELINE_STAGE_2_TRANSFER_BIT = 0x00001000ULL
mod.VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT = 0x00002000ULL
mod.VK_PIPELINE_STAGE_2_HOST_BIT = 0x00004000ULL
mod.VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT = 0x00008000ULL
mod.VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT = 0x00010000ULL
mod.VK_PIPELINE_STAGE_2_COPY_BIT = 0x100000000ULL
mod.VK_PIPELINE_STAGE_2_RESOLVE_BIT = 0x200000000ULL
mod.VK_PIPELINE_STAGE_2_BLIT_BIT = 0x400000000ULL
mod.VK_PIPELINE_STAGE_2_CLEAR_BIT = 0x800000000ULL
mod.VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT = 0x1000000000ULL
mod.VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT = 0x2000000000ULL
mod.VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = 0x4000000000ULL
mod.VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0x04000000ULL
mod.VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0x08000000ULL
mod.VK_PIPELINE_STAGE_2_NONE_KHR = 0ULL
mod.VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = 0x00000001ULL
mod.VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = 0x00000002ULL
mod.VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = 0x00000004ULL
mod.VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = 0x00000008ULL
mod.VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = 0x00000010ULL
mod.VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = 0x00000020ULL
mod.VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = 0x00000040ULL
mod.VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = 0x00000080ULL
mod.VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = 0x00000100ULL
mod.VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = 0x00000200ULL
mod.VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = 0x00000400ULL
mod.VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = 0x00000800ULL
mod.VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = 0x00001000ULL
mod.VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR = 0x00001000ULL
mod.VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = 0x00002000ULL
mod.VK_PIPELINE_STAGE_2_HOST_BIT_KHR = 0x00004000ULL
mod.VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = 0x00008000ULL
mod.VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = 0x00010000ULL
mod.VK_PIPELINE_STAGE_2_COPY_BIT_KHR = 0x100000000ULL
mod.VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR = 0x200000000ULL
mod.VK_PIPELINE_STAGE_2_BLIT_BIT_KHR = 0x400000000ULL
mod.VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR = 0x800000000ULL
mod.VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = 0x1000000000ULL
mod.VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = 0x2000000000ULL
mod.VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = 0x4000000000ULL
mod.VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000ULL
mod.VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000ULL
mod.VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0x00020000ULL
mod.VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT = 0x00020000ULL
mod.VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000ULL
mod.VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = 0x00400000ULL
mod.VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000ULL
mod.VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0x00200000ULL
mod.VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = 0x00200000ULL
mod.VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000ULL
mod.VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000ULL
mod.VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = 0x00080000ULL
mod.VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = 0x00100000ULL
mod.VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT = 0x00080000ULL
mod.VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT = 0x00100000ULL
mod.VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI = 0x8000000000ULL
mod.VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = 0x8000000000ULL
mod.VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0x10000000000ULL
mod.VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR = 0x10000000ULL
mod.VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT = 0x40000000ULL
mod.VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI = 0x20000000000ULL
mod.VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV = 0x20000000ULL
mod.VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV = 0x100000000000ULL
mod.VK_PIPELINE_STAGE_2_DATA_GRAPH_BIT_ARM = 0x40000000000ULL
mod.VK_PIPELINE_STAGE_2_COPY_INDIRECT_BIT_KHR = 0x400000000000ULL
mod.VK_PIPELINE_STAGE_2_MEMORY_DECOMPRESSION_BIT_EXT = 0x200000000000ULL
mod.VkAccessFlags2 = ffi.typeof([[$ ]], mod.VkFlags64)
mod.VkAccessFlagBits2 = ffi.typeof([[$ ]], mod.VkFlags64)
mod.VK_ACCESS_2_NONE = 0ULL
mod.VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT = 0x00000001ULL
mod.VK_ACCESS_2_INDEX_READ_BIT = 0x00000002ULL
mod.VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004ULL
mod.VK_ACCESS_2_UNIFORM_READ_BIT = 0x00000008ULL
mod.VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT = 0x00000010ULL
mod.VK_ACCESS_2_SHADER_READ_BIT = 0x00000020ULL
mod.VK_ACCESS_2_SHADER_WRITE_BIT = 0x00000040ULL
mod.VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT = 0x00000080ULL
mod.VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100ULL
mod.VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200ULL
mod.VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400ULL
mod.VK_ACCESS_2_TRANSFER_READ_BIT = 0x00000800ULL
mod.VK_ACCESS_2_TRANSFER_WRITE_BIT = 0x00001000ULL
mod.VK_ACCESS_2_HOST_READ_BIT = 0x00002000ULL
mod.VK_ACCESS_2_HOST_WRITE_BIT = 0x00004000ULL
mod.VK_ACCESS_2_MEMORY_READ_BIT = 0x00008000ULL
mod.VK_ACCESS_2_MEMORY_WRITE_BIT = 0x00010000ULL
mod.VK_ACCESS_2_SHADER_SAMPLED_READ_BIT = 0x100000000ULL
mod.VK_ACCESS_2_SHADER_STORAGE_READ_BIT = 0x200000000ULL
mod.VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT = 0x400000000ULL
mod.VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0x800000000ULL
mod.VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0x1000000000ULL
mod.VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0x2000000000ULL
mod.VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = 0x4000000000ULL
mod.VK_ACCESS_2_SHADER_TILE_ATTACHMENT_READ_BIT_QCOM = 0x8000000000000ULL
mod.VK_ACCESS_2_SHADER_TILE_ATTACHMENT_WRITE_BIT_QCOM = 0x10000000000000ULL
mod.VK_ACCESS_2_NONE_KHR = 0ULL
mod.VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = 0x00000001ULL
mod.VK_ACCESS_2_INDEX_READ_BIT_KHR = 0x00000002ULL
mod.VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = 0x00000004ULL
mod.VK_ACCESS_2_UNIFORM_READ_BIT_KHR = 0x00000008ULL
mod.VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = 0x00000010ULL
mod.VK_ACCESS_2_SHADER_READ_BIT_KHR = 0x00000020ULL
mod.VK_ACCESS_2_SHADER_WRITE_BIT_KHR = 0x00000040ULL
mod.VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = 0x00000080ULL
mod.VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = 0x00000100ULL
mod.VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = 0x00000200ULL
mod.VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = 0x00000400ULL
mod.VK_ACCESS_2_TRANSFER_READ_BIT_KHR = 0x00000800ULL
mod.VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR = 0x00001000ULL
mod.VK_ACCESS_2_HOST_READ_BIT_KHR = 0x00002000ULL
mod.VK_ACCESS_2_HOST_WRITE_BIT_KHR = 0x00004000ULL
mod.VK_ACCESS_2_MEMORY_READ_BIT_KHR = 0x00008000ULL
mod.VK_ACCESS_2_MEMORY_WRITE_BIT_KHR = 0x00010000ULL
mod.VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = 0x100000000ULL
mod.VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = 0x200000000ULL
mod.VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = 0x400000000ULL
mod.VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000ULL
mod.VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000ULL
mod.VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000ULL
mod.VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000ULL
mod.VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000ULL
mod.VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000ULL
mod.VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_EXT = 0x00020000ULL
mod.VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXT = 0x00040000ULL
mod.VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000ULL
mod.VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000ULL
mod.VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000ULL
mod.VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000ULL
mod.VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000ULL
mod.VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000ULL
mod.VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000ULL
mod.VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000ULL
mod.VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT = 0x20000000000ULL
mod.VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = 0x8000000000ULL
mod.VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR = 0x10000000000ULL
mod.VK_ACCESS_2_MICROMAP_READ_BIT_EXT = 0x100000000000ULL
mod.VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT = 0x200000000000ULL
mod.VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV = 0x40000000000ULL
mod.VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV = 0x80000000000ULL
mod.VK_ACCESS_2_DATA_GRAPH_READ_BIT_ARM = 0x800000000000ULL
mod.VK_ACCESS_2_DATA_GRAPH_WRITE_BIT_ARM = 0x1000000000000ULL
mod.VK_ACCESS_2_MEMORY_DECOMPRESSION_READ_BIT_EXT = 0x80000000000000ULL
mod.VK_ACCESS_2_MEMORY_DECOMPRESSION_WRITE_BIT_EXT = 0x100000000000000ULL
mod.VkSubmitFlagBits = ffi.typeof([[enum {
VK_SUBMIT_PROTECTED_BIT,
VK_SUBMIT_PROTECTED_BIT_KHR,
VK_SUBMIT_FLAG_BITS_MAX_ENUM,
}]])
mod.VkSubmitFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkFormatFeatureFlags2 = ffi.typeof([[$ ]], mod.VkFlags64)
mod.VkFormatFeatureFlagBits2 = ffi.typeof([[$ ]], mod.VkFlags64)
mod.VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT = 0x00000001ULL
mod.VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT = 0x00000002ULL
mod.VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004ULL
mod.VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008ULL
mod.VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000010ULL
mod.VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020ULL
mod.VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT = 0x00000040ULL
mod.VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT = 0x00000080ULL
mod.VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100ULL
mod.VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200ULL
mod.VK_FORMAT_FEATURE_2_BLIT_SRC_BIT = 0x00000400ULL
mod.VK_FORMAT_FEATURE_2_BLIT_DST_BIT = 0x00000800ULL
mod.VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000ULL
mod.VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT = 0x00004000ULL
mod.VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT = 0x00008000ULL
mod.VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000ULL
mod.VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000ULL
mod.VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000ULL
mod.VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000ULL
mod.VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000ULL
mod.VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000ULL
mod.VK_FORMAT_FEATURE_2_DISJOINT_BIT = 0x00400000ULL
mod.VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT = 0x00800000ULL
mod.VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT = 0x80000000ULL
mod.VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT = 0x100000000ULL
mod.VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT = 0x200000000ULL
mod.VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT = 0x00002000ULL
mod.VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT = 0x400000000000ULL
mod.VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000ULL
mod.VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000ULL
mod.VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000ULL
mod.VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000ULL
mod.VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000ULL
mod.VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT = 0x400000000000ULL
mod.VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000ULL
mod.VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000ULL
mod.VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR = 0x00000001ULL
mod.VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR = 0x00000002ULL
mod.VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR = 0x00000004ULL
mod.VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL
mod.VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000010ULL
mod.VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR = 0x00000020ULL
mod.VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR = 0x00000040ULL
mod.VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR = 0x00000080ULL
mod.VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR = 0x00000100ULL
mod.VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR = 0x00000200ULL
mod.VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR = 0x00000400ULL
mod.VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR = 0x00000800ULL
mod.VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR = 0x00001000ULL
mod.VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR = 0x00004000ULL
mod.VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR = 0x00008000ULL
mod.VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000ULL
mod.VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000ULL
mod.VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000ULL
mod.VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000ULL
mod.VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000ULL
mod.VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR = 0x00400000ULL
mod.VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000ULL
mod.VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR = 0x80000000ULL
mod.VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR = 0x100000000ULL
mod.VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR = 0x200000000ULL
mod.VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR = 0x00010000ULL
mod.VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000ULL
mod.VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_RADIUS_BUFFER_BIT_NV = 0x8000000000000ULL
mod.VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = 0x4000000000ULL
mod.VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM = 0x400000000ULL
mod.VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM = 0x800000000ULL
mod.VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM = 0x1000000000ULL
mod.VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM = 0x2000000000ULL
mod.VK_FORMAT_FEATURE_2_TENSOR_SHADER_BIT_ARM = 0x8000000000ULL
mod.VK_FORMAT_FEATURE_2_TENSOR_IMAGE_ALIASING_BIT_ARM = 0x80000000000ULL
mod.VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV = 0x10000000000ULL
mod.VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV = 0x20000000000ULL
mod.VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV = 0x40000000000ULL
mod.VK_FORMAT_FEATURE_2_TENSOR_DATA_GRAPH_BIT_ARM = 0x1000000000000ULL
mod.VK_FORMAT_FEATURE_2_COPY_IMAGE_INDIRECT_DST_BIT_KHR = 0x800000000000000ULL
mod.VK_FORMAT_FEATURE_2_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x2000000000000ULL
mod.VK_FORMAT_FEATURE_2_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x4000000000000ULL
mod.VK_FORMAT_FEATURE_2_DEPTH_COPY_ON_COMPUTE_QUEUE_BIT_KHR = 0x10000000000000ULL
mod.VK_FORMAT_FEATURE_2_DEPTH_COPY_ON_TRANSFER_QUEUE_BIT_KHR = 0x20000000000000ULL
mod.VK_FORMAT_FEATURE_2_STENCIL_COPY_ON_COMPUTE_QUEUE_BIT_KHR = 0x40000000000000ULL
mod.VK_FORMAT_FEATURE_2_STENCIL_COPY_ON_TRANSFER_QUEUE_BIT_KHR = 0x80000000000000ULL
mod.VkPipelineCreationFeedbackFlagBits = ffi.typeof([[enum {
VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,
VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,
VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT,
VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT,
VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT,
VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT,
VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM,
}]])
mod.VkPipelineCreationFeedbackFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkRenderingFlagBits = ffi.typeof([[enum {
VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,
VK_RENDERING_SUSPENDING_BIT,
VK_RENDERING_RESUMING_BIT,
VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT,
VK_RENDERING_CONTENTS_INLINE_BIT_KHR,
VK_RENDERING_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE,
VK_RENDERING_LOCAL_READ_CONCURRENT_ACCESS_CONTROL_BIT_KHR,
VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR,
VK_RENDERING_SUSPENDING_BIT_KHR,
VK_RENDERING_RESUMING_BIT_KHR,
VK_RENDERING_CONTENTS_INLINE_BIT_EXT,
VK_RENDERING_FLAG_BITS_MAX_ENUM,
}]])
mod.VkRenderingFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPhysicalDeviceVulkan13Features = ffi.typeof([[struct {
$ sType;
void* pNext;
$ robustImageAccess;
$ inlineUniformBlock;
$ descriptorBindingInlineUniformBlockUpdateAfterBind;
$ pipelineCreationCacheControl;
$ privateData;
$ shaderDemoteToHelperInvocation;
$ shaderTerminateInvocation;
$ subgroupSizeControl;
$ computeFullSubgroups;
$ synchronization2;
$ textureCompressionASTC_HDR;
$ shaderZeroInitializeWorkgroupMemory;
$ dynamicRendering;
$ shaderIntegerDotProduct;
$ maintenance4;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceVulkan13Properties = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t minSubgroupSize;
uint32_t maxSubgroupSize;
uint32_t maxComputeWorkgroupSubgroups;
$ requiredSubgroupSizeStages;
uint32_t maxInlineUniformBlockSize;
uint32_t maxPerStageDescriptorInlineUniformBlocks;
uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
uint32_t maxDescriptorSetInlineUniformBlocks;
uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
uint32_t maxInlineUniformTotalSize;
$ integerDotProduct8BitUnsignedAccelerated;
$ integerDotProduct8BitSignedAccelerated;
$ integerDotProduct8BitMixedSignednessAccelerated;
$ integerDotProduct4x8BitPackedUnsignedAccelerated;
$ integerDotProduct4x8BitPackedSignedAccelerated;
$ integerDotProduct4x8BitPackedMixedSignednessAccelerated;
$ integerDotProduct16BitUnsignedAccelerated;
$ integerDotProduct16BitSignedAccelerated;
$ integerDotProduct16BitMixedSignednessAccelerated;
$ integerDotProduct32BitUnsignedAccelerated;
$ integerDotProduct32BitSignedAccelerated;
$ integerDotProduct32BitMixedSignednessAccelerated;
$ integerDotProduct64BitUnsignedAccelerated;
$ integerDotProduct64BitSignedAccelerated;
$ integerDotProduct64BitMixedSignednessAccelerated;
$ integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
$ integerDotProductAccumulatingSaturating8BitSignedAccelerated;
$ integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
$ integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
$ integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
$ integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
$ integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
$ integerDotProductAccumulatingSaturating16BitSignedAccelerated;
$ integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
$ integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
$ integerDotProductAccumulatingSaturating32BitSignedAccelerated;
$ integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
$ integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
$ integerDotProductAccumulatingSaturating64BitSignedAccelerated;
$ integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
$ storageTexelBufferOffsetAlignmentBytes;
$ storageTexelBufferOffsetSingleTexelAlignment;
$ uniformTexelBufferOffsetAlignmentBytes;
$ uniformTexelBufferOffsetSingleTexelAlignment;
$ maxBufferSize;
}]], mod.VkStructureType, mod.VkShaderStageFlags, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkDeviceSize, mod.VkBool32, mod.VkDeviceSize, mod.VkBool32, mod.VkDeviceSize)
mod.VkPhysicalDeviceToolProperties = ffi.typeof([[struct {
$ sType;
void* pNext;
char name[256U];
char version[256U];
$ purposes;
char description[256U];
char layer[256U];
}]], mod.VkStructureType, mod.VkToolPurposeFlags)
mod.VkPhysicalDevicePrivateDataFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ privateData;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkDevicePrivateDataCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t privateDataSlotRequestCount;
}]], mod.VkStructureType)
mod.VkPrivateDataSlotCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
}]], mod.VkStructureType, mod.VkPrivateDataSlotCreateFlags)
mod.VkMemoryBarrier2 = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ srcStageMask;
$ srcAccessMask;
$ dstStageMask;
$ dstAccessMask;
}]], mod.VkStructureType, mod.VkPipelineStageFlags2, mod.VkAccessFlags2, mod.VkPipelineStageFlags2, mod.VkAccessFlags2)
mod.VkBufferMemoryBarrier2 = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ srcStageMask;
$ srcAccessMask;
$ dstStageMask;
$ dstAccessMask;
uint32_t srcQueueFamilyIndex;
uint32_t dstQueueFamilyIndex;
$ buffer;
$ offset;
$ size;
}]], mod.VkStructureType, mod.VkPipelineStageFlags2, mod.VkAccessFlags2, mod.VkPipelineStageFlags2, mod.VkAccessFlags2, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize)
mod.VkImageMemoryBarrier2 = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ srcStageMask;
$ srcAccessMask;
$ dstStageMask;
$ dstAccessMask;
$ oldLayout;
$ newLayout;
uint32_t srcQueueFamilyIndex;
uint32_t dstQueueFamilyIndex;
$ image;
$ subresourceRange;
}]], mod.VkStructureType, mod.VkPipelineStageFlags2, mod.VkAccessFlags2, mod.VkPipelineStageFlags2, mod.VkAccessFlags2, mod.VkImageLayout, mod.VkImageLayout, mod.VkImage, mod.VkImageSubresourceRange)
mod.VkDependencyInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ dependencyFlags;
uint32_t memoryBarrierCount;
const $* pMemoryBarriers;
uint32_t bufferMemoryBarrierCount;
const $* pBufferMemoryBarriers;
uint32_t imageMemoryBarrierCount;
const $* pImageMemoryBarriers;
}]], mod.VkStructureType, mod.VkDependencyFlags, mod.VkMemoryBarrier2, mod.VkBufferMemoryBarrier2, mod.VkImageMemoryBarrier2)
mod.VkSemaphoreSubmitInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ semaphore;
uint64_t value;
$ stageMask;
uint32_t deviceIndex;
}]], mod.VkStructureType, mod.VkSemaphore, mod.VkPipelineStageFlags2)
mod.VkCommandBufferSubmitInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ commandBuffer;
uint32_t deviceMask;
}]], mod.VkStructureType, mod.VkCommandBuffer)
mod.VkSubmitInfo2 = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
uint32_t waitSemaphoreInfoCount;
const $* pWaitSemaphoreInfos;
uint32_t commandBufferInfoCount;
const $* pCommandBufferInfos;
uint32_t signalSemaphoreInfoCount;
const $* pSignalSemaphoreInfos;
}]], mod.VkStructureType, mod.VkSubmitFlags, mod.VkSemaphoreSubmitInfo, mod.VkCommandBufferSubmitInfo, mod.VkSemaphoreSubmitInfo)
mod.VkPhysicalDeviceSynchronization2Features = ffi.typeof([[struct {
$ sType;
void* pNext;
$ synchronization2;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkBufferCopy2 = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ srcOffset;
$ dstOffset;
$ size;
}]], mod.VkStructureType, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkDeviceSize)
mod.VkCopyBufferInfo2 = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ srcBuffer;
$ dstBuffer;
uint32_t regionCount;
const $* pRegions;
}]], mod.VkStructureType, mod.VkBuffer, mod.VkBuffer, mod.VkBufferCopy2)
mod.VkImageCopy2 = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ srcSubresource;
$ srcOffset;
$ dstSubresource;
$ dstOffset;
$ extent;
}]], mod.VkStructureType, mod.VkImageSubresourceLayers, mod.VkOffset3D, mod.VkImageSubresourceLayers, mod.VkOffset3D, mod.VkExtent3D)
mod.VkCopyImageInfo2 = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ srcImage;
$ srcImageLayout;
$ dstImage;
$ dstImageLayout;
uint32_t regionCount;
const $* pRegions;
}]], mod.VkStructureType, mod.VkImage, mod.VkImageLayout, mod.VkImage, mod.VkImageLayout, mod.VkImageCopy2)
mod.VkBufferImageCopy2 = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ bufferOffset;
uint32_t bufferRowLength;
uint32_t bufferImageHeight;
$ imageSubresource;
$ imageOffset;
$ imageExtent;
}]], mod.VkStructureType, mod.VkDeviceSize, mod.VkImageSubresourceLayers, mod.VkOffset3D, mod.VkExtent3D)
mod.VkCopyBufferToImageInfo2 = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ srcBuffer;
$ dstImage;
$ dstImageLayout;
uint32_t regionCount;
const $* pRegions;
}]], mod.VkStructureType, mod.VkBuffer, mod.VkImage, mod.VkImageLayout, mod.VkBufferImageCopy2)
mod.VkCopyImageToBufferInfo2 = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ srcImage;
$ srcImageLayout;
$ dstBuffer;
uint32_t regionCount;
const $* pRegions;
}]], mod.VkStructureType, mod.VkImage, mod.VkImageLayout, mod.VkBuffer, mod.VkBufferImageCopy2)
mod.VkPhysicalDeviceTextureCompressionASTCHDRFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ textureCompressionASTC_HDR;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkFormatProperties3 = ffi.typeof([[struct {
$ sType;
void* pNext;
$ linearTilingFeatures;
$ optimalTilingFeatures;
$ bufferFeatures;
}]], mod.VkStructureType, mod.VkFormatFeatureFlags2, mod.VkFormatFeatureFlags2, mod.VkFormatFeatureFlags2)
mod.VkPhysicalDeviceMaintenance4Features = ffi.typeof([[struct {
$ sType;
void* pNext;
$ maintenance4;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceMaintenance4Properties = ffi.typeof([[struct {
$ sType;
void* pNext;
$ maxBufferSize;
}]], mod.VkStructureType, mod.VkDeviceSize)
mod.VkDeviceBufferMemoryRequirements = ffi.typeof([[struct {
$ sType;
const void* pNext;
const $* pCreateInfo;
}]], mod.VkStructureType, mod.VkBufferCreateInfo)
mod.VkDeviceImageMemoryRequirements = ffi.typeof([[struct {
$ sType;
const void* pNext;
const $* pCreateInfo;
$ planeAspect;
}]], mod.VkStructureType, mod.VkImageCreateInfo, mod.VkImageAspectFlagBits)
mod.VkPipelineCreationFeedback = ffi.typeof([[struct {
$ flags;
uint64_t duration;
}]], mod.VkPipelineCreationFeedbackFlags)
mod.VkPipelineCreationFeedbackCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$* pPipelineCreationFeedback;
uint32_t pipelineStageCreationFeedbackCount;
$* pPipelineStageCreationFeedbacks;
}]], mod.VkStructureType, mod.VkPipelineCreationFeedback, mod.VkPipelineCreationFeedback)
mod.VkPhysicalDeviceShaderTerminateInvocationFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderTerminateInvocation;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderDemoteToHelperInvocation;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDevicePipelineCreationCacheControlFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ pipelineCreationCacheControl;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderZeroInitializeWorkgroupMemory;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceImageRobustnessFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ robustImageAccess;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceSubgroupSizeControlFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ subgroupSizeControl;
$ computeFullSubgroups;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceSubgroupSizeControlProperties = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t minSubgroupSize;
uint32_t maxSubgroupSize;
uint32_t maxComputeWorkgroupSubgroups;
$ requiredSubgroupSizeStages;
}]], mod.VkStructureType, mod.VkShaderStageFlags)
mod.VkPipelineShaderStageRequiredSubgroupSizeCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t requiredSubgroupSize;
}]], mod.VkStructureType)
mod.VkPhysicalDeviceInlineUniformBlockFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ inlineUniformBlock;
$ descriptorBindingInlineUniformBlockUpdateAfterBind;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceInlineUniformBlockProperties = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t maxInlineUniformBlockSize;
uint32_t maxPerStageDescriptorInlineUniformBlocks;
uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
uint32_t maxDescriptorSetInlineUniformBlocks;
uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
}]], mod.VkStructureType)
mod.VkWriteDescriptorSetInlineUniformBlock = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t dataSize;
const void* pData;
}]], mod.VkStructureType)
mod.VkDescriptorPoolInlineUniformBlockCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t maxInlineUniformBlockBindings;
}]], mod.VkStructureType)
mod.VkPhysicalDeviceShaderIntegerDotProductFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderIntegerDotProduct;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceShaderIntegerDotProductProperties = ffi.typeof([[struct {
$ sType;
void* pNext;
$ integerDotProduct8BitUnsignedAccelerated;
$ integerDotProduct8BitSignedAccelerated;
$ integerDotProduct8BitMixedSignednessAccelerated;
$ integerDotProduct4x8BitPackedUnsignedAccelerated;
$ integerDotProduct4x8BitPackedSignedAccelerated;
$ integerDotProduct4x8BitPackedMixedSignednessAccelerated;
$ integerDotProduct16BitUnsignedAccelerated;
$ integerDotProduct16BitSignedAccelerated;
$ integerDotProduct16BitMixedSignednessAccelerated;
$ integerDotProduct32BitUnsignedAccelerated;
$ integerDotProduct32BitSignedAccelerated;
$ integerDotProduct32BitMixedSignednessAccelerated;
$ integerDotProduct64BitUnsignedAccelerated;
$ integerDotProduct64BitSignedAccelerated;
$ integerDotProduct64BitMixedSignednessAccelerated;
$ integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
$ integerDotProductAccumulatingSaturating8BitSignedAccelerated;
$ integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
$ integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
$ integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
$ integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
$ integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
$ integerDotProductAccumulatingSaturating16BitSignedAccelerated;
$ integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
$ integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
$ integerDotProductAccumulatingSaturating32BitSignedAccelerated;
$ integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
$ integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
$ integerDotProductAccumulatingSaturating64BitSignedAccelerated;
$ integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceTexelBufferAlignmentProperties = ffi.typeof([[struct {
$ sType;
void* pNext;
$ storageTexelBufferOffsetAlignmentBytes;
$ storageTexelBufferOffsetSingleTexelAlignment;
$ uniformTexelBufferOffsetAlignmentBytes;
$ uniformTexelBufferOffsetSingleTexelAlignment;
}]], mod.VkStructureType, mod.VkDeviceSize, mod.VkBool32, mod.VkDeviceSize, mod.VkBool32)
mod.VkImageBlit2 = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ srcSubresource;
$ srcOffsets[2];
$ dstSubresource;
$ dstOffsets[2];
}]], mod.VkStructureType, mod.VkImageSubresourceLayers, mod.VkOffset3D, mod.VkImageSubresourceLayers, mod.VkOffset3D)
mod.VkBlitImageInfo2 = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ srcImage;
$ srcImageLayout;
$ dstImage;
$ dstImageLayout;
uint32_t regionCount;
const $* pRegions;
$ filter;
}]], mod.VkStructureType, mod.VkImage, mod.VkImageLayout, mod.VkImage, mod.VkImageLayout, mod.VkImageBlit2, mod.VkFilter)
mod.VkImageResolve2 = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ srcSubresource;
$ srcOffset;
$ dstSubresource;
$ dstOffset;
$ extent;
}]], mod.VkStructureType, mod.VkImageSubresourceLayers, mod.VkOffset3D, mod.VkImageSubresourceLayers, mod.VkOffset3D, mod.VkExtent3D)
mod.VkResolveImageInfo2 = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ srcImage;
$ srcImageLayout;
$ dstImage;
$ dstImageLayout;
uint32_t regionCount;
const $* pRegions;
}]], mod.VkStructureType, mod.VkImage, mod.VkImageLayout, mod.VkImage, mod.VkImageLayout, mod.VkImageResolve2)
mod.VkRenderingAttachmentInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ imageView;
$ imageLayout;
$ resolveMode;
$ resolveImageView;
$ resolveImageLayout;
$ loadOp;
$ storeOp;
$ clearValue;
}]], mod.VkStructureType, mod.VkImageView, mod.VkImageLayout, mod.VkResolveModeFlagBits, mod.VkImageView, mod.VkImageLayout, mod.VkAttachmentLoadOp, mod.VkAttachmentStoreOp, mod.VkClearValue)
mod.VkRenderingInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ renderArea;
uint32_t layerCount;
uint32_t viewMask;
uint32_t colorAttachmentCount;
const $* pColorAttachments;
const $* pDepthAttachment;
const $* pStencilAttachment;
}]], mod.VkStructureType, mod.VkRenderingFlags, mod.VkRect2D, mod.VkRenderingAttachmentInfo, mod.VkRenderingAttachmentInfo, mod.VkRenderingAttachmentInfo)
mod.VkPipelineRenderingCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t viewMask;
uint32_t colorAttachmentCount;
const $* pColorAttachmentFormats;
$ depthAttachmentFormat;
$ stencilAttachmentFormat;
}]], mod.VkStructureType, mod.VkFormat, mod.VkFormat, mod.VkFormat)
mod.VkPhysicalDeviceDynamicRenderingFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ dynamicRendering;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkCommandBufferInheritanceRenderingInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
uint32_t viewMask;
uint32_t colorAttachmentCount;
const $* pColorAttachmentFormats;
$ depthAttachmentFormat;
$ stencilAttachmentFormat;
$ rasterizationSamples;
}]], mod.VkStructureType, mod.VkRenderingFlags, mod.VkFormat, mod.VkFormat, mod.VkFormat, mod.VkSampleCountFlagBits)
mod.PFN_vkGetPhysicalDeviceToolProperties = ffi.typeof([[$ (*)($ , uint32_t*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkPhysicalDeviceToolProperties)
mod.PFN_vkCreatePrivateDataSlot = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkPrivateDataSlotCreateInfo, mod.VkAllocationCallbacks, mod.VkPrivateDataSlot)
mod.PFN_vkDestroyPrivateDataSlot = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkPrivateDataSlot, mod.VkAllocationCallbacks)
mod.PFN_vkSetPrivateData = ffi.typeof([[$ (*)($ , $ , uint64_t , $ , uint64_t )]], mod.VkResult, mod.VkDevice, mod.VkObjectType, mod.VkPrivateDataSlot)
mod.PFN_vkGetPrivateData = ffi.typeof([[void (*)($ , $ , uint64_t , $ , uint64_t*)]], mod.VkDevice, mod.VkObjectType, mod.VkPrivateDataSlot)
mod.PFN_vkCmdPipelineBarrier2 = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkDependencyInfo)
mod.PFN_vkCmdWriteTimestamp2 = ffi.typeof([[void (*)($ , $ , $ , uint32_t )]], mod.VkCommandBuffer, mod.VkPipelineStageFlags2, mod.VkQueryPool)
mod.PFN_vkQueueSubmit2 = ffi.typeof([[$ (*)($ , uint32_t , const $*, $ )]], mod.VkResult, mod.VkQueue, mod.VkSubmitInfo2, mod.VkFence)
mod.PFN_vkCmdCopyBuffer2 = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkCopyBufferInfo2)
mod.PFN_vkCmdCopyImage2 = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkCopyImageInfo2)
mod.PFN_vkCmdCopyBufferToImage2 = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkCopyBufferToImageInfo2)
mod.PFN_vkCmdCopyImageToBuffer2 = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkCopyImageToBufferInfo2)
mod.PFN_vkGetDeviceBufferMemoryRequirements = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkDevice, mod.VkDeviceBufferMemoryRequirements, mod.VkMemoryRequirements2)
mod.PFN_vkGetDeviceImageMemoryRequirements = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkDevice, mod.VkDeviceImageMemoryRequirements, mod.VkMemoryRequirements2)
mod.PFN_vkGetDeviceImageSparseMemoryRequirements = ffi.typeof([[void (*)($ , const $*, uint32_t*, $*)]], mod.VkDevice, mod.VkDeviceImageMemoryRequirements, mod.VkSparseImageMemoryRequirements2)
mod.PFN_vkCmdSetEvent2 = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkCommandBuffer, mod.VkEvent, mod.VkDependencyInfo)
mod.PFN_vkCmdResetEvent2 = ffi.typeof([[void (*)($ , $ , $ )]], mod.VkCommandBuffer, mod.VkEvent, mod.VkPipelineStageFlags2)
mod.PFN_vkCmdWaitEvents2 = ffi.typeof([[void (*)($ , uint32_t , const $*, const $*)]], mod.VkCommandBuffer, mod.VkEvent, mod.VkDependencyInfo)
mod.PFN_vkCmdBlitImage2 = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkBlitImageInfo2)
mod.PFN_vkCmdResolveImage2 = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkResolveImageInfo2)
mod.PFN_vkCmdBeginRendering = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkRenderingInfo)
mod.PFN_vkCmdEndRendering = ffi.typeof([[void (*)($ )]], mod.VkCommandBuffer)
mod.PFN_vkCmdSetCullMode = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkCullModeFlags)
mod.PFN_vkCmdSetFrontFace = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkFrontFace)
mod.PFN_vkCmdSetPrimitiveTopology = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkPrimitiveTopology)
mod.PFN_vkCmdSetViewportWithCount = ffi.typeof([[void (*)($ , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkViewport)
mod.PFN_vkCmdSetScissorWithCount = ffi.typeof([[void (*)($ , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkRect2D)
mod.PFN_vkCmdBindVertexBuffers2 = ffi.typeof([[void (*)($ , uint32_t , uint32_t , const $*, const $*, const $*, const $*)]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkDeviceSize)
mod.PFN_vkCmdSetDepthTestEnable = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkBool32)
mod.PFN_vkCmdSetDepthWriteEnable = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkBool32)
mod.PFN_vkCmdSetDepthCompareOp = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkCompareOp)
mod.PFN_vkCmdSetDepthBoundsTestEnable = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkBool32)
mod.PFN_vkCmdSetStencilTestEnable = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkBool32)
mod.PFN_vkCmdSetStencilOp = ffi.typeof([[void (*)($ , $ , $ , $ , $ , $ )]], mod.VkCommandBuffer, mod.VkStencilFaceFlags, mod.VkStencilOp, mod.VkStencilOp, mod.VkStencilOp, mod.VkCompareOp)
mod.PFN_vkCmdSetRasterizerDiscardEnable = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkBool32)
mod.PFN_vkCmdSetDepthBiasEnable = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkBool32)
mod.PFN_vkCmdSetPrimitiveRestartEnable = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[$ vkGetPhysicalDeviceToolProperties($ , uint32_t*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkPhysicalDeviceToolProperties)
ffi.cdef([[$ vkCreatePrivateDataSlot($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkPrivateDataSlotCreateInfo, mod.VkAllocationCallbacks, mod.VkPrivateDataSlot)
ffi.cdef([[void vkDestroyPrivateDataSlot($ , $ , const $*);]], mod.VkDevice, mod.VkPrivateDataSlot, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkSetPrivateData($ , $ , uint64_t , $ , uint64_t );]], mod.VkResult, mod.VkDevice, mod.VkObjectType, mod.VkPrivateDataSlot)
ffi.cdef([[void vkGetPrivateData($ , $ , uint64_t , $ , uint64_t*);]], mod.VkDevice, mod.VkObjectType, mod.VkPrivateDataSlot)
ffi.cdef([[void vkCmdPipelineBarrier2($ , const $*);]], mod.VkCommandBuffer, mod.VkDependencyInfo)
ffi.cdef([[void vkCmdWriteTimestamp2($ , $ , $ , uint32_t );]], mod.VkCommandBuffer, mod.VkPipelineStageFlags2, mod.VkQueryPool)
ffi.cdef([[$ vkQueueSubmit2($ , uint32_t , const $*, $ );]], mod.VkResult, mod.VkQueue, mod.VkSubmitInfo2, mod.VkFence)
ffi.cdef([[void vkCmdCopyBuffer2($ , const $*);]], mod.VkCommandBuffer, mod.VkCopyBufferInfo2)
ffi.cdef([[void vkCmdCopyImage2($ , const $*);]], mod.VkCommandBuffer, mod.VkCopyImageInfo2)
ffi.cdef([[void vkCmdCopyBufferToImage2($ , const $*);]], mod.VkCommandBuffer, mod.VkCopyBufferToImageInfo2)
ffi.cdef([[void vkCmdCopyImageToBuffer2($ , const $*);]], mod.VkCommandBuffer, mod.VkCopyImageToBufferInfo2)
ffi.cdef([[void vkGetDeviceBufferMemoryRequirements($ , const $*, $*);]], mod.VkDevice, mod.VkDeviceBufferMemoryRequirements, mod.VkMemoryRequirements2)
ffi.cdef([[void vkGetDeviceImageMemoryRequirements($ , const $*, $*);]], mod.VkDevice, mod.VkDeviceImageMemoryRequirements, mod.VkMemoryRequirements2)
ffi.cdef([[void vkGetDeviceImageSparseMemoryRequirements($ , const $*, uint32_t*, $*);]], mod.VkDevice, mod.VkDeviceImageMemoryRequirements, mod.VkSparseImageMemoryRequirements2)
ffi.cdef([[void vkCmdSetEvent2($ , $ , const $*);]], mod.VkCommandBuffer, mod.VkEvent, mod.VkDependencyInfo)
ffi.cdef([[void vkCmdResetEvent2($ , $ , $ );]], mod.VkCommandBuffer, mod.VkEvent, mod.VkPipelineStageFlags2)
ffi.cdef([[void vkCmdWaitEvents2($ , uint32_t , const $*, const $*);]], mod.VkCommandBuffer, mod.VkEvent, mod.VkDependencyInfo)
ffi.cdef([[void vkCmdBlitImage2($ , const $*);]], mod.VkCommandBuffer, mod.VkBlitImageInfo2)
ffi.cdef([[void vkCmdResolveImage2($ , const $*);]], mod.VkCommandBuffer, mod.VkResolveImageInfo2)
ffi.cdef([[void vkCmdBeginRendering($ , const $*);]], mod.VkCommandBuffer, mod.VkRenderingInfo)
ffi.cdef([[void vkCmdEndRendering($ );]], mod.VkCommandBuffer)
ffi.cdef([[void vkCmdSetCullMode($ , $ );]], mod.VkCommandBuffer, mod.VkCullModeFlags)
ffi.cdef([[void vkCmdSetFrontFace($ , $ );]], mod.VkCommandBuffer, mod.VkFrontFace)
ffi.cdef([[void vkCmdSetPrimitiveTopology($ , $ );]], mod.VkCommandBuffer, mod.VkPrimitiveTopology)
ffi.cdef([[void vkCmdSetViewportWithCount($ , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkViewport)
ffi.cdef([[void vkCmdSetScissorWithCount($ , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkRect2D)
ffi.cdef([[void vkCmdBindVertexBuffers2($ , uint32_t , uint32_t , const $*, const $*, const $*, const $*);]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkDeviceSize)
ffi.cdef([[void vkCmdSetDepthTestEnable($ , $ );]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetDepthWriteEnable($ , $ );]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetDepthCompareOp($ , $ );]], mod.VkCommandBuffer, mod.VkCompareOp)
ffi.cdef([[void vkCmdSetDepthBoundsTestEnable($ , $ );]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetStencilTestEnable($ , $ );]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetStencilOp($ , $ , $ , $ , $ , $ );]], mod.VkCommandBuffer, mod.VkStencilFaceFlags, mod.VkStencilOp, mod.VkStencilOp, mod.VkStencilOp, mod.VkCompareOp)
ffi.cdef([[void vkCmdSetRasterizerDiscardEnable($ , $ );]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetDepthBiasEnable($ , $ );]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetPrimitiveRestartEnable($ , $ );]], mod.VkCommandBuffer, mod.VkBool32)
mod.VkPipelineRobustnessBufferBehavior = ffi.typeof([[enum {
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT,
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED,
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS,
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT,
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT,
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT,
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT,
VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM,
}]])
mod.VkPipelineRobustnessImageBehavior = ffi.typeof([[enum {
VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT,
VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED,
VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS,
VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2,
VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT,
VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT,
VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT,
VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT,
VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM,
}]])
mod.VkQueueGlobalPriority = ffi.typeof([[enum {
VK_QUEUE_GLOBAL_PRIORITY_LOW,
VK_QUEUE_GLOBAL_PRIORITY_MEDIUM,
VK_QUEUE_GLOBAL_PRIORITY_HIGH,
VK_QUEUE_GLOBAL_PRIORITY_REALTIME,
VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT,
VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT,
VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT,
VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT,
VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR,
VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR,
VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR,
VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR,
VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM,
}]])
mod.VkLineRasterizationMode = ffi.typeof([[enum {
VK_LINE_RASTERIZATION_MODE_DEFAULT,
VK_LINE_RASTERIZATION_MODE_RECTANGULAR,
VK_LINE_RASTERIZATION_MODE_BRESENHAM,
VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH,
VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT,
VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT,
VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT,
VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT,
VK_LINE_RASTERIZATION_MODE_DEFAULT_KHR,
VK_LINE_RASTERIZATION_MODE_RECTANGULAR_KHR,
VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR,
VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR,
VK_LINE_RASTERIZATION_MODE_MAX_ENUM,
}]])
mod.VkMemoryUnmapFlagBits = ffi.typeof([[enum {
VK_MEMORY_UNMAP_RESERVE_BIT_EXT,
VK_MEMORY_UNMAP_FLAG_BITS_MAX_ENUM,
}]])
mod.VkMemoryUnmapFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkBufferUsageFlags2 = ffi.typeof([[$ ]], mod.VkFlags64)
mod.VkBufferUsageFlagBits2 = ffi.typeof([[$ ]], mod.VkFlags64)
mod.VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT = 0x00000001ULL
mod.VK_BUFFER_USAGE_2_TRANSFER_DST_BIT = 0x00000002ULL
mod.VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004ULL
mod.VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000008ULL
mod.VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT = 0x00000010ULL
mod.VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT = 0x00000020ULL
mod.VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT = 0x00000040ULL
mod.VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT = 0x00000080ULL
mod.VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT = 0x00000100ULL
mod.VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT = 0x00020000ULL
mod.VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR = 0x00000001ULL
mod.VK_BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR = 0x00000002ULL
mod.VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000004ULL
mod.VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL
mod.VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR = 0x00000010ULL
mod.VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR = 0x00000020ULL
mod.VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR = 0x00000040ULL
mod.VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR = 0x00000080ULL
mod.VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR = 0x00000100ULL
mod.VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200ULL
mod.VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400ULL
mod.VK_BUFFER_USAGE_2_RAY_TRACING_BIT_NV = 0x00000400ULL
mod.VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800ULL
mod.VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000ULL
mod.VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000ULL
mod.VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR = 0x00004000ULL
mod.VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000ULL
mod.VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000ULL
mod.VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR = 0x00020000ULL
mod.VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000ULL
mod.VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000ULL
mod.VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000ULL
mod.VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000ULL
mod.VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000ULL
mod.VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000ULL
mod.VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT = 0x01000000ULL
mod.VK_BUFFER_USAGE_2_DATA_GRAPH_FOREIGN_DESCRIPTOR_BIT_ARM = 0x20000000ULL
mod.VK_BUFFER_USAGE_2_TILE_MEMORY_BIT_QCOM = 0x08000000ULL
mod.VK_BUFFER_USAGE_2_MEMORY_DECOMPRESSION_BIT_EXT = 0x100000000ULL
mod.VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT = 0x80000000ULL
mod.VkHostImageCopyFlagBits = ffi.typeof([[enum {
VK_HOST_IMAGE_COPY_MEMCPY_BIT,
VK_HOST_IMAGE_COPY_MEMCPY,
VK_HOST_IMAGE_COPY_MEMCPY_BIT_EXT,
VK_HOST_IMAGE_COPY_MEMCPY_EXT,
VK_HOST_IMAGE_COPY_FLAG_BITS_MAX_ENUM,
}]])
mod.VkHostImageCopyFlags = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPipelineCreateFlags2 = ffi.typeof([[$ ]], mod.VkFlags64)
mod.VkPipelineCreateFlagBits2 = ffi.typeof([[$ ]], mod.VkFlags64)
mod.VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT = 0x00000001ULL
mod.VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT = 0x00000002ULL
mod.VK_PIPELINE_CREATE_2_DERIVATIVE_BIT = 0x00000004ULL
mod.VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008ULL
mod.VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT = 0x00000010ULL
mod.VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100ULL
mod.VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200ULL
mod.VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT = 0x08000000ULL
mod.VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT = 0x40000000ULL
mod.VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_BUILT_IN_PRIMITIVES_BIT_KHR = 0x00001000ULL
mod.VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_SPHERES_AND_LINEAR_SWEPT_SPHERES_BIT_NV = 0x200000000ULL
mod.VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x400000000ULL
mod.VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR = 0x00000001ULL
mod.VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR = 0x00000002ULL
mod.VK_PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR = 0x00000004ULL
mod.VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008ULL
mod.VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR = 0x00000010ULL
mod.VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV = 0x00000020ULL
mod.VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR = 0x00000040ULL
mod.VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080ULL
mod.VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR = 0x00000100ULL
mod.VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR = 0x00000200ULL
mod.VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400ULL
mod.VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000ULL
mod.VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR = 0x00000800ULL
mod.VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000ULL
mod.VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000ULL
mod.VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000ULL
mod.VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000ULL
mod.VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000ULL
mod.VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000ULL
mod.VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000ULL
mod.VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV = 0x00040000ULL
mod.VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000ULL
mod.VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000ULL
mod.VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000ULL
mod.VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000ULL
mod.VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000ULL
mod.VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000ULL
mod.VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT = 0x08000000ULL
mod.VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT = 0x40000000ULL
mod.VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000ULL
mod.VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000ULL
mod.VK_PIPELINE_CREATE_2_DISALLOW_OPACITY_MICROMAP_BIT_ARM = 0x2000000000ULL
mod.VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR = 0x80000000ULL
mod.VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT = 0x4000000000ULL
mod.VK_PIPELINE_CREATE_2_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE = 0x10000000000ULL
mod.VK_PIPELINE_CREATE_2_64_BIT_INDEXING_BIT_EXT = 0x80000000000ULL
mod.VkPhysicalDeviceVulkan14Features = ffi.typeof([[struct {
$ sType;
void* pNext;
$ globalPriorityQuery;
$ shaderSubgroupRotate;
$ shaderSubgroupRotateClustered;
$ shaderFloatControls2;
$ shaderExpectAssume;
$ rectangularLines;
$ bresenhamLines;
$ smoothLines;
$ stippledRectangularLines;
$ stippledBresenhamLines;
$ stippledSmoothLines;
$ vertexAttributeInstanceRateDivisor;
$ vertexAttributeInstanceRateZeroDivisor;
$ indexTypeUint8;
$ dynamicRenderingLocalRead;
$ maintenance5;
$ maintenance6;
$ pipelineProtectedAccess;
$ pipelineRobustness;
$ hostImageCopy;
$ pushDescriptor;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceVulkan14Properties = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t lineSubPixelPrecisionBits;
uint32_t maxVertexAttribDivisor;
$ supportsNonZeroFirstInstance;
uint32_t maxPushDescriptors;
$ dynamicRenderingLocalReadDepthStencilAttachments;
$ dynamicRenderingLocalReadMultisampledAttachments;
$ earlyFragmentMultisampleCoverageAfterSampleCounting;
$ earlyFragmentSampleMaskTestBeforeSampleCounting;
$ depthStencilSwizzleOneSupport;
$ polygonModePointSize;
$ nonStrictSinglePixelWideLinesUseParallelogram;
$ nonStrictWideLinesUseParallelogram;
$ blockTexelViewCompatibleMultipleLayers;
uint32_t maxCombinedImageSamplerDescriptorCount;
$ fragmentShadingRateClampCombinerInputs;
$ defaultRobustnessStorageBuffers;
$ defaultRobustnessUniformBuffers;
$ defaultRobustnessVertexInputs;
$ defaultRobustnessImages;
uint32_t copySrcLayoutCount;
$* pCopySrcLayouts;
uint32_t copyDstLayoutCount;
$* pCopyDstLayouts;
uint8_t optimalTilingLayoutUUID[16U];
$ identicalMemoryTypeRequirements;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkPipelineRobustnessBufferBehavior, mod.VkPipelineRobustnessBufferBehavior, mod.VkPipelineRobustnessBufferBehavior, mod.VkPipelineRobustnessImageBehavior, mod.VkImageLayout, mod.VkImageLayout, mod.VkBool32)
mod.VkDeviceQueueGlobalPriorityCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ globalPriority;
}]], mod.VkStructureType, mod.VkQueueGlobalPriority)
mod.VkPhysicalDeviceGlobalPriorityQueryFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ globalPriorityQuery;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkQueueFamilyGlobalPriorityProperties = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t priorityCount;
$ priorities[16U];
}]], mod.VkStructureType, mod.VkQueueGlobalPriority)
mod.VkPhysicalDeviceIndexTypeUint8Features = ffi.typeof([[struct {
$ sType;
void* pNext;
$ indexTypeUint8;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkMemoryMapInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ memory;
$ offset;
$ size;
}]], mod.VkStructureType, mod.VkMemoryMapFlags, mod.VkDeviceMemory, mod.VkDeviceSize, mod.VkDeviceSize)
mod.VkMemoryUnmapInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ memory;
}]], mod.VkStructureType, mod.VkMemoryUnmapFlags, mod.VkDeviceMemory)
mod.VkPhysicalDeviceMaintenance5Features = ffi.typeof([[struct {
$ sType;
void* pNext;
$ maintenance5;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceMaintenance5Properties = ffi.typeof([[struct {
$ sType;
void* pNext;
$ earlyFragmentMultisampleCoverageAfterSampleCounting;
$ earlyFragmentSampleMaskTestBeforeSampleCounting;
$ depthStencilSwizzleOneSupport;
$ polygonModePointSize;
$ nonStrictSinglePixelWideLinesUseParallelogram;
$ nonStrictWideLinesUseParallelogram;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkImageSubresource2 = ffi.typeof([[struct {
$ sType;
void* pNext;
$ imageSubresource;
}]], mod.VkStructureType, mod.VkImageSubresource)
mod.VkDeviceImageSubresourceInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
const $* pCreateInfo;
const $* pSubresource;
}]], mod.VkStructureType, mod.VkImageCreateInfo, mod.VkImageSubresource2)
mod.VkSubresourceLayout2 = ffi.typeof([[struct {
$ sType;
void* pNext;
$ subresourceLayout;
}]], mod.VkStructureType, mod.VkSubresourceLayout)
mod.VkBufferUsageFlags2CreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ usage;
}]], mod.VkStructureType, mod.VkBufferUsageFlags2)
mod.VkPhysicalDeviceMaintenance6Features = ffi.typeof([[struct {
$ sType;
void* pNext;
$ maintenance6;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceMaintenance6Properties = ffi.typeof([[struct {
$ sType;
void* pNext;
$ blockTexelViewCompatibleMultipleLayers;
uint32_t maxCombinedImageSamplerDescriptorCount;
$ fragmentShadingRateClampCombinerInputs;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkBindMemoryStatus = ffi.typeof([[struct {
$ sType;
const void* pNext;
$* pResult;
}]], mod.VkStructureType, mod.VkResult)
mod.VkPhysicalDeviceHostImageCopyFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ hostImageCopy;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceHostImageCopyProperties = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t copySrcLayoutCount;
$* pCopySrcLayouts;
uint32_t copyDstLayoutCount;
$* pCopyDstLayouts;
uint8_t optimalTilingLayoutUUID[16U];
$ identicalMemoryTypeRequirements;
}]], mod.VkStructureType, mod.VkImageLayout, mod.VkImageLayout, mod.VkBool32)
mod.VkMemoryToImageCopy = ffi.typeof([[struct {
$ sType;
const void* pNext;
const void* pHostPointer;
uint32_t memoryRowLength;
uint32_t memoryImageHeight;
$ imageSubresource;
$ imageOffset;
$ imageExtent;
}]], mod.VkStructureType, mod.VkImageSubresourceLayers, mod.VkOffset3D, mod.VkExtent3D)
mod.VkImageToMemoryCopy = ffi.typeof([[struct {
$ sType;
const void* pNext;
void* pHostPointer;
uint32_t memoryRowLength;
uint32_t memoryImageHeight;
$ imageSubresource;
$ imageOffset;
$ imageExtent;
}]], mod.VkStructureType, mod.VkImageSubresourceLayers, mod.VkOffset3D, mod.VkExtent3D)
mod.VkCopyMemoryToImageInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ dstImage;
$ dstImageLayout;
uint32_t regionCount;
const $* pRegions;
}]], mod.VkStructureType, mod.VkHostImageCopyFlags, mod.VkImage, mod.VkImageLayout, mod.VkMemoryToImageCopy)
mod.VkCopyImageToMemoryInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ srcImage;
$ srcImageLayout;
uint32_t regionCount;
const $* pRegions;
}]], mod.VkStructureType, mod.VkHostImageCopyFlags, mod.VkImage, mod.VkImageLayout, mod.VkImageToMemoryCopy)
mod.VkCopyImageToImageInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ srcImage;
$ srcImageLayout;
$ dstImage;
$ dstImageLayout;
uint32_t regionCount;
const $* pRegions;
}]], mod.VkStructureType, mod.VkHostImageCopyFlags, mod.VkImage, mod.VkImageLayout, mod.VkImage, mod.VkImageLayout, mod.VkImageCopy2)
mod.VkHostImageLayoutTransitionInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ image;
$ oldLayout;
$ newLayout;
$ subresourceRange;
}]], mod.VkStructureType, mod.VkImage, mod.VkImageLayout, mod.VkImageLayout, mod.VkImageSubresourceRange)
mod.VkSubresourceHostMemcpySize = ffi.typeof([[struct {
$ sType;
void* pNext;
$ size;
}]], mod.VkStructureType, mod.VkDeviceSize)
mod.VkHostImageCopyDevicePerformanceQuery = ffi.typeof([[struct {
$ sType;
void* pNext;
$ optimalDeviceAccess;
$ identicalMemoryLayout;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceShaderSubgroupRotateFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderSubgroupRotate;
$ shaderSubgroupRotateClustered;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceShaderFloatControls2Features = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderFloatControls2;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceShaderExpectAssumeFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderExpectAssume;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPipelineCreateFlags2CreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
}]], mod.VkStructureType, mod.VkPipelineCreateFlags2)
mod.VkPhysicalDevicePushDescriptorProperties = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t maxPushDescriptors;
}]], mod.VkStructureType)
mod.VkBindDescriptorSetsInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ stageFlags;
$ layout;
uint32_t firstSet;
uint32_t descriptorSetCount;
const $* pDescriptorSets;
uint32_t dynamicOffsetCount;
const uint32_t* pDynamicOffsets;
}]], mod.VkStructureType, mod.VkShaderStageFlags, mod.VkPipelineLayout, mod.VkDescriptorSet)
mod.VkPushConstantsInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ layout;
$ stageFlags;
uint32_t offset;
uint32_t size;
const void* pValues;
}]], mod.VkStructureType, mod.VkPipelineLayout, mod.VkShaderStageFlags)
mod.VkPushDescriptorSetInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ stageFlags;
$ layout;
uint32_t set;
uint32_t descriptorWriteCount;
const $* pDescriptorWrites;
}]], mod.VkStructureType, mod.VkShaderStageFlags, mod.VkPipelineLayout, mod.VkWriteDescriptorSet)
mod.VkPushDescriptorSetWithTemplateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ descriptorUpdateTemplate;
$ layout;
uint32_t set;
const void* pData;
}]], mod.VkStructureType, mod.VkDescriptorUpdateTemplate, mod.VkPipelineLayout)
mod.VkPhysicalDevicePipelineProtectedAccessFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ pipelineProtectedAccess;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDevicePipelineRobustnessFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ pipelineRobustness;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDevicePipelineRobustnessProperties = ffi.typeof([[struct {
$ sType;
void* pNext;
$ defaultRobustnessStorageBuffers;
$ defaultRobustnessUniformBuffers;
$ defaultRobustnessVertexInputs;
$ defaultRobustnessImages;
}]], mod.VkStructureType, mod.VkPipelineRobustnessBufferBehavior, mod.VkPipelineRobustnessBufferBehavior, mod.VkPipelineRobustnessBufferBehavior, mod.VkPipelineRobustnessImageBehavior)
mod.VkPipelineRobustnessCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ storageBuffers;
$ uniformBuffers;
$ vertexInputs;
$ images;
}]], mod.VkStructureType, mod.VkPipelineRobustnessBufferBehavior, mod.VkPipelineRobustnessBufferBehavior, mod.VkPipelineRobustnessBufferBehavior, mod.VkPipelineRobustnessImageBehavior)
mod.VkPhysicalDeviceLineRasterizationFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ rectangularLines;
$ bresenhamLines;
$ smoothLines;
$ stippledRectangularLines;
$ stippledBresenhamLines;
$ stippledSmoothLines;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceLineRasterizationProperties = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t lineSubPixelPrecisionBits;
}]], mod.VkStructureType)
mod.VkPipelineRasterizationLineStateCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ lineRasterizationMode;
$ stippledLineEnable;
uint32_t lineStippleFactor;
uint16_t lineStipplePattern;
}]], mod.VkStructureType, mod.VkLineRasterizationMode, mod.VkBool32)
mod.VkPhysicalDeviceVertexAttributeDivisorProperties = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t maxVertexAttribDivisor;
$ supportsNonZeroFirstInstance;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkVertexInputBindingDivisorDescription = ffi.typeof([[struct {
uint32_t binding;
uint32_t divisor;
}]])
mod.VkPipelineVertexInputDivisorStateCreateInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t vertexBindingDivisorCount;
const $* pVertexBindingDivisors;
}]], mod.VkStructureType, mod.VkVertexInputBindingDivisorDescription)
mod.VkPhysicalDeviceVertexAttributeDivisorFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ vertexAttributeInstanceRateDivisor;
$ vertexAttributeInstanceRateZeroDivisor;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkRenderingAreaInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t viewMask;
uint32_t colorAttachmentCount;
const $* pColorAttachmentFormats;
$ depthAttachmentFormat;
$ stencilAttachmentFormat;
}]], mod.VkStructureType, mod.VkFormat, mod.VkFormat, mod.VkFormat)
mod.VkPhysicalDeviceDynamicRenderingLocalReadFeatures = ffi.typeof([[struct {
$ sType;
void* pNext;
$ dynamicRenderingLocalRead;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkRenderingAttachmentLocationInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t colorAttachmentCount;
const uint32_t* pColorAttachmentLocations;
}]], mod.VkStructureType)
mod.VkRenderingInputAttachmentIndexInfo = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t colorAttachmentCount;
const uint32_t* pColorAttachmentInputIndices;
const uint32_t* pDepthInputAttachmentIndex;
const uint32_t* pStencilInputAttachmentIndex;
}]], mod.VkStructureType)
mod.PFN_vkMapMemory2 = ffi.typeof([[$ (*)($ , const $*, void**)]], mod.VkResult, mod.VkDevice, mod.VkMemoryMapInfo)
mod.PFN_vkUnmapMemory2 = ffi.typeof([[$ (*)($ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkMemoryUnmapInfo)
mod.PFN_vkGetDeviceImageSubresourceLayout = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkDevice, mod.VkDeviceImageSubresourceInfo, mod.VkSubresourceLayout2)
mod.PFN_vkGetImageSubresourceLayout2 = ffi.typeof([[void (*)($ , $ , const $*, $*)]], mod.VkDevice, mod.VkImage, mod.VkImageSubresource2, mod.VkSubresourceLayout2)
mod.PFN_vkCopyMemoryToImage = ffi.typeof([[$ (*)($ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkCopyMemoryToImageInfo)
mod.PFN_vkCopyImageToMemory = ffi.typeof([[$ (*)($ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkCopyImageToMemoryInfo)
mod.PFN_vkCopyImageToImage = ffi.typeof([[$ (*)($ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkCopyImageToImageInfo)
mod.PFN_vkTransitionImageLayout = ffi.typeof([[$ (*)($ , uint32_t , const $*)]], mod.VkResult, mod.VkDevice, mod.VkHostImageLayoutTransitionInfo)
mod.PFN_vkCmdPushDescriptorSet = ffi.typeof([[void (*)($ , $ , $ , uint32_t , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkPipelineBindPoint, mod.VkPipelineLayout, mod.VkWriteDescriptorSet)
mod.PFN_vkCmdPushDescriptorSetWithTemplate = ffi.typeof([[void (*)($ , $ , $ , uint32_t , const void*)]], mod.VkCommandBuffer, mod.VkDescriptorUpdateTemplate, mod.VkPipelineLayout)
mod.PFN_vkCmdBindDescriptorSets2 = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkBindDescriptorSetsInfo)
mod.PFN_vkCmdPushConstants2 = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkPushConstantsInfo)
mod.PFN_vkCmdPushDescriptorSet2 = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkPushDescriptorSetInfo)
mod.PFN_vkCmdPushDescriptorSetWithTemplate2 = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkPushDescriptorSetWithTemplateInfo)
mod.PFN_vkCmdSetLineStipple = ffi.typeof([[void (*)($ , uint32_t , uint16_t )]], mod.VkCommandBuffer)
mod.PFN_vkCmdBindIndexBuffer2 = ffi.typeof([[void (*)($ , $ , $ , $ , $ )]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkIndexType)
mod.PFN_vkGetRenderingAreaGranularity = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkDevice, mod.VkRenderingAreaInfo, mod.VkExtent2D)
mod.PFN_vkCmdSetRenderingAttachmentLocations = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkRenderingAttachmentLocationInfo)
mod.PFN_vkCmdSetRenderingInputAttachmentIndices = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkRenderingInputAttachmentIndexInfo)
ffi.cdef([[$ vkMapMemory2($ , const $*, void**);]], mod.VkResult, mod.VkDevice, mod.VkMemoryMapInfo)
ffi.cdef([[$ vkUnmapMemory2($ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkMemoryUnmapInfo)
ffi.cdef([[void vkGetDeviceImageSubresourceLayout($ , const $*, $*);]], mod.VkDevice, mod.VkDeviceImageSubresourceInfo, mod.VkSubresourceLayout2)
ffi.cdef([[void vkGetImageSubresourceLayout2($ , $ , const $*, $*);]], mod.VkDevice, mod.VkImage, mod.VkImageSubresource2, mod.VkSubresourceLayout2)
ffi.cdef([[$ vkCopyMemoryToImage($ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkCopyMemoryToImageInfo)
ffi.cdef([[$ vkCopyImageToMemory($ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkCopyImageToMemoryInfo)
ffi.cdef([[$ vkCopyImageToImage($ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkCopyImageToImageInfo)
ffi.cdef([[$ vkTransitionImageLayout($ , uint32_t , const $*);]], mod.VkResult, mod.VkDevice, mod.VkHostImageLayoutTransitionInfo)
ffi.cdef([[void vkCmdPushDescriptorSet($ , $ , $ , uint32_t , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkPipelineBindPoint, mod.VkPipelineLayout, mod.VkWriteDescriptorSet)
ffi.cdef([[void vkCmdPushDescriptorSetWithTemplate($ , $ , $ , uint32_t , const void*);]], mod.VkCommandBuffer, mod.VkDescriptorUpdateTemplate, mod.VkPipelineLayout)
ffi.cdef([[void vkCmdBindDescriptorSets2($ , const $*);]], mod.VkCommandBuffer, mod.VkBindDescriptorSetsInfo)
ffi.cdef([[void vkCmdPushConstants2($ , const $*);]], mod.VkCommandBuffer, mod.VkPushConstantsInfo)
ffi.cdef([[void vkCmdPushDescriptorSet2($ , const $*);]], mod.VkCommandBuffer, mod.VkPushDescriptorSetInfo)
ffi.cdef([[void vkCmdPushDescriptorSetWithTemplate2($ , const $*);]], mod.VkCommandBuffer, mod.VkPushDescriptorSetWithTemplateInfo)
ffi.cdef([[void vkCmdSetLineStipple($ , uint32_t , uint16_t );]], mod.VkCommandBuffer)
ffi.cdef([[void vkCmdBindIndexBuffer2($ , $ , $ , $ , $ );]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkIndexType)
ffi.cdef([[void vkGetRenderingAreaGranularity($ , const $*, $*);]], mod.VkDevice, mod.VkRenderingAreaInfo, mod.VkExtent2D)
ffi.cdef([[void vkCmdSetRenderingAttachmentLocations($ , const $*);]], mod.VkCommandBuffer, mod.VkRenderingAttachmentLocationInfo)
ffi.cdef([[void vkCmdSetRenderingInputAttachmentIndices($ , const $*);]], mod.VkCommandBuffer, mod.VkRenderingInputAttachmentIndexInfo)
mod.VkSurfaceKHR = ffi.typeof([[void*]])
mod.VkPresentModeKHR = ffi.typeof([[enum {
VK_PRESENT_MODE_IMMEDIATE_KHR,
VK_PRESENT_MODE_MAILBOX_KHR,
VK_PRESENT_MODE_FIFO_KHR,
VK_PRESENT_MODE_FIFO_RELAXED_KHR,
VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR,
VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR,
VK_PRESENT_MODE_FIFO_LATEST_READY_KHR,
VK_PRESENT_MODE_FIFO_LATEST_READY_EXT,
VK_PRESENT_MODE_MAX_ENUM_KHR,
}]])
mod.VkColorSpaceKHR = ffi.typeof([[enum {
VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT,
VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT,
VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT,
VK_COLOR_SPACE_BT709_LINEAR_EXT,
VK_COLOR_SPACE_BT709_NONLINEAR_EXT,
VK_COLOR_SPACE_BT2020_LINEAR_EXT,
VK_COLOR_SPACE_HDR10_ST2084_EXT,
VK_COLOR_SPACE_DOLBYVISION_EXT,
VK_COLOR_SPACE_HDR10_HLG_EXT,
VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT,
VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT,
VK_COLOR_SPACE_PASS_THROUGH_EXT,
VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT,
VK_COLOR_SPACE_DISPLAY_NATIVE_AMD,
VK_COLORSPACE_SRGB_NONLINEAR_KHR,
VK_COLOR_SPACE_DCI_P3_LINEAR_EXT,
VK_COLOR_SPACE_MAX_ENUM_KHR,
}]])
mod.VkSurfaceTransformFlagBitsKHR = ffi.typeof([[enum {
VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR,
VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR,
VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR,
VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR,
VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR,
VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR,
VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR,
VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR,
VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR,
VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkCompositeAlphaFlagBitsKHR = ffi.typeof([[enum {
VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR,
VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR,
VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR,
VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR,
VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkCompositeAlphaFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkSurfaceTransformFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkSurfaceCapabilitiesKHR = ffi.typeof([[struct {
uint32_t minImageCount;
uint32_t maxImageCount;
$ currentExtent;
$ minImageExtent;
$ maxImageExtent;
uint32_t maxImageArrayLayers;
$ supportedTransforms;
$ currentTransform;
$ supportedCompositeAlpha;
$ supportedUsageFlags;
}]], mod.VkExtent2D, mod.VkExtent2D, mod.VkExtent2D, mod.VkSurfaceTransformFlagsKHR, mod.VkSurfaceTransformFlagBitsKHR, mod.VkCompositeAlphaFlagsKHR, mod.VkImageUsageFlags)
mod.VkSurfaceFormatKHR = ffi.typeof([[struct {
$ format;
$ colorSpace;
}]], mod.VkFormat, mod.VkColorSpaceKHR)
mod.PFN_vkDestroySurfaceKHR = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkInstance, mod.VkSurfaceKHR, mod.VkAllocationCallbacks)
mod.PFN_vkGetPhysicalDeviceSurfaceSupportKHR = ffi.typeof([[$ (*)($ , uint32_t , $ , $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkSurfaceKHR, mod.VkBool32)
mod.PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR = ffi.typeof([[$ (*)($ , $ , $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkSurfaceKHR, mod.VkSurfaceCapabilitiesKHR)
mod.PFN_vkGetPhysicalDeviceSurfaceFormatsKHR = ffi.typeof([[$ (*)($ , $ , uint32_t*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkSurfaceKHR, mod.VkSurfaceFormatKHR)
mod.PFN_vkGetPhysicalDeviceSurfacePresentModesKHR = ffi.typeof([[$ (*)($ , $ , uint32_t*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkSurfaceKHR, mod.VkPresentModeKHR)
ffi.cdef([[void vkDestroySurfaceKHR($ , $ , const $*);]], mod.VkInstance, mod.VkSurfaceKHR, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkGetPhysicalDeviceSurfaceSupportKHR($ , uint32_t , $ , $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkSurfaceKHR, mod.VkBool32)
ffi.cdef([[$ vkGetPhysicalDeviceSurfaceCapabilitiesKHR($ , $ , $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkSurfaceKHR, mod.VkSurfaceCapabilitiesKHR)
ffi.cdef([[$ vkGetPhysicalDeviceSurfaceFormatsKHR($ , $ , uint32_t*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkSurfaceKHR, mod.VkSurfaceFormatKHR)
ffi.cdef([[$ vkGetPhysicalDeviceSurfacePresentModesKHR($ , $ , uint32_t*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkSurfaceKHR, mod.VkPresentModeKHR)
mod.VkSwapchainKHR = ffi.typeof([[void*]])
mod.VkSwapchainCreateFlagBitsKHR = ffi.typeof([[enum {
VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,
VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR,
VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR,
VK_SWAPCHAIN_CREATE_PRESENT_ID_2_BIT_KHR,
VK_SWAPCHAIN_CREATE_PRESENT_WAIT_2_BIT_KHR,
VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_KHR,
VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT,
VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkSwapchainCreateFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkDeviceGroupPresentModeFlagBitsKHR = ffi.typeof([[enum {
VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR,
VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR,
VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR,
VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR,
VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkDeviceGroupPresentModeFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkSwapchainCreateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ surface;
uint32_t minImageCount;
$ imageFormat;
$ imageColorSpace;
$ imageExtent;
uint32_t imageArrayLayers;
$ imageUsage;
$ imageSharingMode;
uint32_t queueFamilyIndexCount;
const uint32_t* pQueueFamilyIndices;
$ preTransform;
$ compositeAlpha;
$ presentMode;
$ clipped;
$ oldSwapchain;
}]], mod.VkStructureType, mod.VkSwapchainCreateFlagsKHR, mod.VkSurfaceKHR, mod.VkFormat, mod.VkColorSpaceKHR, mod.VkExtent2D, mod.VkImageUsageFlags, mod.VkSharingMode, mod.VkSurfaceTransformFlagBitsKHR, mod.VkCompositeAlphaFlagBitsKHR, mod.VkPresentModeKHR, mod.VkBool32, mod.VkSwapchainKHR)
mod.VkPresentInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t waitSemaphoreCount;
const $* pWaitSemaphores;
uint32_t swapchainCount;
const $* pSwapchains;
const uint32_t* pImageIndices;
$* pResults;
}]], mod.VkStructureType, mod.VkSemaphore, mod.VkSwapchainKHR, mod.VkResult)
mod.VkImageSwapchainCreateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ swapchain;
}]], mod.VkStructureType, mod.VkSwapchainKHR)
mod.VkBindImageMemorySwapchainInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ swapchain;
uint32_t imageIndex;
}]], mod.VkStructureType, mod.VkSwapchainKHR)
mod.VkAcquireNextImageInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ swapchain;
uint64_t timeout;
$ semaphore;
$ fence;
uint32_t deviceMask;
}]], mod.VkStructureType, mod.VkSwapchainKHR, mod.VkSemaphore, mod.VkFence)
mod.VkDeviceGroupPresentCapabilitiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t presentMask[32U];
$ modes;
}]], mod.VkStructureType, mod.VkDeviceGroupPresentModeFlagsKHR)
mod.VkDeviceGroupPresentInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t swapchainCount;
const uint32_t* pDeviceMasks;
$ mode;
}]], mod.VkStructureType, mod.VkDeviceGroupPresentModeFlagBitsKHR)
mod.VkDeviceGroupSwapchainCreateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ modes;
}]], mod.VkStructureType, mod.VkDeviceGroupPresentModeFlagsKHR)
mod.PFN_vkCreateSwapchainKHR = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkSwapchainCreateInfoKHR, mod.VkAllocationCallbacks, mod.VkSwapchainKHR)
mod.PFN_vkDestroySwapchainKHR = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkSwapchainKHR, mod.VkAllocationCallbacks)
mod.PFN_vkGetSwapchainImagesKHR = ffi.typeof([[$ (*)($ , $ , uint32_t*, $*)]], mod.VkResult, mod.VkDevice, mod.VkSwapchainKHR, mod.VkImage)
mod.PFN_vkAcquireNextImageKHR = ffi.typeof([[$ (*)($ , $ , uint64_t , $ , $ , uint32_t*)]], mod.VkResult, mod.VkDevice, mod.VkSwapchainKHR, mod.VkSemaphore, mod.VkFence)
mod.PFN_vkQueuePresentKHR = ffi.typeof([[$ (*)($ , const $*)]], mod.VkResult, mod.VkQueue, mod.VkPresentInfoKHR)
mod.PFN_vkGetDeviceGroupPresentCapabilitiesKHR = ffi.typeof([[$ (*)($ , $*)]], mod.VkResult, mod.VkDevice, mod.VkDeviceGroupPresentCapabilitiesKHR)
mod.PFN_vkGetDeviceGroupSurfacePresentModesKHR = ffi.typeof([[$ (*)($ , $ , $*)]], mod.VkResult, mod.VkDevice, mod.VkSurfaceKHR, mod.VkDeviceGroupPresentModeFlagsKHR)
mod.PFN_vkGetPhysicalDevicePresentRectanglesKHR = ffi.typeof([[$ (*)($ , $ , uint32_t*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkSurfaceKHR, mod.VkRect2D)
mod.PFN_vkAcquireNextImage2KHR = ffi.typeof([[$ (*)($ , const $*, uint32_t*)]], mod.VkResult, mod.VkDevice, mod.VkAcquireNextImageInfoKHR)
ffi.cdef([[$ vkCreateSwapchainKHR($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkSwapchainCreateInfoKHR, mod.VkAllocationCallbacks, mod.VkSwapchainKHR)
ffi.cdef([[void vkDestroySwapchainKHR($ , $ , const $*);]], mod.VkDevice, mod.VkSwapchainKHR, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkGetSwapchainImagesKHR($ , $ , uint32_t*, $*);]], mod.VkResult, mod.VkDevice, mod.VkSwapchainKHR, mod.VkImage)
ffi.cdef([[$ vkAcquireNextImageKHR($ , $ , uint64_t , $ , $ , uint32_t*);]], mod.VkResult, mod.VkDevice, mod.VkSwapchainKHR, mod.VkSemaphore, mod.VkFence)
ffi.cdef([[$ vkQueuePresentKHR($ , const $*);]], mod.VkResult, mod.VkQueue, mod.VkPresentInfoKHR)
ffi.cdef([[$ vkGetDeviceGroupPresentCapabilitiesKHR($ , $*);]], mod.VkResult, mod.VkDevice, mod.VkDeviceGroupPresentCapabilitiesKHR)
ffi.cdef([[$ vkGetDeviceGroupSurfacePresentModesKHR($ , $ , $*);]], mod.VkResult, mod.VkDevice, mod.VkSurfaceKHR, mod.VkDeviceGroupPresentModeFlagsKHR)
ffi.cdef([[$ vkGetPhysicalDevicePresentRectanglesKHR($ , $ , uint32_t*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkSurfaceKHR, mod.VkRect2D)
ffi.cdef([[$ vkAcquireNextImage2KHR($ , const $*, uint32_t*);]], mod.VkResult, mod.VkDevice, mod.VkAcquireNextImageInfoKHR)
mod.VkDisplayKHR = ffi.typeof([[void*]])
mod.VkDisplayModeKHR = ffi.typeof([[void*]])
mod.VkDisplayModeCreateFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkDisplayPlaneAlphaFlagBitsKHR = ffi.typeof([[enum {
VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR,
VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR,
VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR,
VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR,
VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkDisplayPlaneAlphaFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkDisplaySurfaceCreateFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkDisplayModeParametersKHR = ffi.typeof([[struct {
$ visibleRegion;
uint32_t refreshRate;
}]], mod.VkExtent2D)
mod.VkDisplayModeCreateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ parameters;
}]], mod.VkStructureType, mod.VkDisplayModeCreateFlagsKHR, mod.VkDisplayModeParametersKHR)
mod.VkDisplayModePropertiesKHR = ffi.typeof([[struct {
$ displayMode;
$ parameters;
}]], mod.VkDisplayModeKHR, mod.VkDisplayModeParametersKHR)
mod.VkDisplayPlaneCapabilitiesKHR = ffi.typeof([[struct {
$ supportedAlpha;
$ minSrcPosition;
$ maxSrcPosition;
$ minSrcExtent;
$ maxSrcExtent;
$ minDstPosition;
$ maxDstPosition;
$ minDstExtent;
$ maxDstExtent;
}]], mod.VkDisplayPlaneAlphaFlagsKHR, mod.VkOffset2D, mod.VkOffset2D, mod.VkExtent2D, mod.VkExtent2D, mod.VkOffset2D, mod.VkOffset2D, mod.VkExtent2D, mod.VkExtent2D)
mod.VkDisplayPlanePropertiesKHR = ffi.typeof([[struct {
$ currentDisplay;
uint32_t currentStackIndex;
}]], mod.VkDisplayKHR)
mod.VkDisplayPropertiesKHR = ffi.typeof([[struct {
$ display;
const char* displayName;
$ physicalDimensions;
$ physicalResolution;
$ supportedTransforms;
$ planeReorderPossible;
$ persistentContent;
}]], mod.VkDisplayKHR, mod.VkExtent2D, mod.VkExtent2D, mod.VkSurfaceTransformFlagsKHR, mod.VkBool32, mod.VkBool32)
mod.VkDisplaySurfaceCreateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ displayMode;
uint32_t planeIndex;
uint32_t planeStackIndex;
$ transform;
float globalAlpha;
$ alphaMode;
$ imageExtent;
}]], mod.VkStructureType, mod.VkDisplaySurfaceCreateFlagsKHR, mod.VkDisplayModeKHR, mod.VkSurfaceTransformFlagBitsKHR, mod.VkDisplayPlaneAlphaFlagBitsKHR, mod.VkExtent2D)
mod.PFN_vkGetPhysicalDeviceDisplayPropertiesKHR = ffi.typeof([[$ (*)($ , uint32_t*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkDisplayPropertiesKHR)
mod.PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR = ffi.typeof([[$ (*)($ , uint32_t*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkDisplayPlanePropertiesKHR)
mod.PFN_vkGetDisplayPlaneSupportedDisplaysKHR = ffi.typeof([[$ (*)($ , uint32_t , uint32_t*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkDisplayKHR)
mod.PFN_vkGetDisplayModePropertiesKHR = ffi.typeof([[$ (*)($ , $ , uint32_t*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkDisplayKHR, mod.VkDisplayModePropertiesKHR)
mod.PFN_vkCreateDisplayModeKHR = ffi.typeof([[$ (*)($ , $ , const $*, const $*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkDisplayKHR, mod.VkDisplayModeCreateInfoKHR, mod.VkAllocationCallbacks, mod.VkDisplayModeKHR)
mod.PFN_vkGetDisplayPlaneCapabilitiesKHR = ffi.typeof([[$ (*)($ , $ , uint32_t , $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkDisplayModeKHR, mod.VkDisplayPlaneCapabilitiesKHR)
mod.PFN_vkCreateDisplayPlaneSurfaceKHR = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkInstance, mod.VkDisplaySurfaceCreateInfoKHR, mod.VkAllocationCallbacks, mod.VkSurfaceKHR)
ffi.cdef([[$ vkGetPhysicalDeviceDisplayPropertiesKHR($ , uint32_t*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkDisplayPropertiesKHR)
ffi.cdef([[$ vkGetPhysicalDeviceDisplayPlanePropertiesKHR($ , uint32_t*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkDisplayPlanePropertiesKHR)
ffi.cdef([[$ vkGetDisplayPlaneSupportedDisplaysKHR($ , uint32_t , uint32_t*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkDisplayKHR)
ffi.cdef([[$ vkGetDisplayModePropertiesKHR($ , $ , uint32_t*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkDisplayKHR, mod.VkDisplayModePropertiesKHR)
ffi.cdef([[$ vkCreateDisplayModeKHR($ , $ , const $*, const $*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkDisplayKHR, mod.VkDisplayModeCreateInfoKHR, mod.VkAllocationCallbacks, mod.VkDisplayModeKHR)
ffi.cdef([[$ vkGetDisplayPlaneCapabilitiesKHR($ , $ , uint32_t , $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkDisplayModeKHR, mod.VkDisplayPlaneCapabilitiesKHR)
ffi.cdef([[$ vkCreateDisplayPlaneSurfaceKHR($ , const $*, const $*, $*);]], mod.VkResult, mod.VkInstance, mod.VkDisplaySurfaceCreateInfoKHR, mod.VkAllocationCallbacks, mod.VkSurfaceKHR)
mod.VkDisplayPresentInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ srcRect;
$ dstRect;
$ persistent;
}]], mod.VkStructureType, mod.VkRect2D, mod.VkRect2D, mod.VkBool32)
mod.PFN_vkCreateSharedSwapchainsKHR = ffi.typeof([[$ (*)($ , uint32_t , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkSwapchainCreateInfoKHR, mod.VkAllocationCallbacks, mod.VkSwapchainKHR)
ffi.cdef([[$ vkCreateSharedSwapchainsKHR($ , uint32_t , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkSwapchainCreateInfoKHR, mod.VkAllocationCallbacks, mod.VkSwapchainKHR)
mod.VkVideoSessionKHR = ffi.typeof([[void*]])
mod.VkVideoSessionParametersKHR = ffi.typeof([[void*]])
mod.VkQueryResultStatusKHR = ffi.typeof([[enum {
VK_QUERY_RESULT_STATUS_ERROR_KHR,
VK_QUERY_RESULT_STATUS_NOT_READY_KHR,
VK_QUERY_RESULT_STATUS_COMPLETE_KHR,
VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR,
VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR,
}]])
mod.VkVideoCodecOperationFlagBitsKHR = ffi.typeof([[enum {
VK_VIDEO_CODEC_OPERATION_NONE_KHR,
VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR,
VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR,
VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR,
VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR,
VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR,
VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR,
VK_VIDEO_CODEC_OPERATION_DECODE_VP9_BIT_KHR,
VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkVideoCodecOperationFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoChromaSubsamplingFlagBitsKHR = ffi.typeof([[enum {
VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR,
VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR,
VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR,
VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR,
VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR,
VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkVideoChromaSubsamplingFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoComponentBitDepthFlagBitsKHR = ffi.typeof([[enum {
VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR,
VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR,
VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR,
VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR,
VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkVideoComponentBitDepthFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoCapabilityFlagBitsKHR = ffi.typeof([[enum {
VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR,
VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR,
VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkVideoCapabilityFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoSessionCreateFlagBitsKHR = ffi.typeof([[enum {
VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR,
VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHR,
VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR,
VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR,
VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_EMPHASIS_MAP_BIT_KHR,
VK_VIDEO_SESSION_CREATE_INLINE_SESSION_PARAMETERS_BIT_KHR,
VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkVideoSessionCreateFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoSessionParametersCreateFlagBitsKHR = ffi.typeof([[enum {
VK_VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR,
VK_VIDEO_SESSION_PARAMETERS_CREATE_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkVideoSessionParametersCreateFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoBeginCodingFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoEndCodingFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoCodingControlFlagBitsKHR = ffi.typeof([[enum {
VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR,
VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR,
VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR,
VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkVideoCodingControlFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkQueueFamilyQueryResultStatusPropertiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ queryResultStatusSupport;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkQueueFamilyVideoPropertiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ videoCodecOperations;
}]], mod.VkStructureType, mod.VkVideoCodecOperationFlagsKHR)
mod.VkVideoProfileInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ videoCodecOperation;
$ chromaSubsampling;
$ lumaBitDepth;
$ chromaBitDepth;
}]], mod.VkStructureType, mod.VkVideoCodecOperationFlagBitsKHR, mod.VkVideoChromaSubsamplingFlagsKHR, mod.VkVideoComponentBitDepthFlagsKHR, mod.VkVideoComponentBitDepthFlagsKHR)
mod.VkVideoProfileListInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t profileCount;
const $* pProfiles;
}]], mod.VkStructureType, mod.VkVideoProfileInfoKHR)
mod.VkVideoCapabilitiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ flags;
$ minBitstreamBufferOffsetAlignment;
$ minBitstreamBufferSizeAlignment;
$ pictureAccessGranularity;
$ minCodedExtent;
$ maxCodedExtent;
uint32_t maxDpbSlots;
uint32_t maxActiveReferencePictures;
$ stdHeaderVersion;
}]], mod.VkStructureType, mod.VkVideoCapabilityFlagsKHR, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkExtent2D, mod.VkExtent2D, mod.VkExtent2D, mod.VkExtensionProperties)
mod.VkPhysicalDeviceVideoFormatInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ imageUsage;
}]], mod.VkStructureType, mod.VkImageUsageFlags)
mod.VkVideoFormatPropertiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ format;
$ componentMapping;
$ imageCreateFlags;
$ imageType;
$ imageTiling;
$ imageUsageFlags;
}]], mod.VkStructureType, mod.VkFormat, mod.VkComponentMapping, mod.VkImageCreateFlags, mod.VkImageType, mod.VkImageTiling, mod.VkImageUsageFlags)
mod.VkVideoPictureResourceInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ codedOffset;
$ codedExtent;
uint32_t baseArrayLayer;
$ imageViewBinding;
}]], mod.VkStructureType, mod.VkOffset2D, mod.VkExtent2D, mod.VkImageView)
mod.VkVideoReferenceSlotInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
int32_t slotIndex;
const $* pPictureResource;
}]], mod.VkStructureType, mod.VkVideoPictureResourceInfoKHR)
mod.VkVideoSessionMemoryRequirementsKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t memoryBindIndex;
$ memoryRequirements;
}]], mod.VkStructureType, mod.VkMemoryRequirements)
mod.VkBindVideoSessionMemoryInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t memoryBindIndex;
$ memory;
$ memoryOffset;
$ memorySize;
}]], mod.VkStructureType, mod.VkDeviceMemory, mod.VkDeviceSize, mod.VkDeviceSize)
mod.VkVideoSessionCreateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t queueFamilyIndex;
$ flags;
const $* pVideoProfile;
$ pictureFormat;
$ maxCodedExtent;
$ referencePictureFormat;
uint32_t maxDpbSlots;
uint32_t maxActiveReferencePictures;
const $* pStdHeaderVersion;
}]], mod.VkStructureType, mod.VkVideoSessionCreateFlagsKHR, mod.VkVideoProfileInfoKHR, mod.VkFormat, mod.VkExtent2D, mod.VkFormat, mod.VkExtensionProperties)
mod.VkVideoSessionParametersCreateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ videoSessionParametersTemplate;
$ videoSession;
}]], mod.VkStructureType, mod.VkVideoSessionParametersCreateFlagsKHR, mod.VkVideoSessionParametersKHR, mod.VkVideoSessionKHR)
mod.VkVideoSessionParametersUpdateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t updateSequenceCount;
}]], mod.VkStructureType)
mod.VkVideoBeginCodingInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ videoSession;
$ videoSessionParameters;
uint32_t referenceSlotCount;
const $* pReferenceSlots;
}]], mod.VkStructureType, mod.VkVideoBeginCodingFlagsKHR, mod.VkVideoSessionKHR, mod.VkVideoSessionParametersKHR, mod.VkVideoReferenceSlotInfoKHR)
mod.VkVideoEndCodingInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
}]], mod.VkStructureType, mod.VkVideoEndCodingFlagsKHR)
mod.VkVideoCodingControlInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
}]], mod.VkStructureType, mod.VkVideoCodingControlFlagsKHR)
mod.PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR = ffi.typeof([[$ (*)($ , const $*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkVideoProfileInfoKHR, mod.VkVideoCapabilitiesKHR)
mod.PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR = ffi.typeof([[$ (*)($ , const $*, uint32_t*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkPhysicalDeviceVideoFormatInfoKHR, mod.VkVideoFormatPropertiesKHR)
mod.PFN_vkCreateVideoSessionKHR = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkVideoSessionCreateInfoKHR, mod.VkAllocationCallbacks, mod.VkVideoSessionKHR)
mod.PFN_vkDestroyVideoSessionKHR = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkVideoSessionKHR, mod.VkAllocationCallbacks)
mod.PFN_vkGetVideoSessionMemoryRequirementsKHR = ffi.typeof([[$ (*)($ , $ , uint32_t*, $*)]], mod.VkResult, mod.VkDevice, mod.VkVideoSessionKHR, mod.VkVideoSessionMemoryRequirementsKHR)
mod.PFN_vkBindVideoSessionMemoryKHR = ffi.typeof([[$ (*)($ , $ , uint32_t , const $*)]], mod.VkResult, mod.VkDevice, mod.VkVideoSessionKHR, mod.VkBindVideoSessionMemoryInfoKHR)
mod.PFN_vkCreateVideoSessionParametersKHR = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkVideoSessionParametersCreateInfoKHR, mod.VkAllocationCallbacks, mod.VkVideoSessionParametersKHR)
mod.PFN_vkUpdateVideoSessionParametersKHR = ffi.typeof([[$ (*)($ , $ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkVideoSessionParametersKHR, mod.VkVideoSessionParametersUpdateInfoKHR)
mod.PFN_vkDestroyVideoSessionParametersKHR = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkVideoSessionParametersKHR, mod.VkAllocationCallbacks)
mod.PFN_vkCmdBeginVideoCodingKHR = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkVideoBeginCodingInfoKHR)
mod.PFN_vkCmdEndVideoCodingKHR = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkVideoEndCodingInfoKHR)
mod.PFN_vkCmdControlVideoCodingKHR = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkVideoCodingControlInfoKHR)
ffi.cdef([[$ vkGetPhysicalDeviceVideoCapabilitiesKHR($ , const $*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkVideoProfileInfoKHR, mod.VkVideoCapabilitiesKHR)
ffi.cdef([[$ vkGetPhysicalDeviceVideoFormatPropertiesKHR($ , const $*, uint32_t*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkPhysicalDeviceVideoFormatInfoKHR, mod.VkVideoFormatPropertiesKHR)
ffi.cdef([[$ vkCreateVideoSessionKHR($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkVideoSessionCreateInfoKHR, mod.VkAllocationCallbacks, mod.VkVideoSessionKHR)
ffi.cdef([[void vkDestroyVideoSessionKHR($ , $ , const $*);]], mod.VkDevice, mod.VkVideoSessionKHR, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkGetVideoSessionMemoryRequirementsKHR($ , $ , uint32_t*, $*);]], mod.VkResult, mod.VkDevice, mod.VkVideoSessionKHR, mod.VkVideoSessionMemoryRequirementsKHR)
ffi.cdef([[$ vkBindVideoSessionMemoryKHR($ , $ , uint32_t , const $*);]], mod.VkResult, mod.VkDevice, mod.VkVideoSessionKHR, mod.VkBindVideoSessionMemoryInfoKHR)
ffi.cdef([[$ vkCreateVideoSessionParametersKHR($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkVideoSessionParametersCreateInfoKHR, mod.VkAllocationCallbacks, mod.VkVideoSessionParametersKHR)
ffi.cdef([[$ vkUpdateVideoSessionParametersKHR($ , $ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkVideoSessionParametersKHR, mod.VkVideoSessionParametersUpdateInfoKHR)
ffi.cdef([[void vkDestroyVideoSessionParametersKHR($ , $ , const $*);]], mod.VkDevice, mod.VkVideoSessionParametersKHR, mod.VkAllocationCallbacks)
ffi.cdef([[void vkCmdBeginVideoCodingKHR($ , const $*);]], mod.VkCommandBuffer, mod.VkVideoBeginCodingInfoKHR)
ffi.cdef([[void vkCmdEndVideoCodingKHR($ , const $*);]], mod.VkCommandBuffer, mod.VkVideoEndCodingInfoKHR)
ffi.cdef([[void vkCmdControlVideoCodingKHR($ , const $*);]], mod.VkCommandBuffer, mod.VkVideoCodingControlInfoKHR)
mod.VkVideoDecodeCapabilityFlagBitsKHR = ffi.typeof([[enum {
VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR,
VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR,
VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkVideoDecodeCapabilityFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoDecodeUsageFlagBitsKHR = ffi.typeof([[enum {
VK_VIDEO_DECODE_USAGE_DEFAULT_KHR,
VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR,
VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR,
VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR,
VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkVideoDecodeUsageFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoDecodeFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoDecodeCapabilitiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ flags;
}]], mod.VkStructureType, mod.VkVideoDecodeCapabilityFlagsKHR)
mod.VkVideoDecodeUsageInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ videoUsageHints;
}]], mod.VkStructureType, mod.VkVideoDecodeUsageFlagsKHR)
mod.VkVideoDecodeInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ srcBuffer;
$ srcBufferOffset;
$ srcBufferRange;
$ dstPictureResource;
const $* pSetupReferenceSlot;
uint32_t referenceSlotCount;
const $* pReferenceSlots;
}]], mod.VkStructureType, mod.VkVideoDecodeFlagsKHR, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkVideoPictureResourceInfoKHR, mod.VkVideoReferenceSlotInfoKHR, mod.VkVideoReferenceSlotInfoKHR)
mod.PFN_vkCmdDecodeVideoKHR = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkVideoDecodeInfoKHR)
ffi.cdef([[void vkCmdDecodeVideoKHR($ , const $*);]], mod.VkCommandBuffer, mod.VkVideoDecodeInfoKHR)
mod.StdVideoH264ChromaFormatIdc = ffi.typeof([[enum {
STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME,
STD_VIDEO_H264_CHROMA_FORMAT_IDC_420,
STD_VIDEO_H264_CHROMA_FORMAT_IDC_422,
STD_VIDEO_H264_CHROMA_FORMAT_IDC_444,
STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID,
STD_VIDEO_H264_CHROMA_FORMAT_IDC_MAX_ENUM,
}]])
mod.StdVideoH264ProfileIdc = ffi.typeof([[enum {
STD_VIDEO_H264_PROFILE_IDC_BASELINE,
STD_VIDEO_H264_PROFILE_IDC_MAIN,
STD_VIDEO_H264_PROFILE_IDC_HIGH,
STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE,
STD_VIDEO_H264_PROFILE_IDC_INVALID,
STD_VIDEO_H264_PROFILE_IDC_MAX_ENUM,
}]])
mod.StdVideoH264LevelIdc = ffi.typeof([[enum {
STD_VIDEO_H264_LEVEL_IDC_1_0,
STD_VIDEO_H264_LEVEL_IDC_1_1,
STD_VIDEO_H264_LEVEL_IDC_1_2,
STD_VIDEO_H264_LEVEL_IDC_1_3,
STD_VIDEO_H264_LEVEL_IDC_2_0,
STD_VIDEO_H264_LEVEL_IDC_2_1,
STD_VIDEO_H264_LEVEL_IDC_2_2,
STD_VIDEO_H264_LEVEL_IDC_3_0,
STD_VIDEO_H264_LEVEL_IDC_3_1,
STD_VIDEO_H264_LEVEL_IDC_3_2,
STD_VIDEO_H264_LEVEL_IDC_4_0,
STD_VIDEO_H264_LEVEL_IDC_4_1,
STD_VIDEO_H264_LEVEL_IDC_4_2,
STD_VIDEO_H264_LEVEL_IDC_5_0,
STD_VIDEO_H264_LEVEL_IDC_5_1,
STD_VIDEO_H264_LEVEL_IDC_5_2,
STD_VIDEO_H264_LEVEL_IDC_6_0,
STD_VIDEO_H264_LEVEL_IDC_6_1,
STD_VIDEO_H264_LEVEL_IDC_6_2,
STD_VIDEO_H264_LEVEL_IDC_INVALID,
STD_VIDEO_H264_LEVEL_IDC_MAX_ENUM,
}]])
mod.StdVideoH264PocType = ffi.typeof([[enum {
STD_VIDEO_H264_POC_TYPE_0,
STD_VIDEO_H264_POC_TYPE_1,
STD_VIDEO_H264_POC_TYPE_2,
STD_VIDEO_H264_POC_TYPE_INVALID,
STD_VIDEO_H264_POC_TYPE_MAX_ENUM,
}]])
mod.StdVideoH264AspectRatioIdc = ffi.typeof([[enum {
STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED,
STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE,
STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11,
STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11,
STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11,
STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33,
STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11,
STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11,
STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11,
STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33,
STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11,
STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11,
STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33,
STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99,
STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3,
STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2,
STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1,
STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR,
STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID,
STD_VIDEO_H264_ASPECT_RATIO_IDC_MAX_ENUM,
}]])
mod.StdVideoH264WeightedBipredIdc = ffi.typeof([[enum {
STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT,
STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT,
STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT,
STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID,
STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_MAX_ENUM,
}]])
mod.StdVideoH264ModificationOfPicNumsIdc = ffi.typeof([[enum {
STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT,
STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD,
STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM,
STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END,
STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID,
STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_MAX_ENUM,
}]])
mod.StdVideoH264MemMgmtControlOp = ffi.typeof([[enum {
STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END,
STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM,
STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM,
STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM,
STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX,
STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL,
STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM,
STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID,
STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MAX_ENUM,
}]])
mod.StdVideoH264CabacInitIdc = ffi.typeof([[enum {
STD_VIDEO_H264_CABAC_INIT_IDC_0,
STD_VIDEO_H264_CABAC_INIT_IDC_1,
STD_VIDEO_H264_CABAC_INIT_IDC_2,
STD_VIDEO_H264_CABAC_INIT_IDC_INVALID,
STD_VIDEO_H264_CABAC_INIT_IDC_MAX_ENUM,
}]])
mod.StdVideoH264DisableDeblockingFilterIdc = ffi.typeof([[enum {
STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED,
STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED,
STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL,
STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID,
STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_MAX_ENUM,
}]])
mod.StdVideoH264SliceType = ffi.typeof([[enum {
STD_VIDEO_H264_SLICE_TYPE_P,
STD_VIDEO_H264_SLICE_TYPE_B,
STD_VIDEO_H264_SLICE_TYPE_I,
STD_VIDEO_H264_SLICE_TYPE_INVALID,
STD_VIDEO_H264_SLICE_TYPE_MAX_ENUM,
}]])
mod.StdVideoH264PictureType = ffi.typeof([[enum {
STD_VIDEO_H264_PICTURE_TYPE_P,
STD_VIDEO_H264_PICTURE_TYPE_B,
STD_VIDEO_H264_PICTURE_TYPE_I,
STD_VIDEO_H264_PICTURE_TYPE_IDR,
STD_VIDEO_H264_PICTURE_TYPE_INVALID,
STD_VIDEO_H264_PICTURE_TYPE_MAX_ENUM,
}]])
mod.StdVideoH264NonVclNaluType = ffi.typeof([[enum {
STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS,
STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS,
STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD,
STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX,
STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE,
STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM,
STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED,
STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID,
STD_VIDEO_H264_NON_VCL_NALU_TYPE_MAX_ENUM,
}]])
mod.StdVideoH264SpsVuiFlags = ffi.typeof([[struct {
uint32_t aspect_ratio_info_present_flag;
uint32_t overscan_info_present_flag;
uint32_t overscan_appropriate_flag;
uint32_t video_signal_type_present_flag;
uint32_t video_full_range_flag;
uint32_t color_description_present_flag;
uint32_t chroma_loc_info_present_flag;
uint32_t timing_info_present_flag;
uint32_t fixed_frame_rate_flag;
uint32_t bitstream_restriction_flag;
uint32_t nal_hrd_parameters_present_flag;
uint32_t vcl_hrd_parameters_present_flag;
}]])
mod.StdVideoH264HrdParameters = ffi.typeof([[struct {
uint8_t cpb_cnt_minus1;
uint8_t bit_rate_scale;
uint8_t cpb_size_scale;
uint8_t reserved1;
uint32_t bit_rate_value_minus1[32U];
uint32_t cpb_size_value_minus1[32U];
uint8_t cbr_flag[32U];
uint32_t initial_cpb_removal_delay_length_minus1;
uint32_t cpb_removal_delay_length_minus1;
uint32_t dpb_output_delay_length_minus1;
uint32_t time_offset_length;
}]])
mod.StdVideoH264SequenceParameterSetVui = ffi.typeof([[struct {
$ flags;
$ aspect_ratio_idc;
uint16_t sar_width;
uint16_t sar_height;
uint8_t video_format;
uint8_t colour_primaries;
uint8_t transfer_characteristics;
uint8_t matrix_coefficients;
uint32_t num_units_in_tick;
uint32_t time_scale;
uint8_t max_num_reorder_frames;
uint8_t max_dec_frame_buffering;
uint8_t chroma_sample_loc_type_top_field;
uint8_t chroma_sample_loc_type_bottom_field;
uint32_t reserved1;
const $* pHrdParameters;
}]], mod.StdVideoH264SpsVuiFlags, mod.StdVideoH264AspectRatioIdc, mod.StdVideoH264HrdParameters)
mod.StdVideoH264SpsFlags = ffi.typeof([[struct {
uint32_t constraint_set0_flag;
uint32_t constraint_set1_flag;
uint32_t constraint_set2_flag;
uint32_t constraint_set3_flag;
uint32_t constraint_set4_flag;
uint32_t constraint_set5_flag;
uint32_t direct_8x8_inference_flag;
uint32_t mb_adaptive_frame_field_flag;
uint32_t frame_mbs_only_flag;
uint32_t delta_pic_order_always_zero_flag;
uint32_t separate_colour_plane_flag;
uint32_t gaps_in_frame_num_value_allowed_flag;
uint32_t qpprime_y_zero_transform_bypass_flag;
uint32_t frame_cropping_flag;
uint32_t seq_scaling_matrix_present_flag;
uint32_t vui_parameters_present_flag;
}]])
mod.StdVideoH264ScalingLists = ffi.typeof([[struct {
uint16_t scaling_list_present_mask;
uint16_t use_default_scaling_matrix_mask;
uint8_t ScalingList4x4[16U][6U];
uint8_t ScalingList8x8[64U][6U];
}]])
mod.StdVideoH264SequenceParameterSet = ffi.typeof([[struct {
$ flags;
$ profile_idc;
$ level_idc;
$ chroma_format_idc;
uint8_t seq_parameter_set_id;
uint8_t bit_depth_luma_minus8;
uint8_t bit_depth_chroma_minus8;
uint8_t log2_max_frame_num_minus4;
$ pic_order_cnt_type;
int32_t offset_for_non_ref_pic;
int32_t offset_for_top_to_bottom_field;
uint8_t log2_max_pic_order_cnt_lsb_minus4;
uint8_t num_ref_frames_in_pic_order_cnt_cycle;
uint8_t max_num_ref_frames;
uint8_t reserved1;
uint32_t pic_width_in_mbs_minus1;
uint32_t pic_height_in_map_units_minus1;
uint32_t frame_crop_left_offset;
uint32_t frame_crop_right_offset;
uint32_t frame_crop_top_offset;
uint32_t frame_crop_bottom_offset;
uint32_t reserved2;
const int32_t* pOffsetForRefFrame;
const $* pScalingLists;
const $* pSequenceParameterSetVui;
}]], mod.StdVideoH264SpsFlags, mod.StdVideoH264ProfileIdc, mod.StdVideoH264LevelIdc, mod.StdVideoH264ChromaFormatIdc, mod.StdVideoH264PocType, mod.StdVideoH264ScalingLists, mod.StdVideoH264SequenceParameterSetVui)
mod.StdVideoH264PpsFlags = ffi.typeof([[struct {
uint32_t transform_8x8_mode_flag;
uint32_t redundant_pic_cnt_present_flag;
uint32_t constrained_intra_pred_flag;
uint32_t deblocking_filter_control_present_flag;
uint32_t weighted_pred_flag;
uint32_t bottom_field_pic_order_in_frame_present_flag;
uint32_t entropy_coding_mode_flag;
uint32_t pic_scaling_matrix_present_flag;
}]])
mod.StdVideoH264PictureParameterSet = ffi.typeof([[struct {
$ flags;
uint8_t seq_parameter_set_id;
uint8_t pic_parameter_set_id;
uint8_t num_ref_idx_l0_default_active_minus1;
uint8_t num_ref_idx_l1_default_active_minus1;
$ weighted_bipred_idc;
int8_t pic_init_qp_minus26;
int8_t pic_init_qs_minus26;
int8_t chroma_qp_index_offset;
int8_t second_chroma_qp_index_offset;
const $* pScalingLists;
}]], mod.StdVideoH264PpsFlags, mod.StdVideoH264WeightedBipredIdc, mod.StdVideoH264ScalingLists)
mod.StdVideoEncodeH264WeightTableFlags = ffi.typeof([[struct {
uint32_t luma_weight_l0_flag;
uint32_t chroma_weight_l0_flag;
uint32_t luma_weight_l1_flag;
uint32_t chroma_weight_l1_flag;
}]])
mod.StdVideoEncodeH264WeightTable = ffi.typeof([[struct {
$ flags;
uint8_t luma_log2_weight_denom;
uint8_t chroma_log2_weight_denom;
int8_t luma_weight_l0[32U];
int8_t luma_offset_l0[32U];
int8_t chroma_weight_l0[2U][32U];
int8_t chroma_offset_l0[2U][32U];
int8_t luma_weight_l1[32U];
int8_t luma_offset_l1[32U];
int8_t chroma_weight_l1[2U][32U];
int8_t chroma_offset_l1[2U][32U];
}]], mod.StdVideoEncodeH264WeightTableFlags)
mod.StdVideoEncodeH264SliceHeaderFlags = ffi.typeof([[struct {
uint32_t direct_spatial_mv_pred_flag;
uint32_t num_ref_idx_active_override_flag;
uint32_t reserved;
}]])
mod.StdVideoEncodeH264PictureInfoFlags = ffi.typeof([[struct {
uint32_t IdrPicFlag;
uint32_t is_reference;
uint32_t no_output_of_prior_pics_flag;
uint32_t long_term_reference_flag;
uint32_t adaptive_ref_pic_marking_mode_flag;
uint32_t reserved;
}]])
mod.StdVideoEncodeH264ReferenceInfoFlags = ffi.typeof([[struct {
uint32_t used_for_long_term_reference;
uint32_t reserved;
}]])
mod.StdVideoEncodeH264ReferenceListsInfoFlags = ffi.typeof([[struct {
uint32_t ref_pic_list_modification_flag_l0;
uint32_t ref_pic_list_modification_flag_l1;
uint32_t reserved;
}]])
mod.StdVideoEncodeH264RefListModEntry = ffi.typeof([[struct {
$ modification_of_pic_nums_idc;
uint16_t abs_diff_pic_num_minus1;
uint16_t long_term_pic_num;
}]], mod.StdVideoH264ModificationOfPicNumsIdc)
mod.StdVideoEncodeH264RefPicMarkingEntry = ffi.typeof([[struct {
$ memory_management_control_operation;
uint16_t difference_of_pic_nums_minus1;
uint16_t long_term_pic_num;
uint16_t long_term_frame_idx;
uint16_t max_long_term_frame_idx_plus1;
}]], mod.StdVideoH264MemMgmtControlOp)
mod.StdVideoEncodeH264ReferenceListsInfo = ffi.typeof([[struct {
$ flags;
uint8_t num_ref_idx_l0_active_minus1;
uint8_t num_ref_idx_l1_active_minus1;
uint8_t RefPicList0[32U];
uint8_t RefPicList1[32U];
uint8_t refList0ModOpCount;
uint8_t refList1ModOpCount;
uint8_t refPicMarkingOpCount;
uint8_t reserved1[7];
const $* pRefList0ModOperations;
const $* pRefList1ModOperations;
const $* pRefPicMarkingOperations;
}]], mod.StdVideoEncodeH264ReferenceListsInfoFlags, mod.StdVideoEncodeH264RefListModEntry, mod.StdVideoEncodeH264RefListModEntry, mod.StdVideoEncodeH264RefPicMarkingEntry)
mod.StdVideoEncodeH264PictureInfo = ffi.typeof([[struct {
$ flags;
uint8_t seq_parameter_set_id;
uint8_t pic_parameter_set_id;
uint16_t idr_pic_id;
$ primary_pic_type;
uint32_t frame_num;
int32_t PicOrderCnt;
uint8_t temporal_id;
uint8_t reserved1[3];
const $* pRefLists;
}]], mod.StdVideoEncodeH264PictureInfoFlags, mod.StdVideoH264PictureType, mod.StdVideoEncodeH264ReferenceListsInfo)
mod.StdVideoEncodeH264ReferenceInfo = ffi.typeof([[struct {
$ flags;
$ primary_pic_type;
uint32_t FrameNum;
int32_t PicOrderCnt;
uint16_t long_term_pic_num;
uint16_t long_term_frame_idx;
uint8_t temporal_id;
}]], mod.StdVideoEncodeH264ReferenceInfoFlags, mod.StdVideoH264PictureType)
mod.StdVideoEncodeH264SliceHeader = ffi.typeof([[struct {
$ flags;
uint32_t first_mb_in_slice;
$ slice_type;
int8_t slice_alpha_c0_offset_div2;
int8_t slice_beta_offset_div2;
int8_t slice_qp_delta;
uint8_t reserved1;
$ cabac_init_idc;
$ disable_deblocking_filter_idc;
const $* pWeightTable;
}]], mod.StdVideoEncodeH264SliceHeaderFlags, mod.StdVideoH264SliceType, mod.StdVideoH264CabacInitIdc, mod.StdVideoH264DisableDeblockingFilterIdc, mod.StdVideoEncodeH264WeightTable)
mod.VkVideoEncodeH264CapabilityFlagBitsKHR = ffi.typeof([[enum {
VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR,
VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR,
VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR,
VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHR,
VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR,
VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR,
VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR,
VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR,
VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR,
VK_VIDEO_ENCODE_H264_CAPABILITY_B_PICTURE_INTRA_REFRESH_BIT_KHR,
VK_VIDEO_ENCODE_H264_CAPABILITY_MB_QP_DIFF_WRAPAROUND_BIT_KHR,
VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkVideoEncodeH264CapabilityFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoEncodeH264StdFlagBitsKHR = ffi.typeof([[enum {
VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR,
VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_KHR,
VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_KHR,
VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_KHR,
VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_KHR,
VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_KHR,
VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR,
VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_KHR,
VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_KHR,
VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_KHR,
VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_KHR,
VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_KHR,
VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_KHR,
VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_KHR,
VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR,
VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_KHR,
VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_KHR,
VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_KHR,
VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_KHR,
VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR,
VK_VIDEO_ENCODE_H264_STD_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkVideoEncodeH264StdFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoEncodeH264RateControlFlagBitsKHR = ffi.typeof([[enum {
VK_VIDEO_ENCODE_H264_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR,
VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_KHR,
VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR,
VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR,
VK_VIDEO_ENCODE_H264_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR,
VK_VIDEO_ENCODE_H264_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkVideoEncodeH264RateControlFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoEncodeH264CapabilitiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ flags;
$ maxLevelIdc;
uint32_t maxSliceCount;
uint32_t maxPPictureL0ReferenceCount;
uint32_t maxBPictureL0ReferenceCount;
uint32_t maxL1ReferenceCount;
uint32_t maxTemporalLayerCount;
$ expectDyadicTemporalLayerPattern;
int32_t minQp;
int32_t maxQp;
$ prefersGopRemainingFrames;
$ requiresGopRemainingFrames;
$ stdSyntaxFlags;
}]], mod.VkStructureType, mod.VkVideoEncodeH264CapabilityFlagsKHR, mod.StdVideoH264LevelIdc, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkVideoEncodeH264StdFlagsKHR)
mod.VkVideoEncodeH264QpKHR = ffi.typeof([[struct {
int32_t qpI;
int32_t qpP;
int32_t qpB;
}]])
mod.VkVideoEncodeH264QualityLevelPropertiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ preferredRateControlFlags;
uint32_t preferredGopFrameCount;
uint32_t preferredIdrPeriod;
uint32_t preferredConsecutiveBFrameCount;
uint32_t preferredTemporalLayerCount;
$ preferredConstantQp;
uint32_t preferredMaxL0ReferenceCount;
uint32_t preferredMaxL1ReferenceCount;
$ preferredStdEntropyCodingModeFlag;
}]], mod.VkStructureType, mod.VkVideoEncodeH264RateControlFlagsKHR, mod.VkVideoEncodeH264QpKHR, mod.VkBool32)
mod.VkVideoEncodeH264SessionCreateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ useMaxLevelIdc;
$ maxLevelIdc;
}]], mod.VkStructureType, mod.VkBool32, mod.StdVideoH264LevelIdc)
mod.VkVideoEncodeH264SessionParametersAddInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t stdSPSCount;
const $* pStdSPSs;
uint32_t stdPPSCount;
const $* pStdPPSs;
}]], mod.VkStructureType, mod.StdVideoH264SequenceParameterSet, mod.StdVideoH264PictureParameterSet)
mod.VkVideoEncodeH264SessionParametersCreateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t maxStdSPSCount;
uint32_t maxStdPPSCount;
const $* pParametersAddInfo;
}]], mod.VkStructureType, mod.VkVideoEncodeH264SessionParametersAddInfoKHR)
mod.VkVideoEncodeH264SessionParametersGetInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ writeStdSPS;
$ writeStdPPS;
uint32_t stdSPSId;
uint32_t stdPPSId;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkVideoEncodeH264SessionParametersFeedbackInfoKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ hasStdSPSOverrides;
$ hasStdPPSOverrides;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkVideoEncodeH264NaluSliceInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
int32_t constantQp;
const $* pStdSliceHeader;
}]], mod.VkStructureType, mod.StdVideoEncodeH264SliceHeader)
mod.VkVideoEncodeH264PictureInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t naluSliceEntryCount;
const $* pNaluSliceEntries;
const $* pStdPictureInfo;
$ generatePrefixNalu;
}]], mod.VkStructureType, mod.VkVideoEncodeH264NaluSliceInfoKHR, mod.StdVideoEncodeH264PictureInfo, mod.VkBool32)
mod.VkVideoEncodeH264DpbSlotInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
const $* pStdReferenceInfo;
}]], mod.VkStructureType, mod.StdVideoEncodeH264ReferenceInfo)
mod.VkVideoEncodeH264ProfileInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ stdProfileIdc;
}]], mod.VkStructureType, mod.StdVideoH264ProfileIdc)
mod.VkVideoEncodeH264RateControlInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
uint32_t gopFrameCount;
uint32_t idrPeriod;
uint32_t consecutiveBFrameCount;
uint32_t temporalLayerCount;
}]], mod.VkStructureType, mod.VkVideoEncodeH264RateControlFlagsKHR)
mod.VkVideoEncodeH264FrameSizeKHR = ffi.typeof([[struct {
uint32_t frameISize;
uint32_t framePSize;
uint32_t frameBSize;
}]])
mod.VkVideoEncodeH264RateControlLayerInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ useMinQp;
$ minQp;
$ useMaxQp;
$ maxQp;
$ useMaxFrameSize;
$ maxFrameSize;
}]], mod.VkStructureType, mod.VkBool32, mod.VkVideoEncodeH264QpKHR, mod.VkBool32, mod.VkVideoEncodeH264QpKHR, mod.VkBool32, mod.VkVideoEncodeH264FrameSizeKHR)
mod.VkVideoEncodeH264GopRemainingFrameInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ useGopRemainingFrames;
uint32_t gopRemainingI;
uint32_t gopRemainingP;
uint32_t gopRemainingB;
}]], mod.VkStructureType, mod.VkBool32)
mod.StdVideoH265ChromaFormatIdc = ffi.typeof([[enum {
STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME,
STD_VIDEO_H265_CHROMA_FORMAT_IDC_420,
STD_VIDEO_H265_CHROMA_FORMAT_IDC_422,
STD_VIDEO_H265_CHROMA_FORMAT_IDC_444,
STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID,
STD_VIDEO_H265_CHROMA_FORMAT_IDC_MAX_ENUM,
}]])
mod.StdVideoH265ProfileIdc = ffi.typeof([[enum {
STD_VIDEO_H265_PROFILE_IDC_MAIN,
STD_VIDEO_H265_PROFILE_IDC_MAIN_10,
STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE,
STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS,
STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS,
STD_VIDEO_H265_PROFILE_IDC_INVALID,
STD_VIDEO_H265_PROFILE_IDC_MAX_ENUM,
}]])
mod.StdVideoH265LevelIdc = ffi.typeof([[enum {
STD_VIDEO_H265_LEVEL_IDC_1_0,
STD_VIDEO_H265_LEVEL_IDC_2_0,
STD_VIDEO_H265_LEVEL_IDC_2_1,
STD_VIDEO_H265_LEVEL_IDC_3_0,
STD_VIDEO_H265_LEVEL_IDC_3_1,
STD_VIDEO_H265_LEVEL_IDC_4_0,
STD_VIDEO_H265_LEVEL_IDC_4_1,
STD_VIDEO_H265_LEVEL_IDC_5_0,
STD_VIDEO_H265_LEVEL_IDC_5_1,
STD_VIDEO_H265_LEVEL_IDC_5_2,
STD_VIDEO_H265_LEVEL_IDC_6_0,
STD_VIDEO_H265_LEVEL_IDC_6_1,
STD_VIDEO_H265_LEVEL_IDC_6_2,
STD_VIDEO_H265_LEVEL_IDC_INVALID,
STD_VIDEO_H265_LEVEL_IDC_MAX_ENUM,
}]])
mod.StdVideoH265SliceType = ffi.typeof([[enum {
STD_VIDEO_H265_SLICE_TYPE_B,
STD_VIDEO_H265_SLICE_TYPE_P,
STD_VIDEO_H265_SLICE_TYPE_I,
STD_VIDEO_H265_SLICE_TYPE_INVALID,
STD_VIDEO_H265_SLICE_TYPE_MAX_ENUM,
}]])
mod.StdVideoH265PictureType = ffi.typeof([[enum {
STD_VIDEO_H265_PICTURE_TYPE_P,
STD_VIDEO_H265_PICTURE_TYPE_B,
STD_VIDEO_H265_PICTURE_TYPE_I,
STD_VIDEO_H265_PICTURE_TYPE_IDR,
STD_VIDEO_H265_PICTURE_TYPE_INVALID,
STD_VIDEO_H265_PICTURE_TYPE_MAX_ENUM,
}]])
mod.StdVideoH265AspectRatioIdc = ffi.typeof([[enum {
STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED,
STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE,
STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11,
STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11,
STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11,
STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33,
STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11,
STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11,
STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11,
STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33,
STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11,
STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11,
STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33,
STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99,
STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3,
STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2,
STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1,
STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR,
STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID,
STD_VIDEO_H265_ASPECT_RATIO_IDC_MAX_ENUM,
}]])
mod.StdVideoH265DecPicBufMgr = ffi.typeof([[struct {
uint32_t max_latency_increase_plus1[7U];
uint8_t max_dec_pic_buffering_minus1[7U];
uint8_t max_num_reorder_pics[7U];
}]])
mod.StdVideoH265SubLayerHrdParameters = ffi.typeof([[struct {
uint32_t bit_rate_value_minus1[32U];
uint32_t cpb_size_value_minus1[32U];
uint32_t cpb_size_du_value_minus1[32U];
uint32_t bit_rate_du_value_minus1[32U];
uint32_t cbr_flag;
}]])
mod.StdVideoH265HrdFlags = ffi.typeof([[struct {
uint32_t nal_hrd_parameters_present_flag;
uint32_t vcl_hrd_parameters_present_flag;
uint32_t sub_pic_hrd_params_present_flag;
uint32_t sub_pic_cpb_params_in_pic_timing_sei_flag;
uint32_t fixed_pic_rate_general_flag;
uint32_t fixed_pic_rate_within_cvs_flag;
uint32_t low_delay_hrd_flag;
}]])
mod.StdVideoH265HrdParameters = ffi.typeof([[struct {
$ flags;
uint8_t tick_divisor_minus2;
uint8_t du_cpb_removal_delay_increment_length_minus1;
uint8_t dpb_output_delay_du_length_minus1;
uint8_t bit_rate_scale;
uint8_t cpb_size_scale;
uint8_t cpb_size_du_scale;
uint8_t initial_cpb_removal_delay_length_minus1;
uint8_t au_cpb_removal_delay_length_minus1;
uint8_t dpb_output_delay_length_minus1;
uint8_t cpb_cnt_minus1[7U];
uint16_t elemental_duration_in_tc_minus1[7U];
uint16_t reserved[3];
const $* pSubLayerHrdParametersNal;
const $* pSubLayerHrdParametersVcl;
}]], mod.StdVideoH265HrdFlags, mod.StdVideoH265SubLayerHrdParameters, mod.StdVideoH265SubLayerHrdParameters)
mod.StdVideoH265VpsFlags = ffi.typeof([[struct {
uint32_t vps_temporal_id_nesting_flag;
uint32_t vps_sub_layer_ordering_info_present_flag;
uint32_t vps_timing_info_present_flag;
uint32_t vps_poc_proportional_to_timing_flag;
}]])
mod.StdVideoH265ProfileTierLevelFlags = ffi.typeof([[struct {
uint32_t general_tier_flag;
uint32_t general_progressive_source_flag;
uint32_t general_interlaced_source_flag;
uint32_t general_non_packed_constraint_flag;
uint32_t general_frame_only_constraint_flag;
}]])
mod.StdVideoH265ProfileTierLevel = ffi.typeof([[struct {
$ flags;
$ general_profile_idc;
$ general_level_idc;
}]], mod.StdVideoH265ProfileTierLevelFlags, mod.StdVideoH265ProfileIdc, mod.StdVideoH265LevelIdc)
mod.StdVideoH265VideoParameterSet = ffi.typeof([[struct {
$ flags;
uint8_t vps_video_parameter_set_id;
uint8_t vps_max_sub_layers_minus1;
uint8_t reserved1;
uint8_t reserved2;
uint32_t vps_num_units_in_tick;
uint32_t vps_time_scale;
uint32_t vps_num_ticks_poc_diff_one_minus1;
uint32_t reserved3;
const $* pDecPicBufMgr;
const $* pHrdParameters;
const $* pProfileTierLevel;
}]], mod.StdVideoH265VpsFlags, mod.StdVideoH265DecPicBufMgr, mod.StdVideoH265HrdParameters, mod.StdVideoH265ProfileTierLevel)
mod.StdVideoH265ScalingLists = ffi.typeof([[struct {
uint8_t ScalingList4x4[16U][6U];
uint8_t ScalingList8x8[64U][6U];
uint8_t ScalingList16x16[64U][6U];
uint8_t ScalingList32x32[64U][2U];
uint8_t ScalingListDCCoef16x16[6U];
uint8_t ScalingListDCCoef32x32[2U];
}]])
mod.StdVideoH265SpsVuiFlags = ffi.typeof([[struct {
uint32_t aspect_ratio_info_present_flag;
uint32_t overscan_info_present_flag;
uint32_t overscan_appropriate_flag;
uint32_t video_signal_type_present_flag;
uint32_t video_full_range_flag;
uint32_t colour_description_present_flag;
uint32_t chroma_loc_info_present_flag;
uint32_t neutral_chroma_indication_flag;
uint32_t field_seq_flag;
uint32_t frame_field_info_present_flag;
uint32_t default_display_window_flag;
uint32_t vui_timing_info_present_flag;
uint32_t vui_poc_proportional_to_timing_flag;
uint32_t vui_hrd_parameters_present_flag;
uint32_t bitstream_restriction_flag;
uint32_t tiles_fixed_structure_flag;
uint32_t motion_vectors_over_pic_boundaries_flag;
uint32_t restricted_ref_pic_lists_flag;
}]])
mod.StdVideoH265SequenceParameterSetVui = ffi.typeof([[struct {
$ flags;
$ aspect_ratio_idc;
uint16_t sar_width;
uint16_t sar_height;
uint8_t video_format;
uint8_t colour_primaries;
uint8_t transfer_characteristics;
uint8_t matrix_coeffs;
uint8_t chroma_sample_loc_type_top_field;
uint8_t chroma_sample_loc_type_bottom_field;
uint8_t reserved1;
uint8_t reserved2;
uint16_t def_disp_win_left_offset;
uint16_t def_disp_win_right_offset;
uint16_t def_disp_win_top_offset;
uint16_t def_disp_win_bottom_offset;
uint32_t vui_num_units_in_tick;
uint32_t vui_time_scale;
uint32_t vui_num_ticks_poc_diff_one_minus1;
uint16_t min_spatial_segmentation_idc;
uint16_t reserved3;
uint8_t max_bytes_per_pic_denom;
uint8_t max_bits_per_min_cu_denom;
uint8_t log2_max_mv_length_horizontal;
uint8_t log2_max_mv_length_vertical;
const $* pHrdParameters;
}]], mod.StdVideoH265SpsVuiFlags, mod.StdVideoH265AspectRatioIdc, mod.StdVideoH265HrdParameters)
mod.StdVideoH265PredictorPaletteEntries = ffi.typeof([[struct {
uint16_t PredictorPaletteEntries[128U][3U];
}]])
mod.StdVideoH265SpsFlags = ffi.typeof([[struct {
uint32_t sps_temporal_id_nesting_flag;
uint32_t separate_colour_plane_flag;
uint32_t conformance_window_flag;
uint32_t sps_sub_layer_ordering_info_present_flag;
uint32_t scaling_list_enabled_flag;
uint32_t sps_scaling_list_data_present_flag;
uint32_t amp_enabled_flag;
uint32_t sample_adaptive_offset_enabled_flag;
uint32_t pcm_enabled_flag;
uint32_t pcm_loop_filter_disabled_flag;
uint32_t long_term_ref_pics_present_flag;
uint32_t sps_temporal_mvp_enabled_flag;
uint32_t strong_intra_smoothing_enabled_flag;
uint32_t vui_parameters_present_flag;
uint32_t sps_extension_present_flag;
uint32_t sps_range_extension_flag;
uint32_t transform_skip_rotation_enabled_flag;
uint32_t transform_skip_context_enabled_flag;
uint32_t implicit_rdpcm_enabled_flag;
uint32_t explicit_rdpcm_enabled_flag;
uint32_t extended_precision_processing_flag;
uint32_t intra_smoothing_disabled_flag;
uint32_t high_precision_offsets_enabled_flag;
uint32_t persistent_rice_adaptation_enabled_flag;
uint32_t cabac_bypass_alignment_enabled_flag;
uint32_t sps_scc_extension_flag;
uint32_t sps_curr_pic_ref_enabled_flag;
uint32_t palette_mode_enabled_flag;
uint32_t sps_palette_predictor_initializers_present_flag;
uint32_t intra_boundary_filtering_disabled_flag;
}]])
mod.StdVideoH265ShortTermRefPicSetFlags = ffi.typeof([[struct {
uint32_t inter_ref_pic_set_prediction_flag;
uint32_t delta_rps_sign;
}]])
mod.StdVideoH265ShortTermRefPicSet = ffi.typeof([[struct {
$ flags;
uint32_t delta_idx_minus1;
uint16_t use_delta_flag;
uint16_t abs_delta_rps_minus1;
uint16_t used_by_curr_pic_flag;
uint16_t used_by_curr_pic_s0_flag;
uint16_t used_by_curr_pic_s1_flag;
uint16_t reserved1;
uint8_t reserved2;
uint8_t reserved3;
uint8_t num_negative_pics;
uint8_t num_positive_pics;
uint16_t delta_poc_s0_minus1[16U];
uint16_t delta_poc_s1_minus1[16U];
}]], mod.StdVideoH265ShortTermRefPicSetFlags)
mod.StdVideoH265LongTermRefPicsSps = ffi.typeof([[struct {
uint32_t used_by_curr_pic_lt_sps_flag;
uint32_t lt_ref_pic_poc_lsb_sps[32U];
}]])
mod.StdVideoH265SequenceParameterSet = ffi.typeof([[struct {
$ flags;
$ chroma_format_idc;
uint32_t pic_width_in_luma_samples;
uint32_t pic_height_in_luma_samples;
uint8_t sps_video_parameter_set_id;
uint8_t sps_max_sub_layers_minus1;
uint8_t sps_seq_parameter_set_id;
uint8_t bit_depth_luma_minus8;
uint8_t bit_depth_chroma_minus8;
uint8_t log2_max_pic_order_cnt_lsb_minus4;
uint8_t log2_min_luma_coding_block_size_minus3;
uint8_t log2_diff_max_min_luma_coding_block_size;
uint8_t log2_min_luma_transform_block_size_minus2;
uint8_t log2_diff_max_min_luma_transform_block_size;
uint8_t max_transform_hierarchy_depth_inter;
uint8_t max_transform_hierarchy_depth_intra;
uint8_t num_short_term_ref_pic_sets;
uint8_t num_long_term_ref_pics_sps;
uint8_t pcm_sample_bit_depth_luma_minus1;
uint8_t pcm_sample_bit_depth_chroma_minus1;
uint8_t log2_min_pcm_luma_coding_block_size_minus3;
uint8_t log2_diff_max_min_pcm_luma_coding_block_size;
uint8_t reserved1;
uint8_t reserved2;
uint8_t palette_max_size;
uint8_t delta_palette_max_predictor_size;
uint8_t motion_vector_resolution_control_idc;
uint8_t sps_num_palette_predictor_initializers_minus1;
uint32_t conf_win_left_offset;
uint32_t conf_win_right_offset;
uint32_t conf_win_top_offset;
uint32_t conf_win_bottom_offset;
const $* pProfileTierLevel;
const $* pDecPicBufMgr;
const $* pScalingLists;
const $* pShortTermRefPicSet;
const $* pLongTermRefPicsSps;
const $* pSequenceParameterSetVui;
const $* pPredictorPaletteEntries;
}]], mod.StdVideoH265SpsFlags, mod.StdVideoH265ChromaFormatIdc, mod.StdVideoH265ProfileTierLevel, mod.StdVideoH265DecPicBufMgr, mod.StdVideoH265ScalingLists, mod.StdVideoH265ShortTermRefPicSet, mod.StdVideoH265LongTermRefPicsSps, mod.StdVideoH265SequenceParameterSetVui, mod.StdVideoH265PredictorPaletteEntries)
mod.StdVideoH265PpsFlags = ffi.typeof([[struct {
uint32_t dependent_slice_segments_enabled_flag;
uint32_t output_flag_present_flag;
uint32_t sign_data_hiding_enabled_flag;
uint32_t cabac_init_present_flag;
uint32_t constrained_intra_pred_flag;
uint32_t transform_skip_enabled_flag;
uint32_t cu_qp_delta_enabled_flag;
uint32_t pps_slice_chroma_qp_offsets_present_flag;
uint32_t weighted_pred_flag;
uint32_t weighted_bipred_flag;
uint32_t transquant_bypass_enabled_flag;
uint32_t tiles_enabled_flag;
uint32_t entropy_coding_sync_enabled_flag;
uint32_t uniform_spacing_flag;
uint32_t loop_filter_across_tiles_enabled_flag;
uint32_t pps_loop_filter_across_slices_enabled_flag;
uint32_t deblocking_filter_control_present_flag;
uint32_t deblocking_filter_override_enabled_flag;
uint32_t pps_deblocking_filter_disabled_flag;
uint32_t pps_scaling_list_data_present_flag;
uint32_t lists_modification_present_flag;
uint32_t slice_segment_header_extension_present_flag;
uint32_t pps_extension_present_flag;
uint32_t cross_component_prediction_enabled_flag;
uint32_t chroma_qp_offset_list_enabled_flag;
uint32_t pps_curr_pic_ref_enabled_flag;
uint32_t residual_adaptive_colour_transform_enabled_flag;
uint32_t pps_slice_act_qp_offsets_present_flag;
uint32_t pps_palette_predictor_initializers_present_flag;
uint32_t monochrome_palette_flag;
uint32_t pps_range_extension_flag;
}]])
mod.StdVideoH265PictureParameterSet = ffi.typeof([[struct {
$ flags;
uint8_t pps_pic_parameter_set_id;
uint8_t pps_seq_parameter_set_id;
uint8_t sps_video_parameter_set_id;
uint8_t num_extra_slice_header_bits;
uint8_t num_ref_idx_l0_default_active_minus1;
uint8_t num_ref_idx_l1_default_active_minus1;
int8_t init_qp_minus26;
uint8_t diff_cu_qp_delta_depth;
int8_t pps_cb_qp_offset;
int8_t pps_cr_qp_offset;
int8_t pps_beta_offset_div2;
int8_t pps_tc_offset_div2;
uint8_t log2_parallel_merge_level_minus2;
uint8_t log2_max_transform_skip_block_size_minus2;
uint8_t diff_cu_chroma_qp_offset_depth;
uint8_t chroma_qp_offset_list_len_minus1;
int8_t cb_qp_offset_list[6U];
int8_t cr_qp_offset_list[6U];
uint8_t log2_sao_offset_scale_luma;
uint8_t log2_sao_offset_scale_chroma;
int8_t pps_act_y_qp_offset_plus5;
int8_t pps_act_cb_qp_offset_plus5;
int8_t pps_act_cr_qp_offset_plus3;
uint8_t pps_num_palette_predictor_initializers;
uint8_t luma_bit_depth_entry_minus8;
uint8_t chroma_bit_depth_entry_minus8;
uint8_t num_tile_columns_minus1;
uint8_t num_tile_rows_minus1;
uint8_t reserved1;
uint8_t reserved2;
uint16_t column_width_minus1[19U];
uint16_t row_height_minus1[21U];
uint32_t reserved3;
const $* pScalingLists;
const $* pPredictorPaletteEntries;
}]], mod.StdVideoH265PpsFlags, mod.StdVideoH265ScalingLists, mod.StdVideoH265PredictorPaletteEntries)
mod.StdVideoEncodeH265WeightTableFlags = ffi.typeof([[struct {
uint16_t luma_weight_l0_flag;
uint16_t chroma_weight_l0_flag;
uint16_t luma_weight_l1_flag;
uint16_t chroma_weight_l1_flag;
}]])
mod.StdVideoEncodeH265WeightTable = ffi.typeof([[struct {
$ flags;
uint8_t luma_log2_weight_denom;
int8_t delta_chroma_log2_weight_denom;
int8_t delta_luma_weight_l0[15U];
int8_t luma_offset_l0[15U];
int8_t delta_chroma_weight_l0[2U][15U];
int8_t delta_chroma_offset_l0[2U][15U];
int8_t delta_luma_weight_l1[15U];
int8_t luma_offset_l1[15U];
int8_t delta_chroma_weight_l1[2U][15U];
int8_t delta_chroma_offset_l1[2U][15U];
}]], mod.StdVideoEncodeH265WeightTableFlags)
mod.StdVideoEncodeH265SliceSegmentHeaderFlags = ffi.typeof([[struct {
uint32_t first_slice_segment_in_pic_flag;
uint32_t dependent_slice_segment_flag;
uint32_t slice_sao_luma_flag;
uint32_t slice_sao_chroma_flag;
uint32_t num_ref_idx_active_override_flag;
uint32_t mvd_l1_zero_flag;
uint32_t cabac_init_flag;
uint32_t cu_chroma_qp_offset_enabled_flag;
uint32_t deblocking_filter_override_flag;
uint32_t slice_deblocking_filter_disabled_flag;
uint32_t collocated_from_l0_flag;
uint32_t slice_loop_filter_across_slices_enabled_flag;
uint32_t reserved;
}]])
mod.StdVideoEncodeH265SliceSegmentHeader = ffi.typeof([[struct {
$ flags;
$ slice_type;
uint32_t slice_segment_address;
uint8_t collocated_ref_idx;
uint8_t MaxNumMergeCand;
int8_t slice_cb_qp_offset;
int8_t slice_cr_qp_offset;
int8_t slice_beta_offset_div2;
int8_t slice_tc_offset_div2;
int8_t slice_act_y_qp_offset;
int8_t slice_act_cb_qp_offset;
int8_t slice_act_cr_qp_offset;
int8_t slice_qp_delta;
uint16_t reserved1;
const $* pWeightTable;
}]], mod.StdVideoEncodeH265SliceSegmentHeaderFlags, mod.StdVideoH265SliceType, mod.StdVideoEncodeH265WeightTable)
mod.StdVideoEncodeH265ReferenceListsInfoFlags = ffi.typeof([[struct {
uint32_t ref_pic_list_modification_flag_l0;
uint32_t ref_pic_list_modification_flag_l1;
uint32_t reserved;
}]])
mod.StdVideoEncodeH265ReferenceListsInfo = ffi.typeof([[struct {
$ flags;
uint8_t num_ref_idx_l0_active_minus1;
uint8_t num_ref_idx_l1_active_minus1;
uint8_t RefPicList0[15U];
uint8_t RefPicList1[15U];
uint8_t list_entry_l0[15U];
uint8_t list_entry_l1[15U];
}]], mod.StdVideoEncodeH265ReferenceListsInfoFlags)
mod.StdVideoEncodeH265PictureInfoFlags = ffi.typeof([[struct {
uint32_t is_reference;
uint32_t IrapPicFlag;
uint32_t used_for_long_term_reference;
uint32_t discardable_flag;
uint32_t cross_layer_bla_flag;
uint32_t pic_output_flag;
uint32_t no_output_of_prior_pics_flag;
uint32_t short_term_ref_pic_set_sps_flag;
uint32_t slice_temporal_mvp_enabled_flag;
uint32_t reserved;
}]])
mod.StdVideoEncodeH265LongTermRefPics = ffi.typeof([[struct {
uint8_t num_long_term_sps;
uint8_t num_long_term_pics;
uint8_t lt_idx_sps[32U];
uint8_t poc_lsb_lt[16U];
uint16_t used_by_curr_pic_lt_flag;
uint8_t delta_poc_msb_present_flag[48U];
uint8_t delta_poc_msb_cycle_lt[48U];
}]])
mod.StdVideoEncodeH265PictureInfo = ffi.typeof([[struct {
$ flags;
$ pic_type;
uint8_t sps_video_parameter_set_id;
uint8_t pps_seq_parameter_set_id;
uint8_t pps_pic_parameter_set_id;
uint8_t short_term_ref_pic_set_idx;
int32_t PicOrderCntVal;
uint8_t TemporalId;
uint8_t reserved1[7];
const $* pRefLists;
const $* pShortTermRefPicSet;
const $* pLongTermRefPics;
}]], mod.StdVideoEncodeH265PictureInfoFlags, mod.StdVideoH265PictureType, mod.StdVideoEncodeH265ReferenceListsInfo, mod.StdVideoH265ShortTermRefPicSet, mod.StdVideoEncodeH265LongTermRefPics)
mod.StdVideoEncodeH265ReferenceInfoFlags = ffi.typeof([[struct {
uint32_t used_for_long_term_reference;
uint32_t unused_for_reference;
uint32_t reserved;
}]])
mod.StdVideoEncodeH265ReferenceInfo = ffi.typeof([[struct {
$ flags;
$ pic_type;
int32_t PicOrderCntVal;
uint8_t TemporalId;
}]], mod.StdVideoEncodeH265ReferenceInfoFlags, mod.StdVideoH265PictureType)
mod.VkVideoEncodeH265CapabilityFlagBitsKHR = ffi.typeof([[enum {
VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR,
VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR,
VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR,
VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR,
VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR,
VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR,
VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR,
VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR,
VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR,
VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR,
VK_VIDEO_ENCODE_H265_CAPABILITY_B_PICTURE_INTRA_REFRESH_BIT_KHR,
VK_VIDEO_ENCODE_H265_CAPABILITY_CU_QP_DIFF_WRAPAROUND_BIT_KHR,
VK_VIDEO_ENCODE_H265_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkVideoEncodeH265CapabilityFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoEncodeH265StdFlagBitsKHR = ffi.typeof([[enum {
VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR,
VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHR,
VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHR,
VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR,
VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHR,
VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR,
VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR,
VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHR,
VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHR,
VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHR,
VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR,
VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHR,
VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHR,
VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHR,
VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR,
VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_KHR,
VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_KHR,
VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_KHR,
VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_KHR,
VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_KHR,
VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR,
VK_VIDEO_ENCODE_H265_STD_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkVideoEncodeH265StdFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoEncodeH265CtbSizeFlagBitsKHR = ffi.typeof([[enum {
VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_KHR,
VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_KHR,
VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_KHR,
VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkVideoEncodeH265CtbSizeFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoEncodeH265TransformBlockSizeFlagBitsKHR = ffi.typeof([[enum {
VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_KHR,
VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_KHR,
VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_KHR,
VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_KHR,
VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkVideoEncodeH265TransformBlockSizeFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoEncodeH265RateControlFlagBitsKHR = ffi.typeof([[enum {
VK_VIDEO_ENCODE_H265_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR,
VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_KHR,
VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR,
VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR,
VK_VIDEO_ENCODE_H265_RATE_CONTROL_TEMPORAL_SUB_LAYER_PATTERN_DYADIC_BIT_KHR,
VK_VIDEO_ENCODE_H265_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkVideoEncodeH265RateControlFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoEncodeH265CapabilitiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ flags;
$ maxLevelIdc;
uint32_t maxSliceSegmentCount;
$ maxTiles;
$ ctbSizes;
$ transformBlockSizes;
uint32_t maxPPictureL0ReferenceCount;
uint32_t maxBPictureL0ReferenceCount;
uint32_t maxL1ReferenceCount;
uint32_t maxSubLayerCount;
$ expectDyadicTemporalSubLayerPattern;
int32_t minQp;
int32_t maxQp;
$ prefersGopRemainingFrames;
$ requiresGopRemainingFrames;
$ stdSyntaxFlags;
}]], mod.VkStructureType, mod.VkVideoEncodeH265CapabilityFlagsKHR, mod.StdVideoH265LevelIdc, mod.VkExtent2D, mod.VkVideoEncodeH265CtbSizeFlagsKHR, mod.VkVideoEncodeH265TransformBlockSizeFlagsKHR, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkVideoEncodeH265StdFlagsKHR)
mod.VkVideoEncodeH265SessionCreateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ useMaxLevelIdc;
$ maxLevelIdc;
}]], mod.VkStructureType, mod.VkBool32, mod.StdVideoH265LevelIdc)
mod.VkVideoEncodeH265QpKHR = ffi.typeof([[struct {
int32_t qpI;
int32_t qpP;
int32_t qpB;
}]])
mod.VkVideoEncodeH265QualityLevelPropertiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ preferredRateControlFlags;
uint32_t preferredGopFrameCount;
uint32_t preferredIdrPeriod;
uint32_t preferredConsecutiveBFrameCount;
uint32_t preferredSubLayerCount;
$ preferredConstantQp;
uint32_t preferredMaxL0ReferenceCount;
uint32_t preferredMaxL1ReferenceCount;
}]], mod.VkStructureType, mod.VkVideoEncodeH265RateControlFlagsKHR, mod.VkVideoEncodeH265QpKHR)
mod.VkVideoEncodeH265SessionParametersAddInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t stdVPSCount;
const $* pStdVPSs;
uint32_t stdSPSCount;
const $* pStdSPSs;
uint32_t stdPPSCount;
const $* pStdPPSs;
}]], mod.VkStructureType, mod.StdVideoH265VideoParameterSet, mod.StdVideoH265SequenceParameterSet, mod.StdVideoH265PictureParameterSet)
mod.VkVideoEncodeH265SessionParametersCreateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t maxStdVPSCount;
uint32_t maxStdSPSCount;
uint32_t maxStdPPSCount;
const $* pParametersAddInfo;
}]], mod.VkStructureType, mod.VkVideoEncodeH265SessionParametersAddInfoKHR)
mod.VkVideoEncodeH265SessionParametersGetInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ writeStdVPS;
$ writeStdSPS;
$ writeStdPPS;
uint32_t stdVPSId;
uint32_t stdSPSId;
uint32_t stdPPSId;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkVideoEncodeH265SessionParametersFeedbackInfoKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ hasStdVPSOverrides;
$ hasStdSPSOverrides;
$ hasStdPPSOverrides;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkVideoEncodeH265NaluSliceSegmentInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
int32_t constantQp;
const $* pStdSliceSegmentHeader;
}]], mod.VkStructureType, mod.StdVideoEncodeH265SliceSegmentHeader)
mod.VkVideoEncodeH265PictureInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t naluSliceSegmentEntryCount;
const $* pNaluSliceSegmentEntries;
const $* pStdPictureInfo;
}]], mod.VkStructureType, mod.VkVideoEncodeH265NaluSliceSegmentInfoKHR, mod.StdVideoEncodeH265PictureInfo)
mod.VkVideoEncodeH265DpbSlotInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
const $* pStdReferenceInfo;
}]], mod.VkStructureType, mod.StdVideoEncodeH265ReferenceInfo)
mod.VkVideoEncodeH265ProfileInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ stdProfileIdc;
}]], mod.VkStructureType, mod.StdVideoH265ProfileIdc)
mod.VkVideoEncodeH265RateControlInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
uint32_t gopFrameCount;
uint32_t idrPeriod;
uint32_t consecutiveBFrameCount;
uint32_t subLayerCount;
}]], mod.VkStructureType, mod.VkVideoEncodeH265RateControlFlagsKHR)
mod.VkVideoEncodeH265FrameSizeKHR = ffi.typeof([[struct {
uint32_t frameISize;
uint32_t framePSize;
uint32_t frameBSize;
}]])
mod.VkVideoEncodeH265RateControlLayerInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ useMinQp;
$ minQp;
$ useMaxQp;
$ maxQp;
$ useMaxFrameSize;
$ maxFrameSize;
}]], mod.VkStructureType, mod.VkBool32, mod.VkVideoEncodeH265QpKHR, mod.VkBool32, mod.VkVideoEncodeH265QpKHR, mod.VkBool32, mod.VkVideoEncodeH265FrameSizeKHR)
mod.VkVideoEncodeH265GopRemainingFrameInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ useGopRemainingFrames;
uint32_t gopRemainingI;
uint32_t gopRemainingP;
uint32_t gopRemainingB;
}]], mod.VkStructureType, mod.VkBool32)
mod.StdVideoDecodeH264FieldOrderCount = ffi.typeof([[enum {
STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP,
STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM,
STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID,
STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_MAX_ENUM,
}]])
mod.StdVideoDecodeH264PictureInfoFlags = ffi.typeof([[struct {
uint32_t field_pic_flag;
uint32_t is_intra;
uint32_t IdrPicFlag;
uint32_t bottom_field_flag;
uint32_t is_reference;
uint32_t complementary_field_pair;
}]])
mod.StdVideoDecodeH264PictureInfo = ffi.typeof([[struct {
$ flags;
uint8_t seq_parameter_set_id;
uint8_t pic_parameter_set_id;
uint8_t reserved1;
uint8_t reserved2;
uint16_t frame_num;
uint16_t idr_pic_id;
int32_t PicOrderCnt[2U];
}]], mod.StdVideoDecodeH264PictureInfoFlags)
mod.StdVideoDecodeH264ReferenceInfoFlags = ffi.typeof([[struct {
uint32_t top_field_flag;
uint32_t bottom_field_flag;
uint32_t used_for_long_term_reference;
uint32_t is_non_existing;
}]])
mod.StdVideoDecodeH264ReferenceInfo = ffi.typeof([[struct {
$ flags;
uint16_t FrameNum;
uint16_t reserved;
int32_t PicOrderCnt[2U];
}]], mod.StdVideoDecodeH264ReferenceInfoFlags)
mod.VkVideoDecodeH264PictureLayoutFlagBitsKHR = ffi.typeof([[enum {
VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR,
VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR,
VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR,
VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkVideoDecodeH264PictureLayoutFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoDecodeH264ProfileInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ stdProfileIdc;
$ pictureLayout;
}]], mod.VkStructureType, mod.StdVideoH264ProfileIdc, mod.VkVideoDecodeH264PictureLayoutFlagBitsKHR)
mod.VkVideoDecodeH264CapabilitiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ maxLevelIdc;
$ fieldOffsetGranularity;
}]], mod.VkStructureType, mod.StdVideoH264LevelIdc, mod.VkOffset2D)
mod.VkVideoDecodeH264SessionParametersAddInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t stdSPSCount;
const $* pStdSPSs;
uint32_t stdPPSCount;
const $* pStdPPSs;
}]], mod.VkStructureType, mod.StdVideoH264SequenceParameterSet, mod.StdVideoH264PictureParameterSet)
mod.VkVideoDecodeH264SessionParametersCreateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t maxStdSPSCount;
uint32_t maxStdPPSCount;
const $* pParametersAddInfo;
}]], mod.VkStructureType, mod.VkVideoDecodeH264SessionParametersAddInfoKHR)
mod.VkVideoDecodeH264PictureInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
const $* pStdPictureInfo;
uint32_t sliceCount;
const uint32_t* pSliceOffsets;
}]], mod.VkStructureType, mod.StdVideoDecodeH264PictureInfo)
mod.VkVideoDecodeH264DpbSlotInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
const $* pStdReferenceInfo;
}]], mod.VkStructureType, mod.StdVideoDecodeH264ReferenceInfo)
mod.VkRenderingFlagsKHR = ffi.typeof([[$ ]], mod.VkRenderingFlags)
mod.VkRenderingFlagBitsKHR = ffi.typeof([[$ ]], mod.VkRenderingFlagBits)
mod.VkRenderingInfoKHR = ffi.typeof([[$ ]], mod.VkRenderingInfo)
mod.VkRenderingAttachmentInfoKHR = ffi.typeof([[$ ]], mod.VkRenderingAttachmentInfo)
mod.VkPipelineRenderingCreateInfoKHR = ffi.typeof([[$ ]], mod.VkPipelineRenderingCreateInfo)
mod.VkPhysicalDeviceDynamicRenderingFeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceDynamicRenderingFeatures)
mod.VkCommandBufferInheritanceRenderingInfoKHR = ffi.typeof([[$ ]], mod.VkCommandBufferInheritanceRenderingInfo)
mod.PFN_vkCmdBeginRenderingKHR = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkRenderingInfo)
mod.PFN_vkCmdEndRenderingKHR = ffi.typeof([[void (*)($ )]], mod.VkCommandBuffer)
ffi.cdef([[void vkCmdBeginRenderingKHR($ , const $*);]], mod.VkCommandBuffer, mod.VkRenderingInfo)
ffi.cdef([[void vkCmdEndRenderingKHR($ );]], mod.VkCommandBuffer)
mod.VkRenderPassMultiviewCreateInfoKHR = ffi.typeof([[$ ]], mod.VkRenderPassMultiviewCreateInfo)
mod.VkPhysicalDeviceMultiviewFeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceMultiviewFeatures)
mod.VkPhysicalDeviceMultiviewPropertiesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceMultiviewProperties)
mod.VkPhysicalDeviceFeatures2KHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceFeatures2)
mod.VkPhysicalDeviceProperties2KHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceProperties2)
mod.VkFormatProperties2KHR = ffi.typeof([[$ ]], mod.VkFormatProperties2)
mod.VkImageFormatProperties2KHR = ffi.typeof([[$ ]], mod.VkImageFormatProperties2)
mod.VkPhysicalDeviceImageFormatInfo2KHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceImageFormatInfo2)
mod.VkQueueFamilyProperties2KHR = ffi.typeof([[$ ]], mod.VkQueueFamilyProperties2)
mod.VkPhysicalDeviceMemoryProperties2KHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceMemoryProperties2)
mod.VkSparseImageFormatProperties2KHR = ffi.typeof([[$ ]], mod.VkSparseImageFormatProperties2)
mod.VkPhysicalDeviceSparseImageFormatInfo2KHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceSparseImageFormatInfo2)
mod.PFN_vkGetPhysicalDeviceFeatures2KHR = ffi.typeof([[void (*)($ , $*)]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceFeatures2)
mod.PFN_vkGetPhysicalDeviceProperties2KHR = ffi.typeof([[void (*)($ , $*)]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceProperties2)
mod.PFN_vkGetPhysicalDeviceFormatProperties2KHR = ffi.typeof([[void (*)($ , $ , $*)]], mod.VkPhysicalDevice, mod.VkFormat, mod.VkFormatProperties2)
mod.PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = ffi.typeof([[$ (*)($ , const $*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkPhysicalDeviceImageFormatInfo2, mod.VkImageFormatProperties2)
mod.PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = ffi.typeof([[void (*)($ , uint32_t*, $*)]], mod.VkPhysicalDevice, mod.VkQueueFamilyProperties2)
mod.PFN_vkGetPhysicalDeviceMemoryProperties2KHR = ffi.typeof([[void (*)($ , $*)]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceMemoryProperties2)
mod.PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = ffi.typeof([[void (*)($ , const $*, uint32_t*, $*)]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceSparseImageFormatInfo2, mod.VkSparseImageFormatProperties2)
ffi.cdef([[void vkGetPhysicalDeviceFeatures2KHR($ , $*);]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceFeatures2)
ffi.cdef([[void vkGetPhysicalDeviceProperties2KHR($ , $*);]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceProperties2)
ffi.cdef([[void vkGetPhysicalDeviceFormatProperties2KHR($ , $ , $*);]], mod.VkPhysicalDevice, mod.VkFormat, mod.VkFormatProperties2)
ffi.cdef([[$ vkGetPhysicalDeviceImageFormatProperties2KHR($ , const $*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkPhysicalDeviceImageFormatInfo2, mod.VkImageFormatProperties2)
ffi.cdef([[void vkGetPhysicalDeviceQueueFamilyProperties2KHR($ , uint32_t*, $*);]], mod.VkPhysicalDevice, mod.VkQueueFamilyProperties2)
ffi.cdef([[void vkGetPhysicalDeviceMemoryProperties2KHR($ , $*);]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceMemoryProperties2)
ffi.cdef([[void vkGetPhysicalDeviceSparseImageFormatProperties2KHR($ , const $*, uint32_t*, $*);]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceSparseImageFormatInfo2, mod.VkSparseImageFormatProperties2)
mod.VkPeerMemoryFeatureFlagsKHR = ffi.typeof([[$ ]], mod.VkPeerMemoryFeatureFlags)
mod.VkPeerMemoryFeatureFlagBitsKHR = ffi.typeof([[$ ]], mod.VkPeerMemoryFeatureFlagBits)
mod.VkMemoryAllocateFlagsKHR = ffi.typeof([[$ ]], mod.VkMemoryAllocateFlags)
mod.VkMemoryAllocateFlagBitsKHR = ffi.typeof([[$ ]], mod.VkMemoryAllocateFlagBits)
mod.VkMemoryAllocateFlagsInfoKHR = ffi.typeof([[$ ]], mod.VkMemoryAllocateFlagsInfo)
mod.VkDeviceGroupRenderPassBeginInfoKHR = ffi.typeof([[$ ]], mod.VkDeviceGroupRenderPassBeginInfo)
mod.VkDeviceGroupCommandBufferBeginInfoKHR = ffi.typeof([[$ ]], mod.VkDeviceGroupCommandBufferBeginInfo)
mod.VkDeviceGroupSubmitInfoKHR = ffi.typeof([[$ ]], mod.VkDeviceGroupSubmitInfo)
mod.VkDeviceGroupBindSparseInfoKHR = ffi.typeof([[$ ]], mod.VkDeviceGroupBindSparseInfo)
mod.VkBindBufferMemoryDeviceGroupInfoKHR = ffi.typeof([[$ ]], mod.VkBindBufferMemoryDeviceGroupInfo)
mod.VkBindImageMemoryDeviceGroupInfoKHR = ffi.typeof([[$ ]], mod.VkBindImageMemoryDeviceGroupInfo)
mod.PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = ffi.typeof([[void (*)($ , uint32_t , uint32_t , uint32_t , $*)]], mod.VkDevice, mod.VkPeerMemoryFeatureFlags)
mod.PFN_vkCmdSetDeviceMaskKHR = ffi.typeof([[void (*)($ , uint32_t )]], mod.VkCommandBuffer)
mod.PFN_vkCmdDispatchBaseKHR = ffi.typeof([[void (*)($ , uint32_t , uint32_t , uint32_t , uint32_t , uint32_t , uint32_t )]], mod.VkCommandBuffer)
ffi.cdef([[void vkGetDeviceGroupPeerMemoryFeaturesKHR($ , uint32_t , uint32_t , uint32_t , $*);]], mod.VkDevice, mod.VkPeerMemoryFeatureFlags)
ffi.cdef([[void vkCmdSetDeviceMaskKHR($ , uint32_t );]], mod.VkCommandBuffer)
ffi.cdef([[void vkCmdDispatchBaseKHR($ , uint32_t , uint32_t , uint32_t , uint32_t , uint32_t , uint32_t );]], mod.VkCommandBuffer)
mod.VkCommandPoolTrimFlagsKHR = ffi.typeof([[$ ]], mod.VkCommandPoolTrimFlags)
mod.PFN_vkTrimCommandPoolKHR = ffi.typeof([[void (*)($ , $ , $ )]], mod.VkDevice, mod.VkCommandPool, mod.VkCommandPoolTrimFlags)
ffi.cdef([[void vkTrimCommandPoolKHR($ , $ , $ );]], mod.VkDevice, mod.VkCommandPool, mod.VkCommandPoolTrimFlags)
mod.VkPhysicalDeviceGroupPropertiesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceGroupProperties)
mod.VkDeviceGroupDeviceCreateInfoKHR = ffi.typeof([[$ ]], mod.VkDeviceGroupDeviceCreateInfo)
mod.PFN_vkEnumeratePhysicalDeviceGroupsKHR = ffi.typeof([[$ (*)($ , uint32_t*, $*)]], mod.VkResult, mod.VkInstance, mod.VkPhysicalDeviceGroupProperties)
ffi.cdef([[$ vkEnumeratePhysicalDeviceGroupsKHR($ , uint32_t*, $*);]], mod.VkResult, mod.VkInstance, mod.VkPhysicalDeviceGroupProperties)
mod.VkExternalMemoryHandleTypeFlagsKHR = ffi.typeof([[$ ]], mod.VkExternalMemoryHandleTypeFlags)
mod.VkExternalMemoryHandleTypeFlagBitsKHR = ffi.typeof([[$ ]], mod.VkExternalMemoryHandleTypeFlagBits)
mod.VkExternalMemoryFeatureFlagsKHR = ffi.typeof([[$ ]], mod.VkExternalMemoryFeatureFlags)
mod.VkExternalMemoryFeatureFlagBitsKHR = ffi.typeof([[$ ]], mod.VkExternalMemoryFeatureFlagBits)
mod.VkExternalMemoryPropertiesKHR = ffi.typeof([[$ ]], mod.VkExternalMemoryProperties)
mod.VkPhysicalDeviceExternalImageFormatInfoKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceExternalImageFormatInfo)
mod.VkExternalImageFormatPropertiesKHR = ffi.typeof([[$ ]], mod.VkExternalImageFormatProperties)
mod.VkPhysicalDeviceExternalBufferInfoKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceExternalBufferInfo)
mod.VkExternalBufferPropertiesKHR = ffi.typeof([[$ ]], mod.VkExternalBufferProperties)
mod.VkPhysicalDeviceIDPropertiesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceIDProperties)
mod.PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceExternalBufferInfo, mod.VkExternalBufferProperties)
ffi.cdef([[void vkGetPhysicalDeviceExternalBufferPropertiesKHR($ , const $*, $*);]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceExternalBufferInfo, mod.VkExternalBufferProperties)
mod.VkExternalMemoryImageCreateInfoKHR = ffi.typeof([[$ ]], mod.VkExternalMemoryImageCreateInfo)
mod.VkExternalMemoryBufferCreateInfoKHR = ffi.typeof([[$ ]], mod.VkExternalMemoryBufferCreateInfo)
mod.VkExportMemoryAllocateInfoKHR = ffi.typeof([[$ ]], mod.VkExportMemoryAllocateInfo)
mod.VkImportMemoryFdInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ handleType;
int fd;
}]], mod.VkStructureType, mod.VkExternalMemoryHandleTypeFlagBits)
mod.VkMemoryFdPropertiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t memoryTypeBits;
}]], mod.VkStructureType)
mod.VkMemoryGetFdInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ memory;
$ handleType;
}]], mod.VkStructureType, mod.VkDeviceMemory, mod.VkExternalMemoryHandleTypeFlagBits)
mod.PFN_vkGetMemoryFdKHR = ffi.typeof([[$ (*)($ , const $*, int*)]], mod.VkResult, mod.VkDevice, mod.VkMemoryGetFdInfoKHR)
mod.PFN_vkGetMemoryFdPropertiesKHR = ffi.typeof([[$ (*)($ , $ , int , $*)]], mod.VkResult, mod.VkDevice, mod.VkExternalMemoryHandleTypeFlagBits, mod.VkMemoryFdPropertiesKHR)
ffi.cdef([[$ vkGetMemoryFdKHR($ , const $*, int*);]], mod.VkResult, mod.VkDevice, mod.VkMemoryGetFdInfoKHR)
ffi.cdef([[$ vkGetMemoryFdPropertiesKHR($ , $ , int , $*);]], mod.VkResult, mod.VkDevice, mod.VkExternalMemoryHandleTypeFlagBits, mod.VkMemoryFdPropertiesKHR)
mod.VkExternalSemaphoreHandleTypeFlagsKHR = ffi.typeof([[$ ]], mod.VkExternalSemaphoreHandleTypeFlags)
mod.VkExternalSemaphoreHandleTypeFlagBitsKHR = ffi.typeof([[$ ]], mod.VkExternalSemaphoreHandleTypeFlagBits)
mod.VkExternalSemaphoreFeatureFlagsKHR = ffi.typeof([[$ ]], mod.VkExternalSemaphoreFeatureFlags)
mod.VkExternalSemaphoreFeatureFlagBitsKHR = ffi.typeof([[$ ]], mod.VkExternalSemaphoreFeatureFlagBits)
mod.VkPhysicalDeviceExternalSemaphoreInfoKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceExternalSemaphoreInfo)
mod.VkExternalSemaphorePropertiesKHR = ffi.typeof([[$ ]], mod.VkExternalSemaphoreProperties)
mod.PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceExternalSemaphoreInfo, mod.VkExternalSemaphoreProperties)
ffi.cdef([[void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR($ , const $*, $*);]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceExternalSemaphoreInfo, mod.VkExternalSemaphoreProperties)
mod.VkSemaphoreImportFlagsKHR = ffi.typeof([[$ ]], mod.VkSemaphoreImportFlags)
mod.VkSemaphoreImportFlagBitsKHR = ffi.typeof([[$ ]], mod.VkSemaphoreImportFlagBits)
mod.VkExportSemaphoreCreateInfoKHR = ffi.typeof([[$ ]], mod.VkExportSemaphoreCreateInfo)
mod.VkImportSemaphoreFdInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ semaphore;
$ flags;
$ handleType;
int fd;
}]], mod.VkStructureType, mod.VkSemaphore, mod.VkSemaphoreImportFlags, mod.VkExternalSemaphoreHandleTypeFlagBits)
mod.VkSemaphoreGetFdInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ semaphore;
$ handleType;
}]], mod.VkStructureType, mod.VkSemaphore, mod.VkExternalSemaphoreHandleTypeFlagBits)
mod.PFN_vkImportSemaphoreFdKHR = ffi.typeof([[$ (*)($ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkImportSemaphoreFdInfoKHR)
mod.PFN_vkGetSemaphoreFdKHR = ffi.typeof([[$ (*)($ , const $*, int*)]], mod.VkResult, mod.VkDevice, mod.VkSemaphoreGetFdInfoKHR)
ffi.cdef([[$ vkImportSemaphoreFdKHR($ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkImportSemaphoreFdInfoKHR)
ffi.cdef([[$ vkGetSemaphoreFdKHR($ , const $*, int*);]], mod.VkResult, mod.VkDevice, mod.VkSemaphoreGetFdInfoKHR)
mod.VkPhysicalDevicePushDescriptorPropertiesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDevicePushDescriptorProperties)
mod.PFN_vkCmdPushDescriptorSetKHR = ffi.typeof([[void (*)($ , $ , $ , uint32_t , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkPipelineBindPoint, mod.VkPipelineLayout, mod.VkWriteDescriptorSet)
mod.PFN_vkCmdPushDescriptorSetWithTemplateKHR = ffi.typeof([[void (*)($ , $ , $ , uint32_t , const void*)]], mod.VkCommandBuffer, mod.VkDescriptorUpdateTemplate, mod.VkPipelineLayout)
ffi.cdef([[void vkCmdPushDescriptorSetKHR($ , $ , $ , uint32_t , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkPipelineBindPoint, mod.VkPipelineLayout, mod.VkWriteDescriptorSet)
ffi.cdef([[void vkCmdPushDescriptorSetWithTemplateKHR($ , $ , $ , uint32_t , const void*);]], mod.VkCommandBuffer, mod.VkDescriptorUpdateTemplate, mod.VkPipelineLayout)
mod.VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceShaderFloat16Int8Features)
mod.VkPhysicalDeviceFloat16Int8FeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceShaderFloat16Int8Features)
mod.VkPhysicalDevice16BitStorageFeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDevice16BitStorageFeatures)
mod.VkRectLayerKHR = ffi.typeof([[struct {
$ offset;
$ extent;
uint32_t layer;
}]], mod.VkOffset2D, mod.VkExtent2D)
mod.VkPresentRegionKHR = ffi.typeof([[struct {
uint32_t rectangleCount;
const $* pRectangles;
}]], mod.VkRectLayerKHR)
mod.VkPresentRegionsKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t swapchainCount;
const $* pRegions;
}]], mod.VkStructureType, mod.VkPresentRegionKHR)
mod.VkDescriptorUpdateTemplateKHR = ffi.typeof([[$ ]], mod.VkDescriptorUpdateTemplate)
mod.VkDescriptorUpdateTemplateTypeKHR = ffi.typeof([[$ ]], mod.VkDescriptorUpdateTemplateType)
mod.VkDescriptorUpdateTemplateCreateFlagsKHR = ffi.typeof([[$ ]], mod.VkDescriptorUpdateTemplateCreateFlags)
mod.VkDescriptorUpdateTemplateEntryKHR = ffi.typeof([[$ ]], mod.VkDescriptorUpdateTemplateEntry)
mod.VkDescriptorUpdateTemplateCreateInfoKHR = ffi.typeof([[$ ]], mod.VkDescriptorUpdateTemplateCreateInfo)
mod.PFN_vkCreateDescriptorUpdateTemplateKHR = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkDescriptorUpdateTemplateCreateInfo, mod.VkAllocationCallbacks, mod.VkDescriptorUpdateTemplate)
mod.PFN_vkDestroyDescriptorUpdateTemplateKHR = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkDescriptorUpdateTemplate, mod.VkAllocationCallbacks)
mod.PFN_vkUpdateDescriptorSetWithTemplateKHR = ffi.typeof([[void (*)($ , $ , $ , const void*)]], mod.VkDevice, mod.VkDescriptorSet, mod.VkDescriptorUpdateTemplate)
ffi.cdef([[$ vkCreateDescriptorUpdateTemplateKHR($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkDescriptorUpdateTemplateCreateInfo, mod.VkAllocationCallbacks, mod.VkDescriptorUpdateTemplate)
ffi.cdef([[void vkDestroyDescriptorUpdateTemplateKHR($ , $ , const $*);]], mod.VkDevice, mod.VkDescriptorUpdateTemplate, mod.VkAllocationCallbacks)
ffi.cdef([[void vkUpdateDescriptorSetWithTemplateKHR($ , $ , $ , const void*);]], mod.VkDevice, mod.VkDescriptorSet, mod.VkDescriptorUpdateTemplate)
mod.VkPhysicalDeviceImagelessFramebufferFeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceImagelessFramebufferFeatures)
mod.VkFramebufferAttachmentsCreateInfoKHR = ffi.typeof([[$ ]], mod.VkFramebufferAttachmentsCreateInfo)
mod.VkFramebufferAttachmentImageInfoKHR = ffi.typeof([[$ ]], mod.VkFramebufferAttachmentImageInfo)
mod.VkRenderPassAttachmentBeginInfoKHR = ffi.typeof([[$ ]], mod.VkRenderPassAttachmentBeginInfo)
mod.VkRenderPassCreateInfo2KHR = ffi.typeof([[$ ]], mod.VkRenderPassCreateInfo2)
mod.VkAttachmentDescription2KHR = ffi.typeof([[$ ]], mod.VkAttachmentDescription2)
mod.VkAttachmentReference2KHR = ffi.typeof([[$ ]], mod.VkAttachmentReference2)
mod.VkSubpassDescription2KHR = ffi.typeof([[$ ]], mod.VkSubpassDescription2)
mod.VkSubpassDependency2KHR = ffi.typeof([[$ ]], mod.VkSubpassDependency2)
mod.VkSubpassBeginInfoKHR = ffi.typeof([[$ ]], mod.VkSubpassBeginInfo)
mod.VkSubpassEndInfoKHR = ffi.typeof([[$ ]], mod.VkSubpassEndInfo)
mod.PFN_vkCreateRenderPass2KHR = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkRenderPassCreateInfo2, mod.VkAllocationCallbacks, mod.VkRenderPass)
mod.PFN_vkCmdBeginRenderPass2KHR = ffi.typeof([[void (*)($ , const $*, const $*)]], mod.VkCommandBuffer, mod.VkRenderPassBeginInfo, mod.VkSubpassBeginInfo)
mod.PFN_vkCmdNextSubpass2KHR = ffi.typeof([[void (*)($ , const $*, const $*)]], mod.VkCommandBuffer, mod.VkSubpassBeginInfo, mod.VkSubpassEndInfo)
mod.PFN_vkCmdEndRenderPass2KHR = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkSubpassEndInfo)
ffi.cdef([[$ vkCreateRenderPass2KHR($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkRenderPassCreateInfo2, mod.VkAllocationCallbacks, mod.VkRenderPass)
ffi.cdef([[void vkCmdBeginRenderPass2KHR($ , const $*, const $*);]], mod.VkCommandBuffer, mod.VkRenderPassBeginInfo, mod.VkSubpassBeginInfo)
ffi.cdef([[void vkCmdNextSubpass2KHR($ , const $*, const $*);]], mod.VkCommandBuffer, mod.VkSubpassBeginInfo, mod.VkSubpassEndInfo)
ffi.cdef([[void vkCmdEndRenderPass2KHR($ , const $*);]], mod.VkCommandBuffer, mod.VkSubpassEndInfo)
mod.VkSharedPresentSurfaceCapabilitiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ sharedPresentSupportedUsageFlags;
}]], mod.VkStructureType, mod.VkImageUsageFlags)
mod.PFN_vkGetSwapchainStatusKHR = ffi.typeof([[$ (*)($ , $ )]], mod.VkResult, mod.VkDevice, mod.VkSwapchainKHR)
ffi.cdef([[$ vkGetSwapchainStatusKHR($ , $ );]], mod.VkResult, mod.VkDevice, mod.VkSwapchainKHR)
mod.VkExternalFenceHandleTypeFlagsKHR = ffi.typeof([[$ ]], mod.VkExternalFenceHandleTypeFlags)
mod.VkExternalFenceHandleTypeFlagBitsKHR = ffi.typeof([[$ ]], mod.VkExternalFenceHandleTypeFlagBits)
mod.VkExternalFenceFeatureFlagsKHR = ffi.typeof([[$ ]], mod.VkExternalFenceFeatureFlags)
mod.VkExternalFenceFeatureFlagBitsKHR = ffi.typeof([[$ ]], mod.VkExternalFenceFeatureFlagBits)
mod.VkPhysicalDeviceExternalFenceInfoKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceExternalFenceInfo)
mod.VkExternalFencePropertiesKHR = ffi.typeof([[$ ]], mod.VkExternalFenceProperties)
mod.PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceExternalFenceInfo, mod.VkExternalFenceProperties)
ffi.cdef([[void vkGetPhysicalDeviceExternalFencePropertiesKHR($ , const $*, $*);]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceExternalFenceInfo, mod.VkExternalFenceProperties)
mod.VkFenceImportFlagsKHR = ffi.typeof([[$ ]], mod.VkFenceImportFlags)
mod.VkFenceImportFlagBitsKHR = ffi.typeof([[$ ]], mod.VkFenceImportFlagBits)
mod.VkExportFenceCreateInfoKHR = ffi.typeof([[$ ]], mod.VkExportFenceCreateInfo)
mod.VkImportFenceFdInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ fence;
$ flags;
$ handleType;
int fd;
}]], mod.VkStructureType, mod.VkFence, mod.VkFenceImportFlags, mod.VkExternalFenceHandleTypeFlagBits)
mod.VkFenceGetFdInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ fence;
$ handleType;
}]], mod.VkStructureType, mod.VkFence, mod.VkExternalFenceHandleTypeFlagBits)
mod.PFN_vkImportFenceFdKHR = ffi.typeof([[$ (*)($ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkImportFenceFdInfoKHR)
mod.PFN_vkGetFenceFdKHR = ffi.typeof([[$ (*)($ , const $*, int*)]], mod.VkResult, mod.VkDevice, mod.VkFenceGetFdInfoKHR)
ffi.cdef([[$ vkImportFenceFdKHR($ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkImportFenceFdInfoKHR)
ffi.cdef([[$ vkGetFenceFdKHR($ , const $*, int*);]], mod.VkResult, mod.VkDevice, mod.VkFenceGetFdInfoKHR)
mod.VkPerformanceCounterUnitKHR = ffi.typeof([[enum {
VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR,
VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR,
VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR,
VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR,
VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR,
VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR,
VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR,
VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR,
VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR,
VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR,
VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR,
VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR,
}]])
mod.VkPerformanceCounterScopeKHR = ffi.typeof([[enum {
VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
VK_QUERY_SCOPE_COMMAND_BUFFER_KHR,
VK_QUERY_SCOPE_RENDER_PASS_KHR,
VK_QUERY_SCOPE_COMMAND_KHR,
VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR,
}]])
mod.VkPerformanceCounterStorageKHR = ffi.typeof([[enum {
VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR,
VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR,
VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR,
VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR,
VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR,
VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR,
VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR,
}]])
mod.VkPerformanceCounterDescriptionFlagBitsKHR = ffi.typeof([[enum {
VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,
VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,
VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR,
VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR,
VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkPerformanceCounterDescriptionFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkAcquireProfilingLockFlagBitsKHR = ffi.typeof([[enum {
VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkAcquireProfilingLockFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPhysicalDevicePerformanceQueryFeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ performanceCounterQueryPools;
$ performanceCounterMultipleQueryPools;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDevicePerformanceQueryPropertiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ allowCommandBufferQueryCopies;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPerformanceCounterKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ unit;
$ scope;
$ storage;
uint8_t uuid[16U];
}]], mod.VkStructureType, mod.VkPerformanceCounterUnitKHR, mod.VkPerformanceCounterScopeKHR, mod.VkPerformanceCounterStorageKHR)
mod.VkPerformanceCounterDescriptionKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ flags;
char name[256U];
char category[256U];
char description[256U];
}]], mod.VkStructureType, mod.VkPerformanceCounterDescriptionFlagsKHR)
mod.VkQueryPoolPerformanceCreateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t queueFamilyIndex;
uint32_t counterIndexCount;
const uint32_t* pCounterIndices;
}]], mod.VkStructureType)
mod.VkPerformanceCounterResultKHR = ffi.typeof([[union {
int32_t int32;
int64_t int64;
uint32_t uint32;
uint64_t uint64;
float float32;
double float64;
}]])
mod.VkAcquireProfilingLockInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
uint64_t timeout;
}]], mod.VkStructureType, mod.VkAcquireProfilingLockFlagsKHR)
mod.VkPerformanceQuerySubmitInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t counterPassIndex;
}]], mod.VkStructureType)
mod.PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = ffi.typeof([[$ (*)($ , uint32_t , uint32_t*, $*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkPerformanceCounterKHR, mod.VkPerformanceCounterDescriptionKHR)
mod.PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = ffi.typeof([[void (*)($ , const $*, uint32_t*)]], mod.VkPhysicalDevice, mod.VkQueryPoolPerformanceCreateInfoKHR)
mod.PFN_vkAcquireProfilingLockKHR = ffi.typeof([[$ (*)($ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkAcquireProfilingLockInfoKHR)
mod.PFN_vkReleaseProfilingLockKHR = ffi.typeof([[void (*)($ )]], mod.VkDevice)
ffi.cdef([[$ vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR($ , uint32_t , uint32_t*, $*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkPerformanceCounterKHR, mod.VkPerformanceCounterDescriptionKHR)
ffi.cdef([[void vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR($ , const $*, uint32_t*);]], mod.VkPhysicalDevice, mod.VkQueryPoolPerformanceCreateInfoKHR)
ffi.cdef([[$ vkAcquireProfilingLockKHR($ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkAcquireProfilingLockInfoKHR)
ffi.cdef([[void vkReleaseProfilingLockKHR($ );]], mod.VkDevice)
mod.VkPointClippingBehaviorKHR = ffi.typeof([[$ ]], mod.VkPointClippingBehavior)
mod.VkTessellationDomainOriginKHR = ffi.typeof([[$ ]], mod.VkTessellationDomainOrigin)
mod.VkPhysicalDevicePointClippingPropertiesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDevicePointClippingProperties)
mod.VkRenderPassInputAttachmentAspectCreateInfoKHR = ffi.typeof([[$ ]], mod.VkRenderPassInputAttachmentAspectCreateInfo)
mod.VkInputAttachmentAspectReferenceKHR = ffi.typeof([[$ ]], mod.VkInputAttachmentAspectReference)
mod.VkImageViewUsageCreateInfoKHR = ffi.typeof([[$ ]], mod.VkImageViewUsageCreateInfo)
mod.VkPipelineTessellationDomainOriginStateCreateInfoKHR = ffi.typeof([[$ ]], mod.VkPipelineTessellationDomainOriginStateCreateInfo)
mod.VkPhysicalDeviceSurfaceInfo2KHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ surface;
}]], mod.VkStructureType, mod.VkSurfaceKHR)
mod.VkSurfaceCapabilities2KHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ surfaceCapabilities;
}]], mod.VkStructureType, mod.VkSurfaceCapabilitiesKHR)
mod.VkSurfaceFormat2KHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ surfaceFormat;
}]], mod.VkStructureType, mod.VkSurfaceFormatKHR)
mod.PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = ffi.typeof([[$ (*)($ , const $*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkPhysicalDeviceSurfaceInfo2KHR, mod.VkSurfaceCapabilities2KHR)
mod.PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = ffi.typeof([[$ (*)($ , const $*, uint32_t*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkPhysicalDeviceSurfaceInfo2KHR, mod.VkSurfaceFormat2KHR)
ffi.cdef([[$ vkGetPhysicalDeviceSurfaceCapabilities2KHR($ , const $*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkPhysicalDeviceSurfaceInfo2KHR, mod.VkSurfaceCapabilities2KHR)
ffi.cdef([[$ vkGetPhysicalDeviceSurfaceFormats2KHR($ , const $*, uint32_t*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkPhysicalDeviceSurfaceInfo2KHR, mod.VkSurfaceFormat2KHR)
mod.VkPhysicalDeviceVariablePointerFeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceVariablePointersFeatures)
mod.VkPhysicalDeviceVariablePointersFeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceVariablePointersFeatures)
mod.VkDisplayProperties2KHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ displayProperties;
}]], mod.VkStructureType, mod.VkDisplayPropertiesKHR)
mod.VkDisplayPlaneProperties2KHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ displayPlaneProperties;
}]], mod.VkStructureType, mod.VkDisplayPlanePropertiesKHR)
mod.VkDisplayModeProperties2KHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ displayModeProperties;
}]], mod.VkStructureType, mod.VkDisplayModePropertiesKHR)
mod.VkDisplayPlaneInfo2KHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ mode;
uint32_t planeIndex;
}]], mod.VkStructureType, mod.VkDisplayModeKHR)
mod.VkDisplayPlaneCapabilities2KHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ capabilities;
}]], mod.VkStructureType, mod.VkDisplayPlaneCapabilitiesKHR)
mod.PFN_vkGetPhysicalDeviceDisplayProperties2KHR = ffi.typeof([[$ (*)($ , uint32_t*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkDisplayProperties2KHR)
mod.PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = ffi.typeof([[$ (*)($ , uint32_t*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkDisplayPlaneProperties2KHR)
mod.PFN_vkGetDisplayModeProperties2KHR = ffi.typeof([[$ (*)($ , $ , uint32_t*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkDisplayKHR, mod.VkDisplayModeProperties2KHR)
mod.PFN_vkGetDisplayPlaneCapabilities2KHR = ffi.typeof([[$ (*)($ , const $*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkDisplayPlaneInfo2KHR, mod.VkDisplayPlaneCapabilities2KHR)
ffi.cdef([[$ vkGetPhysicalDeviceDisplayProperties2KHR($ , uint32_t*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkDisplayProperties2KHR)
ffi.cdef([[$ vkGetPhysicalDeviceDisplayPlaneProperties2KHR($ , uint32_t*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkDisplayPlaneProperties2KHR)
ffi.cdef([[$ vkGetDisplayModeProperties2KHR($ , $ , uint32_t*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkDisplayKHR, mod.VkDisplayModeProperties2KHR)
ffi.cdef([[$ vkGetDisplayPlaneCapabilities2KHR($ , const $*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkDisplayPlaneInfo2KHR, mod.VkDisplayPlaneCapabilities2KHR)
mod.VkMemoryDedicatedRequirementsKHR = ffi.typeof([[$ ]], mod.VkMemoryDedicatedRequirements)
mod.VkMemoryDedicatedAllocateInfoKHR = ffi.typeof([[$ ]], mod.VkMemoryDedicatedAllocateInfo)
mod.VkPhysicalDeviceShaderBfloat16FeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderBFloat16Type;
$ shaderBFloat16DotProduct;
$ shaderBFloat16CooperativeMatrix;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkBufferMemoryRequirementsInfo2KHR = ffi.typeof([[$ ]], mod.VkBufferMemoryRequirementsInfo2)
mod.VkImageMemoryRequirementsInfo2KHR = ffi.typeof([[$ ]], mod.VkImageMemoryRequirementsInfo2)
mod.VkImageSparseMemoryRequirementsInfo2KHR = ffi.typeof([[$ ]], mod.VkImageSparseMemoryRequirementsInfo2)
mod.VkMemoryRequirements2KHR = ffi.typeof([[$ ]], mod.VkMemoryRequirements2)
mod.VkSparseImageMemoryRequirements2KHR = ffi.typeof([[$ ]], mod.VkSparseImageMemoryRequirements2)
mod.PFN_vkGetImageMemoryRequirements2KHR = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkDevice, mod.VkImageMemoryRequirementsInfo2, mod.VkMemoryRequirements2)
mod.PFN_vkGetBufferMemoryRequirements2KHR = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkDevice, mod.VkBufferMemoryRequirementsInfo2, mod.VkMemoryRequirements2)
mod.PFN_vkGetImageSparseMemoryRequirements2KHR = ffi.typeof([[void (*)($ , const $*, uint32_t*, $*)]], mod.VkDevice, mod.VkImageSparseMemoryRequirementsInfo2, mod.VkSparseImageMemoryRequirements2)
ffi.cdef([[void vkGetImageMemoryRequirements2KHR($ , const $*, $*);]], mod.VkDevice, mod.VkImageMemoryRequirementsInfo2, mod.VkMemoryRequirements2)
ffi.cdef([[void vkGetBufferMemoryRequirements2KHR($ , const $*, $*);]], mod.VkDevice, mod.VkBufferMemoryRequirementsInfo2, mod.VkMemoryRequirements2)
ffi.cdef([[void vkGetImageSparseMemoryRequirements2KHR($ , const $*, uint32_t*, $*);]], mod.VkDevice, mod.VkImageSparseMemoryRequirementsInfo2, mod.VkSparseImageMemoryRequirements2)
mod.VkImageFormatListCreateInfoKHR = ffi.typeof([[$ ]], mod.VkImageFormatListCreateInfo)
mod.VkSamplerYcbcrConversionKHR = ffi.typeof([[$ ]], mod.VkSamplerYcbcrConversion)
mod.VkSamplerYcbcrModelConversionKHR = ffi.typeof([[$ ]], mod.VkSamplerYcbcrModelConversion)
mod.VkSamplerYcbcrRangeKHR = ffi.typeof([[$ ]], mod.VkSamplerYcbcrRange)
mod.VkChromaLocationKHR = ffi.typeof([[$ ]], mod.VkChromaLocation)
mod.VkSamplerYcbcrConversionCreateInfoKHR = ffi.typeof([[$ ]], mod.VkSamplerYcbcrConversionCreateInfo)
mod.VkSamplerYcbcrConversionInfoKHR = ffi.typeof([[$ ]], mod.VkSamplerYcbcrConversionInfo)
mod.VkBindImagePlaneMemoryInfoKHR = ffi.typeof([[$ ]], mod.VkBindImagePlaneMemoryInfo)
mod.VkImagePlaneMemoryRequirementsInfoKHR = ffi.typeof([[$ ]], mod.VkImagePlaneMemoryRequirementsInfo)
mod.VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceSamplerYcbcrConversionFeatures)
mod.VkSamplerYcbcrConversionImageFormatPropertiesKHR = ffi.typeof([[$ ]], mod.VkSamplerYcbcrConversionImageFormatProperties)
mod.PFN_vkCreateSamplerYcbcrConversionKHR = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkSamplerYcbcrConversionCreateInfo, mod.VkAllocationCallbacks, mod.VkSamplerYcbcrConversion)
mod.PFN_vkDestroySamplerYcbcrConversionKHR = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkSamplerYcbcrConversion, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkCreateSamplerYcbcrConversionKHR($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkSamplerYcbcrConversionCreateInfo, mod.VkAllocationCallbacks, mod.VkSamplerYcbcrConversion)
ffi.cdef([[void vkDestroySamplerYcbcrConversionKHR($ , $ , const $*);]], mod.VkDevice, mod.VkSamplerYcbcrConversion, mod.VkAllocationCallbacks)
mod.VkBindBufferMemoryInfoKHR = ffi.typeof([[$ ]], mod.VkBindBufferMemoryInfo)
mod.VkBindImageMemoryInfoKHR = ffi.typeof([[$ ]], mod.VkBindImageMemoryInfo)
mod.PFN_vkBindBufferMemory2KHR = ffi.typeof([[$ (*)($ , uint32_t , const $*)]], mod.VkResult, mod.VkDevice, mod.VkBindBufferMemoryInfo)
mod.PFN_vkBindImageMemory2KHR = ffi.typeof([[$ (*)($ , uint32_t , const $*)]], mod.VkResult, mod.VkDevice, mod.VkBindImageMemoryInfo)
ffi.cdef([[$ vkBindBufferMemory2KHR($ , uint32_t , const $*);]], mod.VkResult, mod.VkDevice, mod.VkBindBufferMemoryInfo)
ffi.cdef([[$ vkBindImageMemory2KHR($ , uint32_t , const $*);]], mod.VkResult, mod.VkDevice, mod.VkBindImageMemoryInfo)
mod.VkPhysicalDeviceMaintenance3PropertiesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceMaintenance3Properties)
mod.VkDescriptorSetLayoutSupportKHR = ffi.typeof([[$ ]], mod.VkDescriptorSetLayoutSupport)
mod.PFN_vkGetDescriptorSetLayoutSupportKHR = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkDevice, mod.VkDescriptorSetLayoutCreateInfo, mod.VkDescriptorSetLayoutSupport)
ffi.cdef([[void vkGetDescriptorSetLayoutSupportKHR($ , const $*, $*);]], mod.VkDevice, mod.VkDescriptorSetLayoutCreateInfo, mod.VkDescriptorSetLayoutSupport)
mod.PFN_vkCmdDrawIndirectCountKHR = ffi.typeof([[void (*)($ , $ , $ , $ , $ , uint32_t , uint32_t )]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkBuffer, mod.VkDeviceSize)
mod.PFN_vkCmdDrawIndexedIndirectCountKHR = ffi.typeof([[void (*)($ , $ , $ , $ , $ , uint32_t , uint32_t )]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkBuffer, mod.VkDeviceSize)
ffi.cdef([[void vkCmdDrawIndirectCountKHR($ , $ , $ , $ , $ , uint32_t , uint32_t );]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkBuffer, mod.VkDeviceSize)
ffi.cdef([[void vkCmdDrawIndexedIndirectCountKHR($ , $ , $ , $ , $ , uint32_t , uint32_t );]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkBuffer, mod.VkDeviceSize)
mod.VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures)
mod.VkPhysicalDevice8BitStorageFeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDevice8BitStorageFeatures)
mod.VkPhysicalDeviceShaderAtomicInt64FeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceShaderAtomicInt64Features)
mod.VkPhysicalDeviceShaderClockFeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderSubgroupClock;
$ shaderDeviceClock;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.StdVideoDecodeH265PictureInfoFlags = ffi.typeof([[struct {
uint32_t IrapPicFlag;
uint32_t IdrPicFlag;
uint32_t IsReference;
uint32_t short_term_ref_pic_set_sps_flag;
}]])
mod.StdVideoDecodeH265PictureInfo = ffi.typeof([[struct {
$ flags;
uint8_t sps_video_parameter_set_id;
uint8_t pps_seq_parameter_set_id;
uint8_t pps_pic_parameter_set_id;
uint8_t NumDeltaPocsOfRefRpsIdx;
int32_t PicOrderCntVal;
uint16_t NumBitsForSTRefPicSetInSlice;
uint16_t reserved;
uint8_t RefPicSetStCurrBefore[8U];
uint8_t RefPicSetStCurrAfter[8U];
uint8_t RefPicSetLtCurr[8U];
}]], mod.StdVideoDecodeH265PictureInfoFlags)
mod.StdVideoDecodeH265ReferenceInfoFlags = ffi.typeof([[struct {
uint32_t used_for_long_term_reference;
uint32_t unused_for_reference;
}]])
mod.StdVideoDecodeH265ReferenceInfo = ffi.typeof([[struct {
$ flags;
int32_t PicOrderCntVal;
}]], mod.StdVideoDecodeH265ReferenceInfoFlags)
mod.VkVideoDecodeH265ProfileInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ stdProfileIdc;
}]], mod.VkStructureType, mod.StdVideoH265ProfileIdc)
mod.VkVideoDecodeH265CapabilitiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ maxLevelIdc;
}]], mod.VkStructureType, mod.StdVideoH265LevelIdc)
mod.VkVideoDecodeH265SessionParametersAddInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t stdVPSCount;
const $* pStdVPSs;
uint32_t stdSPSCount;
const $* pStdSPSs;
uint32_t stdPPSCount;
const $* pStdPPSs;
}]], mod.VkStructureType, mod.StdVideoH265VideoParameterSet, mod.StdVideoH265SequenceParameterSet, mod.StdVideoH265PictureParameterSet)
mod.VkVideoDecodeH265SessionParametersCreateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t maxStdVPSCount;
uint32_t maxStdSPSCount;
uint32_t maxStdPPSCount;
const $* pParametersAddInfo;
}]], mod.VkStructureType, mod.VkVideoDecodeH265SessionParametersAddInfoKHR)
mod.VkVideoDecodeH265PictureInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
const $* pStdPictureInfo;
uint32_t sliceSegmentCount;
const uint32_t* pSliceSegmentOffsets;
}]], mod.VkStructureType, mod.StdVideoDecodeH265PictureInfo)
mod.VkVideoDecodeH265DpbSlotInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
const $* pStdReferenceInfo;
}]], mod.VkStructureType, mod.StdVideoDecodeH265ReferenceInfo)
mod.VkQueueGlobalPriorityKHR = ffi.typeof([[$ ]], mod.VkQueueGlobalPriority)
mod.VkDeviceQueueGlobalPriorityCreateInfoKHR = ffi.typeof([[$ ]], mod.VkDeviceQueueGlobalPriorityCreateInfo)
mod.VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceGlobalPriorityQueryFeatures)
mod.VkQueueFamilyGlobalPriorityPropertiesKHR = ffi.typeof([[$ ]], mod.VkQueueFamilyGlobalPriorityProperties)
mod.VkDriverIdKHR = ffi.typeof([[$ ]], mod.VkDriverId)
mod.VkConformanceVersionKHR = ffi.typeof([[$ ]], mod.VkConformanceVersion)
mod.VkPhysicalDeviceDriverPropertiesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceDriverProperties)
mod.VkShaderFloatControlsIndependenceKHR = ffi.typeof([[$ ]], mod.VkShaderFloatControlsIndependence)
mod.VkPhysicalDeviceFloatControlsPropertiesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceFloatControlsProperties)
mod.VkResolveModeFlagBitsKHR = ffi.typeof([[$ ]], mod.VkResolveModeFlagBits)
mod.VkResolveModeFlagsKHR = ffi.typeof([[$ ]], mod.VkResolveModeFlags)
mod.VkSubpassDescriptionDepthStencilResolveKHR = ffi.typeof([[$ ]], mod.VkSubpassDescriptionDepthStencilResolve)
mod.VkPhysicalDeviceDepthStencilResolvePropertiesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceDepthStencilResolveProperties)
mod.VkSemaphoreTypeKHR = ffi.typeof([[$ ]], mod.VkSemaphoreType)
mod.VkSemaphoreWaitFlagBitsKHR = ffi.typeof([[$ ]], mod.VkSemaphoreWaitFlagBits)
mod.VkSemaphoreWaitFlagsKHR = ffi.typeof([[$ ]], mod.VkSemaphoreWaitFlags)
mod.VkPhysicalDeviceTimelineSemaphoreFeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceTimelineSemaphoreFeatures)
mod.VkPhysicalDeviceTimelineSemaphorePropertiesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceTimelineSemaphoreProperties)
mod.VkSemaphoreTypeCreateInfoKHR = ffi.typeof([[$ ]], mod.VkSemaphoreTypeCreateInfo)
mod.VkTimelineSemaphoreSubmitInfoKHR = ffi.typeof([[$ ]], mod.VkTimelineSemaphoreSubmitInfo)
mod.VkSemaphoreWaitInfoKHR = ffi.typeof([[$ ]], mod.VkSemaphoreWaitInfo)
mod.VkSemaphoreSignalInfoKHR = ffi.typeof([[$ ]], mod.VkSemaphoreSignalInfo)
mod.PFN_vkGetSemaphoreCounterValueKHR = ffi.typeof([[$ (*)($ , $ , uint64_t*)]], mod.VkResult, mod.VkDevice, mod.VkSemaphore)
mod.PFN_vkWaitSemaphoresKHR = ffi.typeof([[$ (*)($ , const $*, uint64_t )]], mod.VkResult, mod.VkDevice, mod.VkSemaphoreWaitInfo)
mod.PFN_vkSignalSemaphoreKHR = ffi.typeof([[$ (*)($ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkSemaphoreSignalInfo)
ffi.cdef([[$ vkGetSemaphoreCounterValueKHR($ , $ , uint64_t*);]], mod.VkResult, mod.VkDevice, mod.VkSemaphore)
ffi.cdef([[$ vkWaitSemaphoresKHR($ , const $*, uint64_t );]], mod.VkResult, mod.VkDevice, mod.VkSemaphoreWaitInfo)
ffi.cdef([[$ vkSignalSemaphoreKHR($ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkSemaphoreSignalInfo)
mod.VkPhysicalDeviceVulkanMemoryModelFeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceVulkanMemoryModelFeatures)
mod.VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceShaderTerminateInvocationFeatures)
mod.VkFragmentShadingRateCombinerOpKHR = ffi.typeof([[enum {
VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR,
VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR,
VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR,
VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR,
VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR,
VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR,
}]])
mod.VkFragmentShadingRateAttachmentInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
const $* pFragmentShadingRateAttachment;
$ shadingRateAttachmentTexelSize;
}]], mod.VkStructureType, mod.VkAttachmentReference2, mod.VkExtent2D)
mod.VkPipelineFragmentShadingRateStateCreateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ fragmentSize;
$ combinerOps[2];
}]], mod.VkStructureType, mod.VkExtent2D, mod.VkFragmentShadingRateCombinerOpKHR)
mod.VkPhysicalDeviceFragmentShadingRateFeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ pipelineFragmentShadingRate;
$ primitiveFragmentShadingRate;
$ attachmentFragmentShadingRate;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceFragmentShadingRatePropertiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ minFragmentShadingRateAttachmentTexelSize;
$ maxFragmentShadingRateAttachmentTexelSize;
uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio;
$ primitiveFragmentShadingRateWithMultipleViewports;
$ layeredShadingRateAttachments;
$ fragmentShadingRateNonTrivialCombinerOps;
$ maxFragmentSize;
uint32_t maxFragmentSizeAspectRatio;
uint32_t maxFragmentShadingRateCoverageSamples;
$ maxFragmentShadingRateRasterizationSamples;
$ fragmentShadingRateWithShaderDepthStencilWrites;
$ fragmentShadingRateWithSampleMask;
$ fragmentShadingRateWithShaderSampleMask;
$ fragmentShadingRateWithConservativeRasterization;
$ fragmentShadingRateWithFragmentShaderInterlock;
$ fragmentShadingRateWithCustomSampleLocations;
$ fragmentShadingRateStrictMultiplyCombiner;
}]], mod.VkStructureType, mod.VkExtent2D, mod.VkExtent2D, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkExtent2D, mod.VkSampleCountFlagBits, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceFragmentShadingRateKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ sampleCounts;
$ fragmentSize;
}]], mod.VkStructureType, mod.VkSampleCountFlags, mod.VkExtent2D)
mod.VkRenderingFragmentShadingRateAttachmentInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ imageView;
$ imageLayout;
$ shadingRateAttachmentTexelSize;
}]], mod.VkStructureType, mod.VkImageView, mod.VkImageLayout, mod.VkExtent2D)
mod.PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = ffi.typeof([[$ (*)($ , uint32_t*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkPhysicalDeviceFragmentShadingRateKHR)
mod.PFN_vkCmdSetFragmentShadingRateKHR = ffi.typeof([[void (*)($ , const $*, const $[2])]], mod.VkCommandBuffer, mod.VkExtent2D, mod.VkFragmentShadingRateCombinerOpKHR)
ffi.cdef([[$ vkGetPhysicalDeviceFragmentShadingRatesKHR($ , uint32_t*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkPhysicalDeviceFragmentShadingRateKHR)
ffi.cdef([[void vkCmdSetFragmentShadingRateKHR($ , const $*, const $[2]);]], mod.VkCommandBuffer, mod.VkExtent2D, mod.VkFragmentShadingRateCombinerOpKHR)
mod.VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceDynamicRenderingLocalReadFeatures)
mod.VkRenderingAttachmentLocationInfoKHR = ffi.typeof([[$ ]], mod.VkRenderingAttachmentLocationInfo)
mod.VkRenderingInputAttachmentIndexInfoKHR = ffi.typeof([[$ ]], mod.VkRenderingInputAttachmentIndexInfo)
mod.PFN_vkCmdSetRenderingAttachmentLocationsKHR = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkRenderingAttachmentLocationInfo)
mod.PFN_vkCmdSetRenderingInputAttachmentIndicesKHR = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkRenderingInputAttachmentIndexInfo)
ffi.cdef([[void vkCmdSetRenderingAttachmentLocationsKHR($ , const $*);]], mod.VkCommandBuffer, mod.VkRenderingAttachmentLocationInfo)
ffi.cdef([[void vkCmdSetRenderingInputAttachmentIndicesKHR($ , const $*);]], mod.VkCommandBuffer, mod.VkRenderingInputAttachmentIndexInfo)
mod.VkPhysicalDeviceShaderQuadControlFeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderQuadControl;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkSurfaceProtectedCapabilitiesKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ supportsProtected;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures)
mod.VkAttachmentReferenceStencilLayoutKHR = ffi.typeof([[$ ]], mod.VkAttachmentReferenceStencilLayout)
mod.VkAttachmentDescriptionStencilLayoutKHR = ffi.typeof([[$ ]], mod.VkAttachmentDescriptionStencilLayout)
mod.VkPhysicalDevicePresentWaitFeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ presentWait;
}]], mod.VkStructureType, mod.VkBool32)
mod.PFN_vkWaitForPresentKHR = ffi.typeof([[$ (*)($ , $ , uint64_t , uint64_t )]], mod.VkResult, mod.VkDevice, mod.VkSwapchainKHR)
ffi.cdef([[$ vkWaitForPresentKHR($ , $ , uint64_t , uint64_t );]], mod.VkResult, mod.VkDevice, mod.VkSwapchainKHR)
mod.VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceUniformBufferStandardLayoutFeatures)
mod.VkPhysicalDeviceBufferDeviceAddressFeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceBufferDeviceAddressFeatures)
mod.VkBufferDeviceAddressInfoKHR = ffi.typeof([[$ ]], mod.VkBufferDeviceAddressInfo)
mod.VkBufferOpaqueCaptureAddressCreateInfoKHR = ffi.typeof([[$ ]], mod.VkBufferOpaqueCaptureAddressCreateInfo)
mod.VkMemoryOpaqueCaptureAddressAllocateInfoKHR = ffi.typeof([[$ ]], mod.VkMemoryOpaqueCaptureAddressAllocateInfo)
mod.VkDeviceMemoryOpaqueCaptureAddressInfoKHR = ffi.typeof([[$ ]], mod.VkDeviceMemoryOpaqueCaptureAddressInfo)
mod.PFN_vkGetBufferDeviceAddressKHR = ffi.typeof([[$ (*)($ , const $*)]], mod.VkDeviceAddress, mod.VkDevice, mod.VkBufferDeviceAddressInfo)
mod.PFN_vkGetBufferOpaqueCaptureAddressKHR = ffi.typeof([[uint64_t (*)($ , const $*)]], mod.VkDevice, mod.VkBufferDeviceAddressInfo)
mod.PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = ffi.typeof([[uint64_t (*)($ , const $*)]], mod.VkDevice, mod.VkDeviceMemoryOpaqueCaptureAddressInfo)
ffi.cdef([[$ vkGetBufferDeviceAddressKHR($ , const $*);]], mod.VkDeviceAddress, mod.VkDevice, mod.VkBufferDeviceAddressInfo)
ffi.cdef([[uint64_t vkGetBufferOpaqueCaptureAddressKHR($ , const $*);]], mod.VkDevice, mod.VkBufferDeviceAddressInfo)
ffi.cdef([[uint64_t vkGetDeviceMemoryOpaqueCaptureAddressKHR($ , const $*);]], mod.VkDevice, mod.VkDeviceMemoryOpaqueCaptureAddressInfo)
mod.VkDeferredOperationKHR = ffi.typeof([[void*]])
mod.PFN_vkCreateDeferredOperationKHR = ffi.typeof([[$ (*)($ , const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkAllocationCallbacks, mod.VkDeferredOperationKHR)
mod.PFN_vkDestroyDeferredOperationKHR = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkDeferredOperationKHR, mod.VkAllocationCallbacks)
mod.PFN_vkGetDeferredOperationMaxConcurrencyKHR = ffi.typeof([[uint32_t (*)($ , $ )]], mod.VkDevice, mod.VkDeferredOperationKHR)
mod.PFN_vkGetDeferredOperationResultKHR = ffi.typeof([[$ (*)($ , $ )]], mod.VkResult, mod.VkDevice, mod.VkDeferredOperationKHR)
mod.PFN_vkDeferredOperationJoinKHR = ffi.typeof([[$ (*)($ , $ )]], mod.VkResult, mod.VkDevice, mod.VkDeferredOperationKHR)
ffi.cdef([[$ vkCreateDeferredOperationKHR($ , const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkAllocationCallbacks, mod.VkDeferredOperationKHR)
ffi.cdef([[void vkDestroyDeferredOperationKHR($ , $ , const $*);]], mod.VkDevice, mod.VkDeferredOperationKHR, mod.VkAllocationCallbacks)
ffi.cdef([[uint32_t vkGetDeferredOperationMaxConcurrencyKHR($ , $ );]], mod.VkDevice, mod.VkDeferredOperationKHR)
ffi.cdef([[$ vkGetDeferredOperationResultKHR($ , $ );]], mod.VkResult, mod.VkDevice, mod.VkDeferredOperationKHR)
ffi.cdef([[$ vkDeferredOperationJoinKHR($ , $ );]], mod.VkResult, mod.VkDevice, mod.VkDeferredOperationKHR)
mod.VkPipelineExecutableStatisticFormatKHR = ffi.typeof([[enum {
VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR,
VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR,
VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR,
VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR,
VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR,
}]])
mod.VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ pipelineExecutableInfo;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPipelineInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ pipeline;
}]], mod.VkStructureType, mod.VkPipeline)
mod.VkPipelineExecutablePropertiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ stages;
char name[256U];
char description[256U];
uint32_t subgroupSize;
}]], mod.VkStructureType, mod.VkShaderStageFlags)
mod.VkPipelineExecutableInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ pipeline;
uint32_t executableIndex;
}]], mod.VkStructureType, mod.VkPipeline)
mod.VkPipelineExecutableStatisticValueKHR = ffi.typeof([[union {
$ b32;
int64_t i64;
uint64_t u64;
double f64;
}]], mod.VkBool32)
mod.VkPipelineExecutableStatisticKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
char name[256U];
char description[256U];
$ format;
$ value;
}]], mod.VkStructureType, mod.VkPipelineExecutableStatisticFormatKHR, mod.VkPipelineExecutableStatisticValueKHR)
mod.VkPipelineExecutableInternalRepresentationKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
char name[256U];
char description[256U];
$ isText;
size_t dataSize;
void* pData;
}]], mod.VkStructureType, mod.VkBool32)
mod.PFN_vkGetPipelineExecutablePropertiesKHR = ffi.typeof([[$ (*)($ , const $*, uint32_t*, $*)]], mod.VkResult, mod.VkDevice, mod.VkPipelineInfoKHR, mod.VkPipelineExecutablePropertiesKHR)
mod.PFN_vkGetPipelineExecutableStatisticsKHR = ffi.typeof([[$ (*)($ , const $*, uint32_t*, $*)]], mod.VkResult, mod.VkDevice, mod.VkPipelineExecutableInfoKHR, mod.VkPipelineExecutableStatisticKHR)
mod.PFN_vkGetPipelineExecutableInternalRepresentationsKHR = ffi.typeof([[$ (*)($ , const $*, uint32_t*, $*)]], mod.VkResult, mod.VkDevice, mod.VkPipelineExecutableInfoKHR, mod.VkPipelineExecutableInternalRepresentationKHR)
ffi.cdef([[$ vkGetPipelineExecutablePropertiesKHR($ , const $*, uint32_t*, $*);]], mod.VkResult, mod.VkDevice, mod.VkPipelineInfoKHR, mod.VkPipelineExecutablePropertiesKHR)
ffi.cdef([[$ vkGetPipelineExecutableStatisticsKHR($ , const $*, uint32_t*, $*);]], mod.VkResult, mod.VkDevice, mod.VkPipelineExecutableInfoKHR, mod.VkPipelineExecutableStatisticKHR)
ffi.cdef([[$ vkGetPipelineExecutableInternalRepresentationsKHR($ , const $*, uint32_t*, $*);]], mod.VkResult, mod.VkDevice, mod.VkPipelineExecutableInfoKHR, mod.VkPipelineExecutableInternalRepresentationKHR)
mod.VkMemoryUnmapFlagBitsKHR = ffi.typeof([[$ ]], mod.VkMemoryUnmapFlagBits)
mod.VkMemoryUnmapFlagsKHR = ffi.typeof([[$ ]], mod.VkMemoryUnmapFlags)
mod.VkMemoryMapInfoKHR = ffi.typeof([[$ ]], mod.VkMemoryMapInfo)
mod.VkMemoryUnmapInfoKHR = ffi.typeof([[$ ]], mod.VkMemoryUnmapInfo)
mod.PFN_vkMapMemory2KHR = ffi.typeof([[$ (*)($ , const $*, void**)]], mod.VkResult, mod.VkDevice, mod.VkMemoryMapInfo)
mod.PFN_vkUnmapMemory2KHR = ffi.typeof([[$ (*)($ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkMemoryUnmapInfo)
ffi.cdef([[$ vkMapMemory2KHR($ , const $*, void**);]], mod.VkResult, mod.VkDevice, mod.VkMemoryMapInfo)
ffi.cdef([[$ vkUnmapMemory2KHR($ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkMemoryUnmapInfo)
mod.VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceShaderIntegerDotProductFeatures)
mod.VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceShaderIntegerDotProductProperties)
mod.VkPipelineLibraryCreateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t libraryCount;
const $* pLibraries;
}]], mod.VkStructureType, mod.VkPipeline)
mod.VkPresentIdKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t swapchainCount;
const uint64_t* pPresentIds;
}]], mod.VkStructureType)
mod.VkPhysicalDevicePresentIdFeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ presentId;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkVideoEncodeTuningModeKHR = ffi.typeof([[enum {
VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR,
VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR,
VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR,
VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR,
VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR,
VK_VIDEO_ENCODE_TUNING_MODE_MAX_ENUM_KHR,
}]])
mod.VkVideoEncodeFlagBitsKHR = ffi.typeof([[enum {
VK_VIDEO_ENCODE_INTRA_REFRESH_BIT_KHR,
VK_VIDEO_ENCODE_WITH_QUANTIZATION_DELTA_MAP_BIT_KHR,
VK_VIDEO_ENCODE_WITH_EMPHASIS_MAP_BIT_KHR,
VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkVideoEncodeFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoEncodeCapabilityFlagBitsKHR = ffi.typeof([[enum {
VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR,
VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR,
VK_VIDEO_ENCODE_CAPABILITY_QUANTIZATION_DELTA_MAP_BIT_KHR,
VK_VIDEO_ENCODE_CAPABILITY_EMPHASIS_MAP_BIT_KHR,
VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkVideoEncodeCapabilityFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoEncodeRateControlModeFlagBitsKHR = ffi.typeof([[enum {
VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR,
VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR,
VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR,
VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR,
VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkVideoEncodeRateControlModeFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoEncodeFeedbackFlagBitsKHR = ffi.typeof([[enum {
VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR,
VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR,
VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR,
VK_VIDEO_ENCODE_FEEDBACK_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkVideoEncodeFeedbackFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoEncodeUsageFlagBitsKHR = ffi.typeof([[enum {
VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR,
VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR,
VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR,
VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR,
VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR,
VK_VIDEO_ENCODE_USAGE_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkVideoEncodeUsageFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoEncodeContentFlagBitsKHR = ffi.typeof([[enum {
VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR,
VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR,
VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR,
VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR,
VK_VIDEO_ENCODE_CONTENT_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkVideoEncodeContentFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoEncodeRateControlFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoEncodeInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ dstBuffer;
$ dstBufferOffset;
$ dstBufferRange;
$ srcPictureResource;
const $* pSetupReferenceSlot;
uint32_t referenceSlotCount;
const $* pReferenceSlots;
uint32_t precedingExternallyEncodedBytes;
}]], mod.VkStructureType, mod.VkVideoEncodeFlagsKHR, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkVideoPictureResourceInfoKHR, mod.VkVideoReferenceSlotInfoKHR, mod.VkVideoReferenceSlotInfoKHR)
mod.VkVideoEncodeCapabilitiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ flags;
$ rateControlModes;
uint32_t maxRateControlLayers;
uint64_t maxBitrate;
uint32_t maxQualityLevels;
$ encodeInputPictureGranularity;
$ supportedEncodeFeedbackFlags;
}]], mod.VkStructureType, mod.VkVideoEncodeCapabilityFlagsKHR, mod.VkVideoEncodeRateControlModeFlagsKHR, mod.VkExtent2D, mod.VkVideoEncodeFeedbackFlagsKHR)
mod.VkQueryPoolVideoEncodeFeedbackCreateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ encodeFeedbackFlags;
}]], mod.VkStructureType, mod.VkVideoEncodeFeedbackFlagsKHR)
mod.VkVideoEncodeUsageInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ videoUsageHints;
$ videoContentHints;
$ tuningMode;
}]], mod.VkStructureType, mod.VkVideoEncodeUsageFlagsKHR, mod.VkVideoEncodeContentFlagsKHR, mod.VkVideoEncodeTuningModeKHR)
mod.VkVideoEncodeRateControlLayerInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint64_t averageBitrate;
uint64_t maxBitrate;
uint32_t frameRateNumerator;
uint32_t frameRateDenominator;
}]], mod.VkStructureType)
mod.VkVideoEncodeRateControlInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ rateControlMode;
uint32_t layerCount;
const $* pLayers;
uint32_t virtualBufferSizeInMs;
uint32_t initialVirtualBufferSizeInMs;
}]], mod.VkStructureType, mod.VkVideoEncodeRateControlFlagsKHR, mod.VkVideoEncodeRateControlModeFlagBitsKHR, mod.VkVideoEncodeRateControlLayerInfoKHR)
mod.VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
const $* pVideoProfile;
uint32_t qualityLevel;
}]], mod.VkStructureType, mod.VkVideoProfileInfoKHR)
mod.VkVideoEncodeQualityLevelPropertiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ preferredRateControlMode;
uint32_t preferredRateControlLayerCount;
}]], mod.VkStructureType, mod.VkVideoEncodeRateControlModeFlagBitsKHR)
mod.VkVideoEncodeQualityLevelInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t qualityLevel;
}]], mod.VkStructureType)
mod.VkVideoEncodeSessionParametersGetInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ videoSessionParameters;
}]], mod.VkStructureType, mod.VkVideoSessionParametersKHR)
mod.VkVideoEncodeSessionParametersFeedbackInfoKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ hasOverrides;
}]], mod.VkStructureType, mod.VkBool32)
mod.PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR = ffi.typeof([[$ (*)($ , const $*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR, mod.VkVideoEncodeQualityLevelPropertiesKHR)
mod.PFN_vkGetEncodedVideoSessionParametersKHR = ffi.typeof([[$ (*)($ , const $*, $*, size_t*, void*)]], mod.VkResult, mod.VkDevice, mod.VkVideoEncodeSessionParametersGetInfoKHR, mod.VkVideoEncodeSessionParametersFeedbackInfoKHR)
mod.PFN_vkCmdEncodeVideoKHR = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkVideoEncodeInfoKHR)
ffi.cdef([[$ vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR($ , const $*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR, mod.VkVideoEncodeQualityLevelPropertiesKHR)
ffi.cdef([[$ vkGetEncodedVideoSessionParametersKHR($ , const $*, $*, size_t*, void*);]], mod.VkResult, mod.VkDevice, mod.VkVideoEncodeSessionParametersGetInfoKHR, mod.VkVideoEncodeSessionParametersFeedbackInfoKHR)
ffi.cdef([[void vkCmdEncodeVideoKHR($ , const $*);]], mod.VkCommandBuffer, mod.VkVideoEncodeInfoKHR)
mod.VkPipelineStageFlags2KHR = ffi.typeof([[$ ]], mod.VkPipelineStageFlags2)
mod.VkPipelineStageFlagBits2KHR = ffi.typeof([[$ ]], mod.VkPipelineStageFlagBits2)
mod.VkAccessFlags2KHR = ffi.typeof([[$ ]], mod.VkAccessFlags2)
mod.VkAccessFlagBits2KHR = ffi.typeof([[$ ]], mod.VkAccessFlagBits2)
mod.VkSubmitFlagBitsKHR = ffi.typeof([[$ ]], mod.VkSubmitFlagBits)
mod.VkSubmitFlagsKHR = ffi.typeof([[$ ]], mod.VkSubmitFlags)
mod.VkMemoryBarrier2KHR = ffi.typeof([[$ ]], mod.VkMemoryBarrier2)
mod.VkBufferMemoryBarrier2KHR = ffi.typeof([[$ ]], mod.VkBufferMemoryBarrier2)
mod.VkImageMemoryBarrier2KHR = ffi.typeof([[$ ]], mod.VkImageMemoryBarrier2)
mod.VkDependencyInfoKHR = ffi.typeof([[$ ]], mod.VkDependencyInfo)
mod.VkSubmitInfo2KHR = ffi.typeof([[$ ]], mod.VkSubmitInfo2)
mod.VkSemaphoreSubmitInfoKHR = ffi.typeof([[$ ]], mod.VkSemaphoreSubmitInfo)
mod.VkCommandBufferSubmitInfoKHR = ffi.typeof([[$ ]], mod.VkCommandBufferSubmitInfo)
mod.VkPhysicalDeviceSynchronization2FeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceSynchronization2Features)
mod.PFN_vkCmdSetEvent2KHR = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkCommandBuffer, mod.VkEvent, mod.VkDependencyInfo)
mod.PFN_vkCmdResetEvent2KHR = ffi.typeof([[void (*)($ , $ , $ )]], mod.VkCommandBuffer, mod.VkEvent, mod.VkPipelineStageFlags2)
mod.PFN_vkCmdWaitEvents2KHR = ffi.typeof([[void (*)($ , uint32_t , const $*, const $*)]], mod.VkCommandBuffer, mod.VkEvent, mod.VkDependencyInfo)
mod.PFN_vkCmdPipelineBarrier2KHR = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkDependencyInfo)
mod.PFN_vkCmdWriteTimestamp2KHR = ffi.typeof([[void (*)($ , $ , $ , uint32_t )]], mod.VkCommandBuffer, mod.VkPipelineStageFlags2, mod.VkQueryPool)
mod.PFN_vkQueueSubmit2KHR = ffi.typeof([[$ (*)($ , uint32_t , const $*, $ )]], mod.VkResult, mod.VkQueue, mod.VkSubmitInfo2, mod.VkFence)
ffi.cdef([[void vkCmdSetEvent2KHR($ , $ , const $*);]], mod.VkCommandBuffer, mod.VkEvent, mod.VkDependencyInfo)
ffi.cdef([[void vkCmdResetEvent2KHR($ , $ , $ );]], mod.VkCommandBuffer, mod.VkEvent, mod.VkPipelineStageFlags2)
ffi.cdef([[void vkCmdWaitEvents2KHR($ , uint32_t , const $*, const $*);]], mod.VkCommandBuffer, mod.VkEvent, mod.VkDependencyInfo)
ffi.cdef([[void vkCmdPipelineBarrier2KHR($ , const $*);]], mod.VkCommandBuffer, mod.VkDependencyInfo)
ffi.cdef([[void vkCmdWriteTimestamp2KHR($ , $ , $ , uint32_t );]], mod.VkCommandBuffer, mod.VkPipelineStageFlags2, mod.VkQueryPool)
ffi.cdef([[$ vkQueueSubmit2KHR($ , uint32_t , const $*, $ );]], mod.VkResult, mod.VkQueue, mod.VkSubmitInfo2, mod.VkFence)
mod.VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ fragmentShaderBarycentric;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ triStripVertexOrderIndependentOfProvokingVertex;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderSubgroupUniformControlFlow;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures)
mod.VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ workgroupMemoryExplicitLayout;
$ workgroupMemoryExplicitLayoutScalarBlockLayout;
$ workgroupMemoryExplicitLayout8BitAccess;
$ workgroupMemoryExplicitLayout16BitAccess;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkCopyBufferInfo2KHR = ffi.typeof([[$ ]], mod.VkCopyBufferInfo2)
mod.VkCopyImageInfo2KHR = ffi.typeof([[$ ]], mod.VkCopyImageInfo2)
mod.VkCopyBufferToImageInfo2KHR = ffi.typeof([[$ ]], mod.VkCopyBufferToImageInfo2)
mod.VkCopyImageToBufferInfo2KHR = ffi.typeof([[$ ]], mod.VkCopyImageToBufferInfo2)
mod.VkBlitImageInfo2KHR = ffi.typeof([[$ ]], mod.VkBlitImageInfo2)
mod.VkResolveImageInfo2KHR = ffi.typeof([[$ ]], mod.VkResolveImageInfo2)
mod.VkBufferCopy2KHR = ffi.typeof([[$ ]], mod.VkBufferCopy2)
mod.VkImageCopy2KHR = ffi.typeof([[$ ]], mod.VkImageCopy2)
mod.VkImageBlit2KHR = ffi.typeof([[$ ]], mod.VkImageBlit2)
mod.VkBufferImageCopy2KHR = ffi.typeof([[$ ]], mod.VkBufferImageCopy2)
mod.VkImageResolve2KHR = ffi.typeof([[$ ]], mod.VkImageResolve2)
mod.PFN_vkCmdCopyBuffer2KHR = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkCopyBufferInfo2)
mod.PFN_vkCmdCopyImage2KHR = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkCopyImageInfo2)
mod.PFN_vkCmdCopyBufferToImage2KHR = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkCopyBufferToImageInfo2)
mod.PFN_vkCmdCopyImageToBuffer2KHR = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkCopyImageToBufferInfo2)
mod.PFN_vkCmdBlitImage2KHR = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkBlitImageInfo2)
mod.PFN_vkCmdResolveImage2KHR = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkResolveImageInfo2)
ffi.cdef([[void vkCmdCopyBuffer2KHR($ , const $*);]], mod.VkCommandBuffer, mod.VkCopyBufferInfo2)
ffi.cdef([[void vkCmdCopyImage2KHR($ , const $*);]], mod.VkCommandBuffer, mod.VkCopyImageInfo2)
ffi.cdef([[void vkCmdCopyBufferToImage2KHR($ , const $*);]], mod.VkCommandBuffer, mod.VkCopyBufferToImageInfo2)
ffi.cdef([[void vkCmdCopyImageToBuffer2KHR($ , const $*);]], mod.VkCommandBuffer, mod.VkCopyImageToBufferInfo2)
ffi.cdef([[void vkCmdBlitImage2KHR($ , const $*);]], mod.VkCommandBuffer, mod.VkBlitImageInfo2)
ffi.cdef([[void vkCmdResolveImage2KHR($ , const $*);]], mod.VkCommandBuffer, mod.VkResolveImageInfo2)
mod.VkFormatFeatureFlags2KHR = ffi.typeof([[$ ]], mod.VkFormatFeatureFlags2)
mod.VkFormatFeatureFlagBits2KHR = ffi.typeof([[$ ]], mod.VkFormatFeatureFlagBits2)
mod.VkFormatProperties3KHR = ffi.typeof([[$ ]], mod.VkFormatProperties3)
mod.VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ rayTracingMaintenance1;
$ rayTracingPipelineTraceRaysIndirect2;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkTraceRaysIndirectCommand2KHR = ffi.typeof([[struct {
$ raygenShaderRecordAddress;
$ raygenShaderRecordSize;
$ missShaderBindingTableAddress;
$ missShaderBindingTableSize;
$ missShaderBindingTableStride;
$ hitShaderBindingTableAddress;
$ hitShaderBindingTableSize;
$ hitShaderBindingTableStride;
$ callableShaderBindingTableAddress;
$ callableShaderBindingTableSize;
$ callableShaderBindingTableStride;
uint32_t width;
uint32_t height;
uint32_t depth;
}]], mod.VkDeviceAddress, mod.VkDeviceSize, mod.VkDeviceAddress, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkDeviceAddress, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkDeviceAddress, mod.VkDeviceSize, mod.VkDeviceSize)
mod.PFN_vkCmdTraceRaysIndirect2KHR = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkDeviceAddress)
ffi.cdef([[void vkCmdTraceRaysIndirect2KHR($ , $ );]], mod.VkCommandBuffer, mod.VkDeviceAddress)
mod.VkPhysicalDeviceShaderUntypedPointersFeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderUntypedPointers;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceMaintenance4FeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceMaintenance4Features)
mod.VkPhysicalDeviceMaintenance4PropertiesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceMaintenance4Properties)
mod.VkDeviceBufferMemoryRequirementsKHR = ffi.typeof([[$ ]], mod.VkDeviceBufferMemoryRequirements)
mod.VkDeviceImageMemoryRequirementsKHR = ffi.typeof([[$ ]], mod.VkDeviceImageMemoryRequirements)
mod.PFN_vkGetDeviceBufferMemoryRequirementsKHR = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkDevice, mod.VkDeviceBufferMemoryRequirements, mod.VkMemoryRequirements2)
mod.PFN_vkGetDeviceImageMemoryRequirementsKHR = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkDevice, mod.VkDeviceImageMemoryRequirements, mod.VkMemoryRequirements2)
mod.PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = ffi.typeof([[void (*)($ , const $*, uint32_t*, $*)]], mod.VkDevice, mod.VkDeviceImageMemoryRequirements, mod.VkSparseImageMemoryRequirements2)
ffi.cdef([[void vkGetDeviceBufferMemoryRequirementsKHR($ , const $*, $*);]], mod.VkDevice, mod.VkDeviceBufferMemoryRequirements, mod.VkMemoryRequirements2)
ffi.cdef([[void vkGetDeviceImageMemoryRequirementsKHR($ , const $*, $*);]], mod.VkDevice, mod.VkDeviceImageMemoryRequirements, mod.VkMemoryRequirements2)
ffi.cdef([[void vkGetDeviceImageSparseMemoryRequirementsKHR($ , const $*, uint32_t*, $*);]], mod.VkDevice, mod.VkDeviceImageMemoryRequirements, mod.VkSparseImageMemoryRequirements2)
mod.VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceShaderSubgroupRotateFeatures)
mod.VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderMaximalReconvergence;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPipelineCreateFlags2KHR = ffi.typeof([[$ ]], mod.VkPipelineCreateFlags2)
mod.VkPipelineCreateFlagBits2KHR = ffi.typeof([[$ ]], mod.VkPipelineCreateFlagBits2)
mod.VkBufferUsageFlags2KHR = ffi.typeof([[$ ]], mod.VkBufferUsageFlags2)
mod.VkBufferUsageFlagBits2KHR = ffi.typeof([[$ ]], mod.VkBufferUsageFlagBits2)
mod.VkPhysicalDeviceMaintenance5FeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceMaintenance5Features)
mod.VkPhysicalDeviceMaintenance5PropertiesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceMaintenance5Properties)
mod.VkRenderingAreaInfoKHR = ffi.typeof([[$ ]], mod.VkRenderingAreaInfo)
mod.VkDeviceImageSubresourceInfoKHR = ffi.typeof([[$ ]], mod.VkDeviceImageSubresourceInfo)
mod.VkImageSubresource2KHR = ffi.typeof([[$ ]], mod.VkImageSubresource2)
mod.VkSubresourceLayout2KHR = ffi.typeof([[$ ]], mod.VkSubresourceLayout2)
mod.VkPipelineCreateFlags2CreateInfoKHR = ffi.typeof([[$ ]], mod.VkPipelineCreateFlags2CreateInfo)
mod.VkBufferUsageFlags2CreateInfoKHR = ffi.typeof([[$ ]], mod.VkBufferUsageFlags2CreateInfo)
mod.PFN_vkCmdBindIndexBuffer2KHR = ffi.typeof([[void (*)($ , $ , $ , $ , $ )]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkIndexType)
mod.PFN_vkGetRenderingAreaGranularityKHR = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkDevice, mod.VkRenderingAreaInfo, mod.VkExtent2D)
mod.PFN_vkGetDeviceImageSubresourceLayoutKHR = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkDevice, mod.VkDeviceImageSubresourceInfo, mod.VkSubresourceLayout2)
mod.PFN_vkGetImageSubresourceLayout2KHR = ffi.typeof([[void (*)($ , $ , const $*, $*)]], mod.VkDevice, mod.VkImage, mod.VkImageSubresource2, mod.VkSubresourceLayout2)
ffi.cdef([[void vkCmdBindIndexBuffer2KHR($ , $ , $ , $ , $ );]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkIndexType)
ffi.cdef([[void vkGetRenderingAreaGranularityKHR($ , const $*, $*);]], mod.VkDevice, mod.VkRenderingAreaInfo, mod.VkExtent2D)
ffi.cdef([[void vkGetDeviceImageSubresourceLayoutKHR($ , const $*, $*);]], mod.VkDevice, mod.VkDeviceImageSubresourceInfo, mod.VkSubresourceLayout2)
ffi.cdef([[void vkGetImageSubresourceLayout2KHR($ , $ , const $*, $*);]], mod.VkDevice, mod.VkImage, mod.VkImageSubresource2, mod.VkSubresourceLayout2)
mod.VkSurfaceCapabilitiesPresentId2KHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ presentId2Supported;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPresentId2KHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t swapchainCount;
const uint64_t* pPresentIds;
}]], mod.VkStructureType)
mod.VkPhysicalDevicePresentId2FeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ presentId2;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkSurfaceCapabilitiesPresentWait2KHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ presentWait2Supported;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDevicePresentWait2FeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ presentWait2;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPresentWait2InfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint64_t presentId;
uint64_t timeout;
}]], mod.VkStructureType)
mod.PFN_vkWaitForPresent2KHR = ffi.typeof([[$ (*)($ , $ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkSwapchainKHR, mod.VkPresentWait2InfoKHR)
ffi.cdef([[$ vkWaitForPresent2KHR($ , $ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkSwapchainKHR, mod.VkPresentWait2InfoKHR)
mod.VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ rayTracingPositionFetch;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPipelineBinaryKHR = ffi.typeof([[void*]])
mod.VkPhysicalDevicePipelineBinaryFeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ pipelineBinaries;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDevicePipelineBinaryPropertiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ pipelineBinaryInternalCache;
$ pipelineBinaryInternalCacheControl;
$ pipelineBinaryPrefersInternalCache;
$ pipelineBinaryPrecompiledInternalCache;
$ pipelineBinaryCompressedData;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkDevicePipelineBinaryInternalCacheControlKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ disableInternalCache;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPipelineBinaryKeyKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t keySize;
uint8_t key[32U];
}]], mod.VkStructureType)
mod.VkPipelineBinaryDataKHR = ffi.typeof([[struct {
size_t dataSize;
void* pData;
}]])
mod.VkPipelineBinaryKeysAndDataKHR = ffi.typeof([[struct {
uint32_t binaryCount;
const $* pPipelineBinaryKeys;
const $* pPipelineBinaryData;
}]], mod.VkPipelineBinaryKeyKHR, mod.VkPipelineBinaryDataKHR)
mod.VkPipelineCreateInfoKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
}]], mod.VkStructureType)
mod.VkPipelineBinaryCreateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
const $* pKeysAndDataInfo;
$ pipeline;
const $* pPipelineCreateInfo;
}]], mod.VkStructureType, mod.VkPipelineBinaryKeysAndDataKHR, mod.VkPipeline, mod.VkPipelineCreateInfoKHR)
mod.VkPipelineBinaryInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t binaryCount;
const $* pPipelineBinaries;
}]], mod.VkStructureType, mod.VkPipelineBinaryKHR)
mod.VkReleaseCapturedPipelineDataInfoKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ pipeline;
}]], mod.VkStructureType, mod.VkPipeline)
mod.VkPipelineBinaryDataInfoKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ pipelineBinary;
}]], mod.VkStructureType, mod.VkPipelineBinaryKHR)
mod.VkPipelineBinaryHandlesInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t pipelineBinaryCount;
$* pPipelineBinaries;
}]], mod.VkStructureType, mod.VkPipelineBinaryKHR)
mod.PFN_vkCreatePipelineBinariesKHR = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkPipelineBinaryCreateInfoKHR, mod.VkAllocationCallbacks, mod.VkPipelineBinaryHandlesInfoKHR)
mod.PFN_vkDestroyPipelineBinaryKHR = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkPipelineBinaryKHR, mod.VkAllocationCallbacks)
mod.PFN_vkGetPipelineKeyKHR = ffi.typeof([[$ (*)($ , const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkPipelineCreateInfoKHR, mod.VkPipelineBinaryKeyKHR)
mod.PFN_vkGetPipelineBinaryDataKHR = ffi.typeof([[$ (*)($ , const $*, $*, size_t*, void*)]], mod.VkResult, mod.VkDevice, mod.VkPipelineBinaryDataInfoKHR, mod.VkPipelineBinaryKeyKHR)
mod.PFN_vkReleaseCapturedPipelineDataKHR = ffi.typeof([[$ (*)($ , const $*, const $*)]], mod.VkResult, mod.VkDevice, mod.VkReleaseCapturedPipelineDataInfoKHR, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkCreatePipelineBinariesKHR($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkPipelineBinaryCreateInfoKHR, mod.VkAllocationCallbacks, mod.VkPipelineBinaryHandlesInfoKHR)
ffi.cdef([[void vkDestroyPipelineBinaryKHR($ , $ , const $*);]], mod.VkDevice, mod.VkPipelineBinaryKHR, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkGetPipelineKeyKHR($ , const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkPipelineCreateInfoKHR, mod.VkPipelineBinaryKeyKHR)
ffi.cdef([[$ vkGetPipelineBinaryDataKHR($ , const $*, $*, size_t*, void*);]], mod.VkResult, mod.VkDevice, mod.VkPipelineBinaryDataInfoKHR, mod.VkPipelineBinaryKeyKHR)
ffi.cdef([[$ vkReleaseCapturedPipelineDataKHR($ , const $*, const $*);]], mod.VkResult, mod.VkDevice, mod.VkReleaseCapturedPipelineDataInfoKHR, mod.VkAllocationCallbacks)
mod.VkPresentScalingFlagBitsKHR = ffi.typeof([[enum {
VK_PRESENT_SCALING_ONE_TO_ONE_BIT_KHR,
VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_KHR,
VK_PRESENT_SCALING_STRETCH_BIT_KHR,
VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT,
VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT,
VK_PRESENT_SCALING_STRETCH_BIT_EXT,
VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkPresentScalingFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPresentGravityFlagBitsKHR = ffi.typeof([[enum {
VK_PRESENT_GRAVITY_MIN_BIT_KHR,
VK_PRESENT_GRAVITY_MAX_BIT_KHR,
VK_PRESENT_GRAVITY_CENTERED_BIT_KHR,
VK_PRESENT_GRAVITY_MIN_BIT_EXT,
VK_PRESENT_GRAVITY_MAX_BIT_EXT,
VK_PRESENT_GRAVITY_CENTERED_BIT_EXT,
VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkPresentGravityFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkSurfacePresentModeKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ presentMode;
}]], mod.VkStructureType, mod.VkPresentModeKHR)
mod.VkSurfacePresentScalingCapabilitiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ supportedPresentScaling;
$ supportedPresentGravityX;
$ supportedPresentGravityY;
$ minScaledImageExtent;
$ maxScaledImageExtent;
}]], mod.VkStructureType, mod.VkPresentScalingFlagsKHR, mod.VkPresentGravityFlagsKHR, mod.VkPresentGravityFlagsKHR, mod.VkExtent2D, mod.VkExtent2D)
mod.VkSurfacePresentModeCompatibilityKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t presentModeCount;
$* pPresentModes;
}]], mod.VkStructureType, mod.VkPresentModeKHR)
mod.VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ swapchainMaintenance1;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkSwapchainPresentFenceInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t swapchainCount;
const $* pFences;
}]], mod.VkStructureType, mod.VkFence)
mod.VkSwapchainPresentModesCreateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t presentModeCount;
const $* pPresentModes;
}]], mod.VkStructureType, mod.VkPresentModeKHR)
mod.VkSwapchainPresentModeInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t swapchainCount;
const $* pPresentModes;
}]], mod.VkStructureType, mod.VkPresentModeKHR)
mod.VkSwapchainPresentScalingCreateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ scalingBehavior;
$ presentGravityX;
$ presentGravityY;
}]], mod.VkStructureType, mod.VkPresentScalingFlagsKHR, mod.VkPresentGravityFlagsKHR, mod.VkPresentGravityFlagsKHR)
mod.VkReleaseSwapchainImagesInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ swapchain;
uint32_t imageIndexCount;
const uint32_t* pImageIndices;
}]], mod.VkStructureType, mod.VkSwapchainKHR)
mod.PFN_vkReleaseSwapchainImagesKHR = ffi.typeof([[$ (*)($ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkReleaseSwapchainImagesInfoKHR)
ffi.cdef([[$ vkReleaseSwapchainImagesKHR($ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkReleaseSwapchainImagesInfoKHR)
mod.VkComponentTypeKHR = ffi.typeof([[enum {
VK_COMPONENT_TYPE_FLOAT16_KHR,
VK_COMPONENT_TYPE_FLOAT32_KHR,
VK_COMPONENT_TYPE_FLOAT64_KHR,
VK_COMPONENT_TYPE_SINT8_KHR,
VK_COMPONENT_TYPE_SINT16_KHR,
VK_COMPONENT_TYPE_SINT32_KHR,
VK_COMPONENT_TYPE_SINT64_KHR,
VK_COMPONENT_TYPE_UINT8_KHR,
VK_COMPONENT_TYPE_UINT16_KHR,
VK_COMPONENT_TYPE_UINT32_KHR,
VK_COMPONENT_TYPE_UINT64_KHR,
VK_COMPONENT_TYPE_BFLOAT16_KHR,
VK_COMPONENT_TYPE_SINT8_PACKED_NV,
VK_COMPONENT_TYPE_UINT8_PACKED_NV,
VK_COMPONENT_TYPE_FLOAT8_E4M3_EXT,
VK_COMPONENT_TYPE_FLOAT8_E5M2_EXT,
VK_COMPONENT_TYPE_FLOAT16_NV,
VK_COMPONENT_TYPE_FLOAT32_NV,
VK_COMPONENT_TYPE_FLOAT64_NV,
VK_COMPONENT_TYPE_SINT8_NV,
VK_COMPONENT_TYPE_SINT16_NV,
VK_COMPONENT_TYPE_SINT32_NV,
VK_COMPONENT_TYPE_SINT64_NV,
VK_COMPONENT_TYPE_UINT8_NV,
VK_COMPONENT_TYPE_UINT16_NV,
VK_COMPONENT_TYPE_UINT32_NV,
VK_COMPONENT_TYPE_UINT64_NV,
VK_COMPONENT_TYPE_FLOAT_E4M3_NV,
VK_COMPONENT_TYPE_FLOAT_E5M2_NV,
VK_COMPONENT_TYPE_MAX_ENUM_KHR,
}]])
mod.VkScopeKHR = ffi.typeof([[enum {
VK_SCOPE_DEVICE_KHR,
VK_SCOPE_WORKGROUP_KHR,
VK_SCOPE_SUBGROUP_KHR,
VK_SCOPE_QUEUE_FAMILY_KHR,
VK_SCOPE_DEVICE_NV,
VK_SCOPE_WORKGROUP_NV,
VK_SCOPE_SUBGROUP_NV,
VK_SCOPE_QUEUE_FAMILY_NV,
VK_SCOPE_MAX_ENUM_KHR,
}]])
mod.VkCooperativeMatrixPropertiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t MSize;
uint32_t NSize;
uint32_t KSize;
$ AType;
$ BType;
$ CType;
$ ResultType;
$ saturatingAccumulation;
$ scope;
}]], mod.VkStructureType, mod.VkComponentTypeKHR, mod.VkComponentTypeKHR, mod.VkComponentTypeKHR, mod.VkComponentTypeKHR, mod.VkBool32, mod.VkScopeKHR)
mod.VkPhysicalDeviceCooperativeMatrixFeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ cooperativeMatrix;
$ cooperativeMatrixRobustBufferAccess;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceCooperativeMatrixPropertiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ cooperativeMatrixSupportedStages;
}]], mod.VkStructureType, mod.VkShaderStageFlags)
mod.PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR = ffi.typeof([[$ (*)($ , uint32_t*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkCooperativeMatrixPropertiesKHR)
ffi.cdef([[$ vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR($ , uint32_t*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkCooperativeMatrixPropertiesKHR)
mod.VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ computeDerivativeGroupQuads;
$ computeDerivativeGroupLinear;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ meshAndTaskShaderDerivatives;
}]], mod.VkStructureType, mod.VkBool32)
mod.StdVideoAV1Profile = ffi.typeof([[enum {
STD_VIDEO_AV1_PROFILE_MAIN,
STD_VIDEO_AV1_PROFILE_HIGH,
STD_VIDEO_AV1_PROFILE_PROFESSIONAL,
STD_VIDEO_AV1_PROFILE_INVALID,
STD_VIDEO_AV1_PROFILE_MAX_ENUM,
}]])
mod.StdVideoAV1Level = ffi.typeof([[enum {
STD_VIDEO_AV1_LEVEL_2_0,
STD_VIDEO_AV1_LEVEL_2_1,
STD_VIDEO_AV1_LEVEL_2_2,
STD_VIDEO_AV1_LEVEL_2_3,
STD_VIDEO_AV1_LEVEL_3_0,
STD_VIDEO_AV1_LEVEL_3_1,
STD_VIDEO_AV1_LEVEL_3_2,
STD_VIDEO_AV1_LEVEL_3_3,
STD_VIDEO_AV1_LEVEL_4_0,
STD_VIDEO_AV1_LEVEL_4_1,
STD_VIDEO_AV1_LEVEL_4_2,
STD_VIDEO_AV1_LEVEL_4_3,
STD_VIDEO_AV1_LEVEL_5_0,
STD_VIDEO_AV1_LEVEL_5_1,
STD_VIDEO_AV1_LEVEL_5_2,
STD_VIDEO_AV1_LEVEL_5_3,
STD_VIDEO_AV1_LEVEL_6_0,
STD_VIDEO_AV1_LEVEL_6_1,
STD_VIDEO_AV1_LEVEL_6_2,
STD_VIDEO_AV1_LEVEL_6_3,
STD_VIDEO_AV1_LEVEL_7_0,
STD_VIDEO_AV1_LEVEL_7_1,
STD_VIDEO_AV1_LEVEL_7_2,
STD_VIDEO_AV1_LEVEL_7_3,
STD_VIDEO_AV1_LEVEL_INVALID,
STD_VIDEO_AV1_LEVEL_MAX_ENUM,
}]])
mod.StdVideoAV1FrameType = ffi.typeof([[enum {
STD_VIDEO_AV1_FRAME_TYPE_KEY,
STD_VIDEO_AV1_FRAME_TYPE_INTER,
STD_VIDEO_AV1_FRAME_TYPE_INTRA_ONLY,
STD_VIDEO_AV1_FRAME_TYPE_SWITCH,
STD_VIDEO_AV1_FRAME_TYPE_INVALID,
STD_VIDEO_AV1_FRAME_TYPE_MAX_ENUM,
}]])
mod.StdVideoAV1ReferenceName = ffi.typeof([[enum {
STD_VIDEO_AV1_REFERENCE_NAME_INTRA_FRAME,
STD_VIDEO_AV1_REFERENCE_NAME_LAST_FRAME,
STD_VIDEO_AV1_REFERENCE_NAME_LAST2_FRAME,
STD_VIDEO_AV1_REFERENCE_NAME_LAST3_FRAME,
STD_VIDEO_AV1_REFERENCE_NAME_GOLDEN_FRAME,
STD_VIDEO_AV1_REFERENCE_NAME_BWDREF_FRAME,
STD_VIDEO_AV1_REFERENCE_NAME_ALTREF2_FRAME,
STD_VIDEO_AV1_REFERENCE_NAME_ALTREF_FRAME,
STD_VIDEO_AV1_REFERENCE_NAME_INVALID,
STD_VIDEO_AV1_REFERENCE_NAME_MAX_ENUM,
}]])
mod.StdVideoAV1InterpolationFilter = ffi.typeof([[enum {
STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP,
STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH,
STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SHARP,
STD_VIDEO_AV1_INTERPOLATION_FILTER_BILINEAR,
STD_VIDEO_AV1_INTERPOLATION_FILTER_SWITCHABLE,
STD_VIDEO_AV1_INTERPOLATION_FILTER_INVALID,
STD_VIDEO_AV1_INTERPOLATION_FILTER_MAX_ENUM,
}]])
mod.StdVideoAV1TxMode = ffi.typeof([[enum {
STD_VIDEO_AV1_TX_MODE_ONLY_4X4,
STD_VIDEO_AV1_TX_MODE_LARGEST,
STD_VIDEO_AV1_TX_MODE_SELECT,
STD_VIDEO_AV1_TX_MODE_INVALID,
STD_VIDEO_AV1_TX_MODE_MAX_ENUM,
}]])
mod.StdVideoAV1FrameRestorationType = ffi.typeof([[enum {
STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_NONE,
STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_WIENER,
STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SGRPROJ,
STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SWITCHABLE,
STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_INVALID,
STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_MAX_ENUM,
}]])
mod.StdVideoAV1ColorPrimaries = ffi.typeof([[enum {
STD_VIDEO_AV1_COLOR_PRIMARIES_BT_709,
STD_VIDEO_AV1_COLOR_PRIMARIES_UNSPECIFIED,
STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_M,
STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_B_G,
STD_VIDEO_AV1_COLOR_PRIMARIES_BT_601,
STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_240,
STD_VIDEO_AV1_COLOR_PRIMARIES_GENERIC_FILM,
STD_VIDEO_AV1_COLOR_PRIMARIES_BT_2020,
STD_VIDEO_AV1_COLOR_PRIMARIES_XYZ,
STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_431,
STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_432,
STD_VIDEO_AV1_COLOR_PRIMARIES_EBU_3213,
STD_VIDEO_AV1_COLOR_PRIMARIES_INVALID,
STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED,
STD_VIDEO_AV1_COLOR_PRIMARIES_MAX_ENUM,
}]])
mod.StdVideoAV1TransferCharacteristics = ffi.typeof([[enum {
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_0,
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_709,
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_UNSPECIFIED,
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_3,
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_M,
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_B_G,
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_601,
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_240,
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LINEAR,
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100,
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100_SQRT10,
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_IEC_61966,
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_1361,
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SRGB,
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_10_BIT,
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_12_BIT,
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_2084,
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_428,
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_HLG,
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_INVALID,
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_MAX_ENUM,
}]])
mod.StdVideoAV1MatrixCoefficients = ffi.typeof([[enum {
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_IDENTITY,
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_709,
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_UNSPECIFIED,
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_RESERVED_3,
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_FCC,
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_470_B_G,
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_601,
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_240,
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_YCGCO,
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_NCL,
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_CL,
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_2085,
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_NCL,
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_CL,
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_ICTCP,
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_INVALID,
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_MAX_ENUM,
}]])
mod.StdVideoAV1ChromaSamplePosition = ffi.typeof([[enum {
STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_UNKNOWN,
STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_VERTICAL,
STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_COLOCATED,
STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_RESERVED,
STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_INVALID,
STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_MAX_ENUM,
}]])
mod.StdVideoAV1ColorConfigFlags = ffi.typeof([[struct {
uint32_t mono_chrome;
uint32_t color_range;
uint32_t separate_uv_delta_q;
uint32_t color_description_present_flag;
uint32_t reserved;
}]])
mod.StdVideoAV1ColorConfig = ffi.typeof([[struct {
$ flags;
uint8_t BitDepth;
uint8_t subsampling_x;
uint8_t subsampling_y;
uint8_t reserved1;
$ color_primaries;
$ transfer_characteristics;
$ matrix_coefficients;
$ chroma_sample_position;
}]], mod.StdVideoAV1ColorConfigFlags, mod.StdVideoAV1ColorPrimaries, mod.StdVideoAV1TransferCharacteristics, mod.StdVideoAV1MatrixCoefficients, mod.StdVideoAV1ChromaSamplePosition)
mod.StdVideoAV1TimingInfoFlags = ffi.typeof([[struct {
uint32_t equal_picture_interval;
uint32_t reserved;
}]])
mod.StdVideoAV1TimingInfo = ffi.typeof([[struct {
$ flags;
uint32_t num_units_in_display_tick;
uint32_t time_scale;
uint32_t num_ticks_per_picture_minus_1;
}]], mod.StdVideoAV1TimingInfoFlags)
mod.StdVideoAV1LoopFilterFlags = ffi.typeof([[struct {
uint32_t loop_filter_delta_enabled;
uint32_t loop_filter_delta_update;
uint32_t reserved;
}]])
mod.StdVideoAV1LoopFilter = ffi.typeof([[struct {
$ flags;
uint8_t loop_filter_level[4U];
uint8_t loop_filter_sharpness;
uint8_t update_ref_delta;
int8_t loop_filter_ref_deltas[8U];
uint8_t update_mode_delta;
int8_t loop_filter_mode_deltas[2U];
}]], mod.StdVideoAV1LoopFilterFlags)
mod.StdVideoAV1QuantizationFlags = ffi.typeof([[struct {
uint32_t using_qmatrix;
uint32_t diff_uv_delta;
uint32_t reserved;
}]])
mod.StdVideoAV1Quantization = ffi.typeof([[struct {
$ flags;
uint8_t base_q_idx;
int8_t DeltaQYDc;
int8_t DeltaQUDc;
int8_t DeltaQUAc;
int8_t DeltaQVDc;
int8_t DeltaQVAc;
uint8_t qm_y;
uint8_t qm_u;
uint8_t qm_v;
}]], mod.StdVideoAV1QuantizationFlags)
mod.StdVideoAV1Segmentation = ffi.typeof([[struct {
uint8_t FeatureEnabled[8U];
int16_t FeatureData[8U][8U];
}]])
mod.StdVideoAV1TileInfoFlags = ffi.typeof([[struct {
uint32_t uniform_tile_spacing_flag;
uint32_t reserved;
}]])
mod.StdVideoAV1TileInfo = ffi.typeof([[struct {
$ flags;
uint8_t TileCols;
uint8_t TileRows;
uint16_t context_update_tile_id;
uint8_t tile_size_bytes_minus_1;
uint8_t reserved1[7];
const uint16_t* pMiColStarts;
const uint16_t* pMiRowStarts;
const uint16_t* pWidthInSbsMinus1;
const uint16_t* pHeightInSbsMinus1;
}]], mod.StdVideoAV1TileInfoFlags)
mod.StdVideoAV1CDEF = ffi.typeof([[struct {
uint8_t cdef_damping_minus_3;
uint8_t cdef_bits;
uint8_t cdef_y_pri_strength[8U];
uint8_t cdef_y_sec_strength[8U];
uint8_t cdef_uv_pri_strength[8U];
uint8_t cdef_uv_sec_strength[8U];
}]])
mod.StdVideoAV1LoopRestoration = ffi.typeof([[struct {
$ FrameRestorationType[3U];
uint16_t LoopRestorationSize[3U];
}]], mod.StdVideoAV1FrameRestorationType)
mod.StdVideoAV1GlobalMotion = ffi.typeof([[struct {
uint8_t GmType[8U];
int32_t gm_params[6U][8U];
}]])
mod.StdVideoAV1FilmGrainFlags = ffi.typeof([[struct {
uint32_t chroma_scaling_from_luma;
uint32_t overlap_flag;
uint32_t clip_to_restricted_range;
uint32_t update_grain;
uint32_t reserved;
}]])
mod.StdVideoAV1FilmGrain = ffi.typeof([[struct {
$ flags;
uint8_t grain_scaling_minus_8;
uint8_t ar_coeff_lag;
uint8_t ar_coeff_shift_minus_6;
uint8_t grain_scale_shift;
uint16_t grain_seed;
uint8_t film_grain_params_ref_idx;
uint8_t num_y_points;
uint8_t point_y_value[14U];
uint8_t point_y_scaling[14U];
uint8_t num_cb_points;
uint8_t point_cb_value[10U];
uint8_t point_cb_scaling[10U];
uint8_t num_cr_points;
uint8_t point_cr_value[10U];
uint8_t point_cr_scaling[10U];
int8_t ar_coeffs_y_plus_128[24U];
int8_t ar_coeffs_cb_plus_128[25U];
int8_t ar_coeffs_cr_plus_128[25U];
uint8_t cb_mult;
uint8_t cb_luma_mult;
uint16_t cb_offset;
uint8_t cr_mult;
uint8_t cr_luma_mult;
uint16_t cr_offset;
}]], mod.StdVideoAV1FilmGrainFlags)
mod.StdVideoAV1SequenceHeaderFlags = ffi.typeof([[struct {
uint32_t still_picture;
uint32_t reduced_still_picture_header;
uint32_t use_128x128_superblock;
uint32_t enable_filter_intra;
uint32_t enable_intra_edge_filter;
uint32_t enable_interintra_compound;
uint32_t enable_masked_compound;
uint32_t enable_warped_motion;
uint32_t enable_dual_filter;
uint32_t enable_order_hint;
uint32_t enable_jnt_comp;
uint32_t enable_ref_frame_mvs;
uint32_t frame_id_numbers_present_flag;
uint32_t enable_superres;
uint32_t enable_cdef;
uint32_t enable_restoration;
uint32_t film_grain_params_present;
uint32_t timing_info_present_flag;
uint32_t initial_display_delay_present_flag;
uint32_t reserved;
}]])
mod.StdVideoAV1SequenceHeader = ffi.typeof([[struct {
$ flags;
$ seq_profile;
uint8_t frame_width_bits_minus_1;
uint8_t frame_height_bits_minus_1;
uint16_t max_frame_width_minus_1;
uint16_t max_frame_height_minus_1;
uint8_t delta_frame_id_length_minus_2;
uint8_t additional_frame_id_length_minus_1;
uint8_t order_hint_bits_minus_1;
uint8_t seq_force_integer_mv;
uint8_t seq_force_screen_content_tools;
uint8_t reserved1[5];
const $* pColorConfig;
const $* pTimingInfo;
}]], mod.StdVideoAV1SequenceHeaderFlags, mod.StdVideoAV1Profile, mod.StdVideoAV1ColorConfig, mod.StdVideoAV1TimingInfo)
mod.StdVideoDecodeAV1PictureInfoFlags = ffi.typeof([[struct {
uint32_t error_resilient_mode;
uint32_t disable_cdf_update;
uint32_t use_superres;
uint32_t render_and_frame_size_different;
uint32_t allow_screen_content_tools;
uint32_t is_filter_switchable;
uint32_t force_integer_mv;
uint32_t frame_size_override_flag;
uint32_t buffer_removal_time_present_flag;
uint32_t allow_intrabc;
uint32_t frame_refs_short_signaling;
uint32_t allow_high_precision_mv;
uint32_t is_motion_mode_switchable;
uint32_t use_ref_frame_mvs;
uint32_t disable_frame_end_update_cdf;
uint32_t allow_warped_motion;
uint32_t reduced_tx_set;
uint32_t reference_select;
uint32_t skip_mode_present;
uint32_t delta_q_present;
uint32_t delta_lf_present;
uint32_t delta_lf_multi;
uint32_t segmentation_enabled;
uint32_t segmentation_update_map;
uint32_t segmentation_temporal_update;
uint32_t segmentation_update_data;
uint32_t UsesLr;
uint32_t usesChromaLr;
uint32_t apply_grain;
uint32_t reserved;
}]])
mod.StdVideoDecodeAV1PictureInfo = ffi.typeof([[struct {
$ flags;
$ frame_type;
uint32_t current_frame_id;
uint8_t OrderHint;
uint8_t primary_ref_frame;
uint8_t refresh_frame_flags;
uint8_t reserved1;
$ interpolation_filter;
$ TxMode;
uint8_t delta_q_res;
uint8_t delta_lf_res;
uint8_t SkipModeFrame[2U];
uint8_t coded_denom;
uint8_t reserved2[3];
uint8_t OrderHints[8U];
uint32_t expectedFrameId[8U];
const $* pTileInfo;
const $* pQuantization;
const $* pSegmentation;
const $* pLoopFilter;
const $* pCDEF;
const $* pLoopRestoration;
const $* pGlobalMotion;
const $* pFilmGrain;
}]], mod.StdVideoDecodeAV1PictureInfoFlags, mod.StdVideoAV1FrameType, mod.StdVideoAV1InterpolationFilter, mod.StdVideoAV1TxMode, mod.StdVideoAV1TileInfo, mod.StdVideoAV1Quantization, mod.StdVideoAV1Segmentation, mod.StdVideoAV1LoopFilter, mod.StdVideoAV1CDEF, mod.StdVideoAV1LoopRestoration, mod.StdVideoAV1GlobalMotion, mod.StdVideoAV1FilmGrain)
mod.StdVideoDecodeAV1ReferenceInfoFlags = ffi.typeof([[struct {
uint32_t disable_frame_end_update_cdf;
uint32_t segmentation_enabled;
uint32_t reserved;
}]])
mod.StdVideoDecodeAV1ReferenceInfo = ffi.typeof([[struct {
$ flags;
uint8_t frame_type;
uint8_t RefFrameSignBias;
uint8_t OrderHint;
uint8_t SavedOrderHints[8U];
}]], mod.StdVideoDecodeAV1ReferenceInfoFlags)
mod.VkVideoDecodeAV1ProfileInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ stdProfile;
$ filmGrainSupport;
}]], mod.VkStructureType, mod.StdVideoAV1Profile, mod.VkBool32)
mod.VkVideoDecodeAV1CapabilitiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ maxLevel;
}]], mod.VkStructureType, mod.StdVideoAV1Level)
mod.VkVideoDecodeAV1SessionParametersCreateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
const $* pStdSequenceHeader;
}]], mod.VkStructureType, mod.StdVideoAV1SequenceHeader)
mod.VkVideoDecodeAV1PictureInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
const $* pStdPictureInfo;
int32_t referenceNameSlotIndices[7U];
uint32_t frameHeaderOffset;
uint32_t tileCount;
const uint32_t* pTileOffsets;
const uint32_t* pTileSizes;
}]], mod.VkStructureType, mod.StdVideoDecodeAV1PictureInfo)
mod.VkVideoDecodeAV1DpbSlotInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
const $* pStdReferenceInfo;
}]], mod.VkStructureType, mod.StdVideoDecodeAV1ReferenceInfo)
mod.StdVideoEncodeAV1DecoderModelInfo = ffi.typeof([[struct {
uint8_t buffer_delay_length_minus_1;
uint8_t buffer_removal_time_length_minus_1;
uint8_t frame_presentation_time_length_minus_1;
uint8_t reserved1;
uint32_t num_units_in_decoding_tick;
}]])
mod.StdVideoEncodeAV1ExtensionHeader = ffi.typeof([[struct {
uint8_t temporal_id;
uint8_t spatial_id;
}]])
mod.StdVideoEncodeAV1OperatingPointInfoFlags = ffi.typeof([[struct {
uint32_t decoder_model_present_for_this_op;
uint32_t low_delay_mode_flag;
uint32_t initial_display_delay_present_for_this_op;
uint32_t reserved;
}]])
mod.StdVideoEncodeAV1OperatingPointInfo = ffi.typeof([[struct {
$ flags;
uint16_t operating_point_idc;
uint8_t seq_level_idx;
uint8_t seq_tier;
uint32_t decoder_buffer_delay;
uint32_t encoder_buffer_delay;
uint8_t initial_display_delay_minus_1;
}]], mod.StdVideoEncodeAV1OperatingPointInfoFlags)
mod.StdVideoEncodeAV1PictureInfoFlags = ffi.typeof([[struct {
uint32_t error_resilient_mode;
uint32_t disable_cdf_update;
uint32_t use_superres;
uint32_t render_and_frame_size_different;
uint32_t allow_screen_content_tools;
uint32_t is_filter_switchable;
uint32_t force_integer_mv;
uint32_t frame_size_override_flag;
uint32_t buffer_removal_time_present_flag;
uint32_t allow_intrabc;
uint32_t frame_refs_short_signaling;
uint32_t allow_high_precision_mv;
uint32_t is_motion_mode_switchable;
uint32_t use_ref_frame_mvs;
uint32_t disable_frame_end_update_cdf;
uint32_t allow_warped_motion;
uint32_t reduced_tx_set;
uint32_t skip_mode_present;
uint32_t delta_q_present;
uint32_t delta_lf_present;
uint32_t delta_lf_multi;
uint32_t segmentation_enabled;
uint32_t segmentation_update_map;
uint32_t segmentation_temporal_update;
uint32_t segmentation_update_data;
uint32_t UsesLr;
uint32_t usesChromaLr;
uint32_t show_frame;
uint32_t showable_frame;
uint32_t reserved;
}]])
mod.StdVideoEncodeAV1PictureInfo = ffi.typeof([[struct {
$ flags;
$ frame_type;
uint32_t frame_presentation_time;
uint32_t current_frame_id;
uint8_t order_hint;
uint8_t primary_ref_frame;
uint8_t refresh_frame_flags;
uint8_t coded_denom;
uint16_t render_width_minus_1;
uint16_t render_height_minus_1;
$ interpolation_filter;
$ TxMode;
uint8_t delta_q_res;
uint8_t delta_lf_res;
uint8_t ref_order_hint[8U];
int8_t ref_frame_idx[7U];
uint8_t reserved1[3];
uint32_t delta_frame_id_minus_1[7U];
const $* pTileInfo;
const $* pQuantization;
const $* pSegmentation;
const $* pLoopFilter;
const $* pCDEF;
const $* pLoopRestoration;
const $* pGlobalMotion;
const $* pExtensionHeader;
const uint32_t* pBufferRemovalTimes;
}]], mod.StdVideoEncodeAV1PictureInfoFlags, mod.StdVideoAV1FrameType, mod.StdVideoAV1InterpolationFilter, mod.StdVideoAV1TxMode, mod.StdVideoAV1TileInfo, mod.StdVideoAV1Quantization, mod.StdVideoAV1Segmentation, mod.StdVideoAV1LoopFilter, mod.StdVideoAV1CDEF, mod.StdVideoAV1LoopRestoration, mod.StdVideoAV1GlobalMotion, mod.StdVideoEncodeAV1ExtensionHeader)
mod.StdVideoEncodeAV1ReferenceInfoFlags = ffi.typeof([[struct {
uint32_t disable_frame_end_update_cdf;
uint32_t segmentation_enabled;
uint32_t reserved;
}]])
mod.StdVideoEncodeAV1ReferenceInfo = ffi.typeof([[struct {
$ flags;
uint32_t RefFrameId;
$ frame_type;
uint8_t OrderHint;
uint8_t reserved1[3];
const $* pExtensionHeader;
}]], mod.StdVideoEncodeAV1ReferenceInfoFlags, mod.StdVideoAV1FrameType, mod.StdVideoEncodeAV1ExtensionHeader)
mod.VkVideoEncodeAV1PredictionModeKHR = ffi.typeof([[enum {
VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_INTRA_ONLY_KHR,
VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_SINGLE_REFERENCE_KHR,
VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_UNIDIRECTIONAL_COMPOUND_KHR,
VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_BIDIRECTIONAL_COMPOUND_KHR,
VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_MAX_ENUM_KHR,
}]])
mod.VkVideoEncodeAV1RateControlGroupKHR = ffi.typeof([[enum {
VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_INTRA_KHR,
VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_PREDICTIVE_KHR,
VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_BIPREDICTIVE_KHR,
VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_MAX_ENUM_KHR,
}]])
mod.VkVideoEncodeAV1CapabilityFlagBitsKHR = ffi.typeof([[enum {
VK_VIDEO_ENCODE_AV1_CAPABILITY_PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX_BIT_KHR,
VK_VIDEO_ENCODE_AV1_CAPABILITY_GENERATE_OBU_EXTENSION_HEADER_BIT_KHR,
VK_VIDEO_ENCODE_AV1_CAPABILITY_PRIMARY_REFERENCE_CDF_ONLY_BIT_KHR,
VK_VIDEO_ENCODE_AV1_CAPABILITY_FRAME_SIZE_OVERRIDE_BIT_KHR,
VK_VIDEO_ENCODE_AV1_CAPABILITY_MOTION_VECTOR_SCALING_BIT_KHR,
VK_VIDEO_ENCODE_AV1_CAPABILITY_COMPOUND_PREDICTION_INTRA_REFRESH_BIT_KHR,
VK_VIDEO_ENCODE_AV1_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkVideoEncodeAV1CapabilityFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoEncodeAV1StdFlagBitsKHR = ffi.typeof([[enum {
VK_VIDEO_ENCODE_AV1_STD_UNIFORM_TILE_SPACING_FLAG_SET_BIT_KHR,
VK_VIDEO_ENCODE_AV1_STD_SKIP_MODE_PRESENT_UNSET_BIT_KHR,
VK_VIDEO_ENCODE_AV1_STD_PRIMARY_REF_FRAME_BIT_KHR,
VK_VIDEO_ENCODE_AV1_STD_DELTA_Q_BIT_KHR,
VK_VIDEO_ENCODE_AV1_STD_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkVideoEncodeAV1StdFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoEncodeAV1SuperblockSizeFlagBitsKHR = ffi.typeof([[enum {
VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_64_BIT_KHR,
VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_128_BIT_KHR,
VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkVideoEncodeAV1SuperblockSizeFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoEncodeAV1RateControlFlagBitsKHR = ffi.typeof([[enum {
VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REGULAR_GOP_BIT_KHR,
VK_VIDEO_ENCODE_AV1_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR,
VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR,
VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR,
VK_VIDEO_ENCODE_AV1_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkVideoEncodeAV1RateControlFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPhysicalDeviceVideoEncodeAV1FeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ videoEncodeAV1;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkVideoEncodeAV1CapabilitiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ flags;
$ maxLevel;
$ codedPictureAlignment;
$ maxTiles;
$ minTileSize;
$ maxTileSize;
$ superblockSizes;
uint32_t maxSingleReferenceCount;
uint32_t singleReferenceNameMask;
uint32_t maxUnidirectionalCompoundReferenceCount;
uint32_t maxUnidirectionalCompoundGroup1ReferenceCount;
uint32_t unidirectionalCompoundReferenceNameMask;
uint32_t maxBidirectionalCompoundReferenceCount;
uint32_t maxBidirectionalCompoundGroup1ReferenceCount;
uint32_t maxBidirectionalCompoundGroup2ReferenceCount;
uint32_t bidirectionalCompoundReferenceNameMask;
uint32_t maxTemporalLayerCount;
uint32_t maxSpatialLayerCount;
uint32_t maxOperatingPoints;
uint32_t minQIndex;
uint32_t maxQIndex;
$ prefersGopRemainingFrames;
$ requiresGopRemainingFrames;
$ stdSyntaxFlags;
}]], mod.VkStructureType, mod.VkVideoEncodeAV1CapabilityFlagsKHR, mod.StdVideoAV1Level, mod.VkExtent2D, mod.VkExtent2D, mod.VkExtent2D, mod.VkExtent2D, mod.VkVideoEncodeAV1SuperblockSizeFlagsKHR, mod.VkBool32, mod.VkBool32, mod.VkVideoEncodeAV1StdFlagsKHR)
mod.VkVideoEncodeAV1QIndexKHR = ffi.typeof([[struct {
uint32_t intraQIndex;
uint32_t predictiveQIndex;
uint32_t bipredictiveQIndex;
}]])
mod.VkVideoEncodeAV1QualityLevelPropertiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ preferredRateControlFlags;
uint32_t preferredGopFrameCount;
uint32_t preferredKeyFramePeriod;
uint32_t preferredConsecutiveBipredictiveFrameCount;
uint32_t preferredTemporalLayerCount;
$ preferredConstantQIndex;
uint32_t preferredMaxSingleReferenceCount;
uint32_t preferredSingleReferenceNameMask;
uint32_t preferredMaxUnidirectionalCompoundReferenceCount;
uint32_t preferredMaxUnidirectionalCompoundGroup1ReferenceCount;
uint32_t preferredUnidirectionalCompoundReferenceNameMask;
uint32_t preferredMaxBidirectionalCompoundReferenceCount;
uint32_t preferredMaxBidirectionalCompoundGroup1ReferenceCount;
uint32_t preferredMaxBidirectionalCompoundGroup2ReferenceCount;
uint32_t preferredBidirectionalCompoundReferenceNameMask;
}]], mod.VkStructureType, mod.VkVideoEncodeAV1RateControlFlagsKHR, mod.VkVideoEncodeAV1QIndexKHR)
mod.VkVideoEncodeAV1SessionCreateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ useMaxLevel;
$ maxLevel;
}]], mod.VkStructureType, mod.VkBool32, mod.StdVideoAV1Level)
mod.VkVideoEncodeAV1SessionParametersCreateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
const $* pStdSequenceHeader;
const $* pStdDecoderModelInfo;
uint32_t stdOperatingPointCount;
const $* pStdOperatingPoints;
}]], mod.VkStructureType, mod.StdVideoAV1SequenceHeader, mod.StdVideoEncodeAV1DecoderModelInfo, mod.StdVideoEncodeAV1OperatingPointInfo)
mod.VkVideoEncodeAV1PictureInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ predictionMode;
$ rateControlGroup;
uint32_t constantQIndex;
const $* pStdPictureInfo;
int32_t referenceNameSlotIndices[7U];
$ primaryReferenceCdfOnly;
$ generateObuExtensionHeader;
}]], mod.VkStructureType, mod.VkVideoEncodeAV1PredictionModeKHR, mod.VkVideoEncodeAV1RateControlGroupKHR, mod.StdVideoEncodeAV1PictureInfo, mod.VkBool32, mod.VkBool32)
mod.VkVideoEncodeAV1DpbSlotInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
const $* pStdReferenceInfo;
}]], mod.VkStructureType, mod.StdVideoEncodeAV1ReferenceInfo)
mod.VkVideoEncodeAV1ProfileInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ stdProfile;
}]], mod.VkStructureType, mod.StdVideoAV1Profile)
mod.VkVideoEncodeAV1FrameSizeKHR = ffi.typeof([[struct {
uint32_t intraFrameSize;
uint32_t predictiveFrameSize;
uint32_t bipredictiveFrameSize;
}]])
mod.VkVideoEncodeAV1GopRemainingFrameInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ useGopRemainingFrames;
uint32_t gopRemainingIntra;
uint32_t gopRemainingPredictive;
uint32_t gopRemainingBipredictive;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkVideoEncodeAV1RateControlInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
uint32_t gopFrameCount;
uint32_t keyFramePeriod;
uint32_t consecutiveBipredictiveFrameCount;
uint32_t temporalLayerCount;
}]], mod.VkStructureType, mod.VkVideoEncodeAV1RateControlFlagsKHR)
mod.VkVideoEncodeAV1RateControlLayerInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ useMinQIndex;
$ minQIndex;
$ useMaxQIndex;
$ maxQIndex;
$ useMaxFrameSize;
$ maxFrameSize;
}]], mod.VkStructureType, mod.VkBool32, mod.VkVideoEncodeAV1QIndexKHR, mod.VkBool32, mod.VkVideoEncodeAV1QIndexKHR, mod.VkBool32, mod.VkVideoEncodeAV1FrameSizeKHR)
mod.StdVideoVP9Profile = ffi.typeof([[enum {
STD_VIDEO_VP9_PROFILE_0,
STD_VIDEO_VP9_PROFILE_1,
STD_VIDEO_VP9_PROFILE_2,
STD_VIDEO_VP9_PROFILE_3,
STD_VIDEO_VP9_PROFILE_INVALID,
STD_VIDEO_VP9_PROFILE_MAX_ENUM,
}]])
mod.StdVideoVP9Level = ffi.typeof([[enum {
STD_VIDEO_VP9_LEVEL_1_0,
STD_VIDEO_VP9_LEVEL_1_1,
STD_VIDEO_VP9_LEVEL_2_0,
STD_VIDEO_VP9_LEVEL_2_1,
STD_VIDEO_VP9_LEVEL_3_0,
STD_VIDEO_VP9_LEVEL_3_1,
STD_VIDEO_VP9_LEVEL_4_0,
STD_VIDEO_VP9_LEVEL_4_1,
STD_VIDEO_VP9_LEVEL_5_0,
STD_VIDEO_VP9_LEVEL_5_1,
STD_VIDEO_VP9_LEVEL_5_2,
STD_VIDEO_VP9_LEVEL_6_0,
STD_VIDEO_VP9_LEVEL_6_1,
STD_VIDEO_VP9_LEVEL_6_2,
STD_VIDEO_VP9_LEVEL_INVALID,
STD_VIDEO_VP9_LEVEL_MAX_ENUM,
}]])
mod.StdVideoVP9FrameType = ffi.typeof([[enum {
STD_VIDEO_VP9_FRAME_TYPE_KEY,
STD_VIDEO_VP9_FRAME_TYPE_NON_KEY,
STD_VIDEO_VP9_FRAME_TYPE_INVALID,
STD_VIDEO_VP9_FRAME_TYPE_MAX_ENUM,
}]])
mod.StdVideoVP9ReferenceName = ffi.typeof([[enum {
STD_VIDEO_VP9_REFERENCE_NAME_INTRA_FRAME,
STD_VIDEO_VP9_REFERENCE_NAME_LAST_FRAME,
STD_VIDEO_VP9_REFERENCE_NAME_GOLDEN_FRAME,
STD_VIDEO_VP9_REFERENCE_NAME_ALTREF_FRAME,
STD_VIDEO_VP9_REFERENCE_NAME_INVALID,
STD_VIDEO_VP9_REFERENCE_NAME_MAX_ENUM,
}]])
mod.StdVideoVP9InterpolationFilter = ffi.typeof([[enum {
STD_VIDEO_VP9_INTERPOLATION_FILTER_EIGHTTAP,
STD_VIDEO_VP9_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH,
STD_VIDEO_VP9_INTERPOLATION_FILTER_EIGHTTAP_SHARP,
STD_VIDEO_VP9_INTERPOLATION_FILTER_BILINEAR,
STD_VIDEO_VP9_INTERPOLATION_FILTER_SWITCHABLE,
STD_VIDEO_VP9_INTERPOLATION_FILTER_INVALID,
STD_VIDEO_VP9_INTERPOLATION_FILTER_MAX_ENUM,
}]])
mod.StdVideoVP9ColorSpace = ffi.typeof([[enum {
STD_VIDEO_VP9_COLOR_SPACE_UNKNOWN,
STD_VIDEO_VP9_COLOR_SPACE_BT_601,
STD_VIDEO_VP9_COLOR_SPACE_BT_709,
STD_VIDEO_VP9_COLOR_SPACE_SMPTE_170,
STD_VIDEO_VP9_COLOR_SPACE_SMPTE_240,
STD_VIDEO_VP9_COLOR_SPACE_BT_2020,
STD_VIDEO_VP9_COLOR_SPACE_RESERVED,
STD_VIDEO_VP9_COLOR_SPACE_RGB,
STD_VIDEO_VP9_COLOR_SPACE_INVALID,
STD_VIDEO_VP9_COLOR_SPACE_MAX_ENUM,
}]])
mod.StdVideoVP9ColorConfigFlags = ffi.typeof([[struct {
uint32_t color_range;
uint32_t reserved;
}]])
mod.StdVideoVP9ColorConfig = ffi.typeof([[struct {
$ flags;
uint8_t BitDepth;
uint8_t subsampling_x;
uint8_t subsampling_y;
uint8_t reserved1;
$ color_space;
}]], mod.StdVideoVP9ColorConfigFlags, mod.StdVideoVP9ColorSpace)
mod.StdVideoVP9LoopFilterFlags = ffi.typeof([[struct {
uint32_t loop_filter_delta_enabled;
uint32_t loop_filter_delta_update;
uint32_t reserved;
}]])
mod.StdVideoVP9LoopFilter = ffi.typeof([[struct {
$ flags;
uint8_t loop_filter_level;
uint8_t loop_filter_sharpness;
uint8_t update_ref_delta;
int8_t loop_filter_ref_deltas[4U];
uint8_t update_mode_delta;
int8_t loop_filter_mode_deltas[2U];
}]], mod.StdVideoVP9LoopFilterFlags)
mod.StdVideoVP9SegmentationFlags = ffi.typeof([[struct {
uint32_t segmentation_update_map;
uint32_t segmentation_temporal_update;
uint32_t segmentation_update_data;
uint32_t segmentation_abs_or_delta_update;
uint32_t reserved;
}]])
mod.StdVideoVP9Segmentation = ffi.typeof([[struct {
$ flags;
uint8_t segmentation_tree_probs[7U];
uint8_t segmentation_pred_prob[3U];
uint8_t FeatureEnabled[8U];
int16_t FeatureData[4U][8U];
}]], mod.StdVideoVP9SegmentationFlags)
mod.StdVideoDecodeVP9PictureInfoFlags = ffi.typeof([[struct {
uint32_t error_resilient_mode;
uint32_t intra_only;
uint32_t allow_high_precision_mv;
uint32_t refresh_frame_context;
uint32_t frame_parallel_decoding_mode;
uint32_t segmentation_enabled;
uint32_t show_frame;
uint32_t UsePrevFrameMvs;
uint32_t reserved;
}]])
mod.StdVideoDecodeVP9PictureInfo = ffi.typeof([[struct {
$ flags;
$ profile;
$ frame_type;
uint8_t frame_context_idx;
uint8_t reset_frame_context;
uint8_t refresh_frame_flags;
uint8_t ref_frame_sign_bias_mask;
$ interpolation_filter;
uint8_t base_q_idx;
int8_t delta_q_y_dc;
int8_t delta_q_uv_dc;
int8_t delta_q_uv_ac;
uint8_t tile_cols_log2;
uint8_t tile_rows_log2;
uint16_t reserved1[3];
const $* pColorConfig;
const $* pLoopFilter;
const $* pSegmentation;
}]], mod.StdVideoDecodeVP9PictureInfoFlags, mod.StdVideoVP9Profile, mod.StdVideoVP9FrameType, mod.StdVideoVP9InterpolationFilter, mod.StdVideoVP9ColorConfig, mod.StdVideoVP9LoopFilter, mod.StdVideoVP9Segmentation)
mod.VkPhysicalDeviceVideoDecodeVP9FeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ videoDecodeVP9;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkVideoDecodeVP9ProfileInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ stdProfile;
}]], mod.VkStructureType, mod.StdVideoVP9Profile)
mod.VkVideoDecodeVP9CapabilitiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ maxLevel;
}]], mod.VkStructureType, mod.StdVideoVP9Level)
mod.VkVideoDecodeVP9PictureInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
const $* pStdPictureInfo;
int32_t referenceNameSlotIndices[3U];
uint32_t uncompressedHeaderOffset;
uint32_t compressedHeaderOffset;
uint32_t tilesOffset;
}]], mod.VkStructureType, mod.StdVideoDecodeVP9PictureInfo)
mod.VkPhysicalDeviceVideoMaintenance1FeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ videoMaintenance1;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkVideoInlineQueryInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ queryPool;
uint32_t firstQuery;
uint32_t queryCount;
}]], mod.VkStructureType, mod.VkQueryPool)
mod.VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceVertexAttributeDivisorProperties)
mod.VkVertexInputBindingDivisorDescriptionKHR = ffi.typeof([[$ ]], mod.VkVertexInputBindingDivisorDescription)
mod.VkPipelineVertexInputDivisorStateCreateInfoKHR = ffi.typeof([[$ ]], mod.VkPipelineVertexInputDivisorStateCreateInfo)
mod.VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceVertexAttributeDivisorFeatures)
mod.VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ unifiedImageLayouts;
$ unifiedImageLayoutsVideo;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkAttachmentFeedbackLoopInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ feedbackLoopEnable;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceShaderFloatControls2FeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceShaderFloatControls2Features)
mod.VkPhysicalDeviceIndexTypeUint8FeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceIndexTypeUint8Features)
mod.VkLineRasterizationModeKHR = ffi.typeof([[$ ]], mod.VkLineRasterizationMode)
mod.VkPhysicalDeviceLineRasterizationFeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceLineRasterizationFeatures)
mod.VkPhysicalDeviceLineRasterizationPropertiesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceLineRasterizationProperties)
mod.VkPipelineRasterizationLineStateCreateInfoKHR = ffi.typeof([[$ ]], mod.VkPipelineRasterizationLineStateCreateInfo)
mod.PFN_vkCmdSetLineStippleKHR = ffi.typeof([[void (*)($ , uint32_t , uint16_t )]], mod.VkCommandBuffer)
ffi.cdef([[void vkCmdSetLineStippleKHR($ , uint32_t , uint16_t );]], mod.VkCommandBuffer)
mod.VkTimeDomainKHR = ffi.typeof([[enum {
VK_TIME_DOMAIN_DEVICE_KHR,
VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR,
VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR,
VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR,
VK_TIME_DOMAIN_DEVICE_EXT,
VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT,
VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT,
VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT,
VK_TIME_DOMAIN_MAX_ENUM_KHR,
}]])
mod.VkCalibratedTimestampInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ timeDomain;
}]], mod.VkStructureType, mod.VkTimeDomainKHR)
mod.PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR = ffi.typeof([[$ (*)($ , uint32_t*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkTimeDomainKHR)
mod.PFN_vkGetCalibratedTimestampsKHR = ffi.typeof([[$ (*)($ , uint32_t , const $*, uint64_t*, uint64_t*)]], mod.VkResult, mod.VkDevice, mod.VkCalibratedTimestampInfoKHR)
ffi.cdef([[$ vkGetPhysicalDeviceCalibrateableTimeDomainsKHR($ , uint32_t*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkTimeDomainKHR)
ffi.cdef([[$ vkGetCalibratedTimestampsKHR($ , uint32_t , const $*, uint64_t*, uint64_t*);]], mod.VkResult, mod.VkDevice, mod.VkCalibratedTimestampInfoKHR)
mod.VkPhysicalDeviceShaderExpectAssumeFeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceShaderExpectAssumeFeatures)
mod.VkPhysicalDeviceMaintenance6FeaturesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceMaintenance6Features)
mod.VkPhysicalDeviceMaintenance6PropertiesKHR = ffi.typeof([[$ ]], mod.VkPhysicalDeviceMaintenance6Properties)
mod.VkBindMemoryStatusKHR = ffi.typeof([[$ ]], mod.VkBindMemoryStatus)
mod.VkBindDescriptorSetsInfoKHR = ffi.typeof([[$ ]], mod.VkBindDescriptorSetsInfo)
mod.VkPushConstantsInfoKHR = ffi.typeof([[$ ]], mod.VkPushConstantsInfo)
mod.VkPushDescriptorSetInfoKHR = ffi.typeof([[$ ]], mod.VkPushDescriptorSetInfo)
mod.VkPushDescriptorSetWithTemplateInfoKHR = ffi.typeof([[$ ]], mod.VkPushDescriptorSetWithTemplateInfo)
mod.VkSetDescriptorBufferOffsetsInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ stageFlags;
$ layout;
uint32_t firstSet;
uint32_t setCount;
const uint32_t* pBufferIndices;
const $* pOffsets;
}]], mod.VkStructureType, mod.VkShaderStageFlags, mod.VkPipelineLayout, mod.VkDeviceSize)
mod.VkBindDescriptorBufferEmbeddedSamplersInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ stageFlags;
$ layout;
uint32_t set;
}]], mod.VkStructureType, mod.VkShaderStageFlags, mod.VkPipelineLayout)
mod.PFN_vkCmdBindDescriptorSets2KHR = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkBindDescriptorSetsInfo)
mod.PFN_vkCmdPushConstants2KHR = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkPushConstantsInfo)
mod.PFN_vkCmdPushDescriptorSet2KHR = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkPushDescriptorSetInfo)
mod.PFN_vkCmdPushDescriptorSetWithTemplate2KHR = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkPushDescriptorSetWithTemplateInfo)
mod.PFN_vkCmdSetDescriptorBufferOffsets2EXT = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkSetDescriptorBufferOffsetsInfoEXT)
mod.PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkBindDescriptorBufferEmbeddedSamplersInfoEXT)
ffi.cdef([[void vkCmdBindDescriptorSets2KHR($ , const $*);]], mod.VkCommandBuffer, mod.VkBindDescriptorSetsInfo)
ffi.cdef([[void vkCmdPushConstants2KHR($ , const $*);]], mod.VkCommandBuffer, mod.VkPushConstantsInfo)
ffi.cdef([[void vkCmdPushDescriptorSet2KHR($ , const $*);]], mod.VkCommandBuffer, mod.VkPushDescriptorSetInfo)
ffi.cdef([[void vkCmdPushDescriptorSetWithTemplate2KHR($ , const $*);]], mod.VkCommandBuffer, mod.VkPushDescriptorSetWithTemplateInfo)
ffi.cdef([[void vkCmdSetDescriptorBufferOffsets2EXT($ , const $*);]], mod.VkCommandBuffer, mod.VkSetDescriptorBufferOffsetsInfoEXT)
ffi.cdef([[void vkCmdBindDescriptorBufferEmbeddedSamplers2EXT($ , const $*);]], mod.VkCommandBuffer, mod.VkBindDescriptorBufferEmbeddedSamplersInfoEXT)
mod.VkAddressCopyFlagBitsKHR = ffi.typeof([[enum {
VK_ADDRESS_COPY_DEVICE_LOCAL_BIT_KHR,
VK_ADDRESS_COPY_SPARSE_BIT_KHR,
VK_ADDRESS_COPY_PROTECTED_BIT_KHR,
VK_ADDRESS_COPY_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkAddressCopyFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkStridedDeviceAddressRangeKHR = ffi.typeof([[struct {
$ address;
$ size;
$ stride;
}]], mod.VkDeviceAddress, mod.VkDeviceSize, mod.VkDeviceSize)
mod.VkCopyMemoryIndirectCommandKHR = ffi.typeof([[struct {
$ srcAddress;
$ dstAddress;
$ size;
}]], mod.VkDeviceAddress, mod.VkDeviceAddress, mod.VkDeviceSize)
mod.VkCopyMemoryIndirectInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ srcCopyFlags;
$ dstCopyFlags;
uint32_t copyCount;
$ copyAddressRange;
}]], mod.VkStructureType, mod.VkAddressCopyFlagsKHR, mod.VkAddressCopyFlagsKHR, mod.VkStridedDeviceAddressRangeKHR)
mod.VkCopyMemoryToImageIndirectCommandKHR = ffi.typeof([[struct {
$ srcAddress;
uint32_t bufferRowLength;
uint32_t bufferImageHeight;
$ imageSubresource;
$ imageOffset;
$ imageExtent;
}]], mod.VkDeviceAddress, mod.VkImageSubresourceLayers, mod.VkOffset3D, mod.VkExtent3D)
mod.VkCopyMemoryToImageIndirectInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ srcCopyFlags;
uint32_t copyCount;
$ copyAddressRange;
$ dstImage;
$ dstImageLayout;
const $* pImageSubresources;
}]], mod.VkStructureType, mod.VkAddressCopyFlagsKHR, mod.VkStridedDeviceAddressRangeKHR, mod.VkImage, mod.VkImageLayout, mod.VkImageSubresourceLayers)
mod.VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ indirectMemoryCopy;
$ indirectMemoryToImageCopy;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ supportedQueues;
}]], mod.VkStructureType, mod.VkQueueFlags)
mod.PFN_vkCmdCopyMemoryIndirectKHR = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkCopyMemoryIndirectInfoKHR)
mod.PFN_vkCmdCopyMemoryToImageIndirectKHR = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkCopyMemoryToImageIndirectInfoKHR)
ffi.cdef([[void vkCmdCopyMemoryIndirectKHR($ , const $*);]], mod.VkCommandBuffer, mod.VkCopyMemoryIndirectInfoKHR)
ffi.cdef([[void vkCmdCopyMemoryToImageIndirectKHR($ , const $*);]], mod.VkCommandBuffer, mod.VkCopyMemoryToImageIndirectInfoKHR)
mod.VkVideoEncodeIntraRefreshModeFlagBitsKHR = ffi.typeof([[enum {
VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_NONE_KHR,
VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_PER_PICTURE_PARTITION_BIT_KHR,
VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_BLOCK_BASED_BIT_KHR,
VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_BLOCK_ROW_BASED_BIT_KHR,
VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_BLOCK_COLUMN_BASED_BIT_KHR,
VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkVideoEncodeIntraRefreshModeFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoEncodeIntraRefreshCapabilitiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ intraRefreshModes;
uint32_t maxIntraRefreshCycleDuration;
uint32_t maxIntraRefreshActiveReferencePictures;
$ partitionIndependentIntraRefreshRegions;
$ nonRectangularIntraRefreshRegions;
}]], mod.VkStructureType, mod.VkVideoEncodeIntraRefreshModeFlagsKHR, mod.VkBool32, mod.VkBool32)
mod.VkVideoEncodeSessionIntraRefreshCreateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ intraRefreshMode;
}]], mod.VkStructureType, mod.VkVideoEncodeIntraRefreshModeFlagBitsKHR)
mod.VkVideoEncodeIntraRefreshInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t intraRefreshCycleDuration;
uint32_t intraRefreshIndex;
}]], mod.VkStructureType)
mod.VkVideoReferenceIntraRefreshInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t dirtyIntraRefreshRegions;
}]], mod.VkStructureType)
mod.VkPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ videoEncodeIntraRefresh;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkVideoEncodeQuantizationMapCapabilitiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ maxQuantizationMapExtent;
}]], mod.VkStructureType, mod.VkExtent2D)
mod.VkVideoFormatQuantizationMapPropertiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ quantizationMapTexelSize;
}]], mod.VkStructureType, mod.VkExtent2D)
mod.VkVideoEncodeQuantizationMapInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ quantizationMap;
$ quantizationMapExtent;
}]], mod.VkStructureType, mod.VkImageView, mod.VkExtent2D)
mod.VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ quantizationMapTexelSize;
}]], mod.VkStructureType, mod.VkExtent2D)
mod.VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ videoEncodeQuantizationMap;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkVideoEncodeH264QuantizationMapCapabilitiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
int32_t minQpDelta;
int32_t maxQpDelta;
}]], mod.VkStructureType)
mod.VkVideoEncodeH265QuantizationMapCapabilitiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
int32_t minQpDelta;
int32_t maxQpDelta;
}]], mod.VkStructureType)
mod.VkVideoFormatH265QuantizationMapPropertiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ compatibleCtbSizes;
}]], mod.VkStructureType, mod.VkVideoEncodeH265CtbSizeFlagsKHR)
mod.VkVideoEncodeAV1QuantizationMapCapabilitiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
int32_t minQIndexDelta;
int32_t maxQIndexDelta;
}]], mod.VkStructureType)
mod.VkVideoFormatAV1QuantizationMapPropertiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ compatibleSuperblockSizes;
}]], mod.VkStructureType, mod.VkVideoEncodeAV1SuperblockSizeFlagsKHR)
mod.VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderRelaxedExtendedInstruction;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceLayeredApiKHR = ffi.typeof([[enum {
VK_PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR,
VK_PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR,
VK_PHYSICAL_DEVICE_LAYERED_API_METAL_KHR,
VK_PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR,
VK_PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR,
VK_PHYSICAL_DEVICE_LAYERED_API_MAX_ENUM_KHR,
}]])
mod.VkPhysicalDeviceMaintenance7FeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ maintenance7;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceMaintenance7PropertiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ robustFragmentShadingRateAttachmentAccess;
$ separateDepthStencilAttachmentAccess;
uint32_t maxDescriptorSetTotalUniformBuffersDynamic;
uint32_t maxDescriptorSetTotalStorageBuffersDynamic;
uint32_t maxDescriptorSetTotalBuffersDynamic;
uint32_t maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic;
uint32_t maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic;
uint32_t maxDescriptorSetUpdateAfterBindTotalBuffersDynamic;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceLayeredApiPropertiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t vendorID;
uint32_t deviceID;
$ layeredAPI;
char deviceName[256U];
}]], mod.VkStructureType, mod.VkPhysicalDeviceLayeredApiKHR)
mod.VkPhysicalDeviceLayeredApiPropertiesListKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t layeredApiCount;
$* pLayeredApis;
}]], mod.VkStructureType, mod.VkPhysicalDeviceLayeredApiPropertiesKHR)
mod.VkPhysicalDeviceLayeredApiVulkanPropertiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ properties;
}]], mod.VkStructureType, mod.VkPhysicalDeviceProperties2)
mod.VkAccessFlags3KHR = ffi.typeof([[$ ]], mod.VkFlags64)
mod.VkAccessFlagBits3KHR = ffi.typeof([[$ ]], mod.VkFlags64)
mod.VK_ACCESS_3_NONE_KHR = 0ULL
mod.VkMemoryBarrierAccessFlags3KHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ srcAccessMask3;
$ dstAccessMask3;
}]], mod.VkStructureType, mod.VkAccessFlags3KHR, mod.VkAccessFlags3KHR)
mod.VkPhysicalDeviceMaintenance8FeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ maintenance8;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceShaderFmaFeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderFmaFloat16;
$ shaderFmaFloat32;
$ shaderFmaFloat64;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkDefaultVertexAttributeValueKHR = ffi.typeof([[enum {
VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_ZERO_ZERO_ZERO_ZERO_KHR,
VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_ZERO_ZERO_ZERO_ONE_KHR,
VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_MAX_ENUM_KHR,
}]])
mod.VkPhysicalDeviceMaintenance9FeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ maintenance9;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceMaintenance9PropertiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ image2DViewOf3DSparse;
$ defaultVertexAttributeValue;
}]], mod.VkStructureType, mod.VkBool32, mod.VkDefaultVertexAttributeValueKHR)
mod.VkQueueFamilyOwnershipTransferPropertiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t optimalImageTransferToQueueFamilies;
}]], mod.VkStructureType)
mod.VkPhysicalDeviceVideoMaintenance2FeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ videoMaintenance2;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkVideoDecodeH264InlineSessionParametersInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
const $* pStdSPS;
const $* pStdPPS;
}]], mod.VkStructureType, mod.StdVideoH264SequenceParameterSet, mod.StdVideoH264PictureParameterSet)
mod.VkVideoDecodeH265InlineSessionParametersInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
const $* pStdVPS;
const $* pStdSPS;
const $* pStdPPS;
}]], mod.VkStructureType, mod.StdVideoH265VideoParameterSet, mod.StdVideoH265SequenceParameterSet, mod.StdVideoH265PictureParameterSet)
mod.VkVideoDecodeAV1InlineSessionParametersInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
const $* pStdSequenceHeader;
}]], mod.VkStructureType, mod.StdVideoAV1SequenceHeader)
mod.VkPhysicalDeviceDepthClampZeroOneFeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ depthClampZeroOne;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceRobustness2FeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ robustBufferAccess2;
$ robustImageAccess2;
$ nullDescriptor;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceRobustness2PropertiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ robustStorageBufferAccessSizeAlignment;
$ robustUniformBufferAccessSizeAlignment;
}]], mod.VkStructureType, mod.VkDeviceSize, mod.VkDeviceSize)
mod.VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ presentModeFifoLatestReady;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkRenderingAttachmentFlagBitsKHR = ffi.typeof([[enum {
VK_RENDERING_ATTACHMENT_INPUT_ATTACHMENT_FEEDBACK_BIT_KHR,
VK_RENDERING_ATTACHMENT_RESOLVE_SKIP_TRANSFER_FUNCTION_BIT_KHR,
VK_RENDERING_ATTACHMENT_RESOLVE_ENABLE_TRANSFER_FUNCTION_BIT_KHR,
VK_RENDERING_ATTACHMENT_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkRenderingAttachmentFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkResolveImageFlagBitsKHR = ffi.typeof([[enum {
VK_RESOLVE_IMAGE_SKIP_TRANSFER_FUNCTION_BIT_KHR,
VK_RESOLVE_IMAGE_ENABLE_TRANSFER_FUNCTION_BIT_KHR,
VK_RESOLVE_IMAGE_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkResolveImageFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPhysicalDeviceMaintenance10FeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ maintenance10;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceMaintenance10PropertiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ rgba4OpaqueBlackSwizzled;
$ resolveSrgbFormatAppliesTransferFunction;
$ resolveSrgbFormatSupportsTransferFunctionControl;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkRenderingEndInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
}]], mod.VkStructureType)
mod.VkRenderingAttachmentFlagsInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
}]], mod.VkStructureType, mod.VkRenderingAttachmentFlagsKHR)
mod.VkResolveImageModeInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ resolveMode;
$ stencilResolveMode;
}]], mod.VkStructureType, mod.VkResolveImageFlagsKHR, mod.VkResolveModeFlagBits, mod.VkResolveModeFlagBits)
mod.PFN_vkCmdEndRendering2KHR = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkRenderingEndInfoKHR)
ffi.cdef([[void vkCmdEndRendering2KHR($ , const $*);]], mod.VkCommandBuffer, mod.VkRenderingEndInfoKHR)
mod.VkDebugReportCallbackEXT = ffi.typeof([[void*]])
mod.VkDebugReportObjectTypeEXT = ffi.typeof([[enum {
VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT,
VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT,
}]])
mod.VkDebugReportFlagBitsEXT = ffi.typeof([[enum {
VK_DEBUG_REPORT_INFORMATION_BIT_EXT,
VK_DEBUG_REPORT_WARNING_BIT_EXT,
VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,
VK_DEBUG_REPORT_ERROR_BIT_EXT,
VK_DEBUG_REPORT_DEBUG_BIT_EXT,
VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT,
}]])
mod.VkDebugReportFlagsEXT = ffi.typeof([[$ ]], mod.VkFlags)
mod.PFN_vkDebugReportCallbackEXT = ffi.typeof([[$ (*)($ , $ , uint64_t , size_t , int32_t , const char*, const char*, void*)]], mod.VkBool32, mod.VkDebugReportFlagsEXT, mod.VkDebugReportObjectTypeEXT)
mod.VkDebugReportCallbackCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ pfnCallback;
void* pUserData;
}]], mod.VkStructureType, mod.VkDebugReportFlagsEXT, mod.PFN_vkDebugReportCallbackEXT)
mod.PFN_vkCreateDebugReportCallbackEXT = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkInstance, mod.VkDebugReportCallbackCreateInfoEXT, mod.VkAllocationCallbacks, mod.VkDebugReportCallbackEXT)
mod.PFN_vkDestroyDebugReportCallbackEXT = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkInstance, mod.VkDebugReportCallbackEXT, mod.VkAllocationCallbacks)
mod.PFN_vkDebugReportMessageEXT = ffi.typeof([[void (*)($ , $ , $ , uint64_t , size_t , int32_t , const char*, const char*)]], mod.VkInstance, mod.VkDebugReportFlagsEXT, mod.VkDebugReportObjectTypeEXT)
ffi.cdef([[$ vkCreateDebugReportCallbackEXT($ , const $*, const $*, $*);]], mod.VkResult, mod.VkInstance, mod.VkDebugReportCallbackCreateInfoEXT, mod.VkAllocationCallbacks, mod.VkDebugReportCallbackEXT)
ffi.cdef([[void vkDestroyDebugReportCallbackEXT($ , $ , const $*);]], mod.VkInstance, mod.VkDebugReportCallbackEXT, mod.VkAllocationCallbacks)
ffi.cdef([[void vkDebugReportMessageEXT($ , $ , $ , uint64_t , size_t , int32_t , const char*, const char*);]], mod.VkInstance, mod.VkDebugReportFlagsEXT, mod.VkDebugReportObjectTypeEXT)
mod.VkRasterizationOrderAMD = ffi.typeof([[enum {
VK_RASTERIZATION_ORDER_STRICT_AMD,
VK_RASTERIZATION_ORDER_RELAXED_AMD,
VK_RASTERIZATION_ORDER_MAX_ENUM_AMD,
}]])
mod.VkPipelineRasterizationStateRasterizationOrderAMD = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ rasterizationOrder;
}]], mod.VkStructureType, mod.VkRasterizationOrderAMD)
mod.VkDebugMarkerObjectNameInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ objectType;
uint64_t object;
const char* pObjectName;
}]], mod.VkStructureType, mod.VkDebugReportObjectTypeEXT)
mod.VkDebugMarkerObjectTagInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ objectType;
uint64_t object;
uint64_t tagName;
size_t tagSize;
const void* pTag;
}]], mod.VkStructureType, mod.VkDebugReportObjectTypeEXT)
mod.VkDebugMarkerMarkerInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
const char* pMarkerName;
float color[4];
}]], mod.VkStructureType)
mod.PFN_vkDebugMarkerSetObjectTagEXT = ffi.typeof([[$ (*)($ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkDebugMarkerObjectTagInfoEXT)
mod.PFN_vkDebugMarkerSetObjectNameEXT = ffi.typeof([[$ (*)($ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkDebugMarkerObjectNameInfoEXT)
mod.PFN_vkCmdDebugMarkerBeginEXT = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkDebugMarkerMarkerInfoEXT)
mod.PFN_vkCmdDebugMarkerEndEXT = ffi.typeof([[void (*)($ )]], mod.VkCommandBuffer)
mod.PFN_vkCmdDebugMarkerInsertEXT = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkDebugMarkerMarkerInfoEXT)
ffi.cdef([[$ vkDebugMarkerSetObjectTagEXT($ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkDebugMarkerObjectTagInfoEXT)
ffi.cdef([[$ vkDebugMarkerSetObjectNameEXT($ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkDebugMarkerObjectNameInfoEXT)
ffi.cdef([[void vkCmdDebugMarkerBeginEXT($ , const $*);]], mod.VkCommandBuffer, mod.VkDebugMarkerMarkerInfoEXT)
ffi.cdef([[void vkCmdDebugMarkerEndEXT($ );]], mod.VkCommandBuffer)
ffi.cdef([[void vkCmdDebugMarkerInsertEXT($ , const $*);]], mod.VkCommandBuffer, mod.VkDebugMarkerMarkerInfoEXT)
mod.VkDedicatedAllocationImageCreateInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ dedicatedAllocation;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkDedicatedAllocationBufferCreateInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ dedicatedAllocation;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkDedicatedAllocationMemoryAllocateInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ image;
$ buffer;
}]], mod.VkStructureType, mod.VkImage, mod.VkBuffer)
mod.VkPipelineRasterizationStateStreamCreateFlagsEXT = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPhysicalDeviceTransformFeedbackFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ transformFeedback;
$ geometryStreams;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceTransformFeedbackPropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t maxTransformFeedbackStreams;
uint32_t maxTransformFeedbackBuffers;
$ maxTransformFeedbackBufferSize;
uint32_t maxTransformFeedbackStreamDataSize;
uint32_t maxTransformFeedbackBufferDataSize;
uint32_t maxTransformFeedbackBufferDataStride;
$ transformFeedbackQueries;
$ transformFeedbackStreamsLinesTriangles;
$ transformFeedbackRasterizationStreamSelect;
$ transformFeedbackDraw;
}]], mod.VkStructureType, mod.VkDeviceSize, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPipelineRasterizationStateStreamCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
uint32_t rasterizationStream;
}]], mod.VkStructureType, mod.VkPipelineRasterizationStateStreamCreateFlagsEXT)
mod.PFN_vkCmdBindTransformFeedbackBuffersEXT = ffi.typeof([[void (*)($ , uint32_t , uint32_t , const $*, const $*, const $*)]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize)
mod.PFN_vkCmdBeginTransformFeedbackEXT = ffi.typeof([[void (*)($ , uint32_t , uint32_t , const $*, const $*)]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize)
mod.PFN_vkCmdEndTransformFeedbackEXT = ffi.typeof([[void (*)($ , uint32_t , uint32_t , const $*, const $*)]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize)
mod.PFN_vkCmdBeginQueryIndexedEXT = ffi.typeof([[void (*)($ , $ , uint32_t , $ , uint32_t )]], mod.VkCommandBuffer, mod.VkQueryPool, mod.VkQueryControlFlags)
mod.PFN_vkCmdEndQueryIndexedEXT = ffi.typeof([[void (*)($ , $ , uint32_t , uint32_t )]], mod.VkCommandBuffer, mod.VkQueryPool)
mod.PFN_vkCmdDrawIndirectByteCountEXT = ffi.typeof([[void (*)($ , uint32_t , uint32_t , $ , $ , uint32_t , uint32_t )]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize)
ffi.cdef([[void vkCmdBindTransformFeedbackBuffersEXT($ , uint32_t , uint32_t , const $*, const $*, const $*);]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize)
ffi.cdef([[void vkCmdBeginTransformFeedbackEXT($ , uint32_t , uint32_t , const $*, const $*);]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize)
ffi.cdef([[void vkCmdEndTransformFeedbackEXT($ , uint32_t , uint32_t , const $*, const $*);]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize)
ffi.cdef([[void vkCmdBeginQueryIndexedEXT($ , $ , uint32_t , $ , uint32_t );]], mod.VkCommandBuffer, mod.VkQueryPool, mod.VkQueryControlFlags)
ffi.cdef([[void vkCmdEndQueryIndexedEXT($ , $ , uint32_t , uint32_t );]], mod.VkCommandBuffer, mod.VkQueryPool)
ffi.cdef([[void vkCmdDrawIndirectByteCountEXT($ , uint32_t , uint32_t , $ , $ , uint32_t , uint32_t );]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize)
mod.VkCuModuleNVX = ffi.typeof([[void*]])
mod.VkCuFunctionNVX = ffi.typeof([[void*]])
mod.VkCuModuleCreateInfoNVX = ffi.typeof([[struct {
$ sType;
const void* pNext;
size_t dataSize;
const void* pData;
}]], mod.VkStructureType)
mod.VkCuModuleTexturingModeCreateInfoNVX = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ use64bitTexturing;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkCuFunctionCreateInfoNVX = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ module;
const char* pName;
}]], mod.VkStructureType, mod.VkCuModuleNVX)
mod.VkCuLaunchInfoNVX = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ function;
uint32_t gridDimX;
uint32_t gridDimY;
uint32_t gridDimZ;
uint32_t blockDimX;
uint32_t blockDimY;
uint32_t blockDimZ;
uint32_t sharedMemBytes;
size_t paramCount;
const void** const pParams;
size_t extraCount;
const void** const pExtras;
}]], mod.VkStructureType, mod.VkCuFunctionNVX)
mod.PFN_vkCreateCuModuleNVX = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkCuModuleCreateInfoNVX, mod.VkAllocationCallbacks, mod.VkCuModuleNVX)
mod.PFN_vkCreateCuFunctionNVX = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkCuFunctionCreateInfoNVX, mod.VkAllocationCallbacks, mod.VkCuFunctionNVX)
mod.PFN_vkDestroyCuModuleNVX = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkCuModuleNVX, mod.VkAllocationCallbacks)
mod.PFN_vkDestroyCuFunctionNVX = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkCuFunctionNVX, mod.VkAllocationCallbacks)
mod.PFN_vkCmdCuLaunchKernelNVX = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkCuLaunchInfoNVX)
ffi.cdef([[$ vkCreateCuModuleNVX($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkCuModuleCreateInfoNVX, mod.VkAllocationCallbacks, mod.VkCuModuleNVX)
ffi.cdef([[$ vkCreateCuFunctionNVX($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkCuFunctionCreateInfoNVX, mod.VkAllocationCallbacks, mod.VkCuFunctionNVX)
ffi.cdef([[void vkDestroyCuModuleNVX($ , $ , const $*);]], mod.VkDevice, mod.VkCuModuleNVX, mod.VkAllocationCallbacks)
ffi.cdef([[void vkDestroyCuFunctionNVX($ , $ , const $*);]], mod.VkDevice, mod.VkCuFunctionNVX, mod.VkAllocationCallbacks)
ffi.cdef([[void vkCmdCuLaunchKernelNVX($ , const $*);]], mod.VkCommandBuffer, mod.VkCuLaunchInfoNVX)
mod.VkImageViewHandleInfoNVX = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ imageView;
$ descriptorType;
$ sampler;
}]], mod.VkStructureType, mod.VkImageView, mod.VkDescriptorType, mod.VkSampler)
mod.VkImageViewAddressPropertiesNVX = ffi.typeof([[struct {
$ sType;
void* pNext;
$ deviceAddress;
$ size;
}]], mod.VkStructureType, mod.VkDeviceAddress, mod.VkDeviceSize)
mod.PFN_vkGetImageViewHandleNVX = ffi.typeof([[uint32_t (*)($ , const $*)]], mod.VkDevice, mod.VkImageViewHandleInfoNVX)
mod.PFN_vkGetImageViewHandle64NVX = ffi.typeof([[uint64_t (*)($ , const $*)]], mod.VkDevice, mod.VkImageViewHandleInfoNVX)
mod.PFN_vkGetImageViewAddressNVX = ffi.typeof([[$ (*)($ , $ , $*)]], mod.VkResult, mod.VkDevice, mod.VkImageView, mod.VkImageViewAddressPropertiesNVX)
ffi.cdef([[uint32_t vkGetImageViewHandleNVX($ , const $*);]], mod.VkDevice, mod.VkImageViewHandleInfoNVX)
ffi.cdef([[uint64_t vkGetImageViewHandle64NVX($ , const $*);]], mod.VkDevice, mod.VkImageViewHandleInfoNVX)
ffi.cdef([[$ vkGetImageViewAddressNVX($ , $ , $*);]], mod.VkResult, mod.VkDevice, mod.VkImageView, mod.VkImageViewAddressPropertiesNVX)
mod.PFN_vkCmdDrawIndirectCountAMD = ffi.typeof([[void (*)($ , $ , $ , $ , $ , uint32_t , uint32_t )]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkBuffer, mod.VkDeviceSize)
mod.PFN_vkCmdDrawIndexedIndirectCountAMD = ffi.typeof([[void (*)($ , $ , $ , $ , $ , uint32_t , uint32_t )]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkBuffer, mod.VkDeviceSize)
ffi.cdef([[void vkCmdDrawIndirectCountAMD($ , $ , $ , $ , $ , uint32_t , uint32_t );]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkBuffer, mod.VkDeviceSize)
ffi.cdef([[void vkCmdDrawIndexedIndirectCountAMD($ , $ , $ , $ , $ , uint32_t , uint32_t );]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkBuffer, mod.VkDeviceSize)
mod.VkTextureLODGatherFormatPropertiesAMD = ffi.typeof([[struct {
$ sType;
void* pNext;
$ supportsTextureGatherLODBiasAMD;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkShaderInfoTypeAMD = ffi.typeof([[enum {
VK_SHADER_INFO_TYPE_STATISTICS_AMD,
VK_SHADER_INFO_TYPE_BINARY_AMD,
VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD,
VK_SHADER_INFO_TYPE_MAX_ENUM_AMD,
}]])
mod.VkShaderResourceUsageAMD = ffi.typeof([[struct {
uint32_t numUsedVgprs;
uint32_t numUsedSgprs;
uint32_t ldsSizePerLocalWorkGroup;
size_t ldsUsageSizeInBytes;
size_t scratchMemUsageInBytes;
}]])
mod.VkShaderStatisticsInfoAMD = ffi.typeof([[struct {
$ shaderStageMask;
$ resourceUsage;
uint32_t numPhysicalVgprs;
uint32_t numPhysicalSgprs;
uint32_t numAvailableVgprs;
uint32_t numAvailableSgprs;
uint32_t computeWorkGroupSize[3];
}]], mod.VkShaderStageFlags, mod.VkShaderResourceUsageAMD)
mod.PFN_vkGetShaderInfoAMD = ffi.typeof([[$ (*)($ , $ , $ , $ , size_t*, void*)]], mod.VkResult, mod.VkDevice, mod.VkPipeline, mod.VkShaderStageFlagBits, mod.VkShaderInfoTypeAMD)
ffi.cdef([[$ vkGetShaderInfoAMD($ , $ , $ , $ , size_t*, void*);]], mod.VkResult, mod.VkDevice, mod.VkPipeline, mod.VkShaderStageFlagBits, mod.VkShaderInfoTypeAMD)
mod.VkPhysicalDeviceCornerSampledImageFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ cornerSampledImage;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkExternalMemoryHandleTypeFlagBitsNV = ffi.typeof([[enum {
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV,
}]])
mod.VkExternalMemoryHandleTypeFlagsNV = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkExternalMemoryFeatureFlagBitsNV = ffi.typeof([[enum {
VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV,
VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV,
VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV,
VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV,
}]])
mod.VkExternalMemoryFeatureFlagsNV = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkExternalImageFormatPropertiesNV = ffi.typeof([[struct {
$ imageFormatProperties;
$ externalMemoryFeatures;
$ exportFromImportedHandleTypes;
$ compatibleHandleTypes;
}]], mod.VkImageFormatProperties, mod.VkExternalMemoryFeatureFlagsNV, mod.VkExternalMemoryHandleTypeFlagsNV, mod.VkExternalMemoryHandleTypeFlagsNV)
mod.PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = ffi.typeof([[$ (*)($ , $ , $ , $ , $ , $ , $ , $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkFormat, mod.VkImageType, mod.VkImageTiling, mod.VkImageUsageFlags, mod.VkImageCreateFlags, mod.VkExternalMemoryHandleTypeFlagsNV, mod.VkExternalImageFormatPropertiesNV)
ffi.cdef([[$ vkGetPhysicalDeviceExternalImageFormatPropertiesNV($ , $ , $ , $ , $ , $ , $ , $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkFormat, mod.VkImageType, mod.VkImageTiling, mod.VkImageUsageFlags, mod.VkImageCreateFlags, mod.VkExternalMemoryHandleTypeFlagsNV, mod.VkExternalImageFormatPropertiesNV)
mod.VkExternalMemoryImageCreateInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ handleTypes;
}]], mod.VkStructureType, mod.VkExternalMemoryHandleTypeFlagsNV)
mod.VkExportMemoryAllocateInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ handleTypes;
}]], mod.VkStructureType, mod.VkExternalMemoryHandleTypeFlagsNV)
mod.VkValidationCheckEXT = ffi.typeof([[enum {
VK_VALIDATION_CHECK_ALL_EXT,
VK_VALIDATION_CHECK_SHADERS_EXT,
VK_VALIDATION_CHECK_MAX_ENUM_EXT,
}]])
mod.VkValidationFlagsEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t disabledValidationCheckCount;
const $* pDisabledValidationChecks;
}]], mod.VkStructureType, mod.VkValidationCheckEXT)
mod.VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDeviceTextureCompressionASTCHDRFeatures)
mod.VkImageViewASTCDecodeModeEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ decodeMode;
}]], mod.VkStructureType, mod.VkFormat)
mod.VkPhysicalDeviceASTCDecodeFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ decodeModeSharedExponent;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPipelineRobustnessBufferBehaviorEXT = ffi.typeof([[$ ]], mod.VkPipelineRobustnessBufferBehavior)
mod.VkPipelineRobustnessImageBehaviorEXT = ffi.typeof([[$ ]], mod.VkPipelineRobustnessImageBehavior)
mod.VkPhysicalDevicePipelineRobustnessFeaturesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDevicePipelineRobustnessFeatures)
mod.VkPhysicalDevicePipelineRobustnessPropertiesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDevicePipelineRobustnessProperties)
mod.VkPipelineRobustnessCreateInfoEXT = ffi.typeof([[$ ]], mod.VkPipelineRobustnessCreateInfo)
mod.VkConditionalRenderingFlagBitsEXT = ffi.typeof([[enum {
VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT,
VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT,
}]])
mod.VkConditionalRenderingFlagsEXT = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkConditionalRenderingBeginInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ buffer;
$ offset;
$ flags;
}]], mod.VkStructureType, mod.VkBuffer, mod.VkDeviceSize, mod.VkConditionalRenderingFlagsEXT)
mod.VkPhysicalDeviceConditionalRenderingFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ conditionalRendering;
$ inheritedConditionalRendering;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkCommandBufferInheritanceConditionalRenderingInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ conditionalRenderingEnable;
}]], mod.VkStructureType, mod.VkBool32)
mod.PFN_vkCmdBeginConditionalRenderingEXT = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkConditionalRenderingBeginInfoEXT)
mod.PFN_vkCmdEndConditionalRenderingEXT = ffi.typeof([[void (*)($ )]], mod.VkCommandBuffer)
ffi.cdef([[void vkCmdBeginConditionalRenderingEXT($ , const $*);]], mod.VkCommandBuffer, mod.VkConditionalRenderingBeginInfoEXT)
ffi.cdef([[void vkCmdEndConditionalRenderingEXT($ );]], mod.VkCommandBuffer)
mod.VkViewportWScalingNV = ffi.typeof([[struct {
float xcoeff;
float ycoeff;
}]])
mod.VkPipelineViewportWScalingStateCreateInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ viewportWScalingEnable;
uint32_t viewportCount;
const $* pViewportWScalings;
}]], mod.VkStructureType, mod.VkBool32, mod.VkViewportWScalingNV)
mod.PFN_vkCmdSetViewportWScalingNV = ffi.typeof([[void (*)($ , uint32_t , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkViewportWScalingNV)
ffi.cdef([[void vkCmdSetViewportWScalingNV($ , uint32_t , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkViewportWScalingNV)
mod.PFN_vkReleaseDisplayEXT = ffi.typeof([[$ (*)($ , $ )]], mod.VkResult, mod.VkPhysicalDevice, mod.VkDisplayKHR)
ffi.cdef([[$ vkReleaseDisplayEXT($ , $ );]], mod.VkResult, mod.VkPhysicalDevice, mod.VkDisplayKHR)
mod.VkSurfaceCounterFlagBitsEXT = ffi.typeof([[enum {
VK_SURFACE_COUNTER_VBLANK_BIT_EXT,
VK_SURFACE_COUNTER_VBLANK_EXT,
VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT,
}]])
mod.VkSurfaceCounterFlagsEXT = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkSurfaceCapabilities2EXT = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t minImageCount;
uint32_t maxImageCount;
$ currentExtent;
$ minImageExtent;
$ maxImageExtent;
uint32_t maxImageArrayLayers;
$ supportedTransforms;
$ currentTransform;
$ supportedCompositeAlpha;
$ supportedUsageFlags;
$ supportedSurfaceCounters;
}]], mod.VkStructureType, mod.VkExtent2D, mod.VkExtent2D, mod.VkExtent2D, mod.VkSurfaceTransformFlagsKHR, mod.VkSurfaceTransformFlagBitsKHR, mod.VkCompositeAlphaFlagsKHR, mod.VkImageUsageFlags, mod.VkSurfaceCounterFlagsEXT)
mod.PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = ffi.typeof([[$ (*)($ , $ , $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkSurfaceKHR, mod.VkSurfaceCapabilities2EXT)
ffi.cdef([[$ vkGetPhysicalDeviceSurfaceCapabilities2EXT($ , $ , $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkSurfaceKHR, mod.VkSurfaceCapabilities2EXT)
mod.VkDisplayPowerStateEXT = ffi.typeof([[enum {
VK_DISPLAY_POWER_STATE_OFF_EXT,
VK_DISPLAY_POWER_STATE_SUSPEND_EXT,
VK_DISPLAY_POWER_STATE_ON_EXT,
VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT,
}]])
mod.VkDeviceEventTypeEXT = ffi.typeof([[enum {
VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT,
VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT,
}]])
mod.VkDisplayEventTypeEXT = ffi.typeof([[enum {
VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT,
VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT,
}]])
mod.VkDisplayPowerInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ powerState;
}]], mod.VkStructureType, mod.VkDisplayPowerStateEXT)
mod.VkDeviceEventInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ deviceEvent;
}]], mod.VkStructureType, mod.VkDeviceEventTypeEXT)
mod.VkDisplayEventInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ displayEvent;
}]], mod.VkStructureType, mod.VkDisplayEventTypeEXT)
mod.VkSwapchainCounterCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ surfaceCounters;
}]], mod.VkStructureType, mod.VkSurfaceCounterFlagsEXT)
mod.PFN_vkDisplayPowerControlEXT = ffi.typeof([[$ (*)($ , $ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkDisplayKHR, mod.VkDisplayPowerInfoEXT)
mod.PFN_vkRegisterDeviceEventEXT = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkDeviceEventInfoEXT, mod.VkAllocationCallbacks, mod.VkFence)
mod.PFN_vkRegisterDisplayEventEXT = ffi.typeof([[$ (*)($ , $ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkDisplayKHR, mod.VkDisplayEventInfoEXT, mod.VkAllocationCallbacks, mod.VkFence)
mod.PFN_vkGetSwapchainCounterEXT = ffi.typeof([[$ (*)($ , $ , $ , uint64_t*)]], mod.VkResult, mod.VkDevice, mod.VkSwapchainKHR, mod.VkSurfaceCounterFlagBitsEXT)
ffi.cdef([[$ vkDisplayPowerControlEXT($ , $ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkDisplayKHR, mod.VkDisplayPowerInfoEXT)
ffi.cdef([[$ vkRegisterDeviceEventEXT($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkDeviceEventInfoEXT, mod.VkAllocationCallbacks, mod.VkFence)
ffi.cdef([[$ vkRegisterDisplayEventEXT($ , $ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkDisplayKHR, mod.VkDisplayEventInfoEXT, mod.VkAllocationCallbacks, mod.VkFence)
ffi.cdef([[$ vkGetSwapchainCounterEXT($ , $ , $ , uint64_t*);]], mod.VkResult, mod.VkDevice, mod.VkSwapchainKHR, mod.VkSurfaceCounterFlagBitsEXT)
mod.VkRefreshCycleDurationGOOGLE = ffi.typeof([[struct {
uint64_t refreshDuration;
}]])
mod.VkPastPresentationTimingGOOGLE = ffi.typeof([[struct {
uint32_t presentID;
uint64_t desiredPresentTime;
uint64_t actualPresentTime;
uint64_t earliestPresentTime;
uint64_t presentMargin;
}]])
mod.VkPresentTimeGOOGLE = ffi.typeof([[struct {
uint32_t presentID;
uint64_t desiredPresentTime;
}]])
mod.VkPresentTimesInfoGOOGLE = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t swapchainCount;
const $* pTimes;
}]], mod.VkStructureType, mod.VkPresentTimeGOOGLE)
mod.PFN_vkGetRefreshCycleDurationGOOGLE = ffi.typeof([[$ (*)($ , $ , $*)]], mod.VkResult, mod.VkDevice, mod.VkSwapchainKHR, mod.VkRefreshCycleDurationGOOGLE)
mod.PFN_vkGetPastPresentationTimingGOOGLE = ffi.typeof([[$ (*)($ , $ , uint32_t*, $*)]], mod.VkResult, mod.VkDevice, mod.VkSwapchainKHR, mod.VkPastPresentationTimingGOOGLE)
ffi.cdef([[$ vkGetRefreshCycleDurationGOOGLE($ , $ , $*);]], mod.VkResult, mod.VkDevice, mod.VkSwapchainKHR, mod.VkRefreshCycleDurationGOOGLE)
ffi.cdef([[$ vkGetPastPresentationTimingGOOGLE($ , $ , uint32_t*, $*);]], mod.VkResult, mod.VkDevice, mod.VkSwapchainKHR, mod.VkPastPresentationTimingGOOGLE)
mod.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = ffi.typeof([[struct {
$ sType;
void* pNext;
$ perViewPositionAllComponents;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkMultiviewPerViewAttributesInfoNVX = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ perViewAttributes;
$ perViewAttributesPositionXOnly;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkViewportCoordinateSwizzleNV = ffi.typeof([[enum {
VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV,
VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV,
VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV,
VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV,
VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV,
VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV,
VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV,
VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV,
VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV,
}]])
mod.VkPipelineViewportSwizzleStateCreateFlagsNV = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkViewportSwizzleNV = ffi.typeof([[struct {
$ x;
$ y;
$ z;
$ w;
}]], mod.VkViewportCoordinateSwizzleNV, mod.VkViewportCoordinateSwizzleNV, mod.VkViewportCoordinateSwizzleNV, mod.VkViewportCoordinateSwizzleNV)
mod.VkPipelineViewportSwizzleStateCreateInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
uint32_t viewportCount;
const $* pViewportSwizzles;
}]], mod.VkStructureType, mod.VkPipelineViewportSwizzleStateCreateFlagsNV, mod.VkViewportSwizzleNV)
mod.VkDiscardRectangleModeEXT = ffi.typeof([[enum {
VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT,
VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT,
VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT,
}]])
mod.VkPipelineDiscardRectangleStateCreateFlagsEXT = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPhysicalDeviceDiscardRectanglePropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t maxDiscardRectangles;
}]], mod.VkStructureType)
mod.VkPipelineDiscardRectangleStateCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ discardRectangleMode;
uint32_t discardRectangleCount;
const $* pDiscardRectangles;
}]], mod.VkStructureType, mod.VkPipelineDiscardRectangleStateCreateFlagsEXT, mod.VkDiscardRectangleModeEXT, mod.VkRect2D)
mod.PFN_vkCmdSetDiscardRectangleEXT = ffi.typeof([[void (*)($ , uint32_t , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkRect2D)
mod.PFN_vkCmdSetDiscardRectangleEnableEXT = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkBool32)
mod.PFN_vkCmdSetDiscardRectangleModeEXT = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkDiscardRectangleModeEXT)
ffi.cdef([[void vkCmdSetDiscardRectangleEXT($ , uint32_t , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkRect2D)
ffi.cdef([[void vkCmdSetDiscardRectangleEnableEXT($ , $ );]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetDiscardRectangleModeEXT($ , $ );]], mod.VkCommandBuffer, mod.VkDiscardRectangleModeEXT)
mod.VkConservativeRasterizationModeEXT = ffi.typeof([[enum {
VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT,
VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT,
VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT,
VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT,
}]])
mod.VkPipelineRasterizationConservativeStateCreateFlagsEXT = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPhysicalDeviceConservativeRasterizationPropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
float primitiveOverestimationSize;
float maxExtraPrimitiveOverestimationSize;
float extraPrimitiveOverestimationSizeGranularity;
$ primitiveUnderestimation;
$ conservativePointAndLineRasterization;
$ degenerateTrianglesRasterized;
$ degenerateLinesRasterized;
$ fullyCoveredFragmentShaderInputVariable;
$ conservativeRasterizationPostDepthCoverage;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPipelineRasterizationConservativeStateCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ conservativeRasterizationMode;
float extraPrimitiveOverestimationSize;
}]], mod.VkStructureType, mod.VkPipelineRasterizationConservativeStateCreateFlagsEXT, mod.VkConservativeRasterizationModeEXT)
mod.VkPipelineRasterizationDepthClipStateCreateFlagsEXT = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPhysicalDeviceDepthClipEnableFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ depthClipEnable;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPipelineRasterizationDepthClipStateCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ depthClipEnable;
}]], mod.VkStructureType, mod.VkPipelineRasterizationDepthClipStateCreateFlagsEXT, mod.VkBool32)
mod.VkXYColorEXT = ffi.typeof([[struct {
float x;
float y;
}]])
mod.VkHdrMetadataEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ displayPrimaryRed;
$ displayPrimaryGreen;
$ displayPrimaryBlue;
$ whitePoint;
float maxLuminance;
float minLuminance;
float maxContentLightLevel;
float maxFrameAverageLightLevel;
}]], mod.VkStructureType, mod.VkXYColorEXT, mod.VkXYColorEXT, mod.VkXYColorEXT, mod.VkXYColorEXT)
mod.PFN_vkSetHdrMetadataEXT = ffi.typeof([[void (*)($ , uint32_t , const $*, const $*)]], mod.VkDevice, mod.VkSwapchainKHR, mod.VkHdrMetadataEXT)
ffi.cdef([[void vkSetHdrMetadataEXT($ , uint32_t , const $*, const $*);]], mod.VkDevice, mod.VkSwapchainKHR, mod.VkHdrMetadataEXT)
mod.VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG = ffi.typeof([[struct {
$ sType;
void* pNext;
$ relaxedLineRasterization;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkDebugUtilsMessengerEXT = ffi.typeof([[void*]])
mod.VkDebugUtilsMessengerCallbackDataFlagsEXT = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkDebugUtilsMessageSeverityFlagBitsEXT = ffi.typeof([[enum {
VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT,
VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT,
VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,
VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT,
VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT,
}]])
mod.VkDebugUtilsMessageTypeFlagBitsEXT = ffi.typeof([[enum {
VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT,
VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,
VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT,
VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT,
VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT,
}]])
mod.VkDebugUtilsMessageTypeFlagsEXT = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkDebugUtilsMessageSeverityFlagsEXT = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkDebugUtilsMessengerCreateFlagsEXT = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkDebugUtilsLabelEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
const char* pLabelName;
float color[4];
}]], mod.VkStructureType)
mod.VkDebugUtilsObjectNameInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ objectType;
uint64_t objectHandle;
const char* pObjectName;
}]], mod.VkStructureType, mod.VkObjectType)
mod.VkDebugUtilsMessengerCallbackDataEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
const char* pMessageIdName;
int32_t messageIdNumber;
const char* pMessage;
uint32_t queueLabelCount;
const $* pQueueLabels;
uint32_t cmdBufLabelCount;
const $* pCmdBufLabels;
uint32_t objectCount;
const $* pObjects;
}]], mod.VkStructureType, mod.VkDebugUtilsMessengerCallbackDataFlagsEXT, mod.VkDebugUtilsLabelEXT, mod.VkDebugUtilsLabelEXT, mod.VkDebugUtilsObjectNameInfoEXT)
mod.PFN_vkDebugUtilsMessengerCallbackEXT = ffi.typeof([[$ (*)($ , $ , const $*, void*)]], mod.VkBool32, mod.VkDebugUtilsMessageSeverityFlagBitsEXT, mod.VkDebugUtilsMessageTypeFlagsEXT, mod.VkDebugUtilsMessengerCallbackDataEXT)
mod.VkDebugUtilsMessengerCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ messageSeverity;
$ messageType;
$ pfnUserCallback;
void* pUserData;
}]], mod.VkStructureType, mod.VkDebugUtilsMessengerCreateFlagsEXT, mod.VkDebugUtilsMessageSeverityFlagsEXT, mod.VkDebugUtilsMessageTypeFlagsEXT, mod.PFN_vkDebugUtilsMessengerCallbackEXT)
mod.VkDebugUtilsObjectTagInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ objectType;
uint64_t objectHandle;
uint64_t tagName;
size_t tagSize;
const void* pTag;
}]], mod.VkStructureType, mod.VkObjectType)
mod.PFN_vkSetDebugUtilsObjectNameEXT = ffi.typeof([[$ (*)($ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkDebugUtilsObjectNameInfoEXT)
mod.PFN_vkSetDebugUtilsObjectTagEXT = ffi.typeof([[$ (*)($ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkDebugUtilsObjectTagInfoEXT)
mod.PFN_vkQueueBeginDebugUtilsLabelEXT = ffi.typeof([[void (*)($ , const $*)]], mod.VkQueue, mod.VkDebugUtilsLabelEXT)
mod.PFN_vkQueueEndDebugUtilsLabelEXT = ffi.typeof([[void (*)($ )]], mod.VkQueue)
mod.PFN_vkQueueInsertDebugUtilsLabelEXT = ffi.typeof([[void (*)($ , const $*)]], mod.VkQueue, mod.VkDebugUtilsLabelEXT)
mod.PFN_vkCmdBeginDebugUtilsLabelEXT = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkDebugUtilsLabelEXT)
mod.PFN_vkCmdEndDebugUtilsLabelEXT = ffi.typeof([[void (*)($ )]], mod.VkCommandBuffer)
mod.PFN_vkCmdInsertDebugUtilsLabelEXT = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkDebugUtilsLabelEXT)
mod.PFN_vkCreateDebugUtilsMessengerEXT = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkInstance, mod.VkDebugUtilsMessengerCreateInfoEXT, mod.VkAllocationCallbacks, mod.VkDebugUtilsMessengerEXT)
mod.PFN_vkDestroyDebugUtilsMessengerEXT = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkInstance, mod.VkDebugUtilsMessengerEXT, mod.VkAllocationCallbacks)
mod.PFN_vkSubmitDebugUtilsMessageEXT = ffi.typeof([[void (*)($ , $ , $ , const $*)]], mod.VkInstance, mod.VkDebugUtilsMessageSeverityFlagBitsEXT, mod.VkDebugUtilsMessageTypeFlagsEXT, mod.VkDebugUtilsMessengerCallbackDataEXT)
ffi.cdef([[$ vkSetDebugUtilsObjectNameEXT($ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkDebugUtilsObjectNameInfoEXT)
ffi.cdef([[$ vkSetDebugUtilsObjectTagEXT($ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkDebugUtilsObjectTagInfoEXT)
ffi.cdef([[void vkQueueBeginDebugUtilsLabelEXT($ , const $*);]], mod.VkQueue, mod.VkDebugUtilsLabelEXT)
ffi.cdef([[void vkQueueEndDebugUtilsLabelEXT($ );]], mod.VkQueue)
ffi.cdef([[void vkQueueInsertDebugUtilsLabelEXT($ , const $*);]], mod.VkQueue, mod.VkDebugUtilsLabelEXT)
ffi.cdef([[void vkCmdBeginDebugUtilsLabelEXT($ , const $*);]], mod.VkCommandBuffer, mod.VkDebugUtilsLabelEXT)
ffi.cdef([[void vkCmdEndDebugUtilsLabelEXT($ );]], mod.VkCommandBuffer)
ffi.cdef([[void vkCmdInsertDebugUtilsLabelEXT($ , const $*);]], mod.VkCommandBuffer, mod.VkDebugUtilsLabelEXT)
ffi.cdef([[$ vkCreateDebugUtilsMessengerEXT($ , const $*, const $*, $*);]], mod.VkResult, mod.VkInstance, mod.VkDebugUtilsMessengerCreateInfoEXT, mod.VkAllocationCallbacks, mod.VkDebugUtilsMessengerEXT)
ffi.cdef([[void vkDestroyDebugUtilsMessengerEXT($ , $ , const $*);]], mod.VkInstance, mod.VkDebugUtilsMessengerEXT, mod.VkAllocationCallbacks)
ffi.cdef([[void vkSubmitDebugUtilsMessageEXT($ , $ , $ , const $*);]], mod.VkInstance, mod.VkDebugUtilsMessageSeverityFlagBitsEXT, mod.VkDebugUtilsMessageTypeFlagsEXT, mod.VkDebugUtilsMessengerCallbackDataEXT)
mod.VkSamplerReductionModeEXT = ffi.typeof([[$ ]], mod.VkSamplerReductionMode)
mod.VkSamplerReductionModeCreateInfoEXT = ffi.typeof([[$ ]], mod.VkSamplerReductionModeCreateInfo)
mod.VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDeviceSamplerFilterMinmaxProperties)
mod.VkAttachmentSampleCountInfoAMD = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t colorAttachmentCount;
const $* pColorAttachmentSamples;
$ depthStencilAttachmentSamples;
}]], mod.VkStructureType, mod.VkSampleCountFlagBits, mod.VkSampleCountFlagBits)
mod.VkPhysicalDeviceInlineUniformBlockFeaturesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDeviceInlineUniformBlockFeatures)
mod.VkPhysicalDeviceInlineUniformBlockPropertiesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDeviceInlineUniformBlockProperties)
mod.VkWriteDescriptorSetInlineUniformBlockEXT = ffi.typeof([[$ ]], mod.VkWriteDescriptorSetInlineUniformBlock)
mod.VkDescriptorPoolInlineUniformBlockCreateInfoEXT = ffi.typeof([[$ ]], mod.VkDescriptorPoolInlineUniformBlockCreateInfo)
mod.VkSampleLocationEXT = ffi.typeof([[struct {
float x;
float y;
}]])
mod.VkSampleLocationsInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ sampleLocationsPerPixel;
$ sampleLocationGridSize;
uint32_t sampleLocationsCount;
const $* pSampleLocations;
}]], mod.VkStructureType, mod.VkSampleCountFlagBits, mod.VkExtent2D, mod.VkSampleLocationEXT)
mod.VkAttachmentSampleLocationsEXT = ffi.typeof([[struct {
uint32_t attachmentIndex;
$ sampleLocationsInfo;
}]], mod.VkSampleLocationsInfoEXT)
mod.VkSubpassSampleLocationsEXT = ffi.typeof([[struct {
uint32_t subpassIndex;
$ sampleLocationsInfo;
}]], mod.VkSampleLocationsInfoEXT)
mod.VkRenderPassSampleLocationsBeginInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t attachmentInitialSampleLocationsCount;
const $* pAttachmentInitialSampleLocations;
uint32_t postSubpassSampleLocationsCount;
const $* pPostSubpassSampleLocations;
}]], mod.VkStructureType, mod.VkAttachmentSampleLocationsEXT, mod.VkSubpassSampleLocationsEXT)
mod.VkPipelineSampleLocationsStateCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ sampleLocationsEnable;
$ sampleLocationsInfo;
}]], mod.VkStructureType, mod.VkBool32, mod.VkSampleLocationsInfoEXT)
mod.VkPhysicalDeviceSampleLocationsPropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ sampleLocationSampleCounts;
$ maxSampleLocationGridSize;
float sampleLocationCoordinateRange[2];
uint32_t sampleLocationSubPixelBits;
$ variableSampleLocations;
}]], mod.VkStructureType, mod.VkSampleCountFlags, mod.VkExtent2D, mod.VkBool32)
mod.VkMultisamplePropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ maxSampleLocationGridSize;
}]], mod.VkStructureType, mod.VkExtent2D)
mod.PFN_vkCmdSetSampleLocationsEXT = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkSampleLocationsInfoEXT)
mod.PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = ffi.typeof([[void (*)($ , $ , $*)]], mod.VkPhysicalDevice, mod.VkSampleCountFlagBits, mod.VkMultisamplePropertiesEXT)
ffi.cdef([[void vkCmdSetSampleLocationsEXT($ , const $*);]], mod.VkCommandBuffer, mod.VkSampleLocationsInfoEXT)
ffi.cdef([[void vkGetPhysicalDeviceMultisamplePropertiesEXT($ , $ , $*);]], mod.VkPhysicalDevice, mod.VkSampleCountFlagBits, mod.VkMultisamplePropertiesEXT)
mod.VkBlendOverlapEXT = ffi.typeof([[enum {
VK_BLEND_OVERLAP_UNCORRELATED_EXT,
VK_BLEND_OVERLAP_DISJOINT_EXT,
VK_BLEND_OVERLAP_CONJOINT_EXT,
VK_BLEND_OVERLAP_MAX_ENUM_EXT,
}]])
mod.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ advancedBlendCoherentOperations;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t advancedBlendMaxColorAttachments;
$ advancedBlendIndependentBlend;
$ advancedBlendNonPremultipliedSrcColor;
$ advancedBlendNonPremultipliedDstColor;
$ advancedBlendCorrelatedOverlap;
$ advancedBlendAllOperations;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPipelineColorBlendAdvancedStateCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ srcPremultiplied;
$ dstPremultiplied;
$ blendOverlap;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBlendOverlapEXT)
mod.VkPipelineCoverageToColorStateCreateFlagsNV = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPipelineCoverageToColorStateCreateInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ coverageToColorEnable;
uint32_t coverageToColorLocation;
}]], mod.VkStructureType, mod.VkPipelineCoverageToColorStateCreateFlagsNV, mod.VkBool32)
mod.VkCoverageModulationModeNV = ffi.typeof([[enum {
VK_COVERAGE_MODULATION_MODE_NONE_NV,
VK_COVERAGE_MODULATION_MODE_RGB_NV,
VK_COVERAGE_MODULATION_MODE_ALPHA_NV,
VK_COVERAGE_MODULATION_MODE_RGBA_NV,
VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV,
}]])
mod.VkPipelineCoverageModulationStateCreateFlagsNV = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPipelineCoverageModulationStateCreateInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ coverageModulationMode;
$ coverageModulationTableEnable;
uint32_t coverageModulationTableCount;
const float* pCoverageModulationTable;
}]], mod.VkStructureType, mod.VkPipelineCoverageModulationStateCreateFlagsNV, mod.VkCoverageModulationModeNV, mod.VkBool32)
mod.VkAttachmentSampleCountInfoNV = ffi.typeof([[$ ]], mod.VkAttachmentSampleCountInfoAMD)
mod.VkPhysicalDeviceShaderSMBuiltinsPropertiesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t shaderSMCount;
uint32_t shaderWarpsPerSM;
}]], mod.VkStructureType)
mod.VkPhysicalDeviceShaderSMBuiltinsFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderSMBuiltins;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkDrmFormatModifierPropertiesEXT = ffi.typeof([[struct {
uint64_t drmFormatModifier;
uint32_t drmFormatModifierPlaneCount;
$ drmFormatModifierTilingFeatures;
}]], mod.VkFormatFeatureFlags)
mod.VkDrmFormatModifierPropertiesListEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t drmFormatModifierCount;
$* pDrmFormatModifierProperties;
}]], mod.VkStructureType, mod.VkDrmFormatModifierPropertiesEXT)
mod.VkPhysicalDeviceImageDrmFormatModifierInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint64_t drmFormatModifier;
$ sharingMode;
uint32_t queueFamilyIndexCount;
const uint32_t* pQueueFamilyIndices;
}]], mod.VkStructureType, mod.VkSharingMode)
mod.VkImageDrmFormatModifierListCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t drmFormatModifierCount;
const uint64_t* pDrmFormatModifiers;
}]], mod.VkStructureType)
mod.VkImageDrmFormatModifierExplicitCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint64_t drmFormatModifier;
uint32_t drmFormatModifierPlaneCount;
const $* pPlaneLayouts;
}]], mod.VkStructureType, mod.VkSubresourceLayout)
mod.VkImageDrmFormatModifierPropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
uint64_t drmFormatModifier;
}]], mod.VkStructureType)
mod.VkDrmFormatModifierProperties2EXT = ffi.typeof([[struct {
uint64_t drmFormatModifier;
uint32_t drmFormatModifierPlaneCount;
$ drmFormatModifierTilingFeatures;
}]], mod.VkFormatFeatureFlags2)
mod.VkDrmFormatModifierPropertiesList2EXT = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t drmFormatModifierCount;
$* pDrmFormatModifierProperties;
}]], mod.VkStructureType, mod.VkDrmFormatModifierProperties2EXT)
mod.PFN_vkGetImageDrmFormatModifierPropertiesEXT = ffi.typeof([[$ (*)($ , $ , $*)]], mod.VkResult, mod.VkDevice, mod.VkImage, mod.VkImageDrmFormatModifierPropertiesEXT)
ffi.cdef([[$ vkGetImageDrmFormatModifierPropertiesEXT($ , $ , $*);]], mod.VkResult, mod.VkDevice, mod.VkImage, mod.VkImageDrmFormatModifierPropertiesEXT)
mod.VkValidationCacheEXT = ffi.typeof([[void*]])
mod.VkValidationCacheHeaderVersionEXT = ffi.typeof([[enum {
VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT,
VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT,
}]])
mod.VkValidationCacheCreateFlagsEXT = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkValidationCacheCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
size_t initialDataSize;
const void* pInitialData;
}]], mod.VkStructureType, mod.VkValidationCacheCreateFlagsEXT)
mod.VkShaderModuleValidationCacheCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ validationCache;
}]], mod.VkStructureType, mod.VkValidationCacheEXT)
mod.PFN_vkCreateValidationCacheEXT = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkValidationCacheCreateInfoEXT, mod.VkAllocationCallbacks, mod.VkValidationCacheEXT)
mod.PFN_vkDestroyValidationCacheEXT = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkValidationCacheEXT, mod.VkAllocationCallbacks)
mod.PFN_vkMergeValidationCachesEXT = ffi.typeof([[$ (*)($ , $ , uint32_t , const $*)]], mod.VkResult, mod.VkDevice, mod.VkValidationCacheEXT, mod.VkValidationCacheEXT)
mod.PFN_vkGetValidationCacheDataEXT = ffi.typeof([[$ (*)($ , $ , size_t*, void*)]], mod.VkResult, mod.VkDevice, mod.VkValidationCacheEXT)
ffi.cdef([[$ vkCreateValidationCacheEXT($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkValidationCacheCreateInfoEXT, mod.VkAllocationCallbacks, mod.VkValidationCacheEXT)
ffi.cdef([[void vkDestroyValidationCacheEXT($ , $ , const $*);]], mod.VkDevice, mod.VkValidationCacheEXT, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkMergeValidationCachesEXT($ , $ , uint32_t , const $*);]], mod.VkResult, mod.VkDevice, mod.VkValidationCacheEXT, mod.VkValidationCacheEXT)
ffi.cdef([[$ vkGetValidationCacheDataEXT($ , $ , size_t*, void*);]], mod.VkResult, mod.VkDevice, mod.VkValidationCacheEXT)
mod.VkDescriptorBindingFlagBitsEXT = ffi.typeof([[$ ]], mod.VkDescriptorBindingFlagBits)
mod.VkDescriptorBindingFlagsEXT = ffi.typeof([[$ ]], mod.VkDescriptorBindingFlags)
mod.VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = ffi.typeof([[$ ]], mod.VkDescriptorSetLayoutBindingFlagsCreateInfo)
mod.VkPhysicalDeviceDescriptorIndexingFeaturesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDeviceDescriptorIndexingFeatures)
mod.VkPhysicalDeviceDescriptorIndexingPropertiesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDeviceDescriptorIndexingProperties)
mod.VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = ffi.typeof([[$ ]], mod.VkDescriptorSetVariableDescriptorCountAllocateInfo)
mod.VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = ffi.typeof([[$ ]], mod.VkDescriptorSetVariableDescriptorCountLayoutSupport)
mod.VkShadingRatePaletteEntryNV = ffi.typeof([[enum {
VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV,
VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV,
VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV,
VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV,
VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV,
VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV,
VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV,
VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV,
VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV,
VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV,
VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV,
VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV,
VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV,
}]])
mod.VkCoarseSampleOrderTypeNV = ffi.typeof([[enum {
VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV,
VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV,
VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV,
VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV,
VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV,
}]])
mod.VkShadingRatePaletteNV = ffi.typeof([[struct {
uint32_t shadingRatePaletteEntryCount;
const $* pShadingRatePaletteEntries;
}]], mod.VkShadingRatePaletteEntryNV)
mod.VkPipelineViewportShadingRateImageStateCreateInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ shadingRateImageEnable;
uint32_t viewportCount;
const $* pShadingRatePalettes;
}]], mod.VkStructureType, mod.VkBool32, mod.VkShadingRatePaletteNV)
mod.VkPhysicalDeviceShadingRateImageFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shadingRateImage;
$ shadingRateCoarseSampleOrder;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceShadingRateImagePropertiesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shadingRateTexelSize;
uint32_t shadingRatePaletteSize;
uint32_t shadingRateMaxCoarseSamples;
}]], mod.VkStructureType, mod.VkExtent2D)
mod.VkCoarseSampleLocationNV = ffi.typeof([[struct {
uint32_t pixelX;
uint32_t pixelY;
uint32_t sample;
}]])
mod.VkCoarseSampleOrderCustomNV = ffi.typeof([[struct {
$ shadingRate;
uint32_t sampleCount;
uint32_t sampleLocationCount;
const $* pSampleLocations;
}]], mod.VkShadingRatePaletteEntryNV, mod.VkCoarseSampleLocationNV)
mod.VkPipelineViewportCoarseSampleOrderStateCreateInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ sampleOrderType;
uint32_t customSampleOrderCount;
const $* pCustomSampleOrders;
}]], mod.VkStructureType, mod.VkCoarseSampleOrderTypeNV, mod.VkCoarseSampleOrderCustomNV)
mod.PFN_vkCmdBindShadingRateImageNV = ffi.typeof([[void (*)($ , $ , $ )]], mod.VkCommandBuffer, mod.VkImageView, mod.VkImageLayout)
mod.PFN_vkCmdSetViewportShadingRatePaletteNV = ffi.typeof([[void (*)($ , uint32_t , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkShadingRatePaletteNV)
mod.PFN_vkCmdSetCoarseSampleOrderNV = ffi.typeof([[void (*)($ , $ , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkCoarseSampleOrderTypeNV, mod.VkCoarseSampleOrderCustomNV)
ffi.cdef([[void vkCmdBindShadingRateImageNV($ , $ , $ );]], mod.VkCommandBuffer, mod.VkImageView, mod.VkImageLayout)
ffi.cdef([[void vkCmdSetViewportShadingRatePaletteNV($ , uint32_t , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkShadingRatePaletteNV)
ffi.cdef([[void vkCmdSetCoarseSampleOrderNV($ , $ , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkCoarseSampleOrderTypeNV, mod.VkCoarseSampleOrderCustomNV)
mod.VkAccelerationStructureNV = ffi.typeof([[void*]])
mod.VkRayTracingShaderGroupTypeKHR = ffi.typeof([[enum {
VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR,
VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV,
VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV,
VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV,
VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR,
}]])
mod.VkRayTracingShaderGroupTypeNV = ffi.typeof([[$ ]], mod.VkRayTracingShaderGroupTypeKHR)
mod.VkGeometryTypeKHR = ffi.typeof([[enum {
VK_GEOMETRY_TYPE_TRIANGLES_KHR,
VK_GEOMETRY_TYPE_AABBS_KHR,
VK_GEOMETRY_TYPE_INSTANCES_KHR,
VK_GEOMETRY_TYPE_SPHERES_NV,
VK_GEOMETRY_TYPE_LINEAR_SWEPT_SPHERES_NV,
VK_GEOMETRY_TYPE_TRIANGLES_NV,
VK_GEOMETRY_TYPE_AABBS_NV,
VK_GEOMETRY_TYPE_MAX_ENUM_KHR,
}]])
mod.VkGeometryTypeNV = ffi.typeof([[$ ]], mod.VkGeometryTypeKHR)
mod.VkAccelerationStructureTypeKHR = ffi.typeof([[enum {
VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR,
VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV,
VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV,
VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR,
}]])
mod.VkAccelerationStructureTypeNV = ffi.typeof([[$ ]], mod.VkAccelerationStructureTypeKHR)
mod.VkCopyAccelerationStructureModeKHR = ffi.typeof([[enum {
VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR,
VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR,
VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV,
VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV,
VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR,
}]])
mod.VkCopyAccelerationStructureModeNV = ffi.typeof([[$ ]], mod.VkCopyAccelerationStructureModeKHR)
mod.VkAccelerationStructureMemoryRequirementsTypeNV = ffi.typeof([[enum {
VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV,
VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV,
VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV,
VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV,
}]])
mod.VkGeometryFlagBitsKHR = ffi.typeof([[enum {
VK_GEOMETRY_OPAQUE_BIT_KHR,
VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,
VK_GEOMETRY_OPAQUE_BIT_NV,
VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV,
VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkGeometryFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkGeometryFlagsNV = ffi.typeof([[$ ]], mod.VkGeometryFlagsKHR)
mod.VkGeometryFlagBitsNV = ffi.typeof([[$ ]], mod.VkGeometryFlagBitsKHR)
mod.VkGeometryInstanceFlagBitsKHR = ffi.typeof([[enum {
VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,
VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_BIT_EXT,
VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_BIT_EXT,
VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV,
VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV,
VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV,
VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV,
VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT,
VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT,
VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkGeometryInstanceFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkGeometryInstanceFlagsNV = ffi.typeof([[$ ]], mod.VkGeometryInstanceFlagsKHR)
mod.VkGeometryInstanceFlagBitsNV = ffi.typeof([[$ ]], mod.VkGeometryInstanceFlagBitsKHR)
mod.VkBuildAccelerationStructureFlagBitsKHR = ffi.typeof([[enum {
VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,
VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV,
VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_BIT_EXT,
VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_BIT_EXT,
VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_BIT_EXT,
VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_BIT_KHR,
VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_CLUSTER_OPACITY_MICROMAPS_BIT_NV,
VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV,
VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV,
VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV,
VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV,
VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV,
VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT,
VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT,
VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT,
VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR,
VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkBuildAccelerationStructureFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkBuildAccelerationStructureFlagsNV = ffi.typeof([[$ ]], mod.VkBuildAccelerationStructureFlagsKHR)
mod.VkBuildAccelerationStructureFlagBitsNV = ffi.typeof([[$ ]], mod.VkBuildAccelerationStructureFlagBitsKHR)
mod.VkRayTracingShaderGroupCreateInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ type;
uint32_t generalShader;
uint32_t closestHitShader;
uint32_t anyHitShader;
uint32_t intersectionShader;
}]], mod.VkStructureType, mod.VkRayTracingShaderGroupTypeKHR)
mod.VkRayTracingPipelineCreateInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
uint32_t stageCount;
const $* pStages;
uint32_t groupCount;
const $* pGroups;
uint32_t maxRecursionDepth;
$ layout;
$ basePipelineHandle;
int32_t basePipelineIndex;
}]], mod.VkStructureType, mod.VkPipelineCreateFlags, mod.VkPipelineShaderStageCreateInfo, mod.VkRayTracingShaderGroupCreateInfoNV, mod.VkPipelineLayout, mod.VkPipeline)
mod.VkGeometryTrianglesNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ vertexData;
$ vertexOffset;
uint32_t vertexCount;
$ vertexStride;
$ vertexFormat;
$ indexData;
$ indexOffset;
uint32_t indexCount;
$ indexType;
$ transformData;
$ transformOffset;
}]], mod.VkStructureType, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkFormat, mod.VkBuffer, mod.VkDeviceSize, mod.VkIndexType, mod.VkBuffer, mod.VkDeviceSize)
mod.VkGeometryAABBNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ aabbData;
uint32_t numAABBs;
uint32_t stride;
$ offset;
}]], mod.VkStructureType, mod.VkBuffer, mod.VkDeviceSize)
mod.VkGeometryDataNV = ffi.typeof([[struct {
$ triangles;
$ aabbs;
}]], mod.VkGeometryTrianglesNV, mod.VkGeometryAABBNV)
mod.VkGeometryNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ geometryType;
$ geometry;
$ flags;
}]], mod.VkStructureType, mod.VkGeometryTypeKHR, mod.VkGeometryDataNV, mod.VkGeometryFlagsKHR)
mod.VkAccelerationStructureInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ type;
$ flags;
uint32_t instanceCount;
uint32_t geometryCount;
const $* pGeometries;
}]], mod.VkStructureType, mod.VkAccelerationStructureTypeNV, mod.VkBuildAccelerationStructureFlagsNV, mod.VkGeometryNV)
mod.VkAccelerationStructureCreateInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ compactedSize;
$ info;
}]], mod.VkStructureType, mod.VkDeviceSize, mod.VkAccelerationStructureInfoNV)
mod.VkBindAccelerationStructureMemoryInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ accelerationStructure;
$ memory;
$ memoryOffset;
uint32_t deviceIndexCount;
const uint32_t* pDeviceIndices;
}]], mod.VkStructureType, mod.VkAccelerationStructureNV, mod.VkDeviceMemory, mod.VkDeviceSize)
mod.VkWriteDescriptorSetAccelerationStructureNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t accelerationStructureCount;
const $* pAccelerationStructures;
}]], mod.VkStructureType, mod.VkAccelerationStructureNV)
mod.VkAccelerationStructureMemoryRequirementsInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ type;
$ accelerationStructure;
}]], mod.VkStructureType, mod.VkAccelerationStructureMemoryRequirementsTypeNV, mod.VkAccelerationStructureNV)
mod.VkPhysicalDeviceRayTracingPropertiesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t shaderGroupHandleSize;
uint32_t maxRecursionDepth;
uint32_t maxShaderGroupStride;
uint32_t shaderGroupBaseAlignment;
uint64_t maxGeometryCount;
uint64_t maxInstanceCount;
uint64_t maxTriangleCount;
uint32_t maxDescriptorSetAccelerationStructures;
}]], mod.VkStructureType)
mod.VkTransformMatrixKHR = ffi.typeof([[struct {
float matrix[4][3];
}]])
mod.VkTransformMatrixNV = ffi.typeof([[$ ]], mod.VkTransformMatrixKHR)
mod.VkAabbPositionsKHR = ffi.typeof([[struct {
float minX;
float minY;
float minZ;
float maxX;
float maxY;
float maxZ;
}]])
mod.VkAabbPositionsNV = ffi.typeof([[$ ]], mod.VkAabbPositionsKHR)
mod.VkAccelerationStructureInstanceKHR = ffi.typeof([[struct {
$ transform;
uint32_t instanceCustomIndex;
uint32_t mask;
uint32_t instanceShaderBindingTableRecordOffset;
$ flags;
uint64_t accelerationStructureReference;
}]], mod.VkTransformMatrixKHR, mod.VkGeometryInstanceFlagsKHR)
mod.VkAccelerationStructureInstanceNV = ffi.typeof([[$ ]], mod.VkAccelerationStructureInstanceKHR)
mod.PFN_vkCreateAccelerationStructureNV = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkAccelerationStructureCreateInfoNV, mod.VkAllocationCallbacks, mod.VkAccelerationStructureNV)
mod.PFN_vkDestroyAccelerationStructureNV = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkAccelerationStructureNV, mod.VkAllocationCallbacks)
mod.PFN_vkGetAccelerationStructureMemoryRequirementsNV = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkDevice, mod.VkAccelerationStructureMemoryRequirementsInfoNV, mod.VkMemoryRequirements2KHR)
mod.PFN_vkBindAccelerationStructureMemoryNV = ffi.typeof([[$ (*)($ , uint32_t , const $*)]], mod.VkResult, mod.VkDevice, mod.VkBindAccelerationStructureMemoryInfoNV)
mod.PFN_vkCmdBuildAccelerationStructureNV = ffi.typeof([[void (*)($ , const $*, $ , $ , $ , $ , $ , $ , $ )]], mod.VkCommandBuffer, mod.VkAccelerationStructureInfoNV, mod.VkBuffer, mod.VkDeviceSize, mod.VkBool32, mod.VkAccelerationStructureNV, mod.VkAccelerationStructureNV, mod.VkBuffer, mod.VkDeviceSize)
mod.PFN_vkCmdCopyAccelerationStructureNV = ffi.typeof([[void (*)($ , $ , $ , $ )]], mod.VkCommandBuffer, mod.VkAccelerationStructureNV, mod.VkAccelerationStructureNV, mod.VkCopyAccelerationStructureModeKHR)
mod.PFN_vkCmdTraceRaysNV = ffi.typeof([[void (*)($ , $ , $ , $ , $ , $ , $ , $ , $ , $ , $ , $ , uint32_t , uint32_t , uint32_t )]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize)
mod.PFN_vkCreateRayTracingPipelinesNV = ffi.typeof([[$ (*)($ , $ , uint32_t , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkPipelineCache, mod.VkRayTracingPipelineCreateInfoNV, mod.VkAllocationCallbacks, mod.VkPipeline)
mod.PFN_vkGetRayTracingShaderGroupHandlesKHR = ffi.typeof([[$ (*)($ , $ , uint32_t , uint32_t , size_t , void*)]], mod.VkResult, mod.VkDevice, mod.VkPipeline)
mod.PFN_vkGetRayTracingShaderGroupHandlesNV = ffi.typeof([[$ (*)($ , $ , uint32_t , uint32_t , size_t , void*)]], mod.VkResult, mod.VkDevice, mod.VkPipeline)
mod.PFN_vkGetAccelerationStructureHandleNV = ffi.typeof([[$ (*)($ , $ , size_t , void*)]], mod.VkResult, mod.VkDevice, mod.VkAccelerationStructureNV)
mod.PFN_vkCmdWriteAccelerationStructuresPropertiesNV = ffi.typeof([[void (*)($ , uint32_t , const $*, $ , $ , uint32_t )]], mod.VkCommandBuffer, mod.VkAccelerationStructureNV, mod.VkQueryType, mod.VkQueryPool)
mod.PFN_vkCompileDeferredNV = ffi.typeof([[$ (*)($ , $ , uint32_t )]], mod.VkResult, mod.VkDevice, mod.VkPipeline)
ffi.cdef([[$ vkCreateAccelerationStructureNV($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkAccelerationStructureCreateInfoNV, mod.VkAllocationCallbacks, mod.VkAccelerationStructureNV)
ffi.cdef([[void vkDestroyAccelerationStructureNV($ , $ , const $*);]], mod.VkDevice, mod.VkAccelerationStructureNV, mod.VkAllocationCallbacks)
ffi.cdef([[void vkGetAccelerationStructureMemoryRequirementsNV($ , const $*, $*);]], mod.VkDevice, mod.VkAccelerationStructureMemoryRequirementsInfoNV, mod.VkMemoryRequirements2KHR)
ffi.cdef([[$ vkBindAccelerationStructureMemoryNV($ , uint32_t , const $*);]], mod.VkResult, mod.VkDevice, mod.VkBindAccelerationStructureMemoryInfoNV)
ffi.cdef([[void vkCmdBuildAccelerationStructureNV($ , const $*, $ , $ , $ , $ , $ , $ , $ );]], mod.VkCommandBuffer, mod.VkAccelerationStructureInfoNV, mod.VkBuffer, mod.VkDeviceSize, mod.VkBool32, mod.VkAccelerationStructureNV, mod.VkAccelerationStructureNV, mod.VkBuffer, mod.VkDeviceSize)
ffi.cdef([[void vkCmdCopyAccelerationStructureNV($ , $ , $ , $ );]], mod.VkCommandBuffer, mod.VkAccelerationStructureNV, mod.VkAccelerationStructureNV, mod.VkCopyAccelerationStructureModeKHR)
ffi.cdef([[void vkCmdTraceRaysNV($ , $ , $ , $ , $ , $ , $ , $ , $ , $ , $ , $ , uint32_t , uint32_t , uint32_t );]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize)
ffi.cdef([[$ vkCreateRayTracingPipelinesNV($ , $ , uint32_t , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkPipelineCache, mod.VkRayTracingPipelineCreateInfoNV, mod.VkAllocationCallbacks, mod.VkPipeline)
ffi.cdef([[$ vkGetRayTracingShaderGroupHandlesKHR($ , $ , uint32_t , uint32_t , size_t , void*);]], mod.VkResult, mod.VkDevice, mod.VkPipeline)
ffi.cdef([[$ vkGetRayTracingShaderGroupHandlesNV($ , $ , uint32_t , uint32_t , size_t , void*);]], mod.VkResult, mod.VkDevice, mod.VkPipeline)
ffi.cdef([[$ vkGetAccelerationStructureHandleNV($ , $ , size_t , void*);]], mod.VkResult, mod.VkDevice, mod.VkAccelerationStructureNV)
ffi.cdef([[void vkCmdWriteAccelerationStructuresPropertiesNV($ , uint32_t , const $*, $ , $ , uint32_t );]], mod.VkCommandBuffer, mod.VkAccelerationStructureNV, mod.VkQueryType, mod.VkQueryPool)
ffi.cdef([[$ vkCompileDeferredNV($ , $ , uint32_t );]], mod.VkResult, mod.VkDevice, mod.VkPipeline)
mod.VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ representativeFragmentTest;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPipelineRepresentativeFragmentTestStateCreateInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ representativeFragmentTestEnable;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceImageViewImageFormatInfoEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ imageViewType;
}]], mod.VkStructureType, mod.VkImageViewType)
mod.VkFilterCubicImageViewImageFormatPropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ filterCubic;
$ filterCubicMinmax;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkQueueGlobalPriorityEXT = ffi.typeof([[$ ]], mod.VkQueueGlobalPriority)
mod.VkDeviceQueueGlobalPriorityCreateInfoEXT = ffi.typeof([[$ ]], mod.VkDeviceQueueGlobalPriorityCreateInfo)
mod.VkImportMemoryHostPointerInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ handleType;
void* pHostPointer;
}]], mod.VkStructureType, mod.VkExternalMemoryHandleTypeFlagBits)
mod.VkMemoryHostPointerPropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t memoryTypeBits;
}]], mod.VkStructureType)
mod.VkPhysicalDeviceExternalMemoryHostPropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ minImportedHostPointerAlignment;
}]], mod.VkStructureType, mod.VkDeviceSize)
mod.PFN_vkGetMemoryHostPointerPropertiesEXT = ffi.typeof([[$ (*)($ , $ , const void*, $*)]], mod.VkResult, mod.VkDevice, mod.VkExternalMemoryHandleTypeFlagBits, mod.VkMemoryHostPointerPropertiesEXT)
ffi.cdef([[$ vkGetMemoryHostPointerPropertiesEXT($ , $ , const void*, $*);]], mod.VkResult, mod.VkDevice, mod.VkExternalMemoryHandleTypeFlagBits, mod.VkMemoryHostPointerPropertiesEXT)
mod.PFN_vkCmdWriteBufferMarkerAMD = ffi.typeof([[void (*)($ , $ , $ , $ , uint32_t )]], mod.VkCommandBuffer, mod.VkPipelineStageFlagBits, mod.VkBuffer, mod.VkDeviceSize)
mod.PFN_vkCmdWriteBufferMarker2AMD = ffi.typeof([[void (*)($ , $ , $ , $ , uint32_t )]], mod.VkCommandBuffer, mod.VkPipelineStageFlags2, mod.VkBuffer, mod.VkDeviceSize)
ffi.cdef([[void vkCmdWriteBufferMarkerAMD($ , $ , $ , $ , uint32_t );]], mod.VkCommandBuffer, mod.VkPipelineStageFlagBits, mod.VkBuffer, mod.VkDeviceSize)
ffi.cdef([[void vkCmdWriteBufferMarker2AMD($ , $ , $ , $ , uint32_t );]], mod.VkCommandBuffer, mod.VkPipelineStageFlags2, mod.VkBuffer, mod.VkDeviceSize)
mod.VkPipelineCompilerControlFlagBitsAMD = ffi.typeof([[enum {
VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD,
}]])
mod.VkPipelineCompilerControlFlagsAMD = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPipelineCompilerControlCreateInfoAMD = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ compilerControlFlags;
}]], mod.VkStructureType, mod.VkPipelineCompilerControlFlagsAMD)
mod.VkTimeDomainEXT = ffi.typeof([[$ ]], mod.VkTimeDomainKHR)
mod.VkCalibratedTimestampInfoEXT = ffi.typeof([[$ ]], mod.VkCalibratedTimestampInfoKHR)
mod.PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = ffi.typeof([[$ (*)($ , uint32_t*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkTimeDomainKHR)
mod.PFN_vkGetCalibratedTimestampsEXT = ffi.typeof([[$ (*)($ , uint32_t , const $*, uint64_t*, uint64_t*)]], mod.VkResult, mod.VkDevice, mod.VkCalibratedTimestampInfoKHR)
ffi.cdef([[$ vkGetPhysicalDeviceCalibrateableTimeDomainsEXT($ , uint32_t*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkTimeDomainKHR)
ffi.cdef([[$ vkGetCalibratedTimestampsEXT($ , uint32_t , const $*, uint64_t*, uint64_t*);]], mod.VkResult, mod.VkDevice, mod.VkCalibratedTimestampInfoKHR)
mod.VkPhysicalDeviceShaderCorePropertiesAMD = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t shaderEngineCount;
uint32_t shaderArraysPerEngineCount;
uint32_t computeUnitsPerShaderArray;
uint32_t simdPerComputeUnit;
uint32_t wavefrontsPerSimd;
uint32_t wavefrontSize;
uint32_t sgprsPerSimd;
uint32_t minSgprAllocation;
uint32_t maxSgprAllocation;
uint32_t sgprAllocationGranularity;
uint32_t vgprsPerSimd;
uint32_t minVgprAllocation;
uint32_t maxVgprAllocation;
uint32_t vgprAllocationGranularity;
}]], mod.VkStructureType)
mod.VkMemoryOverallocationBehaviorAMD = ffi.typeof([[enum {
VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD,
VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD,
VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD,
VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD,
}]])
mod.VkDeviceMemoryOverallocationCreateInfoAMD = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ overallocationBehavior;
}]], mod.VkStructureType, mod.VkMemoryOverallocationBehaviorAMD)
mod.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t maxVertexAttribDivisor;
}]], mod.VkStructureType)
mod.VkVertexInputBindingDivisorDescriptionEXT = ffi.typeof([[$ ]], mod.VkVertexInputBindingDivisorDescription)
mod.VkPipelineVertexInputDivisorStateCreateInfoEXT = ffi.typeof([[$ ]], mod.VkPipelineVertexInputDivisorStateCreateInfo)
mod.VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDeviceVertexAttributeDivisorFeatures)
mod.VkPipelineCreationFeedbackFlagBitsEXT = ffi.typeof([[$ ]], mod.VkPipelineCreationFeedbackFlagBits)
mod.VkPipelineCreationFeedbackFlagsEXT = ffi.typeof([[$ ]], mod.VkPipelineCreationFeedbackFlags)
mod.VkPipelineCreationFeedbackCreateInfoEXT = ffi.typeof([[$ ]], mod.VkPipelineCreationFeedbackCreateInfo)
mod.VkPipelineCreationFeedbackEXT = ffi.typeof([[$ ]], mod.VkPipelineCreationFeedback)
mod.VkPhysicalDeviceComputeShaderDerivativesFeaturesNV = ffi.typeof([[$ ]], mod.VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR)
mod.VkPhysicalDeviceMeshShaderFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ taskShader;
$ meshShader;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceMeshShaderPropertiesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t maxDrawMeshTasksCount;
uint32_t maxTaskWorkGroupInvocations;
uint32_t maxTaskWorkGroupSize[3];
uint32_t maxTaskTotalMemorySize;
uint32_t maxTaskOutputCount;
uint32_t maxMeshWorkGroupInvocations;
uint32_t maxMeshWorkGroupSize[3];
uint32_t maxMeshTotalMemorySize;
uint32_t maxMeshOutputVertices;
uint32_t maxMeshOutputPrimitives;
uint32_t maxMeshMultiviewViewCount;
uint32_t meshOutputPerVertexGranularity;
uint32_t meshOutputPerPrimitiveGranularity;
}]], mod.VkStructureType)
mod.VkDrawMeshTasksIndirectCommandNV = ffi.typeof([[struct {
uint32_t taskCount;
uint32_t firstTask;
}]])
mod.PFN_vkCmdDrawMeshTasksNV = ffi.typeof([[void (*)($ , uint32_t , uint32_t )]], mod.VkCommandBuffer)
mod.PFN_vkCmdDrawMeshTasksIndirectNV = ffi.typeof([[void (*)($ , $ , $ , uint32_t , uint32_t )]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize)
mod.PFN_vkCmdDrawMeshTasksIndirectCountNV = ffi.typeof([[void (*)($ , $ , $ , $ , $ , uint32_t , uint32_t )]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkBuffer, mod.VkDeviceSize)
ffi.cdef([[void vkCmdDrawMeshTasksNV($ , uint32_t , uint32_t );]], mod.VkCommandBuffer)
ffi.cdef([[void vkCmdDrawMeshTasksIndirectNV($ , $ , $ , uint32_t , uint32_t );]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize)
ffi.cdef([[void vkCmdDrawMeshTasksIndirectCountNV($ , $ , $ , $ , $ , uint32_t , uint32_t );]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkBuffer, mod.VkDeviceSize)
mod.VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV = ffi.typeof([[$ ]], mod.VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR)
mod.VkPhysicalDeviceShaderImageFootprintFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ imageFootprint;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPipelineViewportExclusiveScissorStateCreateInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t exclusiveScissorCount;
const $* pExclusiveScissors;
}]], mod.VkStructureType, mod.VkRect2D)
mod.VkPhysicalDeviceExclusiveScissorFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ exclusiveScissor;
}]], mod.VkStructureType, mod.VkBool32)
mod.PFN_vkCmdSetExclusiveScissorEnableNV = ffi.typeof([[void (*)($ , uint32_t , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkBool32)
mod.PFN_vkCmdSetExclusiveScissorNV = ffi.typeof([[void (*)($ , uint32_t , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkRect2D)
ffi.cdef([[void vkCmdSetExclusiveScissorEnableNV($ , uint32_t , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetExclusiveScissorNV($ , uint32_t , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkRect2D)
mod.VkQueueFamilyCheckpointPropertiesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ checkpointExecutionStageMask;
}]], mod.VkStructureType, mod.VkPipelineStageFlags)
mod.VkCheckpointDataNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ stage;
void* pCheckpointMarker;
}]], mod.VkStructureType, mod.VkPipelineStageFlagBits)
mod.VkQueueFamilyCheckpointProperties2NV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ checkpointExecutionStageMask;
}]], mod.VkStructureType, mod.VkPipelineStageFlags2)
mod.VkCheckpointData2NV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ stage;
void* pCheckpointMarker;
}]], mod.VkStructureType, mod.VkPipelineStageFlags2)
mod.PFN_vkCmdSetCheckpointNV = ffi.typeof([[void (*)($ , const void*)]], mod.VkCommandBuffer)
mod.PFN_vkGetQueueCheckpointDataNV = ffi.typeof([[void (*)($ , uint32_t*, $*)]], mod.VkQueue, mod.VkCheckpointDataNV)
mod.PFN_vkGetQueueCheckpointData2NV = ffi.typeof([[void (*)($ , uint32_t*, $*)]], mod.VkQueue, mod.VkCheckpointData2NV)
ffi.cdef([[void vkCmdSetCheckpointNV($ , const void*);]], mod.VkCommandBuffer)
ffi.cdef([[void vkGetQueueCheckpointDataNV($ , uint32_t*, $*);]], mod.VkQueue, mod.VkCheckpointDataNV)
ffi.cdef([[void vkGetQueueCheckpointData2NV($ , uint32_t*, $*);]], mod.VkQueue, mod.VkCheckpointData2NV)
mod.VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderIntegerFunctions2;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPerformanceConfigurationINTEL = ffi.typeof([[void*]])
mod.VkPerformanceConfigurationTypeINTEL = ffi.typeof([[enum {
VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL,
VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL,
}]])
mod.VkQueryPoolSamplingModeINTEL = ffi.typeof([[enum {
VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL,
VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL,
}]])
mod.VkPerformanceOverrideTypeINTEL = ffi.typeof([[enum {
VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL,
VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL,
VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL,
}]])
mod.VkPerformanceParameterTypeINTEL = ffi.typeof([[enum {
VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL,
VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL,
VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL,
}]])
mod.VkPerformanceValueTypeINTEL = ffi.typeof([[enum {
VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL,
VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL,
VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL,
VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL,
VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL,
VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL,
}]])
mod.VkPerformanceValueDataINTEL = ffi.typeof([[union {
uint32_t value32;
uint64_t value64;
float valueFloat;
$ valueBool;
const char* valueString;
}]], mod.VkBool32)
mod.VkPerformanceValueINTEL = ffi.typeof([[struct {
$ type;
$ data;
}]], mod.VkPerformanceValueTypeINTEL, mod.VkPerformanceValueDataINTEL)
mod.VkInitializePerformanceApiInfoINTEL = ffi.typeof([[struct {
$ sType;
const void* pNext;
void* pUserData;
}]], mod.VkStructureType)
mod.VkQueryPoolPerformanceQueryCreateInfoINTEL = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ performanceCountersSampling;
}]], mod.VkStructureType, mod.VkQueryPoolSamplingModeINTEL)
mod.VkQueryPoolCreateInfoINTEL = ffi.typeof([[$ ]], mod.VkQueryPoolPerformanceQueryCreateInfoINTEL)
mod.VkPerformanceMarkerInfoINTEL = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint64_t marker;
}]], mod.VkStructureType)
mod.VkPerformanceStreamMarkerInfoINTEL = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t marker;
}]], mod.VkStructureType)
mod.VkPerformanceOverrideInfoINTEL = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ type;
$ enable;
uint64_t parameter;
}]], mod.VkStructureType, mod.VkPerformanceOverrideTypeINTEL, mod.VkBool32)
mod.VkPerformanceConfigurationAcquireInfoINTEL = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ type;
}]], mod.VkStructureType, mod.VkPerformanceConfigurationTypeINTEL)
mod.PFN_vkInitializePerformanceApiINTEL = ffi.typeof([[$ (*)($ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkInitializePerformanceApiInfoINTEL)
mod.PFN_vkUninitializePerformanceApiINTEL = ffi.typeof([[void (*)($ )]], mod.VkDevice)
mod.PFN_vkCmdSetPerformanceMarkerINTEL = ffi.typeof([[$ (*)($ , const $*)]], mod.VkResult, mod.VkCommandBuffer, mod.VkPerformanceMarkerInfoINTEL)
mod.PFN_vkCmdSetPerformanceStreamMarkerINTEL = ffi.typeof([[$ (*)($ , const $*)]], mod.VkResult, mod.VkCommandBuffer, mod.VkPerformanceStreamMarkerInfoINTEL)
mod.PFN_vkCmdSetPerformanceOverrideINTEL = ffi.typeof([[$ (*)($ , const $*)]], mod.VkResult, mod.VkCommandBuffer, mod.VkPerformanceOverrideInfoINTEL)
mod.PFN_vkAcquirePerformanceConfigurationINTEL = ffi.typeof([[$ (*)($ , const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkPerformanceConfigurationAcquireInfoINTEL, mod.VkPerformanceConfigurationINTEL)
mod.PFN_vkReleasePerformanceConfigurationINTEL = ffi.typeof([[$ (*)($ , $ )]], mod.VkResult, mod.VkDevice, mod.VkPerformanceConfigurationINTEL)
mod.PFN_vkQueueSetPerformanceConfigurationINTEL = ffi.typeof([[$ (*)($ , $ )]], mod.VkResult, mod.VkQueue, mod.VkPerformanceConfigurationINTEL)
mod.PFN_vkGetPerformanceParameterINTEL = ffi.typeof([[$ (*)($ , $ , $*)]], mod.VkResult, mod.VkDevice, mod.VkPerformanceParameterTypeINTEL, mod.VkPerformanceValueINTEL)
ffi.cdef([[$ vkInitializePerformanceApiINTEL($ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkInitializePerformanceApiInfoINTEL)
ffi.cdef([[void vkUninitializePerformanceApiINTEL($ );]], mod.VkDevice)
ffi.cdef([[$ vkCmdSetPerformanceMarkerINTEL($ , const $*);]], mod.VkResult, mod.VkCommandBuffer, mod.VkPerformanceMarkerInfoINTEL)
ffi.cdef([[$ vkCmdSetPerformanceStreamMarkerINTEL($ , const $*);]], mod.VkResult, mod.VkCommandBuffer, mod.VkPerformanceStreamMarkerInfoINTEL)
ffi.cdef([[$ vkCmdSetPerformanceOverrideINTEL($ , const $*);]], mod.VkResult, mod.VkCommandBuffer, mod.VkPerformanceOverrideInfoINTEL)
ffi.cdef([[$ vkAcquirePerformanceConfigurationINTEL($ , const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkPerformanceConfigurationAcquireInfoINTEL, mod.VkPerformanceConfigurationINTEL)
ffi.cdef([[$ vkReleasePerformanceConfigurationINTEL($ , $ );]], mod.VkResult, mod.VkDevice, mod.VkPerformanceConfigurationINTEL)
ffi.cdef([[$ vkQueueSetPerformanceConfigurationINTEL($ , $ );]], mod.VkResult, mod.VkQueue, mod.VkPerformanceConfigurationINTEL)
ffi.cdef([[$ vkGetPerformanceParameterINTEL($ , $ , $*);]], mod.VkResult, mod.VkDevice, mod.VkPerformanceParameterTypeINTEL, mod.VkPerformanceValueINTEL)
mod.VkPhysicalDevicePCIBusInfoPropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t pciDomain;
uint32_t pciBus;
uint32_t pciDevice;
uint32_t pciFunction;
}]], mod.VkStructureType)
mod.VkDisplayNativeHdrSurfaceCapabilitiesAMD = ffi.typeof([[struct {
$ sType;
void* pNext;
$ localDimmingSupport;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkSwapchainDisplayNativeHdrCreateInfoAMD = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ localDimmingEnable;
}]], mod.VkStructureType, mod.VkBool32)
mod.PFN_vkSetLocalDimmingAMD = ffi.typeof([[void (*)($ , $ , $ )]], mod.VkDevice, mod.VkSwapchainKHR, mod.VkBool32)
ffi.cdef([[void vkSetLocalDimmingAMD($ , $ , $ );]], mod.VkDevice, mod.VkSwapchainKHR, mod.VkBool32)
mod.VkPhysicalDeviceFragmentDensityMapFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ fragmentDensityMap;
$ fragmentDensityMapDynamic;
$ fragmentDensityMapNonSubsampledImages;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceFragmentDensityMapPropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ minFragmentDensityTexelSize;
$ maxFragmentDensityTexelSize;
$ fragmentDensityInvocations;
}]], mod.VkStructureType, mod.VkExtent2D, mod.VkExtent2D, mod.VkBool32)
mod.VkRenderPassFragmentDensityMapCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ fragmentDensityMapAttachment;
}]], mod.VkStructureType, mod.VkAttachmentReference)
mod.VkRenderingFragmentDensityMapAttachmentInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ imageView;
$ imageLayout;
}]], mod.VkStructureType, mod.VkImageView, mod.VkImageLayout)
mod.VkPhysicalDeviceScalarBlockLayoutFeaturesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDeviceScalarBlockLayoutFeatures)
mod.VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDeviceSubgroupSizeControlFeatures)
mod.VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDeviceSubgroupSizeControlProperties)
mod.VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = ffi.typeof([[$ ]], mod.VkPipelineShaderStageRequiredSubgroupSizeCreateInfo)
mod.VkShaderCorePropertiesFlagBitsAMD = ffi.typeof([[enum {
VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD,
}]])
mod.VkShaderCorePropertiesFlagsAMD = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPhysicalDeviceShaderCoreProperties2AMD = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderCoreFeatures;
uint32_t activeComputeUnitCount;
}]], mod.VkStructureType, mod.VkShaderCorePropertiesFlagsAMD)
mod.VkPhysicalDeviceCoherentMemoryFeaturesAMD = ffi.typeof([[struct {
$ sType;
void* pNext;
$ deviceCoherentMemory;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderImageInt64Atomics;
$ sparseImageInt64Atomics;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceMemoryBudgetPropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ heapBudget[16U];
$ heapUsage[16U];
}]], mod.VkStructureType, mod.VkDeviceSize, mod.VkDeviceSize)
mod.VkPhysicalDeviceMemoryPriorityFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ memoryPriority;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkMemoryPriorityAllocateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
float priority;
}]], mod.VkStructureType)
mod.VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ dedicatedAllocationImageAliasing;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceBufferDeviceAddressFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ bufferDeviceAddress;
$ bufferDeviceAddressCaptureReplay;
$ bufferDeviceAddressMultiDevice;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceBufferAddressFeaturesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDeviceBufferDeviceAddressFeaturesEXT)
mod.VkBufferDeviceAddressInfoEXT = ffi.typeof([[$ ]], mod.VkBufferDeviceAddressInfo)
mod.VkBufferDeviceAddressCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ deviceAddress;
}]], mod.VkStructureType, mod.VkDeviceAddress)
mod.PFN_vkGetBufferDeviceAddressEXT = ffi.typeof([[$ (*)($ , const $*)]], mod.VkDeviceAddress, mod.VkDevice, mod.VkBufferDeviceAddressInfo)
ffi.cdef([[$ vkGetBufferDeviceAddressEXT($ , const $*);]], mod.VkDeviceAddress, mod.VkDevice, mod.VkBufferDeviceAddressInfo)
mod.VkToolPurposeFlagBitsEXT = ffi.typeof([[$ ]], mod.VkToolPurposeFlagBits)
mod.VkToolPurposeFlagsEXT = ffi.typeof([[$ ]], mod.VkToolPurposeFlags)
mod.VkPhysicalDeviceToolPropertiesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDeviceToolProperties)
mod.PFN_vkGetPhysicalDeviceToolPropertiesEXT = ffi.typeof([[$ (*)($ , uint32_t*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkPhysicalDeviceToolProperties)
ffi.cdef([[$ vkGetPhysicalDeviceToolPropertiesEXT($ , uint32_t*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkPhysicalDeviceToolProperties)
mod.VkImageStencilUsageCreateInfoEXT = ffi.typeof([[$ ]], mod.VkImageStencilUsageCreateInfo)
mod.VkValidationFeatureEnableEXT = ffi.typeof([[enum {
VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT,
VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT,
VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT,
VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT,
VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT,
VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT,
}]])
mod.VkValidationFeatureDisableEXT = ffi.typeof([[enum {
VK_VALIDATION_FEATURE_DISABLE_ALL_EXT,
VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT,
VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT,
VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT,
VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT,
VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT,
VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT,
VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT,
VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT,
}]])
mod.VkValidationFeaturesEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t enabledValidationFeatureCount;
const $* pEnabledValidationFeatures;
uint32_t disabledValidationFeatureCount;
const $* pDisabledValidationFeatures;
}]], mod.VkStructureType, mod.VkValidationFeatureEnableEXT, mod.VkValidationFeatureDisableEXT)
mod.VkComponentTypeNV = ffi.typeof([[$ ]], mod.VkComponentTypeKHR)
mod.VkScopeNV = ffi.typeof([[$ ]], mod.VkScopeKHR)
mod.VkCooperativeMatrixPropertiesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t MSize;
uint32_t NSize;
uint32_t KSize;
$ AType;
$ BType;
$ CType;
$ DType;
$ scope;
}]], mod.VkStructureType, mod.VkComponentTypeNV, mod.VkComponentTypeNV, mod.VkComponentTypeNV, mod.VkComponentTypeNV, mod.VkScopeNV)
mod.VkPhysicalDeviceCooperativeMatrixFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ cooperativeMatrix;
$ cooperativeMatrixRobustBufferAccess;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceCooperativeMatrixPropertiesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ cooperativeMatrixSupportedStages;
}]], mod.VkStructureType, mod.VkShaderStageFlags)
mod.PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = ffi.typeof([[$ (*)($ , uint32_t*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkCooperativeMatrixPropertiesNV)
ffi.cdef([[$ vkGetPhysicalDeviceCooperativeMatrixPropertiesNV($ , uint32_t*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkCooperativeMatrixPropertiesNV)
mod.VkCoverageReductionModeNV = ffi.typeof([[enum {
VK_COVERAGE_REDUCTION_MODE_MERGE_NV,
VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV,
VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV,
}]])
mod.VkPipelineCoverageReductionStateCreateFlagsNV = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPhysicalDeviceCoverageReductionModeFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ coverageReductionMode;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPipelineCoverageReductionStateCreateInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ coverageReductionMode;
}]], mod.VkStructureType, mod.VkPipelineCoverageReductionStateCreateFlagsNV, mod.VkCoverageReductionModeNV)
mod.VkFramebufferMixedSamplesCombinationNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ coverageReductionMode;
$ rasterizationSamples;
$ depthStencilSamples;
$ colorSamples;
}]], mod.VkStructureType, mod.VkCoverageReductionModeNV, mod.VkSampleCountFlagBits, mod.VkSampleCountFlags, mod.VkSampleCountFlags)
mod.PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = ffi.typeof([[$ (*)($ , uint32_t*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkFramebufferMixedSamplesCombinationNV)
ffi.cdef([[$ vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV($ , uint32_t*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkFramebufferMixedSamplesCombinationNV)
mod.VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ fragmentShaderSampleInterlock;
$ fragmentShaderPixelInterlock;
$ fragmentShaderShadingRateInterlock;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceYcbcrImageArraysFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ ycbcrImageArrays;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkProvokingVertexModeEXT = ffi.typeof([[enum {
VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT,
VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT,
VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT,
}]])
mod.VkPhysicalDeviceProvokingVertexFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ provokingVertexLast;
$ transformFeedbackPreservesProvokingVertex;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceProvokingVertexPropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ provokingVertexModePerPipeline;
$ transformFeedbackPreservesTriangleFanProvokingVertex;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkPipelineRasterizationProvokingVertexStateCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ provokingVertexMode;
}]], mod.VkStructureType, mod.VkProvokingVertexModeEXT)
mod.VkHeadlessSurfaceCreateFlagsEXT = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkHeadlessSurfaceCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
}]], mod.VkStructureType, mod.VkHeadlessSurfaceCreateFlagsEXT)
mod.PFN_vkCreateHeadlessSurfaceEXT = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkInstance, mod.VkHeadlessSurfaceCreateInfoEXT, mod.VkAllocationCallbacks, mod.VkSurfaceKHR)
ffi.cdef([[$ vkCreateHeadlessSurfaceEXT($ , const $*, const $*, $*);]], mod.VkResult, mod.VkInstance, mod.VkHeadlessSurfaceCreateInfoEXT, mod.VkAllocationCallbacks, mod.VkSurfaceKHR)
mod.VkLineRasterizationModeEXT = ffi.typeof([[$ ]], mod.VkLineRasterizationMode)
mod.VkPhysicalDeviceLineRasterizationFeaturesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDeviceLineRasterizationFeatures)
mod.VkPhysicalDeviceLineRasterizationPropertiesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDeviceLineRasterizationProperties)
mod.VkPipelineRasterizationLineStateCreateInfoEXT = ffi.typeof([[$ ]], mod.VkPipelineRasterizationLineStateCreateInfo)
mod.PFN_vkCmdSetLineStippleEXT = ffi.typeof([[void (*)($ , uint32_t , uint16_t )]], mod.VkCommandBuffer)
ffi.cdef([[void vkCmdSetLineStippleEXT($ , uint32_t , uint16_t );]], mod.VkCommandBuffer)
mod.VkPhysicalDeviceShaderAtomicFloatFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderBufferFloat32Atomics;
$ shaderBufferFloat32AtomicAdd;
$ shaderBufferFloat64Atomics;
$ shaderBufferFloat64AtomicAdd;
$ shaderSharedFloat32Atomics;
$ shaderSharedFloat32AtomicAdd;
$ shaderSharedFloat64Atomics;
$ shaderSharedFloat64AtomicAdd;
$ shaderImageFloat32Atomics;
$ shaderImageFloat32AtomicAdd;
$ sparseImageFloat32Atomics;
$ sparseImageFloat32AtomicAdd;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceHostQueryResetFeaturesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDeviceHostQueryResetFeatures)
mod.PFN_vkResetQueryPoolEXT = ffi.typeof([[void (*)($ , $ , uint32_t , uint32_t )]], mod.VkDevice, mod.VkQueryPool)
ffi.cdef([[void vkResetQueryPoolEXT($ , $ , uint32_t , uint32_t );]], mod.VkDevice, mod.VkQueryPool)
mod.VkPhysicalDeviceIndexTypeUint8FeaturesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDeviceIndexTypeUint8Features)
mod.VkPhysicalDeviceExtendedDynamicStateFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ extendedDynamicState;
}]], mod.VkStructureType, mod.VkBool32)
mod.PFN_vkCmdSetCullModeEXT = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkCullModeFlags)
mod.PFN_vkCmdSetFrontFaceEXT = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkFrontFace)
mod.PFN_vkCmdSetPrimitiveTopologyEXT = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkPrimitiveTopology)
mod.PFN_vkCmdSetViewportWithCountEXT = ffi.typeof([[void (*)($ , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkViewport)
mod.PFN_vkCmdSetScissorWithCountEXT = ffi.typeof([[void (*)($ , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkRect2D)
mod.PFN_vkCmdBindVertexBuffers2EXT = ffi.typeof([[void (*)($ , uint32_t , uint32_t , const $*, const $*, const $*, const $*)]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkDeviceSize)
mod.PFN_vkCmdSetDepthTestEnableEXT = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkBool32)
mod.PFN_vkCmdSetDepthWriteEnableEXT = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkBool32)
mod.PFN_vkCmdSetDepthCompareOpEXT = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkCompareOp)
mod.PFN_vkCmdSetDepthBoundsTestEnableEXT = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkBool32)
mod.PFN_vkCmdSetStencilTestEnableEXT = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkBool32)
mod.PFN_vkCmdSetStencilOpEXT = ffi.typeof([[void (*)($ , $ , $ , $ , $ , $ )]], mod.VkCommandBuffer, mod.VkStencilFaceFlags, mod.VkStencilOp, mod.VkStencilOp, mod.VkStencilOp, mod.VkCompareOp)
ffi.cdef([[void vkCmdSetCullModeEXT($ , $ );]], mod.VkCommandBuffer, mod.VkCullModeFlags)
ffi.cdef([[void vkCmdSetFrontFaceEXT($ , $ );]], mod.VkCommandBuffer, mod.VkFrontFace)
ffi.cdef([[void vkCmdSetPrimitiveTopologyEXT($ , $ );]], mod.VkCommandBuffer, mod.VkPrimitiveTopology)
ffi.cdef([[void vkCmdSetViewportWithCountEXT($ , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkViewport)
ffi.cdef([[void vkCmdSetScissorWithCountEXT($ , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkRect2D)
ffi.cdef([[void vkCmdBindVertexBuffers2EXT($ , uint32_t , uint32_t , const $*, const $*, const $*, const $*);]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkDeviceSize)
ffi.cdef([[void vkCmdSetDepthTestEnableEXT($ , $ );]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetDepthWriteEnableEXT($ , $ );]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetDepthCompareOpEXT($ , $ );]], mod.VkCommandBuffer, mod.VkCompareOp)
ffi.cdef([[void vkCmdSetDepthBoundsTestEnableEXT($ , $ );]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetStencilTestEnableEXT($ , $ );]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetStencilOpEXT($ , $ , $ , $ , $ , $ );]], mod.VkCommandBuffer, mod.VkStencilFaceFlags, mod.VkStencilOp, mod.VkStencilOp, mod.VkStencilOp, mod.VkCompareOp)
mod.VkHostImageCopyFlagBitsEXT = ffi.typeof([[$ ]], mod.VkHostImageCopyFlagBits)
mod.VkHostImageCopyFlagsEXT = ffi.typeof([[$ ]], mod.VkHostImageCopyFlags)
mod.VkPhysicalDeviceHostImageCopyFeaturesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDeviceHostImageCopyFeatures)
mod.VkPhysicalDeviceHostImageCopyPropertiesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDeviceHostImageCopyProperties)
mod.VkMemoryToImageCopyEXT = ffi.typeof([[$ ]], mod.VkMemoryToImageCopy)
mod.VkImageToMemoryCopyEXT = ffi.typeof([[$ ]], mod.VkImageToMemoryCopy)
mod.VkCopyMemoryToImageInfoEXT = ffi.typeof([[$ ]], mod.VkCopyMemoryToImageInfo)
mod.VkCopyImageToMemoryInfoEXT = ffi.typeof([[$ ]], mod.VkCopyImageToMemoryInfo)
mod.VkCopyImageToImageInfoEXT = ffi.typeof([[$ ]], mod.VkCopyImageToImageInfo)
mod.VkHostImageLayoutTransitionInfoEXT = ffi.typeof([[$ ]], mod.VkHostImageLayoutTransitionInfo)
mod.VkSubresourceHostMemcpySizeEXT = ffi.typeof([[$ ]], mod.VkSubresourceHostMemcpySize)
mod.VkHostImageCopyDevicePerformanceQueryEXT = ffi.typeof([[$ ]], mod.VkHostImageCopyDevicePerformanceQuery)
mod.VkSubresourceLayout2EXT = ffi.typeof([[$ ]], mod.VkSubresourceLayout2)
mod.VkImageSubresource2EXT = ffi.typeof([[$ ]], mod.VkImageSubresource2)
mod.PFN_vkCopyMemoryToImageEXT = ffi.typeof([[$ (*)($ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkCopyMemoryToImageInfo)
mod.PFN_vkCopyImageToMemoryEXT = ffi.typeof([[$ (*)($ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkCopyImageToMemoryInfo)
mod.PFN_vkCopyImageToImageEXT = ffi.typeof([[$ (*)($ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkCopyImageToImageInfo)
mod.PFN_vkTransitionImageLayoutEXT = ffi.typeof([[$ (*)($ , uint32_t , const $*)]], mod.VkResult, mod.VkDevice, mod.VkHostImageLayoutTransitionInfo)
mod.PFN_vkGetImageSubresourceLayout2EXT = ffi.typeof([[void (*)($ , $ , const $*, $*)]], mod.VkDevice, mod.VkImage, mod.VkImageSubresource2, mod.VkSubresourceLayout2)
ffi.cdef([[$ vkCopyMemoryToImageEXT($ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkCopyMemoryToImageInfo)
ffi.cdef([[$ vkCopyImageToMemoryEXT($ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkCopyImageToMemoryInfo)
ffi.cdef([[$ vkCopyImageToImageEXT($ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkCopyImageToImageInfo)
ffi.cdef([[$ vkTransitionImageLayoutEXT($ , uint32_t , const $*);]], mod.VkResult, mod.VkDevice, mod.VkHostImageLayoutTransitionInfo)
ffi.cdef([[void vkGetImageSubresourceLayout2EXT($ , $ , const $*, $*);]], mod.VkDevice, mod.VkImage, mod.VkImageSubresource2, mod.VkSubresourceLayout2)
mod.VkPhysicalDeviceMapMemoryPlacedFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ memoryMapPlaced;
$ memoryMapRangePlaced;
$ memoryUnmapReserve;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceMapMemoryPlacedPropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ minPlacedMemoryMapAlignment;
}]], mod.VkStructureType, mod.VkDeviceSize)
mod.VkMemoryMapPlacedInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
void* pPlacedAddress;
}]], mod.VkStructureType)
mod.VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderBufferFloat16Atomics;
$ shaderBufferFloat16AtomicAdd;
$ shaderBufferFloat16AtomicMinMax;
$ shaderBufferFloat32AtomicMinMax;
$ shaderBufferFloat64AtomicMinMax;
$ shaderSharedFloat16Atomics;
$ shaderSharedFloat16AtomicAdd;
$ shaderSharedFloat16AtomicMinMax;
$ shaderSharedFloat32AtomicMinMax;
$ shaderSharedFloat64AtomicMinMax;
$ shaderImageFloat32AtomicMinMax;
$ sparseImageFloat32AtomicMinMax;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPresentScalingFlagBitsEXT = ffi.typeof([[$ ]], mod.VkPresentScalingFlagBitsKHR)
mod.VkPresentScalingFlagsEXT = ffi.typeof([[$ ]], mod.VkPresentScalingFlagsKHR)
mod.VkPresentGravityFlagBitsEXT = ffi.typeof([[$ ]], mod.VkPresentGravityFlagBitsKHR)
mod.VkPresentGravityFlagsEXT = ffi.typeof([[$ ]], mod.VkPresentGravityFlagsKHR)
mod.VkSurfacePresentModeEXT = ffi.typeof([[$ ]], mod.VkSurfacePresentModeKHR)
mod.VkSurfacePresentScalingCapabilitiesEXT = ffi.typeof([[$ ]], mod.VkSurfacePresentScalingCapabilitiesKHR)
mod.VkSurfacePresentModeCompatibilityEXT = ffi.typeof([[$ ]], mod.VkSurfacePresentModeCompatibilityKHR)
mod.VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR)
mod.VkSwapchainPresentFenceInfoEXT = ffi.typeof([[$ ]], mod.VkSwapchainPresentFenceInfoKHR)
mod.VkSwapchainPresentModesCreateInfoEXT = ffi.typeof([[$ ]], mod.VkSwapchainPresentModesCreateInfoKHR)
mod.VkSwapchainPresentModeInfoEXT = ffi.typeof([[$ ]], mod.VkSwapchainPresentModeInfoKHR)
mod.VkSwapchainPresentScalingCreateInfoEXT = ffi.typeof([[$ ]], mod.VkSwapchainPresentScalingCreateInfoKHR)
mod.VkReleaseSwapchainImagesInfoEXT = ffi.typeof([[$ ]], mod.VkReleaseSwapchainImagesInfoKHR)
mod.PFN_vkReleaseSwapchainImagesEXT = ffi.typeof([[$ (*)($ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkReleaseSwapchainImagesInfoKHR)
ffi.cdef([[$ vkReleaseSwapchainImagesEXT($ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkReleaseSwapchainImagesInfoKHR)
mod.VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures)
mod.VkIndirectCommandsLayoutNV = ffi.typeof([[void*]])
mod.VkIndirectCommandsTokenTypeNV = ffi.typeof([[enum {
VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV,
}]])
mod.VkIndirectStateFlagBitsNV = ffi.typeof([[enum {
VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV,
VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV,
}]])
mod.VkIndirectStateFlagsNV = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkIndirectCommandsLayoutUsageFlagBitsNV = ffi.typeof([[enum {
VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV,
VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV,
VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV,
VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV,
}]])
mod.VkIndirectCommandsLayoutUsageFlagsNV = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t maxGraphicsShaderGroupCount;
uint32_t maxIndirectSequenceCount;
uint32_t maxIndirectCommandsTokenCount;
uint32_t maxIndirectCommandsStreamCount;
uint32_t maxIndirectCommandsTokenOffset;
uint32_t maxIndirectCommandsStreamStride;
uint32_t minSequencesCountBufferOffsetAlignment;
uint32_t minSequencesIndexBufferOffsetAlignment;
uint32_t minIndirectCommandsBufferOffsetAlignment;
}]], mod.VkStructureType)
mod.VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ deviceGeneratedCommands;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkGraphicsShaderGroupCreateInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t stageCount;
const $* pStages;
const $* pVertexInputState;
const $* pTessellationState;
}]], mod.VkStructureType, mod.VkPipelineShaderStageCreateInfo, mod.VkPipelineVertexInputStateCreateInfo, mod.VkPipelineTessellationStateCreateInfo)
mod.VkGraphicsPipelineShaderGroupsCreateInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t groupCount;
const $* pGroups;
uint32_t pipelineCount;
const $* pPipelines;
}]], mod.VkStructureType, mod.VkGraphicsShaderGroupCreateInfoNV, mod.VkPipeline)
mod.VkBindShaderGroupIndirectCommandNV = ffi.typeof([[struct {
uint32_t groupIndex;
}]])
mod.VkBindIndexBufferIndirectCommandNV = ffi.typeof([[struct {
$ bufferAddress;
uint32_t size;
$ indexType;
}]], mod.VkDeviceAddress, mod.VkIndexType)
mod.VkBindVertexBufferIndirectCommandNV = ffi.typeof([[struct {
$ bufferAddress;
uint32_t size;
uint32_t stride;
}]], mod.VkDeviceAddress)
mod.VkSetStateFlagsIndirectCommandNV = ffi.typeof([[struct {
uint32_t data;
}]])
mod.VkIndirectCommandsStreamNV = ffi.typeof([[struct {
$ buffer;
$ offset;
}]], mod.VkBuffer, mod.VkDeviceSize)
mod.VkIndirectCommandsLayoutTokenNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ tokenType;
uint32_t stream;
uint32_t offset;
uint32_t vertexBindingUnit;
$ vertexDynamicStride;
$ pushconstantPipelineLayout;
$ pushconstantShaderStageFlags;
uint32_t pushconstantOffset;
uint32_t pushconstantSize;
$ indirectStateFlags;
uint32_t indexTypeCount;
const $* pIndexTypes;
const uint32_t* pIndexTypeValues;
}]], mod.VkStructureType, mod.VkIndirectCommandsTokenTypeNV, mod.VkBool32, mod.VkPipelineLayout, mod.VkShaderStageFlags, mod.VkIndirectStateFlagsNV, mod.VkIndexType)
mod.VkIndirectCommandsLayoutCreateInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ pipelineBindPoint;
uint32_t tokenCount;
const $* pTokens;
uint32_t streamCount;
const uint32_t* pStreamStrides;
}]], mod.VkStructureType, mod.VkIndirectCommandsLayoutUsageFlagsNV, mod.VkPipelineBindPoint, mod.VkIndirectCommandsLayoutTokenNV)
mod.VkGeneratedCommandsInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ pipelineBindPoint;
$ pipeline;
$ indirectCommandsLayout;
uint32_t streamCount;
const $* pStreams;
uint32_t sequencesCount;
$ preprocessBuffer;
$ preprocessOffset;
$ preprocessSize;
$ sequencesCountBuffer;
$ sequencesCountOffset;
$ sequencesIndexBuffer;
$ sequencesIndexOffset;
}]], mod.VkStructureType, mod.VkPipelineBindPoint, mod.VkPipeline, mod.VkIndirectCommandsLayoutNV, mod.VkIndirectCommandsStreamNV, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkBuffer, mod.VkDeviceSize, mod.VkBuffer, mod.VkDeviceSize)
mod.VkGeneratedCommandsMemoryRequirementsInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ pipelineBindPoint;
$ pipeline;
$ indirectCommandsLayout;
uint32_t maxSequencesCount;
}]], mod.VkStructureType, mod.VkPipelineBindPoint, mod.VkPipeline, mod.VkIndirectCommandsLayoutNV)
mod.PFN_vkGetGeneratedCommandsMemoryRequirementsNV = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkDevice, mod.VkGeneratedCommandsMemoryRequirementsInfoNV, mod.VkMemoryRequirements2)
mod.PFN_vkCmdPreprocessGeneratedCommandsNV = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkGeneratedCommandsInfoNV)
mod.PFN_vkCmdExecuteGeneratedCommandsNV = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkCommandBuffer, mod.VkBool32, mod.VkGeneratedCommandsInfoNV)
mod.PFN_vkCmdBindPipelineShaderGroupNV = ffi.typeof([[void (*)($ , $ , $ , uint32_t )]], mod.VkCommandBuffer, mod.VkPipelineBindPoint, mod.VkPipeline)
mod.PFN_vkCreateIndirectCommandsLayoutNV = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkIndirectCommandsLayoutCreateInfoNV, mod.VkAllocationCallbacks, mod.VkIndirectCommandsLayoutNV)
mod.PFN_vkDestroyIndirectCommandsLayoutNV = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkIndirectCommandsLayoutNV, mod.VkAllocationCallbacks)
ffi.cdef([[void vkGetGeneratedCommandsMemoryRequirementsNV($ , const $*, $*);]], mod.VkDevice, mod.VkGeneratedCommandsMemoryRequirementsInfoNV, mod.VkMemoryRequirements2)
ffi.cdef([[void vkCmdPreprocessGeneratedCommandsNV($ , const $*);]], mod.VkCommandBuffer, mod.VkGeneratedCommandsInfoNV)
ffi.cdef([[void vkCmdExecuteGeneratedCommandsNV($ , $ , const $*);]], mod.VkCommandBuffer, mod.VkBool32, mod.VkGeneratedCommandsInfoNV)
ffi.cdef([[void vkCmdBindPipelineShaderGroupNV($ , $ , $ , uint32_t );]], mod.VkCommandBuffer, mod.VkPipelineBindPoint, mod.VkPipeline)
ffi.cdef([[$ vkCreateIndirectCommandsLayoutNV($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkIndirectCommandsLayoutCreateInfoNV, mod.VkAllocationCallbacks, mod.VkIndirectCommandsLayoutNV)
ffi.cdef([[void vkDestroyIndirectCommandsLayoutNV($ , $ , const $*);]], mod.VkDevice, mod.VkIndirectCommandsLayoutNV, mod.VkAllocationCallbacks)
mod.VkPhysicalDeviceInheritedViewportScissorFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ inheritedViewportScissor2D;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkCommandBufferInheritanceViewportScissorInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ viewportScissor2D;
uint32_t viewportDepthCount;
const $* pViewportDepths;
}]], mod.VkStructureType, mod.VkBool32, mod.VkViewport)
mod.VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ texelBufferAlignment;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDeviceTexelBufferAlignmentProperties)
mod.VkRenderPassTransformBeginInfoQCOM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ transform;
}]], mod.VkStructureType, mod.VkSurfaceTransformFlagBitsKHR)
mod.VkCommandBufferInheritanceRenderPassTransformInfoQCOM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ transform;
$ renderArea;
}]], mod.VkStructureType, mod.VkSurfaceTransformFlagBitsKHR, mod.VkRect2D)
mod.VkDepthBiasRepresentationEXT = ffi.typeof([[enum {
VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT,
VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT,
VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT,
VK_DEPTH_BIAS_REPRESENTATION_MAX_ENUM_EXT,
}]])
mod.VkPhysicalDeviceDepthBiasControlFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ depthBiasControl;
$ leastRepresentableValueForceUnormRepresentation;
$ floatRepresentation;
$ depthBiasExact;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkDepthBiasInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
float depthBiasConstantFactor;
float depthBiasClamp;
float depthBiasSlopeFactor;
}]], mod.VkStructureType)
mod.VkDepthBiasRepresentationInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ depthBiasRepresentation;
$ depthBiasExact;
}]], mod.VkStructureType, mod.VkDepthBiasRepresentationEXT, mod.VkBool32)
mod.PFN_vkCmdSetDepthBias2EXT = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkDepthBiasInfoEXT)
ffi.cdef([[void vkCmdSetDepthBias2EXT($ , const $*);]], mod.VkCommandBuffer, mod.VkDepthBiasInfoEXT)
mod.VkDeviceMemoryReportEventTypeEXT = ffi.typeof([[enum {
VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT,
VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT,
VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT,
VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT,
VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT,
VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT,
}]])
mod.VkDeviceMemoryReportFlagsEXT = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPhysicalDeviceDeviceMemoryReportFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ deviceMemoryReport;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkDeviceMemoryReportCallbackDataEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ flags;
$ type;
uint64_t memoryObjectId;
$ size;
$ objectType;
uint64_t objectHandle;
uint32_t heapIndex;
}]], mod.VkStructureType, mod.VkDeviceMemoryReportFlagsEXT, mod.VkDeviceMemoryReportEventTypeEXT, mod.VkDeviceSize, mod.VkObjectType)
mod.PFN_vkDeviceMemoryReportCallbackEXT = ffi.typeof([[void (*)(const $*, void*)]], mod.VkDeviceMemoryReportCallbackDataEXT)
mod.VkDeviceDeviceMemoryReportCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ pfnUserCallback;
void* pUserData;
}]], mod.VkStructureType, mod.VkDeviceMemoryReportFlagsEXT, mod.PFN_vkDeviceMemoryReportCallbackEXT)
mod.PFN_vkAcquireDrmDisplayEXT = ffi.typeof([[$ (*)($ , int32_t , $ )]], mod.VkResult, mod.VkPhysicalDevice, mod.VkDisplayKHR)
mod.PFN_vkGetDrmDisplayEXT = ffi.typeof([[$ (*)($ , int32_t , uint32_t , $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkDisplayKHR)
ffi.cdef([[$ vkAcquireDrmDisplayEXT($ , int32_t , $ );]], mod.VkResult, mod.VkPhysicalDevice, mod.VkDisplayKHR)
ffi.cdef([[$ vkGetDrmDisplayEXT($ , int32_t , uint32_t , $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkDisplayKHR)
mod.VkPhysicalDeviceRobustness2FeaturesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDeviceRobustness2FeaturesKHR)
mod.VkPhysicalDeviceRobustness2PropertiesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDeviceRobustness2PropertiesKHR)
mod.VkSamplerCustomBorderColorCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ customBorderColor;
$ format;
}]], mod.VkStructureType, mod.VkClearColorValue, mod.VkFormat)
mod.VkPhysicalDeviceCustomBorderColorPropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t maxCustomBorderColorSamplers;
}]], mod.VkStructureType)
mod.VkPhysicalDeviceCustomBorderColorFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ customBorderColors;
$ customBorderColorWithoutFormat;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDevicePresentBarrierFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ presentBarrier;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkSurfaceCapabilitiesPresentBarrierNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ presentBarrierSupported;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkSwapchainPresentBarrierCreateInfoNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ presentBarrierEnable;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPrivateDataSlotEXT = ffi.typeof([[$ ]], mod.VkPrivateDataSlot)
mod.VkPrivateDataSlotCreateFlagsEXT = ffi.typeof([[$ ]], mod.VkPrivateDataSlotCreateFlags)
mod.VkPhysicalDevicePrivateDataFeaturesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDevicePrivateDataFeatures)
mod.VkDevicePrivateDataCreateInfoEXT = ffi.typeof([[$ ]], mod.VkDevicePrivateDataCreateInfo)
mod.VkPrivateDataSlotCreateInfoEXT = ffi.typeof([[$ ]], mod.VkPrivateDataSlotCreateInfo)
mod.PFN_vkCreatePrivateDataSlotEXT = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkPrivateDataSlotCreateInfo, mod.VkAllocationCallbacks, mod.VkPrivateDataSlot)
mod.PFN_vkDestroyPrivateDataSlotEXT = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkPrivateDataSlot, mod.VkAllocationCallbacks)
mod.PFN_vkSetPrivateDataEXT = ffi.typeof([[$ (*)($ , $ , uint64_t , $ , uint64_t )]], mod.VkResult, mod.VkDevice, mod.VkObjectType, mod.VkPrivateDataSlot)
mod.PFN_vkGetPrivateDataEXT = ffi.typeof([[void (*)($ , $ , uint64_t , $ , uint64_t*)]], mod.VkDevice, mod.VkObjectType, mod.VkPrivateDataSlot)
ffi.cdef([[$ vkCreatePrivateDataSlotEXT($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkPrivateDataSlotCreateInfo, mod.VkAllocationCallbacks, mod.VkPrivateDataSlot)
ffi.cdef([[void vkDestroyPrivateDataSlotEXT($ , $ , const $*);]], mod.VkDevice, mod.VkPrivateDataSlot, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkSetPrivateDataEXT($ , $ , uint64_t , $ , uint64_t );]], mod.VkResult, mod.VkDevice, mod.VkObjectType, mod.VkPrivateDataSlot)
ffi.cdef([[void vkGetPrivateDataEXT($ , $ , uint64_t , $ , uint64_t*);]], mod.VkDevice, mod.VkObjectType, mod.VkPrivateDataSlot)
mod.VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDevicePipelineCreationCacheControlFeatures)
mod.VkDeviceDiagnosticsConfigFlagBitsNV = ffi.typeof([[enum {
VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV,
VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV,
VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV,
VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV,
VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV,
}]])
mod.VkDeviceDiagnosticsConfigFlagsNV = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPhysicalDeviceDiagnosticsConfigFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ diagnosticsConfig;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkDeviceDiagnosticsConfigCreateInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
}]], mod.VkStructureType, mod.VkDeviceDiagnosticsConfigFlagsNV)
mod.VkTileShadingRenderPassFlagBitsQCOM = ffi.typeof([[enum {
VK_TILE_SHADING_RENDER_PASS_ENABLE_BIT_QCOM,
VK_TILE_SHADING_RENDER_PASS_PER_TILE_EXECUTION_BIT_QCOM,
VK_TILE_SHADING_RENDER_PASS_FLAG_BITS_MAX_ENUM_QCOM,
}]])
mod.VkTileShadingRenderPassFlagsQCOM = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPhysicalDeviceTileShadingFeaturesQCOM = ffi.typeof([[struct {
$ sType;
void* pNext;
$ tileShading;
$ tileShadingFragmentStage;
$ tileShadingColorAttachments;
$ tileShadingDepthAttachments;
$ tileShadingStencilAttachments;
$ tileShadingInputAttachments;
$ tileShadingSampledAttachments;
$ tileShadingPerTileDraw;
$ tileShadingPerTileDispatch;
$ tileShadingDispatchTile;
$ tileShadingApron;
$ tileShadingAnisotropicApron;
$ tileShadingAtomicOps;
$ tileShadingImageProcessing;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceTileShadingPropertiesQCOM = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t maxApronSize;
$ preferNonCoherent;
$ tileGranularity;
$ maxTileShadingRate;
}]], mod.VkStructureType, mod.VkBool32, mod.VkExtent2D, mod.VkExtent2D)
mod.VkRenderPassTileShadingCreateInfoQCOM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ tileApronSize;
}]], mod.VkStructureType, mod.VkTileShadingRenderPassFlagsQCOM, mod.VkExtent2D)
mod.VkPerTileBeginInfoQCOM = ffi.typeof([[struct {
$ sType;
const void* pNext;
}]], mod.VkStructureType)
mod.VkPerTileEndInfoQCOM = ffi.typeof([[struct {
$ sType;
const void* pNext;
}]], mod.VkStructureType)
mod.VkDispatchTileInfoQCOM = ffi.typeof([[struct {
$ sType;
const void* pNext;
}]], mod.VkStructureType)
mod.PFN_vkCmdDispatchTileQCOM = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkDispatchTileInfoQCOM)
mod.PFN_vkCmdBeginPerTileExecutionQCOM = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkPerTileBeginInfoQCOM)
mod.PFN_vkCmdEndPerTileExecutionQCOM = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkPerTileEndInfoQCOM)
ffi.cdef([[void vkCmdDispatchTileQCOM($ , const $*);]], mod.VkCommandBuffer, mod.VkDispatchTileInfoQCOM)
ffi.cdef([[void vkCmdBeginPerTileExecutionQCOM($ , const $*);]], mod.VkCommandBuffer, mod.VkPerTileBeginInfoQCOM)
ffi.cdef([[void vkCmdEndPerTileExecutionQCOM($ , const $*);]], mod.VkCommandBuffer, mod.VkPerTileEndInfoQCOM)
mod.VkQueryLowLatencySupportNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
void* pQueriedLowLatencyData;
}]], mod.VkStructureType)
mod.VkAccelerationStructureKHR = ffi.typeof([[void*]])
mod.VkPhysicalDeviceDescriptorBufferPropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ combinedImageSamplerDescriptorSingleArray;
$ bufferlessPushDescriptors;
$ allowSamplerImageViewPostSubmitCreation;
$ descriptorBufferOffsetAlignment;
uint32_t maxDescriptorBufferBindings;
uint32_t maxResourceDescriptorBufferBindings;
uint32_t maxSamplerDescriptorBufferBindings;
uint32_t maxEmbeddedImmutableSamplerBindings;
uint32_t maxEmbeddedImmutableSamplers;
size_t bufferCaptureReplayDescriptorDataSize;
size_t imageCaptureReplayDescriptorDataSize;
size_t imageViewCaptureReplayDescriptorDataSize;
size_t samplerCaptureReplayDescriptorDataSize;
size_t accelerationStructureCaptureReplayDescriptorDataSize;
size_t samplerDescriptorSize;
size_t combinedImageSamplerDescriptorSize;
size_t sampledImageDescriptorSize;
size_t storageImageDescriptorSize;
size_t uniformTexelBufferDescriptorSize;
size_t robustUniformTexelBufferDescriptorSize;
size_t storageTexelBufferDescriptorSize;
size_t robustStorageTexelBufferDescriptorSize;
size_t uniformBufferDescriptorSize;
size_t robustUniformBufferDescriptorSize;
size_t storageBufferDescriptorSize;
size_t robustStorageBufferDescriptorSize;
size_t inputAttachmentDescriptorSize;
size_t accelerationStructureDescriptorSize;
$ maxSamplerDescriptorBufferRange;
$ maxResourceDescriptorBufferRange;
$ samplerDescriptorBufferAddressSpaceSize;
$ resourceDescriptorBufferAddressSpaceSize;
$ descriptorBufferAddressSpaceSize;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkDeviceSize)
mod.VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
size_t combinedImageSamplerDensityMapDescriptorSize;
}]], mod.VkStructureType)
mod.VkPhysicalDeviceDescriptorBufferFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ descriptorBuffer;
$ descriptorBufferCaptureReplay;
$ descriptorBufferImageLayoutIgnored;
$ descriptorBufferPushDescriptors;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkDescriptorAddressInfoEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ address;
$ range;
$ format;
}]], mod.VkStructureType, mod.VkDeviceAddress, mod.VkDeviceSize, mod.VkFormat)
mod.VkDescriptorBufferBindingInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ address;
$ usage;
}]], mod.VkStructureType, mod.VkDeviceAddress, mod.VkBufferUsageFlags)
mod.VkDescriptorBufferBindingPushDescriptorBufferHandleEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ buffer;
}]], mod.VkStructureType, mod.VkBuffer)
mod.VkDescriptorDataEXT = ffi.typeof([[union {
const $* pSampler;
const $* pCombinedImageSampler;
const $* pInputAttachmentImage;
const $* pSampledImage;
const $* pStorageImage;
const $* pUniformTexelBuffer;
const $* pStorageTexelBuffer;
const $* pUniformBuffer;
const $* pStorageBuffer;
$ accelerationStructure;
}]], mod.VkSampler, mod.VkDescriptorImageInfo, mod.VkDescriptorImageInfo, mod.VkDescriptorImageInfo, mod.VkDescriptorImageInfo, mod.VkDescriptorAddressInfoEXT, mod.VkDescriptorAddressInfoEXT, mod.VkDescriptorAddressInfoEXT, mod.VkDescriptorAddressInfoEXT, mod.VkDeviceAddress)
mod.VkDescriptorGetInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ type;
$ data;
}]], mod.VkStructureType, mod.VkDescriptorType, mod.VkDescriptorDataEXT)
mod.VkBufferCaptureDescriptorDataInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ buffer;
}]], mod.VkStructureType, mod.VkBuffer)
mod.VkImageCaptureDescriptorDataInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ image;
}]], mod.VkStructureType, mod.VkImage)
mod.VkImageViewCaptureDescriptorDataInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ imageView;
}]], mod.VkStructureType, mod.VkImageView)
mod.VkSamplerCaptureDescriptorDataInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ sampler;
}]], mod.VkStructureType, mod.VkSampler)
mod.VkOpaqueCaptureDescriptorDataCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
const void* opaqueCaptureDescriptorData;
}]], mod.VkStructureType)
mod.VkAccelerationStructureCaptureDescriptorDataInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ accelerationStructure;
$ accelerationStructureNV;
}]], mod.VkStructureType, mod.VkAccelerationStructureKHR, mod.VkAccelerationStructureNV)
mod.PFN_vkGetDescriptorSetLayoutSizeEXT = ffi.typeof([[void (*)($ , $ , $*)]], mod.VkDevice, mod.VkDescriptorSetLayout, mod.VkDeviceSize)
mod.PFN_vkGetDescriptorSetLayoutBindingOffsetEXT = ffi.typeof([[void (*)($ , $ , uint32_t , $*)]], mod.VkDevice, mod.VkDescriptorSetLayout, mod.VkDeviceSize)
mod.PFN_vkGetDescriptorEXT = ffi.typeof([[void (*)($ , const $*, size_t , void*)]], mod.VkDevice, mod.VkDescriptorGetInfoEXT)
mod.PFN_vkCmdBindDescriptorBuffersEXT = ffi.typeof([[void (*)($ , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkDescriptorBufferBindingInfoEXT)
mod.PFN_vkCmdSetDescriptorBufferOffsetsEXT = ffi.typeof([[void (*)($ , $ , $ , uint32_t , uint32_t , const uint32_t*, const $*)]], mod.VkCommandBuffer, mod.VkPipelineBindPoint, mod.VkPipelineLayout, mod.VkDeviceSize)
mod.PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT = ffi.typeof([[void (*)($ , $ , $ , uint32_t )]], mod.VkCommandBuffer, mod.VkPipelineBindPoint, mod.VkPipelineLayout)
mod.PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT = ffi.typeof([[$ (*)($ , const $*, void*)]], mod.VkResult, mod.VkDevice, mod.VkBufferCaptureDescriptorDataInfoEXT)
mod.PFN_vkGetImageOpaqueCaptureDescriptorDataEXT = ffi.typeof([[$ (*)($ , const $*, void*)]], mod.VkResult, mod.VkDevice, mod.VkImageCaptureDescriptorDataInfoEXT)
mod.PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT = ffi.typeof([[$ (*)($ , const $*, void*)]], mod.VkResult, mod.VkDevice, mod.VkImageViewCaptureDescriptorDataInfoEXT)
mod.PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT = ffi.typeof([[$ (*)($ , const $*, void*)]], mod.VkResult, mod.VkDevice, mod.VkSamplerCaptureDescriptorDataInfoEXT)
mod.PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = ffi.typeof([[$ (*)($ , const $*, void*)]], mod.VkResult, mod.VkDevice, mod.VkAccelerationStructureCaptureDescriptorDataInfoEXT)
ffi.cdef([[void vkGetDescriptorSetLayoutSizeEXT($ , $ , $*);]], mod.VkDevice, mod.VkDescriptorSetLayout, mod.VkDeviceSize)
ffi.cdef([[void vkGetDescriptorSetLayoutBindingOffsetEXT($ , $ , uint32_t , $*);]], mod.VkDevice, mod.VkDescriptorSetLayout, mod.VkDeviceSize)
ffi.cdef([[void vkGetDescriptorEXT($ , const $*, size_t , void*);]], mod.VkDevice, mod.VkDescriptorGetInfoEXT)
ffi.cdef([[void vkCmdBindDescriptorBuffersEXT($ , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkDescriptorBufferBindingInfoEXT)
ffi.cdef([[void vkCmdSetDescriptorBufferOffsetsEXT($ , $ , $ , uint32_t , uint32_t , const uint32_t*, const $*);]], mod.VkCommandBuffer, mod.VkPipelineBindPoint, mod.VkPipelineLayout, mod.VkDeviceSize)
ffi.cdef([[void vkCmdBindDescriptorBufferEmbeddedSamplersEXT($ , $ , $ , uint32_t );]], mod.VkCommandBuffer, mod.VkPipelineBindPoint, mod.VkPipelineLayout)
ffi.cdef([[$ vkGetBufferOpaqueCaptureDescriptorDataEXT($ , const $*, void*);]], mod.VkResult, mod.VkDevice, mod.VkBufferCaptureDescriptorDataInfoEXT)
ffi.cdef([[$ vkGetImageOpaqueCaptureDescriptorDataEXT($ , const $*, void*);]], mod.VkResult, mod.VkDevice, mod.VkImageCaptureDescriptorDataInfoEXT)
ffi.cdef([[$ vkGetImageViewOpaqueCaptureDescriptorDataEXT($ , const $*, void*);]], mod.VkResult, mod.VkDevice, mod.VkImageViewCaptureDescriptorDataInfoEXT)
ffi.cdef([[$ vkGetSamplerOpaqueCaptureDescriptorDataEXT($ , const $*, void*);]], mod.VkResult, mod.VkDevice, mod.VkSamplerCaptureDescriptorDataInfoEXT)
ffi.cdef([[$ vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT($ , const $*, void*);]], mod.VkResult, mod.VkDevice, mod.VkAccelerationStructureCaptureDescriptorDataInfoEXT)
mod.VkGraphicsPipelineLibraryFlagBitsEXT = ffi.typeof([[enum {
VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT,
VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT,
VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT,
VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT,
VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT,
}]])
mod.VkGraphicsPipelineLibraryFlagsEXT = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ graphicsPipelineLibrary;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ graphicsPipelineLibraryFastLinking;
$ graphicsPipelineLibraryIndependentInterpolationDecoration;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkGraphicsPipelineLibraryCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
}]], mod.VkStructureType, mod.VkGraphicsPipelineLibraryFlagsEXT)
mod.VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderEarlyAndLateFragmentTests;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkFragmentShadingRateTypeNV = ffi.typeof([[enum {
VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV,
VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV,
VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV,
}]])
mod.VkFragmentShadingRateNV = ffi.typeof([[enum {
VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV,
VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV,
VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV,
VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV,
VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV,
VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV,
VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV,
VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV,
VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV,
VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV,
VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV,
VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV,
VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV,
}]])
mod.VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ fragmentShadingRateEnums;
$ supersampleFragmentShadingRates;
$ noInvocationFragmentShadingRates;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ maxFragmentShadingRateInvocationCount;
}]], mod.VkStructureType, mod.VkSampleCountFlagBits)
mod.VkPipelineFragmentShadingRateEnumStateCreateInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ shadingRateType;
$ shadingRate;
$ combinerOps[2];
}]], mod.VkStructureType, mod.VkFragmentShadingRateTypeNV, mod.VkFragmentShadingRateNV, mod.VkFragmentShadingRateCombinerOpKHR)
mod.PFN_vkCmdSetFragmentShadingRateEnumNV = ffi.typeof([[void (*)($ , $ , const $[2])]], mod.VkCommandBuffer, mod.VkFragmentShadingRateNV, mod.VkFragmentShadingRateCombinerOpKHR)
ffi.cdef([[void vkCmdSetFragmentShadingRateEnumNV($ , $ , const $[2]);]], mod.VkCommandBuffer, mod.VkFragmentShadingRateNV, mod.VkFragmentShadingRateCombinerOpKHR)
mod.VkAccelerationStructureMotionInstanceTypeNV = ffi.typeof([[enum {
VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV,
VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV,
VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV,
VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV,
}]])
mod.VkAccelerationStructureMotionInfoFlagsNV = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkAccelerationStructureMotionInstanceFlagsNV = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkDeviceOrHostAddressConstKHR = ffi.typeof([[union {
$ deviceAddress;
const void* hostAddress;
}]], mod.VkDeviceAddress)
mod.VkAccelerationStructureGeometryMotionTrianglesDataNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ vertexData;
}]], mod.VkStructureType, mod.VkDeviceOrHostAddressConstKHR)
mod.VkAccelerationStructureMotionInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t maxInstances;
$ flags;
}]], mod.VkStructureType, mod.VkAccelerationStructureMotionInfoFlagsNV)
mod.VkAccelerationStructureMatrixMotionInstanceNV = ffi.typeof([[struct {
$ transformT0;
$ transformT1;
uint32_t instanceCustomIndex;
uint32_t mask;
uint32_t instanceShaderBindingTableRecordOffset;
$ flags;
uint64_t accelerationStructureReference;
}]], mod.VkTransformMatrixKHR, mod.VkTransformMatrixKHR, mod.VkGeometryInstanceFlagsKHR)
mod.VkSRTDataNV = ffi.typeof([[struct {
float sx;
float a;
float b;
float pvx;
float sy;
float c;
float pvy;
float sz;
float pvz;
float qx;
float qy;
float qz;
float qw;
float tx;
float ty;
float tz;
}]])
mod.VkAccelerationStructureSRTMotionInstanceNV = ffi.typeof([[struct {
$ transformT0;
$ transformT1;
uint32_t instanceCustomIndex;
uint32_t mask;
uint32_t instanceShaderBindingTableRecordOffset;
$ flags;
uint64_t accelerationStructureReference;
}]], mod.VkSRTDataNV, mod.VkSRTDataNV, mod.VkGeometryInstanceFlagsKHR)
mod.VkAccelerationStructureMotionInstanceDataNV = ffi.typeof([[union {
$ staticInstance;
$ matrixMotionInstance;
$ srtMotionInstance;
}]], mod.VkAccelerationStructureInstanceKHR, mod.VkAccelerationStructureMatrixMotionInstanceNV, mod.VkAccelerationStructureSRTMotionInstanceNV)
mod.VkAccelerationStructureMotionInstanceNV = ffi.typeof([[struct {
$ type;
$ flags;
$ data;
}]], mod.VkAccelerationStructureMotionInstanceTypeNV, mod.VkAccelerationStructureMotionInstanceFlagsNV, mod.VkAccelerationStructureMotionInstanceDataNV)
mod.VkPhysicalDeviceRayTracingMotionBlurFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ rayTracingMotionBlur;
$ rayTracingMotionBlurPipelineTraceRaysIndirect;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ ycbcr2plane444Formats;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceFragmentDensityMap2FeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ fragmentDensityMapDeferred;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceFragmentDensityMap2PropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ subsampledLoads;
$ subsampledCoarseReconstructionEarlyAccess;
uint32_t maxSubsampledArrayLayers;
uint32_t maxDescriptorSetSubsampledSamplers;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkCopyCommandTransformInfoQCOM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ transform;
}]], mod.VkStructureType, mod.VkSurfaceTransformFlagBitsKHR)
mod.VkPhysicalDeviceImageRobustnessFeaturesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDeviceImageRobustnessFeatures)
mod.VkImageCompressionFlagBitsEXT = ffi.typeof([[enum {
VK_IMAGE_COMPRESSION_DEFAULT_EXT,
VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT,
VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT,
VK_IMAGE_COMPRESSION_DISABLED_EXT,
VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT,
}]])
mod.VkImageCompressionFlagsEXT = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkImageCompressionFixedRateFlagBitsEXT = ffi.typeof([[enum {
VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT,
VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT,
VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT,
VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT,
VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT,
VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT,
VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT,
VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT,
VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT,
VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT,
VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT,
VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT,
VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT,
VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT,
VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT,
VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT,
VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT,
VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT,
VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT,
VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT,
VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT,
VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT,
VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT,
VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT,
VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT,
VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT,
}]])
mod.VkImageCompressionFixedRateFlagsEXT = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPhysicalDeviceImageCompressionControlFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ imageCompressionControl;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkImageCompressionControlEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
uint32_t compressionControlPlaneCount;
$* pFixedRateFlags;
}]], mod.VkStructureType, mod.VkImageCompressionFlagsEXT, mod.VkImageCompressionFixedRateFlagsEXT)
mod.VkImageCompressionPropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ imageCompressionFlags;
$ imageCompressionFixedRateFlags;
}]], mod.VkStructureType, mod.VkImageCompressionFlagsEXT, mod.VkImageCompressionFixedRateFlagsEXT)
mod.VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ attachmentFeedbackLoopLayout;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDevice4444FormatsFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ formatA4R4G4B4;
$ formatA4B4G4R4;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkDeviceFaultAddressTypeEXT = ffi.typeof([[enum {
VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT,
VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT,
VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT,
VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT,
VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT,
VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT,
VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT,
VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT,
}]])
mod.VkDeviceFaultVendorBinaryHeaderVersionEXT = ffi.typeof([[enum {
VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT,
VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT,
}]])
mod.VkPhysicalDeviceFaultFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ deviceFault;
$ deviceFaultVendorBinary;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkDeviceFaultCountsEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t addressInfoCount;
uint32_t vendorInfoCount;
$ vendorBinarySize;
}]], mod.VkStructureType, mod.VkDeviceSize)
mod.VkDeviceFaultAddressInfoEXT = ffi.typeof([[struct {
$ addressType;
$ reportedAddress;
$ addressPrecision;
}]], mod.VkDeviceFaultAddressTypeEXT, mod.VkDeviceAddress, mod.VkDeviceSize)
mod.VkDeviceFaultVendorInfoEXT = ffi.typeof([[struct {
char description[256U];
uint64_t vendorFaultCode;
uint64_t vendorFaultData;
}]])
mod.VkDeviceFaultInfoEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
char description[256U];
$* pAddressInfos;
$* pVendorInfos;
void* pVendorBinaryData;
}]], mod.VkStructureType, mod.VkDeviceFaultAddressInfoEXT, mod.VkDeviceFaultVendorInfoEXT)
mod.VkDeviceFaultVendorBinaryHeaderVersionOneEXT = ffi.typeof([[struct {
uint32_t headerSize;
$ headerVersion;
uint32_t vendorID;
uint32_t deviceID;
uint32_t driverVersion;
uint8_t pipelineCacheUUID[16U];
uint32_t applicationNameOffset;
uint32_t applicationVersion;
uint32_t engineNameOffset;
uint32_t engineVersion;
uint32_t apiVersion;
}]], mod.VkDeviceFaultVendorBinaryHeaderVersionEXT)
mod.PFN_vkGetDeviceFaultInfoEXT = ffi.typeof([[$ (*)($ , $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkDeviceFaultCountsEXT, mod.VkDeviceFaultInfoEXT)
ffi.cdef([[$ vkGetDeviceFaultInfoEXT($ , $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkDeviceFaultCountsEXT, mod.VkDeviceFaultInfoEXT)
mod.VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ rasterizationOrderColorAttachmentAccess;
$ rasterizationOrderDepthAttachmentAccess;
$ rasterizationOrderStencilAttachmentAccess;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = ffi.typeof([[$ ]], mod.VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT)
mod.VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ formatRgba10x6WithoutYCbCrSampler;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ mutableDescriptorType;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE = ffi.typeof([[$ ]], mod.VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT)
mod.VkMutableDescriptorTypeListEXT = ffi.typeof([[struct {
uint32_t descriptorTypeCount;
const $* pDescriptorTypes;
}]], mod.VkDescriptorType)
mod.VkMutableDescriptorTypeListVALVE = ffi.typeof([[$ ]], mod.VkMutableDescriptorTypeListEXT)
mod.VkMutableDescriptorTypeCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t mutableDescriptorTypeListCount;
const $* pMutableDescriptorTypeLists;
}]], mod.VkStructureType, mod.VkMutableDescriptorTypeListEXT)
mod.VkMutableDescriptorTypeCreateInfoVALVE = ffi.typeof([[$ ]], mod.VkMutableDescriptorTypeCreateInfoEXT)
mod.VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ vertexInputDynamicState;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkVertexInputBindingDescription2EXT = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t binding;
uint32_t stride;
$ inputRate;
uint32_t divisor;
}]], mod.VkStructureType, mod.VkVertexInputRate)
mod.VkVertexInputAttributeDescription2EXT = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t location;
uint32_t binding;
$ format;
uint32_t offset;
}]], mod.VkStructureType, mod.VkFormat)
mod.PFN_vkCmdSetVertexInputEXT = ffi.typeof([[void (*)($ , uint32_t , const $*, uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkVertexInputBindingDescription2EXT, mod.VkVertexInputAttributeDescription2EXT)
ffi.cdef([[void vkCmdSetVertexInputEXT($ , uint32_t , const $*, uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkVertexInputBindingDescription2EXT, mod.VkVertexInputAttributeDescription2EXT)
mod.VkPhysicalDeviceDrmPropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ hasPrimary;
$ hasRender;
int64_t primaryMajor;
int64_t primaryMinor;
int64_t renderMajor;
int64_t renderMinor;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkDeviceAddressBindingTypeEXT = ffi.typeof([[enum {
VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT,
VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT,
VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT,
}]])
mod.VkDeviceAddressBindingFlagBitsEXT = ffi.typeof([[enum {
VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT,
VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT,
}]])
mod.VkDeviceAddressBindingFlagsEXT = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPhysicalDeviceAddressBindingReportFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ reportAddressBinding;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkDeviceAddressBindingCallbackDataEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ flags;
$ baseAddress;
$ size;
$ bindingType;
}]], mod.VkStructureType, mod.VkDeviceAddressBindingFlagsEXT, mod.VkDeviceAddress, mod.VkDeviceSize, mod.VkDeviceAddressBindingTypeEXT)
mod.VkPhysicalDeviceDepthClipControlFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ depthClipControl;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPipelineViewportDepthClipControlCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ negativeOneToOne;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ primitiveTopologyListRestart;
$ primitiveTopologyPatchListRestart;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR)
mod.VkSubpassShadingPipelineCreateInfoHUAWEI = ffi.typeof([[struct {
$ sType;
void* pNext;
$ renderPass;
uint32_t subpass;
}]], mod.VkStructureType, mod.VkRenderPass)
mod.VkPhysicalDeviceSubpassShadingFeaturesHUAWEI = ffi.typeof([[struct {
$ sType;
void* pNext;
$ subpassShading;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceSubpassShadingPropertiesHUAWEI = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t maxSubpassShadingWorkgroupSizeAspectRatio;
}]], mod.VkStructureType)
mod.PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = ffi.typeof([[$ (*)($ , $ , $*)]], mod.VkResult, mod.VkDevice, mod.VkRenderPass, mod.VkExtent2D)
mod.PFN_vkCmdSubpassShadingHUAWEI = ffi.typeof([[void (*)($ )]], mod.VkCommandBuffer)
ffi.cdef([[$ vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI($ , $ , $*);]], mod.VkResult, mod.VkDevice, mod.VkRenderPass, mod.VkExtent2D)
ffi.cdef([[void vkCmdSubpassShadingHUAWEI($ );]], mod.VkCommandBuffer)
mod.VkPhysicalDeviceInvocationMaskFeaturesHUAWEI = ffi.typeof([[struct {
$ sType;
void* pNext;
$ invocationMask;
}]], mod.VkStructureType, mod.VkBool32)
mod.PFN_vkCmdBindInvocationMaskHUAWEI = ffi.typeof([[void (*)($ , $ , $ )]], mod.VkCommandBuffer, mod.VkImageView, mod.VkImageLayout)
ffi.cdef([[void vkCmdBindInvocationMaskHUAWEI($ , $ , $ );]], mod.VkCommandBuffer, mod.VkImageView, mod.VkImageLayout)
mod.VkRemoteAddressNV = ffi.typeof([[void*]])
mod.VkMemoryGetRemoteAddressInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ memory;
$ handleType;
}]], mod.VkStructureType, mod.VkDeviceMemory, mod.VkExternalMemoryHandleTypeFlagBits)
mod.VkPhysicalDeviceExternalMemoryRDMAFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ externalMemoryRDMA;
}]], mod.VkStructureType, mod.VkBool32)
mod.PFN_vkGetMemoryRemoteAddressNV = ffi.typeof([[$ (*)($ , const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkMemoryGetRemoteAddressInfoNV, mod.VkRemoteAddressNV)
ffi.cdef([[$ vkGetMemoryRemoteAddressNV($ , const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkMemoryGetRemoteAddressInfoNV, mod.VkRemoteAddressNV)
mod.VkPipelineInfoEXT = ffi.typeof([[$ ]], mod.VkPipelineInfoKHR)
mod.VkPipelinePropertiesIdentifierEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
uint8_t pipelineIdentifier[16U];
}]], mod.VkStructureType)
mod.VkPhysicalDevicePipelinePropertiesFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ pipelinePropertiesIdentifier;
}]], mod.VkStructureType, mod.VkBool32)
mod.PFN_vkGetPipelinePropertiesEXT = ffi.typeof([[$ (*)($ , const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkPipelineInfoEXT, mod.VkBaseOutStructure)
ffi.cdef([[$ vkGetPipelinePropertiesEXT($ , const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkPipelineInfoEXT, mod.VkBaseOutStructure)
mod.VkFrameBoundaryFlagBitsEXT = ffi.typeof([[enum {
VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT,
VK_FRAME_BOUNDARY_FLAG_BITS_MAX_ENUM_EXT,
}]])
mod.VkFrameBoundaryFlagsEXT = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPhysicalDeviceFrameBoundaryFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ frameBoundary;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkFrameBoundaryEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
uint64_t frameID;
uint32_t imageCount;
const $* pImages;
uint32_t bufferCount;
const $* pBuffers;
uint64_t tagName;
size_t tagSize;
const void* pTag;
}]], mod.VkStructureType, mod.VkFrameBoundaryFlagsEXT, mod.VkImage, mod.VkBuffer)
mod.VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ multisampledRenderToSingleSampled;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkSubpassResolvePerformanceQueryEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ optimal;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkMultisampledRenderToSingleSampledInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ multisampledRenderToSingleSampledEnable;
$ rasterizationSamples;
}]], mod.VkStructureType, mod.VkBool32, mod.VkSampleCountFlagBits)
mod.VkPhysicalDeviceExtendedDynamicState2FeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ extendedDynamicState2;
$ extendedDynamicState2LogicOp;
$ extendedDynamicState2PatchControlPoints;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.PFN_vkCmdSetPatchControlPointsEXT = ffi.typeof([[void (*)($ , uint32_t )]], mod.VkCommandBuffer)
mod.PFN_vkCmdSetRasterizerDiscardEnableEXT = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkBool32)
mod.PFN_vkCmdSetDepthBiasEnableEXT = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkBool32)
mod.PFN_vkCmdSetLogicOpEXT = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkLogicOp)
mod.PFN_vkCmdSetPrimitiveRestartEnableEXT = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetPatchControlPointsEXT($ , uint32_t );]], mod.VkCommandBuffer)
ffi.cdef([[void vkCmdSetRasterizerDiscardEnableEXT($ , $ );]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetDepthBiasEnableEXT($ , $ );]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetLogicOpEXT($ , $ );]], mod.VkCommandBuffer, mod.VkLogicOp)
ffi.cdef([[void vkCmdSetPrimitiveRestartEnableEXT($ , $ );]], mod.VkCommandBuffer, mod.VkBool32)
mod.VkPhysicalDeviceColorWriteEnableFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ colorWriteEnable;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPipelineColorWriteCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t attachmentCount;
const $* pColorWriteEnables;
}]], mod.VkStructureType, mod.VkBool32)
mod.PFN_vkCmdSetColorWriteEnableEXT = ffi.typeof([[void (*)($ , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetColorWriteEnableEXT($ , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkBool32)
mod.VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ primitivesGeneratedQuery;
$ primitivesGeneratedQueryWithRasterizerDiscard;
$ primitivesGeneratedQueryWithNonZeroStreams;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDeviceGlobalPriorityQueryFeatures)
mod.VkQueueFamilyGlobalPriorityPropertiesEXT = ffi.typeof([[$ ]], mod.VkQueueFamilyGlobalPriorityProperties)
mod.VkVideoEncodeRgbModelConversionFlagBitsVALVE = ffi.typeof([[enum {
VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_RGB_IDENTITY_BIT_VALVE,
VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_IDENTITY_BIT_VALVE,
VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_709_BIT_VALVE,
VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_601_BIT_VALVE,
VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_2020_BIT_VALVE,
VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_FLAG_BITS_MAX_ENUM_VALVE,
}]])
mod.VkVideoEncodeRgbModelConversionFlagsVALVE = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoEncodeRgbRangeCompressionFlagBitsVALVE = ffi.typeof([[enum {
VK_VIDEO_ENCODE_RGB_RANGE_COMPRESSION_FULL_RANGE_BIT_VALVE,
VK_VIDEO_ENCODE_RGB_RANGE_COMPRESSION_NARROW_RANGE_BIT_VALVE,
VK_VIDEO_ENCODE_RGB_RANGE_COMPRESSION_FLAG_BITS_MAX_ENUM_VALVE,
}]])
mod.VkVideoEncodeRgbRangeCompressionFlagsVALVE = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkVideoEncodeRgbChromaOffsetFlagBitsVALVE = ffi.typeof([[enum {
VK_VIDEO_ENCODE_RGB_CHROMA_OFFSET_COSITED_EVEN_BIT_VALVE,
VK_VIDEO_ENCODE_RGB_CHROMA_OFFSET_MIDPOINT_BIT_VALVE,
VK_VIDEO_ENCODE_RGB_CHROMA_OFFSET_FLAG_BITS_MAX_ENUM_VALVE,
}]])
mod.VkVideoEncodeRgbChromaOffsetFlagsVALVE = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE = ffi.typeof([[struct {
$ sType;
void* pNext;
$ videoEncodeRgbConversion;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkVideoEncodeRgbConversionCapabilitiesVALVE = ffi.typeof([[struct {
$ sType;
void* pNext;
$ rgbModels;
$ rgbRanges;
$ xChromaOffsets;
$ yChromaOffsets;
}]], mod.VkStructureType, mod.VkVideoEncodeRgbModelConversionFlagsVALVE, mod.VkVideoEncodeRgbRangeCompressionFlagsVALVE, mod.VkVideoEncodeRgbChromaOffsetFlagsVALVE, mod.VkVideoEncodeRgbChromaOffsetFlagsVALVE)
mod.VkVideoEncodeProfileRgbConversionInfoVALVE = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ performEncodeRgbConversion;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkVideoEncodeSessionRgbConversionCreateInfoVALVE = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ rgbModel;
$ rgbRange;
$ xChromaOffset;
$ yChromaOffset;
}]], mod.VkStructureType, mod.VkVideoEncodeRgbModelConversionFlagBitsVALVE, mod.VkVideoEncodeRgbRangeCompressionFlagBitsVALVE, mod.VkVideoEncodeRgbChromaOffsetFlagBitsVALVE, mod.VkVideoEncodeRgbChromaOffsetFlagBitsVALVE)
mod.VkPhysicalDeviceImageViewMinLodFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ minLod;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkImageViewMinLodCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
float minLod;
}]], mod.VkStructureType)
mod.VkPhysicalDeviceMultiDrawFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ multiDraw;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceMultiDrawPropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t maxMultiDrawCount;
}]], mod.VkStructureType)
mod.VkMultiDrawInfoEXT = ffi.typeof([[struct {
uint32_t firstVertex;
uint32_t vertexCount;
}]])
mod.VkMultiDrawIndexedInfoEXT = ffi.typeof([[struct {
uint32_t firstIndex;
uint32_t indexCount;
int32_t vertexOffset;
}]])
mod.PFN_vkCmdDrawMultiEXT = ffi.typeof([[void (*)($ , uint32_t , const $*, uint32_t , uint32_t , uint32_t )]], mod.VkCommandBuffer, mod.VkMultiDrawInfoEXT)
mod.PFN_vkCmdDrawMultiIndexedEXT = ffi.typeof([[void (*)($ , uint32_t , const $*, uint32_t , uint32_t , uint32_t , const int32_t*)]], mod.VkCommandBuffer, mod.VkMultiDrawIndexedInfoEXT)
ffi.cdef([[void vkCmdDrawMultiEXT($ , uint32_t , const $*, uint32_t , uint32_t , uint32_t );]], mod.VkCommandBuffer, mod.VkMultiDrawInfoEXT)
ffi.cdef([[void vkCmdDrawMultiIndexedEXT($ , uint32_t , const $*, uint32_t , uint32_t , uint32_t , const int32_t*);]], mod.VkCommandBuffer, mod.VkMultiDrawIndexedInfoEXT)
mod.VkPhysicalDeviceImage2DViewOf3DFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ image2DViewOf3D;
$ sampler2DViewOf3D;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceShaderTileImageFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderTileImageColorReadAccess;
$ shaderTileImageDepthReadAccess;
$ shaderTileImageStencilReadAccess;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceShaderTileImagePropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderTileImageCoherentReadAccelerated;
$ shaderTileImageReadSampleFromPixelRateInvocation;
$ shaderTileImageReadFromHelperInvocation;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkMicromapEXT = ffi.typeof([[void*]])
mod.VkMicromapTypeEXT = ffi.typeof([[enum {
VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT,
VK_MICROMAP_TYPE_MAX_ENUM_EXT,
}]])
mod.VkBuildMicromapModeEXT = ffi.typeof([[enum {
VK_BUILD_MICROMAP_MODE_BUILD_EXT,
VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT,
}]])
mod.VkCopyMicromapModeEXT = ffi.typeof([[enum {
VK_COPY_MICROMAP_MODE_CLONE_EXT,
VK_COPY_MICROMAP_MODE_SERIALIZE_EXT,
VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT,
VK_COPY_MICROMAP_MODE_COMPACT_EXT,
VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT,
}]])
mod.VkOpacityMicromapFormatEXT = ffi.typeof([[enum {
VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT,
VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT,
VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT,
}]])
mod.VkOpacityMicromapSpecialIndexEXT = ffi.typeof([[enum {
VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT,
VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT,
VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT,
VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT,
VK_OPACITY_MICROMAP_SPECIAL_INDEX_CLUSTER_GEOMETRY_DISABLE_OPACITY_MICROMAP_NV,
VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT,
}]])
mod.VkAccelerationStructureCompatibilityKHR = ffi.typeof([[enum {
VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR,
VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR,
VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR,
}]])
mod.VkAccelerationStructureBuildTypeKHR = ffi.typeof([[enum {
VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR,
VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR,
VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR,
VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR,
}]])
mod.VkBuildMicromapFlagBitsEXT = ffi.typeof([[enum {
VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT,
VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT,
VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT,
VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT,
}]])
mod.VkBuildMicromapFlagsEXT = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkMicromapCreateFlagBitsEXT = ffi.typeof([[enum {
VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT,
VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT,
}]])
mod.VkMicromapCreateFlagsEXT = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkMicromapUsageEXT = ffi.typeof([[struct {
uint32_t count;
uint32_t subdivisionLevel;
uint32_t format;
}]])
mod.VkDeviceOrHostAddressKHR = ffi.typeof([[union {
$ deviceAddress;
void* hostAddress;
}]], mod.VkDeviceAddress)
mod.VkMicromapBuildInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ type;
$ flags;
$ mode;
$ dstMicromap;
uint32_t usageCountsCount;
const $* pUsageCounts;
const $** const ppUsageCounts;
$ data;
$ scratchData;
$ triangleArray;
$ triangleArrayStride;
}]], mod.VkStructureType, mod.VkMicromapTypeEXT, mod.VkBuildMicromapFlagsEXT, mod.VkBuildMicromapModeEXT, mod.VkMicromapEXT, mod.VkMicromapUsageEXT, mod.VkMicromapUsageEXT, mod.VkDeviceOrHostAddressConstKHR, mod.VkDeviceOrHostAddressKHR, mod.VkDeviceOrHostAddressConstKHR, mod.VkDeviceSize)
mod.VkMicromapCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ createFlags;
$ buffer;
$ offset;
$ size;
$ type;
$ deviceAddress;
}]], mod.VkStructureType, mod.VkMicromapCreateFlagsEXT, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkMicromapTypeEXT, mod.VkDeviceAddress)
mod.VkPhysicalDeviceOpacityMicromapFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ micromap;
$ micromapCaptureReplay;
$ micromapHostCommands;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceOpacityMicromapPropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t maxOpacity2StateSubdivisionLevel;
uint32_t maxOpacity4StateSubdivisionLevel;
}]], mod.VkStructureType)
mod.VkMicromapVersionInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
const uint8_t* pVersionData;
}]], mod.VkStructureType)
mod.VkCopyMicromapToMemoryInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ src;
$ dst;
$ mode;
}]], mod.VkStructureType, mod.VkMicromapEXT, mod.VkDeviceOrHostAddressKHR, mod.VkCopyMicromapModeEXT)
mod.VkCopyMemoryToMicromapInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ src;
$ dst;
$ mode;
}]], mod.VkStructureType, mod.VkDeviceOrHostAddressConstKHR, mod.VkMicromapEXT, mod.VkCopyMicromapModeEXT)
mod.VkCopyMicromapInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ src;
$ dst;
$ mode;
}]], mod.VkStructureType, mod.VkMicromapEXT, mod.VkMicromapEXT, mod.VkCopyMicromapModeEXT)
mod.VkMicromapBuildSizesInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ micromapSize;
$ buildScratchSize;
$ discardable;
}]], mod.VkStructureType, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkBool32)
mod.VkAccelerationStructureTrianglesOpacityMicromapEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ indexType;
$ indexBuffer;
$ indexStride;
uint32_t baseTriangle;
uint32_t usageCountsCount;
const $* pUsageCounts;
const $** const ppUsageCounts;
$ micromap;
}]], mod.VkStructureType, mod.VkIndexType, mod.VkDeviceOrHostAddressConstKHR, mod.VkDeviceSize, mod.VkMicromapUsageEXT, mod.VkMicromapUsageEXT, mod.VkMicromapEXT)
mod.VkMicromapTriangleEXT = ffi.typeof([[struct {
uint32_t dataOffset;
uint16_t subdivisionLevel;
uint16_t format;
}]])
mod.PFN_vkCreateMicromapEXT = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkMicromapCreateInfoEXT, mod.VkAllocationCallbacks, mod.VkMicromapEXT)
mod.PFN_vkDestroyMicromapEXT = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkMicromapEXT, mod.VkAllocationCallbacks)
mod.PFN_vkCmdBuildMicromapsEXT = ffi.typeof([[void (*)($ , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkMicromapBuildInfoEXT)
mod.PFN_vkBuildMicromapsEXT = ffi.typeof([[$ (*)($ , $ , uint32_t , const $*)]], mod.VkResult, mod.VkDevice, mod.VkDeferredOperationKHR, mod.VkMicromapBuildInfoEXT)
mod.PFN_vkCopyMicromapEXT = ffi.typeof([[$ (*)($ , $ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkDeferredOperationKHR, mod.VkCopyMicromapInfoEXT)
mod.PFN_vkCopyMicromapToMemoryEXT = ffi.typeof([[$ (*)($ , $ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkDeferredOperationKHR, mod.VkCopyMicromapToMemoryInfoEXT)
mod.PFN_vkCopyMemoryToMicromapEXT = ffi.typeof([[$ (*)($ , $ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkDeferredOperationKHR, mod.VkCopyMemoryToMicromapInfoEXT)
mod.PFN_vkWriteMicromapsPropertiesEXT = ffi.typeof([[$ (*)($ , uint32_t , const $*, $ , size_t , void*, size_t )]], mod.VkResult, mod.VkDevice, mod.VkMicromapEXT, mod.VkQueryType)
mod.PFN_vkCmdCopyMicromapEXT = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkCopyMicromapInfoEXT)
mod.PFN_vkCmdCopyMicromapToMemoryEXT = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkCopyMicromapToMemoryInfoEXT)
mod.PFN_vkCmdCopyMemoryToMicromapEXT = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkCopyMemoryToMicromapInfoEXT)
mod.PFN_vkCmdWriteMicromapsPropertiesEXT = ffi.typeof([[void (*)($ , uint32_t , const $*, $ , $ , uint32_t )]], mod.VkCommandBuffer, mod.VkMicromapEXT, mod.VkQueryType, mod.VkQueryPool)
mod.PFN_vkGetDeviceMicromapCompatibilityEXT = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkDevice, mod.VkMicromapVersionInfoEXT, mod.VkAccelerationStructureCompatibilityKHR)
mod.PFN_vkGetMicromapBuildSizesEXT = ffi.typeof([[void (*)($ , $ , const $*, $*)]], mod.VkDevice, mod.VkAccelerationStructureBuildTypeKHR, mod.VkMicromapBuildInfoEXT, mod.VkMicromapBuildSizesInfoEXT)
ffi.cdef([[$ vkCreateMicromapEXT($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkMicromapCreateInfoEXT, mod.VkAllocationCallbacks, mod.VkMicromapEXT)
ffi.cdef([[void vkDestroyMicromapEXT($ , $ , const $*);]], mod.VkDevice, mod.VkMicromapEXT, mod.VkAllocationCallbacks)
ffi.cdef([[void vkCmdBuildMicromapsEXT($ , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkMicromapBuildInfoEXT)
ffi.cdef([[$ vkBuildMicromapsEXT($ , $ , uint32_t , const $*);]], mod.VkResult, mod.VkDevice, mod.VkDeferredOperationKHR, mod.VkMicromapBuildInfoEXT)
ffi.cdef([[$ vkCopyMicromapEXT($ , $ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkDeferredOperationKHR, mod.VkCopyMicromapInfoEXT)
ffi.cdef([[$ vkCopyMicromapToMemoryEXT($ , $ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkDeferredOperationKHR, mod.VkCopyMicromapToMemoryInfoEXT)
ffi.cdef([[$ vkCopyMemoryToMicromapEXT($ , $ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkDeferredOperationKHR, mod.VkCopyMemoryToMicromapInfoEXT)
ffi.cdef([[$ vkWriteMicromapsPropertiesEXT($ , uint32_t , const $*, $ , size_t , void*, size_t );]], mod.VkResult, mod.VkDevice, mod.VkMicromapEXT, mod.VkQueryType)
ffi.cdef([[void vkCmdCopyMicromapEXT($ , const $*);]], mod.VkCommandBuffer, mod.VkCopyMicromapInfoEXT)
ffi.cdef([[void vkCmdCopyMicromapToMemoryEXT($ , const $*);]], mod.VkCommandBuffer, mod.VkCopyMicromapToMemoryInfoEXT)
ffi.cdef([[void vkCmdCopyMemoryToMicromapEXT($ , const $*);]], mod.VkCommandBuffer, mod.VkCopyMemoryToMicromapInfoEXT)
ffi.cdef([[void vkCmdWriteMicromapsPropertiesEXT($ , uint32_t , const $*, $ , $ , uint32_t );]], mod.VkCommandBuffer, mod.VkMicromapEXT, mod.VkQueryType, mod.VkQueryPool)
ffi.cdef([[void vkGetDeviceMicromapCompatibilityEXT($ , const $*, $*);]], mod.VkDevice, mod.VkMicromapVersionInfoEXT, mod.VkAccelerationStructureCompatibilityKHR)
ffi.cdef([[void vkGetMicromapBuildSizesEXT($ , $ , const $*, $*);]], mod.VkDevice, mod.VkAccelerationStructureBuildTypeKHR, mod.VkMicromapBuildInfoEXT, mod.VkMicromapBuildSizesInfoEXT)
mod.VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI = ffi.typeof([[struct {
$ sType;
void* pNext;
$ clustercullingShader;
$ multiviewClusterCullingShader;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t maxWorkGroupCount[3];
uint32_t maxWorkGroupSize[3];
uint32_t maxOutputClusterCount;
$ indirectBufferOffsetAlignment;
}]], mod.VkStructureType, mod.VkDeviceSize)
mod.VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI = ffi.typeof([[struct {
$ sType;
void* pNext;
$ clusterShadingRate;
}]], mod.VkStructureType, mod.VkBool32)
mod.PFN_vkCmdDrawClusterHUAWEI = ffi.typeof([[void (*)($ , uint32_t , uint32_t , uint32_t )]], mod.VkCommandBuffer)
mod.PFN_vkCmdDrawClusterIndirectHUAWEI = ffi.typeof([[void (*)($ , $ , $ )]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize)
ffi.cdef([[void vkCmdDrawClusterHUAWEI($ , uint32_t , uint32_t , uint32_t );]], mod.VkCommandBuffer)
ffi.cdef([[void vkCmdDrawClusterIndirectHUAWEI($ , $ , $ );]], mod.VkCommandBuffer, mod.VkBuffer, mod.VkDeviceSize)
mod.VkPhysicalDeviceBorderColorSwizzleFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ borderColorSwizzle;
$ borderColorSwizzleFromImage;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkSamplerBorderColorComponentMappingCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ components;
$ srgb;
}]], mod.VkStructureType, mod.VkComponentMapping, mod.VkBool32)
mod.VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ pageableDeviceLocalMemory;
}]], mod.VkStructureType, mod.VkBool32)
mod.PFN_vkSetDeviceMemoryPriorityEXT = ffi.typeof([[void (*)($ , $ , float )]], mod.VkDevice, mod.VkDeviceMemory)
ffi.cdef([[void vkSetDeviceMemoryPriorityEXT($ , $ , float );]], mod.VkDevice, mod.VkDeviceMemory)
mod.VkPhysicalDeviceShaderCorePropertiesARM = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t pixelRate;
uint32_t texelRate;
uint32_t fmaRate;
}]], mod.VkStructureType)
mod.VkPhysicalDeviceSchedulingControlsFlagsARM = ffi.typeof([[$ ]], mod.VkFlags64)
mod.VkPhysicalDeviceSchedulingControlsFlagBitsARM = ffi.typeof([[$ ]], mod.VkFlags64)
mod.VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM = 0x00000001ULL
mod.VkDeviceQueueShaderCoreControlCreateInfoARM = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t shaderCoreCount;
}]], mod.VkStructureType)
mod.VkPhysicalDeviceSchedulingControlsFeaturesARM = ffi.typeof([[struct {
$ sType;
void* pNext;
$ schedulingControls;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceSchedulingControlsPropertiesARM = ffi.typeof([[struct {
$ sType;
void* pNext;
$ schedulingControlsFlags;
}]], mod.VkStructureType, mod.VkPhysicalDeviceSchedulingControlsFlagsARM)
mod.VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ imageSlicedViewOf3D;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkImageViewSlicedCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t sliceOffset;
uint32_t sliceCount;
}]], mod.VkStructureType)
mod.VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE = ffi.typeof([[struct {
$ sType;
void* pNext;
$ descriptorSetHostMapping;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkDescriptorSetBindingReferenceVALVE = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ descriptorSetLayout;
uint32_t binding;
}]], mod.VkStructureType, mod.VkDescriptorSetLayout)
mod.VkDescriptorSetLayoutHostMappingInfoVALVE = ffi.typeof([[struct {
$ sType;
void* pNext;
size_t descriptorOffset;
uint32_t descriptorSize;
}]], mod.VkStructureType)
mod.PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkDevice, mod.VkDescriptorSetBindingReferenceVALVE, mod.VkDescriptorSetLayoutHostMappingInfoVALVE)
mod.PFN_vkGetDescriptorSetHostMappingVALVE = ffi.typeof([[void (*)($ , $ , void**)]], mod.VkDevice, mod.VkDescriptorSet)
ffi.cdef([[void vkGetDescriptorSetLayoutHostMappingInfoVALVE($ , const $*, $*);]], mod.VkDevice, mod.VkDescriptorSetBindingReferenceVALVE, mod.VkDescriptorSetLayoutHostMappingInfoVALVE)
ffi.cdef([[void vkGetDescriptorSetHostMappingVALVE($ , $ , void**);]], mod.VkDevice, mod.VkDescriptorSet)
mod.VkPhysicalDeviceDepthClampZeroOneFeaturesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDeviceDepthClampZeroOneFeaturesKHR)
mod.VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ nonSeamlessCubeMap;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceRenderPassStripedFeaturesARM = ffi.typeof([[struct {
$ sType;
void* pNext;
$ renderPassStriped;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceRenderPassStripedPropertiesARM = ffi.typeof([[struct {
$ sType;
void* pNext;
$ renderPassStripeGranularity;
uint32_t maxRenderPassStripes;
}]], mod.VkStructureType, mod.VkExtent2D)
mod.VkRenderPassStripeInfoARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ stripeArea;
}]], mod.VkStructureType, mod.VkRect2D)
mod.VkRenderPassStripeBeginInfoARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t stripeInfoCount;
const $* pStripeInfos;
}]], mod.VkStructureType, mod.VkRenderPassStripeInfoARM)
mod.VkRenderPassStripeSubmitInfoARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t stripeSemaphoreInfoCount;
const $* pStripeSemaphoreInfos;
}]], mod.VkStructureType, mod.VkSemaphoreSubmitInfo)
mod.VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ fragmentDensityMapOffset;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM = ffi.typeof([[$ ]], mod.VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT)
mod.VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ fragmentDensityOffsetGranularity;
}]], mod.VkStructureType, mod.VkExtent2D)
mod.VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM = ffi.typeof([[$ ]], mod.VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT)
mod.VkRenderPassFragmentDensityMapOffsetEndInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t fragmentDensityOffsetCount;
const $* pFragmentDensityOffsets;
}]], mod.VkStructureType, mod.VkOffset2D)
mod.VkSubpassFragmentDensityMapOffsetEndInfoQCOM = ffi.typeof([[$ ]], mod.VkRenderPassFragmentDensityMapOffsetEndInfoEXT)
mod.VkCopyMemoryIndirectCommandNV = ffi.typeof([[$ ]], mod.VkCopyMemoryIndirectCommandKHR)
mod.VkCopyMemoryToImageIndirectCommandNV = ffi.typeof([[$ ]], mod.VkCopyMemoryToImageIndirectCommandKHR)
mod.VkPhysicalDeviceCopyMemoryIndirectFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ indirectCopy;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceCopyMemoryIndirectPropertiesNV = ffi.typeof([[$ ]], mod.VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR)
mod.PFN_vkCmdCopyMemoryIndirectNV = ffi.typeof([[void (*)($ , $ , uint32_t , uint32_t )]], mod.VkCommandBuffer, mod.VkDeviceAddress)
mod.PFN_vkCmdCopyMemoryToImageIndirectNV = ffi.typeof([[void (*)($ , $ , uint32_t , uint32_t , $ , $ , const $*)]], mod.VkCommandBuffer, mod.VkDeviceAddress, mod.VkImage, mod.VkImageLayout, mod.VkImageSubresourceLayers)
ffi.cdef([[void vkCmdCopyMemoryIndirectNV($ , $ , uint32_t , uint32_t );]], mod.VkCommandBuffer, mod.VkDeviceAddress)
ffi.cdef([[void vkCmdCopyMemoryToImageIndirectNV($ , $ , uint32_t , uint32_t , $ , $ , const $*);]], mod.VkCommandBuffer, mod.VkDeviceAddress, mod.VkImage, mod.VkImageLayout, mod.VkImageSubresourceLayers)
mod.VkMemoryDecompressionMethodFlagBitsEXT = ffi.typeof([[$ ]], mod.VkFlags64)
mod.VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_EXT = 0x00000001ULL
mod.VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV = 0x00000001ULL
mod.VkMemoryDecompressionMethodFlagBitsNV = ffi.typeof([[$ ]], mod.VkMemoryDecompressionMethodFlagBitsEXT)
mod.VkMemoryDecompressionMethodFlagsEXT = ffi.typeof([[$ ]], mod.VkFlags64)
mod.VkMemoryDecompressionMethodFlagsNV = ffi.typeof([[$ ]], mod.VkMemoryDecompressionMethodFlagsEXT)
mod.VkDecompressMemoryRegionNV = ffi.typeof([[struct {
$ srcAddress;
$ dstAddress;
$ compressedSize;
$ decompressedSize;
$ decompressionMethod;
}]], mod.VkDeviceAddress, mod.VkDeviceAddress, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkMemoryDecompressionMethodFlagsNV)
mod.VkPhysicalDeviceMemoryDecompressionFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ memoryDecompression;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceMemoryDecompressionFeaturesNV = ffi.typeof([[$ ]], mod.VkPhysicalDeviceMemoryDecompressionFeaturesEXT)
mod.VkPhysicalDeviceMemoryDecompressionPropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ decompressionMethods;
uint64_t maxDecompressionIndirectCount;
}]], mod.VkStructureType, mod.VkMemoryDecompressionMethodFlagsEXT)
mod.VkPhysicalDeviceMemoryDecompressionPropertiesNV = ffi.typeof([[$ ]], mod.VkPhysicalDeviceMemoryDecompressionPropertiesEXT)
mod.PFN_vkCmdDecompressMemoryNV = ffi.typeof([[void (*)($ , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkDecompressMemoryRegionNV)
mod.PFN_vkCmdDecompressMemoryIndirectCountNV = ffi.typeof([[void (*)($ , $ , $ , uint32_t )]], mod.VkCommandBuffer, mod.VkDeviceAddress, mod.VkDeviceAddress)
ffi.cdef([[void vkCmdDecompressMemoryNV($ , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkDecompressMemoryRegionNV)
ffi.cdef([[void vkCmdDecompressMemoryIndirectCountNV($ , $ , $ , uint32_t );]], mod.VkCommandBuffer, mod.VkDeviceAddress, mod.VkDeviceAddress)
mod.VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ deviceGeneratedCompute;
$ deviceGeneratedComputePipelines;
$ deviceGeneratedComputeCaptureReplay;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkComputePipelineIndirectBufferInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ deviceAddress;
$ size;
$ pipelineDeviceAddressCaptureReplay;
}]], mod.VkStructureType, mod.VkDeviceAddress, mod.VkDeviceSize, mod.VkDeviceAddress)
mod.VkPipelineIndirectDeviceAddressInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ pipelineBindPoint;
$ pipeline;
}]], mod.VkStructureType, mod.VkPipelineBindPoint, mod.VkPipeline)
mod.VkBindPipelineIndirectCommandNV = ffi.typeof([[struct {
$ pipelineAddress;
}]], mod.VkDeviceAddress)
mod.PFN_vkGetPipelineIndirectMemoryRequirementsNV = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkDevice, mod.VkComputePipelineCreateInfo, mod.VkMemoryRequirements2)
mod.PFN_vkCmdUpdatePipelineIndirectBufferNV = ffi.typeof([[void (*)($ , $ , $ )]], mod.VkCommandBuffer, mod.VkPipelineBindPoint, mod.VkPipeline)
mod.PFN_vkGetPipelineIndirectDeviceAddressNV = ffi.typeof([[$ (*)($ , const $*)]], mod.VkDeviceAddress, mod.VkDevice, mod.VkPipelineIndirectDeviceAddressInfoNV)
ffi.cdef([[void vkGetPipelineIndirectMemoryRequirementsNV($ , const $*, $*);]], mod.VkDevice, mod.VkComputePipelineCreateInfo, mod.VkMemoryRequirements2)
ffi.cdef([[void vkCmdUpdatePipelineIndirectBufferNV($ , $ , $ );]], mod.VkCommandBuffer, mod.VkPipelineBindPoint, mod.VkPipeline)
ffi.cdef([[$ vkGetPipelineIndirectDeviceAddressNV($ , const $*);]], mod.VkDeviceAddress, mod.VkDevice, mod.VkPipelineIndirectDeviceAddressInfoNV)
mod.VkRayTracingLssIndexingModeNV = ffi.typeof([[enum {
VK_RAY_TRACING_LSS_INDEXING_MODE_LIST_NV,
VK_RAY_TRACING_LSS_INDEXING_MODE_SUCCESSIVE_NV,
VK_RAY_TRACING_LSS_INDEXING_MODE_MAX_ENUM_NV,
}]])
mod.VkRayTracingLssPrimitiveEndCapsModeNV = ffi.typeof([[enum {
VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_NONE_NV,
VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_CHAINED_NV,
VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_MAX_ENUM_NV,
}]])
mod.VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ spheres;
$ linearSweptSpheres;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkAccelerationStructureGeometryLinearSweptSpheresDataNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ vertexFormat;
$ vertexData;
$ vertexStride;
$ radiusFormat;
$ radiusData;
$ radiusStride;
$ indexType;
$ indexData;
$ indexStride;
$ indexingMode;
$ endCapsMode;
}]], mod.VkStructureType, mod.VkFormat, mod.VkDeviceOrHostAddressConstKHR, mod.VkDeviceSize, mod.VkFormat, mod.VkDeviceOrHostAddressConstKHR, mod.VkDeviceSize, mod.VkIndexType, mod.VkDeviceOrHostAddressConstKHR, mod.VkDeviceSize, mod.VkRayTracingLssIndexingModeNV, mod.VkRayTracingLssPrimitiveEndCapsModeNV)
mod.VkAccelerationStructureGeometrySpheresDataNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ vertexFormat;
$ vertexData;
$ vertexStride;
$ radiusFormat;
$ radiusData;
$ radiusStride;
$ indexType;
$ indexData;
$ indexStride;
}]], mod.VkStructureType, mod.VkFormat, mod.VkDeviceOrHostAddressConstKHR, mod.VkDeviceSize, mod.VkFormat, mod.VkDeviceOrHostAddressConstKHR, mod.VkDeviceSize, mod.VkIndexType, mod.VkDeviceOrHostAddressConstKHR, mod.VkDeviceSize)
mod.VkPhysicalDeviceLinearColorAttachmentFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ linearColorAttachment;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ imageCompressionControlSwapchain;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkImageViewSampleWeightCreateInfoQCOM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ filterCenter;
$ filterSize;
uint32_t numPhases;
}]], mod.VkStructureType, mod.VkOffset2D, mod.VkExtent2D)
mod.VkPhysicalDeviceImageProcessingFeaturesQCOM = ffi.typeof([[struct {
$ sType;
void* pNext;
$ textureSampleWeighted;
$ textureBoxFilter;
$ textureBlockMatch;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceImageProcessingPropertiesQCOM = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t maxWeightFilterPhases;
$ maxWeightFilterDimension;
$ maxBlockMatchRegion;
$ maxBoxFilterBlockSize;
}]], mod.VkStructureType, mod.VkExtent2D, mod.VkExtent2D, mod.VkExtent2D)
mod.VkPhysicalDeviceNestedCommandBufferFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ nestedCommandBuffer;
$ nestedCommandBufferRendering;
$ nestedCommandBufferSimultaneousUse;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceNestedCommandBufferPropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t maxCommandBufferNestingLevel;
}]], mod.VkStructureType)
mod.VkExternalMemoryAcquireUnmodifiedEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ acquireUnmodifiedMemory;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceExtendedDynamicState3FeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ extendedDynamicState3TessellationDomainOrigin;
$ extendedDynamicState3DepthClampEnable;
$ extendedDynamicState3PolygonMode;
$ extendedDynamicState3RasterizationSamples;
$ extendedDynamicState3SampleMask;
$ extendedDynamicState3AlphaToCoverageEnable;
$ extendedDynamicState3AlphaToOneEnable;
$ extendedDynamicState3LogicOpEnable;
$ extendedDynamicState3ColorBlendEnable;
$ extendedDynamicState3ColorBlendEquation;
$ extendedDynamicState3ColorWriteMask;
$ extendedDynamicState3RasterizationStream;
$ extendedDynamicState3ConservativeRasterizationMode;
$ extendedDynamicState3ExtraPrimitiveOverestimationSize;
$ extendedDynamicState3DepthClipEnable;
$ extendedDynamicState3SampleLocationsEnable;
$ extendedDynamicState3ColorBlendAdvanced;
$ extendedDynamicState3ProvokingVertexMode;
$ extendedDynamicState3LineRasterizationMode;
$ extendedDynamicState3LineStippleEnable;
$ extendedDynamicState3DepthClipNegativeOneToOne;
$ extendedDynamicState3ViewportWScalingEnable;
$ extendedDynamicState3ViewportSwizzle;
$ extendedDynamicState3CoverageToColorEnable;
$ extendedDynamicState3CoverageToColorLocation;
$ extendedDynamicState3CoverageModulationMode;
$ extendedDynamicState3CoverageModulationTableEnable;
$ extendedDynamicState3CoverageModulationTable;
$ extendedDynamicState3CoverageReductionMode;
$ extendedDynamicState3RepresentativeFragmentTestEnable;
$ extendedDynamicState3ShadingRateImageEnable;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceExtendedDynamicState3PropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ dynamicPrimitiveTopologyUnrestricted;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkColorBlendEquationEXT = ffi.typeof([[struct {
$ srcColorBlendFactor;
$ dstColorBlendFactor;
$ colorBlendOp;
$ srcAlphaBlendFactor;
$ dstAlphaBlendFactor;
$ alphaBlendOp;
}]], mod.VkBlendFactor, mod.VkBlendFactor, mod.VkBlendOp, mod.VkBlendFactor, mod.VkBlendFactor, mod.VkBlendOp)
mod.VkColorBlendAdvancedEXT = ffi.typeof([[struct {
$ advancedBlendOp;
$ srcPremultiplied;
$ dstPremultiplied;
$ blendOverlap;
$ clampResults;
}]], mod.VkBlendOp, mod.VkBool32, mod.VkBool32, mod.VkBlendOverlapEXT, mod.VkBool32)
mod.PFN_vkCmdSetDepthClampEnableEXT = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkBool32)
mod.PFN_vkCmdSetPolygonModeEXT = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkPolygonMode)
mod.PFN_vkCmdSetRasterizationSamplesEXT = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkSampleCountFlagBits)
mod.PFN_vkCmdSetSampleMaskEXT = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkCommandBuffer, mod.VkSampleCountFlagBits, mod.VkSampleMask)
mod.PFN_vkCmdSetAlphaToCoverageEnableEXT = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkBool32)
mod.PFN_vkCmdSetAlphaToOneEnableEXT = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkBool32)
mod.PFN_vkCmdSetLogicOpEnableEXT = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkBool32)
mod.PFN_vkCmdSetColorBlendEnableEXT = ffi.typeof([[void (*)($ , uint32_t , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkBool32)
mod.PFN_vkCmdSetColorBlendEquationEXT = ffi.typeof([[void (*)($ , uint32_t , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkColorBlendEquationEXT)
mod.PFN_vkCmdSetColorWriteMaskEXT = ffi.typeof([[void (*)($ , uint32_t , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkColorComponentFlags)
mod.PFN_vkCmdSetTessellationDomainOriginEXT = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkTessellationDomainOrigin)
mod.PFN_vkCmdSetRasterizationStreamEXT = ffi.typeof([[void (*)($ , uint32_t )]], mod.VkCommandBuffer)
mod.PFN_vkCmdSetConservativeRasterizationModeEXT = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkConservativeRasterizationModeEXT)
mod.PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT = ffi.typeof([[void (*)($ , float )]], mod.VkCommandBuffer)
mod.PFN_vkCmdSetDepthClipEnableEXT = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkBool32)
mod.PFN_vkCmdSetSampleLocationsEnableEXT = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkBool32)
mod.PFN_vkCmdSetColorBlendAdvancedEXT = ffi.typeof([[void (*)($ , uint32_t , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkColorBlendAdvancedEXT)
mod.PFN_vkCmdSetProvokingVertexModeEXT = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkProvokingVertexModeEXT)
mod.PFN_vkCmdSetLineRasterizationModeEXT = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkLineRasterizationModeEXT)
mod.PFN_vkCmdSetLineStippleEnableEXT = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkBool32)
mod.PFN_vkCmdSetDepthClipNegativeOneToOneEXT = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkBool32)
mod.PFN_vkCmdSetViewportWScalingEnableNV = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkBool32)
mod.PFN_vkCmdSetViewportSwizzleNV = ffi.typeof([[void (*)($ , uint32_t , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkViewportSwizzleNV)
mod.PFN_vkCmdSetCoverageToColorEnableNV = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkBool32)
mod.PFN_vkCmdSetCoverageToColorLocationNV = ffi.typeof([[void (*)($ , uint32_t )]], mod.VkCommandBuffer)
mod.PFN_vkCmdSetCoverageModulationModeNV = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkCoverageModulationModeNV)
mod.PFN_vkCmdSetCoverageModulationTableEnableNV = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkBool32)
mod.PFN_vkCmdSetCoverageModulationTableNV = ffi.typeof([[void (*)($ , uint32_t , const float*)]], mod.VkCommandBuffer)
mod.PFN_vkCmdSetShadingRateImageEnableNV = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkBool32)
mod.PFN_vkCmdSetRepresentativeFragmentTestEnableNV = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkBool32)
mod.PFN_vkCmdSetCoverageReductionModeNV = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkCoverageReductionModeNV)
ffi.cdef([[void vkCmdSetDepthClampEnableEXT($ , $ );]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetPolygonModeEXT($ , $ );]], mod.VkCommandBuffer, mod.VkPolygonMode)
ffi.cdef([[void vkCmdSetRasterizationSamplesEXT($ , $ );]], mod.VkCommandBuffer, mod.VkSampleCountFlagBits)
ffi.cdef([[void vkCmdSetSampleMaskEXT($ , $ , const $*);]], mod.VkCommandBuffer, mod.VkSampleCountFlagBits, mod.VkSampleMask)
ffi.cdef([[void vkCmdSetAlphaToCoverageEnableEXT($ , $ );]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetAlphaToOneEnableEXT($ , $ );]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetLogicOpEnableEXT($ , $ );]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetColorBlendEnableEXT($ , uint32_t , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetColorBlendEquationEXT($ , uint32_t , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkColorBlendEquationEXT)
ffi.cdef([[void vkCmdSetColorWriteMaskEXT($ , uint32_t , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkColorComponentFlags)
ffi.cdef([[void vkCmdSetTessellationDomainOriginEXT($ , $ );]], mod.VkCommandBuffer, mod.VkTessellationDomainOrigin)
ffi.cdef([[void vkCmdSetRasterizationStreamEXT($ , uint32_t );]], mod.VkCommandBuffer)
ffi.cdef([[void vkCmdSetConservativeRasterizationModeEXT($ , $ );]], mod.VkCommandBuffer, mod.VkConservativeRasterizationModeEXT)
ffi.cdef([[void vkCmdSetExtraPrimitiveOverestimationSizeEXT($ , float );]], mod.VkCommandBuffer)
ffi.cdef([[void vkCmdSetDepthClipEnableEXT($ , $ );]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetSampleLocationsEnableEXT($ , $ );]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetColorBlendAdvancedEXT($ , uint32_t , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkColorBlendAdvancedEXT)
ffi.cdef([[void vkCmdSetProvokingVertexModeEXT($ , $ );]], mod.VkCommandBuffer, mod.VkProvokingVertexModeEXT)
ffi.cdef([[void vkCmdSetLineRasterizationModeEXT($ , $ );]], mod.VkCommandBuffer, mod.VkLineRasterizationModeEXT)
ffi.cdef([[void vkCmdSetLineStippleEnableEXT($ , $ );]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetDepthClipNegativeOneToOneEXT($ , $ );]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetViewportWScalingEnableNV($ , $ );]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetViewportSwizzleNV($ , uint32_t , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkViewportSwizzleNV)
ffi.cdef([[void vkCmdSetCoverageToColorEnableNV($ , $ );]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetCoverageToColorLocationNV($ , uint32_t );]], mod.VkCommandBuffer)
ffi.cdef([[void vkCmdSetCoverageModulationModeNV($ , $ );]], mod.VkCommandBuffer, mod.VkCoverageModulationModeNV)
ffi.cdef([[void vkCmdSetCoverageModulationTableEnableNV($ , $ );]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetCoverageModulationTableNV($ , uint32_t , const float*);]], mod.VkCommandBuffer)
ffi.cdef([[void vkCmdSetShadingRateImageEnableNV($ , $ );]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetRepresentativeFragmentTestEnableNV($ , $ );]], mod.VkCommandBuffer, mod.VkBool32)
ffi.cdef([[void vkCmdSetCoverageReductionModeNV($ , $ );]], mod.VkCommandBuffer, mod.VkCoverageReductionModeNV)
mod.VkSubpassMergeStatusEXT = ffi.typeof([[enum {
VK_SUBPASS_MERGE_STATUS_MERGED_EXT,
VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT,
VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT,
VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT,
VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT,
VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT,
VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT,
VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT,
VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT,
VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT,
VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT,
VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT,
VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT,
VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT,
VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT,
}]])
mod.VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ subpassMergeFeedback;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkRenderPassCreationControlEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ disallowMerging;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkRenderPassCreationFeedbackInfoEXT = ffi.typeof([[struct {
uint32_t postMergeSubpassCount;
}]])
mod.VkRenderPassCreationFeedbackCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$* pRenderPassFeedback;
}]], mod.VkStructureType, mod.VkRenderPassCreationFeedbackInfoEXT)
mod.VkRenderPassSubpassFeedbackInfoEXT = ffi.typeof([[struct {
$ subpassMergeStatus;
char description[256U];
uint32_t postMergeIndex;
}]], mod.VkSubpassMergeStatusEXT)
mod.VkRenderPassSubpassFeedbackCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$* pSubpassFeedback;
}]], mod.VkStructureType, mod.VkRenderPassSubpassFeedbackInfoEXT)
mod.VkDirectDriverLoadingModeLUNARG = ffi.typeof([[enum {
VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG,
VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG,
VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG,
}]])
mod.VkDirectDriverLoadingFlagsLUNARG = ffi.typeof([[$ ]], mod.VkFlags)
mod.PFN_vkGetInstanceProcAddrLUNARG = ffi.typeof([[$ (*)($ , const char*)]], mod.PFN_vkVoidFunction, mod.VkInstance)
mod.VkDirectDriverLoadingInfoLUNARG = ffi.typeof([[struct {
$ sType;
void* pNext;
$ flags;
$ pfnGetInstanceProcAddr;
}]], mod.VkStructureType, mod.VkDirectDriverLoadingFlagsLUNARG, mod.PFN_vkGetInstanceProcAddrLUNARG)
mod.VkDirectDriverLoadingListLUNARG = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ mode;
uint32_t driverCount;
const $* pDrivers;
}]], mod.VkStructureType, mod.VkDirectDriverLoadingModeLUNARG, mod.VkDirectDriverLoadingInfoLUNARG)
mod.VkTensorARM = ffi.typeof([[void*]])
mod.VkTensorViewARM = ffi.typeof([[void*]])
mod.VkTensorTilingARM = ffi.typeof([[enum {
VK_TENSOR_TILING_OPTIMAL_ARM,
VK_TENSOR_TILING_LINEAR_ARM,
VK_TENSOR_TILING_MAX_ENUM_ARM,
}]])
mod.VkTensorCreateFlagsARM = ffi.typeof([[$ ]], mod.VkFlags64)
mod.VkTensorCreateFlagBitsARM = ffi.typeof([[$ ]], mod.VkFlags64)
mod.VK_TENSOR_CREATE_MUTABLE_FORMAT_BIT_ARM = 0x00000001ULL
mod.VK_TENSOR_CREATE_PROTECTED_BIT_ARM = 0x00000002ULL
mod.VK_TENSOR_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM = 0x00000004ULL
mod.VkTensorViewCreateFlagsARM = ffi.typeof([[$ ]], mod.VkFlags64)
mod.VkTensorViewCreateFlagBitsARM = ffi.typeof([[$ ]], mod.VkFlags64)
mod.VK_TENSOR_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM = 0x00000001ULL
mod.VkTensorUsageFlagsARM = ffi.typeof([[$ ]], mod.VkFlags64)
mod.VkTensorUsageFlagBitsARM = ffi.typeof([[$ ]], mod.VkFlags64)
mod.VK_TENSOR_USAGE_SHADER_BIT_ARM = 0x00000002ULL
mod.VK_TENSOR_USAGE_TRANSFER_SRC_BIT_ARM = 0x00000004ULL
mod.VK_TENSOR_USAGE_TRANSFER_DST_BIT_ARM = 0x00000008ULL
mod.VK_TENSOR_USAGE_IMAGE_ALIASING_BIT_ARM = 0x00000010ULL
mod.VK_TENSOR_USAGE_DATA_GRAPH_BIT_ARM = 0x00000020ULL
mod.VkTensorDescriptionARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ tiling;
$ format;
uint32_t dimensionCount;
const int64_t* pDimensions;
const int64_t* pStrides;
$ usage;
}]], mod.VkStructureType, mod.VkTensorTilingARM, mod.VkFormat, mod.VkTensorUsageFlagsARM)
mod.VkTensorCreateInfoARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
const $* pDescription;
$ sharingMode;
uint32_t queueFamilyIndexCount;
const uint32_t* pQueueFamilyIndices;
}]], mod.VkStructureType, mod.VkTensorCreateFlagsARM, mod.VkTensorDescriptionARM, mod.VkSharingMode)
mod.VkTensorViewCreateInfoARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ tensor;
$ format;
}]], mod.VkStructureType, mod.VkTensorViewCreateFlagsARM, mod.VkTensorARM, mod.VkFormat)
mod.VkTensorMemoryRequirementsInfoARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ tensor;
}]], mod.VkStructureType, mod.VkTensorARM)
mod.VkBindTensorMemoryInfoARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ tensor;
$ memory;
$ memoryOffset;
}]], mod.VkStructureType, mod.VkTensorARM, mod.VkDeviceMemory, mod.VkDeviceSize)
mod.VkWriteDescriptorSetTensorARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t tensorViewCount;
const $* pTensorViews;
}]], mod.VkStructureType, mod.VkTensorViewARM)
mod.VkTensorFormatPropertiesARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ optimalTilingTensorFeatures;
$ linearTilingTensorFeatures;
}]], mod.VkStructureType, mod.VkFormatFeatureFlags2, mod.VkFormatFeatureFlags2)
mod.VkPhysicalDeviceTensorPropertiesARM = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t maxTensorDimensionCount;
uint64_t maxTensorElements;
uint64_t maxPerDimensionTensorElements;
int64_t maxTensorStride;
uint64_t maxTensorSize;
uint32_t maxTensorShaderAccessArrayLength;
uint32_t maxTensorShaderAccessSize;
uint32_t maxDescriptorSetStorageTensors;
uint32_t maxPerStageDescriptorSetStorageTensors;
uint32_t maxDescriptorSetUpdateAfterBindStorageTensors;
uint32_t maxPerStageDescriptorUpdateAfterBindStorageTensors;
$ shaderStorageTensorArrayNonUniformIndexingNative;
$ shaderTensorSupportedStages;
}]], mod.VkStructureType, mod.VkBool32, mod.VkShaderStageFlags)
mod.VkTensorMemoryBarrierARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ srcStageMask;
$ srcAccessMask;
$ dstStageMask;
$ dstAccessMask;
uint32_t srcQueueFamilyIndex;
uint32_t dstQueueFamilyIndex;
$ tensor;
}]], mod.VkStructureType, mod.VkPipelineStageFlags2, mod.VkAccessFlags2, mod.VkPipelineStageFlags2, mod.VkAccessFlags2, mod.VkTensorARM)
mod.VkTensorDependencyInfoARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t tensorMemoryBarrierCount;
const $* pTensorMemoryBarriers;
}]], mod.VkStructureType, mod.VkTensorMemoryBarrierARM)
mod.VkPhysicalDeviceTensorFeaturesARM = ffi.typeof([[struct {
$ sType;
void* pNext;
$ tensorNonPacked;
$ shaderTensorAccess;
$ shaderStorageTensorArrayDynamicIndexing;
$ shaderStorageTensorArrayNonUniformIndexing;
$ descriptorBindingStorageTensorUpdateAfterBind;
$ tensors;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkDeviceTensorMemoryRequirementsARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
const $* pCreateInfo;
}]], mod.VkStructureType, mod.VkTensorCreateInfoARM)
mod.VkTensorCopyARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t dimensionCount;
const uint64_t* pSrcOffset;
const uint64_t* pDstOffset;
const uint64_t* pExtent;
}]], mod.VkStructureType)
mod.VkCopyTensorInfoARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ srcTensor;
$ dstTensor;
uint32_t regionCount;
const $* pRegions;
}]], mod.VkStructureType, mod.VkTensorARM, mod.VkTensorARM, mod.VkTensorCopyARM)
mod.VkMemoryDedicatedAllocateInfoTensorARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ tensor;
}]], mod.VkStructureType, mod.VkTensorARM)
mod.VkPhysicalDeviceExternalTensorInfoARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
const $* pDescription;
$ handleType;
}]], mod.VkStructureType, mod.VkTensorCreateFlagsARM, mod.VkTensorDescriptionARM, mod.VkExternalMemoryHandleTypeFlagBits)
mod.VkExternalTensorPropertiesARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ externalMemoryProperties;
}]], mod.VkStructureType, mod.VkExternalMemoryProperties)
mod.VkExternalMemoryTensorCreateInfoARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ handleTypes;
}]], mod.VkStructureType, mod.VkExternalMemoryHandleTypeFlags)
mod.VkPhysicalDeviceDescriptorBufferTensorFeaturesARM = ffi.typeof([[struct {
$ sType;
void* pNext;
$ descriptorBufferTensorDescriptors;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceDescriptorBufferTensorPropertiesARM = ffi.typeof([[struct {
$ sType;
void* pNext;
size_t tensorCaptureReplayDescriptorDataSize;
size_t tensorViewCaptureReplayDescriptorDataSize;
size_t tensorDescriptorSize;
}]], mod.VkStructureType)
mod.VkDescriptorGetTensorInfoARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ tensorView;
}]], mod.VkStructureType, mod.VkTensorViewARM)
mod.VkTensorCaptureDescriptorDataInfoARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ tensor;
}]], mod.VkStructureType, mod.VkTensorARM)
mod.VkTensorViewCaptureDescriptorDataInfoARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ tensorView;
}]], mod.VkStructureType, mod.VkTensorViewARM)
mod.VkFrameBoundaryTensorsARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t tensorCount;
const $* pTensors;
}]], mod.VkStructureType, mod.VkTensorARM)
mod.PFN_vkCreateTensorARM = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkTensorCreateInfoARM, mod.VkAllocationCallbacks, mod.VkTensorARM)
mod.PFN_vkDestroyTensorARM = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkTensorARM, mod.VkAllocationCallbacks)
mod.PFN_vkCreateTensorViewARM = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkTensorViewCreateInfoARM, mod.VkAllocationCallbacks, mod.VkTensorViewARM)
mod.PFN_vkDestroyTensorViewARM = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkTensorViewARM, mod.VkAllocationCallbacks)
mod.PFN_vkGetTensorMemoryRequirementsARM = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkDevice, mod.VkTensorMemoryRequirementsInfoARM, mod.VkMemoryRequirements2)
mod.PFN_vkBindTensorMemoryARM = ffi.typeof([[$ (*)($ , uint32_t , const $*)]], mod.VkResult, mod.VkDevice, mod.VkBindTensorMemoryInfoARM)
mod.PFN_vkGetDeviceTensorMemoryRequirementsARM = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkDevice, mod.VkDeviceTensorMemoryRequirementsARM, mod.VkMemoryRequirements2)
mod.PFN_vkCmdCopyTensorARM = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkCopyTensorInfoARM)
mod.PFN_vkGetPhysicalDeviceExternalTensorPropertiesARM = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceExternalTensorInfoARM, mod.VkExternalTensorPropertiesARM)
mod.PFN_vkGetTensorOpaqueCaptureDescriptorDataARM = ffi.typeof([[$ (*)($ , const $*, void*)]], mod.VkResult, mod.VkDevice, mod.VkTensorCaptureDescriptorDataInfoARM)
mod.PFN_vkGetTensorViewOpaqueCaptureDescriptorDataARM = ffi.typeof([[$ (*)($ , const $*, void*)]], mod.VkResult, mod.VkDevice, mod.VkTensorViewCaptureDescriptorDataInfoARM)
ffi.cdef([[$ vkCreateTensorARM($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkTensorCreateInfoARM, mod.VkAllocationCallbacks, mod.VkTensorARM)
ffi.cdef([[void vkDestroyTensorARM($ , $ , const $*);]], mod.VkDevice, mod.VkTensorARM, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkCreateTensorViewARM($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkTensorViewCreateInfoARM, mod.VkAllocationCallbacks, mod.VkTensorViewARM)
ffi.cdef([[void vkDestroyTensorViewARM($ , $ , const $*);]], mod.VkDevice, mod.VkTensorViewARM, mod.VkAllocationCallbacks)
ffi.cdef([[void vkGetTensorMemoryRequirementsARM($ , const $*, $*);]], mod.VkDevice, mod.VkTensorMemoryRequirementsInfoARM, mod.VkMemoryRequirements2)
ffi.cdef([[$ vkBindTensorMemoryARM($ , uint32_t , const $*);]], mod.VkResult, mod.VkDevice, mod.VkBindTensorMemoryInfoARM)
ffi.cdef([[void vkGetDeviceTensorMemoryRequirementsARM($ , const $*, $*);]], mod.VkDevice, mod.VkDeviceTensorMemoryRequirementsARM, mod.VkMemoryRequirements2)
ffi.cdef([[void vkCmdCopyTensorARM($ , const $*);]], mod.VkCommandBuffer, mod.VkCopyTensorInfoARM)
ffi.cdef([[void vkGetPhysicalDeviceExternalTensorPropertiesARM($ , const $*, $*);]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceExternalTensorInfoARM, mod.VkExternalTensorPropertiesARM)
ffi.cdef([[$ vkGetTensorOpaqueCaptureDescriptorDataARM($ , const $*, void*);]], mod.VkResult, mod.VkDevice, mod.VkTensorCaptureDescriptorDataInfoARM)
ffi.cdef([[$ vkGetTensorViewOpaqueCaptureDescriptorDataARM($ , const $*, void*);]], mod.VkResult, mod.VkDevice, mod.VkTensorViewCaptureDescriptorDataInfoARM)
mod.VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderModuleIdentifier;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
uint8_t shaderModuleIdentifierAlgorithmUUID[16U];
}]], mod.VkStructureType)
mod.VkPipelineShaderStageModuleIdentifierCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t identifierSize;
const uint8_t* pIdentifier;
}]], mod.VkStructureType)
mod.VkShaderModuleIdentifierEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t identifierSize;
uint8_t identifier[32U];
}]], mod.VkStructureType)
mod.PFN_vkGetShaderModuleIdentifierEXT = ffi.typeof([[void (*)($ , $ , $*)]], mod.VkDevice, mod.VkShaderModule, mod.VkShaderModuleIdentifierEXT)
mod.PFN_vkGetShaderModuleCreateInfoIdentifierEXT = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkDevice, mod.VkShaderModuleCreateInfo, mod.VkShaderModuleIdentifierEXT)
ffi.cdef([[void vkGetShaderModuleIdentifierEXT($ , $ , $*);]], mod.VkDevice, mod.VkShaderModule, mod.VkShaderModuleIdentifierEXT)
ffi.cdef([[void vkGetShaderModuleCreateInfoIdentifierEXT($ , const $*, $*);]], mod.VkDevice, mod.VkShaderModuleCreateInfo, mod.VkShaderModuleIdentifierEXT)
mod.VkOpticalFlowSessionNV = ffi.typeof([[void*]])
mod.VkOpticalFlowPerformanceLevelNV = ffi.typeof([[enum {
VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV,
VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV,
VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV,
VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV,
VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV,
}]])
mod.VkOpticalFlowSessionBindingPointNV = ffi.typeof([[enum {
VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV,
VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV,
VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV,
VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV,
VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV,
VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV,
VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV,
VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV,
VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV,
VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV,
}]])
mod.VkOpticalFlowGridSizeFlagBitsNV = ffi.typeof([[enum {
VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV,
VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV,
VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV,
VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV,
VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV,
VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV,
}]])
mod.VkOpticalFlowGridSizeFlagsNV = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkOpticalFlowUsageFlagBitsNV = ffi.typeof([[enum {
VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV,
VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV,
VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV,
VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV,
VK_OPTICAL_FLOW_USAGE_COST_BIT_NV,
VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV,
VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV,
}]])
mod.VkOpticalFlowUsageFlagsNV = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkOpticalFlowSessionCreateFlagBitsNV = ffi.typeof([[enum {
VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV,
VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV,
VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV,
VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV,
VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV,
VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV,
}]])
mod.VkOpticalFlowSessionCreateFlagsNV = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkOpticalFlowExecuteFlagBitsNV = ffi.typeof([[enum {
VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV,
VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV,
}]])
mod.VkOpticalFlowExecuteFlagsNV = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPhysicalDeviceOpticalFlowFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ opticalFlow;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceOpticalFlowPropertiesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ supportedOutputGridSizes;
$ supportedHintGridSizes;
$ hintSupported;
$ costSupported;
$ bidirectionalFlowSupported;
$ globalFlowSupported;
uint32_t minWidth;
uint32_t minHeight;
uint32_t maxWidth;
uint32_t maxHeight;
uint32_t maxNumRegionsOfInterest;
}]], mod.VkStructureType, mod.VkOpticalFlowGridSizeFlagsNV, mod.VkOpticalFlowGridSizeFlagsNV, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkOpticalFlowImageFormatInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ usage;
}]], mod.VkStructureType, mod.VkOpticalFlowUsageFlagsNV)
mod.VkOpticalFlowImageFormatPropertiesNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ format;
}]], mod.VkStructureType, mod.VkFormat)
mod.VkOpticalFlowSessionCreateInfoNV = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t width;
uint32_t height;
$ imageFormat;
$ flowVectorFormat;
$ costFormat;
$ outputGridSize;
$ hintGridSize;
$ performanceLevel;
$ flags;
}]], mod.VkStructureType, mod.VkFormat, mod.VkFormat, mod.VkFormat, mod.VkOpticalFlowGridSizeFlagsNV, mod.VkOpticalFlowGridSizeFlagsNV, mod.VkOpticalFlowPerformanceLevelNV, mod.VkOpticalFlowSessionCreateFlagsNV)
mod.VkOpticalFlowSessionCreatePrivateDataInfoNV = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t id;
uint32_t size;
const void* pPrivateData;
}]], mod.VkStructureType)
mod.VkOpticalFlowExecuteInfoNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ flags;
uint32_t regionCount;
const $* pRegions;
}]], mod.VkStructureType, mod.VkOpticalFlowExecuteFlagsNV, mod.VkRect2D)
mod.PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV = ffi.typeof([[$ (*)($ , const $*, uint32_t*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkOpticalFlowImageFormatInfoNV, mod.VkOpticalFlowImageFormatPropertiesNV)
mod.PFN_vkCreateOpticalFlowSessionNV = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkOpticalFlowSessionCreateInfoNV, mod.VkAllocationCallbacks, mod.VkOpticalFlowSessionNV)
mod.PFN_vkDestroyOpticalFlowSessionNV = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkOpticalFlowSessionNV, mod.VkAllocationCallbacks)
mod.PFN_vkBindOpticalFlowSessionImageNV = ffi.typeof([[$ (*)($ , $ , $ , $ , $ )]], mod.VkResult, mod.VkDevice, mod.VkOpticalFlowSessionNV, mod.VkOpticalFlowSessionBindingPointNV, mod.VkImageView, mod.VkImageLayout)
mod.PFN_vkCmdOpticalFlowExecuteNV = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkCommandBuffer, mod.VkOpticalFlowSessionNV, mod.VkOpticalFlowExecuteInfoNV)
ffi.cdef([[$ vkGetPhysicalDeviceOpticalFlowImageFormatsNV($ , const $*, uint32_t*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkOpticalFlowImageFormatInfoNV, mod.VkOpticalFlowImageFormatPropertiesNV)
ffi.cdef([[$ vkCreateOpticalFlowSessionNV($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkOpticalFlowSessionCreateInfoNV, mod.VkAllocationCallbacks, mod.VkOpticalFlowSessionNV)
ffi.cdef([[void vkDestroyOpticalFlowSessionNV($ , $ , const $*);]], mod.VkDevice, mod.VkOpticalFlowSessionNV, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkBindOpticalFlowSessionImageNV($ , $ , $ , $ , $ );]], mod.VkResult, mod.VkDevice, mod.VkOpticalFlowSessionNV, mod.VkOpticalFlowSessionBindingPointNV, mod.VkImageView, mod.VkImageLayout)
ffi.cdef([[void vkCmdOpticalFlowExecuteNV($ , $ , const $*);]], mod.VkCommandBuffer, mod.VkOpticalFlowSessionNV, mod.VkOpticalFlowExecuteInfoNV)
mod.VkPhysicalDeviceLegacyDitheringFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ legacyDithering;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDevicePipelineProtectedAccessFeaturesEXT = ffi.typeof([[$ ]], mod.VkPhysicalDevicePipelineProtectedAccessFeatures)
mod.VkAntiLagModeAMD = ffi.typeof([[enum {
VK_ANTI_LAG_MODE_DRIVER_CONTROL_AMD,
VK_ANTI_LAG_MODE_ON_AMD,
VK_ANTI_LAG_MODE_OFF_AMD,
VK_ANTI_LAG_MODE_MAX_ENUM_AMD,
}]])
mod.VkAntiLagStageAMD = ffi.typeof([[enum {
VK_ANTI_LAG_STAGE_INPUT_AMD,
VK_ANTI_LAG_STAGE_PRESENT_AMD,
VK_ANTI_LAG_STAGE_MAX_ENUM_AMD,
}]])
mod.VkPhysicalDeviceAntiLagFeaturesAMD = ffi.typeof([[struct {
$ sType;
void* pNext;
$ antiLag;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkAntiLagPresentationInfoAMD = ffi.typeof([[struct {
$ sType;
void* pNext;
$ stage;
uint64_t frameIndex;
}]], mod.VkStructureType, mod.VkAntiLagStageAMD)
mod.VkAntiLagDataAMD = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ mode;
uint32_t maxFPS;
const $* pPresentationInfo;
}]], mod.VkStructureType, mod.VkAntiLagModeAMD, mod.VkAntiLagPresentationInfoAMD)
mod.PFN_vkAntiLagUpdateAMD = ffi.typeof([[void (*)($ , const $*)]], mod.VkDevice, mod.VkAntiLagDataAMD)
ffi.cdef([[void vkAntiLagUpdateAMD($ , const $*);]], mod.VkDevice, mod.VkAntiLagDataAMD)
mod.VkShaderEXT = ffi.typeof([[void*]])
mod.VkShaderCodeTypeEXT = ffi.typeof([[enum {
VK_SHADER_CODE_TYPE_BINARY_EXT,
VK_SHADER_CODE_TYPE_SPIRV_EXT,
VK_SHADER_CODE_TYPE_MAX_ENUM_EXT,
}]])
mod.VkDepthClampModeEXT = ffi.typeof([[enum {
VK_DEPTH_CLAMP_MODE_VIEWPORT_RANGE_EXT,
VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT,
VK_DEPTH_CLAMP_MODE_MAX_ENUM_EXT,
}]])
mod.VkShaderCreateFlagBitsEXT = ffi.typeof([[enum {
VK_SHADER_CREATE_LINK_STAGE_BIT_EXT,
VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT,
VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT,
VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT,
VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT,
VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT,
VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT,
VK_SHADER_CREATE_64_BIT_INDEXING_BIT_EXT,
VK_SHADER_CREATE_FLAG_BITS_MAX_ENUM_EXT,
}]])
mod.VkShaderCreateFlagsEXT = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPhysicalDeviceShaderObjectFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderObject;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceShaderObjectPropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
uint8_t shaderBinaryUUID[16U];
uint32_t shaderBinaryVersion;
}]], mod.VkStructureType)
mod.VkShaderCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ stage;
$ nextStage;
$ codeType;
size_t codeSize;
const void* pCode;
const char* pName;
uint32_t setLayoutCount;
const $* pSetLayouts;
uint32_t pushConstantRangeCount;
const $* pPushConstantRanges;
const $* pSpecializationInfo;
}]], mod.VkStructureType, mod.VkShaderCreateFlagsEXT, mod.VkShaderStageFlagBits, mod.VkShaderStageFlags, mod.VkShaderCodeTypeEXT, mod.VkDescriptorSetLayout, mod.VkPushConstantRange, mod.VkSpecializationInfo)
mod.VkShaderRequiredSubgroupSizeCreateInfoEXT = ffi.typeof([[$ ]], mod.VkPipelineShaderStageRequiredSubgroupSizeCreateInfo)
mod.VkDepthClampRangeEXT = ffi.typeof([[struct {
float minDepthClamp;
float maxDepthClamp;
}]])
mod.PFN_vkCreateShadersEXT = ffi.typeof([[$ (*)($ , uint32_t , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkShaderCreateInfoEXT, mod.VkAllocationCallbacks, mod.VkShaderEXT)
mod.PFN_vkDestroyShaderEXT = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkShaderEXT, mod.VkAllocationCallbacks)
mod.PFN_vkGetShaderBinaryDataEXT = ffi.typeof([[$ (*)($ , $ , size_t*, void*)]], mod.VkResult, mod.VkDevice, mod.VkShaderEXT)
mod.PFN_vkCmdBindShadersEXT = ffi.typeof([[void (*)($ , uint32_t , const $*, const $*)]], mod.VkCommandBuffer, mod.VkShaderStageFlagBits, mod.VkShaderEXT)
mod.PFN_vkCmdSetDepthClampRangeEXT = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkCommandBuffer, mod.VkDepthClampModeEXT, mod.VkDepthClampRangeEXT)
ffi.cdef([[$ vkCreateShadersEXT($ , uint32_t , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkShaderCreateInfoEXT, mod.VkAllocationCallbacks, mod.VkShaderEXT)
ffi.cdef([[void vkDestroyShaderEXT($ , $ , const $*);]], mod.VkDevice, mod.VkShaderEXT, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkGetShaderBinaryDataEXT($ , $ , size_t*, void*);]], mod.VkResult, mod.VkDevice, mod.VkShaderEXT)
ffi.cdef([[void vkCmdBindShadersEXT($ , uint32_t , const $*, const $*);]], mod.VkCommandBuffer, mod.VkShaderStageFlagBits, mod.VkShaderEXT)
ffi.cdef([[void vkCmdSetDepthClampRangeEXT($ , $ , const $*);]], mod.VkCommandBuffer, mod.VkDepthClampModeEXT, mod.VkDepthClampRangeEXT)
mod.VkPhysicalDeviceTilePropertiesFeaturesQCOM = ffi.typeof([[struct {
$ sType;
void* pNext;
$ tileProperties;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkTilePropertiesQCOM = ffi.typeof([[struct {
$ sType;
void* pNext;
$ tileSize;
$ apronSize;
$ origin;
}]], mod.VkStructureType, mod.VkExtent3D, mod.VkExtent2D, mod.VkOffset2D)
mod.PFN_vkGetFramebufferTilePropertiesQCOM = ffi.typeof([[$ (*)($ , $ , uint32_t*, $*)]], mod.VkResult, mod.VkDevice, mod.VkFramebuffer, mod.VkTilePropertiesQCOM)
mod.PFN_vkGetDynamicRenderingTilePropertiesQCOM = ffi.typeof([[$ (*)($ , const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkRenderingInfo, mod.VkTilePropertiesQCOM)
ffi.cdef([[$ vkGetFramebufferTilePropertiesQCOM($ , $ , uint32_t*, $*);]], mod.VkResult, mod.VkDevice, mod.VkFramebuffer, mod.VkTilePropertiesQCOM)
ffi.cdef([[$ vkGetDynamicRenderingTilePropertiesQCOM($ , const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkRenderingInfo, mod.VkTilePropertiesQCOM)
mod.VkPhysicalDeviceAmigoProfilingFeaturesSEC = ffi.typeof([[struct {
$ sType;
void* pNext;
$ amigoProfiling;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkAmigoProfilingSubmitInfoSEC = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint64_t firstDrawTimestamp;
uint64_t swapBufferTimestamp;
}]], mod.VkStructureType)
mod.VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM = ffi.typeof([[struct {
$ sType;
void* pNext;
$ multiviewPerViewViewports;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkRayTracingInvocationReorderModeNV = ffi.typeof([[enum {
VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV,
VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV,
VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_NV,
}]])
mod.VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ rayTracingInvocationReorderReorderingHint;
}]], mod.VkStructureType, mod.VkRayTracingInvocationReorderModeNV)
mod.VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ rayTracingInvocationReorder;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkCooperativeVectorMatrixLayoutNV = ffi.typeof([[enum {
VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_ROW_MAJOR_NV,
VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_COLUMN_MAJOR_NV,
VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_INFERENCING_OPTIMAL_NV,
VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_TRAINING_OPTIMAL_NV,
VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_MAX_ENUM_NV,
}]])
mod.VkPhysicalDeviceCooperativeVectorPropertiesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ cooperativeVectorSupportedStages;
$ cooperativeVectorTrainingFloat16Accumulation;
$ cooperativeVectorTrainingFloat32Accumulation;
uint32_t maxCooperativeVectorComponents;
}]], mod.VkStructureType, mod.VkShaderStageFlags, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceCooperativeVectorFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ cooperativeVector;
$ cooperativeVectorTraining;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkCooperativeVectorPropertiesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ inputType;
$ inputInterpretation;
$ matrixInterpretation;
$ biasInterpretation;
$ resultType;
$ transpose;
}]], mod.VkStructureType, mod.VkComponentTypeKHR, mod.VkComponentTypeKHR, mod.VkComponentTypeKHR, mod.VkComponentTypeKHR, mod.VkComponentTypeKHR, mod.VkBool32)
mod.VkConvertCooperativeVectorMatrixInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
size_t srcSize;
$ srcData;
size_t* pDstSize;
$ dstData;
$ srcComponentType;
$ dstComponentType;
uint32_t numRows;
uint32_t numColumns;
$ srcLayout;
size_t srcStride;
$ dstLayout;
size_t dstStride;
}]], mod.VkStructureType, mod.VkDeviceOrHostAddressConstKHR, mod.VkDeviceOrHostAddressKHR, mod.VkComponentTypeKHR, mod.VkComponentTypeKHR, mod.VkCooperativeVectorMatrixLayoutNV, mod.VkCooperativeVectorMatrixLayoutNV)
mod.PFN_vkGetPhysicalDeviceCooperativeVectorPropertiesNV = ffi.typeof([[$ (*)($ , uint32_t*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkCooperativeVectorPropertiesNV)
mod.PFN_vkConvertCooperativeVectorMatrixNV = ffi.typeof([[$ (*)($ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkConvertCooperativeVectorMatrixInfoNV)
mod.PFN_vkCmdConvertCooperativeVectorMatrixNV = ffi.typeof([[void (*)($ , uint32_t , const $*)]], mod.VkCommandBuffer, mod.VkConvertCooperativeVectorMatrixInfoNV)
ffi.cdef([[$ vkGetPhysicalDeviceCooperativeVectorPropertiesNV($ , uint32_t*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkCooperativeVectorPropertiesNV)
ffi.cdef([[$ vkConvertCooperativeVectorMatrixNV($ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkConvertCooperativeVectorMatrixInfoNV)
ffi.cdef([[void vkCmdConvertCooperativeVectorMatrixNV($ , uint32_t , const $*);]], mod.VkCommandBuffer, mod.VkConvertCooperativeVectorMatrixInfoNV)
mod.VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ extendedSparseAddressSpace;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ extendedSparseAddressSpaceSize;
$ extendedSparseImageUsageFlags;
$ extendedSparseBufferUsageFlags;
}]], mod.VkStructureType, mod.VkDeviceSize, mod.VkImageUsageFlags, mod.VkBufferUsageFlags)
mod.VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ legacyVertexAttributes;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ nativeUnalignedPerformance;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkLayerSettingTypeEXT = ffi.typeof([[enum {
VK_LAYER_SETTING_TYPE_BOOL32_EXT,
VK_LAYER_SETTING_TYPE_INT32_EXT,
VK_LAYER_SETTING_TYPE_INT64_EXT,
VK_LAYER_SETTING_TYPE_UINT32_EXT,
VK_LAYER_SETTING_TYPE_UINT64_EXT,
VK_LAYER_SETTING_TYPE_FLOAT32_EXT,
VK_LAYER_SETTING_TYPE_FLOAT64_EXT,
VK_LAYER_SETTING_TYPE_STRING_EXT,
VK_LAYER_SETTING_TYPE_MAX_ENUM_EXT,
}]])
mod.VkLayerSettingEXT = ffi.typeof([[struct {
const char* pLayerName;
const char* pSettingName;
$ type;
uint32_t valueCount;
const void* pValues;
}]], mod.VkLayerSettingTypeEXT)
mod.VkLayerSettingsCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t settingCount;
const $* pSettings;
}]], mod.VkStructureType, mod.VkLayerSettingEXT)
mod.VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderCoreBuiltins;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM = ffi.typeof([[struct {
$ sType;
void* pNext;
uint64_t shaderCoreMask;
uint32_t shaderCoreCount;
uint32_t shaderWarpsPerCore;
}]], mod.VkStructureType)
mod.VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ pipelineLibraryGroupHandles;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ dynamicRenderingUnusedAttachments;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkLatencyMarkerNV = ffi.typeof([[enum {
VK_LATENCY_MARKER_SIMULATION_START_NV,
VK_LATENCY_MARKER_SIMULATION_END_NV,
VK_LATENCY_MARKER_RENDERSUBMIT_START_NV,
VK_LATENCY_MARKER_RENDERSUBMIT_END_NV,
VK_LATENCY_MARKER_PRESENT_START_NV,
VK_LATENCY_MARKER_PRESENT_END_NV,
VK_LATENCY_MARKER_INPUT_SAMPLE_NV,
VK_LATENCY_MARKER_TRIGGER_FLASH_NV,
VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV,
VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV,
VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV,
VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV,
VK_LATENCY_MARKER_MAX_ENUM_NV,
}]])
mod.VkOutOfBandQueueTypeNV = ffi.typeof([[enum {
VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV,
VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV,
VK_OUT_OF_BAND_QUEUE_TYPE_MAX_ENUM_NV,
}]])
mod.VkLatencySleepModeInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ lowLatencyMode;
$ lowLatencyBoost;
uint32_t minimumIntervalUs;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkLatencySleepInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ signalSemaphore;
uint64_t value;
}]], mod.VkStructureType, mod.VkSemaphore)
mod.VkSetLatencyMarkerInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint64_t presentID;
$ marker;
}]], mod.VkStructureType, mod.VkLatencyMarkerNV)
mod.VkLatencyTimingsFrameReportNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint64_t presentID;
uint64_t inputSampleTimeUs;
uint64_t simStartTimeUs;
uint64_t simEndTimeUs;
uint64_t renderSubmitStartTimeUs;
uint64_t renderSubmitEndTimeUs;
uint64_t presentStartTimeUs;
uint64_t presentEndTimeUs;
uint64_t driverStartTimeUs;
uint64_t driverEndTimeUs;
uint64_t osRenderQueueStartTimeUs;
uint64_t osRenderQueueEndTimeUs;
uint64_t gpuRenderStartTimeUs;
uint64_t gpuRenderEndTimeUs;
}]], mod.VkStructureType)
mod.VkGetLatencyMarkerInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t timingCount;
$* pTimings;
}]], mod.VkStructureType, mod.VkLatencyTimingsFrameReportNV)
mod.VkLatencySubmissionPresentIdNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint64_t presentID;
}]], mod.VkStructureType)
mod.VkSwapchainLatencyCreateInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ latencyModeEnable;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkOutOfBandQueueTypeInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ queueType;
}]], mod.VkStructureType, mod.VkOutOfBandQueueTypeNV)
mod.VkLatencySurfaceCapabilitiesNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t presentModeCount;
$* pPresentModes;
}]], mod.VkStructureType, mod.VkPresentModeKHR)
mod.PFN_vkSetLatencySleepModeNV = ffi.typeof([[$ (*)($ , $ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkSwapchainKHR, mod.VkLatencySleepModeInfoNV)
mod.PFN_vkLatencySleepNV = ffi.typeof([[$ (*)($ , $ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkSwapchainKHR, mod.VkLatencySleepInfoNV)
mod.PFN_vkSetLatencyMarkerNV = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkSwapchainKHR, mod.VkSetLatencyMarkerInfoNV)
mod.PFN_vkGetLatencyTimingsNV = ffi.typeof([[void (*)($ , $ , $*)]], mod.VkDevice, mod.VkSwapchainKHR, mod.VkGetLatencyMarkerInfoNV)
mod.PFN_vkQueueNotifyOutOfBandNV = ffi.typeof([[void (*)($ , const $*)]], mod.VkQueue, mod.VkOutOfBandQueueTypeInfoNV)
ffi.cdef([[$ vkSetLatencySleepModeNV($ , $ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkSwapchainKHR, mod.VkLatencySleepModeInfoNV)
ffi.cdef([[$ vkLatencySleepNV($ , $ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkSwapchainKHR, mod.VkLatencySleepInfoNV)
ffi.cdef([[void vkSetLatencyMarkerNV($ , $ , const $*);]], mod.VkDevice, mod.VkSwapchainKHR, mod.VkSetLatencyMarkerInfoNV)
ffi.cdef([[void vkGetLatencyTimingsNV($ , $ , $*);]], mod.VkDevice, mod.VkSwapchainKHR, mod.VkGetLatencyMarkerInfoNV)
ffi.cdef([[void vkQueueNotifyOutOfBandNV($ , const $*);]], mod.VkQueue, mod.VkOutOfBandQueueTypeInfoNV)
mod.VkDataGraphPipelineSessionARM = ffi.typeof([[void*]])
mod.VkDataGraphPipelineSessionBindPointARM = ffi.typeof([[enum {
VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_TRANSIENT_ARM,
VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_MAX_ENUM_ARM,
}]])
mod.VkDataGraphPipelineSessionBindPointTypeARM = ffi.typeof([[enum {
VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_TYPE_MEMORY_ARM,
VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_TYPE_MAX_ENUM_ARM,
}]])
mod.VkDataGraphPipelinePropertyARM = ffi.typeof([[enum {
VK_DATA_GRAPH_PIPELINE_PROPERTY_CREATION_LOG_ARM,
VK_DATA_GRAPH_PIPELINE_PROPERTY_IDENTIFIER_ARM,
VK_DATA_GRAPH_PIPELINE_PROPERTY_MAX_ENUM_ARM,
}]])
mod.VkPhysicalDeviceDataGraphProcessingEngineTypeARM = ffi.typeof([[enum {
VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_DEFAULT_ARM,
VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_MAX_ENUM_ARM,
}]])
mod.VkPhysicalDeviceDataGraphOperationTypeARM = ffi.typeof([[enum {
VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_SPIRV_EXTENDED_INSTRUCTION_SET_ARM,
VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_MAX_ENUM_ARM,
}]])
mod.VkDataGraphPipelineSessionCreateFlagsARM = ffi.typeof([[$ ]], mod.VkFlags64)
mod.VkDataGraphPipelineSessionCreateFlagBitsARM = ffi.typeof([[$ ]], mod.VkFlags64)
mod.VK_DATA_GRAPH_PIPELINE_SESSION_CREATE_PROTECTED_BIT_ARM = 0x00000001ULL
mod.VkDataGraphPipelineDispatchFlagsARM = ffi.typeof([[$ ]], mod.VkFlags64)
mod.VkDataGraphPipelineDispatchFlagBitsARM = ffi.typeof([[$ ]], mod.VkFlags64)
mod.VkPhysicalDeviceDataGraphFeaturesARM = ffi.typeof([[struct {
$ sType;
void* pNext;
$ dataGraph;
$ dataGraphUpdateAfterBind;
$ dataGraphSpecializationConstants;
$ dataGraphDescriptorBuffer;
$ dataGraphShaderModule;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkDataGraphPipelineConstantARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t id;
const void* pConstantData;
}]], mod.VkStructureType)
mod.VkDataGraphPipelineResourceInfoARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t descriptorSet;
uint32_t binding;
uint32_t arrayElement;
}]], mod.VkStructureType)
mod.VkDataGraphPipelineCompilerControlCreateInfoARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
const char* pVendorOptions;
}]], mod.VkStructureType)
mod.VkDataGraphPipelineCreateInfoARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ layout;
uint32_t resourceInfoCount;
const $* pResourceInfos;
}]], mod.VkStructureType, mod.VkPipelineCreateFlags2KHR, mod.VkPipelineLayout, mod.VkDataGraphPipelineResourceInfoARM)
mod.VkDataGraphPipelineShaderModuleCreateInfoARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ module;
const char* pName;
const $* pSpecializationInfo;
uint32_t constantCount;
const $* pConstants;
}]], mod.VkStructureType, mod.VkShaderModule, mod.VkSpecializationInfo, mod.VkDataGraphPipelineConstantARM)
mod.VkDataGraphPipelineSessionCreateInfoARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ dataGraphPipeline;
}]], mod.VkStructureType, mod.VkDataGraphPipelineSessionCreateFlagsARM, mod.VkPipeline)
mod.VkDataGraphPipelineSessionBindPointRequirementsInfoARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ session;
}]], mod.VkStructureType, mod.VkDataGraphPipelineSessionARM)
mod.VkDataGraphPipelineSessionBindPointRequirementARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ bindPoint;
$ bindPointType;
uint32_t numObjects;
}]], mod.VkStructureType, mod.VkDataGraphPipelineSessionBindPointARM, mod.VkDataGraphPipelineSessionBindPointTypeARM)
mod.VkDataGraphPipelineSessionMemoryRequirementsInfoARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ session;
$ bindPoint;
uint32_t objectIndex;
}]], mod.VkStructureType, mod.VkDataGraphPipelineSessionARM, mod.VkDataGraphPipelineSessionBindPointARM)
mod.VkBindDataGraphPipelineSessionMemoryInfoARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ session;
$ bindPoint;
uint32_t objectIndex;
$ memory;
$ memoryOffset;
}]], mod.VkStructureType, mod.VkDataGraphPipelineSessionARM, mod.VkDataGraphPipelineSessionBindPointARM, mod.VkDeviceMemory, mod.VkDeviceSize)
mod.VkDataGraphPipelineInfoARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ dataGraphPipeline;
}]], mod.VkStructureType, mod.VkPipeline)
mod.VkDataGraphPipelinePropertyQueryResultARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ property;
$ isText;
size_t dataSize;
void* pData;
}]], mod.VkStructureType, mod.VkDataGraphPipelinePropertyARM, mod.VkBool32)
mod.VkDataGraphPipelineIdentifierCreateInfoARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t identifierSize;
const uint8_t* pIdentifier;
}]], mod.VkStructureType)
mod.VkDataGraphPipelineDispatchInfoARM = ffi.typeof([[struct {
$ sType;
void* pNext;
$ flags;
}]], mod.VkStructureType, mod.VkDataGraphPipelineDispatchFlagsARM)
mod.VkPhysicalDeviceDataGraphProcessingEngineARM = ffi.typeof([[struct {
$ type;
$ isForeign;
}]], mod.VkPhysicalDeviceDataGraphProcessingEngineTypeARM, mod.VkBool32)
mod.VkPhysicalDeviceDataGraphOperationSupportARM = ffi.typeof([[struct {
$ operationType;
char name[128U];
uint32_t version;
}]], mod.VkPhysicalDeviceDataGraphOperationTypeARM)
mod.VkQueueFamilyDataGraphPropertiesARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ engine;
$ operation;
}]], mod.VkStructureType, mod.VkPhysicalDeviceDataGraphProcessingEngineARM, mod.VkPhysicalDeviceDataGraphOperationSupportARM)
mod.VkDataGraphProcessingEngineCreateInfoARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t processingEngineCount;
$* pProcessingEngines;
}]], mod.VkStructureType, mod.VkPhysicalDeviceDataGraphProcessingEngineARM)
mod.VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t queueFamilyIndex;
$ engineType;
}]], mod.VkStructureType, mod.VkPhysicalDeviceDataGraphProcessingEngineTypeARM)
mod.VkQueueFamilyDataGraphProcessingEnginePropertiesARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ foreignSemaphoreHandleTypes;
$ foreignMemoryHandleTypes;
}]], mod.VkStructureType, mod.VkExternalSemaphoreHandleTypeFlags, mod.VkExternalMemoryHandleTypeFlags)
mod.VkDataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t dimension;
uint32_t zeroCount;
uint32_t groupSize;
}]], mod.VkStructureType)
mod.PFN_vkCreateDataGraphPipelinesARM = ffi.typeof([[$ (*)($ , $ , $ , uint32_t , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkDeferredOperationKHR, mod.VkPipelineCache, mod.VkDataGraphPipelineCreateInfoARM, mod.VkAllocationCallbacks, mod.VkPipeline)
mod.PFN_vkCreateDataGraphPipelineSessionARM = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkDataGraphPipelineSessionCreateInfoARM, mod.VkAllocationCallbacks, mod.VkDataGraphPipelineSessionARM)
mod.PFN_vkGetDataGraphPipelineSessionBindPointRequirementsARM = ffi.typeof([[$ (*)($ , const $*, uint32_t*, $*)]], mod.VkResult, mod.VkDevice, mod.VkDataGraphPipelineSessionBindPointRequirementsInfoARM, mod.VkDataGraphPipelineSessionBindPointRequirementARM)
mod.PFN_vkGetDataGraphPipelineSessionMemoryRequirementsARM = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkDevice, mod.VkDataGraphPipelineSessionMemoryRequirementsInfoARM, mod.VkMemoryRequirements2)
mod.PFN_vkBindDataGraphPipelineSessionMemoryARM = ffi.typeof([[$ (*)($ , uint32_t , const $*)]], mod.VkResult, mod.VkDevice, mod.VkBindDataGraphPipelineSessionMemoryInfoARM)
mod.PFN_vkDestroyDataGraphPipelineSessionARM = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkDataGraphPipelineSessionARM, mod.VkAllocationCallbacks)
mod.PFN_vkCmdDispatchDataGraphARM = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkCommandBuffer, mod.VkDataGraphPipelineSessionARM, mod.VkDataGraphPipelineDispatchInfoARM)
mod.PFN_vkGetDataGraphPipelineAvailablePropertiesARM = ffi.typeof([[$ (*)($ , const $*, uint32_t*, $*)]], mod.VkResult, mod.VkDevice, mod.VkDataGraphPipelineInfoARM, mod.VkDataGraphPipelinePropertyARM)
mod.PFN_vkGetDataGraphPipelinePropertiesARM = ffi.typeof([[$ (*)($ , const $*, uint32_t , $*)]], mod.VkResult, mod.VkDevice, mod.VkDataGraphPipelineInfoARM, mod.VkDataGraphPipelinePropertyQueryResultARM)
mod.PFN_vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM = ffi.typeof([[$ (*)($ , uint32_t , uint32_t*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkQueueFamilyDataGraphPropertiesARM)
mod.PFN_vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM, mod.VkQueueFamilyDataGraphProcessingEnginePropertiesARM)
ffi.cdef([[$ vkCreateDataGraphPipelinesARM($ , $ , $ , uint32_t , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkDeferredOperationKHR, mod.VkPipelineCache, mod.VkDataGraphPipelineCreateInfoARM, mod.VkAllocationCallbacks, mod.VkPipeline)
ffi.cdef([[$ vkCreateDataGraphPipelineSessionARM($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkDataGraphPipelineSessionCreateInfoARM, mod.VkAllocationCallbacks, mod.VkDataGraphPipelineSessionARM)
ffi.cdef([[$ vkGetDataGraphPipelineSessionBindPointRequirementsARM($ , const $*, uint32_t*, $*);]], mod.VkResult, mod.VkDevice, mod.VkDataGraphPipelineSessionBindPointRequirementsInfoARM, mod.VkDataGraphPipelineSessionBindPointRequirementARM)
ffi.cdef([[void vkGetDataGraphPipelineSessionMemoryRequirementsARM($ , const $*, $*);]], mod.VkDevice, mod.VkDataGraphPipelineSessionMemoryRequirementsInfoARM, mod.VkMemoryRequirements2)
ffi.cdef([[$ vkBindDataGraphPipelineSessionMemoryARM($ , uint32_t , const $*);]], mod.VkResult, mod.VkDevice, mod.VkBindDataGraphPipelineSessionMemoryInfoARM)
ffi.cdef([[void vkDestroyDataGraphPipelineSessionARM($ , $ , const $*);]], mod.VkDevice, mod.VkDataGraphPipelineSessionARM, mod.VkAllocationCallbacks)
ffi.cdef([[void vkCmdDispatchDataGraphARM($ , $ , const $*);]], mod.VkCommandBuffer, mod.VkDataGraphPipelineSessionARM, mod.VkDataGraphPipelineDispatchInfoARM)
ffi.cdef([[$ vkGetDataGraphPipelineAvailablePropertiesARM($ , const $*, uint32_t*, $*);]], mod.VkResult, mod.VkDevice, mod.VkDataGraphPipelineInfoARM, mod.VkDataGraphPipelinePropertyARM)
ffi.cdef([[$ vkGetDataGraphPipelinePropertiesARM($ , const $*, uint32_t , $*);]], mod.VkResult, mod.VkDevice, mod.VkDataGraphPipelineInfoARM, mod.VkDataGraphPipelinePropertyQueryResultARM)
ffi.cdef([[$ vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM($ , uint32_t , uint32_t*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkQueueFamilyDataGraphPropertiesARM)
ffi.cdef([[void vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM($ , const $*, $*);]], mod.VkPhysicalDevice, mod.VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM, mod.VkQueueFamilyDataGraphProcessingEnginePropertiesARM)
mod.VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM = ffi.typeof([[struct {
$ sType;
void* pNext;
$ multiviewPerViewRenderAreas;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t perViewRenderAreaCount;
const $* pPerViewRenderAreas;
}]], mod.VkStructureType, mod.VkRect2D)
mod.VkPhysicalDevicePerStageDescriptorSetFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ perStageDescriptorSet;
$ dynamicPipelineLayout;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkBlockMatchWindowCompareModeQCOM = ffi.typeof([[enum {
VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM,
VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM,
VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_ENUM_QCOM,
}]])
mod.VkPhysicalDeviceImageProcessing2FeaturesQCOM = ffi.typeof([[struct {
$ sType;
void* pNext;
$ textureBlockMatch2;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceImageProcessing2PropertiesQCOM = ffi.typeof([[struct {
$ sType;
void* pNext;
$ maxBlockMatchWindow;
}]], mod.VkStructureType, mod.VkExtent2D)
mod.VkSamplerBlockMatchWindowCreateInfoQCOM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ windowExtent;
$ windowCompareMode;
}]], mod.VkStructureType, mod.VkExtent2D, mod.VkBlockMatchWindowCompareModeQCOM)
mod.VkCubicFilterWeightsQCOM = ffi.typeof([[enum {
VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM,
VK_CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM,
VK_CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM,
VK_CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM,
VK_CUBIC_FILTER_WEIGHTS_MAX_ENUM_QCOM,
}]])
mod.VkPhysicalDeviceCubicWeightsFeaturesQCOM = ffi.typeof([[struct {
$ sType;
void* pNext;
$ selectableCubicWeights;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkSamplerCubicWeightsCreateInfoQCOM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ cubicWeights;
}]], mod.VkStructureType, mod.VkCubicFilterWeightsQCOM)
mod.VkBlitImageCubicWeightsInfoQCOM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ cubicWeights;
}]], mod.VkStructureType, mod.VkCubicFilterWeightsQCOM)
mod.VkPhysicalDeviceYcbcrDegammaFeaturesQCOM = ffi.typeof([[struct {
$ sType;
void* pNext;
$ ycbcrDegamma;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM = ffi.typeof([[struct {
$ sType;
void* pNext;
$ enableYDegamma;
$ enableCbCrDegamma;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceCubicClampFeaturesQCOM = ffi.typeof([[struct {
$ sType;
void* pNext;
$ cubicRangeClamp;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ attachmentFeedbackLoopDynamicState;
}]], mod.VkStructureType, mod.VkBool32)
mod.PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT = ffi.typeof([[void (*)($ , $ )]], mod.VkCommandBuffer, mod.VkImageAspectFlags)
ffi.cdef([[void vkCmdSetAttachmentFeedbackLoopEnableEXT($ , $ );]], mod.VkCommandBuffer, mod.VkImageAspectFlags)
mod.VkLayeredDriverUnderlyingApiMSFT = ffi.typeof([[enum {
VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT,
VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT,
VK_LAYERED_DRIVER_UNDERLYING_API_MAX_ENUM_MSFT,
}]])
mod.VkPhysicalDeviceLayeredDriverPropertiesMSFT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ underlyingAPI;
}]], mod.VkStructureType, mod.VkLayeredDriverUnderlyingApiMSFT)
mod.VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ descriptorPoolOverallocation;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceTileMemoryHeapFeaturesQCOM = ffi.typeof([[struct {
$ sType;
void* pNext;
$ tileMemoryHeap;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceTileMemoryHeapPropertiesQCOM = ffi.typeof([[struct {
$ sType;
void* pNext;
$ queueSubmitBoundary;
$ tileBufferTransfers;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkTileMemoryRequirementsQCOM = ffi.typeof([[struct {
$ sType;
void* pNext;
$ size;
$ alignment;
}]], mod.VkStructureType, mod.VkDeviceSize, mod.VkDeviceSize)
mod.VkTileMemoryBindInfoQCOM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ memory;
}]], mod.VkStructureType, mod.VkDeviceMemory)
mod.VkTileMemorySizeInfoQCOM = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ size;
}]], mod.VkStructureType, mod.VkDeviceSize)
mod.PFN_vkCmdBindTileMemoryQCOM = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkTileMemoryBindInfoQCOM)
ffi.cdef([[void vkCmdBindTileMemoryQCOM($ , const $*);]], mod.VkCommandBuffer, mod.VkTileMemoryBindInfoQCOM)
mod.VkDecompressMemoryRegionEXT = ffi.typeof([[struct {
$ srcAddress;
$ dstAddress;
$ compressedSize;
$ decompressedSize;
}]], mod.VkDeviceAddress, mod.VkDeviceAddress, mod.VkDeviceSize, mod.VkDeviceSize)
mod.VkDecompressMemoryInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ decompressionMethod;
uint32_t regionCount;
const $* pRegions;
}]], mod.VkStructureType, mod.VkMemoryDecompressionMethodFlagsEXT, mod.VkDecompressMemoryRegionEXT)
mod.PFN_vkCmdDecompressMemoryEXT = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkDecompressMemoryInfoEXT)
mod.PFN_vkCmdDecompressMemoryIndirectCountEXT = ffi.typeof([[void (*)($ , $ , $ , $ , uint32_t , uint32_t )]], mod.VkCommandBuffer, mod.VkMemoryDecompressionMethodFlagsEXT, mod.VkDeviceAddress, mod.VkDeviceAddress)
ffi.cdef([[void vkCmdDecompressMemoryEXT($ , const $*);]], mod.VkCommandBuffer, mod.VkDecompressMemoryInfoEXT)
ffi.cdef([[void vkCmdDecompressMemoryIndirectCountEXT($ , $ , $ , $ , uint32_t , uint32_t );]], mod.VkCommandBuffer, mod.VkMemoryDecompressionMethodFlagsEXT, mod.VkDeviceAddress, mod.VkDeviceAddress)
mod.VkDisplaySurfaceStereoTypeNV = ffi.typeof([[enum {
VK_DISPLAY_SURFACE_STEREO_TYPE_NONE_NV,
VK_DISPLAY_SURFACE_STEREO_TYPE_ONBOARD_DIN_NV,
VK_DISPLAY_SURFACE_STEREO_TYPE_HDMI_3D_NV,
VK_DISPLAY_SURFACE_STEREO_TYPE_INBAND_DISPLAYPORT_NV,
VK_DISPLAY_SURFACE_STEREO_TYPE_MAX_ENUM_NV,
}]])
mod.VkDisplaySurfaceStereoCreateInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ stereoType;
}]], mod.VkStructureType, mod.VkDisplaySurfaceStereoTypeNV)
mod.VkDisplayModeStereoPropertiesNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ hdmi3DSupported;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceRawAccessChainsFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderRawAccessChains;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkExternalComputeQueueNV = ffi.typeof([[void*]])
mod.VkExternalComputeQueueDeviceCreateInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t reservedExternalQueues;
}]], mod.VkStructureType)
mod.VkExternalComputeQueueCreateInfoNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ preferredQueue;
}]], mod.VkStructureType, mod.VkQueue)
mod.VkExternalComputeQueueDataParamsNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t deviceIndex;
}]], mod.VkStructureType)
mod.VkPhysicalDeviceExternalComputeQueuePropertiesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t externalDataSize;
uint32_t maxExternalQueues;
}]], mod.VkStructureType)
mod.PFN_vkCreateExternalComputeQueueNV = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkExternalComputeQueueCreateInfoNV, mod.VkAllocationCallbacks, mod.VkExternalComputeQueueNV)
mod.PFN_vkDestroyExternalComputeQueueNV = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkExternalComputeQueueNV, mod.VkAllocationCallbacks)
mod.PFN_vkGetExternalComputeQueueDataNV = ffi.typeof([[void (*)($ , $*, void*)]], mod.VkExternalComputeQueueNV, mod.VkExternalComputeQueueDataParamsNV)
ffi.cdef([[$ vkCreateExternalComputeQueueNV($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkExternalComputeQueueCreateInfoNV, mod.VkAllocationCallbacks, mod.VkExternalComputeQueueNV)
ffi.cdef([[void vkDestroyExternalComputeQueueNV($ , $ , const $*);]], mod.VkDevice, mod.VkExternalComputeQueueNV, mod.VkAllocationCallbacks)
ffi.cdef([[void vkGetExternalComputeQueueDataNV($ , $*, void*);]], mod.VkExternalComputeQueueNV, mod.VkExternalComputeQueueDataParamsNV)
mod.VkPhysicalDeviceCommandBufferInheritanceFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ commandBufferInheritance;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderFloat16VectorAtomics;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderReplicatedComposites;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceShaderFloat8FeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderFloat8;
$ shaderFloat8CooperativeMatrix;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceRayTracingValidationFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ rayTracingValidation;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkClusterAccelerationStructureTypeNV = ffi.typeof([[enum {
VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_CLUSTERS_BOTTOM_LEVEL_NV,
VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_TRIANGLE_CLUSTER_NV,
VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_TRIANGLE_CLUSTER_TEMPLATE_NV,
VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_NV,
}]])
mod.VkClusterAccelerationStructureOpTypeNV = ffi.typeof([[enum {
VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_MOVE_OBJECTS_NV,
VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_CLUSTERS_BOTTOM_LEVEL_NV,
VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_NV,
VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_TEMPLATE_NV,
VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_INSTANTIATE_TRIANGLE_CLUSTER_NV,
VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_GET_CLUSTER_TEMPLATE_INDICES_NV,
VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_MAX_ENUM_NV,
}]])
mod.VkClusterAccelerationStructureOpModeNV = ffi.typeof([[enum {
VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_IMPLICIT_DESTINATIONS_NV,
VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_EXPLICIT_DESTINATIONS_NV,
VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_COMPUTE_SIZES_NV,
VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_MAX_ENUM_NV,
}]])
mod.VkClusterAccelerationStructureAddressResolutionFlagBitsNV = ffi.typeof([[enum {
VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_NONE_NV,
VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_IMPLICIT_DATA_BIT_NV,
VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SCRATCH_DATA_BIT_NV,
VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_ADDRESS_ARRAY_BIT_NV,
VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_SIZES_ARRAY_BIT_NV,
VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SRC_INFOS_ARRAY_BIT_NV,
VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SRC_INFOS_COUNT_BIT_NV,
VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_FLAG_BITS_MAX_ENUM_NV,
}]])
mod.VkClusterAccelerationStructureAddressResolutionFlagsNV = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkClusterAccelerationStructureClusterFlagBitsNV = ffi.typeof([[enum {
VK_CLUSTER_ACCELERATION_STRUCTURE_CLUSTER_ALLOW_DISABLE_OPACITY_MICROMAPS_NV,
VK_CLUSTER_ACCELERATION_STRUCTURE_CLUSTER_FLAG_BITS_MAX_ENUM_NV,
}]])
mod.VkClusterAccelerationStructureClusterFlagsNV = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkClusterAccelerationStructureGeometryFlagBitsNV = ffi.typeof([[enum {
VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_CULL_DISABLE_BIT_NV,
VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_NO_DUPLICATE_ANYHIT_INVOCATION_BIT_NV,
VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_OPAQUE_BIT_NV,
VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_FLAG_BITS_MAX_ENUM_NV,
}]])
mod.VkClusterAccelerationStructureGeometryFlagsNV = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkClusterAccelerationStructureIndexFormatFlagBitsNV = ffi.typeof([[enum {
VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_8BIT_NV,
VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_16BIT_NV,
VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_32BIT_NV,
VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_FLAG_BITS_MAX_ENUM_NV,
}]])
mod.VkClusterAccelerationStructureIndexFormatFlagsNV = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPhysicalDeviceClusterAccelerationStructureFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ clusterAccelerationStructure;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceClusterAccelerationStructurePropertiesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t maxVerticesPerCluster;
uint32_t maxTrianglesPerCluster;
uint32_t clusterScratchByteAlignment;
uint32_t clusterByteAlignment;
uint32_t clusterTemplateByteAlignment;
uint32_t clusterBottomLevelByteAlignment;
uint32_t clusterTemplateBoundsByteAlignment;
uint32_t maxClusterGeometryIndex;
}]], mod.VkStructureType)
mod.VkClusterAccelerationStructureClustersBottomLevelInputNV = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t maxTotalClusterCount;
uint32_t maxClusterCountPerAccelerationStructure;
}]], mod.VkStructureType)
mod.VkClusterAccelerationStructureTriangleClusterInputNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ vertexFormat;
uint32_t maxGeometryIndexValue;
uint32_t maxClusterUniqueGeometryCount;
uint32_t maxClusterTriangleCount;
uint32_t maxClusterVertexCount;
uint32_t maxTotalTriangleCount;
uint32_t maxTotalVertexCount;
uint32_t minPositionTruncateBitCount;
}]], mod.VkStructureType, mod.VkFormat)
mod.VkClusterAccelerationStructureMoveObjectsInputNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ type;
$ noMoveOverlap;
$ maxMovedBytes;
}]], mod.VkStructureType, mod.VkClusterAccelerationStructureTypeNV, mod.VkBool32, mod.VkDeviceSize)
mod.VkClusterAccelerationStructureOpInputNV = ffi.typeof([[union {
$* pClustersBottomLevel;
$* pTriangleClusters;
$* pMoveObjects;
}]], mod.VkClusterAccelerationStructureClustersBottomLevelInputNV, mod.VkClusterAccelerationStructureTriangleClusterInputNV, mod.VkClusterAccelerationStructureMoveObjectsInputNV)
mod.VkClusterAccelerationStructureInputInfoNV = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t maxAccelerationStructureCount;
$ flags;
$ opType;
$ opMode;
$ opInput;
}]], mod.VkStructureType, mod.VkBuildAccelerationStructureFlagsKHR, mod.VkClusterAccelerationStructureOpTypeNV, mod.VkClusterAccelerationStructureOpModeNV, mod.VkClusterAccelerationStructureOpInputNV)
mod.VkStridedDeviceAddressRegionKHR = ffi.typeof([[struct {
$ deviceAddress;
$ stride;
$ size;
}]], mod.VkDeviceAddress, mod.VkDeviceSize, mod.VkDeviceSize)
mod.VkClusterAccelerationStructureCommandsInfoNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ input;
$ dstImplicitData;
$ scratchData;
$ dstAddressesArray;
$ dstSizesArray;
$ srcInfosArray;
$ srcInfosCount;
$ addressResolutionFlags;
}]], mod.VkStructureType, mod.VkClusterAccelerationStructureInputInfoNV, mod.VkDeviceAddress, mod.VkDeviceAddress, mod.VkStridedDeviceAddressRegionKHR, mod.VkStridedDeviceAddressRegionKHR, mod.VkStridedDeviceAddressRegionKHR, mod.VkDeviceAddress, mod.VkClusterAccelerationStructureAddressResolutionFlagsNV)
mod.VkStridedDeviceAddressNV = ffi.typeof([[struct {
$ startAddress;
$ strideInBytes;
}]], mod.VkDeviceAddress, mod.VkDeviceSize)
mod.VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV = ffi.typeof([[struct {
uint32_t geometryIndex;
uint32_t reserved;
uint32_t geometryFlags;
}]])
mod.VkClusterAccelerationStructureMoveObjectsInfoNV = ffi.typeof([[struct {
$ srcAccelerationStructure;
}]], mod.VkDeviceAddress)
mod.VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV = ffi.typeof([[struct {
uint32_t clusterReferencesCount;
uint32_t clusterReferencesStride;
$ clusterReferences;
}]], mod.VkDeviceAddress)
mod.VkClusterAccelerationStructureBuildTriangleClusterInfoNV = ffi.typeof([[struct {
uint32_t clusterID;
$ clusterFlags;
uint32_t triangleCount;
uint32_t vertexCount;
uint32_t positionTruncateBitCount;
uint32_t indexType;
uint32_t opacityMicromapIndexType;
$ baseGeometryIndexAndGeometryFlags;
uint16_t indexBufferStride;
uint16_t vertexBufferStride;
uint16_t geometryIndexAndFlagsBufferStride;
uint16_t opacityMicromapIndexBufferStride;
$ indexBuffer;
$ vertexBuffer;
$ geometryIndexAndFlagsBuffer;
$ opacityMicromapArray;
$ opacityMicromapIndexBuffer;
}]], mod.VkClusterAccelerationStructureClusterFlagsNV, mod.VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV, mod.VkDeviceAddress, mod.VkDeviceAddress, mod.VkDeviceAddress, mod.VkDeviceAddress, mod.VkDeviceAddress)
mod.VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV = ffi.typeof([[struct {
uint32_t clusterID;
$ clusterFlags;
uint32_t triangleCount;
uint32_t vertexCount;
uint32_t positionTruncateBitCount;
uint32_t indexType;
uint32_t opacityMicromapIndexType;
$ baseGeometryIndexAndGeometryFlags;
uint16_t indexBufferStride;
uint16_t vertexBufferStride;
uint16_t geometryIndexAndFlagsBufferStride;
uint16_t opacityMicromapIndexBufferStride;
$ indexBuffer;
$ vertexBuffer;
$ geometryIndexAndFlagsBuffer;
$ opacityMicromapArray;
$ opacityMicromapIndexBuffer;
$ instantiationBoundingBoxLimit;
}]], mod.VkClusterAccelerationStructureClusterFlagsNV, mod.VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV, mod.VkDeviceAddress, mod.VkDeviceAddress, mod.VkDeviceAddress, mod.VkDeviceAddress, mod.VkDeviceAddress, mod.VkDeviceAddress)
mod.VkClusterAccelerationStructureInstantiateClusterInfoNV = ffi.typeof([[struct {
uint32_t clusterIdOffset;
uint32_t geometryIndexOffset;
uint32_t reserved;
$ clusterTemplateAddress;
$ vertexBuffer;
}]], mod.VkDeviceAddress, mod.VkStridedDeviceAddressNV)
mod.VkClusterAccelerationStructureGetTemplateIndicesInfoNV = ffi.typeof([[struct {
$ clusterTemplateAddress;
}]], mod.VkDeviceAddress)
mod.VkAccelerationStructureBuildSizesInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ accelerationStructureSize;
$ updateScratchSize;
$ buildScratchSize;
}]], mod.VkStructureType, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkDeviceSize)
mod.VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ allowClusterAccelerationStructure;
}]], mod.VkStructureType, mod.VkBool32)
mod.PFN_vkGetClusterAccelerationStructureBuildSizesNV = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkDevice, mod.VkClusterAccelerationStructureInputInfoNV, mod.VkAccelerationStructureBuildSizesInfoKHR)
mod.PFN_vkCmdBuildClusterAccelerationStructureIndirectNV = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkClusterAccelerationStructureCommandsInfoNV)
ffi.cdef([[void vkGetClusterAccelerationStructureBuildSizesNV($ , const $*, $*);]], mod.VkDevice, mod.VkClusterAccelerationStructureInputInfoNV, mod.VkAccelerationStructureBuildSizesInfoKHR)
ffi.cdef([[void vkCmdBuildClusterAccelerationStructureIndirectNV($ , const $*);]], mod.VkCommandBuffer, mod.VkClusterAccelerationStructureCommandsInfoNV)
mod.VkPartitionedAccelerationStructureOpTypeNV = ffi.typeof([[enum {
VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_WRITE_INSTANCE_NV,
VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_UPDATE_INSTANCE_NV,
VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_WRITE_PARTITION_TRANSLATION_NV,
VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_MAX_ENUM_NV,
}]])
mod.VkPartitionedAccelerationStructureInstanceFlagBitsNV = ffi.typeof([[enum {
VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_TRIANGLE_FACING_CULL_DISABLE_BIT_NV,
VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_TRIANGLE_FLIP_FACING_BIT_NV,
VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_FORCE_OPAQUE_BIT_NV,
VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_FORCE_NO_OPAQUE_BIT_NV,
VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_ENABLE_EXPLICIT_BOUNDING_BOX_NV,
VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_BITS_MAX_ENUM_NV,
}]])
mod.VkPartitionedAccelerationStructureInstanceFlagsNV = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ partitionedAccelerationStructure;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t maxPartitionCount;
}]], mod.VkStructureType)
mod.VkPartitionedAccelerationStructureFlagsNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ enablePartitionTranslation;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkBuildPartitionedAccelerationStructureIndirectCommandNV = ffi.typeof([[struct {
$ opType;
uint32_t argCount;
$ argData;
}]], mod.VkPartitionedAccelerationStructureOpTypeNV, mod.VkStridedDeviceAddressNV)
mod.VkPartitionedAccelerationStructureWriteInstanceDataNV = ffi.typeof([[struct {
$ transform;
float explicitAABB[6];
uint32_t instanceID;
uint32_t instanceMask;
uint32_t instanceContributionToHitGroupIndex;
$ instanceFlags;
uint32_t instanceIndex;
uint32_t partitionIndex;
$ accelerationStructure;
}]], mod.VkTransformMatrixKHR, mod.VkPartitionedAccelerationStructureInstanceFlagsNV, mod.VkDeviceAddress)
mod.VkPartitionedAccelerationStructureUpdateInstanceDataNV = ffi.typeof([[struct {
uint32_t instanceIndex;
uint32_t instanceContributionToHitGroupIndex;
$ accelerationStructure;
}]], mod.VkDeviceAddress)
mod.VkPartitionedAccelerationStructureWritePartitionTranslationDataNV = ffi.typeof([[struct {
uint32_t partitionIndex;
float partitionTranslation[3];
}]])
mod.VkWriteDescriptorSetPartitionedAccelerationStructureNV = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t accelerationStructureCount;
const $* pAccelerationStructures;
}]], mod.VkStructureType, mod.VkDeviceAddress)
mod.VkPartitionedAccelerationStructureInstancesInputNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ flags;
uint32_t instanceCount;
uint32_t maxInstancePerPartitionCount;
uint32_t partitionCount;
uint32_t maxInstanceInGlobalPartitionCount;
}]], mod.VkStructureType, mod.VkBuildAccelerationStructureFlagsKHR)
mod.VkBuildPartitionedAccelerationStructureInfoNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ input;
$ srcAccelerationStructureData;
$ dstAccelerationStructureData;
$ scratchData;
$ srcInfos;
$ srcInfosCount;
}]], mod.VkStructureType, mod.VkPartitionedAccelerationStructureInstancesInputNV, mod.VkDeviceAddress, mod.VkDeviceAddress, mod.VkDeviceAddress, mod.VkDeviceAddress, mod.VkDeviceAddress)
mod.PFN_vkGetPartitionedAccelerationStructuresBuildSizesNV = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkDevice, mod.VkPartitionedAccelerationStructureInstancesInputNV, mod.VkAccelerationStructureBuildSizesInfoKHR)
mod.PFN_vkCmdBuildPartitionedAccelerationStructuresNV = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkBuildPartitionedAccelerationStructureInfoNV)
ffi.cdef([[void vkGetPartitionedAccelerationStructuresBuildSizesNV($ , const $*, $*);]], mod.VkDevice, mod.VkPartitionedAccelerationStructureInstancesInputNV, mod.VkAccelerationStructureBuildSizesInfoKHR)
ffi.cdef([[void vkCmdBuildPartitionedAccelerationStructuresNV($ , const $*);]], mod.VkCommandBuffer, mod.VkBuildPartitionedAccelerationStructureInfoNV)
mod.VkIndirectExecutionSetEXT = ffi.typeof([[void*]])
mod.VkIndirectCommandsLayoutEXT = ffi.typeof([[void*]])
mod.VkIndirectExecutionSetInfoTypeEXT = ffi.typeof([[enum {
VK_INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT,
VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT,
VK_INDIRECT_EXECUTION_SET_INFO_TYPE_MAX_ENUM_EXT,
}]])
mod.VkIndirectCommandsTokenTypeEXT = ffi.typeof([[enum {
VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT,
VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_EXT,
}]])
mod.VkIndirectCommandsInputModeFlagBitsEXT = ffi.typeof([[enum {
VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT,
VK_INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT,
VK_INDIRECT_COMMANDS_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT,
}]])
mod.VkIndirectCommandsInputModeFlagsEXT = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkIndirectCommandsLayoutUsageFlagBitsEXT = ffi.typeof([[enum {
VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT,
VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_EXT,
VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_EXT,
}]])
mod.VkIndirectCommandsLayoutUsageFlagsEXT = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ deviceGeneratedCommands;
$ dynamicGeneratedPipelineLayout;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t maxIndirectPipelineCount;
uint32_t maxIndirectShaderObjectCount;
uint32_t maxIndirectSequenceCount;
uint32_t maxIndirectCommandsTokenCount;
uint32_t maxIndirectCommandsTokenOffset;
uint32_t maxIndirectCommandsIndirectStride;
$ supportedIndirectCommandsInputModes;
$ supportedIndirectCommandsShaderStages;
$ supportedIndirectCommandsShaderStagesPipelineBinding;
$ supportedIndirectCommandsShaderStagesShaderBinding;
$ deviceGeneratedCommandsTransformFeedback;
$ deviceGeneratedCommandsMultiDrawIndirectCount;
}]], mod.VkStructureType, mod.VkIndirectCommandsInputModeFlagsEXT, mod.VkShaderStageFlags, mod.VkShaderStageFlags, mod.VkShaderStageFlags, mod.VkBool32, mod.VkBool32)
mod.VkGeneratedCommandsMemoryRequirementsInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ indirectExecutionSet;
$ indirectCommandsLayout;
uint32_t maxSequenceCount;
uint32_t maxDrawCount;
}]], mod.VkStructureType, mod.VkIndirectExecutionSetEXT, mod.VkIndirectCommandsLayoutEXT)
mod.VkIndirectExecutionSetPipelineInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ initialPipeline;
uint32_t maxPipelineCount;
}]], mod.VkStructureType, mod.VkPipeline)
mod.VkIndirectExecutionSetShaderLayoutInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t setLayoutCount;
const $* pSetLayouts;
}]], mod.VkStructureType, mod.VkDescriptorSetLayout)
mod.VkIndirectExecutionSetShaderInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t shaderCount;
const $* pInitialShaders;
const $* pSetLayoutInfos;
uint32_t maxShaderCount;
uint32_t pushConstantRangeCount;
const $* pPushConstantRanges;
}]], mod.VkStructureType, mod.VkShaderEXT, mod.VkIndirectExecutionSetShaderLayoutInfoEXT, mod.VkPushConstantRange)
mod.VkIndirectExecutionSetInfoEXT = ffi.typeof([[union {
const $* pPipelineInfo;
const $* pShaderInfo;
}]], mod.VkIndirectExecutionSetPipelineInfoEXT, mod.VkIndirectExecutionSetShaderInfoEXT)
mod.VkIndirectExecutionSetCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ type;
$ info;
}]], mod.VkStructureType, mod.VkIndirectExecutionSetInfoTypeEXT, mod.VkIndirectExecutionSetInfoEXT)
mod.VkGeneratedCommandsInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ shaderStages;
$ indirectExecutionSet;
$ indirectCommandsLayout;
$ indirectAddress;
$ indirectAddressSize;
$ preprocessAddress;
$ preprocessSize;
uint32_t maxSequenceCount;
$ sequenceCountAddress;
uint32_t maxDrawCount;
}]], mod.VkStructureType, mod.VkShaderStageFlags, mod.VkIndirectExecutionSetEXT, mod.VkIndirectCommandsLayoutEXT, mod.VkDeviceAddress, mod.VkDeviceSize, mod.VkDeviceAddress, mod.VkDeviceSize, mod.VkDeviceAddress)
mod.VkWriteIndirectExecutionSetPipelineEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t index;
$ pipeline;
}]], mod.VkStructureType, mod.VkPipeline)
mod.VkIndirectCommandsPushConstantTokenEXT = ffi.typeof([[struct {
$ updateRange;
}]], mod.VkPushConstantRange)
mod.VkIndirectCommandsVertexBufferTokenEXT = ffi.typeof([[struct {
uint32_t vertexBindingUnit;
}]])
mod.VkIndirectCommandsIndexBufferTokenEXT = ffi.typeof([[struct {
$ mode;
}]], mod.VkIndirectCommandsInputModeFlagBitsEXT)
mod.VkIndirectCommandsExecutionSetTokenEXT = ffi.typeof([[struct {
$ type;
$ shaderStages;
}]], mod.VkIndirectExecutionSetInfoTypeEXT, mod.VkShaderStageFlags)
mod.VkIndirectCommandsTokenDataEXT = ffi.typeof([[union {
const $* pPushConstant;
const $* pVertexBuffer;
const $* pIndexBuffer;
const $* pExecutionSet;
}]], mod.VkIndirectCommandsPushConstantTokenEXT, mod.VkIndirectCommandsVertexBufferTokenEXT, mod.VkIndirectCommandsIndexBufferTokenEXT, mod.VkIndirectCommandsExecutionSetTokenEXT)
mod.VkIndirectCommandsLayoutTokenEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ type;
$ data;
uint32_t offset;
}]], mod.VkStructureType, mod.VkIndirectCommandsTokenTypeEXT, mod.VkIndirectCommandsTokenDataEXT)
mod.VkIndirectCommandsLayoutCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
$ shaderStages;
uint32_t indirectStride;
$ pipelineLayout;
uint32_t tokenCount;
const $* pTokens;
}]], mod.VkStructureType, mod.VkIndirectCommandsLayoutUsageFlagsEXT, mod.VkShaderStageFlags, mod.VkPipelineLayout, mod.VkIndirectCommandsLayoutTokenEXT)
mod.VkDrawIndirectCountIndirectCommandEXT = ffi.typeof([[struct {
$ bufferAddress;
uint32_t stride;
uint32_t commandCount;
}]], mod.VkDeviceAddress)
mod.VkBindVertexBufferIndirectCommandEXT = ffi.typeof([[struct {
$ bufferAddress;
uint32_t size;
uint32_t stride;
}]], mod.VkDeviceAddress)
mod.VkBindIndexBufferIndirectCommandEXT = ffi.typeof([[struct {
$ bufferAddress;
uint32_t size;
$ indexType;
}]], mod.VkDeviceAddress, mod.VkIndexType)
mod.VkGeneratedCommandsPipelineInfoEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ pipeline;
}]], mod.VkStructureType, mod.VkPipeline)
mod.VkGeneratedCommandsShaderInfoEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t shaderCount;
const $* pShaders;
}]], mod.VkStructureType, mod.VkShaderEXT)
mod.VkWriteIndirectExecutionSetShaderEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t index;
$ shader;
}]], mod.VkStructureType, mod.VkShaderEXT)
mod.PFN_vkGetGeneratedCommandsMemoryRequirementsEXT = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkDevice, mod.VkGeneratedCommandsMemoryRequirementsInfoEXT, mod.VkMemoryRequirements2)
mod.PFN_vkCmdPreprocessGeneratedCommandsEXT = ffi.typeof([[void (*)($ , const $*, $ )]], mod.VkCommandBuffer, mod.VkGeneratedCommandsInfoEXT, mod.VkCommandBuffer)
mod.PFN_vkCmdExecuteGeneratedCommandsEXT = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkCommandBuffer, mod.VkBool32, mod.VkGeneratedCommandsInfoEXT)
mod.PFN_vkCreateIndirectCommandsLayoutEXT = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkIndirectCommandsLayoutCreateInfoEXT, mod.VkAllocationCallbacks, mod.VkIndirectCommandsLayoutEXT)
mod.PFN_vkDestroyIndirectCommandsLayoutEXT = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkIndirectCommandsLayoutEXT, mod.VkAllocationCallbacks)
mod.PFN_vkCreateIndirectExecutionSetEXT = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkIndirectExecutionSetCreateInfoEXT, mod.VkAllocationCallbacks, mod.VkIndirectExecutionSetEXT)
mod.PFN_vkDestroyIndirectExecutionSetEXT = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkIndirectExecutionSetEXT, mod.VkAllocationCallbacks)
mod.PFN_vkUpdateIndirectExecutionSetPipelineEXT = ffi.typeof([[void (*)($ , $ , uint32_t , const $*)]], mod.VkDevice, mod.VkIndirectExecutionSetEXT, mod.VkWriteIndirectExecutionSetPipelineEXT)
mod.PFN_vkUpdateIndirectExecutionSetShaderEXT = ffi.typeof([[void (*)($ , $ , uint32_t , const $*)]], mod.VkDevice, mod.VkIndirectExecutionSetEXT, mod.VkWriteIndirectExecutionSetShaderEXT)
ffi.cdef([[void vkGetGeneratedCommandsMemoryRequirementsEXT($ , const $*, $*);]], mod.VkDevice, mod.VkGeneratedCommandsMemoryRequirementsInfoEXT, mod.VkMemoryRequirements2)
ffi.cdef([[void vkCmdPreprocessGeneratedCommandsEXT($ , const $*, $ );]], mod.VkCommandBuffer, mod.VkGeneratedCommandsInfoEXT, mod.VkCommandBuffer)
ffi.cdef([[void vkCmdExecuteGeneratedCommandsEXT($ , $ , const $*);]], mod.VkCommandBuffer, mod.VkBool32, mod.VkGeneratedCommandsInfoEXT)
ffi.cdef([[$ vkCreateIndirectCommandsLayoutEXT($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkIndirectCommandsLayoutCreateInfoEXT, mod.VkAllocationCallbacks, mod.VkIndirectCommandsLayoutEXT)
ffi.cdef([[void vkDestroyIndirectCommandsLayoutEXT($ , $ , const $*);]], mod.VkDevice, mod.VkIndirectCommandsLayoutEXT, mod.VkAllocationCallbacks)
ffi.cdef([[$ vkCreateIndirectExecutionSetEXT($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkIndirectExecutionSetCreateInfoEXT, mod.VkAllocationCallbacks, mod.VkIndirectExecutionSetEXT)
ffi.cdef([[void vkDestroyIndirectExecutionSetEXT($ , $ , const $*);]], mod.VkDevice, mod.VkIndirectExecutionSetEXT, mod.VkAllocationCallbacks)
ffi.cdef([[void vkUpdateIndirectExecutionSetPipelineEXT($ , $ , uint32_t , const $*);]], mod.VkDevice, mod.VkIndirectExecutionSetEXT, mod.VkWriteIndirectExecutionSetPipelineEXT)
ffi.cdef([[void vkUpdateIndirectExecutionSetShaderEXT($ , $ , uint32_t , const $*);]], mod.VkDevice, mod.VkIndirectExecutionSetEXT, mod.VkWriteIndirectExecutionSetShaderEXT)
mod.VkPhysicalDeviceImageAlignmentControlFeaturesMESA = ffi.typeof([[struct {
$ sType;
void* pNext;
$ imageAlignmentControl;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceImageAlignmentControlPropertiesMESA = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t supportedImageAlignmentMask;
}]], mod.VkStructureType)
mod.VkImageAlignmentControlCreateInfoMESA = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t maximumRequestedAlignment;
}]], mod.VkStructureType)
mod.VkPhysicalDeviceDepthClampControlFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ depthClampControl;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPipelineViewportDepthClampControlCreateInfoEXT = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ depthClampMode;
const $* pDepthClampRange;
}]], mod.VkStructureType, mod.VkDepthClampModeEXT, mod.VkDepthClampRangeEXT)
mod.VkPhysicalDeviceHdrVividFeaturesHUAWEI = ffi.typeof([[struct {
$ sType;
void* pNext;
$ hdrVivid;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkHdrVividDynamicMetadataHUAWEI = ffi.typeof([[struct {
$ sType;
const void* pNext;
size_t dynamicMetadataSize;
const void* pDynamicMetadata;
}]], mod.VkStructureType)
mod.VkCooperativeMatrixFlexibleDimensionsPropertiesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t MGranularity;
uint32_t NGranularity;
uint32_t KGranularity;
$ AType;
$ BType;
$ CType;
$ ResultType;
$ saturatingAccumulation;
$ scope;
uint32_t workgroupInvocations;
}]], mod.VkStructureType, mod.VkComponentTypeKHR, mod.VkComponentTypeKHR, mod.VkComponentTypeKHR, mod.VkComponentTypeKHR, mod.VkBool32, mod.VkScopeKHR)
mod.VkPhysicalDeviceCooperativeMatrix2FeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ cooperativeMatrixWorkgroupScope;
$ cooperativeMatrixFlexibleDimensions;
$ cooperativeMatrixReductions;
$ cooperativeMatrixConversions;
$ cooperativeMatrixPerElementOperations;
$ cooperativeMatrixTensorAddressing;
$ cooperativeMatrixBlockLoads;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceCooperativeMatrix2PropertiesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t cooperativeMatrixWorkgroupScopeMaxWorkgroupSize;
uint32_t cooperativeMatrixFlexibleDimensionsMaxDimension;
uint32_t cooperativeMatrixWorkgroupScopeReservedSharedMemory;
}]], mod.VkStructureType)
mod.PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV = ffi.typeof([[$ (*)($ , uint32_t*, $*)]], mod.VkResult, mod.VkPhysicalDevice, mod.VkCooperativeMatrixFlexibleDimensionsPropertiesNV)
ffi.cdef([[$ vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV($ , uint32_t*, $*);]], mod.VkResult, mod.VkPhysicalDevice, mod.VkCooperativeMatrixFlexibleDimensionsPropertiesNV)
mod.VkPhysicalDevicePipelineOpacityMicromapFeaturesARM = ffi.typeof([[struct {
$ sType;
void* pNext;
$ pipelineOpacityMicromap;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ vertexAttributeRobustness;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceFormatPackFeaturesARM = ffi.typeof([[struct {
$ sType;
void* pNext;
$ formatPack;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE = ffi.typeof([[struct {
$ sType;
void* pNext;
$ fragmentDensityMapLayered;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE = ffi.typeof([[struct {
$ sType;
void* pNext;
uint32_t maxFragmentDensityMapLayers;
}]], mod.VkStructureType)
mod.VkPipelineFragmentDensityMapLayeredCreateInfoVALVE = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t maxFragmentDensityMapLayers;
}]], mod.VkStructureType)
mod.VkSetPresentConfigNV = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t numFramesPerBatch;
uint32_t presentConfigFeedback;
}]], mod.VkStructureType)
mod.VkPhysicalDevicePresentMeteringFeaturesNV = ffi.typeof([[struct {
$ sType;
void* pNext;
$ presentMetering;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkRenderingEndInfoEXT = ffi.typeof([[$ ]], mod.VkRenderingEndInfoKHR)
mod.PFN_vkCmdEndRendering2EXT = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkRenderingEndInfoKHR)
ffi.cdef([[void vkCmdEndRendering2EXT($ , const $*);]], mod.VkCommandBuffer, mod.VkRenderingEndInfoKHR)
mod.VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ zeroInitializeDeviceMemory;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceShader64BitIndexingFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shader64BitIndexing;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDevicePipelineCacheIncrementalModeFeaturesSEC = ffi.typeof([[struct {
$ sType;
void* pNext;
$ pipelineCacheIncrementalMode;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkPhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT = ffi.typeof([[struct {
$ sType;
void* pNext;
$ shaderUniformBufferUnsizedArray;
}]], mod.VkStructureType, mod.VkBool32)
mod.VkBuildAccelerationStructureModeKHR = ffi.typeof([[enum {
VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR,
VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR,
VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR,
}]])
mod.VkAccelerationStructureCreateFlagBitsKHR = ffi.typeof([[enum {
VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,
VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,
VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV,
VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR,
}]])
mod.VkAccelerationStructureCreateFlagsKHR = ffi.typeof([[$ ]], mod.VkFlags)
mod.VkAccelerationStructureBuildRangeInfoKHR = ffi.typeof([[struct {
uint32_t primitiveCount;
uint32_t primitiveOffset;
uint32_t firstVertex;
uint32_t transformOffset;
}]])
mod.VkAccelerationStructureGeometryTrianglesDataKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ vertexFormat;
$ vertexData;
$ vertexStride;
uint32_t maxVertex;
$ indexType;
$ indexData;
$ transformData;
}]], mod.VkStructureType, mod.VkFormat, mod.VkDeviceOrHostAddressConstKHR, mod.VkDeviceSize, mod.VkIndexType, mod.VkDeviceOrHostAddressConstKHR, mod.VkDeviceOrHostAddressConstKHR)
mod.VkAccelerationStructureGeometryAabbsDataKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ data;
$ stride;
}]], mod.VkStructureType, mod.VkDeviceOrHostAddressConstKHR, mod.VkDeviceSize)
mod.VkAccelerationStructureGeometryInstancesDataKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ arrayOfPointers;
$ data;
}]], mod.VkStructureType, mod.VkBool32, mod.VkDeviceOrHostAddressConstKHR)
mod.VkAccelerationStructureGeometryDataKHR = ffi.typeof([[union {
$ triangles;
$ aabbs;
$ instances;
}]], mod.VkAccelerationStructureGeometryTrianglesDataKHR, mod.VkAccelerationStructureGeometryAabbsDataKHR, mod.VkAccelerationStructureGeometryInstancesDataKHR)
mod.VkAccelerationStructureGeometryKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ geometryType;
$ geometry;
$ flags;
}]], mod.VkStructureType, mod.VkGeometryTypeKHR, mod.VkAccelerationStructureGeometryDataKHR, mod.VkGeometryFlagsKHR)
mod.VkAccelerationStructureBuildGeometryInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ type;
$ flags;
$ mode;
$ srcAccelerationStructure;
$ dstAccelerationStructure;
uint32_t geometryCount;
const $* pGeometries;
const $** const ppGeometries;
$ scratchData;
}]], mod.VkStructureType, mod.VkAccelerationStructureTypeKHR, mod.VkBuildAccelerationStructureFlagsKHR, mod.VkBuildAccelerationStructureModeKHR, mod.VkAccelerationStructureKHR, mod.VkAccelerationStructureKHR, mod.VkAccelerationStructureGeometryKHR, mod.VkAccelerationStructureGeometryKHR, mod.VkDeviceOrHostAddressKHR)
mod.VkAccelerationStructureCreateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ createFlags;
$ buffer;
$ offset;
$ size;
$ type;
$ deviceAddress;
}]], mod.VkStructureType, mod.VkAccelerationStructureCreateFlagsKHR, mod.VkBuffer, mod.VkDeviceSize, mod.VkDeviceSize, mod.VkAccelerationStructureTypeKHR, mod.VkDeviceAddress)
mod.VkWriteDescriptorSetAccelerationStructureKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t accelerationStructureCount;
const $* pAccelerationStructures;
}]], mod.VkStructureType, mod.VkAccelerationStructureKHR)
mod.VkPhysicalDeviceAccelerationStructureFeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ accelerationStructure;
$ accelerationStructureCaptureReplay;
$ accelerationStructureIndirectBuild;
$ accelerationStructureHostCommands;
$ descriptorBindingAccelerationStructureUpdateAfterBind;
}]], mod.VkStructureType, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32, mod.VkBool32)
mod.VkPhysicalDeviceAccelerationStructurePropertiesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
uint64_t maxGeometryCount;
uint64_t maxInstanceCount;
uint64_t maxPrimitiveCount;
uint32_t maxPerStageDescriptorAccelerationStructures;
uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures;
uint32_t maxDescriptorSetAccelerationStructures;
uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures;
uint32_t minAccelerationStructureScratchOffsetAlignment;
}]], mod.VkStructureType)
mod.VkAccelerationStructureDeviceAddressInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ accelerationStructure;
}]], mod.VkStructureType, mod.VkAccelerationStructureKHR)
mod.VkAccelerationStructureVersionInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
const uint8_t* pVersionData;
}]], mod.VkStructureType)
mod.VkCopyAccelerationStructureToMemoryInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ src;
$ dst;
$ mode;
}]], mod.VkStructureType, mod.VkAccelerationStructureKHR, mod.VkDeviceOrHostAddressKHR, mod.VkCopyAccelerationStructureModeKHR)
mod.VkCopyMemoryToAccelerationStructureInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ src;
$ dst;
$ mode;
}]], mod.VkStructureType, mod.VkDeviceOrHostAddressConstKHR, mod.VkAccelerationStructureKHR, mod.VkCopyAccelerationStructureModeKHR)
mod.VkCopyAccelerationStructureInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ src;
$ dst;
$ mode;
}]], mod.VkStructureType, mod.VkAccelerationStructureKHR, mod.VkAccelerationStructureKHR, mod.VkCopyAccelerationStructureModeKHR)
mod.PFN_vkCreateAccelerationStructureKHR = ffi.typeof([[$ (*)($ , const $*, const $*, $*)]], mod.VkResult, mod.VkDevice, mod.VkAccelerationStructureCreateInfoKHR, mod.VkAllocationCallbacks, mod.VkAccelerationStructureKHR)
mod.PFN_vkDestroyAccelerationStructureKHR = ffi.typeof([[void (*)($ , $ , const $*)]], mod.VkDevice, mod.VkAccelerationStructureKHR, mod.VkAllocationCallbacks)
mod.PFN_vkCmdBuildAccelerationStructuresKHR = ffi.typeof([[void (*)($ , uint32_t , const $*, const $** const)]], mod.VkCommandBuffer, mod.VkAccelerationStructureBuildGeometryInfoKHR, mod.VkAccelerationStructureBuildRangeInfoKHR)
mod.PFN_vkCmdBuildAccelerationStructuresIndirectKHR = ffi.typeof([[void (*)($ , uint32_t , const $*, const $*, const uint32_t*, const uint32_t** const)]], mod.VkCommandBuffer, mod.VkAccelerationStructureBuildGeometryInfoKHR, mod.VkDeviceAddress)
mod.PFN_vkBuildAccelerationStructuresKHR = ffi.typeof([[$ (*)($ , $ , uint32_t , const $*, const $** const)]], mod.VkResult, mod.VkDevice, mod.VkDeferredOperationKHR, mod.VkAccelerationStructureBuildGeometryInfoKHR, mod.VkAccelerationStructureBuildRangeInfoKHR)
mod.PFN_vkCopyAccelerationStructureKHR = ffi.typeof([[$ (*)($ , $ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkDeferredOperationKHR, mod.VkCopyAccelerationStructureInfoKHR)
mod.PFN_vkCopyAccelerationStructureToMemoryKHR = ffi.typeof([[$ (*)($ , $ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkDeferredOperationKHR, mod.VkCopyAccelerationStructureToMemoryInfoKHR)
mod.PFN_vkCopyMemoryToAccelerationStructureKHR = ffi.typeof([[$ (*)($ , $ , const $*)]], mod.VkResult, mod.VkDevice, mod.VkDeferredOperationKHR, mod.VkCopyMemoryToAccelerationStructureInfoKHR)
mod.PFN_vkWriteAccelerationStructuresPropertiesKHR = ffi.typeof([[$ (*)($ , uint32_t , const $*, $ , size_t , void*, size_t )]], mod.VkResult, mod.VkDevice, mod.VkAccelerationStructureKHR, mod.VkQueryType)
mod.PFN_vkCmdCopyAccelerationStructureKHR = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkCopyAccelerationStructureInfoKHR)
mod.PFN_vkCmdCopyAccelerationStructureToMemoryKHR = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkCopyAccelerationStructureToMemoryInfoKHR)
mod.PFN_vkCmdCopyMemoryToAccelerationStructureKHR = ffi.typeof([[void (*)($ , const $*)]], mod.VkCommandBuffer, mod.VkCopyMemoryToAccelerationStructureInfoKHR)
mod.PFN_vkGetAccelerationStructureDeviceAddressKHR = ffi.typeof([[$ (*)($ , const $*)]], mod.VkDeviceAddress, mod.VkDevice, mod.VkAccelerationStructureDeviceAddressInfoKHR)
mod.PFN_vkCmdWriteAccelerationStructuresPropertiesKHR = ffi.typeof([[void (*)($ , uint32_t , const $*, $ , $ , uint32_t )]], mod.VkCommandBuffer, mod.VkAccelerationStructureKHR, mod.VkQueryType, mod.VkQueryPool)
mod.PFN_vkGetDeviceAccelerationStructureCompatibilityKHR = ffi.typeof([[void (*)($ , const $*, $*)]], mod.VkDevice, mod.VkAccelerationStructureVersionInfoKHR, mod.VkAccelerationStructureCompatibilityKHR)
mod.PFN_vkGetAccelerationStructureBuildSizesKHR = ffi.typeof([[void (*)($ , $ , const $*, const uint32_t*, $*)]], mod.VkDevice, mod.VkAccelerationStructureBuildTypeKHR, mod.VkAccelerationStructureBuildGeometryInfoKHR, mod.VkAccelerationStructureBuildSizesInfoKHR)
ffi.cdef([[$ vkCreateAccelerationStructureKHR($ , const $*, const $*, $*);]], mod.VkResult, mod.VkDevice, mod.VkAccelerationStructureCreateInfoKHR, mod.VkAllocationCallbacks, mod.VkAccelerationStructureKHR)
ffi.cdef([[void vkDestroyAccelerationStructureKHR($ , $ , const $*);]], mod.VkDevice, mod.VkAccelerationStructureKHR, mod.VkAllocationCallbacks)
ffi.cdef([[void vkCmdBuildAccelerationStructuresKHR($ , uint32_t , const $*, const $** const);]], mod.VkCommandBuffer, mod.VkAccelerationStructureBuildGeometryInfoKHR, mod.VkAccelerationStructureBuildRangeInfoKHR)
ffi.cdef([[void vkCmdBuildAccelerationStructuresIndirectKHR($ , uint32_t , const $*, const $*, const uint32_t*, const uint32_t** const);]], mod.VkCommandBuffer, mod.VkAccelerationStructureBuildGeometryInfoKHR, mod.VkDeviceAddress)
ffi.cdef([[$ vkBuildAccelerationStructuresKHR($ , $ , uint32_t , const $*, const $** const);]], mod.VkResult, mod.VkDevice, mod.VkDeferredOperationKHR, mod.VkAccelerationStructureBuildGeometryInfoKHR, mod.VkAccelerationStructureBuildRangeInfoKHR)
ffi.cdef([[$ vkCopyAccelerationStructureKHR($ , $ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkDeferredOperationKHR, mod.VkCopyAccelerationStructureInfoKHR)
ffi.cdef([[$ vkCopyAccelerationStructureToMemoryKHR($ , $ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkDeferredOperationKHR, mod.VkCopyAccelerationStructureToMemoryInfoKHR)
ffi.cdef([[$ vkCopyMemoryToAccelerationStructureKHR($ , $ , const $*);]], mod.VkResult, mod.VkDevice, mod.VkDeferredOperationKHR, mod.VkCopyMemoryToAccelerationStructureInfoKHR)
ffi.cdef([[$ vkWriteAccelerationStructuresPropertiesKHR($ , uint32_t , const $*, $ , size_t , void*, size_t );]], mod.VkResult, mod.VkDevice, mod.VkAccelerationStructureKHR, mod.VkQueryType)
ffi.cdef([[void vkCmdCopyAccelerationStructureKHR($ , const $*);]], mod.VkCommandBuffer, mod.VkCopyAccelerationStructureInfoKHR)
ffi.cdef([[void vkCmdCopyAccelerationStructureToMemoryKHR($ , const $*);]], mod.VkCommandBuffer, mod.VkCopyAccelerationStructureToMemoryInfoKHR)
ffi.cdef([[void vkCmdCopyMemoryToAccelerationStructureKHR($ , const $*);]], mod.VkCommandBuffer, mod.VkCopyMemoryToAccelerationStructureInfoKHR)
ffi.cdef([[$ vkGetAccelerationStructureDeviceAddressKHR($ , const $*);]], mod.VkDeviceAddress, mod.VkDevice, mod.VkAccelerationStructureDeviceAddressInfoKHR)
ffi.cdef([[void vkCmdWriteAccelerationStructuresPropertiesKHR($ , uint32_t , const $*, $ , $ , uint32_t );]], mod.VkCommandBuffer, mod.VkAccelerationStructureKHR, mod.VkQueryType, mod.VkQueryPool)
ffi.cdef([[void vkGetDeviceAccelerationStructureCompatibilityKHR($ , const $*, $*);]], mod.VkDevice, mod.VkAccelerationStructureVersionInfoKHR, mod.VkAccelerationStructureCompatibilityKHR)
ffi.cdef([[void vkGetAccelerationStructureBuildSizesKHR($ , $ , const $*, const uint32_t*, $*);]], mod.VkDevice, mod.VkAccelerationStructureBuildTypeKHR, mod.VkAccelerationStructureBuildGeometryInfoKHR, mod.VkAccelerationStructureBuildSizesInfoKHR)
mod.VkShaderGroupShaderKHR = ffi.typeof([[enum {
VK_SHADER_GROUP_SHADER_GENERAL_KHR,
VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR,
VK_SHADER_GROUP_SHADER_ANY_HIT_KHR,
VK_SHADER_GROUP_SHADER_INTERSECTION_KHR,
VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR,
}]])
mod.VkRayTracingShaderGroupCreateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ type;
uint32_t generalShader;
uint32_t closestHitShader;
uint32_t anyHitShader;
uint32_t intersectionShader;
const void* pShaderGroupCaptureReplayHandle;
}]], mod.VkStructureType, mod.VkRayTracingShaderGroupTypeKHR)
mod.VkRayTracingPipelineInterfaceCreateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
uint32_t maxPipelineRayPayloadSize;
uint32_t maxPipelineRayHitAttributeSize;
}]], mod.VkStructureType)
mod.VkRayTracingPipelineCreateInfoKHR = ffi.typeof([[struct {
$ sType;
const void* pNext;
$ flags;
uint32_t stageCount;
const $* pStages;
uint32_t groupCount;
const $* pGroups;
uint32_t maxPipelineRayRecursionDepth;
const $* pLibraryInfo;
const $* pLibraryInterface;
const $* pDynamicState;
$ layout;
$ basePipelineHandle;
int32_t basePipelineIndex;
}]], mod.VkStructureType, mod.VkPipelineCreateFlags, mod.VkPipelineShaderStageCreateInfo, mod.VkRayTracingShaderGroupCreateInfoKHR, mod.VkPipelineLibraryCreateInfoKHR, mod.VkRayTracingPipelineInterfaceCreateInfoKHR, mod.VkPipelineDynamicStateCreateInfo, mod.VkPipelineLayout, mod.VkPipeline)
mod.VkPhysicalDeviceRayTracingPipelineFeaturesKHR = ffi.typeof([[struct {
$ sType;
void* pNext;
$ ra
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment