15933 lines
598 KiB
Zig
15933 lines
598 KiB
Zig
//
|
|
// Copyright (c) 2015-2020 The Khronos Group Inc.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
//
|
|
|
|
//
|
|
// This header is generated from the Khronos Vulkan XML API Registry.
|
|
//
|
|
//
|
|
|
|
const std = @import("std");
|
|
const builtin = @import("builtin");
|
|
const assert = std.debug.assert;
|
|
|
|
pub const CString = [*:0]const u8;
|
|
pub fn FlagsMixin(comptime FlagType: type) type {
|
|
comptime assert(@sizeOf(FlagType) == 4);
|
|
return struct {
|
|
pub const IntType = Flags;
|
|
pub fn toInt(self: FlagType) Flags {
|
|
return @bitCast(Flags, self);
|
|
}
|
|
pub fn fromInt(value: Flags) FlagType {
|
|
return @bitCast(FlagType, value);
|
|
}
|
|
pub fn with(a: FlagType, b: FlagType) FlagType {
|
|
return fromInt(toInt(a) | toInt(b));
|
|
}
|
|
pub fn only(a: FlagType, b: FlagType) FlagType {
|
|
return fromInt(toInt(a) & toInt(b));
|
|
}
|
|
pub fn without(a: FlagType, b: FlagType) FlagType {
|
|
return fromInt(toInt(a) & ~toInt(b));
|
|
}
|
|
pub fn hasAllSet(a: FlagType, b: FlagType) bool {
|
|
return (toInt(a) & toInt(b)) == toInt(b);
|
|
}
|
|
pub fn hasAnySet(a: FlagType, b: FlagType) bool {
|
|
return (toInt(a) & toInt(b)) != 0;
|
|
}
|
|
pub fn isEmpty(a: FlagType) bool {
|
|
return toInt(a) == 0;
|
|
}
|
|
};
|
|
}
|
|
|
|
pub const CallConv = if (builtin.os.tag == .windows)
|
|
std.os.windows.WINAPI
|
|
else if (builtin.abi == .android and (builtin.cpu.arch.isARM() or builtin.cpu.arch.isThumb()) and builtin.Target.arm.featureSetHas(builtin.cpu.features, .has_v7) and builtin.cpu.arch.ptrBitWidth() == 32)
|
|
// On Android 32-bit ARM targets, Vulkan functions use the "hardfloat"
|
|
// calling convention, i.e. float parameters are passed in registers. This
|
|
// is true even if the rest of the application passes floats on the stack,
|
|
// as it does by default when compiling for the armeabi-v7a NDK ABI.
|
|
builtin.CallingConvention.AAPCSVFP
|
|
else
|
|
builtin.CallingConvention.C;
|
|
|
|
|
|
pub const VERSION_1_0 = 1;
|
|
pub fn MAKE_VERSION(major: u32, minor: u32, patch: u32) u32 { return @shlExact(major, 22) | @shlExact(minor, 12) | patch; }
|
|
|
|
// DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead.
|
|
//pub const API_VERSION = MAKE_VERSION(1, 0, 0); // Patch version should always be set to 0
|
|
|
|
// Vulkan 1.0 version number
|
|
pub const API_VERSION_1_0 = MAKE_VERSION(1, 0, 0);// Patch version should always be set to 0
|
|
|
|
pub fn VERSION_MAJOR(version: u32) u32 { return version >> 22; }
|
|
pub fn VERSION_MINOR(version: u32) u32 { return (version >> 12) & 0x3ff; }
|
|
pub fn VERSION_PATCH(version: u32) u32 { return version & 0xfff; }
|
|
|
|
// Version of this file
|
|
pub const HEADER_VERSION = 132;
|
|
|
|
pub const Flags = u32;
|
|
pub const Bool32 = u32;
|
|
pub const DeviceSize = u64;
|
|
pub const SampleMask = u32;
|
|
|
|
pub const Instance = enum(usize) { Null = 0, _ };
|
|
pub const PhysicalDevice = enum(usize) { Null = 0, _ };
|
|
pub const Device = enum(usize) { Null = 0, _ };
|
|
pub const Queue = enum(usize) { Null = 0, _ };
|
|
pub const Semaphore = enum(u64) { Null = 0, _ };
|
|
pub const CommandBuffer = enum(usize) { Null = 0, _ };
|
|
pub const Fence = enum(u64) { Null = 0, _ };
|
|
pub const DeviceMemory = enum(u64) { Null = 0, _ };
|
|
pub const Buffer = enum(u64) { Null = 0, _ };
|
|
pub const Image = enum(u64) { Null = 0, _ };
|
|
pub const Event = enum(u64) { Null = 0, _ };
|
|
pub const QueryPool = enum(u64) { Null = 0, _ };
|
|
pub const BufferView = enum(u64) { Null = 0, _ };
|
|
pub const ImageView = enum(u64) { Null = 0, _ };
|
|
pub const ShaderModule = enum(u64) { Null = 0, _ };
|
|
pub const PipelineCache = enum(u64) { Null = 0, _ };
|
|
pub const PipelineLayout = enum(u64) { Null = 0, _ };
|
|
pub const RenderPass = enum(u64) { Null = 0, _ };
|
|
pub const Pipeline = enum(u64) { Null = 0, _ };
|
|
pub const DescriptorSetLayout = enum(u64) { Null = 0, _ };
|
|
pub const Sampler = enum(u64) { Null = 0, _ };
|
|
pub const DescriptorPool = enum(u64) { Null = 0, _ };
|
|
pub const DescriptorSet = enum(u64) { Null = 0, _ };
|
|
pub const Framebuffer = enum(u64) { Null = 0, _ };
|
|
pub const CommandPool = enum(u64) { Null = 0, _ };
|
|
|
|
pub const LOD_CLAMP_NONE = @as(f32, 1000.0);
|
|
pub const REMAINING_MIP_LEVELS = (~@as(u32, 0));
|
|
pub const REMAINING_ARRAY_LAYERS = (~@as(u32, 0));
|
|
pub const WHOLE_SIZE = (~@as(u64, 0));
|
|
pub const ATTACHMENT_UNUSED = (~@as(u32, 0));
|
|
pub const TRUE = 1;
|
|
pub const FALSE = 0;
|
|
pub const QUEUE_FAMILY_IGNORED = (~@as(u32, 0));
|
|
pub const SUBPASS_EXTERNAL = (~@as(u32, 0));
|
|
pub const MAX_PHYSICAL_DEVICE_NAME_SIZE = 256;
|
|
pub const UUID_SIZE = 16;
|
|
pub const MAX_MEMORY_TYPES = 32;
|
|
pub const MAX_MEMORY_HEAPS = 16;
|
|
pub const MAX_EXTENSION_NAME_SIZE = 256;
|
|
pub const MAX_DESCRIPTION_SIZE = 256;
|
|
|
|
pub const PipelineCacheHeaderVersion = enum(i32) {
|
|
ONE = 1,
|
|
_,
|
|
};
|
|
|
|
pub const Result = enum(i32) {
|
|
SUCCESS = 0,
|
|
NOT_READY = 1,
|
|
TIMEOUT = 2,
|
|
EVENT_SET = 3,
|
|
EVENT_RESET = 4,
|
|
INCOMPLETE = 5,
|
|
ERROR_OUT_OF_HOST_MEMORY = -1,
|
|
ERROR_OUT_OF_DEVICE_MEMORY = -2,
|
|
ERROR_INITIALIZATION_FAILED = -3,
|
|
ERROR_DEVICE_LOST = -4,
|
|
ERROR_MEMORY_MAP_FAILED = -5,
|
|
ERROR_LAYER_NOT_PRESENT = -6,
|
|
ERROR_EXTENSION_NOT_PRESENT = -7,
|
|
ERROR_FEATURE_NOT_PRESENT = -8,
|
|
ERROR_INCOMPATIBLE_DRIVER = -9,
|
|
ERROR_TOO_MANY_OBJECTS = -10,
|
|
ERROR_FORMAT_NOT_SUPPORTED = -11,
|
|
ERROR_FRAGMENTED_POOL = -12,
|
|
ERROR_UNKNOWN = -13,
|
|
ERROR_OUT_OF_POOL_MEMORY = -1000069000,
|
|
ERROR_INVALID_EXTERNAL_HANDLE = -1000072003,
|
|
ERROR_FRAGMENTATION = -1000161000,
|
|
ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000,
|
|
ERROR_SURFACE_LOST_KHR = -1000000000,
|
|
ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
|
|
SUBOPTIMAL_KHR = 1000001003,
|
|
ERROR_OUT_OF_DATE_KHR = -1000001004,
|
|
ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
|
|
ERROR_VALIDATION_FAILED_EXT = -1000011001,
|
|
ERROR_INVALID_SHADER_NV = -1000012000,
|
|
ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000,
|
|
ERROR_NOT_PERMITTED_EXT = -1000174001,
|
|
ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000,
|
|
_,
|
|
|
|
const Self = @This();
|
|
pub const ERROR_OUT_OF_POOL_MEMORY_KHR = Self.ERROR_OUT_OF_POOL_MEMORY;
|
|
pub const ERROR_INVALID_EXTERNAL_HANDLE_KHR = Self.ERROR_INVALID_EXTERNAL_HANDLE;
|
|
pub const ERROR_FRAGMENTATION_EXT = Self.ERROR_FRAGMENTATION;
|
|
pub const ERROR_INVALID_DEVICE_ADDRESS_EXT = Self.ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS;
|
|
pub const ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR = Self.ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS;
|
|
};
|
|
|
|
pub const StructureType = enum(i32) {
|
|
APPLICATION_INFO = 0,
|
|
INSTANCE_CREATE_INFO = 1,
|
|
DEVICE_QUEUE_CREATE_INFO = 2,
|
|
DEVICE_CREATE_INFO = 3,
|
|
SUBMIT_INFO = 4,
|
|
MEMORY_ALLOCATE_INFO = 5,
|
|
MAPPED_MEMORY_RANGE = 6,
|
|
BIND_SPARSE_INFO = 7,
|
|
FENCE_CREATE_INFO = 8,
|
|
SEMAPHORE_CREATE_INFO = 9,
|
|
EVENT_CREATE_INFO = 10,
|
|
QUERY_POOL_CREATE_INFO = 11,
|
|
BUFFER_CREATE_INFO = 12,
|
|
BUFFER_VIEW_CREATE_INFO = 13,
|
|
IMAGE_CREATE_INFO = 14,
|
|
IMAGE_VIEW_CREATE_INFO = 15,
|
|
SHADER_MODULE_CREATE_INFO = 16,
|
|
PIPELINE_CACHE_CREATE_INFO = 17,
|
|
PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
|
|
PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
|
|
PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
|
|
PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
|
|
PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
|
|
PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
|
|
PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
|
|
PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
|
|
PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
|
|
PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
|
|
GRAPHICS_PIPELINE_CREATE_INFO = 28,
|
|
COMPUTE_PIPELINE_CREATE_INFO = 29,
|
|
PIPELINE_LAYOUT_CREATE_INFO = 30,
|
|
SAMPLER_CREATE_INFO = 31,
|
|
DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
|
|
DESCRIPTOR_POOL_CREATE_INFO = 33,
|
|
DESCRIPTOR_SET_ALLOCATE_INFO = 34,
|
|
WRITE_DESCRIPTOR_SET = 35,
|
|
COPY_DESCRIPTOR_SET = 36,
|
|
FRAMEBUFFER_CREATE_INFO = 37,
|
|
RENDER_PASS_CREATE_INFO = 38,
|
|
COMMAND_POOL_CREATE_INFO = 39,
|
|
COMMAND_BUFFER_ALLOCATE_INFO = 40,
|
|
COMMAND_BUFFER_INHERITANCE_INFO = 41,
|
|
COMMAND_BUFFER_BEGIN_INFO = 42,
|
|
RENDER_PASS_BEGIN_INFO = 43,
|
|
BUFFER_MEMORY_BARRIER = 44,
|
|
IMAGE_MEMORY_BARRIER = 45,
|
|
MEMORY_BARRIER = 46,
|
|
LOADER_INSTANCE_CREATE_INFO = 47,
|
|
LOADER_DEVICE_CREATE_INFO = 48,
|
|
PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
|
|
BIND_BUFFER_MEMORY_INFO = 1000157000,
|
|
BIND_IMAGE_MEMORY_INFO = 1000157001,
|
|
PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
|
|
MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
|
|
MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
|
|
MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
|
|
DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
|
|
DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
|
|
DEVICE_GROUP_SUBMIT_INFO = 1000060005,
|
|
DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
|
|
BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
|
|
BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
|
|
PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
|
|
DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
|
|
BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
|
|
IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
|
|
IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
|
|
MEMORY_REQUIREMENTS_2 = 1000146003,
|
|
SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
|
|
PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
|
|
PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
|
|
FORMAT_PROPERTIES_2 = 1000059002,
|
|
IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
|
|
PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
|
|
QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
|
|
PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
|
|
SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
|
|
PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
|
|
PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
|
|
RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
|
|
IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
|
|
PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
|
|
RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
|
|
PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
|
|
PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
|
|
PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000,
|
|
PROTECTED_SUBMIT_INFO = 1000145000,
|
|
PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
|
|
PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
|
|
DEVICE_QUEUE_INFO_2 = 1000145003,
|
|
SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
|
|
SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
|
|
BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
|
|
IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
|
|
PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
|
|
SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
|
|
DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
|
|
PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
|
|
EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
|
|
PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
|
|
EXTERNAL_BUFFER_PROPERTIES = 1000071003,
|
|
PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
|
|
EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
|
|
EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
|
|
EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
|
|
PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
|
|
EXTERNAL_FENCE_PROPERTIES = 1000112001,
|
|
EXPORT_FENCE_CREATE_INFO = 1000113000,
|
|
EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
|
|
PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
|
|
EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
|
|
PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
|
|
DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
|
|
PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000,
|
|
PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49,
|
|
PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50,
|
|
PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51,
|
|
PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52,
|
|
IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000,
|
|
ATTACHMENT_DESCRIPTION_2 = 1000109000,
|
|
ATTACHMENT_REFERENCE_2 = 1000109001,
|
|
SUBPASS_DESCRIPTION_2 = 1000109002,
|
|
SUBPASS_DEPENDENCY_2 = 1000109003,
|
|
RENDER_PASS_CREATE_INFO_2 = 1000109004,
|
|
SUBPASS_BEGIN_INFO = 1000109005,
|
|
SUBPASS_END_INFO = 1000109006,
|
|
PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = 1000177000,
|
|
PHYSICAL_DEVICE_DRIVER_PROPERTIES = 1000196000,
|
|
PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = 1000180000,
|
|
PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = 1000082000,
|
|
PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = 1000197000,
|
|
DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = 1000161000,
|
|
PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = 1000161001,
|
|
PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = 1000161002,
|
|
DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = 1000161003,
|
|
DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = 1000161004,
|
|
PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = 1000199000,
|
|
SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = 1000199001,
|
|
PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000,
|
|
IMAGE_STENCIL_USAGE_CREATE_INFO = 1000246000,
|
|
PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = 1000130000,
|
|
SAMPLER_REDUCTION_MODE_CREATE_INFO = 1000130001,
|
|
PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = 1000211000,
|
|
PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = 1000108000,
|
|
FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = 1000108001,
|
|
FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = 1000108002,
|
|
RENDER_PASS_ATTACHMENT_BEGIN_INFO = 1000108003,
|
|
PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = 1000253000,
|
|
PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000,
|
|
PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = 1000241000,
|
|
ATTACHMENT_REFERENCE_STENCIL_LAYOUT = 1000241001,
|
|
ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = 1000241002,
|
|
PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = 1000261000,
|
|
PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = 1000207000,
|
|
PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = 1000207001,
|
|
SEMAPHORE_TYPE_CREATE_INFO = 1000207002,
|
|
TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003,
|
|
SEMAPHORE_WAIT_INFO = 1000207004,
|
|
SEMAPHORE_SIGNAL_INFO = 1000207005,
|
|
PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = 1000257000,
|
|
BUFFER_DEVICE_ADDRESS_INFO = 1000244001,
|
|
BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = 1000257002,
|
|
MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = 1000257003,
|
|
DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = 1000257004,
|
|
SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
|
|
PRESENT_INFO_KHR = 1000001001,
|
|
DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
|
|
IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
|
|
BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
|
|
ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
|
|
DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
|
|
DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
|
|
DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
|
|
DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
|
|
DISPLAY_PRESENT_INFO_KHR = 1000003000,
|
|
XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
|
|
XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
|
|
WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
|
|
ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
|
|
WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
|
|
DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
|
|
PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
|
|
DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
|
|
DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
|
|
DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
|
|
DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
|
|
DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
|
|
DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
|
|
PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000,
|
|
PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,
|
|
PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,
|
|
IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000,
|
|
TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
|
|
STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000,
|
|
PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
|
|
EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
|
|
EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
|
|
IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
|
|
EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
|
|
WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
|
|
VALIDATION_FLAGS_EXT = 1000061000,
|
|
VI_SURFACE_CREATE_INFO_NN = 1000062000,
|
|
PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = 1000066000,
|
|
IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
|
|
PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
|
|
IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
|
|
EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
|
|
MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
|
|
MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003,
|
|
IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
|
|
MEMORY_FD_PROPERTIES_KHR = 1000074001,
|
|
MEMORY_GET_FD_INFO_KHR = 1000074002,
|
|
WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
|
|
IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
|
|
EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
|
|
D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
|
|
SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003,
|
|
IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
|
|
SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
|
|
PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
|
|
COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
|
|
PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
|
|
CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
|
|
PRESENT_REGIONS_KHR = 1000084000,
|
|
OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
|
|
INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
|
|
CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002,
|
|
CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003,
|
|
DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004,
|
|
DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005,
|
|
PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
|
|
SURFACE_CAPABILITIES_2_EXT = 1000090000,
|
|
DISPLAY_POWER_INFO_EXT = 1000091000,
|
|
DEVICE_EVENT_INFO_EXT = 1000091001,
|
|
DISPLAY_EVENT_INFO_EXT = 1000091002,
|
|
SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
|
|
PRESENT_TIMES_INFO_GOOGLE = 1000092000,
|
|
PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
|
|
PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
|
|
PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
|
|
PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
|
|
PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
|
|
PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
|
|
PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000,
|
|
PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001,
|
|
HDR_METADATA_EXT = 1000105000,
|
|
SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
|
|
IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
|
|
EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
|
|
FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
|
|
IMPORT_FENCE_FD_INFO_KHR = 1000115000,
|
|
FENCE_GET_FD_INFO_KHR = 1000115001,
|
|
PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = 1000116000,
|
|
PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = 1000116001,
|
|
QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = 1000116002,
|
|
PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003,
|
|
ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004,
|
|
PERFORMANCE_COUNTER_KHR = 1000116005,
|
|
PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006,
|
|
PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
|
|
SURFACE_CAPABILITIES_2_KHR = 1000119001,
|
|
SURFACE_FORMAT_2_KHR = 1000119002,
|
|
DISPLAY_PROPERTIES_2_KHR = 1000121000,
|
|
DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
|
|
DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
|
|
DISPLAY_PLANE_INFO_2_KHR = 1000121003,
|
|
DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
|
|
IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
|
|
MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
|
|
DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
|
|
DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
|
|
DEBUG_UTILS_LABEL_EXT = 1000128002,
|
|
DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
|
|
DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
|
|
ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
|
|
ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
|
|
ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
|
|
IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
|
|
MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
|
|
EXTERNAL_FORMAT_ANDROID = 1000129005,
|
|
PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = 1000138000,
|
|
PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = 1000138001,
|
|
WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = 1000138002,
|
|
DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = 1000138003,
|
|
SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
|
|
RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
|
|
PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
|
|
PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
|
|
MULTISAMPLE_PROPERTIES_EXT = 1000143004,
|
|
PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
|
|
PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
|
|
PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
|
|
PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
|
|
PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
|
|
PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000,
|
|
PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001,
|
|
DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000,
|
|
DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158001,
|
|
PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002,
|
|
IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003,
|
|
IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004,
|
|
IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005,
|
|
VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
|
|
SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
|
|
PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
|
|
PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
|
|
PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
|
|
PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
|
|
RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000,
|
|
ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001,
|
|
GEOMETRY_NV = 1000165003,
|
|
GEOMETRY_TRIANGLES_NV = 1000165004,
|
|
GEOMETRY_AABB_NV = 1000165005,
|
|
BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006,
|
|
WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007,
|
|
ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008,
|
|
PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009,
|
|
RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011,
|
|
ACCELERATION_STRUCTURE_INFO_NV = 1000165012,
|
|
PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
|
|
PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
|
|
PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000,
|
|
FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001,
|
|
DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000,
|
|
IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
|
|
MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
|
|
PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
|
|
PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000,
|
|
PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000,
|
|
CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000,
|
|
PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
|
|
DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000,
|
|
PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
|
|
PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001,
|
|
PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002,
|
|
PRESENT_FRAME_TOKEN_GGP = 1000191000,
|
|
PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000192000,
|
|
PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000,
|
|
PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000,
|
|
PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001,
|
|
PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000,
|
|
PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000,
|
|
PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000,
|
|
PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002,
|
|
CHECKPOINT_DATA_NV = 1000206000,
|
|
QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
|
|
PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000,
|
|
QUERY_POOL_CREATE_INFO_INTEL = 1000210000,
|
|
INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001,
|
|
PERFORMANCE_MARKER_INFO_INTEL = 1000210002,
|
|
PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003,
|
|
PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004,
|
|
PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005,
|
|
PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000,
|
|
DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000,
|
|
SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001,
|
|
IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,
|
|
METAL_SURFACE_CREATE_INFO_EXT = 1000217000,
|
|
PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000,
|
|
PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001,
|
|
RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002,
|
|
PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = 1000225000,
|
|
PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = 1000225001,
|
|
PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = 1000225002,
|
|
PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000,
|
|
PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000,
|
|
PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000,
|
|
PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000,
|
|
MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001,
|
|
SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000,
|
|
PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000,
|
|
PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000,
|
|
BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002,
|
|
PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = 1000245000,
|
|
VALIDATION_FEATURES_EXT = 1000247000,
|
|
PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000,
|
|
COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001,
|
|
PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002,
|
|
PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000,
|
|
PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001,
|
|
FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002,
|
|
PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000,
|
|
PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000,
|
|
SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000,
|
|
SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002,
|
|
SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001,
|
|
HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000,
|
|
PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = 1000259000,
|
|
PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = 1000259001,
|
|
PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = 1000259002,
|
|
PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = 1000265000,
|
|
PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000,
|
|
PIPELINE_INFO_KHR = 1000269001,
|
|
PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002,
|
|
PIPELINE_EXECUTABLE_INFO_KHR = 1000269003,
|
|
PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004,
|
|
PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005,
|
|
PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = 1000276000,
|
|
PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000,
|
|
PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = 1000281001,
|
|
_,
|
|
|
|
const Self = @This();
|
|
pub const PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = Self.PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES;
|
|
pub const PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = Self.PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES;
|
|
pub const DEBUG_REPORT_CREATE_INFO_EXT = Self.DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT;
|
|
pub const RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = Self.RENDER_PASS_MULTIVIEW_CREATE_INFO;
|
|
pub const PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = Self.PHYSICAL_DEVICE_MULTIVIEW_FEATURES;
|
|
pub const PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = Self.PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES;
|
|
pub const PHYSICAL_DEVICE_FEATURES_2_KHR = Self.PHYSICAL_DEVICE_FEATURES_2;
|
|
pub const PHYSICAL_DEVICE_PROPERTIES_2_KHR = Self.PHYSICAL_DEVICE_PROPERTIES_2;
|
|
pub const FORMAT_PROPERTIES_2_KHR = Self.FORMAT_PROPERTIES_2;
|
|
pub const IMAGE_FORMAT_PROPERTIES_2_KHR = Self.IMAGE_FORMAT_PROPERTIES_2;
|
|
pub const PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = Self.PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2;
|
|
pub const QUEUE_FAMILY_PROPERTIES_2_KHR = Self.QUEUE_FAMILY_PROPERTIES_2;
|
|
pub const PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = Self.PHYSICAL_DEVICE_MEMORY_PROPERTIES_2;
|
|
pub const SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = Self.SPARSE_IMAGE_FORMAT_PROPERTIES_2;
|
|
pub const PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = Self.PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2;
|
|
pub const MEMORY_ALLOCATE_FLAGS_INFO_KHR = Self.MEMORY_ALLOCATE_FLAGS_INFO;
|
|
pub const DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = Self.DEVICE_GROUP_RENDER_PASS_BEGIN_INFO;
|
|
pub const DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = Self.DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO;
|
|
pub const DEVICE_GROUP_SUBMIT_INFO_KHR = Self.DEVICE_GROUP_SUBMIT_INFO;
|
|
pub const DEVICE_GROUP_BIND_SPARSE_INFO_KHR = Self.DEVICE_GROUP_BIND_SPARSE_INFO;
|
|
pub const BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = Self.BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO;
|
|
pub const BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = Self.BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO;
|
|
pub const PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = Self.PHYSICAL_DEVICE_GROUP_PROPERTIES;
|
|
pub const DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = Self.DEVICE_GROUP_DEVICE_CREATE_INFO;
|
|
pub const PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = Self.PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO;
|
|
pub const EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = Self.EXTERNAL_IMAGE_FORMAT_PROPERTIES;
|
|
pub const PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = Self.PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO;
|
|
pub const EXTERNAL_BUFFER_PROPERTIES_KHR = Self.EXTERNAL_BUFFER_PROPERTIES;
|
|
pub const PHYSICAL_DEVICE_ID_PROPERTIES_KHR = Self.PHYSICAL_DEVICE_ID_PROPERTIES;
|
|
pub const EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = Self.EXTERNAL_MEMORY_BUFFER_CREATE_INFO;
|
|
pub const EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = Self.EXTERNAL_MEMORY_IMAGE_CREATE_INFO;
|
|
pub const EXPORT_MEMORY_ALLOCATE_INFO_KHR = Self.EXPORT_MEMORY_ALLOCATE_INFO;
|
|
pub const PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = Self.PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO;
|
|
pub const EXTERNAL_SEMAPHORE_PROPERTIES_KHR = Self.EXTERNAL_SEMAPHORE_PROPERTIES;
|
|
pub const EXPORT_SEMAPHORE_CREATE_INFO_KHR = Self.EXPORT_SEMAPHORE_CREATE_INFO;
|
|
pub const PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR = Self.PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES;
|
|
pub const PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = Self.PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES;
|
|
pub const PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = Self.PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES;
|
|
pub const DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = Self.DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO;
|
|
pub const SURFACE_CAPABILITIES2_EXT = Self.SURFACE_CAPABILITIES_2_EXT;
|
|
pub const PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR = Self.PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES;
|
|
pub const FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR = Self.FRAMEBUFFER_ATTACHMENTS_CREATE_INFO;
|
|
pub const FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR = Self.FRAMEBUFFER_ATTACHMENT_IMAGE_INFO;
|
|
pub const RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR = Self.RENDER_PASS_ATTACHMENT_BEGIN_INFO;
|
|
pub const ATTACHMENT_DESCRIPTION_2_KHR = Self.ATTACHMENT_DESCRIPTION_2;
|
|
pub const ATTACHMENT_REFERENCE_2_KHR = Self.ATTACHMENT_REFERENCE_2;
|
|
pub const SUBPASS_DESCRIPTION_2_KHR = Self.SUBPASS_DESCRIPTION_2;
|
|
pub const SUBPASS_DEPENDENCY_2_KHR = Self.SUBPASS_DEPENDENCY_2;
|
|
pub const RENDER_PASS_CREATE_INFO_2_KHR = Self.RENDER_PASS_CREATE_INFO_2;
|
|
pub const SUBPASS_BEGIN_INFO_KHR = Self.SUBPASS_BEGIN_INFO;
|
|
pub const SUBPASS_END_INFO_KHR = Self.SUBPASS_END_INFO;
|
|
pub const PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = Self.PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO;
|
|
pub const EXTERNAL_FENCE_PROPERTIES_KHR = Self.EXTERNAL_FENCE_PROPERTIES;
|
|
pub const EXPORT_FENCE_CREATE_INFO_KHR = Self.EXPORT_FENCE_CREATE_INFO;
|
|
pub const PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = Self.PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES;
|
|
pub const RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = Self.RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO;
|
|
pub const IMAGE_VIEW_USAGE_CREATE_INFO_KHR = Self.IMAGE_VIEW_USAGE_CREATE_INFO;
|
|
pub const PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = Self.PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO;
|
|
pub const PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = Self.PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES;
|
|
pub const PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = Self.PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES;
|
|
pub const MEMORY_DEDICATED_REQUIREMENTS_KHR = Self.MEMORY_DEDICATED_REQUIREMENTS;
|
|
pub const MEMORY_DEDICATED_ALLOCATE_INFO_KHR = Self.MEMORY_DEDICATED_ALLOCATE_INFO;
|
|
pub const PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = Self.PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES;
|
|
pub const SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = Self.SAMPLER_REDUCTION_MODE_CREATE_INFO;
|
|
pub const BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = Self.BUFFER_MEMORY_REQUIREMENTS_INFO_2;
|
|
pub const IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = Self.IMAGE_MEMORY_REQUIREMENTS_INFO_2;
|
|
pub const IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = Self.IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2;
|
|
pub const MEMORY_REQUIREMENTS_2_KHR = Self.MEMORY_REQUIREMENTS_2;
|
|
pub const SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = Self.SPARSE_IMAGE_MEMORY_REQUIREMENTS_2;
|
|
pub const IMAGE_FORMAT_LIST_CREATE_INFO_KHR = Self.IMAGE_FORMAT_LIST_CREATE_INFO;
|
|
pub const SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = Self.SAMPLER_YCBCR_CONVERSION_CREATE_INFO;
|
|
pub const SAMPLER_YCBCR_CONVERSION_INFO_KHR = Self.SAMPLER_YCBCR_CONVERSION_INFO;
|
|
pub const BIND_IMAGE_PLANE_MEMORY_INFO_KHR = Self.BIND_IMAGE_PLANE_MEMORY_INFO;
|
|
pub const IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = Self.IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO;
|
|
pub const PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = Self.PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES;
|
|
pub const SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = Self.SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES;
|
|
pub const BIND_BUFFER_MEMORY_INFO_KHR = Self.BIND_BUFFER_MEMORY_INFO;
|
|
pub const BIND_IMAGE_MEMORY_INFO_KHR = Self.BIND_IMAGE_MEMORY_INFO;
|
|
pub const DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = Self.DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO;
|
|
pub const PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = Self.PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES;
|
|
pub const PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = Self.PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES;
|
|
pub const DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = Self.DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO;
|
|
pub const DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = Self.DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT;
|
|
pub const PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = Self.PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES;
|
|
pub const DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = Self.DESCRIPTOR_SET_LAYOUT_SUPPORT;
|
|
pub const PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = Self.PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES;
|
|
pub const PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = Self.PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES;
|
|
pub const PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = Self.PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES;
|
|
pub const PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = Self.PHYSICAL_DEVICE_DRIVER_PROPERTIES;
|
|
pub const PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = Self.PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES;
|
|
pub const PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = Self.PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES;
|
|
pub const SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = Self.SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE;
|
|
pub const PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = Self.PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES;
|
|
pub const PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = Self.PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES;
|
|
pub const SEMAPHORE_TYPE_CREATE_INFO_KHR = Self.SEMAPHORE_TYPE_CREATE_INFO;
|
|
pub const TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR = Self.TIMELINE_SEMAPHORE_SUBMIT_INFO;
|
|
pub const SEMAPHORE_WAIT_INFO_KHR = Self.SEMAPHORE_WAIT_INFO;
|
|
pub const SEMAPHORE_SIGNAL_INFO_KHR = Self.SEMAPHORE_SIGNAL_INFO;
|
|
pub const PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = Self.PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES;
|
|
pub const PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = Self.PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES;
|
|
pub const PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR = Self.PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES;
|
|
pub const ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR = Self.ATTACHMENT_REFERENCE_STENCIL_LAYOUT;
|
|
pub const ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR = Self.ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT;
|
|
pub const PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = Self.PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT;
|
|
pub const BUFFER_DEVICE_ADDRESS_INFO_EXT = Self.BUFFER_DEVICE_ADDRESS_INFO;
|
|
pub const IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = Self.IMAGE_STENCIL_USAGE_CREATE_INFO;
|
|
pub const PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = Self.PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES;
|
|
pub const PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR = Self.PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES;
|
|
pub const BUFFER_DEVICE_ADDRESS_INFO_KHR = Self.BUFFER_DEVICE_ADDRESS_INFO;
|
|
pub const BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR = Self.BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO;
|
|
pub const MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR = Self.MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO;
|
|
pub const DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR = Self.DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO;
|
|
pub const PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = Self.PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES;
|
|
};
|
|
|
|
pub const SystemAllocationScope = enum(i32) {
|
|
COMMAND = 0,
|
|
OBJECT = 1,
|
|
CACHE = 2,
|
|
DEVICE = 3,
|
|
INSTANCE = 4,
|
|
_,
|
|
};
|
|
|
|
pub const InternalAllocationType = enum(i32) {
|
|
EXECUTABLE = 0,
|
|
_,
|
|
};
|
|
|
|
pub const Format = enum(i32) {
|
|
UNDEFINED = 0,
|
|
R4G4_UNORM_PACK8 = 1,
|
|
R4G4B4A4_UNORM_PACK16 = 2,
|
|
B4G4R4A4_UNORM_PACK16 = 3,
|
|
R5G6B5_UNORM_PACK16 = 4,
|
|
B5G6R5_UNORM_PACK16 = 5,
|
|
R5G5B5A1_UNORM_PACK16 = 6,
|
|
B5G5R5A1_UNORM_PACK16 = 7,
|
|
A1R5G5B5_UNORM_PACK16 = 8,
|
|
R8_UNORM = 9,
|
|
R8_SNORM = 10,
|
|
R8_USCALED = 11,
|
|
R8_SSCALED = 12,
|
|
R8_UINT = 13,
|
|
R8_SINT = 14,
|
|
R8_SRGB = 15,
|
|
R8G8_UNORM = 16,
|
|
R8G8_SNORM = 17,
|
|
R8G8_USCALED = 18,
|
|
R8G8_SSCALED = 19,
|
|
R8G8_UINT = 20,
|
|
R8G8_SINT = 21,
|
|
R8G8_SRGB = 22,
|
|
R8G8B8_UNORM = 23,
|
|
R8G8B8_SNORM = 24,
|
|
R8G8B8_USCALED = 25,
|
|
R8G8B8_SSCALED = 26,
|
|
R8G8B8_UINT = 27,
|
|
R8G8B8_SINT = 28,
|
|
R8G8B8_SRGB = 29,
|
|
B8G8R8_UNORM = 30,
|
|
B8G8R8_SNORM = 31,
|
|
B8G8R8_USCALED = 32,
|
|
B8G8R8_SSCALED = 33,
|
|
B8G8R8_UINT = 34,
|
|
B8G8R8_SINT = 35,
|
|
B8G8R8_SRGB = 36,
|
|
R8G8B8A8_UNORM = 37,
|
|
R8G8B8A8_SNORM = 38,
|
|
R8G8B8A8_USCALED = 39,
|
|
R8G8B8A8_SSCALED = 40,
|
|
R8G8B8A8_UINT = 41,
|
|
R8G8B8A8_SINT = 42,
|
|
R8G8B8A8_SRGB = 43,
|
|
B8G8R8A8_UNORM = 44,
|
|
B8G8R8A8_SNORM = 45,
|
|
B8G8R8A8_USCALED = 46,
|
|
B8G8R8A8_SSCALED = 47,
|
|
B8G8R8A8_UINT = 48,
|
|
B8G8R8A8_SINT = 49,
|
|
B8G8R8A8_SRGB = 50,
|
|
A8B8G8R8_UNORM_PACK32 = 51,
|
|
A8B8G8R8_SNORM_PACK32 = 52,
|
|
A8B8G8R8_USCALED_PACK32 = 53,
|
|
A8B8G8R8_SSCALED_PACK32 = 54,
|
|
A8B8G8R8_UINT_PACK32 = 55,
|
|
A8B8G8R8_SINT_PACK32 = 56,
|
|
A8B8G8R8_SRGB_PACK32 = 57,
|
|
A2R10G10B10_UNORM_PACK32 = 58,
|
|
A2R10G10B10_SNORM_PACK32 = 59,
|
|
A2R10G10B10_USCALED_PACK32 = 60,
|
|
A2R10G10B10_SSCALED_PACK32 = 61,
|
|
A2R10G10B10_UINT_PACK32 = 62,
|
|
A2R10G10B10_SINT_PACK32 = 63,
|
|
A2B10G10R10_UNORM_PACK32 = 64,
|
|
A2B10G10R10_SNORM_PACK32 = 65,
|
|
A2B10G10R10_USCALED_PACK32 = 66,
|
|
A2B10G10R10_SSCALED_PACK32 = 67,
|
|
A2B10G10R10_UINT_PACK32 = 68,
|
|
A2B10G10R10_SINT_PACK32 = 69,
|
|
R16_UNORM = 70,
|
|
R16_SNORM = 71,
|
|
R16_USCALED = 72,
|
|
R16_SSCALED = 73,
|
|
R16_UINT = 74,
|
|
R16_SINT = 75,
|
|
R16_SFLOAT = 76,
|
|
R16G16_UNORM = 77,
|
|
R16G16_SNORM = 78,
|
|
R16G16_USCALED = 79,
|
|
R16G16_SSCALED = 80,
|
|
R16G16_UINT = 81,
|
|
R16G16_SINT = 82,
|
|
R16G16_SFLOAT = 83,
|
|
R16G16B16_UNORM = 84,
|
|
R16G16B16_SNORM = 85,
|
|
R16G16B16_USCALED = 86,
|
|
R16G16B16_SSCALED = 87,
|
|
R16G16B16_UINT = 88,
|
|
R16G16B16_SINT = 89,
|
|
R16G16B16_SFLOAT = 90,
|
|
R16G16B16A16_UNORM = 91,
|
|
R16G16B16A16_SNORM = 92,
|
|
R16G16B16A16_USCALED = 93,
|
|
R16G16B16A16_SSCALED = 94,
|
|
R16G16B16A16_UINT = 95,
|
|
R16G16B16A16_SINT = 96,
|
|
R16G16B16A16_SFLOAT = 97,
|
|
R32_UINT = 98,
|
|
R32_SINT = 99,
|
|
R32_SFLOAT = 100,
|
|
R32G32_UINT = 101,
|
|
R32G32_SINT = 102,
|
|
R32G32_SFLOAT = 103,
|
|
R32G32B32_UINT = 104,
|
|
R32G32B32_SINT = 105,
|
|
R32G32B32_SFLOAT = 106,
|
|
R32G32B32A32_UINT = 107,
|
|
R32G32B32A32_SINT = 108,
|
|
R32G32B32A32_SFLOAT = 109,
|
|
R64_UINT = 110,
|
|
R64_SINT = 111,
|
|
R64_SFLOAT = 112,
|
|
R64G64_UINT = 113,
|
|
R64G64_SINT = 114,
|
|
R64G64_SFLOAT = 115,
|
|
R64G64B64_UINT = 116,
|
|
R64G64B64_SINT = 117,
|
|
R64G64B64_SFLOAT = 118,
|
|
R64G64B64A64_UINT = 119,
|
|
R64G64B64A64_SINT = 120,
|
|
R64G64B64A64_SFLOAT = 121,
|
|
B10G11R11_UFLOAT_PACK32 = 122,
|
|
E5B9G9R9_UFLOAT_PACK32 = 123,
|
|
D16_UNORM = 124,
|
|
X8_D24_UNORM_PACK32 = 125,
|
|
D32_SFLOAT = 126,
|
|
S8_UINT = 127,
|
|
D16_UNORM_S8_UINT = 128,
|
|
D24_UNORM_S8_UINT = 129,
|
|
D32_SFLOAT_S8_UINT = 130,
|
|
BC1_RGB_UNORM_BLOCK = 131,
|
|
BC1_RGB_SRGB_BLOCK = 132,
|
|
BC1_RGBA_UNORM_BLOCK = 133,
|
|
BC1_RGBA_SRGB_BLOCK = 134,
|
|
BC2_UNORM_BLOCK = 135,
|
|
BC2_SRGB_BLOCK = 136,
|
|
BC3_UNORM_BLOCK = 137,
|
|
BC3_SRGB_BLOCK = 138,
|
|
BC4_UNORM_BLOCK = 139,
|
|
BC4_SNORM_BLOCK = 140,
|
|
BC5_UNORM_BLOCK = 141,
|
|
BC5_SNORM_BLOCK = 142,
|
|
BC6H_UFLOAT_BLOCK = 143,
|
|
BC6H_SFLOAT_BLOCK = 144,
|
|
BC7_UNORM_BLOCK = 145,
|
|
BC7_SRGB_BLOCK = 146,
|
|
ETC2_R8G8B8_UNORM_BLOCK = 147,
|
|
ETC2_R8G8B8_SRGB_BLOCK = 148,
|
|
ETC2_R8G8B8A1_UNORM_BLOCK = 149,
|
|
ETC2_R8G8B8A1_SRGB_BLOCK = 150,
|
|
ETC2_R8G8B8A8_UNORM_BLOCK = 151,
|
|
ETC2_R8G8B8A8_SRGB_BLOCK = 152,
|
|
EAC_R11_UNORM_BLOCK = 153,
|
|
EAC_R11_SNORM_BLOCK = 154,
|
|
EAC_R11G11_UNORM_BLOCK = 155,
|
|
EAC_R11G11_SNORM_BLOCK = 156,
|
|
ASTC_4x4_UNORM_BLOCK = 157,
|
|
ASTC_4x4_SRGB_BLOCK = 158,
|
|
ASTC_5x4_UNORM_BLOCK = 159,
|
|
ASTC_5x4_SRGB_BLOCK = 160,
|
|
ASTC_5x5_UNORM_BLOCK = 161,
|
|
ASTC_5x5_SRGB_BLOCK = 162,
|
|
ASTC_6x5_UNORM_BLOCK = 163,
|
|
ASTC_6x5_SRGB_BLOCK = 164,
|
|
ASTC_6x6_UNORM_BLOCK = 165,
|
|
ASTC_6x6_SRGB_BLOCK = 166,
|
|
ASTC_8x5_UNORM_BLOCK = 167,
|
|
ASTC_8x5_SRGB_BLOCK = 168,
|
|
ASTC_8x6_UNORM_BLOCK = 169,
|
|
ASTC_8x6_SRGB_BLOCK = 170,
|
|
ASTC_8x8_UNORM_BLOCK = 171,
|
|
ASTC_8x8_SRGB_BLOCK = 172,
|
|
ASTC_10x5_UNORM_BLOCK = 173,
|
|
ASTC_10x5_SRGB_BLOCK = 174,
|
|
ASTC_10x6_UNORM_BLOCK = 175,
|
|
ASTC_10x6_SRGB_BLOCK = 176,
|
|
ASTC_10x8_UNORM_BLOCK = 177,
|
|
ASTC_10x8_SRGB_BLOCK = 178,
|
|
ASTC_10x10_UNORM_BLOCK = 179,
|
|
ASTC_10x10_SRGB_BLOCK = 180,
|
|
ASTC_12x10_UNORM_BLOCK = 181,
|
|
ASTC_12x10_SRGB_BLOCK = 182,
|
|
ASTC_12x12_UNORM_BLOCK = 183,
|
|
ASTC_12x12_SRGB_BLOCK = 184,
|
|
G8B8G8R8_422_UNORM = 1000156000,
|
|
B8G8R8G8_422_UNORM = 1000156001,
|
|
G8_B8_R8_3PLANE_420_UNORM = 1000156002,
|
|
G8_B8R8_2PLANE_420_UNORM = 1000156003,
|
|
G8_B8_R8_3PLANE_422_UNORM = 1000156004,
|
|
G8_B8R8_2PLANE_422_UNORM = 1000156005,
|
|
G8_B8_R8_3PLANE_444_UNORM = 1000156006,
|
|
R10X6_UNORM_PACK16 = 1000156007,
|
|
R10X6G10X6_UNORM_2PACK16 = 1000156008,
|
|
R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
|
|
G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
|
|
B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
|
|
G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
|
|
G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
|
|
G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
|
|
G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
|
|
G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
|
|
R12X4_UNORM_PACK16 = 1000156017,
|
|
R12X4G12X4_UNORM_2PACK16 = 1000156018,
|
|
R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
|
|
G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
|
|
B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
|
|
G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
|
|
G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
|
|
G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
|
|
G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
|
|
G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
|
|
G16B16G16R16_422_UNORM = 1000156027,
|
|
B16G16R16G16_422_UNORM = 1000156028,
|
|
G16_B16_R16_3PLANE_420_UNORM = 1000156029,
|
|
G16_B16R16_2PLANE_420_UNORM = 1000156030,
|
|
G16_B16_R16_3PLANE_422_UNORM = 1000156031,
|
|
G16_B16R16_2PLANE_422_UNORM = 1000156032,
|
|
G16_B16_R16_3PLANE_444_UNORM = 1000156033,
|
|
PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
|
|
PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
|
|
PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
|
|
PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
|
|
PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
|
|
PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
|
|
PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
|
|
PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
|
|
ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000,
|
|
ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001,
|
|
ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002,
|
|
ASTC_6x5_SFLOAT_BLOCK_EXT = 1000066003,
|
|
ASTC_6x6_SFLOAT_BLOCK_EXT = 1000066004,
|
|
ASTC_8x5_SFLOAT_BLOCK_EXT = 1000066005,
|
|
ASTC_8x6_SFLOAT_BLOCK_EXT = 1000066006,
|
|
ASTC_8x8_SFLOAT_BLOCK_EXT = 1000066007,
|
|
ASTC_10x5_SFLOAT_BLOCK_EXT = 1000066008,
|
|
ASTC_10x6_SFLOAT_BLOCK_EXT = 1000066009,
|
|
ASTC_10x8_SFLOAT_BLOCK_EXT = 1000066010,
|
|
ASTC_10x10_SFLOAT_BLOCK_EXT = 1000066011,
|
|
ASTC_12x10_SFLOAT_BLOCK_EXT = 1000066012,
|
|
ASTC_12x12_SFLOAT_BLOCK_EXT = 1000066013,
|
|
_,
|
|
|
|
const Self = @This();
|
|
pub const G8B8G8R8_422_UNORM_KHR = Self.G8B8G8R8_422_UNORM;
|
|
pub const B8G8R8G8_422_UNORM_KHR = Self.B8G8R8G8_422_UNORM;
|
|
pub const G8_B8_R8_3PLANE_420_UNORM_KHR = Self.G8_B8_R8_3PLANE_420_UNORM;
|
|
pub const G8_B8R8_2PLANE_420_UNORM_KHR = Self.G8_B8R8_2PLANE_420_UNORM;
|
|
pub const G8_B8_R8_3PLANE_422_UNORM_KHR = Self.G8_B8_R8_3PLANE_422_UNORM;
|
|
pub const G8_B8R8_2PLANE_422_UNORM_KHR = Self.G8_B8R8_2PLANE_422_UNORM;
|
|
pub const G8_B8_R8_3PLANE_444_UNORM_KHR = Self.G8_B8_R8_3PLANE_444_UNORM;
|
|
pub const R10X6_UNORM_PACK16_KHR = Self.R10X6_UNORM_PACK16;
|
|
pub const R10X6G10X6_UNORM_2PACK16_KHR = Self.R10X6G10X6_UNORM_2PACK16;
|
|
pub const R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = Self.R10X6G10X6B10X6A10X6_UNORM_4PACK16;
|
|
pub const G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = Self.G10X6B10X6G10X6R10X6_422_UNORM_4PACK16;
|
|
pub const B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = Self.B10X6G10X6R10X6G10X6_422_UNORM_4PACK16;
|
|
pub const G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = Self.G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16;
|
|
pub const G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = Self.G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16;
|
|
pub const G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = Self.G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16;
|
|
pub const G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = Self.G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16;
|
|
pub const G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = Self.G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16;
|
|
pub const R12X4_UNORM_PACK16_KHR = Self.R12X4_UNORM_PACK16;
|
|
pub const R12X4G12X4_UNORM_2PACK16_KHR = Self.R12X4G12X4_UNORM_2PACK16;
|
|
pub const R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = Self.R12X4G12X4B12X4A12X4_UNORM_4PACK16;
|
|
pub const G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = Self.G12X4B12X4G12X4R12X4_422_UNORM_4PACK16;
|
|
pub const B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = Self.B12X4G12X4R12X4G12X4_422_UNORM_4PACK16;
|
|
pub const G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = Self.G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16;
|
|
pub const G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = Self.G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16;
|
|
pub const G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = Self.G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16;
|
|
pub const G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = Self.G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16;
|
|
pub const G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = Self.G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16;
|
|
pub const G16B16G16R16_422_UNORM_KHR = Self.G16B16G16R16_422_UNORM;
|
|
pub const B16G16R16G16_422_UNORM_KHR = Self.B16G16R16G16_422_UNORM;
|
|
pub const G16_B16_R16_3PLANE_420_UNORM_KHR = Self.G16_B16_R16_3PLANE_420_UNORM;
|
|
pub const G16_B16R16_2PLANE_420_UNORM_KHR = Self.G16_B16R16_2PLANE_420_UNORM;
|
|
pub const G16_B16_R16_3PLANE_422_UNORM_KHR = Self.G16_B16_R16_3PLANE_422_UNORM;
|
|
pub const G16_B16R16_2PLANE_422_UNORM_KHR = Self.G16_B16R16_2PLANE_422_UNORM;
|
|
pub const G16_B16_R16_3PLANE_444_UNORM_KHR = Self.G16_B16_R16_3PLANE_444_UNORM;
|
|
};
|
|
|
|
pub const ImageType = enum(i32) {
|
|
T_1D = 0,
|
|
T_2D = 1,
|
|
T_3D = 2,
|
|
_,
|
|
};
|
|
|
|
pub const ImageTiling = enum(i32) {
|
|
OPTIMAL = 0,
|
|
LINEAR = 1,
|
|
DRM_FORMAT_MODIFIER_EXT = 1000158000,
|
|
_,
|
|
};
|
|
|
|
pub const PhysicalDeviceType = enum(i32) {
|
|
OTHER = 0,
|
|
INTEGRATED_GPU = 1,
|
|
DISCRETE_GPU = 2,
|
|
VIRTUAL_GPU = 3,
|
|
CPU = 4,
|
|
_,
|
|
};
|
|
|
|
pub const QueryType = enum(i32) {
|
|
OCCLUSION = 0,
|
|
PIPELINE_STATISTICS = 1,
|
|
TIMESTAMP = 2,
|
|
TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
|
|
PERFORMANCE_QUERY_KHR = 1000116000,
|
|
ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000,
|
|
PERFORMANCE_QUERY_INTEL = 1000210000,
|
|
_,
|
|
};
|
|
|
|
pub const SharingMode = enum(i32) {
|
|
EXCLUSIVE = 0,
|
|
CONCURRENT = 1,
|
|
_,
|
|
};
|
|
|
|
pub const ImageLayout = enum(i32) {
|
|
UNDEFINED = 0,
|
|
GENERAL = 1,
|
|
COLOR_ATTACHMENT_OPTIMAL = 2,
|
|
DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
|
|
DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
|
|
SHADER_READ_ONLY_OPTIMAL = 5,
|
|
TRANSFER_SRC_OPTIMAL = 6,
|
|
TRANSFER_DST_OPTIMAL = 7,
|
|
PREINITIALIZED = 8,
|
|
DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
|
|
DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
|
|
DEPTH_ATTACHMENT_OPTIMAL = 1000241000,
|
|
DEPTH_READ_ONLY_OPTIMAL = 1000241001,
|
|
STENCIL_ATTACHMENT_OPTIMAL = 1000241002,
|
|
STENCIL_READ_ONLY_OPTIMAL = 1000241003,
|
|
PRESENT_SRC_KHR = 1000001002,
|
|
SHARED_PRESENT_KHR = 1000111000,
|
|
SHADING_RATE_OPTIMAL_NV = 1000164003,
|
|
FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
|
|
_,
|
|
|
|
const Self = @This();
|
|
pub const DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = Self.DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL;
|
|
pub const DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = Self.DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL;
|
|
pub const DEPTH_ATTACHMENT_OPTIMAL_KHR = Self.DEPTH_ATTACHMENT_OPTIMAL;
|
|
pub const DEPTH_READ_ONLY_OPTIMAL_KHR = Self.DEPTH_READ_ONLY_OPTIMAL;
|
|
pub const STENCIL_ATTACHMENT_OPTIMAL_KHR = Self.STENCIL_ATTACHMENT_OPTIMAL;
|
|
pub const STENCIL_READ_ONLY_OPTIMAL_KHR = Self.STENCIL_READ_ONLY_OPTIMAL;
|
|
};
|
|
|
|
pub const ImageViewType = enum(i32) {
|
|
T_1D = 0,
|
|
T_2D = 1,
|
|
T_3D = 2,
|
|
CUBE = 3,
|
|
T_1D_ARRAY = 4,
|
|
T_2D_ARRAY = 5,
|
|
CUBE_ARRAY = 6,
|
|
_,
|
|
};
|
|
|
|
pub const ComponentSwizzle = enum(i32) {
|
|
IDENTITY = 0,
|
|
ZERO = 1,
|
|
ONE = 2,
|
|
R = 3,
|
|
G = 4,
|
|
B = 5,
|
|
A = 6,
|
|
_,
|
|
};
|
|
|
|
pub const VertexInputRate = enum(i32) {
|
|
VERTEX = 0,
|
|
INSTANCE = 1,
|
|
_,
|
|
};
|
|
|
|
pub const PrimitiveTopology = enum(i32) {
|
|
POINT_LIST = 0,
|
|
LINE_LIST = 1,
|
|
LINE_STRIP = 2,
|
|
TRIANGLE_LIST = 3,
|
|
TRIANGLE_STRIP = 4,
|
|
TRIANGLE_FAN = 5,
|
|
LINE_LIST_WITH_ADJACENCY = 6,
|
|
LINE_STRIP_WITH_ADJACENCY = 7,
|
|
TRIANGLE_LIST_WITH_ADJACENCY = 8,
|
|
TRIANGLE_STRIP_WITH_ADJACENCY = 9,
|
|
PATCH_LIST = 10,
|
|
_,
|
|
};
|
|
|
|
pub const PolygonMode = enum(i32) {
|
|
FILL = 0,
|
|
LINE = 1,
|
|
POINT = 2,
|
|
FILL_RECTANGLE_NV = 1000153000,
|
|
_,
|
|
};
|
|
|
|
pub const FrontFace = enum(i32) {
|
|
COUNTER_CLOCKWISE = 0,
|
|
CLOCKWISE = 1,
|
|
_,
|
|
};
|
|
|
|
pub const CompareOp = enum(i32) {
|
|
NEVER = 0,
|
|
LESS = 1,
|
|
EQUAL = 2,
|
|
LESS_OR_EQUAL = 3,
|
|
GREATER = 4,
|
|
NOT_EQUAL = 5,
|
|
GREATER_OR_EQUAL = 6,
|
|
ALWAYS = 7,
|
|
_,
|
|
};
|
|
|
|
pub const StencilOp = enum(i32) {
|
|
KEEP = 0,
|
|
ZERO = 1,
|
|
REPLACE = 2,
|
|
INCREMENT_AND_CLAMP = 3,
|
|
DECREMENT_AND_CLAMP = 4,
|
|
INVERT = 5,
|
|
INCREMENT_AND_WRAP = 6,
|
|
DECREMENT_AND_WRAP = 7,
|
|
_,
|
|
};
|
|
|
|
pub const LogicOp = enum(i32) {
|
|
CLEAR = 0,
|
|
AND = 1,
|
|
AND_REVERSE = 2,
|
|
COPY = 3,
|
|
AND_INVERTED = 4,
|
|
NO_OP = 5,
|
|
XOR = 6,
|
|
OR = 7,
|
|
NOR = 8,
|
|
EQUIVALENT = 9,
|
|
INVERT = 10,
|
|
OR_REVERSE = 11,
|
|
COPY_INVERTED = 12,
|
|
OR_INVERTED = 13,
|
|
NAND = 14,
|
|
SET = 15,
|
|
_,
|
|
};
|
|
|
|
pub const BlendFactor = enum(i32) {
|
|
ZERO = 0,
|
|
ONE = 1,
|
|
SRC_COLOR = 2,
|
|
ONE_MINUS_SRC_COLOR = 3,
|
|
DST_COLOR = 4,
|
|
ONE_MINUS_DST_COLOR = 5,
|
|
SRC_ALPHA = 6,
|
|
ONE_MINUS_SRC_ALPHA = 7,
|
|
DST_ALPHA = 8,
|
|
ONE_MINUS_DST_ALPHA = 9,
|
|
CONSTANT_COLOR = 10,
|
|
ONE_MINUS_CONSTANT_COLOR = 11,
|
|
CONSTANT_ALPHA = 12,
|
|
ONE_MINUS_CONSTANT_ALPHA = 13,
|
|
SRC_ALPHA_SATURATE = 14,
|
|
SRC1_COLOR = 15,
|
|
ONE_MINUS_SRC1_COLOR = 16,
|
|
SRC1_ALPHA = 17,
|
|
ONE_MINUS_SRC1_ALPHA = 18,
|
|
_,
|
|
};
|
|
|
|
pub const BlendOp = enum(i32) {
|
|
ADD = 0,
|
|
SUBTRACT = 1,
|
|
REVERSE_SUBTRACT = 2,
|
|
MIN = 3,
|
|
MAX = 4,
|
|
ZERO_EXT = 1000148000,
|
|
SRC_EXT = 1000148001,
|
|
DST_EXT = 1000148002,
|
|
SRC_OVER_EXT = 1000148003,
|
|
DST_OVER_EXT = 1000148004,
|
|
SRC_IN_EXT = 1000148005,
|
|
DST_IN_EXT = 1000148006,
|
|
SRC_OUT_EXT = 1000148007,
|
|
DST_OUT_EXT = 1000148008,
|
|
SRC_ATOP_EXT = 1000148009,
|
|
DST_ATOP_EXT = 1000148010,
|
|
XOR_EXT = 1000148011,
|
|
MULTIPLY_EXT = 1000148012,
|
|
SCREEN_EXT = 1000148013,
|
|
OVERLAY_EXT = 1000148014,
|
|
DARKEN_EXT = 1000148015,
|
|
LIGHTEN_EXT = 1000148016,
|
|
COLORDODGE_EXT = 1000148017,
|
|
COLORBURN_EXT = 1000148018,
|
|
HARDLIGHT_EXT = 1000148019,
|
|
SOFTLIGHT_EXT = 1000148020,
|
|
DIFFERENCE_EXT = 1000148021,
|
|
EXCLUSION_EXT = 1000148022,
|
|
INVERT_EXT = 1000148023,
|
|
INVERT_RGB_EXT = 1000148024,
|
|
LINEARDODGE_EXT = 1000148025,
|
|
LINEARBURN_EXT = 1000148026,
|
|
VIVIDLIGHT_EXT = 1000148027,
|
|
LINEARLIGHT_EXT = 1000148028,
|
|
PINLIGHT_EXT = 1000148029,
|
|
HARDMIX_EXT = 1000148030,
|
|
HSL_HUE_EXT = 1000148031,
|
|
HSL_SATURATION_EXT = 1000148032,
|
|
HSL_COLOR_EXT = 1000148033,
|
|
HSL_LUMINOSITY_EXT = 1000148034,
|
|
PLUS_EXT = 1000148035,
|
|
PLUS_CLAMPED_EXT = 1000148036,
|
|
PLUS_CLAMPED_ALPHA_EXT = 1000148037,
|
|
PLUS_DARKER_EXT = 1000148038,
|
|
MINUS_EXT = 1000148039,
|
|
MINUS_CLAMPED_EXT = 1000148040,
|
|
CONTRAST_EXT = 1000148041,
|
|
INVERT_OVG_EXT = 1000148042,
|
|
RED_EXT = 1000148043,
|
|
GREEN_EXT = 1000148044,
|
|
BLUE_EXT = 1000148045,
|
|
_,
|
|
};
|
|
|
|
pub const DynamicState = enum(i32) {
|
|
VIEWPORT = 0,
|
|
SCISSOR = 1,
|
|
LINE_WIDTH = 2,
|
|
DEPTH_BIAS = 3,
|
|
BLEND_CONSTANTS = 4,
|
|
DEPTH_BOUNDS = 5,
|
|
STENCIL_COMPARE_MASK = 6,
|
|
STENCIL_WRITE_MASK = 7,
|
|
STENCIL_REFERENCE = 8,
|
|
VIEWPORT_W_SCALING_NV = 1000087000,
|
|
DISCARD_RECTANGLE_EXT = 1000099000,
|
|
SAMPLE_LOCATIONS_EXT = 1000143000,
|
|
VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
|
|
VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
|
|
EXCLUSIVE_SCISSOR_NV = 1000205001,
|
|
LINE_STIPPLE_EXT = 1000259000,
|
|
_,
|
|
};
|
|
|
|
pub const Filter = enum(i32) {
|
|
NEAREST = 0,
|
|
LINEAR = 1,
|
|
CUBIC_IMG = 1000015000,
|
|
_,
|
|
|
|
const Self = @This();
|
|
pub const CUBIC_EXT = Self.CUBIC_IMG;
|
|
};
|
|
|
|
pub const SamplerMipmapMode = enum(i32) {
|
|
NEAREST = 0,
|
|
LINEAR = 1,
|
|
_,
|
|
};
|
|
|
|
pub const SamplerAddressMode = enum(i32) {
|
|
REPEAT = 0,
|
|
MIRRORED_REPEAT = 1,
|
|
CLAMP_TO_EDGE = 2,
|
|
CLAMP_TO_BORDER = 3,
|
|
MIRROR_CLAMP_TO_EDGE = 4,
|
|
_,
|
|
|
|
const Self = @This();
|
|
pub const MIRROR_CLAMP_TO_EDGE_KHR = Self.MIRROR_CLAMP_TO_EDGE;
|
|
};
|
|
|
|
pub const BorderColor = enum(i32) {
|
|
FLOAT_TRANSPARENT_BLACK = 0,
|
|
INT_TRANSPARENT_BLACK = 1,
|
|
FLOAT_OPAQUE_BLACK = 2,
|
|
INT_OPAQUE_BLACK = 3,
|
|
FLOAT_OPAQUE_WHITE = 4,
|
|
INT_OPAQUE_WHITE = 5,
|
|
_,
|
|
};
|
|
|
|
pub const DescriptorType = enum(i32) {
|
|
SAMPLER = 0,
|
|
COMBINED_IMAGE_SAMPLER = 1,
|
|
SAMPLED_IMAGE = 2,
|
|
STORAGE_IMAGE = 3,
|
|
UNIFORM_TEXEL_BUFFER = 4,
|
|
STORAGE_TEXEL_BUFFER = 5,
|
|
UNIFORM_BUFFER = 6,
|
|
STORAGE_BUFFER = 7,
|
|
UNIFORM_BUFFER_DYNAMIC = 8,
|
|
STORAGE_BUFFER_DYNAMIC = 9,
|
|
INPUT_ATTACHMENT = 10,
|
|
INLINE_UNIFORM_BLOCK_EXT = 1000138000,
|
|
ACCELERATION_STRUCTURE_NV = 1000165000,
|
|
_,
|
|
};
|
|
|
|
pub const AttachmentLoadOp = enum(i32) {
|
|
LOAD = 0,
|
|
CLEAR = 1,
|
|
DONT_CARE = 2,
|
|
_,
|
|
};
|
|
|
|
pub const AttachmentStoreOp = enum(i32) {
|
|
STORE = 0,
|
|
DONT_CARE = 1,
|
|
_,
|
|
};
|
|
|
|
pub const PipelineBindPoint = enum(i32) {
|
|
GRAPHICS = 0,
|
|
COMPUTE = 1,
|
|
RAY_TRACING_NV = 1000165000,
|
|
_,
|
|
};
|
|
|
|
pub const CommandBufferLevel = enum(i32) {
|
|
PRIMARY = 0,
|
|
SECONDARY = 1,
|
|
_,
|
|
};
|
|
|
|
pub const IndexType = enum(i32) {
|
|
UINT16 = 0,
|
|
UINT32 = 1,
|
|
NONE_NV = 1000165000,
|
|
UINT8_EXT = 1000265000,
|
|
_,
|
|
};
|
|
|
|
pub const SubpassContents = enum(i32) {
|
|
INLINE = 0,
|
|
SECONDARY_COMMAND_BUFFERS = 1,
|
|
_,
|
|
};
|
|
|
|
pub const ObjectType = enum(i32) {
|
|
UNKNOWN = 0,
|
|
INSTANCE = 1,
|
|
PHYSICAL_DEVICE = 2,
|
|
DEVICE = 3,
|
|
QUEUE = 4,
|
|
SEMAPHORE = 5,
|
|
COMMAND_BUFFER = 6,
|
|
FENCE = 7,
|
|
DEVICE_MEMORY = 8,
|
|
BUFFER = 9,
|
|
IMAGE = 10,
|
|
EVENT = 11,
|
|
QUERY_POOL = 12,
|
|
BUFFER_VIEW = 13,
|
|
IMAGE_VIEW = 14,
|
|
SHADER_MODULE = 15,
|
|
PIPELINE_CACHE = 16,
|
|
PIPELINE_LAYOUT = 17,
|
|
RENDER_PASS = 18,
|
|
PIPELINE = 19,
|
|
DESCRIPTOR_SET_LAYOUT = 20,
|
|
SAMPLER = 21,
|
|
DESCRIPTOR_POOL = 22,
|
|
DESCRIPTOR_SET = 23,
|
|
FRAMEBUFFER = 24,
|
|
COMMAND_POOL = 25,
|
|
SAMPLER_YCBCR_CONVERSION = 1000156000,
|
|
DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
|
|
SURFACE_KHR = 1000000000,
|
|
SWAPCHAIN_KHR = 1000001000,
|
|
DISPLAY_KHR = 1000002000,
|
|
DISPLAY_MODE_KHR = 1000002001,
|
|
DEBUG_REPORT_CALLBACK_EXT = 1000011000,
|
|
OBJECT_TABLE_NVX = 1000086000,
|
|
INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001,
|
|
DEBUG_UTILS_MESSENGER_EXT = 1000128000,
|
|
VALIDATION_CACHE_EXT = 1000160000,
|
|
ACCELERATION_STRUCTURE_NV = 1000165000,
|
|
PERFORMANCE_CONFIGURATION_INTEL = 1000210000,
|
|
_,
|
|
|
|
const Self = @This();
|
|
pub const DESCRIPTOR_UPDATE_TEMPLATE_KHR = Self.DESCRIPTOR_UPDATE_TEMPLATE;
|
|
pub const SAMPLER_YCBCR_CONVERSION_KHR = Self.SAMPLER_YCBCR_CONVERSION;
|
|
};
|
|
|
|
pub const VendorId = enum(i32) {
|
|
VIV = 0x10001,
|
|
VSI = 0x10002,
|
|
KAZAN = 0x10003,
|
|
_,
|
|
};
|
|
|
|
pub const InstanceCreateFlags = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const FormatFeatureFlags = packed struct {
|
|
sampledImage: bool = false,
|
|
storageImage: bool = false,
|
|
storageImageAtomic: bool = false,
|
|
uniformTexelBuffer: bool = false,
|
|
storageTexelBuffer: bool = false,
|
|
storageTexelBufferAtomic: bool = false,
|
|
vertexBuffer: bool = false,
|
|
colorAttachment: bool = false,
|
|
colorAttachmentBlend: bool = false,
|
|
depthStencilAttachment: bool = false,
|
|
blitSrc: bool = false,
|
|
blitDst: bool = false,
|
|
sampledImageFilterLinear: bool = false,
|
|
sampledImageFilterCubicIMG: bool = false,
|
|
transferSrc: bool = false,
|
|
transferDst: bool = false,
|
|
sampledImageFilterMinmax: bool = false,
|
|
midpointChromaSamples: bool = false,
|
|
sampledImageYcbcrConversionLinearFilter: bool = false,
|
|
sampledImageYcbcrConversionSeparateReconstructionFilter: bool = false,
|
|
sampledImageYcbcrConversionChromaReconstructionExplicit: bool = false,
|
|
sampledImageYcbcrConversionChromaReconstructionExplicitForceable: bool = false,
|
|
disjoint: bool = false,
|
|
cositedChromaSamples: bool = false,
|
|
fragmentDensityMapEXT: bool = false,
|
|
reserved25KHR: bool = false,
|
|
reserved26KHR: bool = false,
|
|
reserved27KHR: bool = false,
|
|
reserved28KHR: bool = false,
|
|
reserved29NV: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
const Self = @This();
|
|
pub const transferSrcKHR = Self{ .transferSrc = true };
|
|
pub const transferDstKHR = Self{ .transferDst = true };
|
|
pub const sampledImageFilterMinmaxEXT = Self{ .sampledImageFilterMinmax = true };
|
|
pub const midpointChromaSamplesKHR = Self{ .midpointChromaSamples = true };
|
|
pub const sampledImageYcbcrConversionLinearFilterKHR = Self{ .sampledImageYcbcrConversionLinearFilter = true };
|
|
pub const sampledImageYcbcrConversionSeparateReconstructionFilterKHR = Self{ .sampledImageYcbcrConversionSeparateReconstructionFilter = true };
|
|
pub const sampledImageYcbcrConversionChromaReconstructionExplicitKHR = Self{ .sampledImageYcbcrConversionChromaReconstructionExplicit = true };
|
|
pub const sampledImageYcbcrConversionChromaReconstructionExplicitForceableKHR = Self{ .sampledImageYcbcrConversionChromaReconstructionExplicitForceable = true };
|
|
pub const disjointKHR = Self{ .disjoint = true };
|
|
pub const cositedChromaSamplesKHR = Self{ .cositedChromaSamples = true };
|
|
pub const sampledImageFilterCubicEXT = Self{ .sampledImageFilterCubicIMG = true };
|
|
|
|
pub usingnamespace FlagsMixin(Self);
|
|
};
|
|
|
|
pub const ImageUsageFlags = packed struct {
|
|
transferSrc: bool = false,
|
|
transferDst: bool = false,
|
|
sampled: bool = false,
|
|
storage: bool = false,
|
|
colorAttachment: bool = false,
|
|
depthStencilAttachment: bool = false,
|
|
transientAttachment: bool = false,
|
|
inputAttachment: bool = false,
|
|
shadingRateImageNV: bool = false,
|
|
fragmentDensityMapEXT: bool = false,
|
|
reserved10KHR: bool = false,
|
|
reserved11KHR: bool = false,
|
|
reserved12KHR: bool = false,
|
|
reserved13KHR: bool = false,
|
|
reserved14KHR: bool = false,
|
|
reserved15KHR: bool = false,
|
|
reserved16QCOM: bool = false,
|
|
reserved17QCOM: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const ImageCreateFlags = packed struct {
|
|
sparseBinding: bool = false,
|
|
sparseResidency: bool = false,
|
|
sparseAliased: bool = false,
|
|
mutableFormat: bool = false,
|
|
cubeCompatible: bool = false,
|
|
t2DArrayCompatible: bool = false,
|
|
splitInstanceBindRegions: bool = false,
|
|
blockTexelViewCompatible: bool = false,
|
|
extendedUsage: bool = false,
|
|
disjoint: bool = false,
|
|
alias: bool = false,
|
|
protected: bool = false,
|
|
sampleLocationsCompatibleDepthEXT: bool = false,
|
|
cornerSampledNV: bool = false,
|
|
subsampledEXT: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
const Self = @This();
|
|
pub const splitInstanceBindRegionsKHR = Self{ .splitInstanceBindRegions = true };
|
|
pub const t2DArrayCompatibleKHR = Self{ .t2DArrayCompatible = true };
|
|
pub const blockTexelViewCompatibleKHR = Self{ .blockTexelViewCompatible = true };
|
|
pub const extendedUsageKHR = Self{ .extendedUsage = true };
|
|
pub const disjointKHR = Self{ .disjoint = true };
|
|
pub const aliasKHR = Self{ .alias = true };
|
|
|
|
pub usingnamespace FlagsMixin(Self);
|
|
};
|
|
|
|
pub const SampleCountFlags = packed struct {
|
|
t1: bool = false,
|
|
t2: bool = false,
|
|
t4: bool = false,
|
|
t8: bool = false,
|
|
t16: bool = false,
|
|
t32: bool = false,
|
|
t64: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const QueueFlags = packed struct {
|
|
graphics: bool = false,
|
|
compute: bool = false,
|
|
transfer: bool = false,
|
|
sparseBinding: bool = false,
|
|
protected: bool = false,
|
|
reserved5KHR: bool = false,
|
|
reserved6KHR: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const MemoryPropertyFlags = packed struct {
|
|
deviceLocal: bool = false,
|
|
hostVisible: bool = false,
|
|
hostCoherent: bool = false,
|
|
hostCached: bool = false,
|
|
lazilyAllocated: bool = false,
|
|
protected: bool = false,
|
|
deviceCoherentAMD: bool = false,
|
|
deviceUncachedAMD: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const MemoryHeapFlags = packed struct {
|
|
deviceLocal: bool = false,
|
|
multiInstance: bool = false,
|
|
reserved2KHR: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
const Self = @This();
|
|
pub const multiInstanceKHR = Self{ .multiInstance = true };
|
|
|
|
pub usingnamespace FlagsMixin(Self);
|
|
};
|
|
|
|
pub const DeviceCreateFlags = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const DeviceQueueCreateFlags = packed struct {
|
|
protected: bool = false,
|
|
__reserved_bit_01: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const PipelineStageFlags = packed struct {
|
|
topOfPipe: bool = false,
|
|
drawIndirect: bool = false,
|
|
vertexInput: bool = false,
|
|
vertexShader: bool = false,
|
|
tessellationControlShader: bool = false,
|
|
tessellationEvaluationShader: bool = false,
|
|
geometryShader: bool = false,
|
|
fragmentShader: bool = false,
|
|
earlyFragmentTests: bool = false,
|
|
lateFragmentTests: bool = false,
|
|
colorAttachmentOutput: bool = false,
|
|
computeShader: bool = false,
|
|
transfer: bool = false,
|
|
bottomOfPipe: bool = false,
|
|
host: bool = false,
|
|
allGraphics: bool = false,
|
|
allCommands: bool = false,
|
|
commandProcessNVX: bool = false,
|
|
conditionalRenderingEXT: bool = false,
|
|
taskShaderNV: bool = false,
|
|
meshShaderNV: bool = false,
|
|
rayTracingShaderNV: bool = false,
|
|
shadingRateImageNV: bool = false,
|
|
fragmentDensityProcessEXT: bool = false,
|
|
transformFeedbackEXT: bool = false,
|
|
accelerationStructureBuildNV: bool = false,
|
|
reserved26KHR: bool = false,
|
|
reserved27KHR: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const MemoryMapFlags = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const ImageAspectFlags = packed struct {
|
|
color: bool = false,
|
|
depth: bool = false,
|
|
stencil: bool = false,
|
|
metadata: bool = false,
|
|
plane0: bool = false,
|
|
plane1: bool = false,
|
|
plane2: bool = false,
|
|
memoryPlane0EXT: bool = false,
|
|
memoryPlane1EXT: bool = false,
|
|
memoryPlane2EXT: bool = false,
|
|
memoryPlane3EXT: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
const Self = @This();
|
|
pub const plane0KHR = Self{ .plane0 = true };
|
|
pub const plane1KHR = Self{ .plane1 = true };
|
|
pub const plane2KHR = Self{ .plane2 = true };
|
|
|
|
pub usingnamespace FlagsMixin(Self);
|
|
};
|
|
|
|
pub const SparseImageFormatFlags = packed struct {
|
|
singleMiptail: bool = false,
|
|
alignedMipSize: bool = false,
|
|
nonstandardBlockSize: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const SparseMemoryBindFlags = packed struct {
|
|
metadata: bool = false,
|
|
__reserved_bit_01: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const FenceCreateFlags = packed struct {
|
|
signaled: bool = false,
|
|
__reserved_bit_01: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const SemaphoreCreateFlags = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const EventCreateFlags = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const QueryPoolCreateFlags = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const QueryPipelineStatisticFlags = packed struct {
|
|
inputAssemblyVertices: bool = false,
|
|
inputAssemblyPrimitives: bool = false,
|
|
vertexShaderInvocations: bool = false,
|
|
geometryShaderInvocations: bool = false,
|
|
geometryShaderPrimitives: bool = false,
|
|
clippingInvocations: bool = false,
|
|
clippingPrimitives: bool = false,
|
|
fragmentShaderInvocations: bool = false,
|
|
tessellationControlShaderPatches: bool = false,
|
|
tessellationEvaluationShaderInvocations: bool = false,
|
|
computeShaderInvocations: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const QueryResultFlags = packed struct {
|
|
t64: bool = false,
|
|
wait: bool = false,
|
|
withAvailability: bool = false,
|
|
partial: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const BufferCreateFlags = packed struct {
|
|
sparseBinding: bool = false,
|
|
sparseResidency: bool = false,
|
|
sparseAliased: bool = false,
|
|
protected: bool = false,
|
|
deviceAddressCaptureReplay: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
const Self = @This();
|
|
pub const deviceAddressCaptureReplayEXT = Self{ .deviceAddressCaptureReplay = true };
|
|
pub const deviceAddressCaptureReplayKHR = Self{ .deviceAddressCaptureReplay = true };
|
|
|
|
pub usingnamespace FlagsMixin(Self);
|
|
};
|
|
|
|
pub const BufferUsageFlags = packed struct {
|
|
transferSrc: bool = false,
|
|
transferDst: bool = false,
|
|
uniformTexelBuffer: bool = false,
|
|
storageTexelBuffer: bool = false,
|
|
uniformBuffer: bool = false,
|
|
storageBuffer: bool = false,
|
|
indexBuffer: bool = false,
|
|
vertexBuffer: bool = false,
|
|
indirectBuffer: bool = false,
|
|
conditionalRenderingEXT: bool = false,
|
|
rayTracingNV: bool = false,
|
|
transformFeedbackBufferEXT: bool = false,
|
|
transformFeedbackCounterBufferEXT: bool = false,
|
|
reserved13KHR: bool = false,
|
|
reserved14KHR: bool = false,
|
|
reserved15KHR: bool = false,
|
|
reserved16KHR: bool = false,
|
|
shaderDeviceAddress: bool = false,
|
|
reserved18QCOM: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
const Self = @This();
|
|
pub const shaderDeviceAddressEXT = Self{ .shaderDeviceAddress = true };
|
|
pub const shaderDeviceAddressKHR = Self{ .shaderDeviceAddress = true };
|
|
|
|
pub usingnamespace FlagsMixin(Self);
|
|
};
|
|
|
|
pub const BufferViewCreateFlags = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const ImageViewCreateFlags = packed struct {
|
|
fragmentDensityMapDynamicEXT: bool = false,
|
|
__reserved_bit_01: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const ShaderModuleCreateFlags = packed struct {
|
|
reserved0NV: bool = false,
|
|
__reserved_bit_01: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const PipelineCacheCreateFlags = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const PipelineCreateFlags = packed struct {
|
|
disableOptimization: bool = false,
|
|
allowDerivatives: bool = false,
|
|
derivative: bool = false,
|
|
viewIndexFromDeviceIndex: bool = false,
|
|
dispatchBase: bool = false,
|
|
deferCompileNV: bool = false,
|
|
captureStatisticsKHR: bool = false,
|
|
captureInternalRepresentationsKHR: bool = false,
|
|
reserved8EXT: bool = false,
|
|
reserved9EXT: bool = false,
|
|
reserved10EXT: bool = false,
|
|
extension1510_NV: bool = false,
|
|
extension2910_NV: bool = false,
|
|
extension2911_NV: bool = false,
|
|
extension1511_NV: bool = false,
|
|
extension1512_NV: bool = false,
|
|
extension1513_NV: bool = false,
|
|
extension1514_NV: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
const Self = @This();
|
|
pub const viewIndexFromDeviceIndexKHR = Self{ .viewIndexFromDeviceIndex = true };
|
|
pub const dispatchBaseKhr = Self{ .dispatchBase = true };
|
|
|
|
pub usingnamespace FlagsMixin(Self);
|
|
};
|
|
|
|
pub const PipelineShaderStageCreateFlags = packed struct {
|
|
allowVaryingSubgroupSizeEXT: bool = false,
|
|
requireFullSubgroupsEXT: bool = false,
|
|
reserved2NV: bool = false,
|
|
reserved3KHR: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const ShaderStageFlags = packed struct {
|
|
vertex: bool = false,
|
|
tessellationControl: bool = false,
|
|
tessellationEvaluation: bool = false,
|
|
geometry: bool = false,
|
|
fragment: bool = false,
|
|
compute: bool = false,
|
|
taskNV: bool = false,
|
|
meshNV: bool = false,
|
|
raygenNV: bool = false,
|
|
anyHitNV: bool = false,
|
|
closestHitNV: bool = false,
|
|
missNV: bool = false,
|
|
intersectionNV: bool = false,
|
|
callableNV: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
const Self = @This();
|
|
pub const allGraphics = Self.fromInt(0x0000001F);
|
|
pub const all = Self.fromInt(0x7FFFFFFF);
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const PipelineVertexInputStateCreateFlags = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const PipelineInputAssemblyStateCreateFlags = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const PipelineTessellationStateCreateFlags = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const PipelineViewportStateCreateFlags = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const PipelineRasterizationStateCreateFlags = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const CullModeFlags = packed struct {
|
|
front: bool = false,
|
|
back: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
const Self = @This();
|
|
pub const none = Self.fromInt(0);
|
|
pub const frontAndBack = Self.fromInt(0x00000003);
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const PipelineMultisampleStateCreateFlags = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const PipelineDepthStencilStateCreateFlags = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const PipelineColorBlendStateCreateFlags = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const ColorComponentFlags = packed struct {
|
|
r: bool = false,
|
|
g: bool = false,
|
|
b: bool = false,
|
|
a: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const PipelineDynamicStateCreateFlags = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const PipelineLayoutCreateFlags = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const SamplerCreateFlags = packed struct {
|
|
subsampledEXT: bool = false,
|
|
subsampledCoarseReconstructionEXT: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const DescriptorSetLayoutCreateFlags = packed struct {
|
|
pushDescriptorKHR: bool = false,
|
|
updateAfterBindPool: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
const Self = @This();
|
|
pub const updateAfterBindPoolEXT = Self{ .updateAfterBindPool = true };
|
|
|
|
pub usingnamespace FlagsMixin(Self);
|
|
};
|
|
|
|
pub const DescriptorPoolCreateFlags = packed struct {
|
|
freeDescriptorSet: bool = false,
|
|
updateAfterBind: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
const Self = @This();
|
|
pub const updateAfterBindEXT = Self{ .updateAfterBind = true };
|
|
|
|
pub usingnamespace FlagsMixin(Self);
|
|
};
|
|
|
|
pub const DescriptorPoolResetFlags = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const FramebufferCreateFlags = packed struct {
|
|
imageless: bool = false,
|
|
__reserved_bit_01: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
const Self = @This();
|
|
pub const imagelessKHR = Self{ .imageless = true };
|
|
|
|
pub usingnamespace FlagsMixin(Self);
|
|
};
|
|
|
|
pub const RenderPassCreateFlags = packed struct {
|
|
reserved0KHR: bool = false,
|
|
renderPassReserved1_QCOM: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const AttachmentDescriptionFlags = packed struct {
|
|
mayAlias: bool = false,
|
|
__reserved_bit_01: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const SubpassDescriptionFlags = packed struct {
|
|
perViewAttributesNVX: bool = false,
|
|
perViewPositionXOnlyNVX: bool = false,
|
|
reserved2QCOM: bool = false,
|
|
reserved3QCOM: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const AccessFlags = packed struct {
|
|
indirectCommandRead: bool = false,
|
|
indexRead: bool = false,
|
|
vertexAttributeRead: bool = false,
|
|
uniformRead: bool = false,
|
|
inputAttachmentRead: bool = false,
|
|
shaderRead: bool = false,
|
|
shaderWrite: bool = false,
|
|
colorAttachmentRead: bool = false,
|
|
colorAttachmentWrite: bool = false,
|
|
depthStencilAttachmentRead: bool = false,
|
|
depthStencilAttachmentWrite: bool = false,
|
|
transferRead: bool = false,
|
|
transferWrite: bool = false,
|
|
hostRead: bool = false,
|
|
hostWrite: bool = false,
|
|
memoryRead: bool = false,
|
|
memoryWrite: bool = false,
|
|
commandProcessReadNVX: bool = false,
|
|
commandProcessWriteNVX: bool = false,
|
|
colorAttachmentReadNoncoherentEXT: bool = false,
|
|
conditionalRenderingReadEXT: bool = false,
|
|
accelerationStructureReadNV: bool = false,
|
|
accelerationStructureWriteNV: bool = false,
|
|
shadingRateImageReadNV: bool = false,
|
|
fragmentDensityMapReadEXT: bool = false,
|
|
transformFeedbackWriteEXT: bool = false,
|
|
transformFeedbackCounterReadEXT: bool = false,
|
|
transformFeedbackCounterWriteEXT: bool = false,
|
|
reserved28KHR: bool = false,
|
|
reserved29KHR: bool = false,
|
|
reserved30KHR: bool = false,
|
|
reserved31KHR: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const DependencyFlags = packed struct {
|
|
byRegion: bool = false,
|
|
viewLocal: bool = false,
|
|
deviceGroup: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
const Self = @This();
|
|
pub const viewLocalKHR = Self{ .viewLocal = true };
|
|
pub const deviceGroupKHR = Self{ .deviceGroup = true };
|
|
|
|
pub usingnamespace FlagsMixin(Self);
|
|
};
|
|
|
|
pub const CommandPoolCreateFlags = packed struct {
|
|
transient: bool = false,
|
|
resetCommandBuffer: bool = false,
|
|
protected: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const CommandPoolResetFlags = packed struct {
|
|
releaseResources: bool = false,
|
|
__reserved_bit_01: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const CommandBufferUsageFlags = packed struct {
|
|
oneTimeSubmit: bool = false,
|
|
renderPassContinue: bool = false,
|
|
simultaneousUse: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const QueryControlFlags = packed struct {
|
|
precise: bool = false,
|
|
__reserved_bit_01: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const CommandBufferResetFlags = packed struct {
|
|
releaseResources: bool = false,
|
|
__reserved_bit_01: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const StencilFaceFlags = packed struct {
|
|
front: bool = false,
|
|
back: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
const Self = @This();
|
|
pub const frontAndBack = Self.fromInt(0x00000003);
|
|
pub const stencilFrontAndBack = Self{ .frontAndBack = true };
|
|
|
|
pub usingnamespace FlagsMixin(Self);
|
|
};
|
|
|
|
pub const ApplicationInfo = extern struct {
|
|
sType: StructureType = .APPLICATION_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
pApplicationName: ?CString = null,
|
|
applicationVersion: u32,
|
|
pEngineName: ?CString = null,
|
|
engineVersion: u32,
|
|
apiVersion: u32,
|
|
};
|
|
|
|
pub const InstanceCreateInfo = extern struct {
|
|
sType: StructureType = .INSTANCE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: InstanceCreateFlags align(4) = InstanceCreateFlags{},
|
|
pApplicationInfo: ?*const ApplicationInfo = null,
|
|
enabledLayerCount: u32 = 0,
|
|
ppEnabledLayerNames: [*]const CString = undefined,
|
|
enabledExtensionCount: u32 = 0,
|
|
ppEnabledExtensionNames: [*]const CString = undefined,
|
|
};
|
|
|
|
pub const PFN_AllocationFunction = fn (
|
|
?*anyopaque,
|
|
usize,
|
|
usize,
|
|
SystemAllocationScope,
|
|
) callconv(CallConv) ?*anyopaque;
|
|
|
|
pub const PFN_ReallocationFunction = fn (
|
|
?*anyopaque,
|
|
?*anyopaque,
|
|
usize,
|
|
usize,
|
|
SystemAllocationScope,
|
|
) callconv(CallConv) ?*anyopaque;
|
|
|
|
pub const PFN_FreeFunction = fn (
|
|
?*anyopaque,
|
|
?*anyopaque,
|
|
) callconv(CallConv) void;
|
|
|
|
pub const PFN_InternalAllocationNotification = fn (
|
|
?*anyopaque,
|
|
usize,
|
|
InternalAllocationType,
|
|
SystemAllocationScope,
|
|
) callconv(CallConv) void;
|
|
|
|
pub const PFN_InternalFreeNotification = fn (
|
|
?*anyopaque,
|
|
usize,
|
|
InternalAllocationType,
|
|
SystemAllocationScope,
|
|
) callconv(CallConv) void;
|
|
|
|
pub const AllocationCallbacks = extern struct {
|
|
pUserData: ?*anyopaque = null,
|
|
pfnAllocation: PFN_AllocationFunction,
|
|
pfnReallocation: PFN_ReallocationFunction,
|
|
pfnFree: PFN_FreeFunction,
|
|
pfnInternalAllocation: ?PFN_InternalAllocationNotification = null,
|
|
pfnInternalFree: ?PFN_InternalFreeNotification = null,
|
|
};
|
|
|
|
pub const PhysicalDeviceFeatures = extern struct {
|
|
robustBufferAccess: Bool32,
|
|
fullDrawIndexUint32: Bool32,
|
|
imageCubeArray: Bool32,
|
|
independentBlend: Bool32,
|
|
geometryShader: Bool32,
|
|
tessellationShader: Bool32,
|
|
sampleRateShading: Bool32,
|
|
dualSrcBlend: Bool32,
|
|
logicOp: Bool32,
|
|
multiDrawIndirect: Bool32,
|
|
drawIndirectFirstInstance: Bool32,
|
|
depthClamp: Bool32,
|
|
depthBiasClamp: Bool32,
|
|
fillModeNonSolid: Bool32,
|
|
depthBounds: Bool32,
|
|
wideLines: Bool32,
|
|
largePoints: Bool32,
|
|
alphaToOne: Bool32,
|
|
multiViewport: Bool32,
|
|
samplerAnisotropy: Bool32,
|
|
textureCompressionETC2: Bool32,
|
|
textureCompressionASTC_LDR: Bool32,
|
|
textureCompressionBC: Bool32,
|
|
occlusionQueryPrecise: Bool32,
|
|
pipelineStatisticsQuery: Bool32,
|
|
vertexPipelineStoresAndAtomics: Bool32,
|
|
fragmentStoresAndAtomics: Bool32,
|
|
shaderTessellationAndGeometryPointSize: Bool32,
|
|
shaderImageGatherExtended: Bool32,
|
|
shaderStorageImageExtendedFormats: Bool32,
|
|
shaderStorageImageMultisample: Bool32,
|
|
shaderStorageImageReadWithoutFormat: Bool32,
|
|
shaderStorageImageWriteWithoutFormat: Bool32,
|
|
shaderUniformBufferArrayDynamicIndexing: Bool32,
|
|
shaderSampledImageArrayDynamicIndexing: Bool32,
|
|
shaderStorageBufferArrayDynamicIndexing: Bool32,
|
|
shaderStorageImageArrayDynamicIndexing: Bool32,
|
|
shaderClipDistance: Bool32,
|
|
shaderCullDistance: Bool32,
|
|
shaderFloat64: Bool32,
|
|
shaderInt64: Bool32,
|
|
shaderInt16: Bool32,
|
|
shaderResourceResidency: Bool32,
|
|
shaderResourceMinLod: Bool32,
|
|
sparseBinding: Bool32,
|
|
sparseResidencyBuffer: Bool32,
|
|
sparseResidencyImage2D: Bool32,
|
|
sparseResidencyImage3D: Bool32,
|
|
sparseResidency2Samples: Bool32,
|
|
sparseResidency4Samples: Bool32,
|
|
sparseResidency8Samples: Bool32,
|
|
sparseResidency16Samples: Bool32,
|
|
sparseResidencyAliased: Bool32,
|
|
variableMultisampleRate: Bool32,
|
|
inheritedQueries: Bool32,
|
|
};
|
|
|
|
pub const FormatProperties = extern struct {
|
|
linearTilingFeatures: FormatFeatureFlags align(4) = FormatFeatureFlags{},
|
|
optimalTilingFeatures: FormatFeatureFlags align(4) = FormatFeatureFlags{},
|
|
bufferFeatures: FormatFeatureFlags align(4) = FormatFeatureFlags{},
|
|
};
|
|
|
|
pub const Extent3D = extern struct {
|
|
width: u32,
|
|
height: u32,
|
|
depth: u32,
|
|
};
|
|
|
|
pub const ImageFormatProperties = extern struct {
|
|
maxExtent: Extent3D,
|
|
maxMipLevels: u32,
|
|
maxArrayLayers: u32,
|
|
sampleCounts: SampleCountFlags align(4) = SampleCountFlags{},
|
|
maxResourceSize: DeviceSize,
|
|
};
|
|
|
|
pub const PhysicalDeviceLimits = extern struct {
|
|
maxImageDimension1D: u32,
|
|
maxImageDimension2D: u32,
|
|
maxImageDimension3D: u32,
|
|
maxImageDimensionCube: u32,
|
|
maxImageArrayLayers: u32,
|
|
maxTexelBufferElements: u32,
|
|
maxUniformBufferRange: u32,
|
|
maxStorageBufferRange: u32,
|
|
maxPushConstantsSize: u32,
|
|
maxMemoryAllocationCount: u32,
|
|
maxSamplerAllocationCount: u32,
|
|
bufferImageGranularity: DeviceSize,
|
|
sparseAddressSpaceSize: DeviceSize,
|
|
maxBoundDescriptorSets: u32,
|
|
maxPerStageDescriptorSamplers: u32,
|
|
maxPerStageDescriptorUniformBuffers: u32,
|
|
maxPerStageDescriptorStorageBuffers: u32,
|
|
maxPerStageDescriptorSampledImages: u32,
|
|
maxPerStageDescriptorStorageImages: u32,
|
|
maxPerStageDescriptorInputAttachments: u32,
|
|
maxPerStageResources: u32,
|
|
maxDescriptorSetSamplers: u32,
|
|
maxDescriptorSetUniformBuffers: u32,
|
|
maxDescriptorSetUniformBuffersDynamic: u32,
|
|
maxDescriptorSetStorageBuffers: u32,
|
|
maxDescriptorSetStorageBuffersDynamic: u32,
|
|
maxDescriptorSetSampledImages: u32,
|
|
maxDescriptorSetStorageImages: u32,
|
|
maxDescriptorSetInputAttachments: u32,
|
|
maxVertexInputAttributes: u32,
|
|
maxVertexInputBindings: u32,
|
|
maxVertexInputAttributeOffset: u32,
|
|
maxVertexInputBindingStride: u32,
|
|
maxVertexOutputComponents: u32,
|
|
maxTessellationGenerationLevel: u32,
|
|
maxTessellationPatchSize: u32,
|
|
maxTessellationControlPerVertexInputComponents: u32,
|
|
maxTessellationControlPerVertexOutputComponents: u32,
|
|
maxTessellationControlPerPatchOutputComponents: u32,
|
|
maxTessellationControlTotalOutputComponents: u32,
|
|
maxTessellationEvaluationInputComponents: u32,
|
|
maxTessellationEvaluationOutputComponents: u32,
|
|
maxGeometryShaderInvocations: u32,
|
|
maxGeometryInputComponents: u32,
|
|
maxGeometryOutputComponents: u32,
|
|
maxGeometryOutputVertices: u32,
|
|
maxGeometryTotalOutputComponents: u32,
|
|
maxFragmentInputComponents: u32,
|
|
maxFragmentOutputAttachments: u32,
|
|
maxFragmentDualSrcAttachments: u32,
|
|
maxFragmentCombinedOutputResources: u32,
|
|
maxComputeSharedMemorySize: u32,
|
|
maxComputeWorkGroupCount: [3]u32,
|
|
maxComputeWorkGroupInvocations: u32,
|
|
maxComputeWorkGroupSize: [3]u32,
|
|
subPixelPrecisionBits: u32,
|
|
subTexelPrecisionBits: u32,
|
|
mipmapPrecisionBits: u32,
|
|
maxDrawIndexedIndexValue: u32,
|
|
maxDrawIndirectCount: u32,
|
|
maxSamplerLodBias: f32,
|
|
maxSamplerAnisotropy: f32,
|
|
maxViewports: u32,
|
|
maxViewportDimensions: [2]u32,
|
|
viewportBoundsRange: [2]f32,
|
|
viewportSubPixelBits: u32,
|
|
minMemoryMapAlignment: usize,
|
|
minTexelBufferOffsetAlignment: DeviceSize,
|
|
minUniformBufferOffsetAlignment: DeviceSize,
|
|
minStorageBufferOffsetAlignment: DeviceSize,
|
|
minTexelOffset: i32,
|
|
maxTexelOffset: u32,
|
|
minTexelGatherOffset: i32,
|
|
maxTexelGatherOffset: u32,
|
|
minInterpolationOffset: f32,
|
|
maxInterpolationOffset: f32,
|
|
subPixelInterpolationOffsetBits: u32,
|
|
maxFramebufferWidth: u32,
|
|
maxFramebufferHeight: u32,
|
|
maxFramebufferLayers: u32,
|
|
framebufferColorSampleCounts: SampleCountFlags align(4) = SampleCountFlags{},
|
|
framebufferDepthSampleCounts: SampleCountFlags align(4) = SampleCountFlags{},
|
|
framebufferStencilSampleCounts: SampleCountFlags align(4) = SampleCountFlags{},
|
|
framebufferNoAttachmentsSampleCounts: SampleCountFlags align(4) = SampleCountFlags{},
|
|
maxColorAttachments: u32,
|
|
sampledImageColorSampleCounts: SampleCountFlags align(4) = SampleCountFlags{},
|
|
sampledImageIntegerSampleCounts: SampleCountFlags align(4) = SampleCountFlags{},
|
|
sampledImageDepthSampleCounts: SampleCountFlags align(4) = SampleCountFlags{},
|
|
sampledImageStencilSampleCounts: SampleCountFlags align(4) = SampleCountFlags{},
|
|
storageImageSampleCounts: SampleCountFlags align(4) = SampleCountFlags{},
|
|
maxSampleMaskWords: u32,
|
|
timestampComputeAndGraphics: Bool32,
|
|
timestampPeriod: f32,
|
|
maxClipDistances: u32,
|
|
maxCullDistances: u32,
|
|
maxCombinedClipAndCullDistances: u32,
|
|
discreteQueuePriorities: u32,
|
|
pointSizeRange: [2]f32,
|
|
lineWidthRange: [2]f32,
|
|
pointSizeGranularity: f32,
|
|
lineWidthGranularity: f32,
|
|
strictLines: Bool32,
|
|
standardSampleLocations: Bool32,
|
|
optimalBufferCopyOffsetAlignment: DeviceSize,
|
|
optimalBufferCopyRowPitchAlignment: DeviceSize,
|
|
nonCoherentAtomSize: DeviceSize,
|
|
};
|
|
|
|
pub const PhysicalDeviceSparseProperties = extern struct {
|
|
residencyStandard2DBlockShape: Bool32,
|
|
residencyStandard2DMultisampleBlockShape: Bool32,
|
|
residencyStandard3DBlockShape: Bool32,
|
|
residencyAlignedMipSize: Bool32,
|
|
residencyNonResidentStrict: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDeviceProperties = extern struct {
|
|
apiVersion: u32,
|
|
driverVersion: u32,
|
|
vendorID: u32,
|
|
deviceID: u32,
|
|
deviceType: PhysicalDeviceType,
|
|
deviceName: [MAX_PHYSICAL_DEVICE_NAME_SIZE-1:0]u8,
|
|
pipelineCacheUUID: [UUID_SIZE]u8,
|
|
limits: PhysicalDeviceLimits,
|
|
sparseProperties: PhysicalDeviceSparseProperties,
|
|
};
|
|
|
|
pub const QueueFamilyProperties = extern struct {
|
|
queueFlags: QueueFlags align(4) = QueueFlags{},
|
|
queueCount: u32,
|
|
timestampValidBits: u32,
|
|
minImageTransferGranularity: Extent3D,
|
|
};
|
|
|
|
pub const MemoryType = extern struct {
|
|
propertyFlags: MemoryPropertyFlags align(4) = MemoryPropertyFlags{},
|
|
heapIndex: u32,
|
|
};
|
|
|
|
pub const MemoryHeap = extern struct {
|
|
size: DeviceSize,
|
|
flags: MemoryHeapFlags align(4) = MemoryHeapFlags{},
|
|
};
|
|
|
|
pub const PhysicalDeviceMemoryProperties = extern struct {
|
|
memoryTypeCount: u32,
|
|
memoryTypes: [MAX_MEMORY_TYPES]MemoryType,
|
|
memoryHeapCount: u32,
|
|
memoryHeaps: [MAX_MEMORY_HEAPS]MemoryHeap,
|
|
};
|
|
|
|
pub const PFN_VoidFunction = fn () callconv(CallConv) void;
|
|
|
|
pub const DeviceQueueCreateInfo = extern struct {
|
|
sType: StructureType = .DEVICE_QUEUE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: DeviceQueueCreateFlags align(4) = DeviceQueueCreateFlags{},
|
|
queueFamilyIndex: u32,
|
|
queueCount: u32,
|
|
pQueuePriorities: [*]const f32,
|
|
};
|
|
|
|
pub const DeviceCreateInfo = extern struct {
|
|
sType: StructureType = .DEVICE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: DeviceCreateFlags align(4) = DeviceCreateFlags{},
|
|
queueCreateInfoCount: u32,
|
|
pQueueCreateInfos: [*]const DeviceQueueCreateInfo,
|
|
enabledLayerCount: u32 = 0,
|
|
ppEnabledLayerNames: [*]const CString = undefined,
|
|
enabledExtensionCount: u32 = 0,
|
|
ppEnabledExtensionNames: [*]const CString = undefined,
|
|
pEnabledFeatures: ?*const PhysicalDeviceFeatures = null,
|
|
};
|
|
|
|
pub const ExtensionProperties = extern struct {
|
|
extensionName: [MAX_EXTENSION_NAME_SIZE-1:0]u8,
|
|
specVersion: u32,
|
|
};
|
|
|
|
pub const LayerProperties = extern struct {
|
|
layerName: [MAX_EXTENSION_NAME_SIZE-1:0]u8,
|
|
specVersion: u32,
|
|
implementationVersion: u32,
|
|
description: [MAX_DESCRIPTION_SIZE-1:0]u8,
|
|
};
|
|
|
|
pub const SubmitInfo = extern struct {
|
|
sType: StructureType = .SUBMIT_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
waitSemaphoreCount: u32 = 0,
|
|
pWaitSemaphores: [*]const Semaphore = undefined,
|
|
pWaitDstStageMask: [*]align(4) const PipelineStageFlags = undefined,
|
|
commandBufferCount: u32 = 0,
|
|
pCommandBuffers: [*]const CommandBuffer = undefined,
|
|
signalSemaphoreCount: u32 = 0,
|
|
pSignalSemaphores: [*]const Semaphore = undefined,
|
|
};
|
|
|
|
pub const MemoryAllocateInfo = extern struct {
|
|
sType: StructureType = .MEMORY_ALLOCATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
allocationSize: DeviceSize,
|
|
memoryTypeIndex: u32,
|
|
};
|
|
|
|
pub const MappedMemoryRange = extern struct {
|
|
sType: StructureType = .MAPPED_MEMORY_RANGE,
|
|
pNext: ?*const anyopaque = null,
|
|
memory: DeviceMemory,
|
|
offset: DeviceSize,
|
|
size: DeviceSize,
|
|
};
|
|
|
|
pub const MemoryRequirements = extern struct {
|
|
size: DeviceSize,
|
|
alignment: DeviceSize,
|
|
memoryTypeBits: u32,
|
|
};
|
|
|
|
pub const SparseImageFormatProperties = extern struct {
|
|
aspectMask: ImageAspectFlags align(4) = ImageAspectFlags{},
|
|
imageGranularity: Extent3D,
|
|
flags: SparseImageFormatFlags align(4) = SparseImageFormatFlags{},
|
|
};
|
|
|
|
pub const SparseImageMemoryRequirements = extern struct {
|
|
formatProperties: SparseImageFormatProperties,
|
|
imageMipTailFirstLod: u32,
|
|
imageMipTailSize: DeviceSize,
|
|
imageMipTailOffset: DeviceSize,
|
|
imageMipTailStride: DeviceSize,
|
|
};
|
|
|
|
pub const SparseMemoryBind = extern struct {
|
|
resourceOffset: DeviceSize,
|
|
size: DeviceSize,
|
|
memory: DeviceMemory = DeviceMemory.Null,
|
|
memoryOffset: DeviceSize,
|
|
flags: SparseMemoryBindFlags align(4) = SparseMemoryBindFlags{},
|
|
};
|
|
|
|
pub const SparseBufferMemoryBindInfo = extern struct {
|
|
buffer: Buffer,
|
|
bindCount: u32,
|
|
pBinds: [*]const SparseMemoryBind,
|
|
};
|
|
|
|
pub const SparseImageOpaqueMemoryBindInfo = extern struct {
|
|
image: Image,
|
|
bindCount: u32,
|
|
pBinds: [*]const SparseMemoryBind,
|
|
};
|
|
|
|
pub const ImageSubresource = extern struct {
|
|
aspectMask: ImageAspectFlags align(4),
|
|
mipLevel: u32,
|
|
arrayLayer: u32,
|
|
};
|
|
|
|
pub const Offset3D = extern struct {
|
|
x: i32,
|
|
y: i32,
|
|
z: i32,
|
|
};
|
|
|
|
pub const SparseImageMemoryBind = extern struct {
|
|
subresource: ImageSubresource,
|
|
offset: Offset3D,
|
|
extent: Extent3D,
|
|
memory: DeviceMemory = DeviceMemory.Null,
|
|
memoryOffset: DeviceSize,
|
|
flags: SparseMemoryBindFlags align(4) = SparseMemoryBindFlags{},
|
|
};
|
|
|
|
pub const SparseImageMemoryBindInfo = extern struct {
|
|
image: Image,
|
|
bindCount: u32,
|
|
pBinds: [*]const SparseImageMemoryBind,
|
|
};
|
|
|
|
pub const BindSparseInfo = extern struct {
|
|
sType: StructureType = .BIND_SPARSE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
waitSemaphoreCount: u32 = 0,
|
|
pWaitSemaphores: [*]const Semaphore = undefined,
|
|
bufferBindCount: u32 = 0,
|
|
pBufferBinds: [*]const SparseBufferMemoryBindInfo = undefined,
|
|
imageOpaqueBindCount: u32 = 0,
|
|
pImageOpaqueBinds: [*]const SparseImageOpaqueMemoryBindInfo = undefined,
|
|
imageBindCount: u32 = 0,
|
|
pImageBinds: [*]const SparseImageMemoryBindInfo = undefined,
|
|
signalSemaphoreCount: u32 = 0,
|
|
pSignalSemaphores: [*]const Semaphore = undefined,
|
|
};
|
|
|
|
pub const FenceCreateInfo = extern struct {
|
|
sType: StructureType = .FENCE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: FenceCreateFlags align(4) = FenceCreateFlags{},
|
|
};
|
|
|
|
pub const SemaphoreCreateInfo = extern struct {
|
|
sType: StructureType = .SEMAPHORE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: SemaphoreCreateFlags align(4) = SemaphoreCreateFlags{},
|
|
};
|
|
|
|
pub const EventCreateInfo = extern struct {
|
|
sType: StructureType = .EVENT_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: EventCreateFlags align(4) = EventCreateFlags{},
|
|
};
|
|
|
|
pub const QueryPoolCreateInfo = extern struct {
|
|
sType: StructureType = .QUERY_POOL_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: QueryPoolCreateFlags align(4) = QueryPoolCreateFlags{},
|
|
queryType: QueryType,
|
|
queryCount: u32,
|
|
pipelineStatistics: QueryPipelineStatisticFlags align(4) = QueryPipelineStatisticFlags{},
|
|
};
|
|
|
|
pub const BufferCreateInfo = extern struct {
|
|
sType: StructureType = .BUFFER_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: BufferCreateFlags align(4) = BufferCreateFlags{},
|
|
size: DeviceSize,
|
|
usage: BufferUsageFlags align(4),
|
|
sharingMode: SharingMode,
|
|
queueFamilyIndexCount: u32 = 0,
|
|
pQueueFamilyIndices: [*]const u32 = undefined,
|
|
};
|
|
|
|
pub const BufferViewCreateInfo = extern struct {
|
|
sType: StructureType = .BUFFER_VIEW_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: BufferViewCreateFlags align(4) = BufferViewCreateFlags{},
|
|
buffer: Buffer,
|
|
format: Format,
|
|
offset: DeviceSize,
|
|
range: DeviceSize,
|
|
};
|
|
|
|
pub const ImageCreateInfo = extern struct {
|
|
sType: StructureType = .IMAGE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: ImageCreateFlags align(4) = ImageCreateFlags{},
|
|
imageType: ImageType,
|
|
format: Format,
|
|
extent: Extent3D,
|
|
mipLevels: u32,
|
|
arrayLayers: u32,
|
|
samples: SampleCountFlags align(4),
|
|
tiling: ImageTiling,
|
|
usage: ImageUsageFlags align(4),
|
|
sharingMode: SharingMode,
|
|
queueFamilyIndexCount: u32 = 0,
|
|
pQueueFamilyIndices: [*]const u32 = undefined,
|
|
initialLayout: ImageLayout,
|
|
};
|
|
|
|
pub const SubresourceLayout = extern struct {
|
|
offset: DeviceSize,
|
|
size: DeviceSize,
|
|
rowPitch: DeviceSize,
|
|
arrayPitch: DeviceSize,
|
|
depthPitch: DeviceSize,
|
|
};
|
|
|
|
pub const ComponentMapping = extern struct {
|
|
r: ComponentSwizzle,
|
|
g: ComponentSwizzle,
|
|
b: ComponentSwizzle,
|
|
a: ComponentSwizzle,
|
|
};
|
|
|
|
pub const ImageSubresourceRange = extern struct {
|
|
aspectMask: ImageAspectFlags align(4),
|
|
baseMipLevel: u32,
|
|
levelCount: u32,
|
|
baseArrayLayer: u32,
|
|
layerCount: u32,
|
|
};
|
|
|
|
pub const ImageViewCreateInfo = extern struct {
|
|
sType: StructureType = .IMAGE_VIEW_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: ImageViewCreateFlags align(4) = ImageViewCreateFlags{},
|
|
image: Image,
|
|
viewType: ImageViewType,
|
|
format: Format,
|
|
components: ComponentMapping,
|
|
subresourceRange: ImageSubresourceRange,
|
|
};
|
|
|
|
pub const ShaderModuleCreateInfo = extern struct {
|
|
sType: StructureType = .SHADER_MODULE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: ShaderModuleCreateFlags align(4) = ShaderModuleCreateFlags{},
|
|
codeSize: usize,
|
|
pCode: [*]const u32,
|
|
};
|
|
|
|
pub const PipelineCacheCreateInfo = extern struct {
|
|
sType: StructureType = .PIPELINE_CACHE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: PipelineCacheCreateFlags align(4) = PipelineCacheCreateFlags{},
|
|
initialDataSize: usize = 0,
|
|
pInitialData: ?*const anyopaque = undefined,
|
|
};
|
|
|
|
pub const SpecializationMapEntry = extern struct {
|
|
constantID: u32,
|
|
offset: u32,
|
|
size: usize,
|
|
};
|
|
|
|
pub const SpecializationInfo = extern struct {
|
|
mapEntryCount: u32 = 0,
|
|
pMapEntries: [*]const SpecializationMapEntry = undefined,
|
|
dataSize: usize = 0,
|
|
pData: ?*const anyopaque = undefined,
|
|
};
|
|
|
|
pub const PipelineShaderStageCreateInfo = extern struct {
|
|
sType: StructureType = .PIPELINE_SHADER_STAGE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: PipelineShaderStageCreateFlags align(4) = PipelineShaderStageCreateFlags{},
|
|
stage: ShaderStageFlags align(4),
|
|
module: ShaderModule,
|
|
pName: CString,
|
|
pSpecializationInfo: ?*const SpecializationInfo = null,
|
|
};
|
|
|
|
pub const VertexInputBindingDescription = extern struct {
|
|
binding: u32,
|
|
stride: u32,
|
|
inputRate: VertexInputRate,
|
|
};
|
|
|
|
pub const VertexInputAttributeDescription = extern struct {
|
|
location: u32,
|
|
binding: u32,
|
|
format: Format,
|
|
offset: u32,
|
|
};
|
|
|
|
pub const PipelineVertexInputStateCreateInfo = extern struct {
|
|
sType: StructureType = .PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: PipelineVertexInputStateCreateFlags align(4) = PipelineVertexInputStateCreateFlags{},
|
|
vertexBindingDescriptionCount: u32 = 0,
|
|
pVertexBindingDescriptions: [*]const VertexInputBindingDescription = undefined,
|
|
vertexAttributeDescriptionCount: u32 = 0,
|
|
pVertexAttributeDescriptions: [*]const VertexInputAttributeDescription = undefined,
|
|
};
|
|
|
|
pub const PipelineInputAssemblyStateCreateInfo = extern struct {
|
|
sType: StructureType = .PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: PipelineInputAssemblyStateCreateFlags align(4) = PipelineInputAssemblyStateCreateFlags{},
|
|
topology: PrimitiveTopology,
|
|
primitiveRestartEnable: Bool32,
|
|
};
|
|
|
|
pub const PipelineTessellationStateCreateInfo = extern struct {
|
|
sType: StructureType = .PIPELINE_TESSELLATION_STATE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: PipelineTessellationStateCreateFlags align(4) = PipelineTessellationStateCreateFlags{},
|
|
patchControlPoints: u32,
|
|
};
|
|
|
|
pub const Viewport = extern struct {
|
|
x: f32,
|
|
y: f32,
|
|
width: f32,
|
|
height: f32,
|
|
minDepth: f32,
|
|
maxDepth: f32,
|
|
};
|
|
|
|
pub const Offset2D = extern struct {
|
|
x: i32,
|
|
y: i32,
|
|
};
|
|
|
|
pub const Extent2D = extern struct {
|
|
width: u32,
|
|
height: u32,
|
|
};
|
|
|
|
pub const Rect2D = extern struct {
|
|
offset: Offset2D,
|
|
extent: Extent2D,
|
|
};
|
|
|
|
pub const PipelineViewportStateCreateInfo = extern struct {
|
|
sType: StructureType = .PIPELINE_VIEWPORT_STATE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: PipelineViewportStateCreateFlags align(4) = PipelineViewportStateCreateFlags{},
|
|
viewportCount: u32,
|
|
pViewports: ?[*]const Viewport = null,
|
|
scissorCount: u32,
|
|
pScissors: ?[*]const Rect2D = null,
|
|
};
|
|
|
|
pub const PipelineRasterizationStateCreateInfo = extern struct {
|
|
sType: StructureType = .PIPELINE_RASTERIZATION_STATE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: PipelineRasterizationStateCreateFlags align(4) = PipelineRasterizationStateCreateFlags{},
|
|
depthClampEnable: Bool32,
|
|
rasterizerDiscardEnable: Bool32,
|
|
polygonMode: PolygonMode,
|
|
cullMode: CullModeFlags align(4) = CullModeFlags{},
|
|
frontFace: FrontFace,
|
|
depthBiasEnable: Bool32,
|
|
depthBiasConstantFactor: f32,
|
|
depthBiasClamp: f32,
|
|
depthBiasSlopeFactor: f32,
|
|
lineWidth: f32,
|
|
};
|
|
|
|
pub const PipelineMultisampleStateCreateInfo = extern struct {
|
|
sType: StructureType = .PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: PipelineMultisampleStateCreateFlags align(4) = PipelineMultisampleStateCreateFlags{},
|
|
rasterizationSamples: SampleCountFlags align(4),
|
|
sampleShadingEnable: Bool32,
|
|
minSampleShading: f32,
|
|
pSampleMask: ?[*]const SampleMask = null,
|
|
alphaToCoverageEnable: Bool32,
|
|
alphaToOneEnable: Bool32,
|
|
};
|
|
|
|
pub const StencilOpState = extern struct {
|
|
failOp: StencilOp,
|
|
passOp: StencilOp,
|
|
depthFailOp: StencilOp,
|
|
compareOp: CompareOp,
|
|
compareMask: u32,
|
|
writeMask: u32,
|
|
reference: u32,
|
|
};
|
|
|
|
pub const PipelineDepthStencilStateCreateInfo = extern struct {
|
|
sType: StructureType = .PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: PipelineDepthStencilStateCreateFlags align(4) = PipelineDepthStencilStateCreateFlags{},
|
|
depthTestEnable: Bool32,
|
|
depthWriteEnable: Bool32,
|
|
depthCompareOp: CompareOp,
|
|
depthBoundsTestEnable: Bool32,
|
|
stencilTestEnable: Bool32,
|
|
front: StencilOpState,
|
|
back: StencilOpState,
|
|
minDepthBounds: f32,
|
|
maxDepthBounds: f32,
|
|
};
|
|
|
|
pub const PipelineColorBlendAttachmentState = extern struct {
|
|
blendEnable: Bool32,
|
|
srcColorBlendFactor: BlendFactor,
|
|
dstColorBlendFactor: BlendFactor,
|
|
colorBlendOp: BlendOp,
|
|
srcAlphaBlendFactor: BlendFactor,
|
|
dstAlphaBlendFactor: BlendFactor,
|
|
alphaBlendOp: BlendOp,
|
|
colorWriteMask: ColorComponentFlags align(4) = ColorComponentFlags{},
|
|
};
|
|
|
|
pub const PipelineColorBlendStateCreateInfo = extern struct {
|
|
sType: StructureType = .PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: PipelineColorBlendStateCreateFlags align(4) = PipelineColorBlendStateCreateFlags{},
|
|
logicOpEnable: Bool32,
|
|
logicOp: LogicOp,
|
|
attachmentCount: u32 = 0,
|
|
pAttachments: [*]const PipelineColorBlendAttachmentState = undefined,
|
|
blendConstants: [4]f32,
|
|
};
|
|
|
|
pub const PipelineDynamicStateCreateInfo = extern struct {
|
|
sType: StructureType = .PIPELINE_DYNAMIC_STATE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: PipelineDynamicStateCreateFlags align(4) = PipelineDynamicStateCreateFlags{},
|
|
dynamicStateCount: u32 = 0,
|
|
pDynamicStates: [*]const DynamicState = undefined,
|
|
};
|
|
|
|
pub const GraphicsPipelineCreateInfo = extern struct {
|
|
sType: StructureType = .GRAPHICS_PIPELINE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: PipelineCreateFlags align(4) = PipelineCreateFlags{},
|
|
stageCount: u32,
|
|
pStages: [*]const PipelineShaderStageCreateInfo,
|
|
pVertexInputState: ?*const PipelineVertexInputStateCreateInfo = null,
|
|
pInputAssemblyState: ?*const PipelineInputAssemblyStateCreateInfo = null,
|
|
pTessellationState: ?*const PipelineTessellationStateCreateInfo = null,
|
|
pViewportState: ?*const PipelineViewportStateCreateInfo = null,
|
|
pRasterizationState: *const PipelineRasterizationStateCreateInfo,
|
|
pMultisampleState: ?*const PipelineMultisampleStateCreateInfo = null,
|
|
pDepthStencilState: ?*const PipelineDepthStencilStateCreateInfo = null,
|
|
pColorBlendState: ?*const PipelineColorBlendStateCreateInfo = null,
|
|
pDynamicState: ?*const PipelineDynamicStateCreateInfo = null,
|
|
layout: PipelineLayout,
|
|
renderPass: RenderPass,
|
|
subpass: u32,
|
|
basePipelineHandle: Pipeline = Pipeline.Null,
|
|
basePipelineIndex: i32,
|
|
};
|
|
|
|
pub const ComputePipelineCreateInfo = extern struct {
|
|
sType: StructureType = .COMPUTE_PIPELINE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: PipelineCreateFlags align(4) = PipelineCreateFlags{},
|
|
stage: PipelineShaderStageCreateInfo,
|
|
layout: PipelineLayout,
|
|
basePipelineHandle: Pipeline = Pipeline.Null,
|
|
basePipelineIndex: i32,
|
|
};
|
|
|
|
pub const PushConstantRange = extern struct {
|
|
stageFlags: ShaderStageFlags align(4),
|
|
offset: u32,
|
|
size: u32,
|
|
};
|
|
|
|
pub const PipelineLayoutCreateInfo = extern struct {
|
|
sType: StructureType = .PIPELINE_LAYOUT_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: PipelineLayoutCreateFlags align(4) = PipelineLayoutCreateFlags{},
|
|
setLayoutCount: u32 = 0,
|
|
pSetLayouts: [*]const DescriptorSetLayout = undefined,
|
|
pushConstantRangeCount: u32 = 0,
|
|
pPushConstantRanges: [*]const PushConstantRange = undefined,
|
|
};
|
|
|
|
pub const SamplerCreateInfo = extern struct {
|
|
sType: StructureType = .SAMPLER_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: SamplerCreateFlags align(4) = SamplerCreateFlags{},
|
|
magFilter: Filter,
|
|
minFilter: Filter,
|
|
mipmapMode: SamplerMipmapMode,
|
|
addressModeU: SamplerAddressMode,
|
|
addressModeV: SamplerAddressMode,
|
|
addressModeW: SamplerAddressMode,
|
|
mipLodBias: f32,
|
|
anisotropyEnable: Bool32,
|
|
maxAnisotropy: f32,
|
|
compareEnable: Bool32,
|
|
compareOp: CompareOp,
|
|
minLod: f32,
|
|
maxLod: f32,
|
|
borderColor: BorderColor,
|
|
unnormalizedCoordinates: Bool32,
|
|
};
|
|
|
|
pub const DescriptorSetLayoutBinding = extern struct {
|
|
binding: u32,
|
|
descriptorType: DescriptorType,
|
|
descriptorCount: u32 = 0,
|
|
stageFlags: ShaderStageFlags align(4),
|
|
pImmutableSamplers: ?[*]const Sampler = null,
|
|
};
|
|
|
|
pub const DescriptorSetLayoutCreateInfo = extern struct {
|
|
sType: StructureType = .DESCRIPTOR_SET_LAYOUT_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: DescriptorSetLayoutCreateFlags align(4) = DescriptorSetLayoutCreateFlags{},
|
|
bindingCount: u32 = 0,
|
|
pBindings: [*]const DescriptorSetLayoutBinding = undefined,
|
|
};
|
|
|
|
pub const DescriptorPoolSize = extern struct {
|
|
inType: DescriptorType,
|
|
descriptorCount: u32,
|
|
};
|
|
|
|
pub const DescriptorPoolCreateInfo = extern struct {
|
|
sType: StructureType = .DESCRIPTOR_POOL_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: DescriptorPoolCreateFlags align(4) = DescriptorPoolCreateFlags{},
|
|
maxSets: u32,
|
|
poolSizeCount: u32,
|
|
pPoolSizes: [*]const DescriptorPoolSize,
|
|
};
|
|
|
|
pub const DescriptorSetAllocateInfo = extern struct {
|
|
sType: StructureType = .DESCRIPTOR_SET_ALLOCATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
descriptorPool: DescriptorPool,
|
|
descriptorSetCount: u32,
|
|
pSetLayouts: [*]const DescriptorSetLayout,
|
|
};
|
|
|
|
pub const DescriptorImageInfo = extern struct {
|
|
sampler: Sampler,
|
|
imageView: ImageView,
|
|
imageLayout: ImageLayout,
|
|
};
|
|
|
|
pub const DescriptorBufferInfo = extern struct {
|
|
buffer: Buffer,
|
|
offset: DeviceSize,
|
|
range: DeviceSize,
|
|
};
|
|
|
|
pub const WriteDescriptorSet = extern struct {
|
|
sType: StructureType = .WRITE_DESCRIPTOR_SET,
|
|
pNext: ?*const anyopaque = null,
|
|
dstSet: DescriptorSet,
|
|
dstBinding: u32,
|
|
dstArrayElement: u32,
|
|
descriptorCount: u32,
|
|
descriptorType: DescriptorType,
|
|
pImageInfo: [*]const DescriptorImageInfo,
|
|
pBufferInfo: [*]const DescriptorBufferInfo,
|
|
pTexelBufferView: [*]const BufferView,
|
|
};
|
|
|
|
pub const CopyDescriptorSet = extern struct {
|
|
sType: StructureType = .COPY_DESCRIPTOR_SET,
|
|
pNext: ?*const anyopaque = null,
|
|
srcSet: DescriptorSet,
|
|
srcBinding: u32,
|
|
srcArrayElement: u32,
|
|
dstSet: DescriptorSet,
|
|
dstBinding: u32,
|
|
dstArrayElement: u32,
|
|
descriptorCount: u32,
|
|
};
|
|
|
|
pub const FramebufferCreateInfo = extern struct {
|
|
sType: StructureType = .FRAMEBUFFER_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: FramebufferCreateFlags align(4) = FramebufferCreateFlags{},
|
|
renderPass: RenderPass,
|
|
attachmentCount: u32 = 0,
|
|
pAttachments: [*]const ImageView = undefined,
|
|
width: u32,
|
|
height: u32,
|
|
layers: u32,
|
|
};
|
|
|
|
pub const AttachmentDescription = extern struct {
|
|
flags: AttachmentDescriptionFlags align(4) = AttachmentDescriptionFlags{},
|
|
format: Format,
|
|
samples: SampleCountFlags align(4),
|
|
loadOp: AttachmentLoadOp,
|
|
storeOp: AttachmentStoreOp,
|
|
stencilLoadOp: AttachmentLoadOp,
|
|
stencilStoreOp: AttachmentStoreOp,
|
|
initialLayout: ImageLayout,
|
|
finalLayout: ImageLayout,
|
|
};
|
|
|
|
pub const AttachmentReference = extern struct {
|
|
attachment: u32,
|
|
layout: ImageLayout,
|
|
};
|
|
|
|
pub const SubpassDescription = extern struct {
|
|
flags: SubpassDescriptionFlags align(4) = SubpassDescriptionFlags{},
|
|
pipelineBindPoint: PipelineBindPoint,
|
|
inputAttachmentCount: u32 = 0,
|
|
pInputAttachments: [*]const AttachmentReference = undefined,
|
|
colorAttachmentCount: u32 = 0,
|
|
pColorAttachments: [*]const AttachmentReference = undefined,
|
|
pResolveAttachments: ?[*]const AttachmentReference = null,
|
|
pDepthStencilAttachment: ?*const AttachmentReference = null,
|
|
preserveAttachmentCount: u32 = 0,
|
|
pPreserveAttachments: [*]const u32 = undefined,
|
|
};
|
|
|
|
pub const SubpassDependency = extern struct {
|
|
srcSubpass: u32,
|
|
dstSubpass: u32,
|
|
srcStageMask: PipelineStageFlags align(4),
|
|
dstStageMask: PipelineStageFlags align(4),
|
|
srcAccessMask: AccessFlags align(4) = AccessFlags{},
|
|
dstAccessMask: AccessFlags align(4) = AccessFlags{},
|
|
dependencyFlags: DependencyFlags align(4) = DependencyFlags{},
|
|
};
|
|
|
|
pub const RenderPassCreateInfo = extern struct {
|
|
sType: StructureType = .RENDER_PASS_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: RenderPassCreateFlags align(4) = RenderPassCreateFlags{},
|
|
attachmentCount: u32 = 0,
|
|
pAttachments: [*]const AttachmentDescription = undefined,
|
|
subpassCount: u32,
|
|
pSubpasses: [*]const SubpassDescription,
|
|
dependencyCount: u32 = 0,
|
|
pDependencies: [*]const SubpassDependency = undefined,
|
|
};
|
|
|
|
pub const CommandPoolCreateInfo = extern struct {
|
|
sType: StructureType = .COMMAND_POOL_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: CommandPoolCreateFlags align(4) = CommandPoolCreateFlags{},
|
|
queueFamilyIndex: u32,
|
|
};
|
|
|
|
pub const CommandBufferAllocateInfo = extern struct {
|
|
sType: StructureType = .COMMAND_BUFFER_ALLOCATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
commandPool: CommandPool,
|
|
level: CommandBufferLevel,
|
|
commandBufferCount: u32,
|
|
};
|
|
|
|
pub const CommandBufferInheritanceInfo = extern struct {
|
|
sType: StructureType = .COMMAND_BUFFER_INHERITANCE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
renderPass: RenderPass = RenderPass.Null,
|
|
subpass: u32,
|
|
framebuffer: Framebuffer = Framebuffer.Null,
|
|
occlusionQueryEnable: Bool32,
|
|
queryFlags: QueryControlFlags align(4) = QueryControlFlags{},
|
|
pipelineStatistics: QueryPipelineStatisticFlags align(4) = QueryPipelineStatisticFlags{},
|
|
};
|
|
|
|
pub const CommandBufferBeginInfo = extern struct {
|
|
sType: StructureType = .COMMAND_BUFFER_BEGIN_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: CommandBufferUsageFlags align(4) = CommandBufferUsageFlags{},
|
|
pInheritanceInfo: ?*const CommandBufferInheritanceInfo = null,
|
|
};
|
|
|
|
pub const BufferCopy = extern struct {
|
|
srcOffset: DeviceSize,
|
|
dstOffset: DeviceSize,
|
|
size: DeviceSize,
|
|
};
|
|
|
|
pub const ImageSubresourceLayers = extern struct {
|
|
aspectMask: ImageAspectFlags align(4),
|
|
mipLevel: u32,
|
|
baseArrayLayer: u32,
|
|
layerCount: u32,
|
|
};
|
|
|
|
pub const ImageCopy = extern struct {
|
|
srcSubresource: ImageSubresourceLayers,
|
|
srcOffset: Offset3D,
|
|
dstSubresource: ImageSubresourceLayers,
|
|
dstOffset: Offset3D,
|
|
extent: Extent3D,
|
|
};
|
|
|
|
pub const ImageBlit = extern struct {
|
|
srcSubresource: ImageSubresourceLayers,
|
|
srcOffsets: [2]Offset3D,
|
|
dstSubresource: ImageSubresourceLayers,
|
|
dstOffsets: [2]Offset3D,
|
|
};
|
|
|
|
pub const BufferImageCopy = extern struct {
|
|
bufferOffset: DeviceSize,
|
|
bufferRowLength: u32,
|
|
bufferImageHeight: u32,
|
|
imageSubresource: ImageSubresourceLayers,
|
|
imageOffset: Offset3D,
|
|
imageExtent: Extent3D,
|
|
};
|
|
|
|
pub const ClearColorValue = extern union {
|
|
float32: [4]f32,
|
|
int32: [4]i32,
|
|
uint32: [4]u32,
|
|
};
|
|
|
|
pub const ClearDepthStencilValue = extern struct {
|
|
depth: f32,
|
|
stencil: u32,
|
|
};
|
|
|
|
pub const ClearValue = extern union {
|
|
color: ClearColorValue,
|
|
depthStencil: ClearDepthStencilValue,
|
|
};
|
|
|
|
pub const ClearAttachment = extern struct {
|
|
aspectMask: ImageAspectFlags align(4),
|
|
colorAttachment: u32,
|
|
clearValue: ClearValue,
|
|
};
|
|
|
|
pub const ClearRect = extern struct {
|
|
rect: Rect2D,
|
|
baseArrayLayer: u32,
|
|
layerCount: u32,
|
|
};
|
|
|
|
pub const ImageResolve = extern struct {
|
|
srcSubresource: ImageSubresourceLayers,
|
|
srcOffset: Offset3D,
|
|
dstSubresource: ImageSubresourceLayers,
|
|
dstOffset: Offset3D,
|
|
extent: Extent3D,
|
|
};
|
|
|
|
pub const MemoryBarrier = extern struct {
|
|
sType: StructureType = .MEMORY_BARRIER,
|
|
pNext: ?*const anyopaque = null,
|
|
srcAccessMask: AccessFlags align(4) = AccessFlags{},
|
|
dstAccessMask: AccessFlags align(4) = AccessFlags{},
|
|
};
|
|
|
|
pub const BufferMemoryBarrier = extern struct {
|
|
sType: StructureType = .BUFFER_MEMORY_BARRIER,
|
|
pNext: ?*const anyopaque = null,
|
|
srcAccessMask: AccessFlags align(4),
|
|
dstAccessMask: AccessFlags align(4),
|
|
srcQueueFamilyIndex: u32,
|
|
dstQueueFamilyIndex: u32,
|
|
buffer: Buffer,
|
|
offset: DeviceSize,
|
|
size: DeviceSize,
|
|
};
|
|
|
|
pub const ImageMemoryBarrier = extern struct {
|
|
sType: StructureType = .IMAGE_MEMORY_BARRIER,
|
|
pNext: ?*const anyopaque = null,
|
|
srcAccessMask: AccessFlags align(4),
|
|
dstAccessMask: AccessFlags align(4),
|
|
oldLayout: ImageLayout,
|
|
newLayout: ImageLayout,
|
|
srcQueueFamilyIndex: u32,
|
|
dstQueueFamilyIndex: u32,
|
|
image: Image,
|
|
subresourceRange: ImageSubresourceRange,
|
|
};
|
|
|
|
pub const RenderPassBeginInfo = extern struct {
|
|
sType: StructureType = .RENDER_PASS_BEGIN_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
renderPass: RenderPass,
|
|
framebuffer: Framebuffer,
|
|
renderArea: Rect2D,
|
|
clearValueCount: u32 = 0,
|
|
pClearValues: [*]const ClearValue = undefined,
|
|
};
|
|
|
|
pub const DispatchIndirectCommand = extern struct {
|
|
x: u32,
|
|
y: u32,
|
|
z: u32,
|
|
};
|
|
|
|
pub const DrawIndexedIndirectCommand = extern struct {
|
|
indexCount: u32,
|
|
instanceCount: u32,
|
|
firstIndex: u32,
|
|
vertexOffset: i32,
|
|
firstInstance: u32,
|
|
};
|
|
|
|
pub const DrawIndirectCommand = extern struct {
|
|
vertexCount: u32,
|
|
instanceCount: u32,
|
|
firstVertex: u32,
|
|
firstInstance: u32,
|
|
};
|
|
|
|
pub const BaseOutStructure = extern struct {
|
|
sType: StructureType,
|
|
pNext: *@This(),
|
|
};
|
|
|
|
pub const BaseInStructure = extern struct {
|
|
sType: StructureType,
|
|
pNext: *const @This(),
|
|
};
|
|
|
|
pub extern fn vkCreateInstance(
|
|
pCreateInfo: *const InstanceCreateInfo,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pInstance: *Instance,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroyInstance(
|
|
instance: Instance,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkEnumeratePhysicalDevices(
|
|
instance: Instance,
|
|
pPhysicalDeviceCount: *u32,
|
|
pPhysicalDevices: ?[*]PhysicalDevice,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetPhysicalDeviceFeatures(
|
|
physicalDevice: PhysicalDevice,
|
|
pFeatures: *PhysicalDeviceFeatures,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetPhysicalDeviceFormatProperties(
|
|
physicalDevice: PhysicalDevice,
|
|
format: Format,
|
|
pFormatProperties: *FormatProperties,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetPhysicalDeviceImageFormatProperties(
|
|
physicalDevice: PhysicalDevice,
|
|
format: Format,
|
|
inType: ImageType,
|
|
tiling: ImageTiling,
|
|
usage: ImageUsageFlags.IntType,
|
|
flags: ImageCreateFlags.IntType,
|
|
pImageFormatProperties: *ImageFormatProperties,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetPhysicalDeviceProperties(
|
|
physicalDevice: PhysicalDevice,
|
|
pProperties: *PhysicalDeviceProperties,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetPhysicalDeviceQueueFamilyProperties(
|
|
physicalDevice: PhysicalDevice,
|
|
pQueueFamilyPropertyCount: *u32,
|
|
pQueueFamilyProperties: ?[*]QueueFamilyProperties,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetPhysicalDeviceMemoryProperties(
|
|
physicalDevice: PhysicalDevice,
|
|
pMemoryProperties: *PhysicalDeviceMemoryProperties,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetInstanceProcAddr(
|
|
instance: Instance,
|
|
pName: CString,
|
|
) callconv(CallConv) ?PFN_VoidFunction;
|
|
|
|
pub extern fn vkGetDeviceProcAddr(
|
|
device: Device,
|
|
pName: CString,
|
|
) callconv(CallConv) ?PFN_VoidFunction;
|
|
|
|
pub extern fn vkCreateDevice(
|
|
physicalDevice: PhysicalDevice,
|
|
pCreateInfo: *const DeviceCreateInfo,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pDevice: *Device,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroyDevice(
|
|
device: Device,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkEnumerateInstanceExtensionProperties(
|
|
pLayerName: ?CString,
|
|
pPropertyCount: *u32,
|
|
pProperties: ?[*]ExtensionProperties,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkEnumerateDeviceExtensionProperties(
|
|
physicalDevice: PhysicalDevice,
|
|
pLayerName: ?CString,
|
|
pPropertyCount: *u32,
|
|
pProperties: ?[*]ExtensionProperties,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkEnumerateInstanceLayerProperties(
|
|
pPropertyCount: *u32,
|
|
pProperties: ?[*]LayerProperties,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkEnumerateDeviceLayerProperties(
|
|
physicalDevice: PhysicalDevice,
|
|
pPropertyCount: *u32,
|
|
pProperties: ?[*]LayerProperties,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetDeviceQueue(
|
|
device: Device,
|
|
queueFamilyIndex: u32,
|
|
queueIndex: u32,
|
|
pQueue: *Queue,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkQueueSubmit(
|
|
queue: Queue,
|
|
submitCount: u32,
|
|
pSubmits: [*]const SubmitInfo,
|
|
fence: Fence,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkQueueWaitIdle(queue: Queue) callconv(CallConv) Result;
|
|
pub extern fn vkDeviceWaitIdle(device: Device) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkAllocateMemory(
|
|
device: Device,
|
|
pAllocateInfo: *const MemoryAllocateInfo,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pMemory: *DeviceMemory,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkFreeMemory(
|
|
device: Device,
|
|
memory: DeviceMemory,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkMapMemory(
|
|
device: Device,
|
|
memory: DeviceMemory,
|
|
offset: DeviceSize,
|
|
size: DeviceSize,
|
|
flags: MemoryMapFlags.IntType,
|
|
ppData: ?**anyopaque,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkUnmapMemory(
|
|
device: Device,
|
|
memory: DeviceMemory,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkFlushMappedMemoryRanges(
|
|
device: Device,
|
|
memoryRangeCount: u32,
|
|
pMemoryRanges: [*]const MappedMemoryRange,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkInvalidateMappedMemoryRanges(
|
|
device: Device,
|
|
memoryRangeCount: u32,
|
|
pMemoryRanges: [*]const MappedMemoryRange,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetDeviceMemoryCommitment(
|
|
device: Device,
|
|
memory: DeviceMemory,
|
|
pCommittedMemoryInBytes: *DeviceSize,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkBindBufferMemory(
|
|
device: Device,
|
|
buffer: Buffer,
|
|
memory: DeviceMemory,
|
|
memoryOffset: DeviceSize,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkBindImageMemory(
|
|
device: Device,
|
|
image: Image,
|
|
memory: DeviceMemory,
|
|
memoryOffset: DeviceSize,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetBufferMemoryRequirements(
|
|
device: Device,
|
|
buffer: Buffer,
|
|
pMemoryRequirements: *MemoryRequirements,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetImageMemoryRequirements(
|
|
device: Device,
|
|
image: Image,
|
|
pMemoryRequirements: *MemoryRequirements,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetImageSparseMemoryRequirements(
|
|
device: Device,
|
|
image: Image,
|
|
pSparseMemoryRequirementCount: *u32,
|
|
pSparseMemoryRequirements: ?[*]SparseImageMemoryRequirements,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetPhysicalDeviceSparseImageFormatProperties(
|
|
physicalDevice: PhysicalDevice,
|
|
format: Format,
|
|
inType: ImageType,
|
|
samples: SampleCountFlags.IntType,
|
|
usage: ImageUsageFlags.IntType,
|
|
tiling: ImageTiling,
|
|
pPropertyCount: *u32,
|
|
pProperties: ?[*]SparseImageFormatProperties,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkQueueBindSparse(
|
|
queue: Queue,
|
|
bindInfoCount: u32,
|
|
pBindInfo: [*]const BindSparseInfo,
|
|
fence: Fence,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkCreateFence(
|
|
device: Device,
|
|
pCreateInfo: *const FenceCreateInfo,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pFence: *Fence,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroyFence(
|
|
device: Device,
|
|
fence: Fence,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkResetFences(
|
|
device: Device,
|
|
fenceCount: u32,
|
|
pFences: [*]const Fence,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetFenceStatus(
|
|
device: Device,
|
|
fence: Fence,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkWaitForFences(
|
|
device: Device,
|
|
fenceCount: u32,
|
|
pFences: [*]const Fence,
|
|
waitAll: Bool32,
|
|
timeout: u64,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkCreateSemaphore(
|
|
device: Device,
|
|
pCreateInfo: *const SemaphoreCreateInfo,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pSemaphore: *Semaphore,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroySemaphore(
|
|
device: Device,
|
|
semaphore: Semaphore,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCreateEvent(
|
|
device: Device,
|
|
pCreateInfo: *const EventCreateInfo,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pEvent: *Event,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroyEvent(
|
|
device: Device,
|
|
event: Event,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetEventStatus(
|
|
device: Device,
|
|
event: Event,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkSetEvent(
|
|
device: Device,
|
|
event: Event,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkResetEvent(
|
|
device: Device,
|
|
event: Event,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkCreateQueryPool(
|
|
device: Device,
|
|
pCreateInfo: *const QueryPoolCreateInfo,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pQueryPool: *QueryPool,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroyQueryPool(
|
|
device: Device,
|
|
queryPool: QueryPool,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetQueryPoolResults(
|
|
device: Device,
|
|
queryPool: QueryPool,
|
|
firstQuery: u32,
|
|
queryCount: u32,
|
|
dataSize: usize,
|
|
pData: ?*anyopaque,
|
|
stride: DeviceSize,
|
|
flags: QueryResultFlags.IntType,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkCreateBuffer(
|
|
device: Device,
|
|
pCreateInfo: *const BufferCreateInfo,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pBuffer: *Buffer,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroyBuffer(
|
|
device: Device,
|
|
buffer: Buffer,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCreateBufferView(
|
|
device: Device,
|
|
pCreateInfo: *const BufferViewCreateInfo,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pView: *BufferView,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroyBufferView(
|
|
device: Device,
|
|
bufferView: BufferView,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCreateImage(
|
|
device: Device,
|
|
pCreateInfo: *const ImageCreateInfo,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pImage: *Image,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroyImage(
|
|
device: Device,
|
|
image: Image,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetImageSubresourceLayout(
|
|
device: Device,
|
|
image: Image,
|
|
pSubresource: *const ImageSubresource,
|
|
pLayout: *SubresourceLayout,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCreateImageView(
|
|
device: Device,
|
|
pCreateInfo: *const ImageViewCreateInfo,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pView: *ImageView,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroyImageView(
|
|
device: Device,
|
|
imageView: ImageView,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCreateShaderModule(
|
|
device: Device,
|
|
pCreateInfo: *const ShaderModuleCreateInfo,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pShaderModule: *ShaderModule,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroyShaderModule(
|
|
device: Device,
|
|
shaderModule: ShaderModule,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCreatePipelineCache(
|
|
device: Device,
|
|
pCreateInfo: *const PipelineCacheCreateInfo,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pPipelineCache: *PipelineCache,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroyPipelineCache(
|
|
device: Device,
|
|
pipelineCache: PipelineCache,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetPipelineCacheData(
|
|
device: Device,
|
|
pipelineCache: PipelineCache,
|
|
pDataSize: *usize,
|
|
pData: ?*anyopaque,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkMergePipelineCaches(
|
|
device: Device,
|
|
dstCache: PipelineCache,
|
|
srcCacheCount: u32,
|
|
pSrcCaches: [*]const PipelineCache,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkCreateGraphicsPipelines(
|
|
device: Device,
|
|
pipelineCache: PipelineCache,
|
|
createInfoCount: u32,
|
|
pCreateInfos: [*]const GraphicsPipelineCreateInfo,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pPipelines: [*]Pipeline,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkCreateComputePipelines(
|
|
device: Device,
|
|
pipelineCache: PipelineCache,
|
|
createInfoCount: u32,
|
|
pCreateInfos: [*]const ComputePipelineCreateInfo,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pPipelines: [*]Pipeline,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroyPipeline(
|
|
device: Device,
|
|
pipeline: Pipeline,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCreatePipelineLayout(
|
|
device: Device,
|
|
pCreateInfo: *const PipelineLayoutCreateInfo,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pPipelineLayout: *PipelineLayout,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroyPipelineLayout(
|
|
device: Device,
|
|
pipelineLayout: PipelineLayout,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCreateSampler(
|
|
device: Device,
|
|
pCreateInfo: *const SamplerCreateInfo,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pSampler: *Sampler,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroySampler(
|
|
device: Device,
|
|
sampler: Sampler,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCreateDescriptorSetLayout(
|
|
device: Device,
|
|
pCreateInfo: *const DescriptorSetLayoutCreateInfo,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pSetLayout: *DescriptorSetLayout,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroyDescriptorSetLayout(
|
|
device: Device,
|
|
descriptorSetLayout: DescriptorSetLayout,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCreateDescriptorPool(
|
|
device: Device,
|
|
pCreateInfo: *const DescriptorPoolCreateInfo,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pDescriptorPool: *DescriptorPool,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroyDescriptorPool(
|
|
device: Device,
|
|
descriptorPool: DescriptorPool,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkResetDescriptorPool(
|
|
device: Device,
|
|
descriptorPool: DescriptorPool,
|
|
flags: DescriptorPoolResetFlags.IntType,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkAllocateDescriptorSets(
|
|
device: Device,
|
|
pAllocateInfo: *const DescriptorSetAllocateInfo,
|
|
pDescriptorSets: [*]DescriptorSet,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkFreeDescriptorSets(
|
|
device: Device,
|
|
descriptorPool: DescriptorPool,
|
|
descriptorSetCount: u32,
|
|
pDescriptorSets: [*]const DescriptorSet,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkUpdateDescriptorSets(
|
|
device: Device,
|
|
descriptorWriteCount: u32,
|
|
pDescriptorWrites: [*]const WriteDescriptorSet,
|
|
descriptorCopyCount: u32,
|
|
pDescriptorCopies: [*]const CopyDescriptorSet,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCreateFramebuffer(
|
|
device: Device,
|
|
pCreateInfo: *const FramebufferCreateInfo,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pFramebuffer: *Framebuffer,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroyFramebuffer(
|
|
device: Device,
|
|
framebuffer: Framebuffer,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCreateRenderPass(
|
|
device: Device,
|
|
pCreateInfo: *const RenderPassCreateInfo,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pRenderPass: *RenderPass,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroyRenderPass(
|
|
device: Device,
|
|
renderPass: RenderPass,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetRenderAreaGranularity(
|
|
device: Device,
|
|
renderPass: RenderPass,
|
|
pGranularity: *Extent2D,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCreateCommandPool(
|
|
device: Device,
|
|
pCreateInfo: *const CommandPoolCreateInfo,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pCommandPool: *CommandPool,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroyCommandPool(
|
|
device: Device,
|
|
commandPool: CommandPool,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkResetCommandPool(
|
|
device: Device,
|
|
commandPool: CommandPool,
|
|
flags: CommandPoolResetFlags.IntType,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkAllocateCommandBuffers(
|
|
device: Device,
|
|
pAllocateInfo: *const CommandBufferAllocateInfo,
|
|
pCommandBuffers: [*]CommandBuffer,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkFreeCommandBuffers(
|
|
device: Device,
|
|
commandPool: CommandPool,
|
|
commandBufferCount: u32,
|
|
pCommandBuffers: [*]const CommandBuffer,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkBeginCommandBuffer(
|
|
commandBuffer: CommandBuffer,
|
|
pBeginInfo: *const CommandBufferBeginInfo,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkEndCommandBuffer(commandBuffer: CommandBuffer) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkResetCommandBuffer(
|
|
commandBuffer: CommandBuffer,
|
|
flags: CommandBufferResetFlags.IntType,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkCmdBindPipeline(
|
|
commandBuffer: CommandBuffer,
|
|
pipelineBindPoint: PipelineBindPoint,
|
|
pipeline: Pipeline,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdSetViewport(
|
|
commandBuffer: CommandBuffer,
|
|
firstViewport: u32,
|
|
viewportCount: u32,
|
|
pViewports: [*]const Viewport,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdSetScissor(
|
|
commandBuffer: CommandBuffer,
|
|
firstScissor: u32,
|
|
scissorCount: u32,
|
|
pScissors: [*]const Rect2D,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdSetLineWidth(
|
|
commandBuffer: CommandBuffer,
|
|
lineWidth: f32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdSetDepthBias(
|
|
commandBuffer: CommandBuffer,
|
|
depthBiasConstantFactor: f32,
|
|
depthBiasClamp: f32,
|
|
depthBiasSlopeFactor: f32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdSetBlendConstants(
|
|
commandBuffer: CommandBuffer,
|
|
blendConstants: *const[4]f32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdSetDepthBounds(
|
|
commandBuffer: CommandBuffer,
|
|
minDepthBounds: f32,
|
|
maxDepthBounds: f32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdSetStencilCompareMask(
|
|
commandBuffer: CommandBuffer,
|
|
faceMask: StencilFaceFlags.IntType,
|
|
compareMask: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdSetStencilWriteMask(
|
|
commandBuffer: CommandBuffer,
|
|
faceMask: StencilFaceFlags.IntType,
|
|
writeMask: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdSetStencilReference(
|
|
commandBuffer: CommandBuffer,
|
|
faceMask: StencilFaceFlags.IntType,
|
|
reference: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdBindDescriptorSets(
|
|
commandBuffer: CommandBuffer,
|
|
pipelineBindPoint: PipelineBindPoint,
|
|
layout: PipelineLayout,
|
|
firstSet: u32,
|
|
descriptorSetCount: u32,
|
|
pDescriptorSets: [*]const DescriptorSet,
|
|
dynamicOffsetCount: u32,
|
|
pDynamicOffsets: [*]const u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdBindIndexBuffer(
|
|
commandBuffer: CommandBuffer,
|
|
buffer: Buffer,
|
|
offset: DeviceSize,
|
|
indexType: IndexType,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdBindVertexBuffers(
|
|
commandBuffer: CommandBuffer,
|
|
firstBinding: u32,
|
|
bindingCount: u32,
|
|
pBuffers: [*]const Buffer,
|
|
pOffsets: [*]const DeviceSize,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdDraw(
|
|
commandBuffer: CommandBuffer,
|
|
vertexCount: u32,
|
|
instanceCount: u32,
|
|
firstVertex: u32,
|
|
firstInstance: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdDrawIndexed(
|
|
commandBuffer: CommandBuffer,
|
|
indexCount: u32,
|
|
instanceCount: u32,
|
|
firstIndex: u32,
|
|
vertexOffset: i32,
|
|
firstInstance: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdDrawIndirect(
|
|
commandBuffer: CommandBuffer,
|
|
buffer: Buffer,
|
|
offset: DeviceSize,
|
|
drawCount: u32,
|
|
stride: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdDrawIndexedIndirect(
|
|
commandBuffer: CommandBuffer,
|
|
buffer: Buffer,
|
|
offset: DeviceSize,
|
|
drawCount: u32,
|
|
stride: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdDispatch(
|
|
commandBuffer: CommandBuffer,
|
|
groupCountX: u32,
|
|
groupCountY: u32,
|
|
groupCountZ: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdDispatchIndirect(
|
|
commandBuffer: CommandBuffer,
|
|
buffer: Buffer,
|
|
offset: DeviceSize,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdCopyBuffer(
|
|
commandBuffer: CommandBuffer,
|
|
srcBuffer: Buffer,
|
|
dstBuffer: Buffer,
|
|
regionCount: u32,
|
|
pRegions: [*]const BufferCopy,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdCopyImage(
|
|
commandBuffer: CommandBuffer,
|
|
srcImage: Image,
|
|
srcImageLayout: ImageLayout,
|
|
dstImage: Image,
|
|
dstImageLayout: ImageLayout,
|
|
regionCount: u32,
|
|
pRegions: [*]const ImageCopy,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdBlitImage(
|
|
commandBuffer: CommandBuffer,
|
|
srcImage: Image,
|
|
srcImageLayout: ImageLayout,
|
|
dstImage: Image,
|
|
dstImageLayout: ImageLayout,
|
|
regionCount: u32,
|
|
pRegions: [*]const ImageBlit,
|
|
filter: Filter,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdCopyBufferToImage(
|
|
commandBuffer: CommandBuffer,
|
|
srcBuffer: Buffer,
|
|
dstImage: Image,
|
|
dstImageLayout: ImageLayout,
|
|
regionCount: u32,
|
|
pRegions: [*]const BufferImageCopy,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdCopyImageToBuffer(
|
|
commandBuffer: CommandBuffer,
|
|
srcImage: Image,
|
|
srcImageLayout: ImageLayout,
|
|
dstBuffer: Buffer,
|
|
regionCount: u32,
|
|
pRegions: [*]const BufferImageCopy,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdUpdateBuffer(
|
|
commandBuffer: CommandBuffer,
|
|
dstBuffer: Buffer,
|
|
dstOffset: DeviceSize,
|
|
dataSize: DeviceSize,
|
|
pData: ?*const anyopaque,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdFillBuffer(
|
|
commandBuffer: CommandBuffer,
|
|
dstBuffer: Buffer,
|
|
dstOffset: DeviceSize,
|
|
size: DeviceSize,
|
|
data: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdClearColorImage(
|
|
commandBuffer: CommandBuffer,
|
|
image: Image,
|
|
imageLayout: ImageLayout,
|
|
pColor: *const ClearColorValue,
|
|
rangeCount: u32,
|
|
pRanges: [*]const ImageSubresourceRange,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdClearDepthStencilImage(
|
|
commandBuffer: CommandBuffer,
|
|
image: Image,
|
|
imageLayout: ImageLayout,
|
|
pDepthStencil: *const ClearDepthStencilValue,
|
|
rangeCount: u32,
|
|
pRanges: [*]const ImageSubresourceRange,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdClearAttachments(
|
|
commandBuffer: CommandBuffer,
|
|
attachmentCount: u32,
|
|
pAttachments: [*]const ClearAttachment,
|
|
rectCount: u32,
|
|
pRects: [*]const ClearRect,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdResolveImage(
|
|
commandBuffer: CommandBuffer,
|
|
srcImage: Image,
|
|
srcImageLayout: ImageLayout,
|
|
dstImage: Image,
|
|
dstImageLayout: ImageLayout,
|
|
regionCount: u32,
|
|
pRegions: [*]const ImageResolve,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdSetEvent(
|
|
commandBuffer: CommandBuffer,
|
|
event: Event,
|
|
stageMask: PipelineStageFlags.IntType,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdResetEvent(
|
|
commandBuffer: CommandBuffer,
|
|
event: Event,
|
|
stageMask: PipelineStageFlags.IntType,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdWaitEvents(
|
|
commandBuffer: CommandBuffer,
|
|
eventCount: u32,
|
|
pEvents: [*]const Event,
|
|
srcStageMask: PipelineStageFlags.IntType,
|
|
dstStageMask: PipelineStageFlags.IntType,
|
|
memoryBarrierCount: u32,
|
|
pMemoryBarriers: [*]const MemoryBarrier,
|
|
bufferMemoryBarrierCount: u32,
|
|
pBufferMemoryBarriers: [*]const BufferMemoryBarrier,
|
|
imageMemoryBarrierCount: u32,
|
|
pImageMemoryBarriers: [*]const ImageMemoryBarrier,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdPipelineBarrier(
|
|
commandBuffer: CommandBuffer,
|
|
srcStageMask: PipelineStageFlags.IntType,
|
|
dstStageMask: PipelineStageFlags.IntType,
|
|
dependencyFlags: DependencyFlags.IntType,
|
|
memoryBarrierCount: u32,
|
|
pMemoryBarriers: [*]const MemoryBarrier,
|
|
bufferMemoryBarrierCount: u32,
|
|
pBufferMemoryBarriers: [*]const BufferMemoryBarrier,
|
|
imageMemoryBarrierCount: u32,
|
|
pImageMemoryBarriers: [*]const ImageMemoryBarrier,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdBeginQuery(
|
|
commandBuffer: CommandBuffer,
|
|
queryPool: QueryPool,
|
|
query: u32,
|
|
flags: QueryControlFlags.IntType,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdEndQuery(
|
|
commandBuffer: CommandBuffer,
|
|
queryPool: QueryPool,
|
|
query: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdResetQueryPool(
|
|
commandBuffer: CommandBuffer,
|
|
queryPool: QueryPool,
|
|
firstQuery: u32,
|
|
queryCount: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdWriteTimestamp(
|
|
commandBuffer: CommandBuffer,
|
|
pipelineStage: PipelineStageFlags.IntType,
|
|
queryPool: QueryPool,
|
|
query: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdCopyQueryPoolResults(
|
|
commandBuffer: CommandBuffer,
|
|
queryPool: QueryPool,
|
|
firstQuery: u32,
|
|
queryCount: u32,
|
|
dstBuffer: Buffer,
|
|
dstOffset: DeviceSize,
|
|
stride: DeviceSize,
|
|
flags: QueryResultFlags.IntType,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdPushConstants(
|
|
commandBuffer: CommandBuffer,
|
|
layout: PipelineLayout,
|
|
stageFlags: ShaderStageFlags.IntType,
|
|
offset: u32,
|
|
size: u32,
|
|
pValues: ?*const anyopaque,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdBeginRenderPass(
|
|
commandBuffer: CommandBuffer,
|
|
pRenderPassBegin: *const RenderPassBeginInfo,
|
|
contents: SubpassContents,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdNextSubpass(
|
|
commandBuffer: CommandBuffer,
|
|
contents: SubpassContents,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdEndRenderPass(commandBuffer: CommandBuffer) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdExecuteCommands(
|
|
commandBuffer: CommandBuffer,
|
|
commandBufferCount: u32,
|
|
pCommandBuffers: [*]const CommandBuffer,
|
|
) callconv(CallConv) void;
|
|
|
|
pub inline fn CreateInstance(createInfo: InstanceCreateInfo, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_INITIALIZATION_FAILED,VK_LAYER_NOT_PRESENT,VK_EXTENSION_NOT_PRESENT,VK_INCOMPATIBLE_DRIVER,VK_UNDOCUMENTED_ERROR}!Instance {
|
|
var out_instance: Instance = undefined;
|
|
const result = vkCreateInstance(&createInfo, pAllocator, &out_instance);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_INITIALIZATION_FAILED => error.VK_INITIALIZATION_FAILED,
|
|
.ERROR_LAYER_NOT_PRESENT => error.VK_LAYER_NOT_PRESENT,
|
|
.ERROR_EXTENSION_NOT_PRESENT => error.VK_EXTENSION_NOT_PRESENT,
|
|
.ERROR_INCOMPATIBLE_DRIVER => error.VK_INCOMPATIBLE_DRIVER,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_instance;
|
|
}
|
|
|
|
pub const DestroyInstance = vkDestroyInstance;
|
|
|
|
pub const EnumeratePhysicalDevicesResult = struct {
|
|
result: Result,
|
|
physicalDevices: []PhysicalDevice,
|
|
};
|
|
pub inline fn EnumeratePhysicalDevices(instance: Instance, physicalDevices: []PhysicalDevice) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_INITIALIZATION_FAILED,VK_UNDOCUMENTED_ERROR}!EnumeratePhysicalDevicesResult {
|
|
var returnValues: EnumeratePhysicalDevicesResult = undefined;
|
|
var physicalDeviceCount: u32 = @intCast(u32, physicalDevices.len);
|
|
const result = vkEnumeratePhysicalDevices(instance, &physicalDeviceCount, physicalDevices.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_INITIALIZATION_FAILED => error.VK_INITIALIZATION_FAILED,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.physicalDevices = physicalDevices[0..physicalDeviceCount];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn EnumeratePhysicalDevicesCount(instance: Instance) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_INITIALIZATION_FAILED,VK_UNDOCUMENTED_ERROR}!u32 {
|
|
var out_physicalDeviceCount: u32 = undefined;
|
|
const result = vkEnumeratePhysicalDevices(instance, &out_physicalDeviceCount, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_INITIALIZATION_FAILED => error.VK_INITIALIZATION_FAILED,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_physicalDeviceCount;
|
|
}
|
|
|
|
pub inline fn GetPhysicalDeviceFeatures(physicalDevice: PhysicalDevice) PhysicalDeviceFeatures {
|
|
var out_features: PhysicalDeviceFeatures = undefined;
|
|
vkGetPhysicalDeviceFeatures(physicalDevice, &out_features);
|
|
return out_features;
|
|
}
|
|
|
|
pub inline fn GetPhysicalDeviceFormatProperties(physicalDevice: PhysicalDevice, format: Format) FormatProperties {
|
|
var out_formatProperties: FormatProperties = undefined;
|
|
vkGetPhysicalDeviceFormatProperties(physicalDevice, format, &out_formatProperties);
|
|
return out_formatProperties;
|
|
}
|
|
|
|
pub inline fn GetPhysicalDeviceImageFormatProperties(physicalDevice: PhysicalDevice, format: Format, inType: ImageType, tiling: ImageTiling, usage: ImageUsageFlags, flags: ImageCreateFlags) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_FORMAT_NOT_SUPPORTED,VK_UNDOCUMENTED_ERROR}!ImageFormatProperties {
|
|
var out_imageFormatProperties: ImageFormatProperties = undefined;
|
|
const result = vkGetPhysicalDeviceImageFormatProperties(physicalDevice, format, inType, tiling, usage.toInt(), flags.toInt(), &out_imageFormatProperties);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_FORMAT_NOT_SUPPORTED => error.VK_FORMAT_NOT_SUPPORTED,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_imageFormatProperties;
|
|
}
|
|
|
|
pub inline fn GetPhysicalDeviceProperties(physicalDevice: PhysicalDevice) PhysicalDeviceProperties {
|
|
var out_properties: PhysicalDeviceProperties = undefined;
|
|
vkGetPhysicalDeviceProperties(physicalDevice, &out_properties);
|
|
return out_properties;
|
|
}
|
|
|
|
pub inline fn GetPhysicalDeviceQueueFamilyProperties(physicalDevice: PhysicalDevice, queueFamilyProperties: []QueueFamilyProperties) []QueueFamilyProperties {
|
|
var out_queueFamilyProperties: []QueueFamilyProperties = undefined;
|
|
var queueFamilyPropertyCount: u32 = @intCast(u32, queueFamilyProperties.len);
|
|
vkGetPhysicalDeviceQueueFamilyProperties(physicalDevice, &queueFamilyPropertyCount, queueFamilyProperties.ptr);
|
|
out_queueFamilyProperties = queueFamilyProperties[0..queueFamilyPropertyCount];
|
|
return out_queueFamilyProperties;
|
|
}
|
|
pub inline fn GetPhysicalDeviceQueueFamilyPropertiesCount(physicalDevice: PhysicalDevice) u32 {
|
|
var out_queueFamilyPropertyCount: u32 = undefined;
|
|
vkGetPhysicalDeviceQueueFamilyProperties(physicalDevice, &out_queueFamilyPropertyCount, null);
|
|
return out_queueFamilyPropertyCount;
|
|
}
|
|
|
|
pub inline fn GetPhysicalDeviceMemoryProperties(physicalDevice: PhysicalDevice) PhysicalDeviceMemoryProperties {
|
|
var out_memoryProperties: PhysicalDeviceMemoryProperties = undefined;
|
|
vkGetPhysicalDeviceMemoryProperties(physicalDevice, &out_memoryProperties);
|
|
return out_memoryProperties;
|
|
}
|
|
|
|
pub const GetInstanceProcAddr = vkGetInstanceProcAddr;
|
|
pub const GetDeviceProcAddr = vkGetDeviceProcAddr;
|
|
|
|
pub inline fn CreateDevice(physicalDevice: PhysicalDevice, createInfo: DeviceCreateInfo, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_INITIALIZATION_FAILED,VK_EXTENSION_NOT_PRESENT,VK_FEATURE_NOT_PRESENT,VK_TOO_MANY_OBJECTS,VK_DEVICE_LOST,VK_UNDOCUMENTED_ERROR}!Device {
|
|
var out_device: Device = undefined;
|
|
const result = vkCreateDevice(physicalDevice, &createInfo, pAllocator, &out_device);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_INITIALIZATION_FAILED => error.VK_INITIALIZATION_FAILED,
|
|
.ERROR_EXTENSION_NOT_PRESENT => error.VK_EXTENSION_NOT_PRESENT,
|
|
.ERROR_FEATURE_NOT_PRESENT => error.VK_FEATURE_NOT_PRESENT,
|
|
.ERROR_TOO_MANY_OBJECTS => error.VK_TOO_MANY_OBJECTS,
|
|
.ERROR_DEVICE_LOST => error.VK_DEVICE_LOST,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_device;
|
|
}
|
|
|
|
pub const DestroyDevice = vkDestroyDevice;
|
|
|
|
pub const EnumerateInstanceExtensionPropertiesResult = struct {
|
|
result: Result,
|
|
properties: []ExtensionProperties,
|
|
};
|
|
pub inline fn EnumerateInstanceExtensionProperties(pLayerName: ?CString, properties: []ExtensionProperties) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_LAYER_NOT_PRESENT,VK_UNDOCUMENTED_ERROR}!EnumerateInstanceExtensionPropertiesResult {
|
|
var returnValues: EnumerateInstanceExtensionPropertiesResult = undefined;
|
|
var propertyCount: u32 = @intCast(u32, properties.len);
|
|
const result = vkEnumerateInstanceExtensionProperties(pLayerName, &propertyCount, properties.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_LAYER_NOT_PRESENT => error.VK_LAYER_NOT_PRESENT,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.properties = properties[0..propertyCount];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn EnumerateInstanceExtensionPropertiesCount(pLayerName: ?CString) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_LAYER_NOT_PRESENT,VK_UNDOCUMENTED_ERROR}!u32 {
|
|
var out_propertyCount: u32 = undefined;
|
|
const result = vkEnumerateInstanceExtensionProperties(pLayerName, &out_propertyCount, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_LAYER_NOT_PRESENT => error.VK_LAYER_NOT_PRESENT,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_propertyCount;
|
|
}
|
|
|
|
pub const EnumerateDeviceExtensionPropertiesResult = struct {
|
|
result: Result,
|
|
properties: []ExtensionProperties,
|
|
};
|
|
pub inline fn EnumerateDeviceExtensionProperties(physicalDevice: PhysicalDevice, pLayerName: ?CString, properties: []ExtensionProperties) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_LAYER_NOT_PRESENT,VK_UNDOCUMENTED_ERROR}!EnumerateDeviceExtensionPropertiesResult {
|
|
var returnValues: EnumerateDeviceExtensionPropertiesResult = undefined;
|
|
var propertyCount: u32 = @intCast(u32, properties.len);
|
|
const result = vkEnumerateDeviceExtensionProperties(physicalDevice, pLayerName, &propertyCount, properties.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_LAYER_NOT_PRESENT => error.VK_LAYER_NOT_PRESENT,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.properties = properties[0..propertyCount];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn EnumerateDeviceExtensionPropertiesCount(physicalDevice: PhysicalDevice, pLayerName: ?CString) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_LAYER_NOT_PRESENT,VK_UNDOCUMENTED_ERROR}!u32 {
|
|
var out_propertyCount: u32 = undefined;
|
|
const result = vkEnumerateDeviceExtensionProperties(physicalDevice, pLayerName, &out_propertyCount, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_LAYER_NOT_PRESENT => error.VK_LAYER_NOT_PRESENT,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_propertyCount;
|
|
}
|
|
|
|
pub const EnumerateInstanceLayerPropertiesResult = struct {
|
|
result: Result,
|
|
properties: []LayerProperties,
|
|
};
|
|
pub inline fn EnumerateInstanceLayerProperties(properties: []LayerProperties) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!EnumerateInstanceLayerPropertiesResult {
|
|
var returnValues: EnumerateInstanceLayerPropertiesResult = undefined;
|
|
var propertyCount: u32 = @intCast(u32, properties.len);
|
|
const result = vkEnumerateInstanceLayerProperties(&propertyCount, properties.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.properties = properties[0..propertyCount];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn EnumerateInstanceLayerPropertiesCount() error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!u32 {
|
|
var out_propertyCount: u32 = undefined;
|
|
const result = vkEnumerateInstanceLayerProperties(&out_propertyCount, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_propertyCount;
|
|
}
|
|
|
|
pub const EnumerateDeviceLayerPropertiesResult = struct {
|
|
result: Result,
|
|
properties: []LayerProperties,
|
|
};
|
|
pub inline fn EnumerateDeviceLayerProperties(physicalDevice: PhysicalDevice, properties: []LayerProperties) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!EnumerateDeviceLayerPropertiesResult {
|
|
var returnValues: EnumerateDeviceLayerPropertiesResult = undefined;
|
|
var propertyCount: u32 = @intCast(u32, properties.len);
|
|
const result = vkEnumerateDeviceLayerProperties(physicalDevice, &propertyCount, properties.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.properties = properties[0..propertyCount];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn EnumerateDeviceLayerPropertiesCount(physicalDevice: PhysicalDevice) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!u32 {
|
|
var out_propertyCount: u32 = undefined;
|
|
const result = vkEnumerateDeviceLayerProperties(physicalDevice, &out_propertyCount, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_propertyCount;
|
|
}
|
|
|
|
pub inline fn GetDeviceQueue(device: Device, queueFamilyIndex: u32, queueIndex: u32) Queue {
|
|
var out_queue: Queue = undefined;
|
|
vkGetDeviceQueue(device, queueFamilyIndex, queueIndex, &out_queue);
|
|
return out_queue;
|
|
}
|
|
|
|
pub inline fn QueueSubmit(queue: Queue, submits: []const SubmitInfo, fence: Fence) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_DEVICE_LOST,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkQueueSubmit(queue, @intCast(u32, submits.len), submits.ptr, fence);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_DEVICE_LOST => error.VK_DEVICE_LOST,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn QueueWaitIdle(queue: Queue) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_DEVICE_LOST,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkQueueWaitIdle(queue);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_DEVICE_LOST => error.VK_DEVICE_LOST,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn DeviceWaitIdle(device: Device) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_DEVICE_LOST,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkDeviceWaitIdle(device);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_DEVICE_LOST => error.VK_DEVICE_LOST,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn AllocateMemory(device: Device, allocateInfo: MemoryAllocateInfo, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_TOO_MANY_OBJECTS,VK_INVALID_EXTERNAL_HANDLE,VK_INVALID_OPAQUE_CAPTURE_ADDRESS,VK_UNDOCUMENTED_ERROR}!DeviceMemory {
|
|
var out_memory: DeviceMemory = undefined;
|
|
const result = vkAllocateMemory(device, &allocateInfo, pAllocator, &out_memory);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_TOO_MANY_OBJECTS => error.VK_TOO_MANY_OBJECTS,
|
|
.ERROR_INVALID_EXTERNAL_HANDLE => error.VK_INVALID_EXTERNAL_HANDLE,
|
|
.ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS => error.VK_INVALID_OPAQUE_CAPTURE_ADDRESS,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_memory;
|
|
}
|
|
|
|
pub const FreeMemory = vkFreeMemory;
|
|
|
|
pub inline fn MapMemory(device: Device, memory: DeviceMemory, offset: DeviceSize, size: DeviceSize, flags: MemoryMapFlags, ppData: ?**anyopaque) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_MEMORY_MAP_FAILED,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkMapMemory(device, memory, offset, size, flags.toInt(), ppData);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_MEMORY_MAP_FAILED => error.VK_MEMORY_MAP_FAILED,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub const UnmapMemory = vkUnmapMemory;
|
|
|
|
pub inline fn FlushMappedMemoryRanges(device: Device, memoryRanges: []const MappedMemoryRange) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkFlushMappedMemoryRanges(device, @intCast(u32, memoryRanges.len), memoryRanges.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn InvalidateMappedMemoryRanges(device: Device, memoryRanges: []const MappedMemoryRange) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkInvalidateMappedMemoryRanges(device, @intCast(u32, memoryRanges.len), memoryRanges.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn GetDeviceMemoryCommitment(device: Device, memory: DeviceMemory) DeviceSize {
|
|
var out_committedMemoryInBytes: DeviceSize = undefined;
|
|
vkGetDeviceMemoryCommitment(device, memory, &out_committedMemoryInBytes);
|
|
return out_committedMemoryInBytes;
|
|
}
|
|
|
|
pub inline fn BindBufferMemory(device: Device, buffer: Buffer, memory: DeviceMemory, memoryOffset: DeviceSize) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_INVALID_OPAQUE_CAPTURE_ADDRESS,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkBindBufferMemory(device, buffer, memory, memoryOffset);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS => error.VK_INVALID_OPAQUE_CAPTURE_ADDRESS,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn BindImageMemory(device: Device, image: Image, memory: DeviceMemory, memoryOffset: DeviceSize) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkBindImageMemory(device, image, memory, memoryOffset);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn GetBufferMemoryRequirements(device: Device, buffer: Buffer) MemoryRequirements {
|
|
var out_memoryRequirements: MemoryRequirements = undefined;
|
|
vkGetBufferMemoryRequirements(device, buffer, &out_memoryRequirements);
|
|
return out_memoryRequirements;
|
|
}
|
|
|
|
pub inline fn GetImageMemoryRequirements(device: Device, image: Image) MemoryRequirements {
|
|
var out_memoryRequirements: MemoryRequirements = undefined;
|
|
vkGetImageMemoryRequirements(device, image, &out_memoryRequirements);
|
|
return out_memoryRequirements;
|
|
}
|
|
|
|
pub inline fn GetImageSparseMemoryRequirements(device: Device, image: Image, sparseMemoryRequirements: []SparseImageMemoryRequirements) []SparseImageMemoryRequirements {
|
|
var out_sparseMemoryRequirements: []SparseImageMemoryRequirements = undefined;
|
|
var sparseMemoryRequirementCount: u32 = @intCast(u32, sparseMemoryRequirements.len);
|
|
vkGetImageSparseMemoryRequirements(device, image, &sparseMemoryRequirementCount, sparseMemoryRequirements.ptr);
|
|
out_sparseMemoryRequirements = sparseMemoryRequirements[0..sparseMemoryRequirementCount];
|
|
return out_sparseMemoryRequirements;
|
|
}
|
|
pub inline fn GetImageSparseMemoryRequirementsCount(device: Device, image: Image) u32 {
|
|
var out_sparseMemoryRequirementCount: u32 = undefined;
|
|
vkGetImageSparseMemoryRequirements(device, image, &out_sparseMemoryRequirementCount, null);
|
|
return out_sparseMemoryRequirementCount;
|
|
}
|
|
|
|
pub inline fn GetPhysicalDeviceSparseImageFormatProperties(physicalDevice: PhysicalDevice, format: Format, inType: ImageType, samples: SampleCountFlags, usage: ImageUsageFlags, tiling: ImageTiling, properties: []SparseImageFormatProperties) []SparseImageFormatProperties {
|
|
var out_properties: []SparseImageFormatProperties = undefined;
|
|
var propertyCount: u32 = @intCast(u32, properties.len);
|
|
vkGetPhysicalDeviceSparseImageFormatProperties(physicalDevice, format, inType, samples.toInt(), usage.toInt(), tiling, &propertyCount, properties.ptr);
|
|
out_properties = properties[0..propertyCount];
|
|
return out_properties;
|
|
}
|
|
pub inline fn GetPhysicalDeviceSparseImageFormatPropertiesCount(physicalDevice: PhysicalDevice, format: Format, inType: ImageType, samples: SampleCountFlags, usage: ImageUsageFlags, tiling: ImageTiling) u32 {
|
|
var out_propertyCount: u32 = undefined;
|
|
vkGetPhysicalDeviceSparseImageFormatProperties(physicalDevice, format, inType, samples.toInt(), usage.toInt(), tiling, &out_propertyCount, null);
|
|
return out_propertyCount;
|
|
}
|
|
|
|
pub inline fn QueueBindSparse(queue: Queue, bindInfo: []const BindSparseInfo, fence: Fence) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_DEVICE_LOST,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkQueueBindSparse(queue, @intCast(u32, bindInfo.len), bindInfo.ptr, fence);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_DEVICE_LOST => error.VK_DEVICE_LOST,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn CreateFence(device: Device, createInfo: FenceCreateInfo, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!Fence {
|
|
var out_fence: Fence = undefined;
|
|
const result = vkCreateFence(device, &createInfo, pAllocator, &out_fence);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_fence;
|
|
}
|
|
|
|
pub const DestroyFence = vkDestroyFence;
|
|
|
|
pub inline fn ResetFences(device: Device, fences: []const Fence) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkResetFences(device, @intCast(u32, fences.len), fences.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn GetFenceStatus(device: Device, fence: Fence) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_DEVICE_LOST,VK_UNDOCUMENTED_ERROR}!Result {
|
|
const result = vkGetFenceStatus(device, fence);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_DEVICE_LOST => error.VK_DEVICE_LOST,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return result;
|
|
}
|
|
|
|
pub inline fn WaitForFences(device: Device, fences: []const Fence, waitAll: Bool32, timeout: u64) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_DEVICE_LOST,VK_UNDOCUMENTED_ERROR}!Result {
|
|
const result = vkWaitForFences(device, @intCast(u32, fences.len), fences.ptr, waitAll, timeout);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_DEVICE_LOST => error.VK_DEVICE_LOST,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return result;
|
|
}
|
|
|
|
pub inline fn CreateSemaphore(device: Device, createInfo: SemaphoreCreateInfo, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!Semaphore {
|
|
var out_semaphore: Semaphore = undefined;
|
|
const result = vkCreateSemaphore(device, &createInfo, pAllocator, &out_semaphore);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_semaphore;
|
|
}
|
|
|
|
pub const DestroySemaphore = vkDestroySemaphore;
|
|
|
|
pub inline fn CreateEvent(device: Device, createInfo: EventCreateInfo, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!Event {
|
|
var out_event: Event = undefined;
|
|
const result = vkCreateEvent(device, &createInfo, pAllocator, &out_event);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_event;
|
|
}
|
|
|
|
pub const DestroyEvent = vkDestroyEvent;
|
|
|
|
pub inline fn GetEventStatus(device: Device, event: Event) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_DEVICE_LOST,VK_UNDOCUMENTED_ERROR}!Result {
|
|
const result = vkGetEventStatus(device, event);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_DEVICE_LOST => error.VK_DEVICE_LOST,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return result;
|
|
}
|
|
|
|
pub inline fn SetEvent(device: Device, event: Event) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkSetEvent(device, event);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn ResetEvent(device: Device, event: Event) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkResetEvent(device, event);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn CreateQueryPool(device: Device, createInfo: QueryPoolCreateInfo, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!QueryPool {
|
|
var out_queryPool: QueryPool = undefined;
|
|
const result = vkCreateQueryPool(device, &createInfo, pAllocator, &out_queryPool);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_queryPool;
|
|
}
|
|
|
|
pub const DestroyQueryPool = vkDestroyQueryPool;
|
|
|
|
pub inline fn GetQueryPoolResults(device: Device, queryPool: QueryPool, firstQuery: u32, queryCount: u32, data: []u8, stride: DeviceSize, flags: QueryResultFlags) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_DEVICE_LOST,VK_UNDOCUMENTED_ERROR}!Result {
|
|
const result = vkGetQueryPoolResults(device, queryPool, firstQuery, queryCount, @intCast(usize, data.len), data.ptr, stride, flags.toInt());
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_DEVICE_LOST => error.VK_DEVICE_LOST,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return result;
|
|
}
|
|
|
|
pub inline fn CreateBuffer(device: Device, createInfo: BufferCreateInfo, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_INVALID_OPAQUE_CAPTURE_ADDRESS,VK_UNDOCUMENTED_ERROR}!Buffer {
|
|
var out_buffer: Buffer = undefined;
|
|
const result = vkCreateBuffer(device, &createInfo, pAllocator, &out_buffer);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS => error.VK_INVALID_OPAQUE_CAPTURE_ADDRESS,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_buffer;
|
|
}
|
|
|
|
pub const DestroyBuffer = vkDestroyBuffer;
|
|
|
|
pub inline fn CreateBufferView(device: Device, createInfo: BufferViewCreateInfo, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!BufferView {
|
|
var out_view: BufferView = undefined;
|
|
const result = vkCreateBufferView(device, &createInfo, pAllocator, &out_view);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_view;
|
|
}
|
|
|
|
pub const DestroyBufferView = vkDestroyBufferView;
|
|
|
|
pub inline fn CreateImage(device: Device, createInfo: ImageCreateInfo, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!Image {
|
|
var out_image: Image = undefined;
|
|
const result = vkCreateImage(device, &createInfo, pAllocator, &out_image);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_image;
|
|
}
|
|
|
|
pub const DestroyImage = vkDestroyImage;
|
|
|
|
pub inline fn GetImageSubresourceLayout(device: Device, image: Image, subresource: ImageSubresource) SubresourceLayout {
|
|
var out_layout: SubresourceLayout = undefined;
|
|
vkGetImageSubresourceLayout(device, image, &subresource, &out_layout);
|
|
return out_layout;
|
|
}
|
|
|
|
pub inline fn CreateImageView(device: Device, createInfo: ImageViewCreateInfo, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!ImageView {
|
|
var out_view: ImageView = undefined;
|
|
const result = vkCreateImageView(device, &createInfo, pAllocator, &out_view);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_view;
|
|
}
|
|
|
|
pub const DestroyImageView = vkDestroyImageView;
|
|
|
|
pub inline fn CreateShaderModule(device: Device, createInfo: ShaderModuleCreateInfo, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_INVALID_SHADER_NV,VK_UNDOCUMENTED_ERROR}!ShaderModule {
|
|
var out_shaderModule: ShaderModule = undefined;
|
|
const result = vkCreateShaderModule(device, &createInfo, pAllocator, &out_shaderModule);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_INVALID_SHADER_NV => error.VK_INVALID_SHADER_NV,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_shaderModule;
|
|
}
|
|
|
|
pub const DestroyShaderModule = vkDestroyShaderModule;
|
|
|
|
pub inline fn CreatePipelineCache(device: Device, createInfo: PipelineCacheCreateInfo, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!PipelineCache {
|
|
var out_pipelineCache: PipelineCache = undefined;
|
|
const result = vkCreatePipelineCache(device, &createInfo, pAllocator, &out_pipelineCache);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_pipelineCache;
|
|
}
|
|
|
|
pub const DestroyPipelineCache = vkDestroyPipelineCache;
|
|
|
|
pub const GetPipelineCacheDataResult = struct {
|
|
result: Result,
|
|
data: []u8,
|
|
};
|
|
pub inline fn GetPipelineCacheData(device: Device, pipelineCache: PipelineCache, data: []u8) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!GetPipelineCacheDataResult {
|
|
var returnValues: GetPipelineCacheDataResult = undefined;
|
|
var dataSize: usize = @intCast(usize, data.len);
|
|
const result = vkGetPipelineCacheData(device, pipelineCache, &dataSize, data.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.data = data[0..dataSize];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn GetPipelineCacheDataCount(device: Device, pipelineCache: PipelineCache) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!usize {
|
|
var out_dataSize: usize = undefined;
|
|
const result = vkGetPipelineCacheData(device, pipelineCache, &out_dataSize, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_dataSize;
|
|
}
|
|
|
|
pub inline fn MergePipelineCaches(device: Device, dstCache: PipelineCache, srcCaches: []const PipelineCache) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkMergePipelineCaches(device, dstCache, @intCast(u32, srcCaches.len), srcCaches.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn CreateGraphicsPipelines(device: Device, pipelineCache: PipelineCache, createInfos: []const GraphicsPipelineCreateInfo, pAllocator: ?*const AllocationCallbacks, pipelines: []Pipeline) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_INVALID_SHADER_NV,VK_UNDOCUMENTED_ERROR}!void {
|
|
assert(pipelines.len >= createInfos.len);
|
|
const result = vkCreateGraphicsPipelines(device, pipelineCache, @intCast(u32, createInfos.len), createInfos.ptr, pAllocator, pipelines.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_INVALID_SHADER_NV => error.VK_INVALID_SHADER_NV,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn CreateComputePipelines(device: Device, pipelineCache: PipelineCache, createInfos: []const ComputePipelineCreateInfo, pAllocator: ?*const AllocationCallbacks, pipelines: []Pipeline) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_INVALID_SHADER_NV,VK_UNDOCUMENTED_ERROR}!void {
|
|
assert(pipelines.len >= createInfos.len);
|
|
const result = vkCreateComputePipelines(device, pipelineCache, @intCast(u32, createInfos.len), createInfos.ptr, pAllocator, pipelines.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_INVALID_SHADER_NV => error.VK_INVALID_SHADER_NV,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub const DestroyPipeline = vkDestroyPipeline;
|
|
|
|
pub inline fn CreatePipelineLayout(device: Device, createInfo: PipelineLayoutCreateInfo, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!PipelineLayout {
|
|
var out_pipelineLayout: PipelineLayout = undefined;
|
|
const result = vkCreatePipelineLayout(device, &createInfo, pAllocator, &out_pipelineLayout);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_pipelineLayout;
|
|
}
|
|
|
|
pub const DestroyPipelineLayout = vkDestroyPipelineLayout;
|
|
|
|
pub inline fn CreateSampler(device: Device, createInfo: SamplerCreateInfo, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_TOO_MANY_OBJECTS,VK_UNDOCUMENTED_ERROR}!Sampler {
|
|
var out_sampler: Sampler = undefined;
|
|
const result = vkCreateSampler(device, &createInfo, pAllocator, &out_sampler);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_TOO_MANY_OBJECTS => error.VK_TOO_MANY_OBJECTS,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_sampler;
|
|
}
|
|
|
|
pub const DestroySampler = vkDestroySampler;
|
|
|
|
pub inline fn CreateDescriptorSetLayout(device: Device, createInfo: DescriptorSetLayoutCreateInfo, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!DescriptorSetLayout {
|
|
var out_setLayout: DescriptorSetLayout = undefined;
|
|
const result = vkCreateDescriptorSetLayout(device, &createInfo, pAllocator, &out_setLayout);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_setLayout;
|
|
}
|
|
|
|
pub const DestroyDescriptorSetLayout = vkDestroyDescriptorSetLayout;
|
|
|
|
pub inline fn CreateDescriptorPool(device: Device, createInfo: DescriptorPoolCreateInfo, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_FRAGMENTATION,VK_UNDOCUMENTED_ERROR}!DescriptorPool {
|
|
var out_descriptorPool: DescriptorPool = undefined;
|
|
const result = vkCreateDescriptorPool(device, &createInfo, pAllocator, &out_descriptorPool);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_FRAGMENTATION => error.VK_FRAGMENTATION,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_descriptorPool;
|
|
}
|
|
|
|
pub const DestroyDescriptorPool = vkDestroyDescriptorPool;
|
|
|
|
pub inline fn ResetDescriptorPool(device: Device, descriptorPool: DescriptorPool, flags: DescriptorPoolResetFlags) error{VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkResetDescriptorPool(device, descriptorPool, flags.toInt());
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return error.VK_UNDOCUMENTED_ERROR;
|
|
}
|
|
}
|
|
|
|
pub inline fn AllocateDescriptorSets(device: Device, allocateInfo: DescriptorSetAllocateInfo, descriptorSets: []DescriptorSet) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_FRAGMENTED_POOL,VK_OUT_OF_POOL_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
assert(descriptorSets.len >= allocateInfo.descriptorSetCount);
|
|
const result = vkAllocateDescriptorSets(device, &allocateInfo, descriptorSets.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_FRAGMENTED_POOL => error.VK_FRAGMENTED_POOL,
|
|
.ERROR_OUT_OF_POOL_MEMORY => error.VK_OUT_OF_POOL_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn FreeDescriptorSets(device: Device, descriptorPool: DescriptorPool, descriptorSets: []const DescriptorSet) error{VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkFreeDescriptorSets(device, descriptorPool, @intCast(u32, descriptorSets.len), descriptorSets.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return error.VK_UNDOCUMENTED_ERROR;
|
|
}
|
|
}
|
|
|
|
pub inline fn UpdateDescriptorSets(device: Device, descriptorWrites: []const WriteDescriptorSet, descriptorCopies: []const CopyDescriptorSet) void {
|
|
vkUpdateDescriptorSets(device, @intCast(u32, descriptorWrites.len), descriptorWrites.ptr, @intCast(u32, descriptorCopies.len), descriptorCopies.ptr);
|
|
}
|
|
|
|
pub inline fn CreateFramebuffer(device: Device, createInfo: FramebufferCreateInfo, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!Framebuffer {
|
|
var out_framebuffer: Framebuffer = undefined;
|
|
const result = vkCreateFramebuffer(device, &createInfo, pAllocator, &out_framebuffer);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_framebuffer;
|
|
}
|
|
|
|
pub const DestroyFramebuffer = vkDestroyFramebuffer;
|
|
|
|
pub inline fn CreateRenderPass(device: Device, createInfo: RenderPassCreateInfo, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!RenderPass {
|
|
var out_renderPass: RenderPass = undefined;
|
|
const result = vkCreateRenderPass(device, &createInfo, pAllocator, &out_renderPass);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_renderPass;
|
|
}
|
|
|
|
pub const DestroyRenderPass = vkDestroyRenderPass;
|
|
|
|
pub inline fn GetRenderAreaGranularity(device: Device, renderPass: RenderPass) Extent2D {
|
|
var out_granularity: Extent2D = undefined;
|
|
vkGetRenderAreaGranularity(device, renderPass, &out_granularity);
|
|
return out_granularity;
|
|
}
|
|
|
|
pub inline fn CreateCommandPool(device: Device, createInfo: CommandPoolCreateInfo, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!CommandPool {
|
|
var out_commandPool: CommandPool = undefined;
|
|
const result = vkCreateCommandPool(device, &createInfo, pAllocator, &out_commandPool);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_commandPool;
|
|
}
|
|
|
|
pub const DestroyCommandPool = vkDestroyCommandPool;
|
|
|
|
pub inline fn ResetCommandPool(device: Device, commandPool: CommandPool, flags: CommandPoolResetFlags) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkResetCommandPool(device, commandPool, flags.toInt());
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn AllocateCommandBuffers(device: Device, allocateInfo: CommandBufferAllocateInfo, commandBuffers: []CommandBuffer) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
assert(commandBuffers.len >= allocateInfo.commandBufferCount);
|
|
const result = vkAllocateCommandBuffers(device, &allocateInfo, commandBuffers.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn FreeCommandBuffers(device: Device, commandPool: CommandPool, commandBuffers: []const CommandBuffer) void {
|
|
vkFreeCommandBuffers(device, commandPool, @intCast(u32, commandBuffers.len), commandBuffers.ptr);
|
|
}
|
|
|
|
pub inline fn BeginCommandBuffer(commandBuffer: CommandBuffer, beginInfo: CommandBufferBeginInfo) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkBeginCommandBuffer(commandBuffer, &beginInfo);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn EndCommandBuffer(commandBuffer: CommandBuffer) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkEndCommandBuffer(commandBuffer);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn ResetCommandBuffer(commandBuffer: CommandBuffer, flags: CommandBufferResetFlags) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkResetCommandBuffer(commandBuffer, flags.toInt());
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub const CmdBindPipeline = vkCmdBindPipeline;
|
|
|
|
pub inline fn CmdSetViewport(commandBuffer: CommandBuffer, firstViewport: u32, viewports: []const Viewport) void {
|
|
vkCmdSetViewport(commandBuffer, firstViewport, @intCast(u32, viewports.len), viewports.ptr);
|
|
}
|
|
|
|
pub inline fn CmdSetScissor(commandBuffer: CommandBuffer, firstScissor: u32, scissors: []const Rect2D) void {
|
|
vkCmdSetScissor(commandBuffer, firstScissor, @intCast(u32, scissors.len), scissors.ptr);
|
|
}
|
|
|
|
pub const CmdSetLineWidth = vkCmdSetLineWidth;
|
|
pub const CmdSetDepthBias = vkCmdSetDepthBias;
|
|
|
|
pub inline fn CmdSetBlendConstants(commandBuffer: CommandBuffer, blendConstants: [4]f32) void {
|
|
vkCmdSetBlendConstants(commandBuffer, &blendConstants);
|
|
}
|
|
|
|
pub const CmdSetDepthBounds = vkCmdSetDepthBounds;
|
|
|
|
pub inline fn CmdSetStencilCompareMask(commandBuffer: CommandBuffer, faceMask: StencilFaceFlags, compareMask: u32) void {
|
|
vkCmdSetStencilCompareMask(commandBuffer, faceMask.toInt(), compareMask);
|
|
}
|
|
|
|
pub inline fn CmdSetStencilWriteMask(commandBuffer: CommandBuffer, faceMask: StencilFaceFlags, writeMask: u32) void {
|
|
vkCmdSetStencilWriteMask(commandBuffer, faceMask.toInt(), writeMask);
|
|
}
|
|
|
|
pub inline fn CmdSetStencilReference(commandBuffer: CommandBuffer, faceMask: StencilFaceFlags, reference: u32) void {
|
|
vkCmdSetStencilReference(commandBuffer, faceMask.toInt(), reference);
|
|
}
|
|
|
|
pub inline fn CmdBindDescriptorSets(commandBuffer: CommandBuffer, pipelineBindPoint: PipelineBindPoint, layout: PipelineLayout, firstSet: u32, descriptorSets: []const DescriptorSet, dynamicOffsets: []const u32) void {
|
|
vkCmdBindDescriptorSets(commandBuffer, pipelineBindPoint, layout, firstSet, @intCast(u32, descriptorSets.len), descriptorSets.ptr, @intCast(u32, dynamicOffsets.len), dynamicOffsets.ptr);
|
|
}
|
|
|
|
pub const CmdBindIndexBuffer = vkCmdBindIndexBuffer;
|
|
|
|
pub inline fn CmdBindVertexBuffers(commandBuffer: CommandBuffer, firstBinding: u32, buffers: []const Buffer, offsets: []const DeviceSize) void {
|
|
assert(offsets.len >= buffers.len);
|
|
vkCmdBindVertexBuffers(commandBuffer, firstBinding, @intCast(u32, buffers.len), buffers.ptr, offsets.ptr);
|
|
}
|
|
|
|
pub const CmdDraw = vkCmdDraw;
|
|
pub const CmdDrawIndexed = vkCmdDrawIndexed;
|
|
pub const CmdDrawIndirect = vkCmdDrawIndirect;
|
|
pub const CmdDrawIndexedIndirect = vkCmdDrawIndexedIndirect;
|
|
pub const CmdDispatch = vkCmdDispatch;
|
|
pub const CmdDispatchIndirect = vkCmdDispatchIndirect;
|
|
|
|
pub inline fn CmdCopyBuffer(commandBuffer: CommandBuffer, srcBuffer: Buffer, dstBuffer: Buffer, regions: []const BufferCopy) void {
|
|
vkCmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, @intCast(u32, regions.len), regions.ptr);
|
|
}
|
|
|
|
pub inline fn CmdCopyImage(commandBuffer: CommandBuffer, srcImage: Image, srcImageLayout: ImageLayout, dstImage: Image, dstImageLayout: ImageLayout, regions: []const ImageCopy) void {
|
|
vkCmdCopyImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, @intCast(u32, regions.len), regions.ptr);
|
|
}
|
|
|
|
pub inline fn CmdBlitImage(commandBuffer: CommandBuffer, srcImage: Image, srcImageLayout: ImageLayout, dstImage: Image, dstImageLayout: ImageLayout, regions: []const ImageBlit, filter: Filter) void {
|
|
vkCmdBlitImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, @intCast(u32, regions.len), regions.ptr, filter);
|
|
}
|
|
|
|
pub inline fn CmdCopyBufferToImage(commandBuffer: CommandBuffer, srcBuffer: Buffer, dstImage: Image, dstImageLayout: ImageLayout, regions: []const BufferImageCopy) void {
|
|
vkCmdCopyBufferToImage(commandBuffer, srcBuffer, dstImage, dstImageLayout, @intCast(u32, regions.len), regions.ptr);
|
|
}
|
|
|
|
pub inline fn CmdCopyImageToBuffer(commandBuffer: CommandBuffer, srcImage: Image, srcImageLayout: ImageLayout, dstBuffer: Buffer, regions: []const BufferImageCopy) void {
|
|
vkCmdCopyImageToBuffer(commandBuffer, srcImage, srcImageLayout, dstBuffer, @intCast(u32, regions.len), regions.ptr);
|
|
}
|
|
|
|
pub inline fn CmdUpdateBuffer(commandBuffer: CommandBuffer, dstBuffer: Buffer, dstOffset: DeviceSize, data: []const u8) void {
|
|
vkCmdUpdateBuffer(commandBuffer, dstBuffer, dstOffset, @intCast(DeviceSize, data.len), data.ptr);
|
|
}
|
|
|
|
pub const CmdFillBuffer = vkCmdFillBuffer;
|
|
|
|
pub inline fn CmdClearColorImage(commandBuffer: CommandBuffer, image: Image, imageLayout: ImageLayout, color: ClearColorValue, ranges: []const ImageSubresourceRange) void {
|
|
vkCmdClearColorImage(commandBuffer, image, imageLayout, &color, @intCast(u32, ranges.len), ranges.ptr);
|
|
}
|
|
|
|
pub inline fn CmdClearDepthStencilImage(commandBuffer: CommandBuffer, image: Image, imageLayout: ImageLayout, depthStencil: ClearDepthStencilValue, ranges: []const ImageSubresourceRange) void {
|
|
vkCmdClearDepthStencilImage(commandBuffer, image, imageLayout, &depthStencil, @intCast(u32, ranges.len), ranges.ptr);
|
|
}
|
|
|
|
pub inline fn CmdClearAttachments(commandBuffer: CommandBuffer, attachments: []const ClearAttachment, rects: []const ClearRect) void {
|
|
vkCmdClearAttachments(commandBuffer, @intCast(u32, attachments.len), attachments.ptr, @intCast(u32, rects.len), rects.ptr);
|
|
}
|
|
|
|
pub inline fn CmdResolveImage(commandBuffer: CommandBuffer, srcImage: Image, srcImageLayout: ImageLayout, dstImage: Image, dstImageLayout: ImageLayout, regions: []const ImageResolve) void {
|
|
vkCmdResolveImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, @intCast(u32, regions.len), regions.ptr);
|
|
}
|
|
|
|
pub inline fn CmdSetEvent(commandBuffer: CommandBuffer, event: Event, stageMask: PipelineStageFlags) void {
|
|
vkCmdSetEvent(commandBuffer, event, stageMask.toInt());
|
|
}
|
|
|
|
pub inline fn CmdResetEvent(commandBuffer: CommandBuffer, event: Event, stageMask: PipelineStageFlags) void {
|
|
vkCmdResetEvent(commandBuffer, event, stageMask.toInt());
|
|
}
|
|
|
|
pub inline fn CmdWaitEvents(commandBuffer: CommandBuffer, events: []const Event, srcStageMask: PipelineStageFlags, dstStageMask: PipelineStageFlags, memoryBarriers: []const MemoryBarrier, bufferMemoryBarriers: []const BufferMemoryBarrier, imageMemoryBarriers: []const ImageMemoryBarrier) void {
|
|
vkCmdWaitEvents(commandBuffer, @intCast(u32, events.len), events.ptr, srcStageMask.toInt(), dstStageMask.toInt(), @intCast(u32, memoryBarriers.len), memoryBarriers.ptr, @intCast(u32, bufferMemoryBarriers.len), bufferMemoryBarriers.ptr, @intCast(u32, imageMemoryBarriers.len), imageMemoryBarriers.ptr);
|
|
}
|
|
|
|
pub inline fn CmdPipelineBarrier(commandBuffer: CommandBuffer, srcStageMask: PipelineStageFlags, dstStageMask: PipelineStageFlags, dependencyFlags: DependencyFlags, memoryBarriers: []const MemoryBarrier, bufferMemoryBarriers: []const BufferMemoryBarrier, imageMemoryBarriers: []const ImageMemoryBarrier) void {
|
|
vkCmdPipelineBarrier(commandBuffer, srcStageMask.toInt(), dstStageMask.toInt(), dependencyFlags.toInt(), @intCast(u32, memoryBarriers.len), memoryBarriers.ptr, @intCast(u32, bufferMemoryBarriers.len), bufferMemoryBarriers.ptr, @intCast(u32, imageMemoryBarriers.len), imageMemoryBarriers.ptr);
|
|
}
|
|
|
|
pub inline fn CmdBeginQuery(commandBuffer: CommandBuffer, queryPool: QueryPool, query: u32, flags: QueryControlFlags) void {
|
|
vkCmdBeginQuery(commandBuffer, queryPool, query, flags.toInt());
|
|
}
|
|
|
|
pub const CmdEndQuery = vkCmdEndQuery;
|
|
pub const CmdResetQueryPool = vkCmdResetQueryPool;
|
|
|
|
pub inline fn CmdWriteTimestamp(commandBuffer: CommandBuffer, pipelineStage: PipelineStageFlags, queryPool: QueryPool, query: u32) void {
|
|
vkCmdWriteTimestamp(commandBuffer, pipelineStage.toInt(), queryPool, query);
|
|
}
|
|
|
|
pub inline fn CmdCopyQueryPoolResults(commandBuffer: CommandBuffer, queryPool: QueryPool, firstQuery: u32, queryCount: u32, dstBuffer: Buffer, dstOffset: DeviceSize, stride: DeviceSize, flags: QueryResultFlags) void {
|
|
vkCmdCopyQueryPoolResults(commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags.toInt());
|
|
}
|
|
|
|
pub inline fn CmdPushConstants(commandBuffer: CommandBuffer, layout: PipelineLayout, stageFlags: ShaderStageFlags, offset: u32, values: []const u8) void {
|
|
vkCmdPushConstants(commandBuffer, layout, stageFlags.toInt(), offset, @intCast(u32, values.len), values.ptr);
|
|
}
|
|
|
|
pub inline fn CmdBeginRenderPass(commandBuffer: CommandBuffer, renderPassBegin: RenderPassBeginInfo, contents: SubpassContents) void {
|
|
vkCmdBeginRenderPass(commandBuffer, &renderPassBegin, contents);
|
|
}
|
|
|
|
pub const CmdNextSubpass = vkCmdNextSubpass;
|
|
pub const CmdEndRenderPass = vkCmdEndRenderPass;
|
|
|
|
pub inline fn CmdExecuteCommands(commandBuffer: CommandBuffer, commandBuffers: []const CommandBuffer) void {
|
|
vkCmdExecuteCommands(commandBuffer, @intCast(u32, commandBuffers.len), commandBuffers.ptr);
|
|
}
|
|
|
|
|
|
pub const VERSION_1_1 = 1;
|
|
// Vulkan 1.1 version number
|
|
pub const API_VERSION_1_1 = MAKE_VERSION(1, 1, 0);// Patch version should always be set to 0
|
|
|
|
pub const SamplerYcbcrConversion = enum(u64) { Null = 0, _ };
|
|
pub const DescriptorUpdateTemplate = enum(u64) { Null = 0, _ };
|
|
|
|
pub const MAX_DEVICE_GROUP_SIZE = 32;
|
|
pub const LUID_SIZE = 8;
|
|
pub const QUEUE_FAMILY_EXTERNAL = (~@as(u32, 0)-1);
|
|
|
|
pub const PointClippingBehavior = enum(i32) {
|
|
ALL_CLIP_PLANES = 0,
|
|
USER_CLIP_PLANES_ONLY = 1,
|
|
_,
|
|
|
|
const Self = @This();
|
|
pub const ALL_CLIP_PLANES_KHR = Self.ALL_CLIP_PLANES;
|
|
pub const USER_CLIP_PLANES_ONLY_KHR = Self.USER_CLIP_PLANES_ONLY;
|
|
};
|
|
|
|
pub const TessellationDomainOrigin = enum(i32) {
|
|
UPPER_LEFT = 0,
|
|
LOWER_LEFT = 1,
|
|
_,
|
|
|
|
const Self = @This();
|
|
pub const UPPER_LEFT_KHR = Self.UPPER_LEFT;
|
|
pub const LOWER_LEFT_KHR = Self.LOWER_LEFT;
|
|
};
|
|
|
|
pub const SamplerYcbcrModelConversion = enum(i32) {
|
|
RGB_IDENTITY = 0,
|
|
YCBCR_IDENTITY = 1,
|
|
YCBCR_709 = 2,
|
|
YCBCR_601 = 3,
|
|
YCBCR_2020 = 4,
|
|
_,
|
|
|
|
const Self = @This();
|
|
pub const RGB_IDENTITY_KHR = Self.RGB_IDENTITY;
|
|
pub const YCBCR_IDENTITY_KHR = Self.YCBCR_IDENTITY;
|
|
pub const YCBCR_709_KHR = Self.YCBCR_709;
|
|
pub const YCBCR_601_KHR = Self.YCBCR_601;
|
|
pub const YCBCR_2020_KHR = Self.YCBCR_2020;
|
|
};
|
|
|
|
pub const SamplerYcbcrRange = enum(i32) {
|
|
ITU_FULL = 0,
|
|
ITU_NARROW = 1,
|
|
_,
|
|
|
|
const Self = @This();
|
|
pub const ITU_FULL_KHR = Self.ITU_FULL;
|
|
pub const ITU_NARROW_KHR = Self.ITU_NARROW;
|
|
};
|
|
|
|
pub const ChromaLocation = enum(i32) {
|
|
COSITED_EVEN = 0,
|
|
MIDPOINT = 1,
|
|
_,
|
|
|
|
const Self = @This();
|
|
pub const COSITED_EVEN_KHR = Self.COSITED_EVEN;
|
|
pub const MIDPOINT_KHR = Self.MIDPOINT;
|
|
};
|
|
|
|
pub const DescriptorUpdateTemplateType = enum(i32) {
|
|
DESCRIPTOR_SET = 0,
|
|
PUSH_DESCRIPTORS_KHR = 1,
|
|
_,
|
|
|
|
const Self = @This();
|
|
pub const DESCRIPTOR_SET_KHR = Self.DESCRIPTOR_SET;
|
|
};
|
|
|
|
pub const SubgroupFeatureFlags = packed struct {
|
|
basic: bool = false,
|
|
vote: bool = false,
|
|
arithmetic: bool = false,
|
|
ballot: bool = false,
|
|
shuffle: bool = false,
|
|
shuffleRelative: bool = false,
|
|
clustered: bool = false,
|
|
quad: bool = false,
|
|
partitionedNV: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const PeerMemoryFeatureFlags = packed struct {
|
|
copySrc: bool = false,
|
|
copyDst: bool = false,
|
|
genericSrc: bool = false,
|
|
genericDst: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
const Self = @This();
|
|
pub const copySrcKHR = Self{ .copySrc = true };
|
|
pub const copyDstKHR = Self{ .copyDst = true };
|
|
pub const genericSrcKHR = Self{ .genericSrc = true };
|
|
pub const genericDstKHR = Self{ .genericDst = true };
|
|
|
|
pub usingnamespace FlagsMixin(Self);
|
|
};
|
|
|
|
pub const MemoryAllocateFlags = packed struct {
|
|
deviceMask: bool = false,
|
|
deviceAddress: bool = false,
|
|
deviceAddressCaptureReplay: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
const Self = @This();
|
|
pub const deviceMaskKHR = Self{ .deviceMask = true };
|
|
pub const deviceAddressKHR = Self{ .deviceAddress = true };
|
|
pub const deviceAddressCaptureReplayKHR = Self{ .deviceAddressCaptureReplay = true };
|
|
|
|
pub usingnamespace FlagsMixin(Self);
|
|
};
|
|
|
|
pub const CommandPoolTrimFlags = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const DescriptorUpdateTemplateCreateFlags = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const ExternalMemoryHandleTypeFlags = packed struct {
|
|
opaqueFd: bool = false,
|
|
opaqueWin32: bool = false,
|
|
opaqueWin32Kmt: bool = false,
|
|
d3D11Texture: bool = false,
|
|
d3D11TextureKmt: bool = false,
|
|
d3D12Heap: bool = false,
|
|
d3D12Resource: bool = false,
|
|
hostAllocationEXT: bool = false,
|
|
hostMappedForeignMemoryEXT: bool = false,
|
|
dmaBufEXT: bool = false,
|
|
androidHardwareBufferANDROID: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
const Self = @This();
|
|
pub const opaqueFdKHR = Self{ .opaqueFd = true };
|
|
pub const opaqueWin32KHR = Self{ .opaqueWin32 = true };
|
|
pub const opaqueWin32KmtKHR = Self{ .opaqueWin32Kmt = true };
|
|
pub const d3D11TextureKHR = Self{ .d3D11Texture = true };
|
|
pub const d3D11TextureKmtKHR = Self{ .d3D11TextureKmt = true };
|
|
pub const d3D12HeapKHR = Self{ .d3D12Heap = true };
|
|
pub const d3D12ResourceKHR = Self{ .d3D12Resource = true };
|
|
|
|
pub usingnamespace FlagsMixin(Self);
|
|
};
|
|
|
|
pub const ExternalMemoryFeatureFlags = packed struct {
|
|
dedicatedOnly: bool = false,
|
|
exportable: bool = false,
|
|
importable: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
const Self = @This();
|
|
pub const dedicatedOnlyKHR = Self{ .dedicatedOnly = true };
|
|
pub const exportableKHR = Self{ .exportable = true };
|
|
pub const importableKHR = Self{ .importable = true };
|
|
|
|
pub usingnamespace FlagsMixin(Self);
|
|
};
|
|
|
|
pub const ExternalFenceHandleTypeFlags = packed struct {
|
|
opaqueFd: bool = false,
|
|
opaqueWin32: bool = false,
|
|
opaqueWin32Kmt: bool = false,
|
|
syncFd: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
const Self = @This();
|
|
pub const opaqueFdKHR = Self{ .opaqueFd = true };
|
|
pub const opaqueWin32KHR = Self{ .opaqueWin32 = true };
|
|
pub const opaqueWin32KmtKHR = Self{ .opaqueWin32Kmt = true };
|
|
pub const syncFdKHR = Self{ .syncFd = true };
|
|
|
|
pub usingnamespace FlagsMixin(Self);
|
|
};
|
|
|
|
pub const ExternalFenceFeatureFlags = packed struct {
|
|
exportable: bool = false,
|
|
importable: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
const Self = @This();
|
|
pub const exportableKHR = Self{ .exportable = true };
|
|
pub const importableKHR = Self{ .importable = true };
|
|
|
|
pub usingnamespace FlagsMixin(Self);
|
|
};
|
|
|
|
pub const FenceImportFlags = packed struct {
|
|
temporary: bool = false,
|
|
__reserved_bit_01: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
const Self = @This();
|
|
pub const temporaryKHR = Self{ .temporary = true };
|
|
|
|
pub usingnamespace FlagsMixin(Self);
|
|
};
|
|
|
|
pub const SemaphoreImportFlags = packed struct {
|
|
temporary: bool = false,
|
|
__reserved_bit_01: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
const Self = @This();
|
|
pub const temporaryKHR = Self{ .temporary = true };
|
|
|
|
pub usingnamespace FlagsMixin(Self);
|
|
};
|
|
|
|
pub const ExternalSemaphoreHandleTypeFlags = packed struct {
|
|
opaqueFd: bool = false,
|
|
opaqueWin32: bool = false,
|
|
opaqueWin32Kmt: bool = false,
|
|
d3D12Fence: bool = false,
|
|
syncFd: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
const Self = @This();
|
|
pub const opaqueFdKHR = Self{ .opaqueFd = true };
|
|
pub const opaqueWin32KHR = Self{ .opaqueWin32 = true };
|
|
pub const opaqueWin32KmtKHR = Self{ .opaqueWin32Kmt = true };
|
|
pub const d3D12FenceKHR = Self{ .d3D12Fence = true };
|
|
pub const syncFdKHR = Self{ .syncFd = true };
|
|
|
|
pub usingnamespace FlagsMixin(Self);
|
|
};
|
|
|
|
pub const ExternalSemaphoreFeatureFlags = packed struct {
|
|
exportable: bool = false,
|
|
importable: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
const Self = @This();
|
|
pub const exportableKHR = Self{ .exportable = true };
|
|
pub const importableKHR = Self{ .importable = true };
|
|
|
|
pub usingnamespace FlagsMixin(Self);
|
|
};
|
|
|
|
pub const PhysicalDeviceSubgroupProperties = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_SUBGROUP_PROPERTIES,
|
|
pNext: ?*anyopaque = null,
|
|
subgroupSize: u32,
|
|
supportedStages: ShaderStageFlags align(4),
|
|
supportedOperations: SubgroupFeatureFlags align(4),
|
|
quadOperationsInAllStages: Bool32,
|
|
};
|
|
|
|
pub const BindBufferMemoryInfo = extern struct {
|
|
sType: StructureType = .BIND_BUFFER_MEMORY_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
buffer: Buffer,
|
|
memory: DeviceMemory,
|
|
memoryOffset: DeviceSize,
|
|
};
|
|
|
|
pub const BindImageMemoryInfo = extern struct {
|
|
sType: StructureType = .BIND_IMAGE_MEMORY_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
image: Image,
|
|
memory: DeviceMemory,
|
|
memoryOffset: DeviceSize,
|
|
};
|
|
|
|
pub const PhysicalDevice16BitStorageFeatures = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
|
|
pNext: ?*anyopaque = null,
|
|
storageBuffer16BitAccess: Bool32,
|
|
uniformAndStorageBuffer16BitAccess: Bool32,
|
|
storagePushConstant16: Bool32,
|
|
storageInputOutput16: Bool32,
|
|
};
|
|
|
|
pub const MemoryDedicatedRequirements = extern struct {
|
|
sType: StructureType = .MEMORY_DEDICATED_REQUIREMENTS,
|
|
pNext: ?*anyopaque = null,
|
|
prefersDedicatedAllocation: Bool32,
|
|
requiresDedicatedAllocation: Bool32,
|
|
};
|
|
|
|
pub const MemoryDedicatedAllocateInfo = extern struct {
|
|
sType: StructureType = .MEMORY_DEDICATED_ALLOCATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
image: Image = Image.Null,
|
|
buffer: Buffer = Buffer.Null,
|
|
};
|
|
|
|
pub const MemoryAllocateFlagsInfo = extern struct {
|
|
sType: StructureType = .MEMORY_ALLOCATE_FLAGS_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: MemoryAllocateFlags align(4) = MemoryAllocateFlags{},
|
|
deviceMask: u32,
|
|
};
|
|
|
|
pub const DeviceGroupRenderPassBeginInfo = extern struct {
|
|
sType: StructureType = .DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
deviceMask: u32,
|
|
deviceRenderAreaCount: u32 = 0,
|
|
pDeviceRenderAreas: [*]const Rect2D = undefined,
|
|
};
|
|
|
|
pub const DeviceGroupCommandBufferBeginInfo = extern struct {
|
|
sType: StructureType = .DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
deviceMask: u32,
|
|
};
|
|
|
|
pub const DeviceGroupSubmitInfo = extern struct {
|
|
sType: StructureType = .DEVICE_GROUP_SUBMIT_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
waitSemaphoreCount: u32 = 0,
|
|
pWaitSemaphoreDeviceIndices: [*]const u32 = undefined,
|
|
commandBufferCount: u32 = 0,
|
|
pCommandBufferDeviceMasks: [*]const u32 = undefined,
|
|
signalSemaphoreCount: u32 = 0,
|
|
pSignalSemaphoreDeviceIndices: [*]const u32 = undefined,
|
|
};
|
|
|
|
pub const DeviceGroupBindSparseInfo = extern struct {
|
|
sType: StructureType = .DEVICE_GROUP_BIND_SPARSE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
resourceDeviceIndex: u32,
|
|
memoryDeviceIndex: u32,
|
|
};
|
|
|
|
pub const BindBufferMemoryDeviceGroupInfo = extern struct {
|
|
sType: StructureType = .BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
deviceIndexCount: u32 = 0,
|
|
pDeviceIndices: [*]const u32 = undefined,
|
|
};
|
|
|
|
pub const BindImageMemoryDeviceGroupInfo = extern struct {
|
|
sType: StructureType = .BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
deviceIndexCount: u32 = 0,
|
|
pDeviceIndices: [*]const u32 = undefined,
|
|
splitInstanceBindRegionCount: u32 = 0,
|
|
pSplitInstanceBindRegions: [*]const Rect2D = undefined,
|
|
};
|
|
|
|
pub const PhysicalDeviceGroupProperties = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_GROUP_PROPERTIES,
|
|
pNext: ?*anyopaque = null,
|
|
physicalDeviceCount: u32,
|
|
physicalDevices: [MAX_DEVICE_GROUP_SIZE]PhysicalDevice,
|
|
subsetAllocation: Bool32,
|
|
};
|
|
|
|
pub const DeviceGroupDeviceCreateInfo = extern struct {
|
|
sType: StructureType = .DEVICE_GROUP_DEVICE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
physicalDeviceCount: u32 = 0,
|
|
pPhysicalDevices: [*]const PhysicalDevice = undefined,
|
|
};
|
|
|
|
pub const BufferMemoryRequirementsInfo2 = extern struct {
|
|
sType: StructureType = .BUFFER_MEMORY_REQUIREMENTS_INFO_2,
|
|
pNext: ?*const anyopaque = null,
|
|
buffer: Buffer,
|
|
};
|
|
|
|
pub const ImageMemoryRequirementsInfo2 = extern struct {
|
|
sType: StructureType = .IMAGE_MEMORY_REQUIREMENTS_INFO_2,
|
|
pNext: ?*const anyopaque = null,
|
|
image: Image,
|
|
};
|
|
|
|
pub const ImageSparseMemoryRequirementsInfo2 = extern struct {
|
|
sType: StructureType = .IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
|
|
pNext: ?*const anyopaque = null,
|
|
image: Image,
|
|
};
|
|
|
|
pub const MemoryRequirements2 = extern struct {
|
|
sType: StructureType = .MEMORY_REQUIREMENTS_2,
|
|
pNext: ?*anyopaque = null,
|
|
memoryRequirements: MemoryRequirements,
|
|
};
|
|
|
|
pub const MemoryRequirements2KHR = MemoryRequirements2;
|
|
|
|
pub const SparseImageMemoryRequirements2 = extern struct {
|
|
sType: StructureType = .SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
|
|
pNext: ?*anyopaque = null,
|
|
memoryRequirements: SparseImageMemoryRequirements,
|
|
};
|
|
|
|
pub const PhysicalDeviceFeatures2 = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_FEATURES_2,
|
|
pNext: ?*anyopaque = null,
|
|
features: PhysicalDeviceFeatures,
|
|
};
|
|
|
|
pub const PhysicalDeviceProperties2 = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_PROPERTIES_2,
|
|
pNext: ?*anyopaque = null,
|
|
properties: PhysicalDeviceProperties,
|
|
};
|
|
|
|
pub const FormatProperties2 = extern struct {
|
|
sType: StructureType = .FORMAT_PROPERTIES_2,
|
|
pNext: ?*anyopaque = null,
|
|
formatProperties: FormatProperties,
|
|
};
|
|
|
|
pub const ImageFormatProperties2 = extern struct {
|
|
sType: StructureType = .IMAGE_FORMAT_PROPERTIES_2,
|
|
pNext: ?*anyopaque = null,
|
|
imageFormatProperties: ImageFormatProperties,
|
|
};
|
|
|
|
pub const PhysicalDeviceImageFormatInfo2 = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
|
|
pNext: ?*const anyopaque = null,
|
|
format: Format,
|
|
inType: ImageType,
|
|
tiling: ImageTiling,
|
|
usage: ImageUsageFlags align(4),
|
|
flags: ImageCreateFlags align(4) = ImageCreateFlags{},
|
|
};
|
|
|
|
pub const QueueFamilyProperties2 = extern struct {
|
|
sType: StructureType = .QUEUE_FAMILY_PROPERTIES_2,
|
|
pNext: ?*anyopaque = null,
|
|
queueFamilyProperties: QueueFamilyProperties,
|
|
};
|
|
|
|
pub const PhysicalDeviceMemoryProperties2 = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
|
|
pNext: ?*anyopaque = null,
|
|
memoryProperties: PhysicalDeviceMemoryProperties,
|
|
};
|
|
|
|
pub const SparseImageFormatProperties2 = extern struct {
|
|
sType: StructureType = .SPARSE_IMAGE_FORMAT_PROPERTIES_2,
|
|
pNext: ?*anyopaque = null,
|
|
properties: SparseImageFormatProperties,
|
|
};
|
|
|
|
pub const PhysicalDeviceSparseImageFormatInfo2 = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
|
|
pNext: ?*const anyopaque = null,
|
|
format: Format,
|
|
inType: ImageType,
|
|
samples: SampleCountFlags align(4),
|
|
usage: ImageUsageFlags align(4),
|
|
tiling: ImageTiling,
|
|
};
|
|
|
|
pub const PhysicalDevicePointClippingProperties = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
|
|
pNext: ?*anyopaque = null,
|
|
pointClippingBehavior: PointClippingBehavior,
|
|
};
|
|
|
|
pub const InputAttachmentAspectReference = extern struct {
|
|
subpass: u32,
|
|
inputAttachmentIndex: u32,
|
|
aspectMask: ImageAspectFlags align(4),
|
|
};
|
|
|
|
pub const RenderPassInputAttachmentAspectCreateInfo = extern struct {
|
|
sType: StructureType = .RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
aspectReferenceCount: u32,
|
|
pAspectReferences: [*]const InputAttachmentAspectReference,
|
|
};
|
|
|
|
pub const ImageViewUsageCreateInfo = extern struct {
|
|
sType: StructureType = .IMAGE_VIEW_USAGE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
usage: ImageUsageFlags align(4),
|
|
};
|
|
|
|
pub const PipelineTessellationDomainOriginStateCreateInfo = extern struct {
|
|
sType: StructureType = .PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
domainOrigin: TessellationDomainOrigin,
|
|
};
|
|
|
|
pub const RenderPassMultiviewCreateInfo = extern struct {
|
|
sType: StructureType = .RENDER_PASS_MULTIVIEW_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
subpassCount: u32 = 0,
|
|
pViewMasks: [*]const u32 = undefined,
|
|
dependencyCount: u32 = 0,
|
|
pViewOffsets: [*]const i32 = undefined,
|
|
correlationMaskCount: u32 = 0,
|
|
pCorrelationMasks: [*]const u32 = undefined,
|
|
};
|
|
|
|
pub const PhysicalDeviceMultiviewFeatures = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
|
|
pNext: ?*anyopaque = null,
|
|
multiview: Bool32,
|
|
multiviewGeometryShader: Bool32,
|
|
multiviewTessellationShader: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDeviceMultiviewProperties = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
|
|
pNext: ?*anyopaque = null,
|
|
maxMultiviewViewCount: u32,
|
|
maxMultiviewInstanceIndex: u32,
|
|
};
|
|
|
|
pub const PhysicalDeviceVariablePointersFeatures = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
|
|
pNext: ?*anyopaque = null,
|
|
variablePointersStorageBuffer: Bool32,
|
|
variablePointers: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDeviceVariablePointerFeatures = PhysicalDeviceVariablePointersFeatures;
|
|
|
|
pub const PhysicalDeviceProtectedMemoryFeatures = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES,
|
|
pNext: ?*anyopaque = null,
|
|
protectedMemory: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDeviceProtectedMemoryProperties = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES,
|
|
pNext: ?*anyopaque = null,
|
|
protectedNoFault: Bool32,
|
|
};
|
|
|
|
pub const DeviceQueueInfo2 = extern struct {
|
|
sType: StructureType = .DEVICE_QUEUE_INFO_2,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: DeviceQueueCreateFlags align(4) = DeviceQueueCreateFlags{},
|
|
queueFamilyIndex: u32,
|
|
queueIndex: u32,
|
|
};
|
|
|
|
pub const ProtectedSubmitInfo = extern struct {
|
|
sType: StructureType = .PROTECTED_SUBMIT_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
protectedSubmit: Bool32,
|
|
};
|
|
|
|
pub const SamplerYcbcrConversionCreateInfo = extern struct {
|
|
sType: StructureType = .SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
format: Format,
|
|
ycbcrModel: SamplerYcbcrModelConversion,
|
|
ycbcrRange: SamplerYcbcrRange,
|
|
components: ComponentMapping,
|
|
xChromaOffset: ChromaLocation,
|
|
yChromaOffset: ChromaLocation,
|
|
chromaFilter: Filter,
|
|
forceExplicitReconstruction: Bool32,
|
|
};
|
|
|
|
pub const SamplerYcbcrConversionInfo = extern struct {
|
|
sType: StructureType = .SAMPLER_YCBCR_CONVERSION_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
conversion: SamplerYcbcrConversion,
|
|
};
|
|
|
|
pub const BindImagePlaneMemoryInfo = extern struct {
|
|
sType: StructureType = .BIND_IMAGE_PLANE_MEMORY_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
planeAspect: ImageAspectFlags align(4),
|
|
};
|
|
|
|
pub const ImagePlaneMemoryRequirementsInfo = extern struct {
|
|
sType: StructureType = .IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
planeAspect: ImageAspectFlags align(4),
|
|
};
|
|
|
|
pub const PhysicalDeviceSamplerYcbcrConversionFeatures = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
|
|
pNext: ?*anyopaque = null,
|
|
samplerYcbcrConversion: Bool32,
|
|
};
|
|
|
|
pub const SamplerYcbcrConversionImageFormatProperties = extern struct {
|
|
sType: StructureType = .SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
|
|
pNext: ?*anyopaque = null,
|
|
combinedImageSamplerDescriptorCount: u32,
|
|
};
|
|
|
|
pub const DescriptorUpdateTemplateEntry = extern struct {
|
|
dstBinding: u32,
|
|
dstArrayElement: u32,
|
|
descriptorCount: u32,
|
|
descriptorType: DescriptorType,
|
|
offset: usize,
|
|
stride: usize,
|
|
};
|
|
|
|
pub const DescriptorUpdateTemplateCreateInfo = extern struct {
|
|
sType: StructureType = .DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: DescriptorUpdateTemplateCreateFlags align(4) = DescriptorUpdateTemplateCreateFlags{},
|
|
descriptorUpdateEntryCount: u32,
|
|
pDescriptorUpdateEntries: [*]const DescriptorUpdateTemplateEntry,
|
|
templateType: DescriptorUpdateTemplateType,
|
|
descriptorSetLayout: DescriptorSetLayout,
|
|
pipelineBindPoint: PipelineBindPoint,
|
|
pipelineLayout: PipelineLayout,
|
|
set: u32,
|
|
};
|
|
|
|
pub const ExternalMemoryProperties = extern struct {
|
|
externalMemoryFeatures: ExternalMemoryFeatureFlags align(4),
|
|
exportFromImportedHandleTypes: ExternalMemoryHandleTypeFlags align(4) = ExternalMemoryHandleTypeFlags{},
|
|
compatibleHandleTypes: ExternalMemoryHandleTypeFlags align(4),
|
|
};
|
|
|
|
pub const PhysicalDeviceExternalImageFormatInfo = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
handleType: ExternalMemoryHandleTypeFlags align(4) = ExternalMemoryHandleTypeFlags{},
|
|
};
|
|
|
|
pub const ExternalImageFormatProperties = extern struct {
|
|
sType: StructureType = .EXTERNAL_IMAGE_FORMAT_PROPERTIES,
|
|
pNext: ?*anyopaque = null,
|
|
externalMemoryProperties: ExternalMemoryProperties,
|
|
};
|
|
|
|
pub const PhysicalDeviceExternalBufferInfo = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: BufferCreateFlags align(4) = BufferCreateFlags{},
|
|
usage: BufferUsageFlags align(4),
|
|
handleType: ExternalMemoryHandleTypeFlags align(4),
|
|
};
|
|
|
|
pub const ExternalBufferProperties = extern struct {
|
|
sType: StructureType = .EXTERNAL_BUFFER_PROPERTIES,
|
|
pNext: ?*anyopaque = null,
|
|
externalMemoryProperties: ExternalMemoryProperties,
|
|
};
|
|
|
|
pub const PhysicalDeviceIDProperties = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_ID_PROPERTIES,
|
|
pNext: ?*anyopaque = null,
|
|
deviceUUID: [UUID_SIZE]u8,
|
|
driverUUID: [UUID_SIZE]u8,
|
|
deviceLUID: [LUID_SIZE]u8,
|
|
deviceNodeMask: u32,
|
|
deviceLUIDValid: Bool32,
|
|
};
|
|
|
|
pub const ExternalMemoryImageCreateInfo = extern struct {
|
|
sType: StructureType = .EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
handleTypes: ExternalMemoryHandleTypeFlags align(4),
|
|
};
|
|
|
|
pub const ExternalMemoryBufferCreateInfo = extern struct {
|
|
sType: StructureType = .EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
handleTypes: ExternalMemoryHandleTypeFlags align(4) = ExternalMemoryHandleTypeFlags{},
|
|
};
|
|
|
|
pub const ExportMemoryAllocateInfo = extern struct {
|
|
sType: StructureType = .EXPORT_MEMORY_ALLOCATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
handleTypes: ExternalMemoryHandleTypeFlags align(4) = ExternalMemoryHandleTypeFlags{},
|
|
};
|
|
|
|
pub const PhysicalDeviceExternalFenceInfo = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
handleType: ExternalFenceHandleTypeFlags align(4),
|
|
};
|
|
|
|
pub const ExternalFenceProperties = extern struct {
|
|
sType: StructureType = .EXTERNAL_FENCE_PROPERTIES,
|
|
pNext: ?*anyopaque = null,
|
|
exportFromImportedHandleTypes: ExternalFenceHandleTypeFlags align(4),
|
|
compatibleHandleTypes: ExternalFenceHandleTypeFlags align(4),
|
|
externalFenceFeatures: ExternalFenceFeatureFlags align(4) = ExternalFenceFeatureFlags{},
|
|
};
|
|
|
|
pub const ExportFenceCreateInfo = extern struct {
|
|
sType: StructureType = .EXPORT_FENCE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
handleTypes: ExternalFenceHandleTypeFlags align(4) = ExternalFenceHandleTypeFlags{},
|
|
};
|
|
|
|
pub const ExportSemaphoreCreateInfo = extern struct {
|
|
sType: StructureType = .EXPORT_SEMAPHORE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
handleTypes: ExternalSemaphoreHandleTypeFlags align(4) = ExternalSemaphoreHandleTypeFlags{},
|
|
};
|
|
|
|
pub const PhysicalDeviceExternalSemaphoreInfo = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
handleType: ExternalSemaphoreHandleTypeFlags align(4),
|
|
};
|
|
|
|
pub const ExternalSemaphoreProperties = extern struct {
|
|
sType: StructureType = .EXTERNAL_SEMAPHORE_PROPERTIES,
|
|
pNext: ?*anyopaque = null,
|
|
exportFromImportedHandleTypes: ExternalSemaphoreHandleTypeFlags align(4),
|
|
compatibleHandleTypes: ExternalSemaphoreHandleTypeFlags align(4),
|
|
externalSemaphoreFeatures: ExternalSemaphoreFeatureFlags align(4) = ExternalSemaphoreFeatureFlags{},
|
|
};
|
|
|
|
pub const PhysicalDeviceMaintenance3Properties = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
|
|
pNext: ?*anyopaque = null,
|
|
maxPerSetDescriptors: u32,
|
|
maxMemoryAllocationSize: DeviceSize,
|
|
};
|
|
|
|
pub const DescriptorSetLayoutSupport = extern struct {
|
|
sType: StructureType = .DESCRIPTOR_SET_LAYOUT_SUPPORT,
|
|
pNext: ?*anyopaque = null,
|
|
supported: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDeviceShaderDrawParametersFeatures = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
|
|
pNext: ?*anyopaque = null,
|
|
shaderDrawParameters: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDeviceShaderDrawParameterFeatures = PhysicalDeviceShaderDrawParametersFeatures;
|
|
|
|
pub extern fn vkEnumerateInstanceVersion(pApiVersion: *u32) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkBindBufferMemory2(
|
|
device: Device,
|
|
bindInfoCount: u32,
|
|
pBindInfos: [*]const BindBufferMemoryInfo,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkBindImageMemory2(
|
|
device: Device,
|
|
bindInfoCount: u32,
|
|
pBindInfos: [*]const BindImageMemoryInfo,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetDeviceGroupPeerMemoryFeatures(
|
|
device: Device,
|
|
heapIndex: u32,
|
|
localDeviceIndex: u32,
|
|
remoteDeviceIndex: u32,
|
|
pPeerMemoryFeatures: *align(4) PeerMemoryFeatureFlags,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdSetDeviceMask(
|
|
commandBuffer: CommandBuffer,
|
|
deviceMask: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdDispatchBase(
|
|
commandBuffer: CommandBuffer,
|
|
baseGroupX: u32,
|
|
baseGroupY: u32,
|
|
baseGroupZ: u32,
|
|
groupCountX: u32,
|
|
groupCountY: u32,
|
|
groupCountZ: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkEnumeratePhysicalDeviceGroups(
|
|
instance: Instance,
|
|
pPhysicalDeviceGroupCount: *u32,
|
|
pPhysicalDeviceGroupProperties: ?[*]PhysicalDeviceGroupProperties,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetImageMemoryRequirements2(
|
|
device: Device,
|
|
pInfo: *const ImageMemoryRequirementsInfo2,
|
|
pMemoryRequirements: *MemoryRequirements2,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetBufferMemoryRequirements2(
|
|
device: Device,
|
|
pInfo: *const BufferMemoryRequirementsInfo2,
|
|
pMemoryRequirements: *MemoryRequirements2,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetImageSparseMemoryRequirements2(
|
|
device: Device,
|
|
pInfo: *const ImageSparseMemoryRequirementsInfo2,
|
|
pSparseMemoryRequirementCount: *u32,
|
|
pSparseMemoryRequirements: ?[*]SparseImageMemoryRequirements2,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetPhysicalDeviceFeatures2(
|
|
physicalDevice: PhysicalDevice,
|
|
pFeatures: *PhysicalDeviceFeatures2,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetPhysicalDeviceProperties2(
|
|
physicalDevice: PhysicalDevice,
|
|
pProperties: *PhysicalDeviceProperties2,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetPhysicalDeviceFormatProperties2(
|
|
physicalDevice: PhysicalDevice,
|
|
format: Format,
|
|
pFormatProperties: *FormatProperties2,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetPhysicalDeviceImageFormatProperties2(
|
|
physicalDevice: PhysicalDevice,
|
|
pImageFormatInfo: *const PhysicalDeviceImageFormatInfo2,
|
|
pImageFormatProperties: *ImageFormatProperties2,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetPhysicalDeviceQueueFamilyProperties2(
|
|
physicalDevice: PhysicalDevice,
|
|
pQueueFamilyPropertyCount: *u32,
|
|
pQueueFamilyProperties: ?[*]QueueFamilyProperties2,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetPhysicalDeviceMemoryProperties2(
|
|
physicalDevice: PhysicalDevice,
|
|
pMemoryProperties: *PhysicalDeviceMemoryProperties2,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetPhysicalDeviceSparseImageFormatProperties2(
|
|
physicalDevice: PhysicalDevice,
|
|
pFormatInfo: *const PhysicalDeviceSparseImageFormatInfo2,
|
|
pPropertyCount: *u32,
|
|
pProperties: ?[*]SparseImageFormatProperties2,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkTrimCommandPool(
|
|
device: Device,
|
|
commandPool: CommandPool,
|
|
flags: CommandPoolTrimFlags.IntType,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetDeviceQueue2(
|
|
device: Device,
|
|
pQueueInfo: *const DeviceQueueInfo2,
|
|
pQueue: *Queue,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCreateSamplerYcbcrConversion(
|
|
device: Device,
|
|
pCreateInfo: *const SamplerYcbcrConversionCreateInfo,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pYcbcrConversion: *SamplerYcbcrConversion,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroySamplerYcbcrConversion(
|
|
device: Device,
|
|
ycbcrConversion: SamplerYcbcrConversion,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCreateDescriptorUpdateTemplate(
|
|
device: Device,
|
|
pCreateInfo: *const DescriptorUpdateTemplateCreateInfo,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pDescriptorUpdateTemplate: *DescriptorUpdateTemplate,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroyDescriptorUpdateTemplate(
|
|
device: Device,
|
|
descriptorUpdateTemplate: DescriptorUpdateTemplate,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkUpdateDescriptorSetWithTemplate(
|
|
device: Device,
|
|
descriptorSet: DescriptorSet,
|
|
descriptorUpdateTemplate: DescriptorUpdateTemplate,
|
|
pData: ?*const anyopaque,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetPhysicalDeviceExternalBufferProperties(
|
|
physicalDevice: PhysicalDevice,
|
|
pExternalBufferInfo: *const PhysicalDeviceExternalBufferInfo,
|
|
pExternalBufferProperties: *ExternalBufferProperties,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetPhysicalDeviceExternalFenceProperties(
|
|
physicalDevice: PhysicalDevice,
|
|
pExternalFenceInfo: *const PhysicalDeviceExternalFenceInfo,
|
|
pExternalFenceProperties: *ExternalFenceProperties,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetPhysicalDeviceExternalSemaphoreProperties(
|
|
physicalDevice: PhysicalDevice,
|
|
pExternalSemaphoreInfo: *const PhysicalDeviceExternalSemaphoreInfo,
|
|
pExternalSemaphoreProperties: *ExternalSemaphoreProperties,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetDescriptorSetLayoutSupport(
|
|
device: Device,
|
|
pCreateInfo: *const DescriptorSetLayoutCreateInfo,
|
|
pSupport: *DescriptorSetLayoutSupport,
|
|
) callconv(CallConv) void;
|
|
|
|
pub inline fn EnumerateInstanceVersion() error{VK_UNDOCUMENTED_ERROR}!u32 {
|
|
var out_apiVersion: u32 = undefined;
|
|
const result = vkEnumerateInstanceVersion(&out_apiVersion);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return error.VK_UNDOCUMENTED_ERROR;
|
|
}
|
|
return out_apiVersion;
|
|
}
|
|
|
|
pub inline fn BindBufferMemory2(device: Device, bindInfos: []const BindBufferMemoryInfo) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_INVALID_OPAQUE_CAPTURE_ADDRESS,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkBindBufferMemory2(device, @intCast(u32, bindInfos.len), bindInfos.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS => error.VK_INVALID_OPAQUE_CAPTURE_ADDRESS,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn BindImageMemory2(device: Device, bindInfos: []const BindImageMemoryInfo) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkBindImageMemory2(device, @intCast(u32, bindInfos.len), bindInfos.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn GetDeviceGroupPeerMemoryFeatures(device: Device, heapIndex: u32, localDeviceIndex: u32, remoteDeviceIndex: u32) PeerMemoryFeatureFlags {
|
|
var out_peerMemoryFeatures: PeerMemoryFeatureFlags align(4) = undefined;
|
|
vkGetDeviceGroupPeerMemoryFeatures(device, heapIndex, localDeviceIndex, remoteDeviceIndex, &out_peerMemoryFeatures);
|
|
return out_peerMemoryFeatures;
|
|
}
|
|
|
|
pub const CmdSetDeviceMask = vkCmdSetDeviceMask;
|
|
pub const CmdDispatchBase = vkCmdDispatchBase;
|
|
|
|
pub const EnumeratePhysicalDeviceGroupsResult = struct {
|
|
result: Result,
|
|
physicalDeviceGroupProperties: []PhysicalDeviceGroupProperties,
|
|
};
|
|
pub inline fn EnumeratePhysicalDeviceGroups(instance: Instance, physicalDeviceGroupProperties: []PhysicalDeviceGroupProperties) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_INITIALIZATION_FAILED,VK_UNDOCUMENTED_ERROR}!EnumeratePhysicalDeviceGroupsResult {
|
|
var returnValues: EnumeratePhysicalDeviceGroupsResult = undefined;
|
|
var physicalDeviceGroupCount: u32 = @intCast(u32, physicalDeviceGroupProperties.len);
|
|
const result = vkEnumeratePhysicalDeviceGroups(instance, &physicalDeviceGroupCount, physicalDeviceGroupProperties.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_INITIALIZATION_FAILED => error.VK_INITIALIZATION_FAILED,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.physicalDeviceGroupProperties = physicalDeviceGroupProperties[0..physicalDeviceGroupCount];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn EnumeratePhysicalDeviceGroupsCount(instance: Instance) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_INITIALIZATION_FAILED,VK_UNDOCUMENTED_ERROR}!u32 {
|
|
var out_physicalDeviceGroupCount: u32 = undefined;
|
|
const result = vkEnumeratePhysicalDeviceGroups(instance, &out_physicalDeviceGroupCount, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_INITIALIZATION_FAILED => error.VK_INITIALIZATION_FAILED,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_physicalDeviceGroupCount;
|
|
}
|
|
|
|
pub inline fn GetImageMemoryRequirements2(device: Device, info: ImageMemoryRequirementsInfo2) MemoryRequirements2 {
|
|
var out_memoryRequirements: MemoryRequirements2 = undefined;
|
|
vkGetImageMemoryRequirements2(device, &info, &out_memoryRequirements);
|
|
return out_memoryRequirements;
|
|
}
|
|
|
|
pub inline fn GetBufferMemoryRequirements2(device: Device, info: BufferMemoryRequirementsInfo2) MemoryRequirements2 {
|
|
var out_memoryRequirements: MemoryRequirements2 = undefined;
|
|
vkGetBufferMemoryRequirements2(device, &info, &out_memoryRequirements);
|
|
return out_memoryRequirements;
|
|
}
|
|
|
|
pub inline fn GetImageSparseMemoryRequirements2(device: Device, info: ImageSparseMemoryRequirementsInfo2, sparseMemoryRequirements: []SparseImageMemoryRequirements2) []SparseImageMemoryRequirements2 {
|
|
var out_sparseMemoryRequirements: []SparseImageMemoryRequirements2 = undefined;
|
|
var sparseMemoryRequirementCount: u32 = @intCast(u32, sparseMemoryRequirements.len);
|
|
vkGetImageSparseMemoryRequirements2(device, &info, &sparseMemoryRequirementCount, sparseMemoryRequirements.ptr);
|
|
out_sparseMemoryRequirements = sparseMemoryRequirements[0..sparseMemoryRequirementCount];
|
|
return out_sparseMemoryRequirements;
|
|
}
|
|
pub inline fn GetImageSparseMemoryRequirements2Count(device: Device, info: ImageSparseMemoryRequirementsInfo2) u32 {
|
|
var out_sparseMemoryRequirementCount: u32 = undefined;
|
|
vkGetImageSparseMemoryRequirements2(device, &info, &out_sparseMemoryRequirementCount, null);
|
|
return out_sparseMemoryRequirementCount;
|
|
}
|
|
|
|
pub inline fn GetPhysicalDeviceFeatures2(physicalDevice: PhysicalDevice) PhysicalDeviceFeatures2 {
|
|
var out_features: PhysicalDeviceFeatures2 = undefined;
|
|
vkGetPhysicalDeviceFeatures2(physicalDevice, &out_features);
|
|
return out_features;
|
|
}
|
|
|
|
pub inline fn GetPhysicalDeviceProperties2(physicalDevice: PhysicalDevice) PhysicalDeviceProperties2 {
|
|
var out_properties: PhysicalDeviceProperties2 = undefined;
|
|
vkGetPhysicalDeviceProperties2(physicalDevice, &out_properties);
|
|
return out_properties;
|
|
}
|
|
|
|
pub inline fn GetPhysicalDeviceFormatProperties2(physicalDevice: PhysicalDevice, format: Format) FormatProperties2 {
|
|
var out_formatProperties: FormatProperties2 = undefined;
|
|
vkGetPhysicalDeviceFormatProperties2(physicalDevice, format, &out_formatProperties);
|
|
return out_formatProperties;
|
|
}
|
|
|
|
pub inline fn GetPhysicalDeviceImageFormatProperties2(physicalDevice: PhysicalDevice, imageFormatInfo: PhysicalDeviceImageFormatInfo2) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_FORMAT_NOT_SUPPORTED,VK_UNDOCUMENTED_ERROR}!ImageFormatProperties2 {
|
|
var out_imageFormatProperties: ImageFormatProperties2 = undefined;
|
|
const result = vkGetPhysicalDeviceImageFormatProperties2(physicalDevice, &imageFormatInfo, &out_imageFormatProperties);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_FORMAT_NOT_SUPPORTED => error.VK_FORMAT_NOT_SUPPORTED,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_imageFormatProperties;
|
|
}
|
|
|
|
pub inline fn GetPhysicalDeviceQueueFamilyProperties2(physicalDevice: PhysicalDevice, queueFamilyProperties: []QueueFamilyProperties2) []QueueFamilyProperties2 {
|
|
var out_queueFamilyProperties: []QueueFamilyProperties2 = undefined;
|
|
var queueFamilyPropertyCount: u32 = @intCast(u32, queueFamilyProperties.len);
|
|
vkGetPhysicalDeviceQueueFamilyProperties2(physicalDevice, &queueFamilyPropertyCount, queueFamilyProperties.ptr);
|
|
out_queueFamilyProperties = queueFamilyProperties[0..queueFamilyPropertyCount];
|
|
return out_queueFamilyProperties;
|
|
}
|
|
pub inline fn GetPhysicalDeviceQueueFamilyProperties2Count(physicalDevice: PhysicalDevice) u32 {
|
|
var out_queueFamilyPropertyCount: u32 = undefined;
|
|
vkGetPhysicalDeviceQueueFamilyProperties2(physicalDevice, &out_queueFamilyPropertyCount, null);
|
|
return out_queueFamilyPropertyCount;
|
|
}
|
|
|
|
pub inline fn GetPhysicalDeviceMemoryProperties2(physicalDevice: PhysicalDevice) PhysicalDeviceMemoryProperties2 {
|
|
var out_memoryProperties: PhysicalDeviceMemoryProperties2 = undefined;
|
|
vkGetPhysicalDeviceMemoryProperties2(physicalDevice, &out_memoryProperties);
|
|
return out_memoryProperties;
|
|
}
|
|
|
|
pub inline fn GetPhysicalDeviceSparseImageFormatProperties2(physicalDevice: PhysicalDevice, formatInfo: PhysicalDeviceSparseImageFormatInfo2, properties: []SparseImageFormatProperties2) []SparseImageFormatProperties2 {
|
|
var out_properties: []SparseImageFormatProperties2 = undefined;
|
|
var propertyCount: u32 = @intCast(u32, properties.len);
|
|
vkGetPhysicalDeviceSparseImageFormatProperties2(physicalDevice, &formatInfo, &propertyCount, properties.ptr);
|
|
out_properties = properties[0..propertyCount];
|
|
return out_properties;
|
|
}
|
|
pub inline fn GetPhysicalDeviceSparseImageFormatProperties2Count(physicalDevice: PhysicalDevice, formatInfo: PhysicalDeviceSparseImageFormatInfo2) u32 {
|
|
var out_propertyCount: u32 = undefined;
|
|
vkGetPhysicalDeviceSparseImageFormatProperties2(physicalDevice, &formatInfo, &out_propertyCount, null);
|
|
return out_propertyCount;
|
|
}
|
|
|
|
pub inline fn TrimCommandPool(device: Device, commandPool: CommandPool, flags: CommandPoolTrimFlags) void {
|
|
vkTrimCommandPool(device, commandPool, flags.toInt());
|
|
}
|
|
|
|
pub inline fn GetDeviceQueue2(device: Device, queueInfo: DeviceQueueInfo2) Queue {
|
|
var out_queue: Queue = undefined;
|
|
vkGetDeviceQueue2(device, &queueInfo, &out_queue);
|
|
return out_queue;
|
|
}
|
|
|
|
pub inline fn CreateSamplerYcbcrConversion(device: Device, createInfo: SamplerYcbcrConversionCreateInfo, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!SamplerYcbcrConversion {
|
|
var out_ycbcrConversion: SamplerYcbcrConversion = undefined;
|
|
const result = vkCreateSamplerYcbcrConversion(device, &createInfo, pAllocator, &out_ycbcrConversion);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_ycbcrConversion;
|
|
}
|
|
|
|
pub const DestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversion;
|
|
|
|
pub inline fn CreateDescriptorUpdateTemplate(device: Device, createInfo: DescriptorUpdateTemplateCreateInfo, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!DescriptorUpdateTemplate {
|
|
var out_descriptorUpdateTemplate: DescriptorUpdateTemplate = undefined;
|
|
const result = vkCreateDescriptorUpdateTemplate(device, &createInfo, pAllocator, &out_descriptorUpdateTemplate);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_descriptorUpdateTemplate;
|
|
}
|
|
|
|
pub const DestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplate;
|
|
pub const UpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplate;
|
|
|
|
pub inline fn GetPhysicalDeviceExternalBufferProperties(physicalDevice: PhysicalDevice, externalBufferInfo: PhysicalDeviceExternalBufferInfo) ExternalBufferProperties {
|
|
var out_externalBufferProperties: ExternalBufferProperties = undefined;
|
|
vkGetPhysicalDeviceExternalBufferProperties(physicalDevice, &externalBufferInfo, &out_externalBufferProperties);
|
|
return out_externalBufferProperties;
|
|
}
|
|
|
|
pub inline fn GetPhysicalDeviceExternalFenceProperties(physicalDevice: PhysicalDevice, externalFenceInfo: PhysicalDeviceExternalFenceInfo) ExternalFenceProperties {
|
|
var out_externalFenceProperties: ExternalFenceProperties = undefined;
|
|
vkGetPhysicalDeviceExternalFenceProperties(physicalDevice, &externalFenceInfo, &out_externalFenceProperties);
|
|
return out_externalFenceProperties;
|
|
}
|
|
|
|
pub inline fn GetPhysicalDeviceExternalSemaphoreProperties(physicalDevice: PhysicalDevice, externalSemaphoreInfo: PhysicalDeviceExternalSemaphoreInfo) ExternalSemaphoreProperties {
|
|
var out_externalSemaphoreProperties: ExternalSemaphoreProperties = undefined;
|
|
vkGetPhysicalDeviceExternalSemaphoreProperties(physicalDevice, &externalSemaphoreInfo, &out_externalSemaphoreProperties);
|
|
return out_externalSemaphoreProperties;
|
|
}
|
|
|
|
pub inline fn GetDescriptorSetLayoutSupport(device: Device, createInfo: DescriptorSetLayoutCreateInfo) DescriptorSetLayoutSupport {
|
|
var out_support: DescriptorSetLayoutSupport = undefined;
|
|
vkGetDescriptorSetLayoutSupport(device, &createInfo, &out_support);
|
|
return out_support;
|
|
}
|
|
|
|
|
|
pub const VERSION_1_2 = 1;
|
|
// Vulkan 1.2 version number
|
|
pub const API_VERSION_1_2 = MAKE_VERSION(1, 2, 0);// Patch version should always be set to 0
|
|
|
|
pub const DeviceAddress = u64;
|
|
|
|
pub const MAX_DRIVER_NAME_SIZE = 256;
|
|
pub const MAX_DRIVER_INFO_SIZE = 256;
|
|
|
|
pub const DriverId = enum(i32) {
|
|
AMD_PROPRIETARY = 1,
|
|
AMD_OPEN_SOURCE = 2,
|
|
MESA_RADV = 3,
|
|
NVIDIA_PROPRIETARY = 4,
|
|
INTEL_PROPRIETARY_WINDOWS = 5,
|
|
INTEL_OPEN_SOURCE_MESA = 6,
|
|
IMAGINATION_PROPRIETARY = 7,
|
|
QUALCOMM_PROPRIETARY = 8,
|
|
ARM_PROPRIETARY = 9,
|
|
GOOGLE_SWIFTSHADER = 10,
|
|
GGP_PROPRIETARY = 11,
|
|
BROADCOM_PROPRIETARY = 12,
|
|
_,
|
|
|
|
const Self = @This();
|
|
pub const AMD_PROPRIETARY_KHR = Self.AMD_PROPRIETARY;
|
|
pub const AMD_OPEN_SOURCE_KHR = Self.AMD_OPEN_SOURCE;
|
|
pub const MESA_RADV_KHR = Self.MESA_RADV;
|
|
pub const NVIDIA_PROPRIETARY_KHR = Self.NVIDIA_PROPRIETARY;
|
|
pub const INTEL_PROPRIETARY_WINDOWS_KHR = Self.INTEL_PROPRIETARY_WINDOWS;
|
|
pub const INTEL_OPEN_SOURCE_MESA_KHR = Self.INTEL_OPEN_SOURCE_MESA;
|
|
pub const IMAGINATION_PROPRIETARY_KHR = Self.IMAGINATION_PROPRIETARY;
|
|
pub const QUALCOMM_PROPRIETARY_KHR = Self.QUALCOMM_PROPRIETARY;
|
|
pub const ARM_PROPRIETARY_KHR = Self.ARM_PROPRIETARY;
|
|
pub const GOOGLE_SWIFTSHADER_KHR = Self.GOOGLE_SWIFTSHADER;
|
|
pub const GGP_PROPRIETARY_KHR = Self.GGP_PROPRIETARY;
|
|
pub const BROADCOM_PROPRIETARY_KHR = Self.BROADCOM_PROPRIETARY;
|
|
};
|
|
|
|
pub const ShaderFloatControlsIndependence = enum(i32) {
|
|
T_32_BIT_ONLY = 0,
|
|
ALL = 1,
|
|
NONE = 2,
|
|
_,
|
|
|
|
const Self = @This();
|
|
pub const T_32_BIT_ONLY_KHR = Self.T_32_BIT_ONLY;
|
|
pub const ALL_KHR = Self.ALL;
|
|
pub const NONE_KHR = Self.NONE;
|
|
};
|
|
|
|
pub const SamplerReductionMode = enum(i32) {
|
|
WEIGHTED_AVERAGE = 0,
|
|
MIN = 1,
|
|
MAX = 2,
|
|
_,
|
|
|
|
const Self = @This();
|
|
pub const WEIGHTED_AVERAGE_EXT = Self.WEIGHTED_AVERAGE;
|
|
pub const MIN_EXT = Self.MIN;
|
|
pub const MAX_EXT = Self.MAX;
|
|
};
|
|
|
|
pub const SemaphoreType = enum(i32) {
|
|
BINARY = 0,
|
|
TIMELINE = 1,
|
|
_,
|
|
|
|
const Self = @This();
|
|
pub const BINARY_KHR = Self.BINARY;
|
|
pub const TIMELINE_KHR = Self.TIMELINE;
|
|
};
|
|
|
|
pub const ResolveModeFlags = packed struct {
|
|
sampleZero: bool = false,
|
|
average: bool = false,
|
|
min: bool = false,
|
|
max: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
const Self = @This();
|
|
pub const none = Self.fromInt(0);
|
|
pub const noneKhr = Self{ .none = true };
|
|
pub const sampleZeroKHR = Self{ .sampleZero = true };
|
|
pub const averageKHR = Self{ .average = true };
|
|
pub const minKHR = Self{ .min = true };
|
|
pub const maxKHR = Self{ .max = true };
|
|
|
|
pub usingnamespace FlagsMixin(Self);
|
|
};
|
|
|
|
pub const DescriptorBindingFlags = packed struct {
|
|
updateAfterBind: bool = false,
|
|
updateUnusedWhilePending: bool = false,
|
|
partiallyBound: bool = false,
|
|
variableDescriptorCount: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
const Self = @This();
|
|
pub const updateAfterBindEXT = Self{ .updateAfterBind = true };
|
|
pub const updateUnusedWhilePendingEXT = Self{ .updateUnusedWhilePending = true };
|
|
pub const partiallyBoundEXT = Self{ .partiallyBound = true };
|
|
pub const variableDescriptorCountEXT = Self{ .variableDescriptorCount = true };
|
|
|
|
pub usingnamespace FlagsMixin(Self);
|
|
};
|
|
|
|
pub const SemaphoreWaitFlags = packed struct {
|
|
any: bool = false,
|
|
__reserved_bit_01: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
const Self = @This();
|
|
pub const anyKHR = Self{ .any = true };
|
|
|
|
pub usingnamespace FlagsMixin(Self);
|
|
};
|
|
|
|
pub const PhysicalDeviceVulkan11Features = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_VULKAN_1_1_FEATURES,
|
|
pNext: ?*anyopaque = null,
|
|
storageBuffer16BitAccess: Bool32,
|
|
uniformAndStorageBuffer16BitAccess: Bool32,
|
|
storagePushConstant16: Bool32,
|
|
storageInputOutput16: Bool32,
|
|
multiview: Bool32,
|
|
multiviewGeometryShader: Bool32,
|
|
multiviewTessellationShader: Bool32,
|
|
variablePointersStorageBuffer: Bool32,
|
|
variablePointers: Bool32,
|
|
protectedMemory: Bool32,
|
|
samplerYcbcrConversion: Bool32,
|
|
shaderDrawParameters: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDeviceVulkan11Properties = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES,
|
|
pNext: ?*anyopaque = null,
|
|
deviceUUID: [UUID_SIZE]u8,
|
|
driverUUID: [UUID_SIZE]u8,
|
|
deviceLUID: [LUID_SIZE]u8,
|
|
deviceNodeMask: u32,
|
|
deviceLUIDValid: Bool32,
|
|
subgroupSize: u32,
|
|
subgroupSupportedStages: ShaderStageFlags align(4),
|
|
subgroupSupportedOperations: SubgroupFeatureFlags align(4),
|
|
subgroupQuadOperationsInAllStages: Bool32,
|
|
pointClippingBehavior: PointClippingBehavior,
|
|
maxMultiviewViewCount: u32,
|
|
maxMultiviewInstanceIndex: u32,
|
|
protectedNoFault: Bool32,
|
|
maxPerSetDescriptors: u32,
|
|
maxMemoryAllocationSize: DeviceSize,
|
|
};
|
|
|
|
pub const PhysicalDeviceVulkan12Features = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_VULKAN_1_2_FEATURES,
|
|
pNext: ?*anyopaque = null,
|
|
samplerMirrorClampToEdge: Bool32,
|
|
drawIndirectCount: Bool32,
|
|
storageBuffer8BitAccess: Bool32,
|
|
uniformAndStorageBuffer8BitAccess: Bool32,
|
|
storagePushConstant8: Bool32,
|
|
shaderBufferInt64Atomics: Bool32,
|
|
shaderSharedInt64Atomics: Bool32,
|
|
shaderFloat16: Bool32,
|
|
shaderInt8: Bool32,
|
|
descriptorIndexing: Bool32,
|
|
shaderInputAttachmentArrayDynamicIndexing: Bool32,
|
|
shaderUniformTexelBufferArrayDynamicIndexing: Bool32,
|
|
shaderStorageTexelBufferArrayDynamicIndexing: Bool32,
|
|
shaderUniformBufferArrayNonUniformIndexing: Bool32,
|
|
shaderSampledImageArrayNonUniformIndexing: Bool32,
|
|
shaderStorageBufferArrayNonUniformIndexing: Bool32,
|
|
shaderStorageImageArrayNonUniformIndexing: Bool32,
|
|
shaderInputAttachmentArrayNonUniformIndexing: Bool32,
|
|
shaderUniformTexelBufferArrayNonUniformIndexing: Bool32,
|
|
shaderStorageTexelBufferArrayNonUniformIndexing: Bool32,
|
|
descriptorBindingUniformBufferUpdateAfterBind: Bool32,
|
|
descriptorBindingSampledImageUpdateAfterBind: Bool32,
|
|
descriptorBindingStorageImageUpdateAfterBind: Bool32,
|
|
descriptorBindingStorageBufferUpdateAfterBind: Bool32,
|
|
descriptorBindingUniformTexelBufferUpdateAfterBind: Bool32,
|
|
descriptorBindingStorageTexelBufferUpdateAfterBind: Bool32,
|
|
descriptorBindingUpdateUnusedWhilePending: Bool32,
|
|
descriptorBindingPartiallyBound: Bool32,
|
|
descriptorBindingVariableDescriptorCount: Bool32,
|
|
runtimeDescriptorArray: Bool32,
|
|
samplerFilterMinmax: Bool32,
|
|
scalarBlockLayout: Bool32,
|
|
imagelessFramebuffer: Bool32,
|
|
uniformBufferStandardLayout: Bool32,
|
|
shaderSubgroupExtendedTypes: Bool32,
|
|
separateDepthStencilLayouts: Bool32,
|
|
hostQueryReset: Bool32,
|
|
timelineSemaphore: Bool32,
|
|
bufferDeviceAddress: Bool32,
|
|
bufferDeviceAddressCaptureReplay: Bool32,
|
|
bufferDeviceAddressMultiDevice: Bool32,
|
|
vulkanMemoryModel: Bool32,
|
|
vulkanMemoryModelDeviceScope: Bool32,
|
|
vulkanMemoryModelAvailabilityVisibilityChains: Bool32,
|
|
shaderOutputViewportIndex: Bool32,
|
|
shaderOutputLayer: Bool32,
|
|
subgroupBroadcastDynamicId: Bool32,
|
|
};
|
|
|
|
pub const ConformanceVersion = extern struct {
|
|
major: u8,
|
|
minor: u8,
|
|
subminor: u8,
|
|
patch: u8,
|
|
};
|
|
|
|
pub const PhysicalDeviceVulkan12Properties = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES,
|
|
pNext: ?*anyopaque = null,
|
|
driverID: DriverId,
|
|
driverName: [MAX_DRIVER_NAME_SIZE-1:0]u8,
|
|
driverInfo: [MAX_DRIVER_INFO_SIZE-1:0]u8,
|
|
conformanceVersion: ConformanceVersion,
|
|
denormBehaviorIndependence: ShaderFloatControlsIndependence,
|
|
roundingModeIndependence: ShaderFloatControlsIndependence,
|
|
shaderSignedZeroInfNanPreserveFloat16: Bool32,
|
|
shaderSignedZeroInfNanPreserveFloat32: Bool32,
|
|
shaderSignedZeroInfNanPreserveFloat64: Bool32,
|
|
shaderDenormPreserveFloat16: Bool32,
|
|
shaderDenormPreserveFloat32: Bool32,
|
|
shaderDenormPreserveFloat64: Bool32,
|
|
shaderDenormFlushToZeroFloat16: Bool32,
|
|
shaderDenormFlushToZeroFloat32: Bool32,
|
|
shaderDenormFlushToZeroFloat64: Bool32,
|
|
shaderRoundingModeRTEFloat16: Bool32,
|
|
shaderRoundingModeRTEFloat32: Bool32,
|
|
shaderRoundingModeRTEFloat64: Bool32,
|
|
shaderRoundingModeRTZFloat16: Bool32,
|
|
shaderRoundingModeRTZFloat32: Bool32,
|
|
shaderRoundingModeRTZFloat64: Bool32,
|
|
maxUpdateAfterBindDescriptorsInAllPools: u32,
|
|
shaderUniformBufferArrayNonUniformIndexingNative: Bool32,
|
|
shaderSampledImageArrayNonUniformIndexingNative: Bool32,
|
|
shaderStorageBufferArrayNonUniformIndexingNative: Bool32,
|
|
shaderStorageImageArrayNonUniformIndexingNative: Bool32,
|
|
shaderInputAttachmentArrayNonUniformIndexingNative: Bool32,
|
|
robustBufferAccessUpdateAfterBind: Bool32,
|
|
quadDivergentImplicitLod: Bool32,
|
|
maxPerStageDescriptorUpdateAfterBindSamplers: u32,
|
|
maxPerStageDescriptorUpdateAfterBindUniformBuffers: u32,
|
|
maxPerStageDescriptorUpdateAfterBindStorageBuffers: u32,
|
|
maxPerStageDescriptorUpdateAfterBindSampledImages: u32,
|
|
maxPerStageDescriptorUpdateAfterBindStorageImages: u32,
|
|
maxPerStageDescriptorUpdateAfterBindInputAttachments: u32,
|
|
maxPerStageUpdateAfterBindResources: u32,
|
|
maxDescriptorSetUpdateAfterBindSamplers: u32,
|
|
maxDescriptorSetUpdateAfterBindUniformBuffers: u32,
|
|
maxDescriptorSetUpdateAfterBindUniformBuffersDynamic: u32,
|
|
maxDescriptorSetUpdateAfterBindStorageBuffers: u32,
|
|
maxDescriptorSetUpdateAfterBindStorageBuffersDynamic: u32,
|
|
maxDescriptorSetUpdateAfterBindSampledImages: u32,
|
|
maxDescriptorSetUpdateAfterBindStorageImages: u32,
|
|
maxDescriptorSetUpdateAfterBindInputAttachments: u32,
|
|
supportedDepthResolveModes: ResolveModeFlags align(4),
|
|
supportedStencilResolveModes: ResolveModeFlags align(4),
|
|
independentResolveNone: Bool32,
|
|
independentResolve: Bool32,
|
|
filterMinmaxSingleComponentFormats: Bool32,
|
|
filterMinmaxImageComponentMapping: Bool32,
|
|
maxTimelineSemaphoreValueDifference: u64,
|
|
framebufferIntegerColorSampleCounts: SampleCountFlags align(4) = SampleCountFlags{},
|
|
};
|
|
|
|
pub const ImageFormatListCreateInfo = extern struct {
|
|
sType: StructureType = .IMAGE_FORMAT_LIST_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
viewFormatCount: u32 = 0,
|
|
pViewFormats: [*]const Format = undefined,
|
|
};
|
|
|
|
pub const AttachmentDescription2 = extern struct {
|
|
sType: StructureType = .ATTACHMENT_DESCRIPTION_2,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: AttachmentDescriptionFlags align(4) = AttachmentDescriptionFlags{},
|
|
format: Format,
|
|
samples: SampleCountFlags align(4),
|
|
loadOp: AttachmentLoadOp,
|
|
storeOp: AttachmentStoreOp,
|
|
stencilLoadOp: AttachmentLoadOp,
|
|
stencilStoreOp: AttachmentStoreOp,
|
|
initialLayout: ImageLayout,
|
|
finalLayout: ImageLayout,
|
|
};
|
|
|
|
pub const AttachmentReference2 = extern struct {
|
|
sType: StructureType = .ATTACHMENT_REFERENCE_2,
|
|
pNext: ?*const anyopaque = null,
|
|
attachment: u32,
|
|
layout: ImageLayout,
|
|
aspectMask: ImageAspectFlags align(4),
|
|
};
|
|
|
|
pub const SubpassDescription2 = extern struct {
|
|
sType: StructureType = .SUBPASS_DESCRIPTION_2,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: SubpassDescriptionFlags align(4) = SubpassDescriptionFlags{},
|
|
pipelineBindPoint: PipelineBindPoint,
|
|
viewMask: u32,
|
|
inputAttachmentCount: u32 = 0,
|
|
pInputAttachments: [*]const AttachmentReference2 = undefined,
|
|
colorAttachmentCount: u32 = 0,
|
|
pColorAttachments: [*]const AttachmentReference2 = undefined,
|
|
pResolveAttachments: ?[*]const AttachmentReference2 = null,
|
|
pDepthStencilAttachment: ?*const AttachmentReference2 = null,
|
|
preserveAttachmentCount: u32 = 0,
|
|
pPreserveAttachments: [*]const u32 = undefined,
|
|
};
|
|
|
|
pub const SubpassDependency2 = extern struct {
|
|
sType: StructureType = .SUBPASS_DEPENDENCY_2,
|
|
pNext: ?*const anyopaque = null,
|
|
srcSubpass: u32,
|
|
dstSubpass: u32,
|
|
srcStageMask: PipelineStageFlags align(4),
|
|
dstStageMask: PipelineStageFlags align(4),
|
|
srcAccessMask: AccessFlags align(4) = AccessFlags{},
|
|
dstAccessMask: AccessFlags align(4) = AccessFlags{},
|
|
dependencyFlags: DependencyFlags align(4) = DependencyFlags{},
|
|
viewOffset: i32 = 0,
|
|
};
|
|
|
|
pub const RenderPassCreateInfo2 = extern struct {
|
|
sType: StructureType = .RENDER_PASS_CREATE_INFO_2,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: RenderPassCreateFlags align(4) = RenderPassCreateFlags{},
|
|
attachmentCount: u32 = 0,
|
|
pAttachments: [*]const AttachmentDescription2 = undefined,
|
|
subpassCount: u32,
|
|
pSubpasses: [*]const SubpassDescription2,
|
|
dependencyCount: u32 = 0,
|
|
pDependencies: [*]const SubpassDependency2 = undefined,
|
|
correlatedViewMaskCount: u32 = 0,
|
|
pCorrelatedViewMasks: [*]const u32 = undefined,
|
|
};
|
|
|
|
pub const SubpassBeginInfo = extern struct {
|
|
sType: StructureType = .SUBPASS_BEGIN_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
contents: SubpassContents,
|
|
};
|
|
|
|
pub const SubpassEndInfo = extern struct {
|
|
sType: StructureType = .SUBPASS_END_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
};
|
|
|
|
pub const PhysicalDevice8BitStorageFeatures = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
|
|
pNext: ?*anyopaque = null,
|
|
storageBuffer8BitAccess: Bool32,
|
|
uniformAndStorageBuffer8BitAccess: Bool32,
|
|
storagePushConstant8: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDeviceDriverProperties = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_DRIVER_PROPERTIES,
|
|
pNext: ?*anyopaque = null,
|
|
driverID: DriverId,
|
|
driverName: [MAX_DRIVER_NAME_SIZE-1:0]u8,
|
|
driverInfo: [MAX_DRIVER_INFO_SIZE-1:0]u8,
|
|
conformanceVersion: ConformanceVersion,
|
|
};
|
|
|
|
pub const PhysicalDeviceShaderAtomicInt64Features = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
|
|
pNext: ?*anyopaque = null,
|
|
shaderBufferInt64Atomics: Bool32,
|
|
shaderSharedInt64Atomics: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDeviceShaderFloat16Int8Features = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
|
|
pNext: ?*anyopaque = null,
|
|
shaderFloat16: Bool32,
|
|
shaderInt8: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDeviceFloatControlsProperties = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
|
|
pNext: ?*anyopaque = null,
|
|
denormBehaviorIndependence: ShaderFloatControlsIndependence,
|
|
roundingModeIndependence: ShaderFloatControlsIndependence,
|
|
shaderSignedZeroInfNanPreserveFloat16: Bool32,
|
|
shaderSignedZeroInfNanPreserveFloat32: Bool32,
|
|
shaderSignedZeroInfNanPreserveFloat64: Bool32,
|
|
shaderDenormPreserveFloat16: Bool32,
|
|
shaderDenormPreserveFloat32: Bool32,
|
|
shaderDenormPreserveFloat64: Bool32,
|
|
shaderDenormFlushToZeroFloat16: Bool32,
|
|
shaderDenormFlushToZeroFloat32: Bool32,
|
|
shaderDenormFlushToZeroFloat64: Bool32,
|
|
shaderRoundingModeRTEFloat16: Bool32,
|
|
shaderRoundingModeRTEFloat32: Bool32,
|
|
shaderRoundingModeRTEFloat64: Bool32,
|
|
shaderRoundingModeRTZFloat16: Bool32,
|
|
shaderRoundingModeRTZFloat32: Bool32,
|
|
shaderRoundingModeRTZFloat64: Bool32,
|
|
};
|
|
|
|
pub const DescriptorSetLayoutBindingFlagsCreateInfo = extern struct {
|
|
sType: StructureType = .DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
bindingCount: u32 = 0,
|
|
pBindingFlags: ?[*]align(4) const DescriptorBindingFlags = null,
|
|
};
|
|
|
|
pub const PhysicalDeviceDescriptorIndexingFeatures = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
|
|
pNext: ?*anyopaque = null,
|
|
shaderInputAttachmentArrayDynamicIndexing: Bool32,
|
|
shaderUniformTexelBufferArrayDynamicIndexing: Bool32,
|
|
shaderStorageTexelBufferArrayDynamicIndexing: Bool32,
|
|
shaderUniformBufferArrayNonUniformIndexing: Bool32,
|
|
shaderSampledImageArrayNonUniformIndexing: Bool32,
|
|
shaderStorageBufferArrayNonUniformIndexing: Bool32,
|
|
shaderStorageImageArrayNonUniformIndexing: Bool32,
|
|
shaderInputAttachmentArrayNonUniformIndexing: Bool32,
|
|
shaderUniformTexelBufferArrayNonUniformIndexing: Bool32,
|
|
shaderStorageTexelBufferArrayNonUniformIndexing: Bool32,
|
|
descriptorBindingUniformBufferUpdateAfterBind: Bool32,
|
|
descriptorBindingSampledImageUpdateAfterBind: Bool32,
|
|
descriptorBindingStorageImageUpdateAfterBind: Bool32,
|
|
descriptorBindingStorageBufferUpdateAfterBind: Bool32,
|
|
descriptorBindingUniformTexelBufferUpdateAfterBind: Bool32,
|
|
descriptorBindingStorageTexelBufferUpdateAfterBind: Bool32,
|
|
descriptorBindingUpdateUnusedWhilePending: Bool32,
|
|
descriptorBindingPartiallyBound: Bool32,
|
|
descriptorBindingVariableDescriptorCount: Bool32,
|
|
runtimeDescriptorArray: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDeviceDescriptorIndexingProperties = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
|
|
pNext: ?*anyopaque = null,
|
|
maxUpdateAfterBindDescriptorsInAllPools: u32,
|
|
shaderUniformBufferArrayNonUniformIndexingNative: Bool32,
|
|
shaderSampledImageArrayNonUniformIndexingNative: Bool32,
|
|
shaderStorageBufferArrayNonUniformIndexingNative: Bool32,
|
|
shaderStorageImageArrayNonUniformIndexingNative: Bool32,
|
|
shaderInputAttachmentArrayNonUniformIndexingNative: Bool32,
|
|
robustBufferAccessUpdateAfterBind: Bool32,
|
|
quadDivergentImplicitLod: Bool32,
|
|
maxPerStageDescriptorUpdateAfterBindSamplers: u32,
|
|
maxPerStageDescriptorUpdateAfterBindUniformBuffers: u32,
|
|
maxPerStageDescriptorUpdateAfterBindStorageBuffers: u32,
|
|
maxPerStageDescriptorUpdateAfterBindSampledImages: u32,
|
|
maxPerStageDescriptorUpdateAfterBindStorageImages: u32,
|
|
maxPerStageDescriptorUpdateAfterBindInputAttachments: u32,
|
|
maxPerStageUpdateAfterBindResources: u32,
|
|
maxDescriptorSetUpdateAfterBindSamplers: u32,
|
|
maxDescriptorSetUpdateAfterBindUniformBuffers: u32,
|
|
maxDescriptorSetUpdateAfterBindUniformBuffersDynamic: u32,
|
|
maxDescriptorSetUpdateAfterBindStorageBuffers: u32,
|
|
maxDescriptorSetUpdateAfterBindStorageBuffersDynamic: u32,
|
|
maxDescriptorSetUpdateAfterBindSampledImages: u32,
|
|
maxDescriptorSetUpdateAfterBindStorageImages: u32,
|
|
maxDescriptorSetUpdateAfterBindInputAttachments: u32,
|
|
};
|
|
|
|
pub const DescriptorSetVariableDescriptorCountAllocateInfo = extern struct {
|
|
sType: StructureType = .DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
descriptorSetCount: u32 = 0,
|
|
pDescriptorCounts: [*]const u32 = undefined,
|
|
};
|
|
|
|
pub const DescriptorSetVariableDescriptorCountLayoutSupport = extern struct {
|
|
sType: StructureType = .DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
|
|
pNext: ?*anyopaque = null,
|
|
maxVariableDescriptorCount: u32,
|
|
};
|
|
|
|
pub const SubpassDescriptionDepthStencilResolve = extern struct {
|
|
sType: StructureType = .SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
|
|
pNext: ?*const anyopaque = null,
|
|
depthResolveMode: ResolveModeFlags align(4),
|
|
stencilResolveMode: ResolveModeFlags align(4),
|
|
pDepthStencilResolveAttachment: ?*const AttachmentReference2 = null,
|
|
};
|
|
|
|
pub const PhysicalDeviceDepthStencilResolveProperties = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
|
|
pNext: ?*anyopaque = null,
|
|
supportedDepthResolveModes: ResolveModeFlags align(4),
|
|
supportedStencilResolveModes: ResolveModeFlags align(4),
|
|
independentResolveNone: Bool32,
|
|
independentResolve: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDeviceScalarBlockLayoutFeatures = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
|
|
pNext: ?*anyopaque = null,
|
|
scalarBlockLayout: Bool32,
|
|
};
|
|
|
|
pub const ImageStencilUsageCreateInfo = extern struct {
|
|
sType: StructureType = .IMAGE_STENCIL_USAGE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
stencilUsage: ImageUsageFlags align(4),
|
|
};
|
|
|
|
pub const SamplerReductionModeCreateInfo = extern struct {
|
|
sType: StructureType = .SAMPLER_REDUCTION_MODE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
reductionMode: SamplerReductionMode,
|
|
};
|
|
|
|
pub const PhysicalDeviceSamplerFilterMinmaxProperties = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
|
|
pNext: ?*anyopaque = null,
|
|
filterMinmaxSingleComponentFormats: Bool32,
|
|
filterMinmaxImageComponentMapping: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDeviceVulkanMemoryModelFeatures = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
|
|
pNext: ?*anyopaque = null,
|
|
vulkanMemoryModel: Bool32,
|
|
vulkanMemoryModelDeviceScope: Bool32,
|
|
vulkanMemoryModelAvailabilityVisibilityChains: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDeviceImagelessFramebufferFeatures = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
|
|
pNext: ?*anyopaque = null,
|
|
imagelessFramebuffer: Bool32,
|
|
};
|
|
|
|
pub const FramebufferAttachmentImageInfo = extern struct {
|
|
sType: StructureType = .FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: ImageCreateFlags align(4) = ImageCreateFlags{},
|
|
usage: ImageUsageFlags align(4),
|
|
width: u32,
|
|
height: u32,
|
|
layerCount: u32,
|
|
viewFormatCount: u32 = 0,
|
|
pViewFormats: [*]const Format = undefined,
|
|
};
|
|
|
|
pub const FramebufferAttachmentsCreateInfo = extern struct {
|
|
sType: StructureType = .FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
attachmentImageInfoCount: u32 = 0,
|
|
pAttachmentImageInfos: [*]const FramebufferAttachmentImageInfo = undefined,
|
|
};
|
|
|
|
pub const RenderPassAttachmentBeginInfo = extern struct {
|
|
sType: StructureType = .RENDER_PASS_ATTACHMENT_BEGIN_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
attachmentCount: u32 = 0,
|
|
pAttachments: [*]const ImageView = undefined,
|
|
};
|
|
|
|
pub const PhysicalDeviceUniformBufferStandardLayoutFeatures = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
|
|
pNext: ?*anyopaque = null,
|
|
uniformBufferStandardLayout: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDeviceShaderSubgroupExtendedTypesFeatures = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
|
|
pNext: ?*anyopaque = null,
|
|
shaderSubgroupExtendedTypes: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDeviceSeparateDepthStencilLayoutsFeatures = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
|
|
pNext: ?*anyopaque = null,
|
|
separateDepthStencilLayouts: Bool32,
|
|
};
|
|
|
|
pub const AttachmentReferenceStencilLayout = extern struct {
|
|
sType: StructureType = .ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
|
|
pNext: ?*anyopaque = null,
|
|
stencilLayout: ImageLayout,
|
|
};
|
|
|
|
pub const AttachmentDescriptionStencilLayout = extern struct {
|
|
sType: StructureType = .ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
|
|
pNext: ?*anyopaque = null,
|
|
stencilInitialLayout: ImageLayout,
|
|
stencilFinalLayout: ImageLayout,
|
|
};
|
|
|
|
pub const PhysicalDeviceHostQueryResetFeatures = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
|
|
pNext: ?*anyopaque = null,
|
|
hostQueryReset: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDeviceTimelineSemaphoreFeatures = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
|
|
pNext: ?*anyopaque = null,
|
|
timelineSemaphore: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDeviceTimelineSemaphoreProperties = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
|
|
pNext: ?*anyopaque = null,
|
|
maxTimelineSemaphoreValueDifference: u64,
|
|
};
|
|
|
|
pub const SemaphoreTypeCreateInfo = extern struct {
|
|
sType: StructureType = .SEMAPHORE_TYPE_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
semaphoreType: SemaphoreType,
|
|
initialValue: u64,
|
|
};
|
|
|
|
pub const TimelineSemaphoreSubmitInfo = extern struct {
|
|
sType: StructureType = .TIMELINE_SEMAPHORE_SUBMIT_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
waitSemaphoreValueCount: u32 = 0,
|
|
pWaitSemaphoreValues: ?[*]const u64 = null,
|
|
signalSemaphoreValueCount: u32 = 0,
|
|
pSignalSemaphoreValues: ?[*]const u64 = null,
|
|
};
|
|
|
|
pub const SemaphoreWaitInfo = extern struct {
|
|
sType: StructureType = .SEMAPHORE_WAIT_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: SemaphoreWaitFlags align(4) = SemaphoreWaitFlags{},
|
|
semaphoreCount: u32,
|
|
pSemaphores: [*]const Semaphore,
|
|
pValues: [*]const u64,
|
|
};
|
|
|
|
pub const SemaphoreSignalInfo = extern struct {
|
|
sType: StructureType = .SEMAPHORE_SIGNAL_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
semaphore: Semaphore,
|
|
value: u64,
|
|
};
|
|
|
|
pub const PhysicalDeviceBufferDeviceAddressFeatures = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
|
|
pNext: ?*anyopaque = null,
|
|
bufferDeviceAddress: Bool32,
|
|
bufferDeviceAddressCaptureReplay: Bool32,
|
|
bufferDeviceAddressMultiDevice: Bool32,
|
|
};
|
|
|
|
pub const BufferDeviceAddressInfo = extern struct {
|
|
sType: StructureType = .BUFFER_DEVICE_ADDRESS_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
buffer: Buffer,
|
|
};
|
|
|
|
pub const BufferOpaqueCaptureAddressCreateInfo = extern struct {
|
|
sType: StructureType = .BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
opaqueCaptureAddress: u64,
|
|
};
|
|
|
|
pub const MemoryOpaqueCaptureAddressAllocateInfo = extern struct {
|
|
sType: StructureType = .MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
opaqueCaptureAddress: u64,
|
|
};
|
|
|
|
pub const DeviceMemoryOpaqueCaptureAddressInfo = extern struct {
|
|
sType: StructureType = .DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
|
|
pNext: ?*const anyopaque = null,
|
|
memory: DeviceMemory,
|
|
};
|
|
|
|
pub extern fn vkCmdDrawIndirectCount(
|
|
commandBuffer: CommandBuffer,
|
|
buffer: Buffer,
|
|
offset: DeviceSize,
|
|
countBuffer: Buffer,
|
|
countBufferOffset: DeviceSize,
|
|
maxDrawCount: u32,
|
|
stride: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdDrawIndexedIndirectCount(
|
|
commandBuffer: CommandBuffer,
|
|
buffer: Buffer,
|
|
offset: DeviceSize,
|
|
countBuffer: Buffer,
|
|
countBufferOffset: DeviceSize,
|
|
maxDrawCount: u32,
|
|
stride: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCreateRenderPass2(
|
|
device: Device,
|
|
pCreateInfo: *const RenderPassCreateInfo2,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pRenderPass: *RenderPass,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkCmdBeginRenderPass2(
|
|
commandBuffer: CommandBuffer,
|
|
pRenderPassBegin: *const RenderPassBeginInfo,
|
|
pSubpassBeginInfo: *const SubpassBeginInfo,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdNextSubpass2(
|
|
commandBuffer: CommandBuffer,
|
|
pSubpassBeginInfo: *const SubpassBeginInfo,
|
|
pSubpassEndInfo: *const SubpassEndInfo,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdEndRenderPass2(
|
|
commandBuffer: CommandBuffer,
|
|
pSubpassEndInfo: *const SubpassEndInfo,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkResetQueryPool(
|
|
device: Device,
|
|
queryPool: QueryPool,
|
|
firstQuery: u32,
|
|
queryCount: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetSemaphoreCounterValue(
|
|
device: Device,
|
|
semaphore: Semaphore,
|
|
pValue: *u64,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkWaitSemaphores(
|
|
device: Device,
|
|
pWaitInfo: *const SemaphoreWaitInfo,
|
|
timeout: u64,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkSignalSemaphore(
|
|
device: Device,
|
|
pSignalInfo: *const SemaphoreSignalInfo,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetBufferDeviceAddress(
|
|
device: Device,
|
|
pInfo: *const BufferDeviceAddressInfo,
|
|
) callconv(CallConv) DeviceAddress;
|
|
|
|
pub extern fn vkGetBufferOpaqueCaptureAddress(
|
|
device: Device,
|
|
pInfo: *const BufferDeviceAddressInfo,
|
|
) callconv(CallConv) u64;
|
|
|
|
pub extern fn vkGetDeviceMemoryOpaqueCaptureAddress(
|
|
device: Device,
|
|
pInfo: *const DeviceMemoryOpaqueCaptureAddressInfo,
|
|
) callconv(CallConv) u64;
|
|
|
|
pub const CmdDrawIndirectCount = vkCmdDrawIndirectCount;
|
|
pub const CmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCount;
|
|
|
|
pub inline fn CreateRenderPass2(device: Device, createInfo: RenderPassCreateInfo2, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!RenderPass {
|
|
var out_renderPass: RenderPass = undefined;
|
|
const result = vkCreateRenderPass2(device, &createInfo, pAllocator, &out_renderPass);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_renderPass;
|
|
}
|
|
|
|
pub inline fn CmdBeginRenderPass2(commandBuffer: CommandBuffer, renderPassBegin: RenderPassBeginInfo, subpassBeginInfo: SubpassBeginInfo) void {
|
|
vkCmdBeginRenderPass2(commandBuffer, &renderPassBegin, &subpassBeginInfo);
|
|
}
|
|
|
|
pub inline fn CmdNextSubpass2(commandBuffer: CommandBuffer, subpassBeginInfo: SubpassBeginInfo, subpassEndInfo: SubpassEndInfo) void {
|
|
vkCmdNextSubpass2(commandBuffer, &subpassBeginInfo, &subpassEndInfo);
|
|
}
|
|
|
|
pub inline fn CmdEndRenderPass2(commandBuffer: CommandBuffer, subpassEndInfo: SubpassEndInfo) void {
|
|
vkCmdEndRenderPass2(commandBuffer, &subpassEndInfo);
|
|
}
|
|
|
|
pub const ResetQueryPool = vkResetQueryPool;
|
|
|
|
pub inline fn GetSemaphoreCounterValue(device: Device, semaphore: Semaphore) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_DEVICE_LOST,VK_UNDOCUMENTED_ERROR}!u64 {
|
|
var out_value: u64 = undefined;
|
|
const result = vkGetSemaphoreCounterValue(device, semaphore, &out_value);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_DEVICE_LOST => error.VK_DEVICE_LOST,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_value;
|
|
}
|
|
|
|
pub inline fn WaitSemaphores(device: Device, waitInfo: SemaphoreWaitInfo, timeout: u64) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_DEVICE_LOST,VK_UNDOCUMENTED_ERROR}!Result {
|
|
const result = vkWaitSemaphores(device, &waitInfo, timeout);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_DEVICE_LOST => error.VK_DEVICE_LOST,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return result;
|
|
}
|
|
|
|
pub inline fn SignalSemaphore(device: Device, signalInfo: SemaphoreSignalInfo) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkSignalSemaphore(device, &signalInfo);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn GetBufferDeviceAddress(device: Device, info: BufferDeviceAddressInfo) DeviceAddress {
|
|
const result = vkGetBufferDeviceAddress(device, &info);
|
|
return result;
|
|
}
|
|
|
|
pub inline fn GetBufferOpaqueCaptureAddress(device: Device, info: BufferDeviceAddressInfo) u64 {
|
|
const result = vkGetBufferOpaqueCaptureAddress(device, &info);
|
|
return result;
|
|
}
|
|
|
|
pub inline fn GetDeviceMemoryOpaqueCaptureAddress(device: Device, info: DeviceMemoryOpaqueCaptureAddressInfo) u64 {
|
|
const result = vkGetDeviceMemoryOpaqueCaptureAddress(device, &info);
|
|
return result;
|
|
}
|
|
|
|
|
|
pub const KHR_surface = 1;
|
|
pub const SurfaceKHR = enum(u64) { Null = 0, _ };
|
|
|
|
pub const KHR_SURFACE_SPEC_VERSION = 25;
|
|
pub const KHR_SURFACE_EXTENSION_NAME = "VK_KHR_surface";
|
|
|
|
pub const ColorSpaceKHR = enum(i32) {
|
|
SRGB_NONLINEAR = 0,
|
|
DISPLAY_P3_NONLINEAR_EXT = 1000104001,
|
|
EXTENDED_SRGB_LINEAR_EXT = 1000104002,
|
|
DISPLAY_P3_LINEAR_EXT = 1000104003,
|
|
DCI_P3_NONLINEAR_EXT = 1000104004,
|
|
BT709_LINEAR_EXT = 1000104005,
|
|
BT709_NONLINEAR_EXT = 1000104006,
|
|
BT2020_LINEAR_EXT = 1000104007,
|
|
HDR10_ST2084_EXT = 1000104008,
|
|
DOLBYVISION_EXT = 1000104009,
|
|
HDR10_HLG_EXT = 1000104010,
|
|
ADOBERGB_LINEAR_EXT = 1000104011,
|
|
ADOBERGB_NONLINEAR_EXT = 1000104012,
|
|
PASS_THROUGH_EXT = 1000104013,
|
|
EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
|
|
DISPLAY_NATIVE_AMD = 1000213000,
|
|
_,
|
|
|
|
const Self = @This();
|
|
pub const COLORSPACE_SRGB_NONLINEAR = Self.SRGB_NONLINEAR;
|
|
pub const DCI_P3_LINEAR_EXT = Self.DISPLAY_P3_LINEAR_EXT;
|
|
};
|
|
|
|
pub const PresentModeKHR = enum(i32) {
|
|
IMMEDIATE = 0,
|
|
MAILBOX = 1,
|
|
FIFO = 2,
|
|
FIFO_RELAXED = 3,
|
|
SHARED_DEMAND_REFRESH = 1000111000,
|
|
SHARED_CONTINUOUS_REFRESH = 1000111001,
|
|
_,
|
|
};
|
|
|
|
pub const SurfaceTransformFlagsKHR = packed struct {
|
|
identity: bool = false,
|
|
rotate90: bool = false,
|
|
rotate180: bool = false,
|
|
rotate270: bool = false,
|
|
horizontalMirror: bool = false,
|
|
horizontalMirrorRotate90: bool = false,
|
|
horizontalMirrorRotate180: bool = false,
|
|
horizontalMirrorRotate270: bool = false,
|
|
inherit: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const CompositeAlphaFlagsKHR = packed struct {
|
|
@"opaque": bool = false,
|
|
preMultiplied: bool = false,
|
|
postMultiplied: bool = false,
|
|
inherit: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const SurfaceCapabilitiesKHR = extern struct {
|
|
minImageCount: u32,
|
|
maxImageCount: u32,
|
|
currentExtent: Extent2D,
|
|
minImageExtent: Extent2D,
|
|
maxImageExtent: Extent2D,
|
|
maxImageArrayLayers: u32,
|
|
supportedTransforms: SurfaceTransformFlagsKHR align(4) = SurfaceTransformFlagsKHR{},
|
|
currentTransform: SurfaceTransformFlagsKHR align(4),
|
|
supportedCompositeAlpha: CompositeAlphaFlagsKHR align(4) = CompositeAlphaFlagsKHR{},
|
|
supportedUsageFlags: ImageUsageFlags align(4) = ImageUsageFlags{},
|
|
};
|
|
|
|
pub const SurfaceFormatKHR = extern struct {
|
|
format: Format,
|
|
colorSpace: ColorSpaceKHR,
|
|
};
|
|
|
|
pub extern fn vkDestroySurfaceKHR(
|
|
instance: Instance,
|
|
surface: SurfaceKHR,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetPhysicalDeviceSurfaceSupportKHR(
|
|
physicalDevice: PhysicalDevice,
|
|
queueFamilyIndex: u32,
|
|
surface: SurfaceKHR,
|
|
pSupported: *Bool32,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
|
|
physicalDevice: PhysicalDevice,
|
|
surface: SurfaceKHR,
|
|
pSurfaceCapabilities: *SurfaceCapabilitiesKHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetPhysicalDeviceSurfaceFormatsKHR(
|
|
physicalDevice: PhysicalDevice,
|
|
surface: SurfaceKHR,
|
|
pSurfaceFormatCount: *u32,
|
|
pSurfaceFormats: ?[*]SurfaceFormatKHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetPhysicalDeviceSurfacePresentModesKHR(
|
|
physicalDevice: PhysicalDevice,
|
|
surface: SurfaceKHR,
|
|
pPresentModeCount: *u32,
|
|
pPresentModes: ?[*]PresentModeKHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub const DestroySurfaceKHR = vkDestroySurfaceKHR;
|
|
|
|
pub inline fn GetPhysicalDeviceSurfaceSupportKHR(physicalDevice: PhysicalDevice, queueFamilyIndex: u32, surface: SurfaceKHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_SURFACE_LOST_KHR,VK_UNDOCUMENTED_ERROR}!Bool32 {
|
|
var out_supported: Bool32 = undefined;
|
|
const result = vkGetPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface, &out_supported);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_SURFACE_LOST_KHR => error.VK_SURFACE_LOST_KHR,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_supported;
|
|
}
|
|
|
|
pub inline fn GetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice: PhysicalDevice, surface: SurfaceKHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_SURFACE_LOST_KHR,VK_UNDOCUMENTED_ERROR}!SurfaceCapabilitiesKHR {
|
|
var out_surfaceCapabilities: SurfaceCapabilitiesKHR = undefined;
|
|
const result = vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, &out_surfaceCapabilities);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_SURFACE_LOST_KHR => error.VK_SURFACE_LOST_KHR,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_surfaceCapabilities;
|
|
}
|
|
|
|
pub const GetPhysicalDeviceSurfaceFormatsKHRResult = struct {
|
|
result: Result,
|
|
surfaceFormats: []SurfaceFormatKHR,
|
|
};
|
|
pub inline fn GetPhysicalDeviceSurfaceFormatsKHR(physicalDevice: PhysicalDevice, surface: SurfaceKHR, surfaceFormats: []SurfaceFormatKHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_SURFACE_LOST_KHR,VK_UNDOCUMENTED_ERROR}!GetPhysicalDeviceSurfaceFormatsKHRResult {
|
|
var returnValues: GetPhysicalDeviceSurfaceFormatsKHRResult = undefined;
|
|
var surfaceFormatCount: u32 = @intCast(u32, surfaceFormats.len);
|
|
const result = vkGetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, &surfaceFormatCount, surfaceFormats.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_SURFACE_LOST_KHR => error.VK_SURFACE_LOST_KHR,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.surfaceFormats = surfaceFormats[0..surfaceFormatCount];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn GetPhysicalDeviceSurfaceFormatsCountKHR(physicalDevice: PhysicalDevice, surface: SurfaceKHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_SURFACE_LOST_KHR,VK_UNDOCUMENTED_ERROR}!u32 {
|
|
var out_surfaceFormatCount: u32 = undefined;
|
|
const result = vkGetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, &out_surfaceFormatCount, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_SURFACE_LOST_KHR => error.VK_SURFACE_LOST_KHR,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_surfaceFormatCount;
|
|
}
|
|
|
|
pub const GetPhysicalDeviceSurfacePresentModesKHRResult = struct {
|
|
result: Result,
|
|
presentModes: []PresentModeKHR,
|
|
};
|
|
pub inline fn GetPhysicalDeviceSurfacePresentModesKHR(physicalDevice: PhysicalDevice, surface: SurfaceKHR, presentModes: []PresentModeKHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_SURFACE_LOST_KHR,VK_UNDOCUMENTED_ERROR}!GetPhysicalDeviceSurfacePresentModesKHRResult {
|
|
var returnValues: GetPhysicalDeviceSurfacePresentModesKHRResult = undefined;
|
|
var presentModeCount: u32 = @intCast(u32, presentModes.len);
|
|
const result = vkGetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, &presentModeCount, presentModes.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_SURFACE_LOST_KHR => error.VK_SURFACE_LOST_KHR,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.presentModes = presentModes[0..presentModeCount];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn GetPhysicalDeviceSurfacePresentModesCountKHR(physicalDevice: PhysicalDevice, surface: SurfaceKHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_SURFACE_LOST_KHR,VK_UNDOCUMENTED_ERROR}!u32 {
|
|
var out_presentModeCount: u32 = undefined;
|
|
const result = vkGetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, &out_presentModeCount, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_SURFACE_LOST_KHR => error.VK_SURFACE_LOST_KHR,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_presentModeCount;
|
|
}
|
|
|
|
|
|
pub const KHR_swapchain = 1;
|
|
pub const SwapchainKHR = enum(u64) { Null = 0, _ };
|
|
|
|
pub const KHR_SWAPCHAIN_SPEC_VERSION = 70;
|
|
pub const KHR_SWAPCHAIN_EXTENSION_NAME = "VK_KHR_swapchain";
|
|
|
|
pub const SwapchainCreateFlagsKHR = packed struct {
|
|
splitInstanceBindRegions: bool = false,
|
|
protected: bool = false,
|
|
mutableFormat: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const DeviceGroupPresentModeFlagsKHR = packed struct {
|
|
local: bool = false,
|
|
remote: bool = false,
|
|
sum: bool = false,
|
|
localMultiDevice: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const SwapchainCreateInfoKHR = extern struct {
|
|
sType: StructureType = .SWAPCHAIN_CREATE_INFO_KHR,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: SwapchainCreateFlagsKHR align(4) = SwapchainCreateFlagsKHR{},
|
|
surface: SurfaceKHR,
|
|
minImageCount: u32,
|
|
imageFormat: Format,
|
|
imageColorSpace: ColorSpaceKHR,
|
|
imageExtent: Extent2D,
|
|
imageArrayLayers: u32,
|
|
imageUsage: ImageUsageFlags align(4),
|
|
imageSharingMode: SharingMode,
|
|
queueFamilyIndexCount: u32 = 0,
|
|
pQueueFamilyIndices: [*]const u32 = undefined,
|
|
preTransform: SurfaceTransformFlagsKHR align(4),
|
|
compositeAlpha: CompositeAlphaFlagsKHR align(4),
|
|
presentMode: PresentModeKHR,
|
|
clipped: Bool32,
|
|
oldSwapchain: SwapchainKHR = SwapchainKHR.Null,
|
|
};
|
|
|
|
pub const PresentInfoKHR = extern struct {
|
|
sType: StructureType = .PRESENT_INFO_KHR,
|
|
pNext: ?*const anyopaque = null,
|
|
waitSemaphoreCount: u32 = 0,
|
|
pWaitSemaphores: [*]const Semaphore = undefined,
|
|
swapchainCount: u32,
|
|
pSwapchains: [*]const SwapchainKHR,
|
|
pImageIndices: [*]const u32,
|
|
pResults: ?[*]Result = null,
|
|
};
|
|
|
|
pub const ImageSwapchainCreateInfoKHR = extern struct {
|
|
sType: StructureType = .IMAGE_SWAPCHAIN_CREATE_INFO_KHR,
|
|
pNext: ?*const anyopaque = null,
|
|
swapchain: SwapchainKHR = SwapchainKHR.Null,
|
|
};
|
|
|
|
pub const BindImageMemorySwapchainInfoKHR = extern struct {
|
|
sType: StructureType = .BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR,
|
|
pNext: ?*const anyopaque = null,
|
|
swapchain: SwapchainKHR,
|
|
imageIndex: u32,
|
|
};
|
|
|
|
pub const AcquireNextImageInfoKHR = extern struct {
|
|
sType: StructureType = .ACQUIRE_NEXT_IMAGE_INFO_KHR,
|
|
pNext: ?*const anyopaque = null,
|
|
swapchain: SwapchainKHR,
|
|
timeout: u64,
|
|
semaphore: Semaphore = Semaphore.Null,
|
|
fence: Fence = Fence.Null,
|
|
deviceMask: u32,
|
|
};
|
|
|
|
pub const DeviceGroupPresentCapabilitiesKHR = extern struct {
|
|
sType: StructureType = .DEVICE_GROUP_PRESENT_CAPABILITIES_KHR,
|
|
pNext: ?*const anyopaque = null,
|
|
presentMask: [MAX_DEVICE_GROUP_SIZE]u32,
|
|
modes: DeviceGroupPresentModeFlagsKHR align(4),
|
|
};
|
|
|
|
pub const DeviceGroupPresentInfoKHR = extern struct {
|
|
sType: StructureType = .DEVICE_GROUP_PRESENT_INFO_KHR,
|
|
pNext: ?*const anyopaque = null,
|
|
swapchainCount: u32 = 0,
|
|
pDeviceMasks: [*]const u32 = undefined,
|
|
mode: DeviceGroupPresentModeFlagsKHR align(4),
|
|
};
|
|
|
|
pub const DeviceGroupSwapchainCreateInfoKHR = extern struct {
|
|
sType: StructureType = .DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR,
|
|
pNext: ?*const anyopaque = null,
|
|
modes: DeviceGroupPresentModeFlagsKHR align(4),
|
|
};
|
|
|
|
pub extern fn vkCreateSwapchainKHR(
|
|
device: Device,
|
|
pCreateInfo: *const SwapchainCreateInfoKHR,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pSwapchain: *SwapchainKHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroySwapchainKHR(
|
|
device: Device,
|
|
swapchain: SwapchainKHR,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetSwapchainImagesKHR(
|
|
device: Device,
|
|
swapchain: SwapchainKHR,
|
|
pSwapchainImageCount: *u32,
|
|
pSwapchainImages: ?[*]Image,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkAcquireNextImageKHR(
|
|
device: Device,
|
|
swapchain: SwapchainKHR,
|
|
timeout: u64,
|
|
semaphore: Semaphore,
|
|
fence: Fence,
|
|
pImageIndex: *u32,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkQueuePresentKHR(
|
|
queue: Queue,
|
|
pPresentInfo: *const PresentInfoKHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetDeviceGroupPresentCapabilitiesKHR(
|
|
device: Device,
|
|
pDeviceGroupPresentCapabilities: *DeviceGroupPresentCapabilitiesKHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetDeviceGroupSurfacePresentModesKHR(
|
|
device: Device,
|
|
surface: SurfaceKHR,
|
|
pModes: *align(4) DeviceGroupPresentModeFlagsKHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetPhysicalDevicePresentRectanglesKHR(
|
|
physicalDevice: PhysicalDevice,
|
|
surface: SurfaceKHR,
|
|
pRectCount: *u32,
|
|
pRects: ?[*]Rect2D,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkAcquireNextImage2KHR(
|
|
device: Device,
|
|
pAcquireInfo: *const AcquireNextImageInfoKHR,
|
|
pImageIndex: *u32,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub inline fn CreateSwapchainKHR(device: Device, createInfo: SwapchainCreateInfoKHR, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_DEVICE_LOST,VK_SURFACE_LOST_KHR,VK_NATIVE_WINDOW_IN_USE_KHR,VK_INITIALIZATION_FAILED,VK_UNDOCUMENTED_ERROR}!SwapchainKHR {
|
|
var out_swapchain: SwapchainKHR = undefined;
|
|
const result = vkCreateSwapchainKHR(device, &createInfo, pAllocator, &out_swapchain);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_DEVICE_LOST => error.VK_DEVICE_LOST,
|
|
.ERROR_SURFACE_LOST_KHR => error.VK_SURFACE_LOST_KHR,
|
|
.ERROR_NATIVE_WINDOW_IN_USE_KHR => error.VK_NATIVE_WINDOW_IN_USE_KHR,
|
|
.ERROR_INITIALIZATION_FAILED => error.VK_INITIALIZATION_FAILED,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_swapchain;
|
|
}
|
|
|
|
pub const DestroySwapchainKHR = vkDestroySwapchainKHR;
|
|
|
|
pub const GetSwapchainImagesKHRResult = struct {
|
|
result: Result,
|
|
swapchainImages: []Image,
|
|
};
|
|
pub inline fn GetSwapchainImagesKHR(device: Device, swapchain: SwapchainKHR, swapchainImages: []Image) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!GetSwapchainImagesKHRResult {
|
|
var returnValues: GetSwapchainImagesKHRResult = undefined;
|
|
var swapchainImageCount: u32 = @intCast(u32, swapchainImages.len);
|
|
const result = vkGetSwapchainImagesKHR(device, swapchain, &swapchainImageCount, swapchainImages.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.swapchainImages = swapchainImages[0..swapchainImageCount];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn GetSwapchainImagesCountKHR(device: Device, swapchain: SwapchainKHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!u32 {
|
|
var out_swapchainImageCount: u32 = undefined;
|
|
const result = vkGetSwapchainImagesKHR(device, swapchain, &out_swapchainImageCount, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_swapchainImageCount;
|
|
}
|
|
|
|
pub const AcquireNextImageKHRResult = struct {
|
|
result: Result,
|
|
imageIndex: u32,
|
|
};
|
|
pub inline fn AcquireNextImageKHR(device: Device, swapchain: SwapchainKHR, timeout: u64, semaphore: Semaphore, fence: Fence) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_DEVICE_LOST,VK_OUT_OF_DATE_KHR,VK_SURFACE_LOST_KHR,VK_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT,VK_UNDOCUMENTED_ERROR}!AcquireNextImageKHRResult {
|
|
var returnValues: AcquireNextImageKHRResult = undefined;
|
|
const result = vkAcquireNextImageKHR(device, swapchain, timeout, semaphore, fence, &returnValues.imageIndex);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_DEVICE_LOST => error.VK_DEVICE_LOST,
|
|
.ERROR_OUT_OF_DATE_KHR => error.VK_OUT_OF_DATE_KHR,
|
|
.ERROR_SURFACE_LOST_KHR => error.VK_SURFACE_LOST_KHR,
|
|
.ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT => error.VK_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
|
|
pub inline fn QueuePresentKHR(queue: Queue, presentInfo: PresentInfoKHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_DEVICE_LOST,VK_OUT_OF_DATE_KHR,VK_SURFACE_LOST_KHR,VK_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT,VK_UNDOCUMENTED_ERROR}!Result {
|
|
const result = vkQueuePresentKHR(queue, &presentInfo);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_DEVICE_LOST => error.VK_DEVICE_LOST,
|
|
.ERROR_OUT_OF_DATE_KHR => error.VK_OUT_OF_DATE_KHR,
|
|
.ERROR_SURFACE_LOST_KHR => error.VK_SURFACE_LOST_KHR,
|
|
.ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT => error.VK_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return result;
|
|
}
|
|
|
|
pub inline fn GetDeviceGroupPresentCapabilitiesKHR(device: Device) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!DeviceGroupPresentCapabilitiesKHR {
|
|
var out_deviceGroupPresentCapabilities: DeviceGroupPresentCapabilitiesKHR = undefined;
|
|
const result = vkGetDeviceGroupPresentCapabilitiesKHR(device, &out_deviceGroupPresentCapabilities);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_deviceGroupPresentCapabilities;
|
|
}
|
|
|
|
pub inline fn GetDeviceGroupSurfacePresentModesKHR(device: Device, surface: SurfaceKHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_SURFACE_LOST_KHR,VK_UNDOCUMENTED_ERROR}!DeviceGroupPresentModeFlagsKHR {
|
|
var out_modes: DeviceGroupPresentModeFlagsKHR align(4) = undefined;
|
|
const result = vkGetDeviceGroupSurfacePresentModesKHR(device, surface, &out_modes);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_SURFACE_LOST_KHR => error.VK_SURFACE_LOST_KHR,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_modes;
|
|
}
|
|
|
|
pub const GetPhysicalDevicePresentRectanglesKHRResult = struct {
|
|
result: Result,
|
|
rects: []Rect2D,
|
|
};
|
|
pub inline fn GetPhysicalDevicePresentRectanglesKHR(physicalDevice: PhysicalDevice, surface: SurfaceKHR, rects: []Rect2D) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!GetPhysicalDevicePresentRectanglesKHRResult {
|
|
var returnValues: GetPhysicalDevicePresentRectanglesKHRResult = undefined;
|
|
var rectCount: u32 = @intCast(u32, rects.len);
|
|
const result = vkGetPhysicalDevicePresentRectanglesKHR(physicalDevice, surface, &rectCount, rects.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.rects = rects[0..rectCount];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn GetPhysicalDevicePresentRectanglesCountKHR(physicalDevice: PhysicalDevice, surface: SurfaceKHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!u32 {
|
|
var out_rectCount: u32 = undefined;
|
|
const result = vkGetPhysicalDevicePresentRectanglesKHR(physicalDevice, surface, &out_rectCount, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_rectCount;
|
|
}
|
|
|
|
pub const AcquireNextImage2KHRResult = struct {
|
|
result: Result,
|
|
imageIndex: u32,
|
|
};
|
|
pub inline fn AcquireNextImage2KHR(device: Device, acquireInfo: AcquireNextImageInfoKHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_DEVICE_LOST,VK_OUT_OF_DATE_KHR,VK_SURFACE_LOST_KHR,VK_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT,VK_UNDOCUMENTED_ERROR}!AcquireNextImage2KHRResult {
|
|
var returnValues: AcquireNextImage2KHRResult = undefined;
|
|
const result = vkAcquireNextImage2KHR(device, &acquireInfo, &returnValues.imageIndex);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_DEVICE_LOST => error.VK_DEVICE_LOST,
|
|
.ERROR_OUT_OF_DATE_KHR => error.VK_OUT_OF_DATE_KHR,
|
|
.ERROR_SURFACE_LOST_KHR => error.VK_SURFACE_LOST_KHR,
|
|
.ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT => error.VK_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
|
|
|
|
pub const KHR_display = 1;
|
|
pub const DisplayKHR = enum(u64) { Null = 0, _ };
|
|
pub const DisplayModeKHR = enum(u64) { Null = 0, _ };
|
|
|
|
pub const KHR_DISPLAY_SPEC_VERSION = 23;
|
|
pub const KHR_DISPLAY_EXTENSION_NAME = "VK_KHR_display";
|
|
|
|
pub const DisplayPlaneAlphaFlagsKHR = packed struct {
|
|
@"opaque": bool = false,
|
|
global: bool = false,
|
|
perPixel: bool = false,
|
|
perPixelPremultiplied: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const DisplayModeCreateFlagsKHR = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const DisplaySurfaceCreateFlagsKHR = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const DisplayPropertiesKHR = extern struct {
|
|
display: DisplayKHR,
|
|
displayName: CString,
|
|
physicalDimensions: Extent2D,
|
|
physicalResolution: Extent2D,
|
|
supportedTransforms: SurfaceTransformFlagsKHR align(4) = SurfaceTransformFlagsKHR{},
|
|
planeReorderPossible: Bool32,
|
|
persistentContent: Bool32,
|
|
};
|
|
|
|
pub const DisplayModeParametersKHR = extern struct {
|
|
visibleRegion: Extent2D,
|
|
refreshRate: u32,
|
|
};
|
|
|
|
pub const DisplayModePropertiesKHR = extern struct {
|
|
displayMode: DisplayModeKHR,
|
|
parameters: DisplayModeParametersKHR,
|
|
};
|
|
|
|
pub const DisplayModeCreateInfoKHR = extern struct {
|
|
sType: StructureType = .DISPLAY_MODE_CREATE_INFO_KHR,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: DisplayModeCreateFlagsKHR align(4) = DisplayModeCreateFlagsKHR{},
|
|
parameters: DisplayModeParametersKHR,
|
|
};
|
|
|
|
pub const DisplayPlaneCapabilitiesKHR = extern struct {
|
|
supportedAlpha: DisplayPlaneAlphaFlagsKHR align(4) = DisplayPlaneAlphaFlagsKHR{},
|
|
minSrcPosition: Offset2D,
|
|
maxSrcPosition: Offset2D,
|
|
minSrcExtent: Extent2D,
|
|
maxSrcExtent: Extent2D,
|
|
minDstPosition: Offset2D,
|
|
maxDstPosition: Offset2D,
|
|
minDstExtent: Extent2D,
|
|
maxDstExtent: Extent2D,
|
|
};
|
|
|
|
pub const DisplayPlanePropertiesKHR = extern struct {
|
|
currentDisplay: DisplayKHR,
|
|
currentStackIndex: u32,
|
|
};
|
|
|
|
pub const DisplaySurfaceCreateInfoKHR = extern struct {
|
|
sType: StructureType = .DISPLAY_SURFACE_CREATE_INFO_KHR,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: DisplaySurfaceCreateFlagsKHR align(4) = DisplaySurfaceCreateFlagsKHR{},
|
|
displayMode: DisplayModeKHR,
|
|
planeIndex: u32,
|
|
planeStackIndex: u32,
|
|
transform: SurfaceTransformFlagsKHR align(4),
|
|
globalAlpha: f32,
|
|
alphaMode: DisplayPlaneAlphaFlagsKHR align(4),
|
|
imageExtent: Extent2D,
|
|
};
|
|
|
|
pub extern fn vkGetPhysicalDeviceDisplayPropertiesKHR(
|
|
physicalDevice: PhysicalDevice,
|
|
pPropertyCount: *u32,
|
|
pProperties: ?[*]DisplayPropertiesKHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
|
|
physicalDevice: PhysicalDevice,
|
|
pPropertyCount: *u32,
|
|
pProperties: ?[*]DisplayPlanePropertiesKHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetDisplayPlaneSupportedDisplaysKHR(
|
|
physicalDevice: PhysicalDevice,
|
|
planeIndex: u32,
|
|
pDisplayCount: *u32,
|
|
pDisplays: ?[*]DisplayKHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetDisplayModePropertiesKHR(
|
|
physicalDevice: PhysicalDevice,
|
|
display: DisplayKHR,
|
|
pPropertyCount: *u32,
|
|
pProperties: ?[*]DisplayModePropertiesKHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkCreateDisplayModeKHR(
|
|
physicalDevice: PhysicalDevice,
|
|
display: DisplayKHR,
|
|
pCreateInfo: *const DisplayModeCreateInfoKHR,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pMode: *DisplayModeKHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetDisplayPlaneCapabilitiesKHR(
|
|
physicalDevice: PhysicalDevice,
|
|
mode: DisplayModeKHR,
|
|
planeIndex: u32,
|
|
pCapabilities: *DisplayPlaneCapabilitiesKHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkCreateDisplayPlaneSurfaceKHR(
|
|
instance: Instance,
|
|
pCreateInfo: *const DisplaySurfaceCreateInfoKHR,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pSurface: *SurfaceKHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub const GetPhysicalDeviceDisplayPropertiesKHRResult = struct {
|
|
result: Result,
|
|
properties: []DisplayPropertiesKHR,
|
|
};
|
|
pub inline fn GetPhysicalDeviceDisplayPropertiesKHR(physicalDevice: PhysicalDevice, properties: []DisplayPropertiesKHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!GetPhysicalDeviceDisplayPropertiesKHRResult {
|
|
var returnValues: GetPhysicalDeviceDisplayPropertiesKHRResult = undefined;
|
|
var propertyCount: u32 = @intCast(u32, properties.len);
|
|
const result = vkGetPhysicalDeviceDisplayPropertiesKHR(physicalDevice, &propertyCount, properties.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.properties = properties[0..propertyCount];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn GetPhysicalDeviceDisplayPropertiesCountKHR(physicalDevice: PhysicalDevice) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!u32 {
|
|
var out_propertyCount: u32 = undefined;
|
|
const result = vkGetPhysicalDeviceDisplayPropertiesKHR(physicalDevice, &out_propertyCount, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_propertyCount;
|
|
}
|
|
|
|
pub const GetPhysicalDeviceDisplayPlanePropertiesKHRResult = struct {
|
|
result: Result,
|
|
properties: []DisplayPlanePropertiesKHR,
|
|
};
|
|
pub inline fn GetPhysicalDeviceDisplayPlanePropertiesKHR(physicalDevice: PhysicalDevice, properties: []DisplayPlanePropertiesKHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!GetPhysicalDeviceDisplayPlanePropertiesKHRResult {
|
|
var returnValues: GetPhysicalDeviceDisplayPlanePropertiesKHRResult = undefined;
|
|
var propertyCount: u32 = @intCast(u32, properties.len);
|
|
const result = vkGetPhysicalDeviceDisplayPlanePropertiesKHR(physicalDevice, &propertyCount, properties.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.properties = properties[0..propertyCount];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn GetPhysicalDeviceDisplayPlanePropertiesCountKHR(physicalDevice: PhysicalDevice) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!u32 {
|
|
var out_propertyCount: u32 = undefined;
|
|
const result = vkGetPhysicalDeviceDisplayPlanePropertiesKHR(physicalDevice, &out_propertyCount, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_propertyCount;
|
|
}
|
|
|
|
pub const GetDisplayPlaneSupportedDisplaysKHRResult = struct {
|
|
result: Result,
|
|
displays: []DisplayKHR,
|
|
};
|
|
pub inline fn GetDisplayPlaneSupportedDisplaysKHR(physicalDevice: PhysicalDevice, planeIndex: u32, displays: []DisplayKHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!GetDisplayPlaneSupportedDisplaysKHRResult {
|
|
var returnValues: GetDisplayPlaneSupportedDisplaysKHRResult = undefined;
|
|
var displayCount: u32 = @intCast(u32, displays.len);
|
|
const result = vkGetDisplayPlaneSupportedDisplaysKHR(physicalDevice, planeIndex, &displayCount, displays.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.displays = displays[0..displayCount];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn GetDisplayPlaneSupportedDisplaysCountKHR(physicalDevice: PhysicalDevice, planeIndex: u32) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!u32 {
|
|
var out_displayCount: u32 = undefined;
|
|
const result = vkGetDisplayPlaneSupportedDisplaysKHR(physicalDevice, planeIndex, &out_displayCount, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_displayCount;
|
|
}
|
|
|
|
pub const GetDisplayModePropertiesKHRResult = struct {
|
|
result: Result,
|
|
properties: []DisplayModePropertiesKHR,
|
|
};
|
|
pub inline fn GetDisplayModePropertiesKHR(physicalDevice: PhysicalDevice, display: DisplayKHR, properties: []DisplayModePropertiesKHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!GetDisplayModePropertiesKHRResult {
|
|
var returnValues: GetDisplayModePropertiesKHRResult = undefined;
|
|
var propertyCount: u32 = @intCast(u32, properties.len);
|
|
const result = vkGetDisplayModePropertiesKHR(physicalDevice, display, &propertyCount, properties.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.properties = properties[0..propertyCount];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn GetDisplayModePropertiesCountKHR(physicalDevice: PhysicalDevice, display: DisplayKHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!u32 {
|
|
var out_propertyCount: u32 = undefined;
|
|
const result = vkGetDisplayModePropertiesKHR(physicalDevice, display, &out_propertyCount, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_propertyCount;
|
|
}
|
|
|
|
pub inline fn CreateDisplayModeKHR(physicalDevice: PhysicalDevice, display: DisplayKHR, createInfo: DisplayModeCreateInfoKHR, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_INITIALIZATION_FAILED,VK_UNDOCUMENTED_ERROR}!DisplayModeKHR {
|
|
var out_mode: DisplayModeKHR = undefined;
|
|
const result = vkCreateDisplayModeKHR(physicalDevice, display, &createInfo, pAllocator, &out_mode);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_INITIALIZATION_FAILED => error.VK_INITIALIZATION_FAILED,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_mode;
|
|
}
|
|
|
|
pub inline fn GetDisplayPlaneCapabilitiesKHR(physicalDevice: PhysicalDevice, mode: DisplayModeKHR, planeIndex: u32) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!DisplayPlaneCapabilitiesKHR {
|
|
var out_capabilities: DisplayPlaneCapabilitiesKHR = undefined;
|
|
const result = vkGetDisplayPlaneCapabilitiesKHR(physicalDevice, mode, planeIndex, &out_capabilities);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_capabilities;
|
|
}
|
|
|
|
pub inline fn CreateDisplayPlaneSurfaceKHR(instance: Instance, createInfo: DisplaySurfaceCreateInfoKHR, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!SurfaceKHR {
|
|
var out_surface: SurfaceKHR = undefined;
|
|
const result = vkCreateDisplayPlaneSurfaceKHR(instance, &createInfo, pAllocator, &out_surface);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_surface;
|
|
}
|
|
|
|
|
|
pub const KHR_display_swapchain = 1;
|
|
pub const KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION = 10;
|
|
pub const KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME = "VK_KHR_display_swapchain";
|
|
|
|
pub const DisplayPresentInfoKHR = extern struct {
|
|
sType: StructureType = .DISPLAY_PRESENT_INFO_KHR,
|
|
pNext: ?*const anyopaque = null,
|
|
srcRect: Rect2D,
|
|
dstRect: Rect2D,
|
|
persistent: Bool32,
|
|
};
|
|
|
|
pub extern fn vkCreateSharedSwapchainsKHR(
|
|
device: Device,
|
|
swapchainCount: u32,
|
|
pCreateInfos: [*]const SwapchainCreateInfoKHR,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pSwapchains: [*]SwapchainKHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub inline fn CreateSharedSwapchainsKHR(device: Device, createInfos: []const SwapchainCreateInfoKHR, pAllocator: ?*const AllocationCallbacks, swapchains: []SwapchainKHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_INCOMPATIBLE_DISPLAY_KHR,VK_DEVICE_LOST,VK_SURFACE_LOST_KHR,VK_UNDOCUMENTED_ERROR}!void {
|
|
assert(swapchains.len >= createInfos.len);
|
|
const result = vkCreateSharedSwapchainsKHR(device, @intCast(u32, createInfos.len), createInfos.ptr, pAllocator, swapchains.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_INCOMPATIBLE_DISPLAY_KHR => error.VK_INCOMPATIBLE_DISPLAY_KHR,
|
|
.ERROR_DEVICE_LOST => error.VK_DEVICE_LOST,
|
|
.ERROR_SURFACE_LOST_KHR => error.VK_SURFACE_LOST_KHR,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
|
|
pub const KHR_sampler_mirror_clamp_to_edge = 1;
|
|
pub const KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION = 3;
|
|
pub const KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME = "VK_KHR_sampler_mirror_clamp_to_edge";
|
|
|
|
|
|
pub const KHR_multiview = 1;
|
|
pub const KHR_MULTIVIEW_SPEC_VERSION = 1;
|
|
pub const KHR_MULTIVIEW_EXTENSION_NAME = "VK_KHR_multiview";
|
|
|
|
pub const RenderPassMultiviewCreateInfoKHR = RenderPassMultiviewCreateInfo;
|
|
pub const PhysicalDeviceMultiviewFeaturesKHR = PhysicalDeviceMultiviewFeatures;
|
|
pub const PhysicalDeviceMultiviewPropertiesKHR = PhysicalDeviceMultiviewProperties;
|
|
|
|
|
|
pub const KHR_get_physical_device_properties2 = 1;
|
|
pub const KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION = 2;
|
|
pub const KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME = "VK_KHR_get_physical_device_properties2";
|
|
|
|
pub const PhysicalDeviceFeatures2KHR = PhysicalDeviceFeatures2;
|
|
pub const PhysicalDeviceProperties2KHR = PhysicalDeviceProperties2;
|
|
pub const FormatProperties2KHR = FormatProperties2;
|
|
pub const ImageFormatProperties2KHR = ImageFormatProperties2;
|
|
pub const PhysicalDeviceImageFormatInfo2KHR = PhysicalDeviceImageFormatInfo2;
|
|
pub const QueueFamilyProperties2KHR = QueueFamilyProperties2;
|
|
pub const PhysicalDeviceMemoryProperties2KHR = PhysicalDeviceMemoryProperties2;
|
|
pub const SparseImageFormatProperties2KHR = SparseImageFormatProperties2;
|
|
pub const PhysicalDeviceSparseImageFormatInfo2KHR = PhysicalDeviceSparseImageFormatInfo2;
|
|
|
|
pub extern fn vkGetPhysicalDeviceFeatures2KHR(
|
|
physicalDevice: PhysicalDevice,
|
|
pFeatures: *PhysicalDeviceFeatures2,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetPhysicalDeviceProperties2KHR(
|
|
physicalDevice: PhysicalDevice,
|
|
pProperties: *PhysicalDeviceProperties2,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetPhysicalDeviceFormatProperties2KHR(
|
|
physicalDevice: PhysicalDevice,
|
|
format: Format,
|
|
pFormatProperties: *FormatProperties2,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetPhysicalDeviceImageFormatProperties2KHR(
|
|
physicalDevice: PhysicalDevice,
|
|
pImageFormatInfo: *const PhysicalDeviceImageFormatInfo2,
|
|
pImageFormatProperties: *ImageFormatProperties2,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetPhysicalDeviceQueueFamilyProperties2KHR(
|
|
physicalDevice: PhysicalDevice,
|
|
pQueueFamilyPropertyCount: *u32,
|
|
pQueueFamilyProperties: ?[*]QueueFamilyProperties2,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetPhysicalDeviceMemoryProperties2KHR(
|
|
physicalDevice: PhysicalDevice,
|
|
pMemoryProperties: *PhysicalDeviceMemoryProperties2,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
|
|
physicalDevice: PhysicalDevice,
|
|
pFormatInfo: *const PhysicalDeviceSparseImageFormatInfo2,
|
|
pPropertyCount: *u32,
|
|
pProperties: ?[*]SparseImageFormatProperties2,
|
|
) callconv(CallConv) void;
|
|
|
|
pub inline fn GetPhysicalDeviceFeatures2KHR(physicalDevice: PhysicalDevice) PhysicalDeviceFeatures2 {
|
|
var out_features: PhysicalDeviceFeatures2 = undefined;
|
|
vkGetPhysicalDeviceFeatures2KHR(physicalDevice, &out_features);
|
|
return out_features;
|
|
}
|
|
|
|
pub inline fn GetPhysicalDeviceProperties2KHR(physicalDevice: PhysicalDevice) PhysicalDeviceProperties2 {
|
|
var out_properties: PhysicalDeviceProperties2 = undefined;
|
|
vkGetPhysicalDeviceProperties2KHR(physicalDevice, &out_properties);
|
|
return out_properties;
|
|
}
|
|
|
|
pub inline fn GetPhysicalDeviceFormatProperties2KHR(physicalDevice: PhysicalDevice, format: Format) FormatProperties2 {
|
|
var out_formatProperties: FormatProperties2 = undefined;
|
|
vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, &out_formatProperties);
|
|
return out_formatProperties;
|
|
}
|
|
|
|
pub inline fn GetPhysicalDeviceImageFormatProperties2KHR(physicalDevice: PhysicalDevice, imageFormatInfo: PhysicalDeviceImageFormatInfo2) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_FORMAT_NOT_SUPPORTED,VK_UNDOCUMENTED_ERROR}!ImageFormatProperties2 {
|
|
var out_imageFormatProperties: ImageFormatProperties2 = undefined;
|
|
const result = vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, &imageFormatInfo, &out_imageFormatProperties);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_FORMAT_NOT_SUPPORTED => error.VK_FORMAT_NOT_SUPPORTED,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_imageFormatProperties;
|
|
}
|
|
|
|
pub inline fn GetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice: PhysicalDevice, queueFamilyProperties: []QueueFamilyProperties2) []QueueFamilyProperties2 {
|
|
var out_queueFamilyProperties: []QueueFamilyProperties2 = undefined;
|
|
var queueFamilyPropertyCount: u32 = @intCast(u32, queueFamilyProperties.len);
|
|
vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, &queueFamilyPropertyCount, queueFamilyProperties.ptr);
|
|
out_queueFamilyProperties = queueFamilyProperties[0..queueFamilyPropertyCount];
|
|
return out_queueFamilyProperties;
|
|
}
|
|
pub inline fn GetPhysicalDeviceQueueFamilyProperties2CountKHR(physicalDevice: PhysicalDevice) u32 {
|
|
var out_queueFamilyPropertyCount: u32 = undefined;
|
|
vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, &out_queueFamilyPropertyCount, null);
|
|
return out_queueFamilyPropertyCount;
|
|
}
|
|
|
|
pub inline fn GetPhysicalDeviceMemoryProperties2KHR(physicalDevice: PhysicalDevice) PhysicalDeviceMemoryProperties2 {
|
|
var out_memoryProperties: PhysicalDeviceMemoryProperties2 = undefined;
|
|
vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, &out_memoryProperties);
|
|
return out_memoryProperties;
|
|
}
|
|
|
|
pub inline fn GetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice: PhysicalDevice, formatInfo: PhysicalDeviceSparseImageFormatInfo2, properties: []SparseImageFormatProperties2) []SparseImageFormatProperties2 {
|
|
var out_properties: []SparseImageFormatProperties2 = undefined;
|
|
var propertyCount: u32 = @intCast(u32, properties.len);
|
|
vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, &formatInfo, &propertyCount, properties.ptr);
|
|
out_properties = properties[0..propertyCount];
|
|
return out_properties;
|
|
}
|
|
pub inline fn GetPhysicalDeviceSparseImageFormatProperties2CountKHR(physicalDevice: PhysicalDevice, formatInfo: PhysicalDeviceSparseImageFormatInfo2) u32 {
|
|
var out_propertyCount: u32 = undefined;
|
|
vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, &formatInfo, &out_propertyCount, null);
|
|
return out_propertyCount;
|
|
}
|
|
|
|
|
|
pub const KHR_device_group = 1;
|
|
pub const KHR_DEVICE_GROUP_SPEC_VERSION = 4;
|
|
pub const KHR_DEVICE_GROUP_EXTENSION_NAME = "VK_KHR_device_group";
|
|
|
|
pub const PeerMemoryFeatureFlagsKHR = PeerMemoryFeatureFlags;
|
|
pub const MemoryAllocateFlagsKHR = MemoryAllocateFlags;
|
|
|
|
pub const MemoryAllocateFlagsInfoKHR = MemoryAllocateFlagsInfo;
|
|
pub const DeviceGroupRenderPassBeginInfoKHR = DeviceGroupRenderPassBeginInfo;
|
|
pub const DeviceGroupCommandBufferBeginInfoKHR = DeviceGroupCommandBufferBeginInfo;
|
|
pub const DeviceGroupSubmitInfoKHR = DeviceGroupSubmitInfo;
|
|
pub const DeviceGroupBindSparseInfoKHR = DeviceGroupBindSparseInfo;
|
|
pub const BindBufferMemoryDeviceGroupInfoKHR = BindBufferMemoryDeviceGroupInfo;
|
|
pub const BindImageMemoryDeviceGroupInfoKHR = BindImageMemoryDeviceGroupInfo;
|
|
|
|
pub extern fn vkGetDeviceGroupPeerMemoryFeaturesKHR(
|
|
device: Device,
|
|
heapIndex: u32,
|
|
localDeviceIndex: u32,
|
|
remoteDeviceIndex: u32,
|
|
pPeerMemoryFeatures: *align(4) PeerMemoryFeatureFlags,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdSetDeviceMaskKHR(
|
|
commandBuffer: CommandBuffer,
|
|
deviceMask: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdDispatchBaseKHR(
|
|
commandBuffer: CommandBuffer,
|
|
baseGroupX: u32,
|
|
baseGroupY: u32,
|
|
baseGroupZ: u32,
|
|
groupCountX: u32,
|
|
groupCountY: u32,
|
|
groupCountZ: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub inline fn GetDeviceGroupPeerMemoryFeaturesKHR(device: Device, heapIndex: u32, localDeviceIndex: u32, remoteDeviceIndex: u32) PeerMemoryFeatureFlags {
|
|
var out_peerMemoryFeatures: PeerMemoryFeatureFlags align(4) = undefined;
|
|
vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, &out_peerMemoryFeatures);
|
|
return out_peerMemoryFeatures;
|
|
}
|
|
|
|
pub const CmdSetDeviceMaskKHR = vkCmdSetDeviceMaskKHR;
|
|
pub const CmdDispatchBaseKHR = vkCmdDispatchBaseKHR;
|
|
|
|
|
|
pub const KHR_shader_draw_parameters = 1;
|
|
pub const KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION = 1;
|
|
pub const KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME = "VK_KHR_shader_draw_parameters";
|
|
|
|
|
|
pub const KHR_maintenance1 = 1;
|
|
pub const KHR_MAINTENANCE1_SPEC_VERSION = 2;
|
|
pub const KHR_MAINTENANCE1_EXTENSION_NAME = "VK_KHR_maintenance1";
|
|
|
|
pub const CommandPoolTrimFlagsKHR = CommandPoolTrimFlags;
|
|
|
|
pub extern fn vkTrimCommandPoolKHR(
|
|
device: Device,
|
|
commandPool: CommandPool,
|
|
flags: CommandPoolTrimFlags.IntType,
|
|
) callconv(CallConv) void;
|
|
|
|
pub inline fn TrimCommandPoolKHR(device: Device, commandPool: CommandPool, flags: CommandPoolTrimFlags) void {
|
|
vkTrimCommandPoolKHR(device, commandPool, flags.toInt());
|
|
}
|
|
|
|
|
|
pub const KHR_device_group_creation = 1;
|
|
pub const KHR_DEVICE_GROUP_CREATION_SPEC_VERSION = 1;
|
|
pub const KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME = "VK_KHR_device_group_creation";
|
|
pub const MAX_DEVICE_GROUP_SIZE_KHR = MAX_DEVICE_GROUP_SIZE;
|
|
|
|
pub const PhysicalDeviceGroupPropertiesKHR = PhysicalDeviceGroupProperties;
|
|
pub const DeviceGroupDeviceCreateInfoKHR = DeviceGroupDeviceCreateInfo;
|
|
|
|
pub extern fn vkEnumeratePhysicalDeviceGroupsKHR(
|
|
instance: Instance,
|
|
pPhysicalDeviceGroupCount: *u32,
|
|
pPhysicalDeviceGroupProperties: ?[*]PhysicalDeviceGroupProperties,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub const EnumeratePhysicalDeviceGroupsKHRResult = struct {
|
|
result: Result,
|
|
physicalDeviceGroupProperties: []PhysicalDeviceGroupProperties,
|
|
};
|
|
pub inline fn EnumeratePhysicalDeviceGroupsKHR(instance: Instance, physicalDeviceGroupProperties: []PhysicalDeviceGroupProperties) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_INITIALIZATION_FAILED,VK_UNDOCUMENTED_ERROR}!EnumeratePhysicalDeviceGroupsKHRResult {
|
|
var returnValues: EnumeratePhysicalDeviceGroupsKHRResult = undefined;
|
|
var physicalDeviceGroupCount: u32 = @intCast(u32, physicalDeviceGroupProperties.len);
|
|
const result = vkEnumeratePhysicalDeviceGroupsKHR(instance, &physicalDeviceGroupCount, physicalDeviceGroupProperties.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_INITIALIZATION_FAILED => error.VK_INITIALIZATION_FAILED,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.physicalDeviceGroupProperties = physicalDeviceGroupProperties[0..physicalDeviceGroupCount];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn EnumeratePhysicalDeviceGroupsCountKHR(instance: Instance) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_INITIALIZATION_FAILED,VK_UNDOCUMENTED_ERROR}!u32 {
|
|
var out_physicalDeviceGroupCount: u32 = undefined;
|
|
const result = vkEnumeratePhysicalDeviceGroupsKHR(instance, &out_physicalDeviceGroupCount, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_INITIALIZATION_FAILED => error.VK_INITIALIZATION_FAILED,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_physicalDeviceGroupCount;
|
|
}
|
|
|
|
|
|
pub const KHR_external_memory_capabilities = 1;
|
|
pub const KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION = 1;
|
|
pub const KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME = "VK_KHR_external_memory_capabilities";
|
|
pub const LUID_SIZE_KHR = LUID_SIZE;
|
|
|
|
pub const ExternalMemoryHandleTypeFlagsKHR = ExternalMemoryHandleTypeFlags;
|
|
pub const ExternalMemoryFeatureFlagsKHR = ExternalMemoryFeatureFlags;
|
|
|
|
pub const ExternalMemoryPropertiesKHR = ExternalMemoryProperties;
|
|
pub const PhysicalDeviceExternalImageFormatInfoKHR = PhysicalDeviceExternalImageFormatInfo;
|
|
pub const ExternalImageFormatPropertiesKHR = ExternalImageFormatProperties;
|
|
pub const PhysicalDeviceExternalBufferInfoKHR = PhysicalDeviceExternalBufferInfo;
|
|
pub const ExternalBufferPropertiesKHR = ExternalBufferProperties;
|
|
pub const PhysicalDeviceIDPropertiesKHR = PhysicalDeviceIDProperties;
|
|
|
|
pub extern fn vkGetPhysicalDeviceExternalBufferPropertiesKHR(
|
|
physicalDevice: PhysicalDevice,
|
|
pExternalBufferInfo: *const PhysicalDeviceExternalBufferInfo,
|
|
pExternalBufferProperties: *ExternalBufferProperties,
|
|
) callconv(CallConv) void;
|
|
|
|
pub inline fn GetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice: PhysicalDevice, externalBufferInfo: PhysicalDeviceExternalBufferInfo) ExternalBufferProperties {
|
|
var out_externalBufferProperties: ExternalBufferProperties = undefined;
|
|
vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, &externalBufferInfo, &out_externalBufferProperties);
|
|
return out_externalBufferProperties;
|
|
}
|
|
|
|
|
|
pub const KHR_external_memory = 1;
|
|
pub const KHR_EXTERNAL_MEMORY_SPEC_VERSION = 1;
|
|
pub const KHR_EXTERNAL_MEMORY_EXTENSION_NAME = "VK_KHR_external_memory";
|
|
pub const QUEUE_FAMILY_EXTERNAL_KHR = QUEUE_FAMILY_EXTERNAL;
|
|
|
|
pub const ExternalMemoryImageCreateInfoKHR = ExternalMemoryImageCreateInfo;
|
|
pub const ExternalMemoryBufferCreateInfoKHR = ExternalMemoryBufferCreateInfo;
|
|
pub const ExportMemoryAllocateInfoKHR = ExportMemoryAllocateInfo;
|
|
|
|
|
|
pub const KHR_external_memory_fd = 1;
|
|
pub const KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION = 1;
|
|
pub const KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME = "VK_KHR_external_memory_fd";
|
|
|
|
pub const ImportMemoryFdInfoKHR = extern struct {
|
|
sType: StructureType = .IMPORT_MEMORY_FD_INFO_KHR,
|
|
pNext: ?*const anyopaque = null,
|
|
handleType: ExternalMemoryHandleTypeFlags align(4) = ExternalMemoryHandleTypeFlags{},
|
|
fd: c_int,
|
|
};
|
|
|
|
pub const MemoryFdPropertiesKHR = extern struct {
|
|
sType: StructureType = .MEMORY_FD_PROPERTIES_KHR,
|
|
pNext: ?*anyopaque = null,
|
|
memoryTypeBits: u32,
|
|
};
|
|
|
|
pub const MemoryGetFdInfoKHR = extern struct {
|
|
sType: StructureType = .MEMORY_GET_FD_INFO_KHR,
|
|
pNext: ?*const anyopaque = null,
|
|
memory: DeviceMemory,
|
|
handleType: ExternalMemoryHandleTypeFlags align(4),
|
|
};
|
|
|
|
pub extern fn vkGetMemoryFdKHR(
|
|
device: Device,
|
|
pGetFdInfo: *const MemoryGetFdInfoKHR,
|
|
pFd: *c_int,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetMemoryFdPropertiesKHR(
|
|
device: Device,
|
|
handleType: ExternalMemoryHandleTypeFlags.IntType,
|
|
fd: c_int,
|
|
pMemoryFdProperties: *MemoryFdPropertiesKHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub inline fn GetMemoryFdKHR(device: Device, getFdInfo: MemoryGetFdInfoKHR) error{VK_TOO_MANY_OBJECTS,VK_OUT_OF_HOST_MEMORY,VK_UNDOCUMENTED_ERROR}!c_int {
|
|
var out_fd: c_int = undefined;
|
|
const result = vkGetMemoryFdKHR(device, &getFdInfo, &out_fd);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_TOO_MANY_OBJECTS => error.VK_TOO_MANY_OBJECTS,
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_fd;
|
|
}
|
|
|
|
pub inline fn GetMemoryFdPropertiesKHR(device: Device, handleType: ExternalMemoryHandleTypeFlags, fd: c_int) error{VK_INVALID_EXTERNAL_HANDLE,VK_UNDOCUMENTED_ERROR}!MemoryFdPropertiesKHR {
|
|
var out_memoryFdProperties: MemoryFdPropertiesKHR = undefined;
|
|
const result = vkGetMemoryFdPropertiesKHR(device, handleType.toInt(), fd, &out_memoryFdProperties);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_INVALID_EXTERNAL_HANDLE => error.VK_INVALID_EXTERNAL_HANDLE,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_memoryFdProperties;
|
|
}
|
|
|
|
|
|
pub const KHR_external_semaphore_capabilities = 1;
|
|
pub const KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION = 1;
|
|
pub const KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME = "VK_KHR_external_semaphore_capabilities";
|
|
|
|
pub const ExternalSemaphoreHandleTypeFlagsKHR = ExternalSemaphoreHandleTypeFlags;
|
|
pub const ExternalSemaphoreFeatureFlagsKHR = ExternalSemaphoreFeatureFlags;
|
|
|
|
pub const PhysicalDeviceExternalSemaphoreInfoKHR = PhysicalDeviceExternalSemaphoreInfo;
|
|
pub const ExternalSemaphorePropertiesKHR = ExternalSemaphoreProperties;
|
|
|
|
pub extern fn vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
|
|
physicalDevice: PhysicalDevice,
|
|
pExternalSemaphoreInfo: *const PhysicalDeviceExternalSemaphoreInfo,
|
|
pExternalSemaphoreProperties: *ExternalSemaphoreProperties,
|
|
) callconv(CallConv) void;
|
|
|
|
pub inline fn GetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice: PhysicalDevice, externalSemaphoreInfo: PhysicalDeviceExternalSemaphoreInfo) ExternalSemaphoreProperties {
|
|
var out_externalSemaphoreProperties: ExternalSemaphoreProperties = undefined;
|
|
vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, &externalSemaphoreInfo, &out_externalSemaphoreProperties);
|
|
return out_externalSemaphoreProperties;
|
|
}
|
|
|
|
|
|
pub const KHR_external_semaphore = 1;
|
|
pub const KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION = 1;
|
|
pub const KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME = "VK_KHR_external_semaphore";
|
|
|
|
pub const SemaphoreImportFlagsKHR = SemaphoreImportFlags;
|
|
|
|
pub const ExportSemaphoreCreateInfoKHR = ExportSemaphoreCreateInfo;
|
|
|
|
|
|
pub const KHR_external_semaphore_fd = 1;
|
|
pub const KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION = 1;
|
|
pub const KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME = "VK_KHR_external_semaphore_fd";
|
|
|
|
pub const ImportSemaphoreFdInfoKHR = extern struct {
|
|
sType: StructureType = .IMPORT_SEMAPHORE_FD_INFO_KHR,
|
|
pNext: ?*const anyopaque = null,
|
|
semaphore: Semaphore,
|
|
flags: SemaphoreImportFlags align(4) = SemaphoreImportFlags{},
|
|
handleType: ExternalSemaphoreHandleTypeFlags align(4),
|
|
fd: c_int,
|
|
};
|
|
|
|
pub const SemaphoreGetFdInfoKHR = extern struct {
|
|
sType: StructureType = .SEMAPHORE_GET_FD_INFO_KHR,
|
|
pNext: ?*const anyopaque = null,
|
|
semaphore: Semaphore,
|
|
handleType: ExternalSemaphoreHandleTypeFlags align(4),
|
|
};
|
|
|
|
pub extern fn vkImportSemaphoreFdKHR(
|
|
device: Device,
|
|
pImportSemaphoreFdInfo: *const ImportSemaphoreFdInfoKHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetSemaphoreFdKHR(
|
|
device: Device,
|
|
pGetFdInfo: *const SemaphoreGetFdInfoKHR,
|
|
pFd: *c_int,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub inline fn ImportSemaphoreFdKHR(device: Device, importSemaphoreFdInfo: ImportSemaphoreFdInfoKHR) error{VK_OUT_OF_HOST_MEMORY,VK_INVALID_EXTERNAL_HANDLE,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkImportSemaphoreFdKHR(device, &importSemaphoreFdInfo);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_INVALID_EXTERNAL_HANDLE => error.VK_INVALID_EXTERNAL_HANDLE,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn GetSemaphoreFdKHR(device: Device, getFdInfo: SemaphoreGetFdInfoKHR) error{VK_TOO_MANY_OBJECTS,VK_OUT_OF_HOST_MEMORY,VK_UNDOCUMENTED_ERROR}!c_int {
|
|
var out_fd: c_int = undefined;
|
|
const result = vkGetSemaphoreFdKHR(device, &getFdInfo, &out_fd);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_TOO_MANY_OBJECTS => error.VK_TOO_MANY_OBJECTS,
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_fd;
|
|
}
|
|
|
|
|
|
pub const KHR_push_descriptor = 1;
|
|
pub const KHR_PUSH_DESCRIPTOR_SPEC_VERSION = 2;
|
|
pub const KHR_PUSH_DESCRIPTOR_EXTENSION_NAME = "VK_KHR_push_descriptor";
|
|
|
|
pub const PhysicalDevicePushDescriptorPropertiesKHR = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR,
|
|
pNext: ?*anyopaque = null,
|
|
maxPushDescriptors: u32,
|
|
};
|
|
|
|
pub extern fn vkCmdPushDescriptorSetKHR(
|
|
commandBuffer: CommandBuffer,
|
|
pipelineBindPoint: PipelineBindPoint,
|
|
layout: PipelineLayout,
|
|
set: u32,
|
|
descriptorWriteCount: u32,
|
|
pDescriptorWrites: [*]const WriteDescriptorSet,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdPushDescriptorSetWithTemplateKHR(
|
|
commandBuffer: CommandBuffer,
|
|
descriptorUpdateTemplate: DescriptorUpdateTemplate,
|
|
layout: PipelineLayout,
|
|
set: u32,
|
|
pData: ?*const anyopaque,
|
|
) callconv(CallConv) void;
|
|
|
|
pub inline fn CmdPushDescriptorSetKHR(commandBuffer: CommandBuffer, pipelineBindPoint: PipelineBindPoint, layout: PipelineLayout, set: u32, descriptorWrites: []const WriteDescriptorSet) void {
|
|
vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, @intCast(u32, descriptorWrites.len), descriptorWrites.ptr);
|
|
}
|
|
|
|
pub const CmdPushDescriptorSetWithTemplateKHR = vkCmdPushDescriptorSetWithTemplateKHR;
|
|
|
|
|
|
pub const KHR_shader_float16_int8 = 1;
|
|
pub const KHR_SHADER_FLOAT16_INT8_SPEC_VERSION = 1;
|
|
pub const KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME = "VK_KHR_shader_float16_int8";
|
|
|
|
pub const PhysicalDeviceShaderFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
|
|
pub const PhysicalDeviceFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
|
|
|
|
|
|
pub const KHR_16bit_storage = 1;
|
|
pub const KHR_16BIT_STORAGE_SPEC_VERSION = 1;
|
|
pub const KHR_16BIT_STORAGE_EXTENSION_NAME = "VK_KHR_16bit_storage";
|
|
|
|
pub const PhysicalDevice16BitStorageFeaturesKHR = PhysicalDevice16BitStorageFeatures;
|
|
|
|
|
|
pub const KHR_incremental_present = 1;
|
|
pub const KHR_INCREMENTAL_PRESENT_SPEC_VERSION = 1;
|
|
pub const KHR_INCREMENTAL_PRESENT_EXTENSION_NAME = "VK_KHR_incremental_present";
|
|
|
|
pub const RectLayerKHR = extern struct {
|
|
offset: Offset2D,
|
|
extent: Extent2D,
|
|
layer: u32,
|
|
};
|
|
|
|
pub const PresentRegionKHR = extern struct {
|
|
rectangleCount: u32 = 0,
|
|
pRectangles: ?[*]const RectLayerKHR = null,
|
|
};
|
|
|
|
pub const PresentRegionsKHR = extern struct {
|
|
sType: StructureType = .PRESENT_REGIONS_KHR,
|
|
pNext: ?*const anyopaque = null,
|
|
swapchainCount: u32,
|
|
pRegions: ?[*]const PresentRegionKHR = null,
|
|
};
|
|
|
|
|
|
pub const KHR_descriptor_update_template = 1;
|
|
pub const DescriptorUpdateTemplateKHR = DescriptorUpdateTemplate;
|
|
|
|
pub const KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION = 1;
|
|
pub const KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME = "VK_KHR_descriptor_update_template";
|
|
|
|
pub const DescriptorUpdateTemplateTypeKHR = DescriptorUpdateTemplateType;
|
|
|
|
pub const DescriptorUpdateTemplateCreateFlagsKHR = DescriptorUpdateTemplateCreateFlags;
|
|
|
|
pub const DescriptorUpdateTemplateEntryKHR = DescriptorUpdateTemplateEntry;
|
|
pub const DescriptorUpdateTemplateCreateInfoKHR = DescriptorUpdateTemplateCreateInfo;
|
|
|
|
pub extern fn vkCreateDescriptorUpdateTemplateKHR(
|
|
device: Device,
|
|
pCreateInfo: *const DescriptorUpdateTemplateCreateInfo,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pDescriptorUpdateTemplate: *DescriptorUpdateTemplate,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroyDescriptorUpdateTemplateKHR(
|
|
device: Device,
|
|
descriptorUpdateTemplate: DescriptorUpdateTemplate,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkUpdateDescriptorSetWithTemplateKHR(
|
|
device: Device,
|
|
descriptorSet: DescriptorSet,
|
|
descriptorUpdateTemplate: DescriptorUpdateTemplate,
|
|
pData: ?*const anyopaque,
|
|
) callconv(CallConv) void;
|
|
|
|
pub inline fn CreateDescriptorUpdateTemplateKHR(device: Device, createInfo: DescriptorUpdateTemplateCreateInfo, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!DescriptorUpdateTemplate {
|
|
var out_descriptorUpdateTemplate: DescriptorUpdateTemplate = undefined;
|
|
const result = vkCreateDescriptorUpdateTemplateKHR(device, &createInfo, pAllocator, &out_descriptorUpdateTemplate);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_descriptorUpdateTemplate;
|
|
}
|
|
|
|
pub const DestroyDescriptorUpdateTemplateKHR = vkDestroyDescriptorUpdateTemplateKHR;
|
|
pub const UpdateDescriptorSetWithTemplateKHR = vkUpdateDescriptorSetWithTemplateKHR;
|
|
|
|
|
|
pub const KHR_imageless_framebuffer = 1;
|
|
pub const KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION = 1;
|
|
pub const KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME = "VK_KHR_imageless_framebuffer";
|
|
|
|
pub const PhysicalDeviceImagelessFramebufferFeaturesKHR = PhysicalDeviceImagelessFramebufferFeatures;
|
|
pub const FramebufferAttachmentsCreateInfoKHR = FramebufferAttachmentsCreateInfo;
|
|
pub const FramebufferAttachmentImageInfoKHR = FramebufferAttachmentImageInfo;
|
|
pub const RenderPassAttachmentBeginInfoKHR = RenderPassAttachmentBeginInfo;
|
|
|
|
|
|
pub const KHR_create_renderpass2 = 1;
|
|
pub const KHR_CREATE_RENDERPASS_2_SPEC_VERSION = 1;
|
|
pub const KHR_CREATE_RENDERPASS_2_EXTENSION_NAME = "VK_KHR_create_renderpass2";
|
|
|
|
pub const RenderPassCreateInfo2KHR = RenderPassCreateInfo2;
|
|
pub const AttachmentDescription2KHR = AttachmentDescription2;
|
|
pub const AttachmentReference2KHR = AttachmentReference2;
|
|
pub const SubpassDescription2KHR = SubpassDescription2;
|
|
pub const SubpassDependency2KHR = SubpassDependency2;
|
|
pub const SubpassBeginInfoKHR = SubpassBeginInfo;
|
|
pub const SubpassEndInfoKHR = SubpassEndInfo;
|
|
|
|
pub extern fn vkCreateRenderPass2KHR(
|
|
device: Device,
|
|
pCreateInfo: *const RenderPassCreateInfo2,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pRenderPass: *RenderPass,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkCmdBeginRenderPass2KHR(
|
|
commandBuffer: CommandBuffer,
|
|
pRenderPassBegin: *const RenderPassBeginInfo,
|
|
pSubpassBeginInfo: *const SubpassBeginInfo,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdNextSubpass2KHR(
|
|
commandBuffer: CommandBuffer,
|
|
pSubpassBeginInfo: *const SubpassBeginInfo,
|
|
pSubpassEndInfo: *const SubpassEndInfo,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdEndRenderPass2KHR(
|
|
commandBuffer: CommandBuffer,
|
|
pSubpassEndInfo: *const SubpassEndInfo,
|
|
) callconv(CallConv) void;
|
|
|
|
pub inline fn CreateRenderPass2KHR(device: Device, createInfo: RenderPassCreateInfo2, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!RenderPass {
|
|
var out_renderPass: RenderPass = undefined;
|
|
const result = vkCreateRenderPass2KHR(device, &createInfo, pAllocator, &out_renderPass);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_renderPass;
|
|
}
|
|
|
|
pub inline fn CmdBeginRenderPass2KHR(commandBuffer: CommandBuffer, renderPassBegin: RenderPassBeginInfo, subpassBeginInfo: SubpassBeginInfo) void {
|
|
vkCmdBeginRenderPass2KHR(commandBuffer, &renderPassBegin, &subpassBeginInfo);
|
|
}
|
|
|
|
pub inline fn CmdNextSubpass2KHR(commandBuffer: CommandBuffer, subpassBeginInfo: SubpassBeginInfo, subpassEndInfo: SubpassEndInfo) void {
|
|
vkCmdNextSubpass2KHR(commandBuffer, &subpassBeginInfo, &subpassEndInfo);
|
|
}
|
|
|
|
pub inline fn CmdEndRenderPass2KHR(commandBuffer: CommandBuffer, subpassEndInfo: SubpassEndInfo) void {
|
|
vkCmdEndRenderPass2KHR(commandBuffer, &subpassEndInfo);
|
|
}
|
|
|
|
|
|
pub const KHR_shared_presentable_image = 1;
|
|
pub const KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION = 1;
|
|
pub const KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME = "VK_KHR_shared_presentable_image";
|
|
|
|
pub const SharedPresentSurfaceCapabilitiesKHR = extern struct {
|
|
sType: StructureType = .SHARED_PRESENT_SURFACE_CAPABILITIES_KHR,
|
|
pNext: ?*anyopaque = null,
|
|
sharedPresentSupportedUsageFlags: ImageUsageFlags align(4) = ImageUsageFlags{},
|
|
};
|
|
|
|
pub extern fn vkGetSwapchainStatusKHR(
|
|
device: Device,
|
|
swapchain: SwapchainKHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub inline fn GetSwapchainStatusKHR(device: Device, swapchain: SwapchainKHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_DEVICE_LOST,VK_OUT_OF_DATE_KHR,VK_SURFACE_LOST_KHR,VK_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT,VK_UNDOCUMENTED_ERROR}!Result {
|
|
const result = vkGetSwapchainStatusKHR(device, swapchain);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_DEVICE_LOST => error.VK_DEVICE_LOST,
|
|
.ERROR_OUT_OF_DATE_KHR => error.VK_OUT_OF_DATE_KHR,
|
|
.ERROR_SURFACE_LOST_KHR => error.VK_SURFACE_LOST_KHR,
|
|
.ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT => error.VK_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return result;
|
|
}
|
|
|
|
|
|
pub const KHR_external_fence_capabilities = 1;
|
|
pub const KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION = 1;
|
|
pub const KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME = "VK_KHR_external_fence_capabilities";
|
|
|
|
pub const ExternalFenceHandleTypeFlagsKHR = ExternalFenceHandleTypeFlags;
|
|
pub const ExternalFenceFeatureFlagsKHR = ExternalFenceFeatureFlags;
|
|
|
|
pub const PhysicalDeviceExternalFenceInfoKHR = PhysicalDeviceExternalFenceInfo;
|
|
pub const ExternalFencePropertiesKHR = ExternalFenceProperties;
|
|
|
|
pub extern fn vkGetPhysicalDeviceExternalFencePropertiesKHR(
|
|
physicalDevice: PhysicalDevice,
|
|
pExternalFenceInfo: *const PhysicalDeviceExternalFenceInfo,
|
|
pExternalFenceProperties: *ExternalFenceProperties,
|
|
) callconv(CallConv) void;
|
|
|
|
pub inline fn GetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice: PhysicalDevice, externalFenceInfo: PhysicalDeviceExternalFenceInfo) ExternalFenceProperties {
|
|
var out_externalFenceProperties: ExternalFenceProperties = undefined;
|
|
vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, &externalFenceInfo, &out_externalFenceProperties);
|
|
return out_externalFenceProperties;
|
|
}
|
|
|
|
|
|
pub const KHR_external_fence = 1;
|
|
pub const KHR_EXTERNAL_FENCE_SPEC_VERSION = 1;
|
|
pub const KHR_EXTERNAL_FENCE_EXTENSION_NAME = "VK_KHR_external_fence";
|
|
|
|
pub const FenceImportFlagsKHR = FenceImportFlags;
|
|
|
|
pub const ExportFenceCreateInfoKHR = ExportFenceCreateInfo;
|
|
|
|
|
|
pub const KHR_external_fence_fd = 1;
|
|
pub const KHR_EXTERNAL_FENCE_FD_SPEC_VERSION = 1;
|
|
pub const KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME = "VK_KHR_external_fence_fd";
|
|
|
|
pub const ImportFenceFdInfoKHR = extern struct {
|
|
sType: StructureType = .IMPORT_FENCE_FD_INFO_KHR,
|
|
pNext: ?*const anyopaque = null,
|
|
fence: Fence,
|
|
flags: FenceImportFlags align(4) = FenceImportFlags{},
|
|
handleType: ExternalFenceHandleTypeFlags align(4),
|
|
fd: c_int,
|
|
};
|
|
|
|
pub const FenceGetFdInfoKHR = extern struct {
|
|
sType: StructureType = .FENCE_GET_FD_INFO_KHR,
|
|
pNext: ?*const anyopaque = null,
|
|
fence: Fence,
|
|
handleType: ExternalFenceHandleTypeFlags align(4),
|
|
};
|
|
|
|
pub extern fn vkImportFenceFdKHR(
|
|
device: Device,
|
|
pImportFenceFdInfo: *const ImportFenceFdInfoKHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetFenceFdKHR(
|
|
device: Device,
|
|
pGetFdInfo: *const FenceGetFdInfoKHR,
|
|
pFd: *c_int,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub inline fn ImportFenceFdKHR(device: Device, importFenceFdInfo: ImportFenceFdInfoKHR) error{VK_OUT_OF_HOST_MEMORY,VK_INVALID_EXTERNAL_HANDLE,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkImportFenceFdKHR(device, &importFenceFdInfo);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_INVALID_EXTERNAL_HANDLE => error.VK_INVALID_EXTERNAL_HANDLE,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn GetFenceFdKHR(device: Device, getFdInfo: FenceGetFdInfoKHR) error{VK_TOO_MANY_OBJECTS,VK_OUT_OF_HOST_MEMORY,VK_UNDOCUMENTED_ERROR}!c_int {
|
|
var out_fd: c_int = undefined;
|
|
const result = vkGetFenceFdKHR(device, &getFdInfo, &out_fd);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_TOO_MANY_OBJECTS => error.VK_TOO_MANY_OBJECTS,
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_fd;
|
|
}
|
|
|
|
|
|
pub const KHR_performance_query = 1;
|
|
pub const KHR_PERFORMANCE_QUERY_SPEC_VERSION = 1;
|
|
pub const KHR_PERFORMANCE_QUERY_EXTENSION_NAME = "VK_KHR_performance_query";
|
|
|
|
pub const PerformanceCounterUnitKHR = enum(i32) {
|
|
GENERIC = 0,
|
|
PERCENTAGE = 1,
|
|
NANOSECONDS = 2,
|
|
BYTES = 3,
|
|
BYTES_PER_SECOND = 4,
|
|
KELVIN = 5,
|
|
WATTS = 6,
|
|
VOLTS = 7,
|
|
AMPS = 8,
|
|
HERTZ = 9,
|
|
CYCLES = 10,
|
|
_,
|
|
};
|
|
|
|
pub const PerformanceCounterScopeKHR = enum(i32) {
|
|
COMMAND_BUFFER = 0,
|
|
RENDER_PASS = 1,
|
|
COMMAND = 2,
|
|
_,
|
|
|
|
const Self = @This();
|
|
pub const QUERY_SCOPE_COMMAND_BUFFER = Self.COMMAND_BUFFER;
|
|
pub const QUERY_SCOPE_RENDER_PASS = Self.RENDER_PASS;
|
|
pub const QUERY_SCOPE_COMMAND = Self.COMMAND;
|
|
};
|
|
|
|
pub const PerformanceCounterStorageKHR = enum(i32) {
|
|
INT32 = 0,
|
|
INT64 = 1,
|
|
UINT32 = 2,
|
|
UINT64 = 3,
|
|
FLOAT32 = 4,
|
|
FLOAT64 = 5,
|
|
_,
|
|
};
|
|
|
|
pub const PerformanceCounterDescriptionFlagsKHR = packed struct {
|
|
performanceImpacting: bool = false,
|
|
concurrentlyImpacted: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const AcquireProfilingLockFlagsKHR = packed struct {
|
|
__reserved_bit_00: bool = false,
|
|
__reserved_bit_01: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const PhysicalDevicePerformanceQueryFeaturesKHR = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR,
|
|
pNext: ?*anyopaque = null,
|
|
performanceCounterQueryPools: Bool32,
|
|
performanceCounterMultipleQueryPools: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDevicePerformanceQueryPropertiesKHR = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR,
|
|
pNext: ?*anyopaque = null,
|
|
allowCommandBufferQueryCopies: Bool32,
|
|
};
|
|
|
|
pub const PerformanceCounterKHR = extern struct {
|
|
sType: StructureType = .PERFORMANCE_COUNTER_KHR,
|
|
pNext: ?*const anyopaque = null,
|
|
unit: PerformanceCounterUnitKHR,
|
|
scope: PerformanceCounterScopeKHR,
|
|
storage: PerformanceCounterStorageKHR,
|
|
uuid: [UUID_SIZE]u8,
|
|
};
|
|
|
|
pub const PerformanceCounterDescriptionKHR = extern struct {
|
|
sType: StructureType = .PERFORMANCE_COUNTER_DESCRIPTION_KHR,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: PerformanceCounterDescriptionFlagsKHR align(4) = PerformanceCounterDescriptionFlagsKHR{},
|
|
name: [MAX_DESCRIPTION_SIZE-1:0]u8,
|
|
category: [MAX_DESCRIPTION_SIZE-1:0]u8,
|
|
description: [MAX_DESCRIPTION_SIZE-1:0]u8,
|
|
};
|
|
|
|
pub const QueryPoolPerformanceCreateInfoKHR = extern struct {
|
|
sType: StructureType = .QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR,
|
|
pNext: ?*const anyopaque = null,
|
|
queueFamilyIndex: u32,
|
|
counterIndexCount: u32,
|
|
pCounterIndices: [*]const u32,
|
|
};
|
|
|
|
pub const PerformanceCounterResultKHR = extern union {
|
|
int32: i32,
|
|
int64: i64,
|
|
uint32: u32,
|
|
uint64: u64,
|
|
float32: f32,
|
|
float64: f64,
|
|
};
|
|
|
|
pub const AcquireProfilingLockInfoKHR = extern struct {
|
|
sType: StructureType = .ACQUIRE_PROFILING_LOCK_INFO_KHR,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: AcquireProfilingLockFlagsKHR align(4) = AcquireProfilingLockFlagsKHR{},
|
|
timeout: u64,
|
|
};
|
|
|
|
pub const PerformanceQuerySubmitInfoKHR = extern struct {
|
|
sType: StructureType = .PERFORMANCE_QUERY_SUBMIT_INFO_KHR,
|
|
pNext: ?*const anyopaque = null,
|
|
counterPassIndex: u32,
|
|
};
|
|
|
|
pub extern fn vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
|
|
physicalDevice: PhysicalDevice,
|
|
queueFamilyIndex: u32,
|
|
pCounterCount: *u32,
|
|
pCounters: ?[*]PerformanceCounterKHR,
|
|
pCounterDescriptions: ?[*]PerformanceCounterDescriptionKHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
|
|
physicalDevice: PhysicalDevice,
|
|
pPerformanceQueryCreateInfo: *const QueryPoolPerformanceCreateInfoKHR,
|
|
pNumPasses: *u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkAcquireProfilingLockKHR(
|
|
device: Device,
|
|
pInfo: *const AcquireProfilingLockInfoKHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkReleaseProfilingLockKHR(device: Device) callconv(CallConv) void;
|
|
|
|
pub const EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRResult = struct {
|
|
result: Result,
|
|
counters: []PerformanceCounterKHR,
|
|
counterDescriptions: []PerformanceCounterDescriptionKHR,
|
|
};
|
|
pub inline fn EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice: PhysicalDevice, queueFamilyIndex: u32, counters: []PerformanceCounterKHR, counterDescriptions: []PerformanceCounterDescriptionKHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_INITIALIZATION_FAILED,VK_UNDOCUMENTED_ERROR}!EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRResult {
|
|
var returnValues: EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRResult = undefined;
|
|
var counterCount: u32 = @intCast(u32, counters.len);
|
|
assert(counterDescriptions.len >= counters.len);
|
|
const result = vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, &counterCount, counters.ptr, counterDescriptions.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_INITIALIZATION_FAILED => error.VK_INITIALIZATION_FAILED,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.counters = counters[0..counterCount];
|
|
returnValues.counterDescriptions = counterDescriptions[0..counterCount];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersCountKHR(physicalDevice: PhysicalDevice, queueFamilyIndex: u32) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_INITIALIZATION_FAILED,VK_UNDOCUMENTED_ERROR}!u32 {
|
|
var out_counterCount: u32 = undefined;
|
|
const result = vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, &out_counterCount, null, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_INITIALIZATION_FAILED => error.VK_INITIALIZATION_FAILED,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_counterCount;
|
|
}
|
|
|
|
pub inline fn GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice: PhysicalDevice, performanceQueryCreateInfo: QueryPoolPerformanceCreateInfoKHR) u32 {
|
|
var out_numPasses: u32 = undefined;
|
|
vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, &performanceQueryCreateInfo, &out_numPasses);
|
|
return out_numPasses;
|
|
}
|
|
|
|
pub inline fn AcquireProfilingLockKHR(device: Device, info: AcquireProfilingLockInfoKHR) error{VK_TIMEOUT,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkAcquireProfilingLockKHR(device, &info);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.TIMEOUT => error.VK_TIMEOUT,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub const ReleaseProfilingLockKHR = vkReleaseProfilingLockKHR;
|
|
|
|
|
|
pub const KHR_maintenance2 = 1;
|
|
pub const KHR_MAINTENANCE2_SPEC_VERSION = 1;
|
|
pub const KHR_MAINTENANCE2_EXTENSION_NAME = "VK_KHR_maintenance2";
|
|
|
|
pub const PointClippingBehaviorKHR = PointClippingBehavior;
|
|
pub const TessellationDomainOriginKHR = TessellationDomainOrigin;
|
|
|
|
pub const PhysicalDevicePointClippingPropertiesKHR = PhysicalDevicePointClippingProperties;
|
|
pub const RenderPassInputAttachmentAspectCreateInfoKHR = RenderPassInputAttachmentAspectCreateInfo;
|
|
pub const InputAttachmentAspectReferenceKHR = InputAttachmentAspectReference;
|
|
pub const ImageViewUsageCreateInfoKHR = ImageViewUsageCreateInfo;
|
|
pub const PipelineTessellationDomainOriginStateCreateInfoKHR = PipelineTessellationDomainOriginStateCreateInfo;
|
|
|
|
|
|
pub const KHR_get_surface_capabilities2 = 1;
|
|
pub const KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION = 1;
|
|
pub const KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME = "VK_KHR_get_surface_capabilities2";
|
|
|
|
pub const PhysicalDeviceSurfaceInfo2KHR = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_SURFACE_INFO_2_KHR,
|
|
pNext: ?*const anyopaque = null,
|
|
surface: SurfaceKHR,
|
|
};
|
|
|
|
pub const SurfaceCapabilities2KHR = extern struct {
|
|
sType: StructureType = .SURFACE_CAPABILITIES_2_KHR,
|
|
pNext: ?*anyopaque = null,
|
|
surfaceCapabilities: SurfaceCapabilitiesKHR,
|
|
};
|
|
|
|
pub const SurfaceFormat2KHR = extern struct {
|
|
sType: StructureType = .SURFACE_FORMAT_2_KHR,
|
|
pNext: ?*anyopaque = null,
|
|
surfaceFormat: SurfaceFormatKHR,
|
|
};
|
|
|
|
pub extern fn vkGetPhysicalDeviceSurfaceCapabilities2KHR(
|
|
physicalDevice: PhysicalDevice,
|
|
pSurfaceInfo: *const PhysicalDeviceSurfaceInfo2KHR,
|
|
pSurfaceCapabilities: *SurfaceCapabilities2KHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetPhysicalDeviceSurfaceFormats2KHR(
|
|
physicalDevice: PhysicalDevice,
|
|
pSurfaceInfo: *const PhysicalDeviceSurfaceInfo2KHR,
|
|
pSurfaceFormatCount: *u32,
|
|
pSurfaceFormats: ?[*]SurfaceFormat2KHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub inline fn GetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice: PhysicalDevice, surfaceInfo: PhysicalDeviceSurfaceInfo2KHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_SURFACE_LOST_KHR,VK_UNDOCUMENTED_ERROR}!SurfaceCapabilities2KHR {
|
|
var out_surfaceCapabilities: SurfaceCapabilities2KHR = undefined;
|
|
const result = vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, &surfaceInfo, &out_surfaceCapabilities);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_SURFACE_LOST_KHR => error.VK_SURFACE_LOST_KHR,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_surfaceCapabilities;
|
|
}
|
|
|
|
pub const GetPhysicalDeviceSurfaceFormats2KHRResult = struct {
|
|
result: Result,
|
|
surfaceFormats: []SurfaceFormat2KHR,
|
|
};
|
|
pub inline fn GetPhysicalDeviceSurfaceFormats2KHR(physicalDevice: PhysicalDevice, surfaceInfo: PhysicalDeviceSurfaceInfo2KHR, surfaceFormats: []SurfaceFormat2KHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_SURFACE_LOST_KHR,VK_UNDOCUMENTED_ERROR}!GetPhysicalDeviceSurfaceFormats2KHRResult {
|
|
var returnValues: GetPhysicalDeviceSurfaceFormats2KHRResult = undefined;
|
|
var surfaceFormatCount: u32 = @intCast(u32, surfaceFormats.len);
|
|
const result = vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, &surfaceInfo, &surfaceFormatCount, surfaceFormats.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_SURFACE_LOST_KHR => error.VK_SURFACE_LOST_KHR,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.surfaceFormats = surfaceFormats[0..surfaceFormatCount];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn GetPhysicalDeviceSurfaceFormats2CountKHR(physicalDevice: PhysicalDevice, surfaceInfo: PhysicalDeviceSurfaceInfo2KHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_SURFACE_LOST_KHR,VK_UNDOCUMENTED_ERROR}!u32 {
|
|
var out_surfaceFormatCount: u32 = undefined;
|
|
const result = vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, &surfaceInfo, &out_surfaceFormatCount, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_SURFACE_LOST_KHR => error.VK_SURFACE_LOST_KHR,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_surfaceFormatCount;
|
|
}
|
|
|
|
|
|
pub const KHR_variable_pointers = 1;
|
|
pub const KHR_VARIABLE_POINTERS_SPEC_VERSION = 1;
|
|
pub const KHR_VARIABLE_POINTERS_EXTENSION_NAME = "VK_KHR_variable_pointers";
|
|
|
|
pub const PhysicalDeviceVariablePointerFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
|
|
pub const PhysicalDeviceVariablePointersFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
|
|
|
|
|
|
pub const KHR_get_display_properties2 = 1;
|
|
pub const KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION = 1;
|
|
pub const KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME = "VK_KHR_get_display_properties2";
|
|
|
|
pub const DisplayProperties2KHR = extern struct {
|
|
sType: StructureType = .DISPLAY_PROPERTIES_2_KHR,
|
|
pNext: ?*anyopaque = null,
|
|
displayProperties: DisplayPropertiesKHR,
|
|
};
|
|
|
|
pub const DisplayPlaneProperties2KHR = extern struct {
|
|
sType: StructureType = .DISPLAY_PLANE_PROPERTIES_2_KHR,
|
|
pNext: ?*anyopaque = null,
|
|
displayPlaneProperties: DisplayPlanePropertiesKHR,
|
|
};
|
|
|
|
pub const DisplayModeProperties2KHR = extern struct {
|
|
sType: StructureType = .DISPLAY_MODE_PROPERTIES_2_KHR,
|
|
pNext: ?*anyopaque = null,
|
|
displayModeProperties: DisplayModePropertiesKHR,
|
|
};
|
|
|
|
pub const DisplayPlaneInfo2KHR = extern struct {
|
|
sType: StructureType = .DISPLAY_PLANE_INFO_2_KHR,
|
|
pNext: ?*const anyopaque = null,
|
|
mode: DisplayModeKHR,
|
|
planeIndex: u32,
|
|
};
|
|
|
|
pub const DisplayPlaneCapabilities2KHR = extern struct {
|
|
sType: StructureType = .DISPLAY_PLANE_CAPABILITIES_2_KHR,
|
|
pNext: ?*anyopaque = null,
|
|
capabilities: DisplayPlaneCapabilitiesKHR,
|
|
};
|
|
|
|
pub extern fn vkGetPhysicalDeviceDisplayProperties2KHR(
|
|
physicalDevice: PhysicalDevice,
|
|
pPropertyCount: *u32,
|
|
pProperties: ?[*]DisplayProperties2KHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
|
|
physicalDevice: PhysicalDevice,
|
|
pPropertyCount: *u32,
|
|
pProperties: ?[*]DisplayPlaneProperties2KHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetDisplayModeProperties2KHR(
|
|
physicalDevice: PhysicalDevice,
|
|
display: DisplayKHR,
|
|
pPropertyCount: *u32,
|
|
pProperties: ?[*]DisplayModeProperties2KHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetDisplayPlaneCapabilities2KHR(
|
|
physicalDevice: PhysicalDevice,
|
|
pDisplayPlaneInfo: *const DisplayPlaneInfo2KHR,
|
|
pCapabilities: *DisplayPlaneCapabilities2KHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub const GetPhysicalDeviceDisplayProperties2KHRResult = struct {
|
|
result: Result,
|
|
properties: []DisplayProperties2KHR,
|
|
};
|
|
pub inline fn GetPhysicalDeviceDisplayProperties2KHR(physicalDevice: PhysicalDevice, properties: []DisplayProperties2KHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!GetPhysicalDeviceDisplayProperties2KHRResult {
|
|
var returnValues: GetPhysicalDeviceDisplayProperties2KHRResult = undefined;
|
|
var propertyCount: u32 = @intCast(u32, properties.len);
|
|
const result = vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, &propertyCount, properties.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.properties = properties[0..propertyCount];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn GetPhysicalDeviceDisplayProperties2CountKHR(physicalDevice: PhysicalDevice) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!u32 {
|
|
var out_propertyCount: u32 = undefined;
|
|
const result = vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, &out_propertyCount, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_propertyCount;
|
|
}
|
|
|
|
pub const GetPhysicalDeviceDisplayPlaneProperties2KHRResult = struct {
|
|
result: Result,
|
|
properties: []DisplayPlaneProperties2KHR,
|
|
};
|
|
pub inline fn GetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice: PhysicalDevice, properties: []DisplayPlaneProperties2KHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!GetPhysicalDeviceDisplayPlaneProperties2KHRResult {
|
|
var returnValues: GetPhysicalDeviceDisplayPlaneProperties2KHRResult = undefined;
|
|
var propertyCount: u32 = @intCast(u32, properties.len);
|
|
const result = vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, &propertyCount, properties.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.properties = properties[0..propertyCount];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn GetPhysicalDeviceDisplayPlaneProperties2CountKHR(physicalDevice: PhysicalDevice) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!u32 {
|
|
var out_propertyCount: u32 = undefined;
|
|
const result = vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, &out_propertyCount, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_propertyCount;
|
|
}
|
|
|
|
pub const GetDisplayModeProperties2KHRResult = struct {
|
|
result: Result,
|
|
properties: []DisplayModeProperties2KHR,
|
|
};
|
|
pub inline fn GetDisplayModeProperties2KHR(physicalDevice: PhysicalDevice, display: DisplayKHR, properties: []DisplayModeProperties2KHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!GetDisplayModeProperties2KHRResult {
|
|
var returnValues: GetDisplayModeProperties2KHRResult = undefined;
|
|
var propertyCount: u32 = @intCast(u32, properties.len);
|
|
const result = vkGetDisplayModeProperties2KHR(physicalDevice, display, &propertyCount, properties.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.properties = properties[0..propertyCount];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn GetDisplayModeProperties2CountKHR(physicalDevice: PhysicalDevice, display: DisplayKHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!u32 {
|
|
var out_propertyCount: u32 = undefined;
|
|
const result = vkGetDisplayModeProperties2KHR(physicalDevice, display, &out_propertyCount, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_propertyCount;
|
|
}
|
|
|
|
pub inline fn GetDisplayPlaneCapabilities2KHR(physicalDevice: PhysicalDevice, displayPlaneInfo: DisplayPlaneInfo2KHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!DisplayPlaneCapabilities2KHR {
|
|
var out_capabilities: DisplayPlaneCapabilities2KHR = undefined;
|
|
const result = vkGetDisplayPlaneCapabilities2KHR(physicalDevice, &displayPlaneInfo, &out_capabilities);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_capabilities;
|
|
}
|
|
|
|
|
|
pub const KHR_dedicated_allocation = 1;
|
|
pub const KHR_DEDICATED_ALLOCATION_SPEC_VERSION = 3;
|
|
pub const KHR_DEDICATED_ALLOCATION_EXTENSION_NAME = "VK_KHR_dedicated_allocation";
|
|
|
|
pub const MemoryDedicatedRequirementsKHR = MemoryDedicatedRequirements;
|
|
pub const MemoryDedicatedAllocateInfoKHR = MemoryDedicatedAllocateInfo;
|
|
|
|
|
|
pub const KHR_storage_buffer_storage_class = 1;
|
|
pub const KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION = 1;
|
|
pub const KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME = "VK_KHR_storage_buffer_storage_class";
|
|
|
|
|
|
pub const KHR_relaxed_block_layout = 1;
|
|
pub const KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION = 1;
|
|
pub const KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME = "VK_KHR_relaxed_block_layout";
|
|
|
|
|
|
pub const KHR_get_memory_requirements2 = 1;
|
|
pub const KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION = 1;
|
|
pub const KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME = "VK_KHR_get_memory_requirements2";
|
|
|
|
pub const BufferMemoryRequirementsInfo2KHR = BufferMemoryRequirementsInfo2;
|
|
pub const ImageMemoryRequirementsInfo2KHR = ImageMemoryRequirementsInfo2;
|
|
pub const ImageSparseMemoryRequirementsInfo2KHR = ImageSparseMemoryRequirementsInfo2;
|
|
pub const SparseImageMemoryRequirements2KHR = SparseImageMemoryRequirements2;
|
|
|
|
pub extern fn vkGetImageMemoryRequirements2KHR(
|
|
device: Device,
|
|
pInfo: *const ImageMemoryRequirementsInfo2,
|
|
pMemoryRequirements: *MemoryRequirements2,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetBufferMemoryRequirements2KHR(
|
|
device: Device,
|
|
pInfo: *const BufferMemoryRequirementsInfo2,
|
|
pMemoryRequirements: *MemoryRequirements2,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetImageSparseMemoryRequirements2KHR(
|
|
device: Device,
|
|
pInfo: *const ImageSparseMemoryRequirementsInfo2,
|
|
pSparseMemoryRequirementCount: *u32,
|
|
pSparseMemoryRequirements: ?[*]SparseImageMemoryRequirements2,
|
|
) callconv(CallConv) void;
|
|
|
|
pub inline fn GetImageMemoryRequirements2KHR(device: Device, info: ImageMemoryRequirementsInfo2) MemoryRequirements2 {
|
|
var out_memoryRequirements: MemoryRequirements2 = undefined;
|
|
vkGetImageMemoryRequirements2KHR(device, &info, &out_memoryRequirements);
|
|
return out_memoryRequirements;
|
|
}
|
|
|
|
pub inline fn GetBufferMemoryRequirements2KHR(device: Device, info: BufferMemoryRequirementsInfo2) MemoryRequirements2 {
|
|
var out_memoryRequirements: MemoryRequirements2 = undefined;
|
|
vkGetBufferMemoryRequirements2KHR(device, &info, &out_memoryRequirements);
|
|
return out_memoryRequirements;
|
|
}
|
|
|
|
pub inline fn GetImageSparseMemoryRequirements2KHR(device: Device, info: ImageSparseMemoryRequirementsInfo2, sparseMemoryRequirements: []SparseImageMemoryRequirements2) []SparseImageMemoryRequirements2 {
|
|
var out_sparseMemoryRequirements: []SparseImageMemoryRequirements2 = undefined;
|
|
var sparseMemoryRequirementCount: u32 = @intCast(u32, sparseMemoryRequirements.len);
|
|
vkGetImageSparseMemoryRequirements2KHR(device, &info, &sparseMemoryRequirementCount, sparseMemoryRequirements.ptr);
|
|
out_sparseMemoryRequirements = sparseMemoryRequirements[0..sparseMemoryRequirementCount];
|
|
return out_sparseMemoryRequirements;
|
|
}
|
|
pub inline fn GetImageSparseMemoryRequirements2CountKHR(device: Device, info: ImageSparseMemoryRequirementsInfo2) u32 {
|
|
var out_sparseMemoryRequirementCount: u32 = undefined;
|
|
vkGetImageSparseMemoryRequirements2KHR(device, &info, &out_sparseMemoryRequirementCount, null);
|
|
return out_sparseMemoryRequirementCount;
|
|
}
|
|
|
|
|
|
pub const KHR_image_format_list = 1;
|
|
pub const KHR_IMAGE_FORMAT_LIST_SPEC_VERSION = 1;
|
|
pub const KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME = "VK_KHR_image_format_list";
|
|
|
|
pub const ImageFormatListCreateInfoKHR = ImageFormatListCreateInfo;
|
|
|
|
|
|
pub const KHR_sampler_ycbcr_conversion = 1;
|
|
pub const SamplerYcbcrConversionKHR = SamplerYcbcrConversion;
|
|
|
|
pub const KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION = 14;
|
|
pub const KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME = "VK_KHR_sampler_ycbcr_conversion";
|
|
|
|
pub const SamplerYcbcrModelConversionKHR = SamplerYcbcrModelConversion;
|
|
pub const SamplerYcbcrRangeKHR = SamplerYcbcrRange;
|
|
pub const ChromaLocationKHR = ChromaLocation;
|
|
|
|
pub const SamplerYcbcrConversionCreateInfoKHR = SamplerYcbcrConversionCreateInfo;
|
|
pub const SamplerYcbcrConversionInfoKHR = SamplerYcbcrConversionInfo;
|
|
pub const BindImagePlaneMemoryInfoKHR = BindImagePlaneMemoryInfo;
|
|
pub const ImagePlaneMemoryRequirementsInfoKHR = ImagePlaneMemoryRequirementsInfo;
|
|
pub const PhysicalDeviceSamplerYcbcrConversionFeaturesKHR = PhysicalDeviceSamplerYcbcrConversionFeatures;
|
|
pub const SamplerYcbcrConversionImageFormatPropertiesKHR = SamplerYcbcrConversionImageFormatProperties;
|
|
|
|
pub extern fn vkCreateSamplerYcbcrConversionKHR(
|
|
device: Device,
|
|
pCreateInfo: *const SamplerYcbcrConversionCreateInfo,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pYcbcrConversion: *SamplerYcbcrConversion,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroySamplerYcbcrConversionKHR(
|
|
device: Device,
|
|
ycbcrConversion: SamplerYcbcrConversion,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub inline fn CreateSamplerYcbcrConversionKHR(device: Device, createInfo: SamplerYcbcrConversionCreateInfo, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!SamplerYcbcrConversion {
|
|
var out_ycbcrConversion: SamplerYcbcrConversion = undefined;
|
|
const result = vkCreateSamplerYcbcrConversionKHR(device, &createInfo, pAllocator, &out_ycbcrConversion);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_ycbcrConversion;
|
|
}
|
|
|
|
pub const DestroySamplerYcbcrConversionKHR = vkDestroySamplerYcbcrConversionKHR;
|
|
|
|
|
|
pub const KHR_bind_memory2 = 1;
|
|
pub const KHR_BIND_MEMORY_2_SPEC_VERSION = 1;
|
|
pub const KHR_BIND_MEMORY_2_EXTENSION_NAME = "VK_KHR_bind_memory2";
|
|
|
|
pub const BindBufferMemoryInfoKHR = BindBufferMemoryInfo;
|
|
pub const BindImageMemoryInfoKHR = BindImageMemoryInfo;
|
|
|
|
pub extern fn vkBindBufferMemory2KHR(
|
|
device: Device,
|
|
bindInfoCount: u32,
|
|
pBindInfos: [*]const BindBufferMemoryInfo,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkBindImageMemory2KHR(
|
|
device: Device,
|
|
bindInfoCount: u32,
|
|
pBindInfos: [*]const BindImageMemoryInfo,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub inline fn BindBufferMemory2KHR(device: Device, bindInfos: []const BindBufferMemoryInfo) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_INVALID_OPAQUE_CAPTURE_ADDRESS,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkBindBufferMemory2KHR(device, @intCast(u32, bindInfos.len), bindInfos.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS => error.VK_INVALID_OPAQUE_CAPTURE_ADDRESS,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn BindImageMemory2KHR(device: Device, bindInfos: []const BindImageMemoryInfo) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkBindImageMemory2KHR(device, @intCast(u32, bindInfos.len), bindInfos.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
|
|
pub const KHR_maintenance3 = 1;
|
|
pub const KHR_MAINTENANCE3_SPEC_VERSION = 1;
|
|
pub const KHR_MAINTENANCE3_EXTENSION_NAME = "VK_KHR_maintenance3";
|
|
|
|
pub const PhysicalDeviceMaintenance3PropertiesKHR = PhysicalDeviceMaintenance3Properties;
|
|
pub const DescriptorSetLayoutSupportKHR = DescriptorSetLayoutSupport;
|
|
|
|
pub extern fn vkGetDescriptorSetLayoutSupportKHR(
|
|
device: Device,
|
|
pCreateInfo: *const DescriptorSetLayoutCreateInfo,
|
|
pSupport: *DescriptorSetLayoutSupport,
|
|
) callconv(CallConv) void;
|
|
|
|
pub inline fn GetDescriptorSetLayoutSupportKHR(device: Device, createInfo: DescriptorSetLayoutCreateInfo) DescriptorSetLayoutSupport {
|
|
var out_support: DescriptorSetLayoutSupport = undefined;
|
|
vkGetDescriptorSetLayoutSupportKHR(device, &createInfo, &out_support);
|
|
return out_support;
|
|
}
|
|
|
|
|
|
pub const KHR_draw_indirect_count = 1;
|
|
pub const KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION = 1;
|
|
pub const KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME = "VK_KHR_draw_indirect_count";
|
|
|
|
pub extern fn vkCmdDrawIndirectCountKHR(
|
|
commandBuffer: CommandBuffer,
|
|
buffer: Buffer,
|
|
offset: DeviceSize,
|
|
countBuffer: Buffer,
|
|
countBufferOffset: DeviceSize,
|
|
maxDrawCount: u32,
|
|
stride: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdDrawIndexedIndirectCountKHR(
|
|
commandBuffer: CommandBuffer,
|
|
buffer: Buffer,
|
|
offset: DeviceSize,
|
|
countBuffer: Buffer,
|
|
countBufferOffset: DeviceSize,
|
|
maxDrawCount: u32,
|
|
stride: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub const CmdDrawIndirectCountKHR = vkCmdDrawIndirectCountKHR;
|
|
pub const CmdDrawIndexedIndirectCountKHR = vkCmdDrawIndexedIndirectCountKHR;
|
|
|
|
|
|
pub const KHR_shader_subgroup_extended_types = 1;
|
|
pub const KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION = 1;
|
|
pub const KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME = "VK_KHR_shader_subgroup_extended_types";
|
|
|
|
pub const PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
|
|
|
|
|
|
pub const KHR_8bit_storage = 1;
|
|
pub const KHR_8BIT_STORAGE_SPEC_VERSION = 1;
|
|
pub const KHR_8BIT_STORAGE_EXTENSION_NAME = "VK_KHR_8bit_storage";
|
|
|
|
pub const PhysicalDevice8BitStorageFeaturesKHR = PhysicalDevice8BitStorageFeatures;
|
|
|
|
|
|
pub const KHR_shader_atomic_int64 = 1;
|
|
pub const KHR_SHADER_ATOMIC_INT64_SPEC_VERSION = 1;
|
|
pub const KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME = "VK_KHR_shader_atomic_int64";
|
|
|
|
pub const PhysicalDeviceShaderAtomicInt64FeaturesKHR = PhysicalDeviceShaderAtomicInt64Features;
|
|
|
|
|
|
pub const KHR_shader_clock = 1;
|
|
pub const KHR_SHADER_CLOCK_SPEC_VERSION = 1;
|
|
pub const KHR_SHADER_CLOCK_EXTENSION_NAME = "VK_KHR_shader_clock";
|
|
|
|
pub const PhysicalDeviceShaderClockFeaturesKHR = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR,
|
|
pNext: ?*anyopaque = null,
|
|
shaderSubgroupClock: Bool32,
|
|
shaderDeviceClock: Bool32,
|
|
};
|
|
|
|
|
|
pub const KHR_driver_properties = 1;
|
|
pub const KHR_DRIVER_PROPERTIES_SPEC_VERSION = 1;
|
|
pub const KHR_DRIVER_PROPERTIES_EXTENSION_NAME = "VK_KHR_driver_properties";
|
|
pub const MAX_DRIVER_NAME_SIZE_KHR = MAX_DRIVER_NAME_SIZE;
|
|
pub const MAX_DRIVER_INFO_SIZE_KHR = MAX_DRIVER_INFO_SIZE;
|
|
|
|
pub const DriverIdKHR = DriverId;
|
|
|
|
pub const ConformanceVersionKHR = ConformanceVersion;
|
|
pub const PhysicalDeviceDriverPropertiesKHR = PhysicalDeviceDriverProperties;
|
|
|
|
|
|
pub const KHR_shader_float_controls = 1;
|
|
pub const KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION = 4;
|
|
pub const KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME = "VK_KHR_shader_float_controls";
|
|
|
|
pub const ShaderFloatControlsIndependenceKHR = ShaderFloatControlsIndependence;
|
|
|
|
pub const PhysicalDeviceFloatControlsPropertiesKHR = PhysicalDeviceFloatControlsProperties;
|
|
|
|
|
|
pub const KHR_depth_stencil_resolve = 1;
|
|
pub const KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION = 1;
|
|
pub const KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME = "VK_KHR_depth_stencil_resolve";
|
|
|
|
pub const ResolveModeFlagsKHR = ResolveModeFlags;
|
|
|
|
pub const SubpassDescriptionDepthStencilResolveKHR = SubpassDescriptionDepthStencilResolve;
|
|
pub const PhysicalDeviceDepthStencilResolvePropertiesKHR = PhysicalDeviceDepthStencilResolveProperties;
|
|
|
|
|
|
pub const KHR_swapchain_mutable_format = 1;
|
|
pub const KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION = 1;
|
|
pub const KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME = "VK_KHR_swapchain_mutable_format";
|
|
|
|
|
|
pub const KHR_timeline_semaphore = 1;
|
|
pub const KHR_TIMELINE_SEMAPHORE_SPEC_VERSION = 2;
|
|
pub const KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME = "VK_KHR_timeline_semaphore";
|
|
|
|
pub const SemaphoreTypeKHR = SemaphoreType;
|
|
|
|
pub const SemaphoreWaitFlagsKHR = SemaphoreWaitFlags;
|
|
|
|
pub const PhysicalDeviceTimelineSemaphoreFeaturesKHR = PhysicalDeviceTimelineSemaphoreFeatures;
|
|
pub const PhysicalDeviceTimelineSemaphorePropertiesKHR = PhysicalDeviceTimelineSemaphoreProperties;
|
|
pub const SemaphoreTypeCreateInfoKHR = SemaphoreTypeCreateInfo;
|
|
pub const TimelineSemaphoreSubmitInfoKHR = TimelineSemaphoreSubmitInfo;
|
|
pub const SemaphoreWaitInfoKHR = SemaphoreWaitInfo;
|
|
pub const SemaphoreSignalInfoKHR = SemaphoreSignalInfo;
|
|
|
|
pub extern fn vkGetSemaphoreCounterValueKHR(
|
|
device: Device,
|
|
semaphore: Semaphore,
|
|
pValue: *u64,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkWaitSemaphoresKHR(
|
|
device: Device,
|
|
pWaitInfo: *const SemaphoreWaitInfo,
|
|
timeout: u64,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkSignalSemaphoreKHR(
|
|
device: Device,
|
|
pSignalInfo: *const SemaphoreSignalInfo,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub inline fn GetSemaphoreCounterValueKHR(device: Device, semaphore: Semaphore) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_DEVICE_LOST,VK_UNDOCUMENTED_ERROR}!u64 {
|
|
var out_value: u64 = undefined;
|
|
const result = vkGetSemaphoreCounterValueKHR(device, semaphore, &out_value);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_DEVICE_LOST => error.VK_DEVICE_LOST,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_value;
|
|
}
|
|
|
|
pub inline fn WaitSemaphoresKHR(device: Device, waitInfo: SemaphoreWaitInfo, timeout: u64) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_DEVICE_LOST,VK_UNDOCUMENTED_ERROR}!Result {
|
|
const result = vkWaitSemaphoresKHR(device, &waitInfo, timeout);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_DEVICE_LOST => error.VK_DEVICE_LOST,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return result;
|
|
}
|
|
|
|
pub inline fn SignalSemaphoreKHR(device: Device, signalInfo: SemaphoreSignalInfo) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkSignalSemaphoreKHR(device, &signalInfo);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
|
|
pub const KHR_vulkan_memory_model = 1;
|
|
pub const KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION = 3;
|
|
pub const KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME = "VK_KHR_vulkan_memory_model";
|
|
|
|
pub const PhysicalDeviceVulkanMemoryModelFeaturesKHR = PhysicalDeviceVulkanMemoryModelFeatures;
|
|
|
|
|
|
pub const KHR_spirv_1_4 = 1;
|
|
pub const KHR_SPIRV_1_4_SPEC_VERSION = 1;
|
|
pub const KHR_SPIRV_1_4_EXTENSION_NAME = "VK_KHR_spirv_1_4";
|
|
|
|
|
|
pub const KHR_surface_protected_capabilities = 1;
|
|
pub const KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION = 1;
|
|
pub const KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME = "VK_KHR_surface_protected_capabilities";
|
|
|
|
pub const SurfaceProtectedCapabilitiesKHR = extern struct {
|
|
sType: StructureType = .SURFACE_PROTECTED_CAPABILITIES_KHR,
|
|
pNext: ?*const anyopaque = null,
|
|
supportsProtected: Bool32,
|
|
};
|
|
|
|
|
|
pub const KHR_separate_depth_stencil_layouts = 1;
|
|
pub const KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION = 1;
|
|
pub const KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME = "VK_KHR_separate_depth_stencil_layouts";
|
|
|
|
pub const PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
|
|
pub const AttachmentReferenceStencilLayoutKHR = AttachmentReferenceStencilLayout;
|
|
pub const AttachmentDescriptionStencilLayoutKHR = AttachmentDescriptionStencilLayout;
|
|
|
|
|
|
pub const KHR_uniform_buffer_standard_layout = 1;
|
|
pub const KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION = 1;
|
|
pub const KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME = "VK_KHR_uniform_buffer_standard_layout";
|
|
|
|
pub const PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = PhysicalDeviceUniformBufferStandardLayoutFeatures;
|
|
|
|
|
|
pub const KHR_buffer_device_address = 1;
|
|
pub const KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION = 1;
|
|
pub const KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME = "VK_KHR_buffer_device_address";
|
|
|
|
pub const PhysicalDeviceBufferDeviceAddressFeaturesKHR = PhysicalDeviceBufferDeviceAddressFeatures;
|
|
pub const BufferDeviceAddressInfoKHR = BufferDeviceAddressInfo;
|
|
pub const BufferOpaqueCaptureAddressCreateInfoKHR = BufferOpaqueCaptureAddressCreateInfo;
|
|
pub const MemoryOpaqueCaptureAddressAllocateInfoKHR = MemoryOpaqueCaptureAddressAllocateInfo;
|
|
pub const DeviceMemoryOpaqueCaptureAddressInfoKHR = DeviceMemoryOpaqueCaptureAddressInfo;
|
|
|
|
pub extern fn vkGetBufferDeviceAddressKHR(
|
|
device: Device,
|
|
pInfo: *const BufferDeviceAddressInfo,
|
|
) callconv(CallConv) DeviceAddress;
|
|
|
|
pub extern fn vkGetBufferOpaqueCaptureAddressKHR(
|
|
device: Device,
|
|
pInfo: *const BufferDeviceAddressInfo,
|
|
) callconv(CallConv) u64;
|
|
|
|
pub extern fn vkGetDeviceMemoryOpaqueCaptureAddressKHR(
|
|
device: Device,
|
|
pInfo: *const DeviceMemoryOpaqueCaptureAddressInfo,
|
|
) callconv(CallConv) u64;
|
|
|
|
pub inline fn GetBufferDeviceAddressKHR(device: Device, info: BufferDeviceAddressInfo) DeviceAddress {
|
|
const result = vkGetBufferDeviceAddressKHR(device, &info);
|
|
return result;
|
|
}
|
|
|
|
pub inline fn GetBufferOpaqueCaptureAddressKHR(device: Device, info: BufferDeviceAddressInfo) u64 {
|
|
const result = vkGetBufferOpaqueCaptureAddressKHR(device, &info);
|
|
return result;
|
|
}
|
|
|
|
pub inline fn GetDeviceMemoryOpaqueCaptureAddressKHR(device: Device, info: DeviceMemoryOpaqueCaptureAddressInfo) u64 {
|
|
const result = vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, &info);
|
|
return result;
|
|
}
|
|
|
|
|
|
pub const KHR_pipeline_executable_properties = 1;
|
|
pub const KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION = 1;
|
|
pub const KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME = "VK_KHR_pipeline_executable_properties";
|
|
|
|
pub const PipelineExecutableStatisticFormatKHR = enum(i32) {
|
|
BOOL32 = 0,
|
|
INT64 = 1,
|
|
UINT64 = 2,
|
|
FLOAT64 = 3,
|
|
_,
|
|
};
|
|
|
|
pub const PhysicalDevicePipelineExecutablePropertiesFeaturesKHR = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR,
|
|
pNext: ?*anyopaque = null,
|
|
pipelineExecutableInfo: Bool32,
|
|
};
|
|
|
|
pub const PipelineInfoKHR = extern struct {
|
|
sType: StructureType = .PIPELINE_INFO_KHR,
|
|
pNext: ?*const anyopaque = null,
|
|
pipeline: Pipeline,
|
|
};
|
|
|
|
pub const PipelineExecutablePropertiesKHR = extern struct {
|
|
sType: StructureType = .PIPELINE_EXECUTABLE_PROPERTIES_KHR,
|
|
pNext: ?*anyopaque = null,
|
|
stages: ShaderStageFlags align(4),
|
|
name: [MAX_DESCRIPTION_SIZE-1:0]u8,
|
|
description: [MAX_DESCRIPTION_SIZE-1:0]u8,
|
|
subgroupSize: u32,
|
|
};
|
|
|
|
pub const PipelineExecutableInfoKHR = extern struct {
|
|
sType: StructureType = .PIPELINE_EXECUTABLE_INFO_KHR,
|
|
pNext: ?*const anyopaque = null,
|
|
pipeline: Pipeline,
|
|
executableIndex: u32,
|
|
};
|
|
|
|
pub const PipelineExecutableStatisticValueKHR = extern union {
|
|
b32: Bool32,
|
|
i64: i64,
|
|
u64: u64,
|
|
f64: f64,
|
|
};
|
|
|
|
pub const PipelineExecutableStatisticKHR = extern struct {
|
|
sType: StructureType = .PIPELINE_EXECUTABLE_STATISTIC_KHR,
|
|
pNext: ?*anyopaque = null,
|
|
name: [MAX_DESCRIPTION_SIZE-1:0]u8,
|
|
description: [MAX_DESCRIPTION_SIZE-1:0]u8,
|
|
format: PipelineExecutableStatisticFormatKHR,
|
|
value: PipelineExecutableStatisticValueKHR,
|
|
};
|
|
|
|
pub const PipelineExecutableInternalRepresentationKHR = extern struct {
|
|
sType: StructureType = .PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR,
|
|
pNext: ?*anyopaque = null,
|
|
name: [MAX_DESCRIPTION_SIZE-1:0]u8,
|
|
description: [MAX_DESCRIPTION_SIZE-1:0]u8,
|
|
isText: Bool32,
|
|
dataSize: usize = 0,
|
|
pData: ?*anyopaque = null,
|
|
};
|
|
|
|
pub extern fn vkGetPipelineExecutablePropertiesKHR(
|
|
device: Device,
|
|
pPipelineInfo: *const PipelineInfoKHR,
|
|
pExecutableCount: *u32,
|
|
pProperties: ?[*]PipelineExecutablePropertiesKHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetPipelineExecutableStatisticsKHR(
|
|
device: Device,
|
|
pExecutableInfo: *const PipelineExecutableInfoKHR,
|
|
pStatisticCount: *u32,
|
|
pStatistics: ?[*]PipelineExecutableStatisticKHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetPipelineExecutableInternalRepresentationsKHR(
|
|
device: Device,
|
|
pExecutableInfo: *const PipelineExecutableInfoKHR,
|
|
pInternalRepresentationCount: *u32,
|
|
pInternalRepresentations: ?[*]PipelineExecutableInternalRepresentationKHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub const GetPipelineExecutablePropertiesKHRResult = struct {
|
|
result: Result,
|
|
properties: []PipelineExecutablePropertiesKHR,
|
|
};
|
|
pub inline fn GetPipelineExecutablePropertiesKHR(device: Device, pipelineInfo: PipelineInfoKHR, properties: []PipelineExecutablePropertiesKHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!GetPipelineExecutablePropertiesKHRResult {
|
|
var returnValues: GetPipelineExecutablePropertiesKHRResult = undefined;
|
|
var executableCount: u32 = @intCast(u32, properties.len);
|
|
const result = vkGetPipelineExecutablePropertiesKHR(device, &pipelineInfo, &executableCount, properties.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.properties = properties[0..executableCount];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn GetPipelineExecutablePropertiesCountKHR(device: Device, pipelineInfo: PipelineInfoKHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!u32 {
|
|
var out_executableCount: u32 = undefined;
|
|
const result = vkGetPipelineExecutablePropertiesKHR(device, &pipelineInfo, &out_executableCount, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_executableCount;
|
|
}
|
|
|
|
pub const GetPipelineExecutableStatisticsKHRResult = struct {
|
|
result: Result,
|
|
statistics: []PipelineExecutableStatisticKHR,
|
|
};
|
|
pub inline fn GetPipelineExecutableStatisticsKHR(device: Device, executableInfo: PipelineExecutableInfoKHR, statistics: []PipelineExecutableStatisticKHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!GetPipelineExecutableStatisticsKHRResult {
|
|
var returnValues: GetPipelineExecutableStatisticsKHRResult = undefined;
|
|
var statisticCount: u32 = @intCast(u32, statistics.len);
|
|
const result = vkGetPipelineExecutableStatisticsKHR(device, &executableInfo, &statisticCount, statistics.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.statistics = statistics[0..statisticCount];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn GetPipelineExecutableStatisticsCountKHR(device: Device, executableInfo: PipelineExecutableInfoKHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!u32 {
|
|
var out_statisticCount: u32 = undefined;
|
|
const result = vkGetPipelineExecutableStatisticsKHR(device, &executableInfo, &out_statisticCount, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_statisticCount;
|
|
}
|
|
|
|
pub const GetPipelineExecutableInternalRepresentationsKHRResult = struct {
|
|
result: Result,
|
|
internalRepresentations: []PipelineExecutableInternalRepresentationKHR,
|
|
};
|
|
pub inline fn GetPipelineExecutableInternalRepresentationsKHR(device: Device, executableInfo: PipelineExecutableInfoKHR, internalRepresentations: []PipelineExecutableInternalRepresentationKHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!GetPipelineExecutableInternalRepresentationsKHRResult {
|
|
var returnValues: GetPipelineExecutableInternalRepresentationsKHRResult = undefined;
|
|
var internalRepresentationCount: u32 = @intCast(u32, internalRepresentations.len);
|
|
const result = vkGetPipelineExecutableInternalRepresentationsKHR(device, &executableInfo, &internalRepresentationCount, internalRepresentations.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.internalRepresentations = internalRepresentations[0..internalRepresentationCount];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn GetPipelineExecutableInternalRepresentationsCountKHR(device: Device, executableInfo: PipelineExecutableInfoKHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!u32 {
|
|
var out_internalRepresentationCount: u32 = undefined;
|
|
const result = vkGetPipelineExecutableInternalRepresentationsKHR(device, &executableInfo, &out_internalRepresentationCount, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_internalRepresentationCount;
|
|
}
|
|
|
|
|
|
pub const EXT_debug_report = 1;
|
|
pub const DebugReportCallbackEXT = enum(u64) { Null = 0, _ };
|
|
|
|
pub const EXT_DEBUG_REPORT_SPEC_VERSION = 9;
|
|
pub const EXT_DEBUG_REPORT_EXTENSION_NAME = "VK_EXT_debug_report";
|
|
|
|
pub const DebugReportObjectTypeEXT = enum(i32) {
|
|
UNKNOWN = 0,
|
|
INSTANCE = 1,
|
|
PHYSICAL_DEVICE = 2,
|
|
DEVICE = 3,
|
|
QUEUE = 4,
|
|
SEMAPHORE = 5,
|
|
COMMAND_BUFFER = 6,
|
|
FENCE = 7,
|
|
DEVICE_MEMORY = 8,
|
|
BUFFER = 9,
|
|
IMAGE = 10,
|
|
EVENT = 11,
|
|
QUERY_POOL = 12,
|
|
BUFFER_VIEW = 13,
|
|
IMAGE_VIEW = 14,
|
|
SHADER_MODULE = 15,
|
|
PIPELINE_CACHE = 16,
|
|
PIPELINE_LAYOUT = 17,
|
|
RENDER_PASS = 18,
|
|
PIPELINE = 19,
|
|
DESCRIPTOR_SET_LAYOUT = 20,
|
|
SAMPLER = 21,
|
|
DESCRIPTOR_POOL = 22,
|
|
DESCRIPTOR_SET = 23,
|
|
FRAMEBUFFER = 24,
|
|
COMMAND_POOL = 25,
|
|
SURFACE_KHR = 26,
|
|
SWAPCHAIN_KHR = 27,
|
|
DEBUG_REPORT_CALLBACK_EXT = 28,
|
|
DISPLAY_KHR = 29,
|
|
DISPLAY_MODE_KHR = 30,
|
|
OBJECT_TABLE_NVX = 31,
|
|
INDIRECT_COMMANDS_LAYOUT_NVX = 32,
|
|
VALIDATION_CACHE_EXT = 33,
|
|
SAMPLER_YCBCR_CONVERSION = 1000156000,
|
|
DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
|
|
ACCELERATION_STRUCTURE_NV = 1000165000,
|
|
_,
|
|
|
|
const Self = @This();
|
|
pub const DEBUG_REPORT = Self.DEBUG_REPORT_CALLBACK_EXT;
|
|
pub const VALIDATION_CACHE = Self.VALIDATION_CACHE_EXT;
|
|
pub const DESCRIPTOR_UPDATE_TEMPLATE_KHR = Self.DESCRIPTOR_UPDATE_TEMPLATE;
|
|
pub const SAMPLER_YCBCR_CONVERSION_KHR = Self.SAMPLER_YCBCR_CONVERSION;
|
|
};
|
|
|
|
pub const DebugReportFlagsEXT = packed struct {
|
|
information: bool = false,
|
|
warning: bool = false,
|
|
performanceWarning: bool = false,
|
|
errorBit: bool = false,
|
|
debug: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const PFN_DebugReportCallbackEXT = fn (
|
|
DebugReportFlagsEXT.IntType,
|
|
DebugReportObjectTypeEXT,
|
|
u64,
|
|
usize,
|
|
i32,
|
|
?CString,
|
|
?CString,
|
|
?*anyopaque,
|
|
) callconv(CallConv) Bool32;
|
|
|
|
pub const DebugReportCallbackCreateInfoEXT = extern struct {
|
|
sType: StructureType = .DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: DebugReportFlagsEXT align(4) = DebugReportFlagsEXT{},
|
|
pfnCallback: PFN_DebugReportCallbackEXT,
|
|
pUserData: ?*anyopaque = null,
|
|
};
|
|
|
|
pub extern fn vkCreateDebugReportCallbackEXT(
|
|
instance: Instance,
|
|
pCreateInfo: *const DebugReportCallbackCreateInfoEXT,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pCallback: *DebugReportCallbackEXT,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroyDebugReportCallbackEXT(
|
|
instance: Instance,
|
|
callback: DebugReportCallbackEXT,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkDebugReportMessageEXT(
|
|
instance: Instance,
|
|
flags: DebugReportFlagsEXT.IntType,
|
|
objectType: DebugReportObjectTypeEXT,
|
|
object: u64,
|
|
location: usize,
|
|
messageCode: i32,
|
|
pLayerPrefix: CString,
|
|
pMessage: CString,
|
|
) callconv(CallConv) void;
|
|
|
|
pub inline fn CreateDebugReportCallbackEXT(instance: Instance, createInfo: DebugReportCallbackCreateInfoEXT, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_UNDOCUMENTED_ERROR}!DebugReportCallbackEXT {
|
|
var out_callback: DebugReportCallbackEXT = undefined;
|
|
const result = vkCreateDebugReportCallbackEXT(instance, &createInfo, pAllocator, &out_callback);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_callback;
|
|
}
|
|
|
|
pub const DestroyDebugReportCallbackEXT = vkDestroyDebugReportCallbackEXT;
|
|
|
|
pub inline fn DebugReportMessageEXT(instance: Instance, flags: DebugReportFlagsEXT, objectType: DebugReportObjectTypeEXT, object: u64, location: usize, messageCode: i32, pLayerPrefix: CString, pMessage: CString) void {
|
|
vkDebugReportMessageEXT(instance, flags.toInt(), objectType, object, location, messageCode, pLayerPrefix, pMessage);
|
|
}
|
|
|
|
|
|
pub const NV_glsl_shader = 1;
|
|
pub const NV_GLSL_SHADER_SPEC_VERSION = 1;
|
|
pub const NV_GLSL_SHADER_EXTENSION_NAME = "VK_NV_glsl_shader";
|
|
|
|
|
|
pub const EXT_depth_range_unrestricted = 1;
|
|
pub const EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION = 1;
|
|
pub const EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME = "VK_EXT_depth_range_unrestricted";
|
|
|
|
|
|
pub const IMG_filter_cubic = 1;
|
|
pub const IMG_FILTER_CUBIC_SPEC_VERSION = 1;
|
|
pub const IMG_FILTER_CUBIC_EXTENSION_NAME = "VK_IMG_filter_cubic";
|
|
|
|
|
|
pub const AMD_rasterization_order = 1;
|
|
pub const AMD_RASTERIZATION_ORDER_SPEC_VERSION = 1;
|
|
pub const AMD_RASTERIZATION_ORDER_EXTENSION_NAME = "VK_AMD_rasterization_order";
|
|
|
|
pub const RasterizationOrderAMD = enum(i32) {
|
|
STRICT = 0,
|
|
RELAXED = 1,
|
|
_,
|
|
};
|
|
|
|
pub const PipelineRasterizationStateRasterizationOrderAMD = extern struct {
|
|
sType: StructureType = .PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD,
|
|
pNext: ?*const anyopaque = null,
|
|
rasterizationOrder: RasterizationOrderAMD,
|
|
};
|
|
|
|
|
|
pub const AMD_shader_trinary_minmax = 1;
|
|
pub const AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION = 1;
|
|
pub const AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME = "VK_AMD_shader_trinary_minmax";
|
|
|
|
|
|
pub const AMD_shader_explicit_vertex_parameter = 1;
|
|
pub const AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION = 1;
|
|
pub const AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME = "VK_AMD_shader_explicit_vertex_parameter";
|
|
|
|
|
|
pub const EXT_debug_marker = 1;
|
|
pub const EXT_DEBUG_MARKER_SPEC_VERSION = 4;
|
|
pub const EXT_DEBUG_MARKER_EXTENSION_NAME = "VK_EXT_debug_marker";
|
|
|
|
pub const DebugMarkerObjectNameInfoEXT = extern struct {
|
|
sType: StructureType = .DEBUG_MARKER_OBJECT_NAME_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
objectType: DebugReportObjectTypeEXT,
|
|
object: u64,
|
|
pObjectName: CString,
|
|
};
|
|
|
|
pub const DebugMarkerObjectTagInfoEXT = extern struct {
|
|
sType: StructureType = .DEBUG_MARKER_OBJECT_TAG_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
objectType: DebugReportObjectTypeEXT,
|
|
object: u64,
|
|
tagName: u64,
|
|
tagSize: usize,
|
|
pTag: ?*const anyopaque,
|
|
};
|
|
|
|
pub const DebugMarkerMarkerInfoEXT = extern struct {
|
|
sType: StructureType = .DEBUG_MARKER_MARKER_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
pMarkerName: CString,
|
|
color: [4]f32 = 0,
|
|
};
|
|
|
|
pub extern fn vkDebugMarkerSetObjectTagEXT(
|
|
device: Device,
|
|
pTagInfo: *const DebugMarkerObjectTagInfoEXT,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDebugMarkerSetObjectNameEXT(
|
|
device: Device,
|
|
pNameInfo: *const DebugMarkerObjectNameInfoEXT,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkCmdDebugMarkerBeginEXT(
|
|
commandBuffer: CommandBuffer,
|
|
pMarkerInfo: *const DebugMarkerMarkerInfoEXT,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdDebugMarkerEndEXT(commandBuffer: CommandBuffer) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdDebugMarkerInsertEXT(
|
|
commandBuffer: CommandBuffer,
|
|
pMarkerInfo: *const DebugMarkerMarkerInfoEXT,
|
|
) callconv(CallConv) void;
|
|
|
|
pub inline fn DebugMarkerSetObjectTagEXT(device: Device, tagInfo: DebugMarkerObjectTagInfoEXT) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkDebugMarkerSetObjectTagEXT(device, &tagInfo);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn DebugMarkerSetObjectNameEXT(device: Device, nameInfo: DebugMarkerObjectNameInfoEXT) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkDebugMarkerSetObjectNameEXT(device, &nameInfo);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn CmdDebugMarkerBeginEXT(commandBuffer: CommandBuffer, markerInfo: DebugMarkerMarkerInfoEXT) void {
|
|
vkCmdDebugMarkerBeginEXT(commandBuffer, &markerInfo);
|
|
}
|
|
|
|
pub const CmdDebugMarkerEndEXT = vkCmdDebugMarkerEndEXT;
|
|
|
|
pub inline fn CmdDebugMarkerInsertEXT(commandBuffer: CommandBuffer, markerInfo: DebugMarkerMarkerInfoEXT) void {
|
|
vkCmdDebugMarkerInsertEXT(commandBuffer, &markerInfo);
|
|
}
|
|
|
|
|
|
pub const AMD_gcn_shader = 1;
|
|
pub const AMD_GCN_SHADER_SPEC_VERSION = 1;
|
|
pub const AMD_GCN_SHADER_EXTENSION_NAME = "VK_AMD_gcn_shader";
|
|
|
|
|
|
pub const NV_dedicated_allocation = 1;
|
|
pub const NV_DEDICATED_ALLOCATION_SPEC_VERSION = 1;
|
|
pub const NV_DEDICATED_ALLOCATION_EXTENSION_NAME = "VK_NV_dedicated_allocation";
|
|
|
|
pub const DedicatedAllocationImageCreateInfoNV = extern struct {
|
|
sType: StructureType = .DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV,
|
|
pNext: ?*const anyopaque = null,
|
|
dedicatedAllocation: Bool32,
|
|
};
|
|
|
|
pub const DedicatedAllocationBufferCreateInfoNV = extern struct {
|
|
sType: StructureType = .DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV,
|
|
pNext: ?*const anyopaque = null,
|
|
dedicatedAllocation: Bool32,
|
|
};
|
|
|
|
pub const DedicatedAllocationMemoryAllocateInfoNV = extern struct {
|
|
sType: StructureType = .DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV,
|
|
pNext: ?*const anyopaque = null,
|
|
image: Image = Image.Null,
|
|
buffer: Buffer = Buffer.Null,
|
|
};
|
|
|
|
|
|
pub const EXT_transform_feedback = 1;
|
|
pub const EXT_TRANSFORM_FEEDBACK_SPEC_VERSION = 1;
|
|
pub const EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME = "VK_EXT_transform_feedback";
|
|
|
|
pub const PipelineRasterizationStateStreamCreateFlagsEXT = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const PhysicalDeviceTransformFeedbackFeaturesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
transformFeedback: Bool32,
|
|
geometryStreams: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDeviceTransformFeedbackPropertiesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
maxTransformFeedbackStreams: u32,
|
|
maxTransformFeedbackBuffers: u32,
|
|
maxTransformFeedbackBufferSize: DeviceSize,
|
|
maxTransformFeedbackStreamDataSize: u32,
|
|
maxTransformFeedbackBufferDataSize: u32,
|
|
maxTransformFeedbackBufferDataStride: u32,
|
|
transformFeedbackQueries: Bool32,
|
|
transformFeedbackStreamsLinesTriangles: Bool32,
|
|
transformFeedbackRasterizationStreamSelect: Bool32,
|
|
transformFeedbackDraw: Bool32,
|
|
};
|
|
|
|
pub const PipelineRasterizationStateStreamCreateInfoEXT = extern struct {
|
|
sType: StructureType = .PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: PipelineRasterizationStateStreamCreateFlagsEXT align(4) = PipelineRasterizationStateStreamCreateFlagsEXT{},
|
|
rasterizationStream: u32,
|
|
};
|
|
|
|
pub extern fn vkCmdBindTransformFeedbackBuffersEXT(
|
|
commandBuffer: CommandBuffer,
|
|
firstBinding: u32,
|
|
bindingCount: u32,
|
|
pBuffers: [*]const Buffer,
|
|
pOffsets: [*]const DeviceSize,
|
|
pSizes: ?[*]const DeviceSize,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdBeginTransformFeedbackEXT(
|
|
commandBuffer: CommandBuffer,
|
|
firstCounterBuffer: u32,
|
|
counterBufferCount: u32,
|
|
pCounterBuffers: [*]const Buffer,
|
|
pCounterBufferOffsets: ?[*]const DeviceSize,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdEndTransformFeedbackEXT(
|
|
commandBuffer: CommandBuffer,
|
|
firstCounterBuffer: u32,
|
|
counterBufferCount: u32,
|
|
pCounterBuffers: [*]const Buffer,
|
|
pCounterBufferOffsets: ?[*]const DeviceSize,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdBeginQueryIndexedEXT(
|
|
commandBuffer: CommandBuffer,
|
|
queryPool: QueryPool,
|
|
query: u32,
|
|
flags: QueryControlFlags.IntType,
|
|
index: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdEndQueryIndexedEXT(
|
|
commandBuffer: CommandBuffer,
|
|
queryPool: QueryPool,
|
|
query: u32,
|
|
index: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdDrawIndirectByteCountEXT(
|
|
commandBuffer: CommandBuffer,
|
|
instanceCount: u32,
|
|
firstInstance: u32,
|
|
counterBuffer: Buffer,
|
|
counterBufferOffset: DeviceSize,
|
|
counterOffset: u32,
|
|
vertexStride: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub inline fn CmdBindTransformFeedbackBuffersEXT(commandBuffer: CommandBuffer, firstBinding: u32, buffers: []const Buffer, offsets: []const DeviceSize, sizes: []const DeviceSize) void {
|
|
assert(offsets.len >= buffers.len);
|
|
assert(sizes.len >= buffers.len);
|
|
vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, @intCast(u32, buffers.len), buffers.ptr, offsets.ptr, sizes.ptr);
|
|
}
|
|
|
|
pub inline fn CmdBeginTransformFeedbackEXT(commandBuffer: CommandBuffer, firstCounterBuffer: u32, counterBuffers: []const Buffer, counterBufferOffsets: []const DeviceSize) void {
|
|
assert(counterBufferOffsets.len >= counterBuffers.len);
|
|
vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, @intCast(u32, counterBuffers.len), counterBuffers.ptr, counterBufferOffsets.ptr);
|
|
}
|
|
|
|
pub inline fn CmdEndTransformFeedbackEXT(commandBuffer: CommandBuffer, firstCounterBuffer: u32, counterBuffers: []const Buffer, counterBufferOffsets: []const DeviceSize) void {
|
|
assert(counterBufferOffsets.len >= counterBuffers.len);
|
|
vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, @intCast(u32, counterBuffers.len), counterBuffers.ptr, counterBufferOffsets.ptr);
|
|
}
|
|
|
|
pub inline fn CmdBeginQueryIndexedEXT(commandBuffer: CommandBuffer, queryPool: QueryPool, query: u32, flags: QueryControlFlags, index: u32) void {
|
|
vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags.toInt(), index);
|
|
}
|
|
|
|
pub const CmdEndQueryIndexedEXT = vkCmdEndQueryIndexedEXT;
|
|
pub const CmdDrawIndirectByteCountEXT = vkCmdDrawIndirectByteCountEXT;
|
|
|
|
|
|
pub const NVX_image_view_handle = 1;
|
|
pub const NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION = 1;
|
|
pub const NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME = "VK_NVX_image_view_handle";
|
|
|
|
pub const ImageViewHandleInfoNVX = extern struct {
|
|
sType: StructureType = .IMAGE_VIEW_HANDLE_INFO_NVX,
|
|
pNext: ?*const anyopaque = null,
|
|
imageView: ImageView,
|
|
descriptorType: DescriptorType,
|
|
sampler: Sampler = Sampler.Null,
|
|
};
|
|
|
|
pub extern fn vkGetImageViewHandleNVX(
|
|
device: Device,
|
|
pInfo: *const ImageViewHandleInfoNVX,
|
|
) callconv(CallConv) u32;
|
|
|
|
pub inline fn GetImageViewHandleNVX(device: Device, info: ImageViewHandleInfoNVX) u32 {
|
|
const result = vkGetImageViewHandleNVX(device, &info);
|
|
return result;
|
|
}
|
|
|
|
|
|
pub const AMD_draw_indirect_count = 1;
|
|
pub const AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION = 2;
|
|
pub const AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME = "VK_AMD_draw_indirect_count";
|
|
|
|
pub extern fn vkCmdDrawIndirectCountAMD(
|
|
commandBuffer: CommandBuffer,
|
|
buffer: Buffer,
|
|
offset: DeviceSize,
|
|
countBuffer: Buffer,
|
|
countBufferOffset: DeviceSize,
|
|
maxDrawCount: u32,
|
|
stride: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdDrawIndexedIndirectCountAMD(
|
|
commandBuffer: CommandBuffer,
|
|
buffer: Buffer,
|
|
offset: DeviceSize,
|
|
countBuffer: Buffer,
|
|
countBufferOffset: DeviceSize,
|
|
maxDrawCount: u32,
|
|
stride: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub const CmdDrawIndirectCountAMD = vkCmdDrawIndirectCountAMD;
|
|
pub const CmdDrawIndexedIndirectCountAMD = vkCmdDrawIndexedIndirectCountAMD;
|
|
|
|
|
|
pub const AMD_negative_viewport_height = 1;
|
|
pub const AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION = 1;
|
|
pub const AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME = "VK_AMD_negative_viewport_height";
|
|
|
|
|
|
pub const AMD_gpu_shader_half_float = 1;
|
|
pub const AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION = 2;
|
|
pub const AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME = "VK_AMD_gpu_shader_half_float";
|
|
|
|
|
|
pub const AMD_shader_ballot = 1;
|
|
pub const AMD_SHADER_BALLOT_SPEC_VERSION = 1;
|
|
pub const AMD_SHADER_BALLOT_EXTENSION_NAME = "VK_AMD_shader_ballot";
|
|
|
|
|
|
pub const AMD_texture_gather_bias_lod = 1;
|
|
pub const AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION = 1;
|
|
pub const AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME = "VK_AMD_texture_gather_bias_lod";
|
|
|
|
pub const TextureLODGatherFormatPropertiesAMD = extern struct {
|
|
sType: StructureType = .TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD,
|
|
pNext: ?*anyopaque = null,
|
|
supportsTextureGatherLODBiasAMD: Bool32,
|
|
};
|
|
|
|
|
|
pub const AMD_shader_info = 1;
|
|
pub const AMD_SHADER_INFO_SPEC_VERSION = 1;
|
|
pub const AMD_SHADER_INFO_EXTENSION_NAME = "VK_AMD_shader_info";
|
|
|
|
pub const ShaderInfoTypeAMD = enum(i32) {
|
|
STATISTICS = 0,
|
|
BINARY = 1,
|
|
DISASSEMBLY = 2,
|
|
_,
|
|
};
|
|
|
|
pub const ShaderResourceUsageAMD = extern struct {
|
|
numUsedVgprs: u32,
|
|
numUsedSgprs: u32,
|
|
ldsSizePerLocalWorkGroup: u32,
|
|
ldsUsageSizeInBytes: usize,
|
|
scratchMemUsageInBytes: usize,
|
|
};
|
|
|
|
pub const ShaderStatisticsInfoAMD = extern struct {
|
|
shaderStageMask: ShaderStageFlags align(4),
|
|
resourceUsage: ShaderResourceUsageAMD,
|
|
numPhysicalVgprs: u32,
|
|
numPhysicalSgprs: u32,
|
|
numAvailableVgprs: u32,
|
|
numAvailableSgprs: u32,
|
|
computeWorkGroupSize: [3]u32,
|
|
};
|
|
|
|
pub extern fn vkGetShaderInfoAMD(
|
|
device: Device,
|
|
pipeline: Pipeline,
|
|
shaderStage: ShaderStageFlags.IntType,
|
|
infoType: ShaderInfoTypeAMD,
|
|
pInfoSize: *usize,
|
|
pInfo: ?*anyopaque,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub const GetShaderInfoAMDResult = struct {
|
|
result: Result,
|
|
info: []u8,
|
|
};
|
|
pub inline fn GetShaderInfoAMD(device: Device, pipeline: Pipeline, shaderStage: ShaderStageFlags, infoType: ShaderInfoTypeAMD, info: []u8) error{VK_FEATURE_NOT_PRESENT,VK_OUT_OF_HOST_MEMORY,VK_UNDOCUMENTED_ERROR}!GetShaderInfoAMDResult {
|
|
var returnValues: GetShaderInfoAMDResult = undefined;
|
|
var infoSize: usize = @intCast(usize, info.len);
|
|
const result = vkGetShaderInfoAMD(device, pipeline, shaderStage.toInt(), infoType, &infoSize, info.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_FEATURE_NOT_PRESENT => error.VK_FEATURE_NOT_PRESENT,
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.info = info[0..infoSize];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn GetShaderInfoCountAMD(device: Device, pipeline: Pipeline, shaderStage: ShaderStageFlags, infoType: ShaderInfoTypeAMD) error{VK_FEATURE_NOT_PRESENT,VK_OUT_OF_HOST_MEMORY,VK_UNDOCUMENTED_ERROR}!usize {
|
|
var out_infoSize: usize = undefined;
|
|
const result = vkGetShaderInfoAMD(device, pipeline, shaderStage.toInt(), infoType, &out_infoSize, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_FEATURE_NOT_PRESENT => error.VK_FEATURE_NOT_PRESENT,
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_infoSize;
|
|
}
|
|
|
|
|
|
pub const AMD_shader_image_load_store_lod = 1;
|
|
pub const AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION = 1;
|
|
pub const AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME = "VK_AMD_shader_image_load_store_lod";
|
|
|
|
|
|
pub const NV_corner_sampled_image = 1;
|
|
pub const NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION = 2;
|
|
pub const NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME = "VK_NV_corner_sampled_image";
|
|
|
|
pub const PhysicalDeviceCornerSampledImageFeaturesNV = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV,
|
|
pNext: ?*anyopaque = null,
|
|
cornerSampledImage: Bool32,
|
|
};
|
|
|
|
|
|
pub const IMG_format_pvrtc = 1;
|
|
pub const IMG_FORMAT_PVRTC_SPEC_VERSION = 1;
|
|
pub const IMG_FORMAT_PVRTC_EXTENSION_NAME = "VK_IMG_format_pvrtc";
|
|
|
|
|
|
pub const NV_external_memory_capabilities = 1;
|
|
pub const NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION = 1;
|
|
pub const NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME = "VK_NV_external_memory_capabilities";
|
|
|
|
pub const ExternalMemoryHandleTypeFlagsNV = packed struct {
|
|
opaqueWin32: bool = false,
|
|
opaqueWin32Kmt: bool = false,
|
|
d3D11Image: bool = false,
|
|
d3D11ImageKmt: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const ExternalMemoryFeatureFlagsNV = packed struct {
|
|
dedicatedOnly: bool = false,
|
|
exportable: bool = false,
|
|
importable: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const ExternalImageFormatPropertiesNV = extern struct {
|
|
imageFormatProperties: ImageFormatProperties,
|
|
externalMemoryFeatures: ExternalMemoryFeatureFlagsNV align(4) = ExternalMemoryFeatureFlagsNV{},
|
|
exportFromImportedHandleTypes: ExternalMemoryHandleTypeFlagsNV align(4) = ExternalMemoryHandleTypeFlagsNV{},
|
|
compatibleHandleTypes: ExternalMemoryHandleTypeFlagsNV align(4) = ExternalMemoryHandleTypeFlagsNV{},
|
|
};
|
|
|
|
pub extern fn vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
|
|
physicalDevice: PhysicalDevice,
|
|
format: Format,
|
|
inType: ImageType,
|
|
tiling: ImageTiling,
|
|
usage: ImageUsageFlags.IntType,
|
|
flags: ImageCreateFlags.IntType,
|
|
externalHandleType: ExternalMemoryHandleTypeFlagsNV.IntType,
|
|
pExternalImageFormatProperties: *ExternalImageFormatPropertiesNV,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub inline fn GetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice: PhysicalDevice, format: Format, inType: ImageType, tiling: ImageTiling, usage: ImageUsageFlags, flags: ImageCreateFlags, externalHandleType: ExternalMemoryHandleTypeFlagsNV) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_FORMAT_NOT_SUPPORTED,VK_UNDOCUMENTED_ERROR}!ExternalImageFormatPropertiesNV {
|
|
var out_externalImageFormatProperties: ExternalImageFormatPropertiesNV = undefined;
|
|
const result = vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, inType, tiling, usage.toInt(), flags.toInt(), externalHandleType.toInt(), &out_externalImageFormatProperties);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_FORMAT_NOT_SUPPORTED => error.VK_FORMAT_NOT_SUPPORTED,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_externalImageFormatProperties;
|
|
}
|
|
|
|
|
|
pub const NV_external_memory = 1;
|
|
pub const NV_EXTERNAL_MEMORY_SPEC_VERSION = 1;
|
|
pub const NV_EXTERNAL_MEMORY_EXTENSION_NAME = "VK_NV_external_memory";
|
|
|
|
pub const ExternalMemoryImageCreateInfoNV = extern struct {
|
|
sType: StructureType = .EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV,
|
|
pNext: ?*const anyopaque = null,
|
|
handleTypes: ExternalMemoryHandleTypeFlagsNV align(4) = ExternalMemoryHandleTypeFlagsNV{},
|
|
};
|
|
|
|
pub const ExportMemoryAllocateInfoNV = extern struct {
|
|
sType: StructureType = .EXPORT_MEMORY_ALLOCATE_INFO_NV,
|
|
pNext: ?*const anyopaque = null,
|
|
handleTypes: ExternalMemoryHandleTypeFlagsNV align(4) = ExternalMemoryHandleTypeFlagsNV{},
|
|
};
|
|
|
|
|
|
pub const EXT_validation_flags = 1;
|
|
pub const EXT_VALIDATION_FLAGS_SPEC_VERSION = 2;
|
|
pub const EXT_VALIDATION_FLAGS_EXTENSION_NAME = "VK_EXT_validation_flags";
|
|
|
|
pub const ValidationCheckEXT = enum(i32) {
|
|
ALL = 0,
|
|
SHADERS = 1,
|
|
_,
|
|
};
|
|
|
|
pub const ValidationFlagsEXT = extern struct {
|
|
sType: StructureType = .VALIDATION_FLAGS_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
disabledValidationCheckCount: u32,
|
|
pDisabledValidationChecks: [*]const ValidationCheckEXT,
|
|
};
|
|
|
|
|
|
pub const EXT_shader_subgroup_ballot = 1;
|
|
pub const EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION = 1;
|
|
pub const EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME = "VK_EXT_shader_subgroup_ballot";
|
|
|
|
|
|
pub const EXT_shader_subgroup_vote = 1;
|
|
pub const EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION = 1;
|
|
pub const EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME = "VK_EXT_shader_subgroup_vote";
|
|
|
|
|
|
pub const EXT_texture_compression_astc_hdr = 1;
|
|
pub const EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION = 1;
|
|
pub const EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME = "VK_EXT_texture_compression_astc_hdr";
|
|
|
|
pub const PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
textureCompressionASTC_HDR: Bool32,
|
|
};
|
|
|
|
|
|
pub const EXT_astc_decode_mode = 1;
|
|
pub const EXT_ASTC_DECODE_MODE_SPEC_VERSION = 1;
|
|
pub const EXT_ASTC_DECODE_MODE_EXTENSION_NAME = "VK_EXT_astc_decode_mode";
|
|
|
|
pub const ImageViewASTCDecodeModeEXT = extern struct {
|
|
sType: StructureType = .IMAGE_VIEW_ASTC_DECODE_MODE_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
decodeMode: Format,
|
|
};
|
|
|
|
pub const PhysicalDeviceASTCDecodeFeaturesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
decodeModeSharedExponent: Bool32,
|
|
};
|
|
|
|
|
|
pub const EXT_conditional_rendering = 1;
|
|
pub const EXT_CONDITIONAL_RENDERING_SPEC_VERSION = 2;
|
|
pub const EXT_CONDITIONAL_RENDERING_EXTENSION_NAME = "VK_EXT_conditional_rendering";
|
|
|
|
pub const ConditionalRenderingFlagsEXT = packed struct {
|
|
inverted: bool = false,
|
|
__reserved_bit_01: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const ConditionalRenderingBeginInfoEXT = extern struct {
|
|
sType: StructureType = .CONDITIONAL_RENDERING_BEGIN_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
buffer: Buffer,
|
|
offset: DeviceSize,
|
|
flags: ConditionalRenderingFlagsEXT align(4) = ConditionalRenderingFlagsEXT{},
|
|
};
|
|
|
|
pub const PhysicalDeviceConditionalRenderingFeaturesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
conditionalRendering: Bool32,
|
|
inheritedConditionalRendering: Bool32,
|
|
};
|
|
|
|
pub const CommandBufferInheritanceConditionalRenderingInfoEXT = extern struct {
|
|
sType: StructureType = .COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
conditionalRenderingEnable: Bool32,
|
|
};
|
|
|
|
pub extern fn vkCmdBeginConditionalRenderingEXT(
|
|
commandBuffer: CommandBuffer,
|
|
pConditionalRenderingBegin: *const ConditionalRenderingBeginInfoEXT,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdEndConditionalRenderingEXT(commandBuffer: CommandBuffer) callconv(CallConv) void;
|
|
|
|
pub inline fn CmdBeginConditionalRenderingEXT(commandBuffer: CommandBuffer, conditionalRenderingBegin: ConditionalRenderingBeginInfoEXT) void {
|
|
vkCmdBeginConditionalRenderingEXT(commandBuffer, &conditionalRenderingBegin);
|
|
}
|
|
|
|
pub const CmdEndConditionalRenderingEXT = vkCmdEndConditionalRenderingEXT;
|
|
|
|
|
|
pub const NVX_device_generated_commands = 1;
|
|
pub const ObjectTableNVX = enum(u64) { Null = 0, _ };
|
|
pub const IndirectCommandsLayoutNVX = enum(u64) { Null = 0, _ };
|
|
|
|
pub const NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION = 3;
|
|
pub const NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME = "VK_NVX_device_generated_commands";
|
|
|
|
pub const IndirectCommandsTokenTypeNVX = enum(i32) {
|
|
PIPELINE = 0,
|
|
DESCRIPTOR_SET = 1,
|
|
INDEX_BUFFER = 2,
|
|
VERTEX_BUFFER = 3,
|
|
PUSH_CONSTANT = 4,
|
|
DRAW_INDEXED = 5,
|
|
DRAW = 6,
|
|
DISPATCH = 7,
|
|
_,
|
|
};
|
|
|
|
pub const ObjectEntryTypeNVX = enum(i32) {
|
|
DESCRIPTOR_SET = 0,
|
|
PIPELINE = 1,
|
|
INDEX_BUFFER = 2,
|
|
VERTEX_BUFFER = 3,
|
|
PUSH_CONSTANT = 4,
|
|
_,
|
|
};
|
|
|
|
pub const IndirectCommandsLayoutUsageFlagsNVX = packed struct {
|
|
unorderedSequences: bool = false,
|
|
sparseSequences: bool = false,
|
|
emptyExecutions: bool = false,
|
|
indexedSequences: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const ObjectEntryUsageFlagsNVX = packed struct {
|
|
graphics: bool = false,
|
|
compute: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const DeviceGeneratedCommandsFeaturesNVX = extern struct {
|
|
sType: StructureType = .DEVICE_GENERATED_COMMANDS_FEATURES_NVX,
|
|
pNext: ?*const anyopaque = null,
|
|
computeBindingPointSupport: Bool32,
|
|
};
|
|
|
|
pub const DeviceGeneratedCommandsLimitsNVX = extern struct {
|
|
sType: StructureType = .DEVICE_GENERATED_COMMANDS_LIMITS_NVX,
|
|
pNext: ?*const anyopaque = null,
|
|
maxIndirectCommandsLayoutTokenCount: u32,
|
|
maxObjectEntryCounts: u32,
|
|
minSequenceCountBufferOffsetAlignment: u32,
|
|
minSequenceIndexBufferOffsetAlignment: u32,
|
|
minCommandsTokenBufferOffsetAlignment: u32,
|
|
};
|
|
|
|
pub const IndirectCommandsTokenNVX = extern struct {
|
|
tokenType: IndirectCommandsTokenTypeNVX,
|
|
buffer: Buffer,
|
|
offset: DeviceSize,
|
|
};
|
|
|
|
pub const IndirectCommandsLayoutTokenNVX = extern struct {
|
|
tokenType: IndirectCommandsTokenTypeNVX,
|
|
bindingUnit: u32,
|
|
dynamicCount: u32,
|
|
divisor: u32,
|
|
};
|
|
|
|
pub const IndirectCommandsLayoutCreateInfoNVX = extern struct {
|
|
sType: StructureType = .INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX,
|
|
pNext: ?*const anyopaque = null,
|
|
pipelineBindPoint: PipelineBindPoint,
|
|
flags: IndirectCommandsLayoutUsageFlagsNVX align(4),
|
|
tokenCount: u32,
|
|
pTokens: [*]const IndirectCommandsLayoutTokenNVX,
|
|
};
|
|
|
|
pub const CmdProcessCommandsInfoNVX = extern struct {
|
|
sType: StructureType = .CMD_PROCESS_COMMANDS_INFO_NVX,
|
|
pNext: ?*const anyopaque = null,
|
|
objectTable: ObjectTableNVX,
|
|
indirectCommandsLayout: IndirectCommandsLayoutNVX,
|
|
indirectCommandsTokenCount: u32,
|
|
pIndirectCommandsTokens: [*]const IndirectCommandsTokenNVX,
|
|
maxSequencesCount: u32,
|
|
targetCommandBuffer: CommandBuffer = CommandBuffer.Null,
|
|
sequencesCountBuffer: Buffer = Buffer.Null,
|
|
sequencesCountOffset: DeviceSize = 0,
|
|
sequencesIndexBuffer: Buffer = Buffer.Null,
|
|
sequencesIndexOffset: DeviceSize = 0,
|
|
};
|
|
|
|
pub const CmdReserveSpaceForCommandsInfoNVX = extern struct {
|
|
sType: StructureType = .CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX,
|
|
pNext: ?*const anyopaque = null,
|
|
objectTable: ObjectTableNVX,
|
|
indirectCommandsLayout: IndirectCommandsLayoutNVX,
|
|
maxSequencesCount: u32,
|
|
};
|
|
|
|
pub const ObjectTableCreateInfoNVX = extern struct {
|
|
sType: StructureType = .OBJECT_TABLE_CREATE_INFO_NVX,
|
|
pNext: ?*const anyopaque = null,
|
|
objectCount: u32,
|
|
pObjectEntryTypes: [*]const ObjectEntryTypeNVX,
|
|
pObjectEntryCounts: [*]const u32,
|
|
pObjectEntryUsageFlags: [*]align(4) const ObjectEntryUsageFlagsNVX,
|
|
maxUniformBuffersPerDescriptor: u32,
|
|
maxStorageBuffersPerDescriptor: u32,
|
|
maxStorageImagesPerDescriptor: u32,
|
|
maxSampledImagesPerDescriptor: u32,
|
|
maxPipelineLayouts: u32,
|
|
};
|
|
|
|
pub const ObjectTableEntryNVX = extern struct {
|
|
inType: ObjectEntryTypeNVX,
|
|
flags: ObjectEntryUsageFlagsNVX align(4),
|
|
};
|
|
|
|
pub const ObjectTablePipelineEntryNVX = extern struct {
|
|
inType: ObjectEntryTypeNVX,
|
|
flags: ObjectEntryUsageFlagsNVX align(4),
|
|
pipeline: Pipeline,
|
|
};
|
|
|
|
pub const ObjectTableDescriptorSetEntryNVX = extern struct {
|
|
inType: ObjectEntryTypeNVX,
|
|
flags: ObjectEntryUsageFlagsNVX align(4),
|
|
pipelineLayout: PipelineLayout,
|
|
descriptorSet: DescriptorSet,
|
|
};
|
|
|
|
pub const ObjectTableVertexBufferEntryNVX = extern struct {
|
|
inType: ObjectEntryTypeNVX,
|
|
flags: ObjectEntryUsageFlagsNVX align(4),
|
|
buffer: Buffer,
|
|
};
|
|
|
|
pub const ObjectTableIndexBufferEntryNVX = extern struct {
|
|
inType: ObjectEntryTypeNVX,
|
|
flags: ObjectEntryUsageFlagsNVX align(4),
|
|
buffer: Buffer,
|
|
indexType: IndexType,
|
|
};
|
|
|
|
pub const ObjectTablePushConstantEntryNVX = extern struct {
|
|
inType: ObjectEntryTypeNVX,
|
|
flags: ObjectEntryUsageFlagsNVX align(4),
|
|
pipelineLayout: PipelineLayout,
|
|
stageFlags: ShaderStageFlags align(4),
|
|
};
|
|
|
|
pub extern fn vkCmdProcessCommandsNVX(
|
|
commandBuffer: CommandBuffer,
|
|
pProcessCommandsInfo: *const CmdProcessCommandsInfoNVX,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdReserveSpaceForCommandsNVX(
|
|
commandBuffer: CommandBuffer,
|
|
pReserveSpaceInfo: *const CmdReserveSpaceForCommandsInfoNVX,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCreateIndirectCommandsLayoutNVX(
|
|
device: Device,
|
|
pCreateInfo: *const IndirectCommandsLayoutCreateInfoNVX,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pIndirectCommandsLayout: *IndirectCommandsLayoutNVX,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroyIndirectCommandsLayoutNVX(
|
|
device: Device,
|
|
indirectCommandsLayout: IndirectCommandsLayoutNVX,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCreateObjectTableNVX(
|
|
device: Device,
|
|
pCreateInfo: *const ObjectTableCreateInfoNVX,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pObjectTable: *ObjectTableNVX,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroyObjectTableNVX(
|
|
device: Device,
|
|
objectTable: ObjectTableNVX,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkRegisterObjectsNVX(
|
|
device: Device,
|
|
objectTable: ObjectTableNVX,
|
|
objectCount: u32,
|
|
ppObjectTableEntries: [*]const*const ObjectTableEntryNVX,
|
|
pObjectIndices: [*]const u32,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkUnregisterObjectsNVX(
|
|
device: Device,
|
|
objectTable: ObjectTableNVX,
|
|
objectCount: u32,
|
|
pObjectEntryTypes: [*]const ObjectEntryTypeNVX,
|
|
pObjectIndices: [*]const u32,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
|
|
physicalDevice: PhysicalDevice,
|
|
pFeatures: *DeviceGeneratedCommandsFeaturesNVX,
|
|
pLimits: *DeviceGeneratedCommandsLimitsNVX,
|
|
) callconv(CallConv) void;
|
|
|
|
pub inline fn CmdProcessCommandsNVX(commandBuffer: CommandBuffer, processCommandsInfo: CmdProcessCommandsInfoNVX) void {
|
|
vkCmdProcessCommandsNVX(commandBuffer, &processCommandsInfo);
|
|
}
|
|
|
|
pub inline fn CmdReserveSpaceForCommandsNVX(commandBuffer: CommandBuffer, reserveSpaceInfo: CmdReserveSpaceForCommandsInfoNVX) void {
|
|
vkCmdReserveSpaceForCommandsNVX(commandBuffer, &reserveSpaceInfo);
|
|
}
|
|
|
|
pub inline fn CreateIndirectCommandsLayoutNVX(device: Device, createInfo: IndirectCommandsLayoutCreateInfoNVX, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!IndirectCommandsLayoutNVX {
|
|
var out_indirectCommandsLayout: IndirectCommandsLayoutNVX = undefined;
|
|
const result = vkCreateIndirectCommandsLayoutNVX(device, &createInfo, pAllocator, &out_indirectCommandsLayout);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_indirectCommandsLayout;
|
|
}
|
|
|
|
pub const DestroyIndirectCommandsLayoutNVX = vkDestroyIndirectCommandsLayoutNVX;
|
|
|
|
pub inline fn CreateObjectTableNVX(device: Device, createInfo: ObjectTableCreateInfoNVX, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!ObjectTableNVX {
|
|
var out_objectTable: ObjectTableNVX = undefined;
|
|
const result = vkCreateObjectTableNVX(device, &createInfo, pAllocator, &out_objectTable);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_objectTable;
|
|
}
|
|
|
|
pub const DestroyObjectTableNVX = vkDestroyObjectTableNVX;
|
|
|
|
pub inline fn RegisterObjectsNVX(device: Device, objectTable: ObjectTableNVX, pObjectTableEntries: []const*const ObjectTableEntryNVX, objectIndices: []const u32) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
assert(objectIndices.len >= pObjectTableEntries.len);
|
|
const result = vkRegisterObjectsNVX(device, objectTable, @intCast(u32, pObjectTableEntries.len), pObjectTableEntries.ptr, objectIndices.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn UnregisterObjectsNVX(device: Device, objectTable: ObjectTableNVX, objectEntryTypes: []const ObjectEntryTypeNVX, objectIndices: []const u32) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
assert(objectIndices.len >= objectEntryTypes.len);
|
|
const result = vkUnregisterObjectsNVX(device, objectTable, @intCast(u32, objectEntryTypes.len), objectEntryTypes.ptr, objectIndices.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub const GetPhysicalDeviceGeneratedCommandsPropertiesNVXResult = struct {
|
|
features: DeviceGeneratedCommandsFeaturesNVX,
|
|
limits: DeviceGeneratedCommandsLimitsNVX,
|
|
};
|
|
pub inline fn GetPhysicalDeviceGeneratedCommandsPropertiesNVX(physicalDevice: PhysicalDevice) GetPhysicalDeviceGeneratedCommandsPropertiesNVXResult {
|
|
var returnValues: GetPhysicalDeviceGeneratedCommandsPropertiesNVXResult = undefined;
|
|
vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(physicalDevice, &returnValues.features, &returnValues.limits);
|
|
return returnValues;
|
|
}
|
|
|
|
|
|
pub const NV_clip_space_w_scaling = 1;
|
|
pub const NV_CLIP_SPACE_W_SCALING_SPEC_VERSION = 1;
|
|
pub const NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME = "VK_NV_clip_space_w_scaling";
|
|
|
|
pub const ViewportWScalingNV = extern struct {
|
|
xcoeff: f32,
|
|
ycoeff: f32,
|
|
};
|
|
|
|
pub const PipelineViewportWScalingStateCreateInfoNV = extern struct {
|
|
sType: StructureType = .PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV,
|
|
pNext: ?*const anyopaque = null,
|
|
viewportWScalingEnable: Bool32,
|
|
viewportCount: u32,
|
|
pViewportWScalings: ?[*]const ViewportWScalingNV = null,
|
|
};
|
|
|
|
pub extern fn vkCmdSetViewportWScalingNV(
|
|
commandBuffer: CommandBuffer,
|
|
firstViewport: u32,
|
|
viewportCount: u32,
|
|
pViewportWScalings: [*]const ViewportWScalingNV,
|
|
) callconv(CallConv) void;
|
|
|
|
pub inline fn CmdSetViewportWScalingNV(commandBuffer: CommandBuffer, firstViewport: u32, viewportWScalings: []const ViewportWScalingNV) void {
|
|
vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, @intCast(u32, viewportWScalings.len), viewportWScalings.ptr);
|
|
}
|
|
|
|
|
|
pub const EXT_direct_mode_display = 1;
|
|
pub const EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION = 1;
|
|
pub const EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME = "VK_EXT_direct_mode_display";
|
|
|
|
pub extern fn vkReleaseDisplayEXT(
|
|
physicalDevice: PhysicalDevice,
|
|
display: DisplayKHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub inline fn ReleaseDisplayEXT(physicalDevice: PhysicalDevice, display: DisplayKHR) error{VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkReleaseDisplayEXT(physicalDevice, display);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return error.VK_UNDOCUMENTED_ERROR;
|
|
}
|
|
}
|
|
|
|
|
|
pub const EXT_display_surface_counter = 1;
|
|
pub const EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION = 1;
|
|
pub const EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME = "VK_EXT_display_surface_counter";
|
|
|
|
pub const SurfaceCounterFlagsEXT = packed struct {
|
|
vblank: bool = false,
|
|
__reserved_bit_01: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const SurfaceCapabilities2EXT = extern struct {
|
|
sType: StructureType = .SURFACE_CAPABILITIES_2_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
minImageCount: u32,
|
|
maxImageCount: u32,
|
|
currentExtent: Extent2D,
|
|
minImageExtent: Extent2D,
|
|
maxImageExtent: Extent2D,
|
|
maxImageArrayLayers: u32,
|
|
supportedTransforms: SurfaceTransformFlagsKHR align(4) = SurfaceTransformFlagsKHR{},
|
|
currentTransform: SurfaceTransformFlagsKHR align(4),
|
|
supportedCompositeAlpha: CompositeAlphaFlagsKHR align(4) = CompositeAlphaFlagsKHR{},
|
|
supportedUsageFlags: ImageUsageFlags align(4) = ImageUsageFlags{},
|
|
supportedSurfaceCounters: SurfaceCounterFlagsEXT align(4) = SurfaceCounterFlagsEXT{},
|
|
};
|
|
|
|
pub extern fn vkGetPhysicalDeviceSurfaceCapabilities2EXT(
|
|
physicalDevice: PhysicalDevice,
|
|
surface: SurfaceKHR,
|
|
pSurfaceCapabilities: *SurfaceCapabilities2EXT,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub inline fn GetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice: PhysicalDevice, surface: SurfaceKHR) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_SURFACE_LOST_KHR,VK_UNDOCUMENTED_ERROR}!SurfaceCapabilities2EXT {
|
|
var out_surfaceCapabilities: SurfaceCapabilities2EXT = undefined;
|
|
const result = vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, &out_surfaceCapabilities);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_SURFACE_LOST_KHR => error.VK_SURFACE_LOST_KHR,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_surfaceCapabilities;
|
|
}
|
|
|
|
|
|
pub const EXT_display_control = 1;
|
|
pub const EXT_DISPLAY_CONTROL_SPEC_VERSION = 1;
|
|
pub const EXT_DISPLAY_CONTROL_EXTENSION_NAME = "VK_EXT_display_control";
|
|
|
|
pub const DisplayPowerStateEXT = enum(i32) {
|
|
OFF = 0,
|
|
SUSPEND = 1,
|
|
ON = 2,
|
|
_,
|
|
};
|
|
|
|
pub const DeviceEventTypeEXT = enum(i32) {
|
|
DISPLAY_HOTPLUG = 0,
|
|
_,
|
|
};
|
|
|
|
pub const DisplayEventTypeEXT = enum(i32) {
|
|
FIRST_PIXEL_OUT = 0,
|
|
_,
|
|
};
|
|
|
|
pub const DisplayPowerInfoEXT = extern struct {
|
|
sType: StructureType = .DISPLAY_POWER_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
powerState: DisplayPowerStateEXT,
|
|
};
|
|
|
|
pub const DeviceEventInfoEXT = extern struct {
|
|
sType: StructureType = .DEVICE_EVENT_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
deviceEvent: DeviceEventTypeEXT,
|
|
};
|
|
|
|
pub const DisplayEventInfoEXT = extern struct {
|
|
sType: StructureType = .DISPLAY_EVENT_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
displayEvent: DisplayEventTypeEXT,
|
|
};
|
|
|
|
pub const SwapchainCounterCreateInfoEXT = extern struct {
|
|
sType: StructureType = .SWAPCHAIN_COUNTER_CREATE_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
surfaceCounters: SurfaceCounterFlagsEXT align(4) = SurfaceCounterFlagsEXT{},
|
|
};
|
|
|
|
pub extern fn vkDisplayPowerControlEXT(
|
|
device: Device,
|
|
display: DisplayKHR,
|
|
pDisplayPowerInfo: *const DisplayPowerInfoEXT,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkRegisterDeviceEventEXT(
|
|
device: Device,
|
|
pDeviceEventInfo: *const DeviceEventInfoEXT,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pFence: *Fence,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkRegisterDisplayEventEXT(
|
|
device: Device,
|
|
display: DisplayKHR,
|
|
pDisplayEventInfo: *const DisplayEventInfoEXT,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pFence: *Fence,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetSwapchainCounterEXT(
|
|
device: Device,
|
|
swapchain: SwapchainKHR,
|
|
counter: SurfaceCounterFlagsEXT.IntType,
|
|
pCounterValue: *u64,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub inline fn DisplayPowerControlEXT(device: Device, display: DisplayKHR, displayPowerInfo: DisplayPowerInfoEXT) error{VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkDisplayPowerControlEXT(device, display, &displayPowerInfo);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return error.VK_UNDOCUMENTED_ERROR;
|
|
}
|
|
}
|
|
|
|
pub inline fn RegisterDeviceEventEXT(device: Device, deviceEventInfo: DeviceEventInfoEXT, pAllocator: ?*const AllocationCallbacks) error{VK_UNDOCUMENTED_ERROR}!Fence {
|
|
var out_fence: Fence = undefined;
|
|
const result = vkRegisterDeviceEventEXT(device, &deviceEventInfo, pAllocator, &out_fence);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return error.VK_UNDOCUMENTED_ERROR;
|
|
}
|
|
return out_fence;
|
|
}
|
|
|
|
pub inline fn RegisterDisplayEventEXT(device: Device, display: DisplayKHR, displayEventInfo: DisplayEventInfoEXT, pAllocator: ?*const AllocationCallbacks) error{VK_UNDOCUMENTED_ERROR}!Fence {
|
|
var out_fence: Fence = undefined;
|
|
const result = vkRegisterDisplayEventEXT(device, display, &displayEventInfo, pAllocator, &out_fence);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return error.VK_UNDOCUMENTED_ERROR;
|
|
}
|
|
return out_fence;
|
|
}
|
|
|
|
pub inline fn GetSwapchainCounterEXT(device: Device, swapchain: SwapchainKHR, counter: SurfaceCounterFlagsEXT) error{VK_DEVICE_LOST,VK_OUT_OF_DATE_KHR,VK_UNDOCUMENTED_ERROR}!u64 {
|
|
var out_counterValue: u64 = undefined;
|
|
const result = vkGetSwapchainCounterEXT(device, swapchain, counter.toInt(), &out_counterValue);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_DEVICE_LOST => error.VK_DEVICE_LOST,
|
|
.ERROR_OUT_OF_DATE_KHR => error.VK_OUT_OF_DATE_KHR,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_counterValue;
|
|
}
|
|
|
|
|
|
pub const GOOGLE_display_timing = 1;
|
|
pub const GOOGLE_DISPLAY_TIMING_SPEC_VERSION = 1;
|
|
pub const GOOGLE_DISPLAY_TIMING_EXTENSION_NAME = "VK_GOOGLE_display_timing";
|
|
|
|
pub const RefreshCycleDurationGOOGLE = extern struct {
|
|
refreshDuration: u64,
|
|
};
|
|
|
|
pub const PastPresentationTimingGOOGLE = extern struct {
|
|
presentID: u32,
|
|
desiredPresentTime: u64,
|
|
actualPresentTime: u64,
|
|
earliestPresentTime: u64,
|
|
presentMargin: u64,
|
|
};
|
|
|
|
pub const PresentTimeGOOGLE = extern struct {
|
|
presentID: u32,
|
|
desiredPresentTime: u64,
|
|
};
|
|
|
|
pub const PresentTimesInfoGOOGLE = extern struct {
|
|
sType: StructureType = .PRESENT_TIMES_INFO_GOOGLE,
|
|
pNext: ?*const anyopaque = null,
|
|
swapchainCount: u32,
|
|
pTimes: ?[*]const PresentTimeGOOGLE = null,
|
|
};
|
|
|
|
pub extern fn vkGetRefreshCycleDurationGOOGLE(
|
|
device: Device,
|
|
swapchain: SwapchainKHR,
|
|
pDisplayTimingProperties: *RefreshCycleDurationGOOGLE,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetPastPresentationTimingGOOGLE(
|
|
device: Device,
|
|
swapchain: SwapchainKHR,
|
|
pPresentationTimingCount: *u32,
|
|
pPresentationTimings: ?[*]PastPresentationTimingGOOGLE,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub inline fn GetRefreshCycleDurationGOOGLE(device: Device, swapchain: SwapchainKHR) error{VK_DEVICE_LOST,VK_SURFACE_LOST_KHR,VK_UNDOCUMENTED_ERROR}!RefreshCycleDurationGOOGLE {
|
|
var out_displayTimingProperties: RefreshCycleDurationGOOGLE = undefined;
|
|
const result = vkGetRefreshCycleDurationGOOGLE(device, swapchain, &out_displayTimingProperties);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_DEVICE_LOST => error.VK_DEVICE_LOST,
|
|
.ERROR_SURFACE_LOST_KHR => error.VK_SURFACE_LOST_KHR,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_displayTimingProperties;
|
|
}
|
|
|
|
pub const GetPastPresentationTimingGOOGLEResult = struct {
|
|
result: Result,
|
|
presentationTimings: []PastPresentationTimingGOOGLE,
|
|
};
|
|
pub inline fn GetPastPresentationTimingGOOGLE(device: Device, swapchain: SwapchainKHR, presentationTimings: []PastPresentationTimingGOOGLE) error{VK_DEVICE_LOST,VK_OUT_OF_DATE_KHR,VK_SURFACE_LOST_KHR,VK_UNDOCUMENTED_ERROR}!GetPastPresentationTimingGOOGLEResult {
|
|
var returnValues: GetPastPresentationTimingGOOGLEResult = undefined;
|
|
var presentationTimingCount: u32 = @intCast(u32, presentationTimings.len);
|
|
const result = vkGetPastPresentationTimingGOOGLE(device, swapchain, &presentationTimingCount, presentationTimings.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_DEVICE_LOST => error.VK_DEVICE_LOST,
|
|
.ERROR_OUT_OF_DATE_KHR => error.VK_OUT_OF_DATE_KHR,
|
|
.ERROR_SURFACE_LOST_KHR => error.VK_SURFACE_LOST_KHR,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.presentationTimings = presentationTimings[0..presentationTimingCount];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn GetPastPresentationTimingCountGOOGLE(device: Device, swapchain: SwapchainKHR) error{VK_DEVICE_LOST,VK_OUT_OF_DATE_KHR,VK_SURFACE_LOST_KHR,VK_UNDOCUMENTED_ERROR}!u32 {
|
|
var out_presentationTimingCount: u32 = undefined;
|
|
const result = vkGetPastPresentationTimingGOOGLE(device, swapchain, &out_presentationTimingCount, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_DEVICE_LOST => error.VK_DEVICE_LOST,
|
|
.ERROR_OUT_OF_DATE_KHR => error.VK_OUT_OF_DATE_KHR,
|
|
.ERROR_SURFACE_LOST_KHR => error.VK_SURFACE_LOST_KHR,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_presentationTimingCount;
|
|
}
|
|
|
|
|
|
pub const NV_sample_mask_override_coverage = 1;
|
|
pub const NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION = 1;
|
|
pub const NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME = "VK_NV_sample_mask_override_coverage";
|
|
|
|
|
|
pub const NV_geometry_shader_passthrough = 1;
|
|
pub const NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION = 1;
|
|
pub const NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME = "VK_NV_geometry_shader_passthrough";
|
|
|
|
|
|
pub const NV_viewport_array2 = 1;
|
|
pub const NV_VIEWPORT_ARRAY2_SPEC_VERSION = 1;
|
|
pub const NV_VIEWPORT_ARRAY2_EXTENSION_NAME = "VK_NV_viewport_array2";
|
|
|
|
|
|
pub const NVX_multiview_per_view_attributes = 1;
|
|
pub const NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION = 1;
|
|
pub const NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME = "VK_NVX_multiview_per_view_attributes";
|
|
|
|
pub const PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX,
|
|
pNext: ?*anyopaque = null,
|
|
perViewPositionAllComponents: Bool32,
|
|
};
|
|
|
|
|
|
pub const NV_viewport_swizzle = 1;
|
|
pub const NV_VIEWPORT_SWIZZLE_SPEC_VERSION = 1;
|
|
pub const NV_VIEWPORT_SWIZZLE_EXTENSION_NAME = "VK_NV_viewport_swizzle";
|
|
|
|
pub const ViewportCoordinateSwizzleNV = enum(i32) {
|
|
POSITIVE_X = 0,
|
|
NEGATIVE_X = 1,
|
|
POSITIVE_Y = 2,
|
|
NEGATIVE_Y = 3,
|
|
POSITIVE_Z = 4,
|
|
NEGATIVE_Z = 5,
|
|
POSITIVE_W = 6,
|
|
NEGATIVE_W = 7,
|
|
_,
|
|
};
|
|
|
|
pub const PipelineViewportSwizzleStateCreateFlagsNV = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const ViewportSwizzleNV = extern struct {
|
|
x: ViewportCoordinateSwizzleNV,
|
|
y: ViewportCoordinateSwizzleNV,
|
|
z: ViewportCoordinateSwizzleNV,
|
|
w: ViewportCoordinateSwizzleNV,
|
|
};
|
|
|
|
pub const PipelineViewportSwizzleStateCreateInfoNV = extern struct {
|
|
sType: StructureType = .PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: PipelineViewportSwizzleStateCreateFlagsNV align(4) = PipelineViewportSwizzleStateCreateFlagsNV{},
|
|
viewportCount: u32,
|
|
pViewportSwizzles: [*]const ViewportSwizzleNV,
|
|
};
|
|
|
|
|
|
pub const EXT_discard_rectangles = 1;
|
|
pub const EXT_DISCARD_RECTANGLES_SPEC_VERSION = 1;
|
|
pub const EXT_DISCARD_RECTANGLES_EXTENSION_NAME = "VK_EXT_discard_rectangles";
|
|
|
|
pub const DiscardRectangleModeEXT = enum(i32) {
|
|
INCLUSIVE = 0,
|
|
EXCLUSIVE = 1,
|
|
_,
|
|
};
|
|
|
|
pub const PipelineDiscardRectangleStateCreateFlagsEXT = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const PhysicalDeviceDiscardRectanglePropertiesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
maxDiscardRectangles: u32,
|
|
};
|
|
|
|
pub const PipelineDiscardRectangleStateCreateInfoEXT = extern struct {
|
|
sType: StructureType = .PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: PipelineDiscardRectangleStateCreateFlagsEXT align(4) = PipelineDiscardRectangleStateCreateFlagsEXT{},
|
|
discardRectangleMode: DiscardRectangleModeEXT,
|
|
discardRectangleCount: u32 = 0,
|
|
pDiscardRectangles: ?[*]const Rect2D = null,
|
|
};
|
|
|
|
pub extern fn vkCmdSetDiscardRectangleEXT(
|
|
commandBuffer: CommandBuffer,
|
|
firstDiscardRectangle: u32,
|
|
discardRectangleCount: u32,
|
|
pDiscardRectangles: [*]const Rect2D,
|
|
) callconv(CallConv) void;
|
|
|
|
pub inline fn CmdSetDiscardRectangleEXT(commandBuffer: CommandBuffer, firstDiscardRectangle: u32, discardRectangles: []const Rect2D) void {
|
|
vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, @intCast(u32, discardRectangles.len), discardRectangles.ptr);
|
|
}
|
|
|
|
|
|
pub const EXT_conservative_rasterization = 1;
|
|
pub const EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION = 1;
|
|
pub const EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME = "VK_EXT_conservative_rasterization";
|
|
|
|
pub const ConservativeRasterizationModeEXT = enum(i32) {
|
|
DISABLED = 0,
|
|
OVERESTIMATE = 1,
|
|
UNDERESTIMATE = 2,
|
|
_,
|
|
};
|
|
|
|
pub const PipelineRasterizationConservativeStateCreateFlagsEXT = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const PhysicalDeviceConservativeRasterizationPropertiesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
primitiveOverestimationSize: f32,
|
|
maxExtraPrimitiveOverestimationSize: f32,
|
|
extraPrimitiveOverestimationSizeGranularity: f32,
|
|
primitiveUnderestimation: Bool32,
|
|
conservativePointAndLineRasterization: Bool32,
|
|
degenerateTrianglesRasterized: Bool32,
|
|
degenerateLinesRasterized: Bool32,
|
|
fullyCoveredFragmentShaderInputVariable: Bool32,
|
|
conservativeRasterizationPostDepthCoverage: Bool32,
|
|
};
|
|
|
|
pub const PipelineRasterizationConservativeStateCreateInfoEXT = extern struct {
|
|
sType: StructureType = .PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: PipelineRasterizationConservativeStateCreateFlagsEXT align(4) = PipelineRasterizationConservativeStateCreateFlagsEXT{},
|
|
conservativeRasterizationMode: ConservativeRasterizationModeEXT,
|
|
extraPrimitiveOverestimationSize: f32,
|
|
};
|
|
|
|
|
|
pub const EXT_depth_clip_enable = 1;
|
|
pub const EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION = 1;
|
|
pub const EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME = "VK_EXT_depth_clip_enable";
|
|
|
|
pub const PipelineRasterizationDepthClipStateCreateFlagsEXT = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const PhysicalDeviceDepthClipEnableFeaturesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
depthClipEnable: Bool32,
|
|
};
|
|
|
|
pub const PipelineRasterizationDepthClipStateCreateInfoEXT = extern struct {
|
|
sType: StructureType = .PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: PipelineRasterizationDepthClipStateCreateFlagsEXT align(4) = PipelineRasterizationDepthClipStateCreateFlagsEXT{},
|
|
depthClipEnable: Bool32,
|
|
};
|
|
|
|
|
|
pub const EXT_swapchain_colorspace = 1;
|
|
pub const EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION = 4;
|
|
pub const EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME = "VK_EXT_swapchain_colorspace";
|
|
|
|
|
|
pub const EXT_hdr_metadata = 1;
|
|
pub const EXT_HDR_METADATA_SPEC_VERSION = 2;
|
|
pub const EXT_HDR_METADATA_EXTENSION_NAME = "VK_EXT_hdr_metadata";
|
|
|
|
pub const XYColorEXT = extern struct {
|
|
x: f32,
|
|
y: f32,
|
|
};
|
|
|
|
pub const HdrMetadataEXT = extern struct {
|
|
sType: StructureType = .HDR_METADATA_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
displayPrimaryRed: XYColorEXT,
|
|
displayPrimaryGreen: XYColorEXT,
|
|
displayPrimaryBlue: XYColorEXT,
|
|
whitePoint: XYColorEXT,
|
|
maxLuminance: f32,
|
|
minLuminance: f32,
|
|
maxContentLightLevel: f32,
|
|
maxFrameAverageLightLevel: f32,
|
|
};
|
|
|
|
pub extern fn vkSetHdrMetadataEXT(
|
|
device: Device,
|
|
swapchainCount: u32,
|
|
pSwapchains: [*]const SwapchainKHR,
|
|
pMetadata: [*]const HdrMetadataEXT,
|
|
) callconv(CallConv) void;
|
|
|
|
pub inline fn SetHdrMetadataEXT(device: Device, swapchains: []const SwapchainKHR, metadata: []const HdrMetadataEXT) void {
|
|
assert(metadata.len >= swapchains.len);
|
|
vkSetHdrMetadataEXT(device, @intCast(u32, swapchains.len), swapchains.ptr, metadata.ptr);
|
|
}
|
|
|
|
|
|
pub const EXT_external_memory_dma_buf = 1;
|
|
pub const EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION = 1;
|
|
pub const EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME = "VK_EXT_external_memory_dma_buf";
|
|
|
|
|
|
pub const EXT_queue_family_foreign = 1;
|
|
pub const EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION = 1;
|
|
pub const EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME = "VK_EXT_queue_family_foreign";
|
|
pub const QUEUE_FAMILY_FOREIGN_EXT = (~@as(u32, 0)-2);
|
|
|
|
|
|
pub const EXT_debug_utils = 1;
|
|
pub const DebugUtilsMessengerEXT = enum(u64) { Null = 0, _ };
|
|
|
|
pub const EXT_DEBUG_UTILS_SPEC_VERSION = 1;
|
|
pub const EXT_DEBUG_UTILS_EXTENSION_NAME = "VK_EXT_debug_utils";
|
|
|
|
pub const DebugUtilsMessengerCallbackDataFlagsEXT = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const DebugUtilsMessengerCreateFlagsEXT = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const DebugUtilsMessageSeverityFlagsEXT = packed struct {
|
|
verbose: bool = false,
|
|
__reserved_bit_01: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
info: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
warning: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
errorBit: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const DebugUtilsMessageTypeFlagsEXT = packed struct {
|
|
general: bool = false,
|
|
validation: bool = false,
|
|
performance: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const DebugUtilsObjectNameInfoEXT = extern struct {
|
|
sType: StructureType = .DEBUG_UTILS_OBJECT_NAME_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
objectType: ObjectType,
|
|
objectHandle: u64,
|
|
pObjectName: ?CString = null,
|
|
};
|
|
|
|
pub const DebugUtilsObjectTagInfoEXT = extern struct {
|
|
sType: StructureType = .DEBUG_UTILS_OBJECT_TAG_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
objectType: ObjectType,
|
|
objectHandle: u64,
|
|
tagName: u64,
|
|
tagSize: usize,
|
|
pTag: ?*const anyopaque,
|
|
};
|
|
|
|
pub const DebugUtilsLabelEXT = extern struct {
|
|
sType: StructureType = .DEBUG_UTILS_LABEL_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
pLabelName: CString,
|
|
color: [4]f32 = 0,
|
|
};
|
|
|
|
pub const DebugUtilsMessengerCallbackDataEXT = extern struct {
|
|
sType: StructureType = .DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: DebugUtilsMessengerCallbackDataFlagsEXT align(4) = DebugUtilsMessengerCallbackDataFlagsEXT{},
|
|
pMessageIdName: ?CString = null,
|
|
messageIdNumber: i32 = 0,
|
|
pMessage: CString,
|
|
queueLabelCount: u32 = 0,
|
|
pQueueLabels: [*]const DebugUtilsLabelEXT = undefined,
|
|
cmdBufLabelCount: u32 = 0,
|
|
pCmdBufLabels: [*]const DebugUtilsLabelEXT = undefined,
|
|
objectCount: u32 = 0,
|
|
pObjects: [*]const DebugUtilsObjectNameInfoEXT = undefined,
|
|
};
|
|
|
|
pub const PFN_DebugUtilsMessengerCallbackEXT = fn (
|
|
DebugUtilsMessageSeverityFlagsEXT.IntType,
|
|
DebugUtilsMessageTypeFlagsEXT.IntType,
|
|
?[*]const DebugUtilsMessengerCallbackDataEXT,
|
|
?*anyopaque,
|
|
) callconv(CallConv) Bool32;
|
|
|
|
pub const DebugUtilsMessengerCreateInfoEXT = extern struct {
|
|
sType: StructureType = .DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: DebugUtilsMessengerCreateFlagsEXT align(4) = DebugUtilsMessengerCreateFlagsEXT{},
|
|
messageSeverity: DebugUtilsMessageSeverityFlagsEXT align(4),
|
|
messageType: DebugUtilsMessageTypeFlagsEXT align(4),
|
|
pfnUserCallback: PFN_DebugUtilsMessengerCallbackEXT,
|
|
pUserData: ?*anyopaque = null,
|
|
};
|
|
|
|
pub extern fn vkSetDebugUtilsObjectNameEXT(
|
|
device: Device,
|
|
pNameInfo: *const DebugUtilsObjectNameInfoEXT,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkSetDebugUtilsObjectTagEXT(
|
|
device: Device,
|
|
pTagInfo: *const DebugUtilsObjectTagInfoEXT,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkQueueBeginDebugUtilsLabelEXT(
|
|
queue: Queue,
|
|
pLabelInfo: *const DebugUtilsLabelEXT,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkQueueEndDebugUtilsLabelEXT(queue: Queue) callconv(CallConv) void;
|
|
|
|
pub extern fn vkQueueInsertDebugUtilsLabelEXT(
|
|
queue: Queue,
|
|
pLabelInfo: *const DebugUtilsLabelEXT,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdBeginDebugUtilsLabelEXT(
|
|
commandBuffer: CommandBuffer,
|
|
pLabelInfo: *const DebugUtilsLabelEXT,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdEndDebugUtilsLabelEXT(commandBuffer: CommandBuffer) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdInsertDebugUtilsLabelEXT(
|
|
commandBuffer: CommandBuffer,
|
|
pLabelInfo: *const DebugUtilsLabelEXT,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCreateDebugUtilsMessengerEXT(
|
|
instance: Instance,
|
|
pCreateInfo: *const DebugUtilsMessengerCreateInfoEXT,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pMessenger: *DebugUtilsMessengerEXT,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroyDebugUtilsMessengerEXT(
|
|
instance: Instance,
|
|
messenger: DebugUtilsMessengerEXT,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkSubmitDebugUtilsMessageEXT(
|
|
instance: Instance,
|
|
messageSeverity: DebugUtilsMessageSeverityFlagsEXT.IntType,
|
|
messageTypes: DebugUtilsMessageTypeFlagsEXT.IntType,
|
|
pCallbackData: *const DebugUtilsMessengerCallbackDataEXT,
|
|
) callconv(CallConv) void;
|
|
|
|
pub inline fn SetDebugUtilsObjectNameEXT(device: Device, nameInfo: DebugUtilsObjectNameInfoEXT) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkSetDebugUtilsObjectNameEXT(device, &nameInfo);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn SetDebugUtilsObjectTagEXT(device: Device, tagInfo: DebugUtilsObjectTagInfoEXT) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkSetDebugUtilsObjectTagEXT(device, &tagInfo);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn QueueBeginDebugUtilsLabelEXT(queue: Queue, labelInfo: DebugUtilsLabelEXT) void {
|
|
vkQueueBeginDebugUtilsLabelEXT(queue, &labelInfo);
|
|
}
|
|
|
|
pub const QueueEndDebugUtilsLabelEXT = vkQueueEndDebugUtilsLabelEXT;
|
|
|
|
pub inline fn QueueInsertDebugUtilsLabelEXT(queue: Queue, labelInfo: DebugUtilsLabelEXT) void {
|
|
vkQueueInsertDebugUtilsLabelEXT(queue, &labelInfo);
|
|
}
|
|
|
|
pub inline fn CmdBeginDebugUtilsLabelEXT(commandBuffer: CommandBuffer, labelInfo: DebugUtilsLabelEXT) void {
|
|
vkCmdBeginDebugUtilsLabelEXT(commandBuffer, &labelInfo);
|
|
}
|
|
|
|
pub const CmdEndDebugUtilsLabelEXT = vkCmdEndDebugUtilsLabelEXT;
|
|
|
|
pub inline fn CmdInsertDebugUtilsLabelEXT(commandBuffer: CommandBuffer, labelInfo: DebugUtilsLabelEXT) void {
|
|
vkCmdInsertDebugUtilsLabelEXT(commandBuffer, &labelInfo);
|
|
}
|
|
|
|
pub inline fn CreateDebugUtilsMessengerEXT(instance: Instance, createInfo: DebugUtilsMessengerCreateInfoEXT, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_UNDOCUMENTED_ERROR}!DebugUtilsMessengerEXT {
|
|
var out_messenger: DebugUtilsMessengerEXT = undefined;
|
|
const result = vkCreateDebugUtilsMessengerEXT(instance, &createInfo, pAllocator, &out_messenger);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_messenger;
|
|
}
|
|
|
|
pub const DestroyDebugUtilsMessengerEXT = vkDestroyDebugUtilsMessengerEXT;
|
|
|
|
pub inline fn SubmitDebugUtilsMessageEXT(instance: Instance, messageSeverity: DebugUtilsMessageSeverityFlagsEXT, messageTypes: DebugUtilsMessageTypeFlagsEXT, callbackData: DebugUtilsMessengerCallbackDataEXT) void {
|
|
vkSubmitDebugUtilsMessageEXT(instance, messageSeverity.toInt(), messageTypes.toInt(), &callbackData);
|
|
}
|
|
|
|
|
|
pub const EXT_sampler_filter_minmax = 1;
|
|
pub const EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION = 2;
|
|
pub const EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME = "VK_EXT_sampler_filter_minmax";
|
|
|
|
pub const SamplerReductionModeEXT = SamplerReductionMode;
|
|
|
|
pub const SamplerReductionModeCreateInfoEXT = SamplerReductionModeCreateInfo;
|
|
pub const PhysicalDeviceSamplerFilterMinmaxPropertiesEXT = PhysicalDeviceSamplerFilterMinmaxProperties;
|
|
|
|
|
|
pub const AMD_gpu_shader_int16 = 1;
|
|
pub const AMD_GPU_SHADER_INT16_SPEC_VERSION = 2;
|
|
pub const AMD_GPU_SHADER_INT16_EXTENSION_NAME = "VK_AMD_gpu_shader_int16";
|
|
|
|
|
|
pub const AMD_mixed_attachment_samples = 1;
|
|
pub const AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION = 1;
|
|
pub const AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME = "VK_AMD_mixed_attachment_samples";
|
|
|
|
|
|
pub const AMD_shader_fragment_mask = 1;
|
|
pub const AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION = 1;
|
|
pub const AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME = "VK_AMD_shader_fragment_mask";
|
|
|
|
|
|
pub const EXT_inline_uniform_block = 1;
|
|
pub const EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION = 1;
|
|
pub const EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME = "VK_EXT_inline_uniform_block";
|
|
|
|
pub const PhysicalDeviceInlineUniformBlockFeaturesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
inlineUniformBlock: Bool32,
|
|
descriptorBindingInlineUniformBlockUpdateAfterBind: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDeviceInlineUniformBlockPropertiesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
maxInlineUniformBlockSize: u32,
|
|
maxPerStageDescriptorInlineUniformBlocks: u32,
|
|
maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks: u32,
|
|
maxDescriptorSetInlineUniformBlocks: u32,
|
|
maxDescriptorSetUpdateAfterBindInlineUniformBlocks: u32,
|
|
};
|
|
|
|
pub const WriteDescriptorSetInlineUniformBlockEXT = extern struct {
|
|
sType: StructureType = .WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
dataSize: u32,
|
|
pData: ?*const anyopaque,
|
|
};
|
|
|
|
pub const DescriptorPoolInlineUniformBlockCreateInfoEXT = extern struct {
|
|
sType: StructureType = .DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
maxInlineUniformBlockBindings: u32,
|
|
};
|
|
|
|
|
|
pub const EXT_shader_stencil_export = 1;
|
|
pub const EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION = 1;
|
|
pub const EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME = "VK_EXT_shader_stencil_export";
|
|
|
|
|
|
pub const EXT_sample_locations = 1;
|
|
pub const EXT_SAMPLE_LOCATIONS_SPEC_VERSION = 1;
|
|
pub const EXT_SAMPLE_LOCATIONS_EXTENSION_NAME = "VK_EXT_sample_locations";
|
|
|
|
pub const SampleLocationEXT = extern struct {
|
|
x: f32,
|
|
y: f32,
|
|
};
|
|
|
|
pub const SampleLocationsInfoEXT = extern struct {
|
|
sType: StructureType = .SAMPLE_LOCATIONS_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
sampleLocationsPerPixel: SampleCountFlags align(4) = SampleCountFlags{},
|
|
sampleLocationGridSize: Extent2D,
|
|
sampleLocationsCount: u32 = 0,
|
|
pSampleLocations: [*]const SampleLocationEXT = undefined,
|
|
};
|
|
|
|
pub const AttachmentSampleLocationsEXT = extern struct {
|
|
attachmentIndex: u32,
|
|
sampleLocationsInfo: SampleLocationsInfoEXT,
|
|
};
|
|
|
|
pub const SubpassSampleLocationsEXT = extern struct {
|
|
subpassIndex: u32,
|
|
sampleLocationsInfo: SampleLocationsInfoEXT,
|
|
};
|
|
|
|
pub const RenderPassSampleLocationsBeginInfoEXT = extern struct {
|
|
sType: StructureType = .RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
attachmentInitialSampleLocationsCount: u32 = 0,
|
|
pAttachmentInitialSampleLocations: [*]const AttachmentSampleLocationsEXT = undefined,
|
|
postSubpassSampleLocationsCount: u32 = 0,
|
|
pPostSubpassSampleLocations: [*]const SubpassSampleLocationsEXT = undefined,
|
|
};
|
|
|
|
pub const PipelineSampleLocationsStateCreateInfoEXT = extern struct {
|
|
sType: StructureType = .PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
sampleLocationsEnable: Bool32,
|
|
sampleLocationsInfo: SampleLocationsInfoEXT,
|
|
};
|
|
|
|
pub const PhysicalDeviceSampleLocationsPropertiesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
sampleLocationSampleCounts: SampleCountFlags align(4),
|
|
maxSampleLocationGridSize: Extent2D,
|
|
sampleLocationCoordinateRange: [2]f32,
|
|
sampleLocationSubPixelBits: u32,
|
|
variableSampleLocations: Bool32,
|
|
};
|
|
|
|
pub const MultisamplePropertiesEXT = extern struct {
|
|
sType: StructureType = .MULTISAMPLE_PROPERTIES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
maxSampleLocationGridSize: Extent2D,
|
|
};
|
|
|
|
pub extern fn vkCmdSetSampleLocationsEXT(
|
|
commandBuffer: CommandBuffer,
|
|
pSampleLocationsInfo: *const SampleLocationsInfoEXT,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetPhysicalDeviceMultisamplePropertiesEXT(
|
|
physicalDevice: PhysicalDevice,
|
|
samples: SampleCountFlags.IntType,
|
|
pMultisampleProperties: *MultisamplePropertiesEXT,
|
|
) callconv(CallConv) void;
|
|
|
|
pub inline fn CmdSetSampleLocationsEXT(commandBuffer: CommandBuffer, sampleLocationsInfo: SampleLocationsInfoEXT) void {
|
|
vkCmdSetSampleLocationsEXT(commandBuffer, &sampleLocationsInfo);
|
|
}
|
|
|
|
pub inline fn GetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice: PhysicalDevice, samples: SampleCountFlags) MultisamplePropertiesEXT {
|
|
var out_multisampleProperties: MultisamplePropertiesEXT = undefined;
|
|
vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples.toInt(), &out_multisampleProperties);
|
|
return out_multisampleProperties;
|
|
}
|
|
|
|
|
|
pub const EXT_blend_operation_advanced = 1;
|
|
pub const EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION = 2;
|
|
pub const EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME = "VK_EXT_blend_operation_advanced";
|
|
|
|
pub const BlendOverlapEXT = enum(i32) {
|
|
UNCORRELATED = 0,
|
|
DISJOINT = 1,
|
|
CONJOINT = 2,
|
|
_,
|
|
};
|
|
|
|
pub const PhysicalDeviceBlendOperationAdvancedFeaturesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
advancedBlendCoherentOperations: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDeviceBlendOperationAdvancedPropertiesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
advancedBlendMaxColorAttachments: u32,
|
|
advancedBlendIndependentBlend: Bool32,
|
|
advancedBlendNonPremultipliedSrcColor: Bool32,
|
|
advancedBlendNonPremultipliedDstColor: Bool32,
|
|
advancedBlendCorrelatedOverlap: Bool32,
|
|
advancedBlendAllOperations: Bool32,
|
|
};
|
|
|
|
pub const PipelineColorBlendAdvancedStateCreateInfoEXT = extern struct {
|
|
sType: StructureType = .PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
srcPremultiplied: Bool32,
|
|
dstPremultiplied: Bool32,
|
|
blendOverlap: BlendOverlapEXT,
|
|
};
|
|
|
|
|
|
pub const NV_fragment_coverage_to_color = 1;
|
|
pub const NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION = 1;
|
|
pub const NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME = "VK_NV_fragment_coverage_to_color";
|
|
|
|
pub const PipelineCoverageToColorStateCreateFlagsNV = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const PipelineCoverageToColorStateCreateInfoNV = extern struct {
|
|
sType: StructureType = .PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: PipelineCoverageToColorStateCreateFlagsNV align(4) = PipelineCoverageToColorStateCreateFlagsNV{},
|
|
coverageToColorEnable: Bool32,
|
|
coverageToColorLocation: u32 = 0,
|
|
};
|
|
|
|
|
|
pub const NV_framebuffer_mixed_samples = 1;
|
|
pub const NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION = 1;
|
|
pub const NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME = "VK_NV_framebuffer_mixed_samples";
|
|
|
|
pub const CoverageModulationModeNV = enum(i32) {
|
|
NONE = 0,
|
|
RGB = 1,
|
|
ALPHA = 2,
|
|
RGBA = 3,
|
|
_,
|
|
};
|
|
|
|
pub const PipelineCoverageModulationStateCreateFlagsNV = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const PipelineCoverageModulationStateCreateInfoNV = extern struct {
|
|
sType: StructureType = .PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: PipelineCoverageModulationStateCreateFlagsNV align(4) = PipelineCoverageModulationStateCreateFlagsNV{},
|
|
coverageModulationMode: CoverageModulationModeNV,
|
|
coverageModulationTableEnable: Bool32,
|
|
coverageModulationTableCount: u32 = 0,
|
|
pCoverageModulationTable: ?[*]const f32 = null,
|
|
};
|
|
|
|
|
|
pub const NV_fill_rectangle = 1;
|
|
pub const NV_FILL_RECTANGLE_SPEC_VERSION = 1;
|
|
pub const NV_FILL_RECTANGLE_EXTENSION_NAME = "VK_NV_fill_rectangle";
|
|
|
|
|
|
pub const NV_shader_sm_builtins = 1;
|
|
pub const NV_SHADER_SM_BUILTINS_SPEC_VERSION = 1;
|
|
pub const NV_SHADER_SM_BUILTINS_EXTENSION_NAME = "VK_NV_shader_sm_builtins";
|
|
|
|
pub const PhysicalDeviceShaderSMBuiltinsPropertiesNV = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV,
|
|
pNext: ?*anyopaque = null,
|
|
shaderSMCount: u32,
|
|
shaderWarpsPerSM: u32,
|
|
};
|
|
|
|
pub const PhysicalDeviceShaderSMBuiltinsFeaturesNV = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV,
|
|
pNext: ?*anyopaque = null,
|
|
shaderSMBuiltins: Bool32,
|
|
};
|
|
|
|
|
|
pub const EXT_post_depth_coverage = 1;
|
|
pub const EXT_POST_DEPTH_COVERAGE_SPEC_VERSION = 1;
|
|
pub const EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME = "VK_EXT_post_depth_coverage";
|
|
|
|
|
|
pub const EXT_image_drm_format_modifier = 1;
|
|
pub const EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION = 1;
|
|
pub const EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME = "VK_EXT_image_drm_format_modifier";
|
|
|
|
pub const DrmFormatModifierPropertiesEXT = extern struct {
|
|
drmFormatModifier: u64,
|
|
drmFormatModifierPlaneCount: u32,
|
|
drmFormatModifierTilingFeatures: FormatFeatureFlags align(4),
|
|
};
|
|
|
|
pub const DrmFormatModifierPropertiesListEXT = extern struct {
|
|
sType: StructureType = .DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
drmFormatModifierCount: u32 = 0,
|
|
pDrmFormatModifierProperties: [*]DrmFormatModifierPropertiesEXT = undefined,
|
|
};
|
|
|
|
pub const PhysicalDeviceImageDrmFormatModifierInfoEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
drmFormatModifier: u64,
|
|
sharingMode: SharingMode,
|
|
queueFamilyIndexCount: u32 = 0,
|
|
pQueueFamilyIndices: [*]const u32 = undefined,
|
|
};
|
|
|
|
pub const ImageDrmFormatModifierListCreateInfoEXT = extern struct {
|
|
sType: StructureType = .IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
drmFormatModifierCount: u32,
|
|
pDrmFormatModifiers: [*]const u64,
|
|
};
|
|
|
|
pub const ImageDrmFormatModifierExplicitCreateInfoEXT = extern struct {
|
|
sType: StructureType = .IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
drmFormatModifier: u64,
|
|
drmFormatModifierPlaneCount: u32,
|
|
pPlaneLayouts: [*]const SubresourceLayout,
|
|
};
|
|
|
|
pub const ImageDrmFormatModifierPropertiesEXT = extern struct {
|
|
sType: StructureType = .IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
drmFormatModifier: u64,
|
|
};
|
|
|
|
pub extern fn vkGetImageDrmFormatModifierPropertiesEXT(
|
|
device: Device,
|
|
image: Image,
|
|
pProperties: *ImageDrmFormatModifierPropertiesEXT,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub inline fn GetImageDrmFormatModifierPropertiesEXT(device: Device, image: Image) error{VK_UNDOCUMENTED_ERROR}!ImageDrmFormatModifierPropertiesEXT {
|
|
var out_properties: ImageDrmFormatModifierPropertiesEXT = undefined;
|
|
const result = vkGetImageDrmFormatModifierPropertiesEXT(device, image, &out_properties);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return error.VK_UNDOCUMENTED_ERROR;
|
|
}
|
|
return out_properties;
|
|
}
|
|
|
|
|
|
pub const EXT_validation_cache = 1;
|
|
pub const ValidationCacheEXT = enum(u64) { Null = 0, _ };
|
|
|
|
pub const EXT_VALIDATION_CACHE_SPEC_VERSION = 1;
|
|
pub const EXT_VALIDATION_CACHE_EXTENSION_NAME = "VK_EXT_validation_cache";
|
|
|
|
pub const ValidationCacheHeaderVersionEXT = enum(i32) {
|
|
ONE = 1,
|
|
_,
|
|
};
|
|
|
|
pub const ValidationCacheCreateFlagsEXT = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const ValidationCacheCreateInfoEXT = extern struct {
|
|
sType: StructureType = .VALIDATION_CACHE_CREATE_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: ValidationCacheCreateFlagsEXT align(4) = ValidationCacheCreateFlagsEXT{},
|
|
initialDataSize: usize = 0,
|
|
pInitialData: ?*const anyopaque = undefined,
|
|
};
|
|
|
|
pub const ShaderModuleValidationCacheCreateInfoEXT = extern struct {
|
|
sType: StructureType = .SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
validationCache: ValidationCacheEXT,
|
|
};
|
|
|
|
pub extern fn vkCreateValidationCacheEXT(
|
|
device: Device,
|
|
pCreateInfo: *const ValidationCacheCreateInfoEXT,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pValidationCache: *ValidationCacheEXT,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroyValidationCacheEXT(
|
|
device: Device,
|
|
validationCache: ValidationCacheEXT,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkMergeValidationCachesEXT(
|
|
device: Device,
|
|
dstCache: ValidationCacheEXT,
|
|
srcCacheCount: u32,
|
|
pSrcCaches: [*]const ValidationCacheEXT,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetValidationCacheDataEXT(
|
|
device: Device,
|
|
validationCache: ValidationCacheEXT,
|
|
pDataSize: *usize,
|
|
pData: ?*anyopaque,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub inline fn CreateValidationCacheEXT(device: Device, createInfo: ValidationCacheCreateInfoEXT, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_UNDOCUMENTED_ERROR}!ValidationCacheEXT {
|
|
var out_validationCache: ValidationCacheEXT = undefined;
|
|
const result = vkCreateValidationCacheEXT(device, &createInfo, pAllocator, &out_validationCache);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_validationCache;
|
|
}
|
|
|
|
pub const DestroyValidationCacheEXT = vkDestroyValidationCacheEXT;
|
|
|
|
pub inline fn MergeValidationCachesEXT(device: Device, dstCache: ValidationCacheEXT, srcCaches: []const ValidationCacheEXT) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkMergeValidationCachesEXT(device, dstCache, @intCast(u32, srcCaches.len), srcCaches.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub const GetValidationCacheDataEXTResult = struct {
|
|
result: Result,
|
|
data: []u8,
|
|
};
|
|
pub inline fn GetValidationCacheDataEXT(device: Device, validationCache: ValidationCacheEXT, data: []u8) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!GetValidationCacheDataEXTResult {
|
|
var returnValues: GetValidationCacheDataEXTResult = undefined;
|
|
var dataSize: usize = @intCast(usize, data.len);
|
|
const result = vkGetValidationCacheDataEXT(device, validationCache, &dataSize, data.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.data = data[0..dataSize];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn GetValidationCacheDataCountEXT(device: Device, validationCache: ValidationCacheEXT) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!usize {
|
|
var out_dataSize: usize = undefined;
|
|
const result = vkGetValidationCacheDataEXT(device, validationCache, &out_dataSize, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_dataSize;
|
|
}
|
|
|
|
|
|
pub const EXT_descriptor_indexing = 1;
|
|
pub const EXT_DESCRIPTOR_INDEXING_SPEC_VERSION = 2;
|
|
pub const EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME = "VK_EXT_descriptor_indexing";
|
|
|
|
pub const DescriptorBindingFlagsEXT = DescriptorBindingFlags;
|
|
|
|
pub const DescriptorSetLayoutBindingFlagsCreateInfoEXT = DescriptorSetLayoutBindingFlagsCreateInfo;
|
|
pub const PhysicalDeviceDescriptorIndexingFeaturesEXT = PhysicalDeviceDescriptorIndexingFeatures;
|
|
pub const PhysicalDeviceDescriptorIndexingPropertiesEXT = PhysicalDeviceDescriptorIndexingProperties;
|
|
pub const DescriptorSetVariableDescriptorCountAllocateInfoEXT = DescriptorSetVariableDescriptorCountAllocateInfo;
|
|
pub const DescriptorSetVariableDescriptorCountLayoutSupportEXT = DescriptorSetVariableDescriptorCountLayoutSupport;
|
|
|
|
|
|
pub const EXT_shader_viewport_index_layer = 1;
|
|
pub const EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION = 1;
|
|
pub const EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME = "VK_EXT_shader_viewport_index_layer";
|
|
|
|
|
|
pub const NV_shading_rate_image = 1;
|
|
pub const NV_SHADING_RATE_IMAGE_SPEC_VERSION = 3;
|
|
pub const NV_SHADING_RATE_IMAGE_EXTENSION_NAME = "VK_NV_shading_rate_image";
|
|
|
|
pub const ShadingRatePaletteEntryNV = enum(i32) {
|
|
NO_INVOCATIONS = 0,
|
|
T_16_INVOCATIONS_PER_PIXEL = 1,
|
|
T_8_INVOCATIONS_PER_PIXEL = 2,
|
|
T_4_INVOCATIONS_PER_PIXEL = 3,
|
|
T_2_INVOCATIONS_PER_PIXEL = 4,
|
|
T_1_INVOCATION_PER_PIXEL = 5,
|
|
T_1_INVOCATION_PER_2X1_PIXELS = 6,
|
|
T_1_INVOCATION_PER_1X2_PIXELS = 7,
|
|
T_1_INVOCATION_PER_2X2_PIXELS = 8,
|
|
T_1_INVOCATION_PER_4X2_PIXELS = 9,
|
|
T_1_INVOCATION_PER_2X4_PIXELS = 10,
|
|
T_1_INVOCATION_PER_4X4_PIXELS = 11,
|
|
_,
|
|
};
|
|
|
|
pub const CoarseSampleOrderTypeNV = enum(i32) {
|
|
DEFAULT = 0,
|
|
CUSTOM = 1,
|
|
PIXEL_MAJOR = 2,
|
|
SAMPLE_MAJOR = 3,
|
|
_,
|
|
};
|
|
|
|
pub const ShadingRatePaletteNV = extern struct {
|
|
shadingRatePaletteEntryCount: u32,
|
|
pShadingRatePaletteEntries: [*]const ShadingRatePaletteEntryNV,
|
|
};
|
|
|
|
pub const PipelineViewportShadingRateImageStateCreateInfoNV = extern struct {
|
|
sType: StructureType = .PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV,
|
|
pNext: ?*const anyopaque = null,
|
|
shadingRateImageEnable: Bool32,
|
|
viewportCount: u32 = 0,
|
|
pShadingRatePalettes: ?[*]const ShadingRatePaletteNV = null,
|
|
};
|
|
|
|
pub const PhysicalDeviceShadingRateImageFeaturesNV = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV,
|
|
pNext: ?*anyopaque = null,
|
|
shadingRateImage: Bool32,
|
|
shadingRateCoarseSampleOrder: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDeviceShadingRateImagePropertiesNV = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV,
|
|
pNext: ?*anyopaque = null,
|
|
shadingRateTexelSize: Extent2D,
|
|
shadingRatePaletteSize: u32,
|
|
shadingRateMaxCoarseSamples: u32,
|
|
};
|
|
|
|
pub const CoarseSampleLocationNV = extern struct {
|
|
pixelX: u32,
|
|
pixelY: u32,
|
|
sample: u32,
|
|
};
|
|
|
|
pub const CoarseSampleOrderCustomNV = extern struct {
|
|
shadingRate: ShadingRatePaletteEntryNV,
|
|
sampleCount: u32,
|
|
sampleLocationCount: u32,
|
|
pSampleLocations: [*]const CoarseSampleLocationNV,
|
|
};
|
|
|
|
pub const PipelineViewportCoarseSampleOrderStateCreateInfoNV = extern struct {
|
|
sType: StructureType = .PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV,
|
|
pNext: ?*const anyopaque = null,
|
|
sampleOrderType: CoarseSampleOrderTypeNV,
|
|
customSampleOrderCount: u32 = 0,
|
|
pCustomSampleOrders: [*]const CoarseSampleOrderCustomNV = undefined,
|
|
};
|
|
|
|
pub extern fn vkCmdBindShadingRateImageNV(
|
|
commandBuffer: CommandBuffer,
|
|
imageView: ImageView,
|
|
imageLayout: ImageLayout,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdSetViewportShadingRatePaletteNV(
|
|
commandBuffer: CommandBuffer,
|
|
firstViewport: u32,
|
|
viewportCount: u32,
|
|
pShadingRatePalettes: [*]const ShadingRatePaletteNV,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdSetCoarseSampleOrderNV(
|
|
commandBuffer: CommandBuffer,
|
|
sampleOrderType: CoarseSampleOrderTypeNV,
|
|
customSampleOrderCount: u32,
|
|
pCustomSampleOrders: [*]const CoarseSampleOrderCustomNV,
|
|
) callconv(CallConv) void;
|
|
|
|
pub const CmdBindShadingRateImageNV = vkCmdBindShadingRateImageNV;
|
|
|
|
pub inline fn CmdSetViewportShadingRatePaletteNV(commandBuffer: CommandBuffer, firstViewport: u32, shadingRatePalettes: []const ShadingRatePaletteNV) void {
|
|
vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, @intCast(u32, shadingRatePalettes.len), shadingRatePalettes.ptr);
|
|
}
|
|
|
|
pub inline fn CmdSetCoarseSampleOrderNV(commandBuffer: CommandBuffer, sampleOrderType: CoarseSampleOrderTypeNV, customSampleOrders: []const CoarseSampleOrderCustomNV) void {
|
|
vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, @intCast(u32, customSampleOrders.len), customSampleOrders.ptr);
|
|
}
|
|
|
|
|
|
pub const NV_ray_tracing = 1;
|
|
pub const AccelerationStructureNV = enum(u64) { Null = 0, _ };
|
|
|
|
pub const NV_RAY_TRACING_SPEC_VERSION = 3;
|
|
pub const NV_RAY_TRACING_EXTENSION_NAME = "VK_NV_ray_tracing";
|
|
pub const SHADER_UNUSED_NV = (~@as(u32, 0));
|
|
|
|
pub const AccelerationStructureTypeNV = enum(i32) {
|
|
TOP_LEVEL = 0,
|
|
BOTTOM_LEVEL = 1,
|
|
_,
|
|
};
|
|
|
|
pub const RayTracingShaderGroupTypeNV = enum(i32) {
|
|
GENERAL = 0,
|
|
TRIANGLES_HIT_GROUP = 1,
|
|
PROCEDURAL_HIT_GROUP = 2,
|
|
_,
|
|
};
|
|
|
|
pub const GeometryTypeNV = enum(i32) {
|
|
TRIANGLES = 0,
|
|
AABBS = 1,
|
|
_,
|
|
};
|
|
|
|
pub const CopyAccelerationStructureModeNV = enum(i32) {
|
|
CLONE = 0,
|
|
COMPACT = 1,
|
|
_,
|
|
};
|
|
|
|
pub const AccelerationStructureMemoryRequirementsTypeNV = enum(i32) {
|
|
OBJECT = 0,
|
|
BUILD_SCRATCH = 1,
|
|
UPDATE_SCRATCH = 2,
|
|
_,
|
|
};
|
|
|
|
pub const GeometryFlagsNV = packed struct {
|
|
@"opaque": bool = false,
|
|
noDuplicateAnyHitInvocation: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const GeometryInstanceFlagsNV = packed struct {
|
|
triangleCullDisable: bool = false,
|
|
triangleFrontCounterclockwise: bool = false,
|
|
forceOpaque: bool = false,
|
|
forceNoOpaque: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const BuildAccelerationStructureFlagsNV = packed struct {
|
|
allowUpdate: bool = false,
|
|
allowCompaction: bool = false,
|
|
preferFastTrace: bool = false,
|
|
preferFastBuild: bool = false,
|
|
lowMemory: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const RayTracingShaderGroupCreateInfoNV = extern struct {
|
|
sType: StructureType = .RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV,
|
|
pNext: ?*const anyopaque = null,
|
|
inType: RayTracingShaderGroupTypeNV,
|
|
generalShader: u32,
|
|
closestHitShader: u32,
|
|
anyHitShader: u32,
|
|
intersectionShader: u32,
|
|
};
|
|
|
|
pub const RayTracingPipelineCreateInfoNV = extern struct {
|
|
sType: StructureType = .RAY_TRACING_PIPELINE_CREATE_INFO_NV,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: PipelineCreateFlags align(4) = PipelineCreateFlags{},
|
|
stageCount: u32,
|
|
pStages: [*]const PipelineShaderStageCreateInfo,
|
|
groupCount: u32,
|
|
pGroups: [*]const RayTracingShaderGroupCreateInfoNV,
|
|
maxRecursionDepth: u32,
|
|
layout: PipelineLayout,
|
|
basePipelineHandle: Pipeline = Pipeline.Null,
|
|
basePipelineIndex: i32,
|
|
};
|
|
|
|
pub const GeometryTrianglesNV = extern struct {
|
|
sType: StructureType = .GEOMETRY_TRIANGLES_NV,
|
|
pNext: ?*const anyopaque = null,
|
|
vertexData: Buffer = Buffer.Null,
|
|
vertexOffset: DeviceSize,
|
|
vertexCount: u32,
|
|
vertexStride: DeviceSize,
|
|
vertexFormat: Format,
|
|
indexData: Buffer = Buffer.Null,
|
|
indexOffset: DeviceSize,
|
|
indexCount: u32,
|
|
indexType: IndexType,
|
|
transformData: Buffer = Buffer.Null,
|
|
transformOffset: DeviceSize,
|
|
};
|
|
|
|
pub const GeometryAABBNV = extern struct {
|
|
sType: StructureType = .GEOMETRY_AABB_NV,
|
|
pNext: ?*const anyopaque = null,
|
|
aabbData: Buffer = Buffer.Null,
|
|
numAABBs: u32,
|
|
stride: u32,
|
|
offset: DeviceSize,
|
|
};
|
|
|
|
pub const GeometryDataNV = extern struct {
|
|
triangles: GeometryTrianglesNV,
|
|
aabbs: GeometryAABBNV,
|
|
};
|
|
|
|
pub const GeometryNV = extern struct {
|
|
sType: StructureType = .GEOMETRY_NV,
|
|
pNext: ?*const anyopaque = null,
|
|
geometryType: GeometryTypeNV,
|
|
geometry: GeometryDataNV,
|
|
flags: GeometryFlagsNV align(4) = GeometryFlagsNV{},
|
|
};
|
|
|
|
pub const AccelerationStructureInfoNV = extern struct {
|
|
sType: StructureType = .ACCELERATION_STRUCTURE_INFO_NV,
|
|
pNext: ?*const anyopaque = null,
|
|
inType: AccelerationStructureTypeNV,
|
|
flags: BuildAccelerationStructureFlagsNV align(4) = BuildAccelerationStructureFlagsNV{},
|
|
instanceCount: u32 = 0,
|
|
geometryCount: u32 = 0,
|
|
pGeometries: [*]const GeometryNV = undefined,
|
|
};
|
|
|
|
pub const AccelerationStructureCreateInfoNV = extern struct {
|
|
sType: StructureType = .ACCELERATION_STRUCTURE_CREATE_INFO_NV,
|
|
pNext: ?*const anyopaque = null,
|
|
compactedSize: DeviceSize,
|
|
info: AccelerationStructureInfoNV,
|
|
};
|
|
|
|
pub const BindAccelerationStructureMemoryInfoNV = extern struct {
|
|
sType: StructureType = .BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV,
|
|
pNext: ?*const anyopaque = null,
|
|
accelerationStructure: AccelerationStructureNV,
|
|
memory: DeviceMemory,
|
|
memoryOffset: DeviceSize,
|
|
deviceIndexCount: u32 = 0,
|
|
pDeviceIndices: [*]const u32 = undefined,
|
|
};
|
|
|
|
pub const WriteDescriptorSetAccelerationStructureNV = extern struct {
|
|
sType: StructureType = .WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV,
|
|
pNext: ?*const anyopaque = null,
|
|
accelerationStructureCount: u32,
|
|
pAccelerationStructures: [*]const AccelerationStructureNV,
|
|
};
|
|
|
|
pub const AccelerationStructureMemoryRequirementsInfoNV = extern struct {
|
|
sType: StructureType = .ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV,
|
|
pNext: ?*const anyopaque = null,
|
|
inType: AccelerationStructureMemoryRequirementsTypeNV,
|
|
accelerationStructure: AccelerationStructureNV,
|
|
};
|
|
|
|
pub const PhysicalDeviceRayTracingPropertiesNV = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV,
|
|
pNext: ?*anyopaque = null,
|
|
shaderGroupHandleSize: u32,
|
|
maxRecursionDepth: u32,
|
|
maxShaderGroupStride: u32,
|
|
shaderGroupBaseAlignment: u32,
|
|
maxGeometryCount: u64,
|
|
maxInstanceCount: u64,
|
|
maxTriangleCount: u64,
|
|
maxDescriptorSetAccelerationStructures: u32,
|
|
};
|
|
|
|
pub extern fn vkCreateAccelerationStructureNV(
|
|
device: Device,
|
|
pCreateInfo: *const AccelerationStructureCreateInfoNV,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pAccelerationStructure: *AccelerationStructureNV,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkDestroyAccelerationStructureNV(
|
|
device: Device,
|
|
accelerationStructure: AccelerationStructureNV,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetAccelerationStructureMemoryRequirementsNV(
|
|
device: Device,
|
|
pInfo: *const AccelerationStructureMemoryRequirementsInfoNV,
|
|
pMemoryRequirements: *MemoryRequirements2KHR,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkBindAccelerationStructureMemoryNV(
|
|
device: Device,
|
|
bindInfoCount: u32,
|
|
pBindInfos: [*]const BindAccelerationStructureMemoryInfoNV,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkCmdBuildAccelerationStructureNV(
|
|
commandBuffer: CommandBuffer,
|
|
pInfo: *const AccelerationStructureInfoNV,
|
|
instanceData: Buffer,
|
|
instanceOffset: DeviceSize,
|
|
update: Bool32,
|
|
dst: AccelerationStructureNV,
|
|
src: AccelerationStructureNV,
|
|
scratch: Buffer,
|
|
scratchOffset: DeviceSize,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdCopyAccelerationStructureNV(
|
|
commandBuffer: CommandBuffer,
|
|
dst: AccelerationStructureNV,
|
|
src: AccelerationStructureNV,
|
|
mode: CopyAccelerationStructureModeNV,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdTraceRaysNV(
|
|
commandBuffer: CommandBuffer,
|
|
raygenShaderBindingTableBuffer: Buffer,
|
|
raygenShaderBindingOffset: DeviceSize,
|
|
missShaderBindingTableBuffer: Buffer,
|
|
missShaderBindingOffset: DeviceSize,
|
|
missShaderBindingStride: DeviceSize,
|
|
hitShaderBindingTableBuffer: Buffer,
|
|
hitShaderBindingOffset: DeviceSize,
|
|
hitShaderBindingStride: DeviceSize,
|
|
callableShaderBindingTableBuffer: Buffer,
|
|
callableShaderBindingOffset: DeviceSize,
|
|
callableShaderBindingStride: DeviceSize,
|
|
width: u32,
|
|
height: u32,
|
|
depth: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCreateRayTracingPipelinesNV(
|
|
device: Device,
|
|
pipelineCache: PipelineCache,
|
|
createInfoCount: u32,
|
|
pCreateInfos: [*]const RayTracingPipelineCreateInfoNV,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pPipelines: [*]Pipeline,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetRayTracingShaderGroupHandlesNV(
|
|
device: Device,
|
|
pipeline: Pipeline,
|
|
firstGroup: u32,
|
|
groupCount: u32,
|
|
dataSize: usize,
|
|
pData: ?*anyopaque,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetAccelerationStructureHandleNV(
|
|
device: Device,
|
|
accelerationStructure: AccelerationStructureNV,
|
|
dataSize: usize,
|
|
pData: ?*anyopaque,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkCmdWriteAccelerationStructuresPropertiesNV(
|
|
commandBuffer: CommandBuffer,
|
|
accelerationStructureCount: u32,
|
|
pAccelerationStructures: [*]const AccelerationStructureNV,
|
|
queryType: QueryType,
|
|
queryPool: QueryPool,
|
|
firstQuery: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCompileDeferredNV(
|
|
device: Device,
|
|
pipeline: Pipeline,
|
|
shader: u32,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub inline fn CreateAccelerationStructureNV(device: Device, createInfo: AccelerationStructureCreateInfoNV, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_UNDOCUMENTED_ERROR}!AccelerationStructureNV {
|
|
var out_accelerationStructure: AccelerationStructureNV = undefined;
|
|
const result = vkCreateAccelerationStructureNV(device, &createInfo, pAllocator, &out_accelerationStructure);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_accelerationStructure;
|
|
}
|
|
|
|
pub const DestroyAccelerationStructureNV = vkDestroyAccelerationStructureNV;
|
|
|
|
pub inline fn GetAccelerationStructureMemoryRequirementsNV(device: Device, info: AccelerationStructureMemoryRequirementsInfoNV) MemoryRequirements2KHR {
|
|
var out_memoryRequirements: MemoryRequirements2KHR = undefined;
|
|
vkGetAccelerationStructureMemoryRequirementsNV(device, &info, &out_memoryRequirements);
|
|
return out_memoryRequirements;
|
|
}
|
|
|
|
pub inline fn BindAccelerationStructureMemoryNV(device: Device, bindInfos: []const BindAccelerationStructureMemoryInfoNV) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkBindAccelerationStructureMemoryNV(device, @intCast(u32, bindInfos.len), bindInfos.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn CmdBuildAccelerationStructureNV(commandBuffer: CommandBuffer, info: AccelerationStructureInfoNV, instanceData: Buffer, instanceOffset: DeviceSize, update: Bool32, dst: AccelerationStructureNV, src: AccelerationStructureNV, scratch: Buffer, scratchOffset: DeviceSize) void {
|
|
vkCmdBuildAccelerationStructureNV(commandBuffer, &info, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset);
|
|
}
|
|
|
|
pub const CmdCopyAccelerationStructureNV = vkCmdCopyAccelerationStructureNV;
|
|
pub const CmdTraceRaysNV = vkCmdTraceRaysNV;
|
|
|
|
pub inline fn CreateRayTracingPipelinesNV(device: Device, pipelineCache: PipelineCache, createInfos: []const RayTracingPipelineCreateInfoNV, pAllocator: ?*const AllocationCallbacks, pipelines: []Pipeline) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_INVALID_SHADER_NV,VK_UNDOCUMENTED_ERROR}!void {
|
|
assert(pipelines.len >= createInfos.len);
|
|
const result = vkCreateRayTracingPipelinesNV(device, pipelineCache, @intCast(u32, createInfos.len), createInfos.ptr, pAllocator, pipelines.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
.ERROR_INVALID_SHADER_NV => error.VK_INVALID_SHADER_NV,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn GetRayTracingShaderGroupHandlesNV(device: Device, pipeline: Pipeline, firstGroup: u32, groupCount: u32, data: []u8) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, @intCast(usize, data.len), data.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn GetAccelerationStructureHandleNV(device: Device, accelerationStructure: AccelerationStructureNV, data: []u8) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkGetAccelerationStructureHandleNV(device, accelerationStructure, @intCast(usize, data.len), data.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn CmdWriteAccelerationStructuresPropertiesNV(commandBuffer: CommandBuffer, accelerationStructures: []const AccelerationStructureNV, queryType: QueryType, queryPool: QueryPool, firstQuery: u32) void {
|
|
vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, @intCast(u32, accelerationStructures.len), accelerationStructures.ptr, queryType, queryPool, firstQuery);
|
|
}
|
|
|
|
pub inline fn CompileDeferredNV(device: Device, pipeline: Pipeline, shader: u32) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkCompileDeferredNV(device, pipeline, shader);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
|
|
pub const NV_representative_fragment_test = 1;
|
|
pub const NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION = 2;
|
|
pub const NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME = "VK_NV_representative_fragment_test";
|
|
|
|
pub const PhysicalDeviceRepresentativeFragmentTestFeaturesNV = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV,
|
|
pNext: ?*anyopaque = null,
|
|
representativeFragmentTest: Bool32,
|
|
};
|
|
|
|
pub const PipelineRepresentativeFragmentTestStateCreateInfoNV = extern struct {
|
|
sType: StructureType = .PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV,
|
|
pNext: ?*const anyopaque = null,
|
|
representativeFragmentTestEnable: Bool32,
|
|
};
|
|
|
|
|
|
pub const EXT_filter_cubic = 1;
|
|
pub const EXT_FILTER_CUBIC_SPEC_VERSION = 3;
|
|
pub const EXT_FILTER_CUBIC_EXTENSION_NAME = "VK_EXT_filter_cubic";
|
|
|
|
pub const PhysicalDeviceImageViewImageFormatInfoEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
imageViewType: ImageViewType,
|
|
};
|
|
|
|
pub const FilterCubicImageViewImageFormatPropertiesEXT = extern struct {
|
|
sType: StructureType = .FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
filterCubic: Bool32,
|
|
filterCubicMinmax: Bool32,
|
|
};
|
|
|
|
|
|
pub const EXT_global_priority = 1;
|
|
pub const EXT_GLOBAL_PRIORITY_SPEC_VERSION = 2;
|
|
pub const EXT_GLOBAL_PRIORITY_EXTENSION_NAME = "VK_EXT_global_priority";
|
|
|
|
pub const QueueGlobalPriorityEXT = enum(i32) {
|
|
LOW = 128,
|
|
MEDIUM = 256,
|
|
HIGH = 512,
|
|
REALTIME = 1024,
|
|
_,
|
|
};
|
|
|
|
pub const DeviceQueueGlobalPriorityCreateInfoEXT = extern struct {
|
|
sType: StructureType = .DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
globalPriority: QueueGlobalPriorityEXT,
|
|
};
|
|
|
|
|
|
pub const EXT_external_memory_host = 1;
|
|
pub const EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION = 1;
|
|
pub const EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME = "VK_EXT_external_memory_host";
|
|
|
|
pub const ImportMemoryHostPointerInfoEXT = extern struct {
|
|
sType: StructureType = .IMPORT_MEMORY_HOST_POINTER_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
handleType: ExternalMemoryHandleTypeFlags align(4),
|
|
pHostPointer: ?*anyopaque,
|
|
};
|
|
|
|
pub const MemoryHostPointerPropertiesEXT = extern struct {
|
|
sType: StructureType = .MEMORY_HOST_POINTER_PROPERTIES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
memoryTypeBits: u32,
|
|
};
|
|
|
|
pub const PhysicalDeviceExternalMemoryHostPropertiesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
minImportedHostPointerAlignment: DeviceSize,
|
|
};
|
|
|
|
pub extern fn vkGetMemoryHostPointerPropertiesEXT(
|
|
device: Device,
|
|
handleType: ExternalMemoryHandleTypeFlags.IntType,
|
|
pHostPointer: ?*const anyopaque,
|
|
pMemoryHostPointerProperties: *MemoryHostPointerPropertiesEXT,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub inline fn GetMemoryHostPointerPropertiesEXT(device: Device, handleType: ExternalMemoryHandleTypeFlags, pHostPointer: ?*const anyopaque) error{VK_INVALID_EXTERNAL_HANDLE,VK_UNDOCUMENTED_ERROR}!MemoryHostPointerPropertiesEXT {
|
|
var out_memoryHostPointerProperties: MemoryHostPointerPropertiesEXT = undefined;
|
|
const result = vkGetMemoryHostPointerPropertiesEXT(device, handleType.toInt(), pHostPointer, &out_memoryHostPointerProperties);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_INVALID_EXTERNAL_HANDLE => error.VK_INVALID_EXTERNAL_HANDLE,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_memoryHostPointerProperties;
|
|
}
|
|
|
|
|
|
pub const AMD_buffer_marker = 1;
|
|
pub const AMD_BUFFER_MARKER_SPEC_VERSION = 1;
|
|
pub const AMD_BUFFER_MARKER_EXTENSION_NAME = "VK_AMD_buffer_marker";
|
|
|
|
pub extern fn vkCmdWriteBufferMarkerAMD(
|
|
commandBuffer: CommandBuffer,
|
|
pipelineStage: PipelineStageFlags.IntType,
|
|
dstBuffer: Buffer,
|
|
dstOffset: DeviceSize,
|
|
marker: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub inline fn CmdWriteBufferMarkerAMD(commandBuffer: CommandBuffer, pipelineStage: PipelineStageFlags, dstBuffer: Buffer, dstOffset: DeviceSize, marker: u32) void {
|
|
vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage.toInt(), dstBuffer, dstOffset, marker);
|
|
}
|
|
|
|
|
|
pub const AMD_pipeline_compiler_control = 1;
|
|
pub const AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION = 1;
|
|
pub const AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME = "VK_AMD_pipeline_compiler_control";
|
|
|
|
pub const PipelineCompilerControlFlagsAMD = packed struct {
|
|
__reserved_bit_00: bool = false,
|
|
__reserved_bit_01: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const PipelineCompilerControlCreateInfoAMD = extern struct {
|
|
sType: StructureType = .PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD,
|
|
pNext: ?*const anyopaque = null,
|
|
compilerControlFlags: PipelineCompilerControlFlagsAMD align(4) = PipelineCompilerControlFlagsAMD{},
|
|
};
|
|
|
|
|
|
pub const EXT_calibrated_timestamps = 1;
|
|
pub const EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION = 1;
|
|
pub const EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME = "VK_EXT_calibrated_timestamps";
|
|
|
|
pub const TimeDomainEXT = enum(i32) {
|
|
DEVICE = 0,
|
|
CLOCK_MONOTONIC = 1,
|
|
CLOCK_MONOTONIC_RAW = 2,
|
|
QUERY_PERFORMANCE_COUNTER = 3,
|
|
_,
|
|
};
|
|
|
|
pub const CalibratedTimestampInfoEXT = extern struct {
|
|
sType: StructureType = .CALIBRATED_TIMESTAMP_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
timeDomain: TimeDomainEXT,
|
|
};
|
|
|
|
pub extern fn vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
|
|
physicalDevice: PhysicalDevice,
|
|
pTimeDomainCount: *u32,
|
|
pTimeDomains: ?[*]TimeDomainEXT,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetCalibratedTimestampsEXT(
|
|
device: Device,
|
|
timestampCount: u32,
|
|
pTimestampInfos: [*]const CalibratedTimestampInfoEXT,
|
|
pTimestamps: [*]u64,
|
|
pMaxDeviation: *u64,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub const GetPhysicalDeviceCalibrateableTimeDomainsEXTResult = struct {
|
|
result: Result,
|
|
timeDomains: []TimeDomainEXT,
|
|
};
|
|
pub inline fn GetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice: PhysicalDevice, timeDomains: []TimeDomainEXT) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!GetPhysicalDeviceCalibrateableTimeDomainsEXTResult {
|
|
var returnValues: GetPhysicalDeviceCalibrateableTimeDomainsEXTResult = undefined;
|
|
var timeDomainCount: u32 = @intCast(u32, timeDomains.len);
|
|
const result = vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, &timeDomainCount, timeDomains.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.timeDomains = timeDomains[0..timeDomainCount];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn GetPhysicalDeviceCalibrateableTimeDomainsCountEXT(physicalDevice: PhysicalDevice) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!u32 {
|
|
var out_timeDomainCount: u32 = undefined;
|
|
const result = vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, &out_timeDomainCount, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_timeDomainCount;
|
|
}
|
|
|
|
pub inline fn GetCalibratedTimestampsEXT(device: Device, timestampInfos: []const CalibratedTimestampInfoEXT, timestamps: []u64) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!u64 {
|
|
var out_maxDeviation: u64 = undefined;
|
|
assert(timestamps.len >= timestampInfos.len);
|
|
const result = vkGetCalibratedTimestampsEXT(device, @intCast(u32, timestampInfos.len), timestampInfos.ptr, timestamps.ptr, &out_maxDeviation);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_maxDeviation;
|
|
}
|
|
|
|
|
|
pub const AMD_shader_core_properties = 1;
|
|
pub const AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION = 2;
|
|
pub const AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME = "VK_AMD_shader_core_properties";
|
|
|
|
pub const PhysicalDeviceShaderCorePropertiesAMD = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD,
|
|
pNext: ?*anyopaque = null,
|
|
shaderEngineCount: u32,
|
|
shaderArraysPerEngineCount: u32,
|
|
computeUnitsPerShaderArray: u32,
|
|
simdPerComputeUnit: u32,
|
|
wavefrontsPerSimd: u32,
|
|
wavefrontSize: u32,
|
|
sgprsPerSimd: u32,
|
|
minSgprAllocation: u32,
|
|
maxSgprAllocation: u32,
|
|
sgprAllocationGranularity: u32,
|
|
vgprsPerSimd: u32,
|
|
minVgprAllocation: u32,
|
|
maxVgprAllocation: u32,
|
|
vgprAllocationGranularity: u32,
|
|
};
|
|
|
|
|
|
pub const AMD_memory_overallocation_behavior = 1;
|
|
pub const AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION = 1;
|
|
pub const AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME = "VK_AMD_memory_overallocation_behavior";
|
|
|
|
pub const MemoryOverallocationBehaviorAMD = enum(i32) {
|
|
DEFAULT = 0,
|
|
ALLOWED = 1,
|
|
DISALLOWED = 2,
|
|
_,
|
|
};
|
|
|
|
pub const DeviceMemoryOverallocationCreateInfoAMD = extern struct {
|
|
sType: StructureType = .DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD,
|
|
pNext: ?*const anyopaque = null,
|
|
overallocationBehavior: MemoryOverallocationBehaviorAMD,
|
|
};
|
|
|
|
|
|
pub const EXT_vertex_attribute_divisor = 1;
|
|
pub const EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION = 3;
|
|
pub const EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME = "VK_EXT_vertex_attribute_divisor";
|
|
|
|
pub const PhysicalDeviceVertexAttributeDivisorPropertiesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
maxVertexAttribDivisor: u32,
|
|
};
|
|
|
|
pub const VertexInputBindingDivisorDescriptionEXT = extern struct {
|
|
binding: u32,
|
|
divisor: u32,
|
|
};
|
|
|
|
pub const PipelineVertexInputDivisorStateCreateInfoEXT = extern struct {
|
|
sType: StructureType = .PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
vertexBindingDivisorCount: u32,
|
|
pVertexBindingDivisors: [*]const VertexInputBindingDivisorDescriptionEXT,
|
|
};
|
|
|
|
pub const PhysicalDeviceVertexAttributeDivisorFeaturesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
vertexAttributeInstanceRateDivisor: Bool32,
|
|
vertexAttributeInstanceRateZeroDivisor: Bool32,
|
|
};
|
|
|
|
|
|
pub const EXT_pipeline_creation_feedback = 1;
|
|
pub const EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION = 1;
|
|
pub const EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME = "VK_EXT_pipeline_creation_feedback";
|
|
|
|
pub const PipelineCreationFeedbackFlagsEXT = packed struct {
|
|
valid: bool = false,
|
|
applicationPipelineCacheHit: bool = false,
|
|
basePipelineAcceleration: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const PipelineCreationFeedbackEXT = extern struct {
|
|
flags: PipelineCreationFeedbackFlagsEXT align(4),
|
|
duration: u64,
|
|
};
|
|
|
|
pub const PipelineCreationFeedbackCreateInfoEXT = extern struct {
|
|
sType: StructureType = .PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
pPipelineCreationFeedback: *PipelineCreationFeedbackEXT,
|
|
pipelineStageCreationFeedbackCount: u32,
|
|
pPipelineStageCreationFeedbacks: [*]PipelineCreationFeedbackEXT,
|
|
};
|
|
|
|
|
|
pub const NV_shader_subgroup_partitioned = 1;
|
|
pub const NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION = 1;
|
|
pub const NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME = "VK_NV_shader_subgroup_partitioned";
|
|
|
|
|
|
pub const NV_compute_shader_derivatives = 1;
|
|
pub const NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION = 1;
|
|
pub const NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME = "VK_NV_compute_shader_derivatives";
|
|
|
|
pub const PhysicalDeviceComputeShaderDerivativesFeaturesNV = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV,
|
|
pNext: ?*anyopaque = null,
|
|
computeDerivativeGroupQuads: Bool32,
|
|
computeDerivativeGroupLinear: Bool32,
|
|
};
|
|
|
|
|
|
pub const NV_mesh_shader = 1;
|
|
pub const NV_MESH_SHADER_SPEC_VERSION = 1;
|
|
pub const NV_MESH_SHADER_EXTENSION_NAME = "VK_NV_mesh_shader";
|
|
|
|
pub const PhysicalDeviceMeshShaderFeaturesNV = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV,
|
|
pNext: ?*anyopaque = null,
|
|
taskShader: Bool32,
|
|
meshShader: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDeviceMeshShaderPropertiesNV = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV,
|
|
pNext: ?*anyopaque = null,
|
|
maxDrawMeshTasksCount: u32,
|
|
maxTaskWorkGroupInvocations: u32,
|
|
maxTaskWorkGroupSize: [3]u32,
|
|
maxTaskTotalMemorySize: u32,
|
|
maxTaskOutputCount: u32,
|
|
maxMeshWorkGroupInvocations: u32,
|
|
maxMeshWorkGroupSize: [3]u32,
|
|
maxMeshTotalMemorySize: u32,
|
|
maxMeshOutputVertices: u32,
|
|
maxMeshOutputPrimitives: u32,
|
|
maxMeshMultiviewViewCount: u32,
|
|
meshOutputPerVertexGranularity: u32,
|
|
meshOutputPerPrimitiveGranularity: u32,
|
|
};
|
|
|
|
pub const DrawMeshTasksIndirectCommandNV = extern struct {
|
|
taskCount: u32,
|
|
firstTask: u32,
|
|
};
|
|
|
|
pub extern fn vkCmdDrawMeshTasksNV(
|
|
commandBuffer: CommandBuffer,
|
|
taskCount: u32,
|
|
firstTask: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdDrawMeshTasksIndirectNV(
|
|
commandBuffer: CommandBuffer,
|
|
buffer: Buffer,
|
|
offset: DeviceSize,
|
|
drawCount: u32,
|
|
stride: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdDrawMeshTasksIndirectCountNV(
|
|
commandBuffer: CommandBuffer,
|
|
buffer: Buffer,
|
|
offset: DeviceSize,
|
|
countBuffer: Buffer,
|
|
countBufferOffset: DeviceSize,
|
|
maxDrawCount: u32,
|
|
stride: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub const CmdDrawMeshTasksNV = vkCmdDrawMeshTasksNV;
|
|
pub const CmdDrawMeshTasksIndirectNV = vkCmdDrawMeshTasksIndirectNV;
|
|
pub const CmdDrawMeshTasksIndirectCountNV = vkCmdDrawMeshTasksIndirectCountNV;
|
|
|
|
|
|
pub const NV_fragment_shader_barycentric = 1;
|
|
pub const NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION = 1;
|
|
pub const NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME = "VK_NV_fragment_shader_barycentric";
|
|
|
|
pub const PhysicalDeviceFragmentShaderBarycentricFeaturesNV = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV,
|
|
pNext: ?*anyopaque = null,
|
|
fragmentShaderBarycentric: Bool32,
|
|
};
|
|
|
|
|
|
pub const NV_shader_image_footprint = 1;
|
|
pub const NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION = 2;
|
|
pub const NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME = "VK_NV_shader_image_footprint";
|
|
|
|
pub const PhysicalDeviceShaderImageFootprintFeaturesNV = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV,
|
|
pNext: ?*anyopaque = null,
|
|
imageFootprint: Bool32,
|
|
};
|
|
|
|
|
|
pub const NV_scissor_exclusive = 1;
|
|
pub const NV_SCISSOR_EXCLUSIVE_SPEC_VERSION = 1;
|
|
pub const NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME = "VK_NV_scissor_exclusive";
|
|
|
|
pub const PipelineViewportExclusiveScissorStateCreateInfoNV = extern struct {
|
|
sType: StructureType = .PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV,
|
|
pNext: ?*const anyopaque = null,
|
|
exclusiveScissorCount: u32 = 0,
|
|
pExclusiveScissors: ?[*]const Rect2D = null,
|
|
};
|
|
|
|
pub const PhysicalDeviceExclusiveScissorFeaturesNV = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV,
|
|
pNext: ?*anyopaque = null,
|
|
exclusiveScissor: Bool32,
|
|
};
|
|
|
|
pub extern fn vkCmdSetExclusiveScissorNV(
|
|
commandBuffer: CommandBuffer,
|
|
firstExclusiveScissor: u32,
|
|
exclusiveScissorCount: u32,
|
|
pExclusiveScissors: [*]const Rect2D,
|
|
) callconv(CallConv) void;
|
|
|
|
pub inline fn CmdSetExclusiveScissorNV(commandBuffer: CommandBuffer, firstExclusiveScissor: u32, exclusiveScissors: []const Rect2D) void {
|
|
vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, @intCast(u32, exclusiveScissors.len), exclusiveScissors.ptr);
|
|
}
|
|
|
|
|
|
pub const NV_device_diagnostic_checkpoints = 1;
|
|
pub const NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION = 2;
|
|
pub const NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME = "VK_NV_device_diagnostic_checkpoints";
|
|
|
|
pub const QueueFamilyCheckpointPropertiesNV = extern struct {
|
|
sType: StructureType = .QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV,
|
|
pNext: ?*anyopaque = null,
|
|
checkpointExecutionStageMask: PipelineStageFlags align(4),
|
|
};
|
|
|
|
pub const CheckpointDataNV = extern struct {
|
|
sType: StructureType = .CHECKPOINT_DATA_NV,
|
|
pNext: ?*anyopaque = null,
|
|
stage: PipelineStageFlags align(4),
|
|
pCheckpointMarker: ?*anyopaque,
|
|
};
|
|
|
|
pub extern fn vkCmdSetCheckpointNV(
|
|
commandBuffer: CommandBuffer,
|
|
pCheckpointMarker: ?*const anyopaque,
|
|
) callconv(CallConv) void;
|
|
|
|
pub extern fn vkGetQueueCheckpointDataNV(
|
|
queue: Queue,
|
|
pCheckpointDataCount: *u32,
|
|
pCheckpointData: ?[*]CheckpointDataNV,
|
|
) callconv(CallConv) void;
|
|
|
|
pub const CmdSetCheckpointNV = vkCmdSetCheckpointNV;
|
|
|
|
pub inline fn GetQueueCheckpointDataNV(queue: Queue, checkpointData: []CheckpointDataNV) []CheckpointDataNV {
|
|
var out_checkpointData: []CheckpointDataNV = undefined;
|
|
var checkpointDataCount: u32 = @intCast(u32, checkpointData.len);
|
|
vkGetQueueCheckpointDataNV(queue, &checkpointDataCount, checkpointData.ptr);
|
|
out_checkpointData = checkpointData[0..checkpointDataCount];
|
|
return out_checkpointData;
|
|
}
|
|
pub inline fn GetQueueCheckpointDataCountNV(queue: Queue) u32 {
|
|
var out_checkpointDataCount: u32 = undefined;
|
|
vkGetQueueCheckpointDataNV(queue, &out_checkpointDataCount, null);
|
|
return out_checkpointDataCount;
|
|
}
|
|
|
|
|
|
pub const INTEL_shader_integer_functions2 = 1;
|
|
pub const INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION = 1;
|
|
pub const INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME = "VK_INTEL_shader_integer_functions2";
|
|
|
|
pub const PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL,
|
|
pNext: ?*anyopaque = null,
|
|
shaderIntegerFunctions2: Bool32,
|
|
};
|
|
|
|
|
|
pub const INTEL_performance_query = 1;
|
|
pub const PerformanceConfigurationINTEL = enum(u64) { Null = 0, _ };
|
|
|
|
pub const INTEL_PERFORMANCE_QUERY_SPEC_VERSION = 1;
|
|
pub const INTEL_PERFORMANCE_QUERY_EXTENSION_NAME = "VK_INTEL_performance_query";
|
|
|
|
pub const PerformanceConfigurationTypeINTEL = enum(i32) {
|
|
COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED = 0,
|
|
_,
|
|
};
|
|
|
|
pub const QueryPoolSamplingModeINTEL = enum(i32) {
|
|
MANUAL = 0,
|
|
_,
|
|
};
|
|
|
|
pub const PerformanceOverrideTypeINTEL = enum(i32) {
|
|
NULL_HARDWARE = 0,
|
|
FLUSH_GPU_CACHES = 1,
|
|
_,
|
|
};
|
|
|
|
pub const PerformanceParameterTypeINTEL = enum(i32) {
|
|
HW_COUNTERS_SUPPORTED = 0,
|
|
STREAM_MARKER_VALID_BITS = 1,
|
|
_,
|
|
};
|
|
|
|
pub const PerformanceValueTypeINTEL = enum(i32) {
|
|
UINT32 = 0,
|
|
UINT64 = 1,
|
|
FLOAT = 2,
|
|
BOOL = 3,
|
|
STRING = 4,
|
|
_,
|
|
};
|
|
|
|
pub const PerformanceValueDataINTEL = extern union {
|
|
value32: u32,
|
|
value64: u64,
|
|
valueFloat: f32,
|
|
valueBool: Bool32,
|
|
valueString: *const u8,
|
|
};
|
|
|
|
pub const PerformanceValueINTEL = extern struct {
|
|
inType: PerformanceValueTypeINTEL,
|
|
data: PerformanceValueDataINTEL,
|
|
};
|
|
|
|
pub const InitializePerformanceApiInfoINTEL = extern struct {
|
|
sType: StructureType = .INITIALIZE_PERFORMANCE_API_INFO_INTEL,
|
|
pNext: ?*const anyopaque = null,
|
|
pUserData: ?*anyopaque,
|
|
};
|
|
|
|
pub const QueryPoolCreateInfoINTEL = extern struct {
|
|
sType: StructureType = .QUERY_POOL_CREATE_INFO_INTEL,
|
|
pNext: ?*const anyopaque = null,
|
|
performanceCountersSampling: QueryPoolSamplingModeINTEL,
|
|
};
|
|
|
|
pub const PerformanceMarkerInfoINTEL = extern struct {
|
|
sType: StructureType = .PERFORMANCE_MARKER_INFO_INTEL,
|
|
pNext: ?*const anyopaque = null,
|
|
marker: u64,
|
|
};
|
|
|
|
pub const PerformanceStreamMarkerInfoINTEL = extern struct {
|
|
sType: StructureType = .PERFORMANCE_STREAM_MARKER_INFO_INTEL,
|
|
pNext: ?*const anyopaque = null,
|
|
marker: u32,
|
|
};
|
|
|
|
pub const PerformanceOverrideInfoINTEL = extern struct {
|
|
sType: StructureType = .PERFORMANCE_OVERRIDE_INFO_INTEL,
|
|
pNext: ?*const anyopaque = null,
|
|
inType: PerformanceOverrideTypeINTEL,
|
|
enable: Bool32,
|
|
parameter: u64,
|
|
};
|
|
|
|
pub const PerformanceConfigurationAcquireInfoINTEL = extern struct {
|
|
sType: StructureType = .PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL,
|
|
pNext: ?*const anyopaque = null,
|
|
inType: PerformanceConfigurationTypeINTEL,
|
|
};
|
|
|
|
pub extern fn vkInitializePerformanceApiINTEL(
|
|
device: Device,
|
|
pInitializeInfo: *const InitializePerformanceApiInfoINTEL,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkUninitializePerformanceApiINTEL(device: Device) callconv(CallConv) void;
|
|
|
|
pub extern fn vkCmdSetPerformanceMarkerINTEL(
|
|
commandBuffer: CommandBuffer,
|
|
pMarkerInfo: *const PerformanceMarkerInfoINTEL,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkCmdSetPerformanceStreamMarkerINTEL(
|
|
commandBuffer: CommandBuffer,
|
|
pMarkerInfo: *const PerformanceStreamMarkerInfoINTEL,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkCmdSetPerformanceOverrideINTEL(
|
|
commandBuffer: CommandBuffer,
|
|
pOverrideInfo: *const PerformanceOverrideInfoINTEL,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkAcquirePerformanceConfigurationINTEL(
|
|
device: Device,
|
|
pAcquireInfo: *const PerformanceConfigurationAcquireInfoINTEL,
|
|
pConfiguration: *PerformanceConfigurationINTEL,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkReleasePerformanceConfigurationINTEL(
|
|
device: Device,
|
|
configuration: PerformanceConfigurationINTEL,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkQueueSetPerformanceConfigurationINTEL(
|
|
queue: Queue,
|
|
configuration: PerformanceConfigurationINTEL,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub extern fn vkGetPerformanceParameterINTEL(
|
|
device: Device,
|
|
parameter: PerformanceParameterTypeINTEL,
|
|
pValue: *PerformanceValueINTEL,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub inline fn InitializePerformanceApiINTEL(device: Device, initializeInfo: InitializePerformanceApiInfoINTEL) error{VK_TOO_MANY_OBJECTS,VK_OUT_OF_HOST_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkInitializePerformanceApiINTEL(device, &initializeInfo);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_TOO_MANY_OBJECTS => error.VK_TOO_MANY_OBJECTS,
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub const UninitializePerformanceApiINTEL = vkUninitializePerformanceApiINTEL;
|
|
|
|
pub inline fn CmdSetPerformanceMarkerINTEL(commandBuffer: CommandBuffer, markerInfo: PerformanceMarkerInfoINTEL) error{VK_TOO_MANY_OBJECTS,VK_OUT_OF_HOST_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkCmdSetPerformanceMarkerINTEL(commandBuffer, &markerInfo);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_TOO_MANY_OBJECTS => error.VK_TOO_MANY_OBJECTS,
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn CmdSetPerformanceStreamMarkerINTEL(commandBuffer: CommandBuffer, markerInfo: PerformanceStreamMarkerInfoINTEL) error{VK_TOO_MANY_OBJECTS,VK_OUT_OF_HOST_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, &markerInfo);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_TOO_MANY_OBJECTS => error.VK_TOO_MANY_OBJECTS,
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn CmdSetPerformanceOverrideINTEL(commandBuffer: CommandBuffer, overrideInfo: PerformanceOverrideInfoINTEL) error{VK_TOO_MANY_OBJECTS,VK_OUT_OF_HOST_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkCmdSetPerformanceOverrideINTEL(commandBuffer, &overrideInfo);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_TOO_MANY_OBJECTS => error.VK_TOO_MANY_OBJECTS,
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn AcquirePerformanceConfigurationINTEL(device: Device, acquireInfo: PerformanceConfigurationAcquireInfoINTEL) error{VK_TOO_MANY_OBJECTS,VK_OUT_OF_HOST_MEMORY,VK_UNDOCUMENTED_ERROR}!PerformanceConfigurationINTEL {
|
|
var out_configuration: PerformanceConfigurationINTEL = undefined;
|
|
const result = vkAcquirePerformanceConfigurationINTEL(device, &acquireInfo, &out_configuration);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_TOO_MANY_OBJECTS => error.VK_TOO_MANY_OBJECTS,
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_configuration;
|
|
}
|
|
|
|
pub inline fn ReleasePerformanceConfigurationINTEL(device: Device, configuration: PerformanceConfigurationINTEL) error{VK_TOO_MANY_OBJECTS,VK_OUT_OF_HOST_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkReleasePerformanceConfigurationINTEL(device, configuration);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_TOO_MANY_OBJECTS => error.VK_TOO_MANY_OBJECTS,
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn QueueSetPerformanceConfigurationINTEL(queue: Queue, configuration: PerformanceConfigurationINTEL) error{VK_TOO_MANY_OBJECTS,VK_OUT_OF_HOST_MEMORY,VK_UNDOCUMENTED_ERROR}!void {
|
|
const result = vkQueueSetPerformanceConfigurationINTEL(queue, configuration);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_TOO_MANY_OBJECTS => error.VK_TOO_MANY_OBJECTS,
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
}
|
|
|
|
pub inline fn GetPerformanceParameterINTEL(device: Device, parameter: PerformanceParameterTypeINTEL) error{VK_TOO_MANY_OBJECTS,VK_OUT_OF_HOST_MEMORY,VK_UNDOCUMENTED_ERROR}!PerformanceValueINTEL {
|
|
var out_value: PerformanceValueINTEL = undefined;
|
|
const result = vkGetPerformanceParameterINTEL(device, parameter, &out_value);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_TOO_MANY_OBJECTS => error.VK_TOO_MANY_OBJECTS,
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_value;
|
|
}
|
|
|
|
|
|
pub const EXT_pci_bus_info = 1;
|
|
pub const EXT_PCI_BUS_INFO_SPEC_VERSION = 2;
|
|
pub const EXT_PCI_BUS_INFO_EXTENSION_NAME = "VK_EXT_pci_bus_info";
|
|
|
|
pub const PhysicalDevicePCIBusInfoPropertiesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
pciDomain: u32,
|
|
pciBus: u32,
|
|
pciDevice: u32,
|
|
pciFunction: u32,
|
|
};
|
|
|
|
|
|
pub const AMD_display_native_hdr = 1;
|
|
pub const AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION = 1;
|
|
pub const AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME = "VK_AMD_display_native_hdr";
|
|
|
|
pub const DisplayNativeHdrSurfaceCapabilitiesAMD = extern struct {
|
|
sType: StructureType = .DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD,
|
|
pNext: ?*anyopaque = null,
|
|
localDimmingSupport: Bool32,
|
|
};
|
|
|
|
pub const SwapchainDisplayNativeHdrCreateInfoAMD = extern struct {
|
|
sType: StructureType = .SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD,
|
|
pNext: ?*const anyopaque = null,
|
|
localDimmingEnable: Bool32,
|
|
};
|
|
|
|
pub extern fn vkSetLocalDimmingAMD(
|
|
device: Device,
|
|
swapChain: SwapchainKHR,
|
|
localDimmingEnable: Bool32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub const SetLocalDimmingAMD = vkSetLocalDimmingAMD;
|
|
|
|
|
|
pub const EXT_fragment_density_map = 1;
|
|
pub const EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION = 1;
|
|
pub const EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME = "VK_EXT_fragment_density_map";
|
|
|
|
pub const PhysicalDeviceFragmentDensityMapFeaturesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
fragmentDensityMap: Bool32,
|
|
fragmentDensityMapDynamic: Bool32,
|
|
fragmentDensityMapNonSubsampledImages: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDeviceFragmentDensityMapPropertiesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
minFragmentDensityTexelSize: Extent2D,
|
|
maxFragmentDensityTexelSize: Extent2D,
|
|
fragmentDensityInvocations: Bool32,
|
|
};
|
|
|
|
pub const RenderPassFragmentDensityMapCreateInfoEXT = extern struct {
|
|
sType: StructureType = .RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
fragmentDensityMapAttachment: AttachmentReference,
|
|
};
|
|
|
|
|
|
pub const EXT_scalar_block_layout = 1;
|
|
pub const EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION = 1;
|
|
pub const EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME = "VK_EXT_scalar_block_layout";
|
|
|
|
pub const PhysicalDeviceScalarBlockLayoutFeaturesEXT = PhysicalDeviceScalarBlockLayoutFeatures;
|
|
|
|
|
|
pub const GOOGLE_hlsl_functionality1 = 1;
|
|
pub const GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION = 1;
|
|
pub const GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME = "VK_GOOGLE_hlsl_functionality1";
|
|
|
|
|
|
pub const GOOGLE_decorate_string = 1;
|
|
pub const GOOGLE_DECORATE_STRING_SPEC_VERSION = 1;
|
|
pub const GOOGLE_DECORATE_STRING_EXTENSION_NAME = "VK_GOOGLE_decorate_string";
|
|
|
|
|
|
pub const EXT_subgroup_size_control = 1;
|
|
pub const EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION = 2;
|
|
pub const EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME = "VK_EXT_subgroup_size_control";
|
|
|
|
pub const PhysicalDeviceSubgroupSizeControlFeaturesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
subgroupSizeControl: Bool32,
|
|
computeFullSubgroups: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDeviceSubgroupSizeControlPropertiesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
minSubgroupSize: u32,
|
|
maxSubgroupSize: u32,
|
|
maxComputeWorkgroupSubgroups: u32,
|
|
requiredSubgroupSizeStages: ShaderStageFlags align(4),
|
|
};
|
|
|
|
pub const PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = extern struct {
|
|
sType: StructureType = .PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
requiredSubgroupSize: u32,
|
|
};
|
|
|
|
|
|
pub const AMD_shader_core_properties2 = 1;
|
|
pub const AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION = 1;
|
|
pub const AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME = "VK_AMD_shader_core_properties2";
|
|
|
|
pub const ShaderCorePropertiesFlagsAMD = packed struct {
|
|
__reserved_bit_00: bool = false,
|
|
__reserved_bit_01: bool = false,
|
|
__reserved_bit_02: bool = false,
|
|
__reserved_bit_03: bool = false,
|
|
__reserved_bit_04: bool = false,
|
|
__reserved_bit_05: bool = false,
|
|
__reserved_bit_06: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const PhysicalDeviceShaderCoreProperties2AMD = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD,
|
|
pNext: ?*anyopaque = null,
|
|
shaderCoreFeatures: ShaderCorePropertiesFlagsAMD align(4),
|
|
activeComputeUnitCount: u32,
|
|
};
|
|
|
|
|
|
pub const AMD_device_coherent_memory = 1;
|
|
pub const AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION = 1;
|
|
pub const AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME = "VK_AMD_device_coherent_memory";
|
|
|
|
pub const PhysicalDeviceCoherentMemoryFeaturesAMD = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD,
|
|
pNext: ?*anyopaque = null,
|
|
deviceCoherentMemory: Bool32,
|
|
};
|
|
|
|
|
|
pub const EXT_memory_budget = 1;
|
|
pub const EXT_MEMORY_BUDGET_SPEC_VERSION = 1;
|
|
pub const EXT_MEMORY_BUDGET_EXTENSION_NAME = "VK_EXT_memory_budget";
|
|
|
|
pub const PhysicalDeviceMemoryBudgetPropertiesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
heapBudget: [MAX_MEMORY_HEAPS]DeviceSize,
|
|
heapUsage: [MAX_MEMORY_HEAPS]DeviceSize,
|
|
};
|
|
|
|
|
|
pub const EXT_memory_priority = 1;
|
|
pub const EXT_MEMORY_PRIORITY_SPEC_VERSION = 1;
|
|
pub const EXT_MEMORY_PRIORITY_EXTENSION_NAME = "VK_EXT_memory_priority";
|
|
|
|
pub const PhysicalDeviceMemoryPriorityFeaturesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
memoryPriority: Bool32,
|
|
};
|
|
|
|
pub const MemoryPriorityAllocateInfoEXT = extern struct {
|
|
sType: StructureType = .MEMORY_PRIORITY_ALLOCATE_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
priority: f32,
|
|
};
|
|
|
|
|
|
pub const NV_dedicated_allocation_image_aliasing = 1;
|
|
pub const NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION = 1;
|
|
pub const NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME = "VK_NV_dedicated_allocation_image_aliasing";
|
|
|
|
pub const PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV,
|
|
pNext: ?*anyopaque = null,
|
|
dedicatedAllocationImageAliasing: Bool32,
|
|
};
|
|
|
|
|
|
pub const EXT_buffer_device_address = 1;
|
|
pub const EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION = 2;
|
|
pub const EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME = "VK_EXT_buffer_device_address";
|
|
|
|
pub const PhysicalDeviceBufferDeviceAddressFeaturesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
bufferDeviceAddress: Bool32,
|
|
bufferDeviceAddressCaptureReplay: Bool32,
|
|
bufferDeviceAddressMultiDevice: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDeviceBufferAddressFeaturesEXT = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
|
|
pub const BufferDeviceAddressInfoEXT = BufferDeviceAddressInfo;
|
|
|
|
pub const BufferDeviceAddressCreateInfoEXT = extern struct {
|
|
sType: StructureType = .BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
deviceAddress: DeviceAddress,
|
|
};
|
|
|
|
pub extern fn vkGetBufferDeviceAddressEXT(
|
|
device: Device,
|
|
pInfo: *const BufferDeviceAddressInfo,
|
|
) callconv(CallConv) DeviceAddress;
|
|
|
|
pub inline fn GetBufferDeviceAddressEXT(device: Device, info: BufferDeviceAddressInfo) DeviceAddress {
|
|
const result = vkGetBufferDeviceAddressEXT(device, &info);
|
|
return result;
|
|
}
|
|
|
|
|
|
pub const EXT_tooling_info = 1;
|
|
pub const EXT_TOOLING_INFO_SPEC_VERSION = 1;
|
|
pub const EXT_TOOLING_INFO_EXTENSION_NAME = "VK_EXT_tooling_info";
|
|
|
|
pub const ToolPurposeFlagsEXT = packed struct {
|
|
validation: bool = false,
|
|
profiling: bool = false,
|
|
tracing: bool = false,
|
|
additionalFeatures: bool = false,
|
|
modifyingFeatures: bool = false,
|
|
debugReporting: bool = false,
|
|
debugMarkers: bool = false,
|
|
__reserved_bit_07: bool = false,
|
|
__reserved_bit_08: bool = false,
|
|
__reserved_bit_09: bool = false,
|
|
__reserved_bit_10: bool = false,
|
|
__reserved_bit_11: bool = false,
|
|
__reserved_bit_12: bool = false,
|
|
__reserved_bit_13: bool = false,
|
|
__reserved_bit_14: bool = false,
|
|
__reserved_bit_15: bool = false,
|
|
__reserved_bit_16: bool = false,
|
|
__reserved_bit_17: bool = false,
|
|
__reserved_bit_18: bool = false,
|
|
__reserved_bit_19: bool = false,
|
|
__reserved_bit_20: bool = false,
|
|
__reserved_bit_21: bool = false,
|
|
__reserved_bit_22: bool = false,
|
|
__reserved_bit_23: bool = false,
|
|
__reserved_bit_24: bool = false,
|
|
__reserved_bit_25: bool = false,
|
|
__reserved_bit_26: bool = false,
|
|
__reserved_bit_27: bool = false,
|
|
__reserved_bit_28: bool = false,
|
|
__reserved_bit_29: bool = false,
|
|
__reserved_bit_30: bool = false,
|
|
__reserved_bit_31: bool = false,
|
|
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const PhysicalDeviceToolPropertiesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
name: [MAX_EXTENSION_NAME_SIZE-1:0]u8,
|
|
version: [MAX_EXTENSION_NAME_SIZE-1:0]u8,
|
|
purposes: ToolPurposeFlagsEXT align(4),
|
|
description: [MAX_DESCRIPTION_SIZE-1:0]u8,
|
|
layer: [MAX_EXTENSION_NAME_SIZE-1:0]u8,
|
|
};
|
|
|
|
pub extern fn vkGetPhysicalDeviceToolPropertiesEXT(
|
|
physicalDevice: PhysicalDevice,
|
|
pToolCount: *u32,
|
|
pToolProperties: ?[*]PhysicalDeviceToolPropertiesEXT,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub const GetPhysicalDeviceToolPropertiesEXTResult = struct {
|
|
result: Result,
|
|
toolProperties: []PhysicalDeviceToolPropertiesEXT,
|
|
};
|
|
pub inline fn GetPhysicalDeviceToolPropertiesEXT(physicalDevice: PhysicalDevice, toolProperties: []PhysicalDeviceToolPropertiesEXT) error{VK_UNDOCUMENTED_ERROR}!GetPhysicalDeviceToolPropertiesEXTResult {
|
|
var returnValues: GetPhysicalDeviceToolPropertiesEXTResult = undefined;
|
|
var toolCount: u32 = @intCast(u32, toolProperties.len);
|
|
const result = vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, &toolCount, toolProperties.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return error.VK_UNDOCUMENTED_ERROR;
|
|
}
|
|
returnValues.toolProperties = toolProperties[0..toolCount];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn GetPhysicalDeviceToolPropertiesCountEXT(physicalDevice: PhysicalDevice) error{VK_UNDOCUMENTED_ERROR}!u32 {
|
|
var out_toolCount: u32 = undefined;
|
|
const result = vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, &out_toolCount, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return error.VK_UNDOCUMENTED_ERROR;
|
|
}
|
|
return out_toolCount;
|
|
}
|
|
|
|
|
|
pub const EXT_separate_stencil_usage = 1;
|
|
pub const EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION = 1;
|
|
pub const EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME = "VK_EXT_separate_stencil_usage";
|
|
|
|
pub const ImageStencilUsageCreateInfoEXT = ImageStencilUsageCreateInfo;
|
|
|
|
|
|
pub const EXT_validation_features = 1;
|
|
pub const EXT_VALIDATION_FEATURES_SPEC_VERSION = 2;
|
|
pub const EXT_VALIDATION_FEATURES_EXTENSION_NAME = "VK_EXT_validation_features";
|
|
|
|
pub const ValidationFeatureEnableEXT = enum(i32) {
|
|
GPU_ASSISTED = 0,
|
|
GPU_ASSISTED_RESERVE_BINDING_SLOT = 1,
|
|
BEST_PRACTICES = 2,
|
|
_,
|
|
};
|
|
|
|
pub const ValidationFeatureDisableEXT = enum(i32) {
|
|
ALL = 0,
|
|
SHADERS = 1,
|
|
THREAD_SAFETY = 2,
|
|
API_PARAMETERS = 3,
|
|
OBJECT_LIFETIMES = 4,
|
|
CORE_CHECKS = 5,
|
|
UNIQUE_HANDLES = 6,
|
|
_,
|
|
};
|
|
|
|
pub const ValidationFeaturesEXT = extern struct {
|
|
sType: StructureType = .VALIDATION_FEATURES_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
enabledValidationFeatureCount: u32 = 0,
|
|
pEnabledValidationFeatures: [*]const ValidationFeatureEnableEXT = undefined,
|
|
disabledValidationFeatureCount: u32 = 0,
|
|
pDisabledValidationFeatures: [*]const ValidationFeatureDisableEXT = undefined,
|
|
};
|
|
|
|
|
|
pub const NV_cooperative_matrix = 1;
|
|
pub const NV_COOPERATIVE_MATRIX_SPEC_VERSION = 1;
|
|
pub const NV_COOPERATIVE_MATRIX_EXTENSION_NAME = "VK_NV_cooperative_matrix";
|
|
|
|
pub const ComponentTypeNV = enum(i32) {
|
|
FLOAT16 = 0,
|
|
FLOAT32 = 1,
|
|
FLOAT64 = 2,
|
|
SINT8 = 3,
|
|
SINT16 = 4,
|
|
SINT32 = 5,
|
|
SINT64 = 6,
|
|
UINT8 = 7,
|
|
UINT16 = 8,
|
|
UINT32 = 9,
|
|
UINT64 = 10,
|
|
_,
|
|
};
|
|
|
|
pub const ScopeNV = enum(i32) {
|
|
DEVICE = 1,
|
|
WORKGROUP = 2,
|
|
SUBGROUP = 3,
|
|
QUEUE_FAMILY = 5,
|
|
_,
|
|
};
|
|
|
|
pub const CooperativeMatrixPropertiesNV = extern struct {
|
|
sType: StructureType = .COOPERATIVE_MATRIX_PROPERTIES_NV,
|
|
pNext: ?*anyopaque = null,
|
|
MSize: u32,
|
|
NSize: u32,
|
|
KSize: u32,
|
|
AType: ComponentTypeNV,
|
|
BType: ComponentTypeNV,
|
|
CType: ComponentTypeNV,
|
|
DType: ComponentTypeNV,
|
|
scope: ScopeNV,
|
|
};
|
|
|
|
pub const PhysicalDeviceCooperativeMatrixFeaturesNV = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV,
|
|
pNext: ?*anyopaque = null,
|
|
cooperativeMatrix: Bool32,
|
|
cooperativeMatrixRobustBufferAccess: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDeviceCooperativeMatrixPropertiesNV = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV,
|
|
pNext: ?*anyopaque = null,
|
|
cooperativeMatrixSupportedStages: ShaderStageFlags align(4),
|
|
};
|
|
|
|
pub extern fn vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
|
|
physicalDevice: PhysicalDevice,
|
|
pPropertyCount: *u32,
|
|
pProperties: ?[*]CooperativeMatrixPropertiesNV,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub const GetPhysicalDeviceCooperativeMatrixPropertiesNVResult = struct {
|
|
result: Result,
|
|
properties: []CooperativeMatrixPropertiesNV,
|
|
};
|
|
pub inline fn GetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice: PhysicalDevice, properties: []CooperativeMatrixPropertiesNV) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!GetPhysicalDeviceCooperativeMatrixPropertiesNVResult {
|
|
var returnValues: GetPhysicalDeviceCooperativeMatrixPropertiesNVResult = undefined;
|
|
var propertyCount: u32 = @intCast(u32, properties.len);
|
|
const result = vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, &propertyCount, properties.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.properties = properties[0..propertyCount];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn GetPhysicalDeviceCooperativeMatrixPropertiesCountNV(physicalDevice: PhysicalDevice) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!u32 {
|
|
var out_propertyCount: u32 = undefined;
|
|
const result = vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, &out_propertyCount, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_propertyCount;
|
|
}
|
|
|
|
|
|
pub const NV_coverage_reduction_mode = 1;
|
|
pub const NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION = 1;
|
|
pub const NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME = "VK_NV_coverage_reduction_mode";
|
|
|
|
pub const CoverageReductionModeNV = enum(i32) {
|
|
MERGE = 0,
|
|
TRUNCATE = 1,
|
|
_,
|
|
};
|
|
|
|
pub const PipelineCoverageReductionStateCreateFlagsNV = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const PhysicalDeviceCoverageReductionModeFeaturesNV = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV,
|
|
pNext: ?*anyopaque = null,
|
|
coverageReductionMode: Bool32,
|
|
};
|
|
|
|
pub const PipelineCoverageReductionStateCreateInfoNV = extern struct {
|
|
sType: StructureType = .PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: PipelineCoverageReductionStateCreateFlagsNV align(4) = PipelineCoverageReductionStateCreateFlagsNV{},
|
|
coverageReductionMode: CoverageReductionModeNV,
|
|
};
|
|
|
|
pub const FramebufferMixedSamplesCombinationNV = extern struct {
|
|
sType: StructureType = .FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV,
|
|
pNext: ?*anyopaque = null,
|
|
coverageReductionMode: CoverageReductionModeNV,
|
|
rasterizationSamples: SampleCountFlags align(4),
|
|
depthStencilSamples: SampleCountFlags align(4),
|
|
colorSamples: SampleCountFlags align(4),
|
|
};
|
|
|
|
pub extern fn vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
|
|
physicalDevice: PhysicalDevice,
|
|
pCombinationCount: *u32,
|
|
pCombinations: ?[*]FramebufferMixedSamplesCombinationNV,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub const GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNVResult = struct {
|
|
result: Result,
|
|
combinations: []FramebufferMixedSamplesCombinationNV,
|
|
};
|
|
pub inline fn GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice: PhysicalDevice, combinations: []FramebufferMixedSamplesCombinationNV) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNVResult {
|
|
var returnValues: GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNVResult = undefined;
|
|
var combinationCount: u32 = @intCast(u32, combinations.len);
|
|
const result = vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, &combinationCount, combinations.ptr);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
returnValues.combinations = combinations[0..combinationCount];
|
|
returnValues.result = result;
|
|
return returnValues;
|
|
}
|
|
pub inline fn GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsCountNV(physicalDevice: PhysicalDevice) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!u32 {
|
|
var out_combinationCount: u32 = undefined;
|
|
const result = vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, &out_combinationCount, null);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_combinationCount;
|
|
}
|
|
|
|
|
|
pub const EXT_fragment_shader_interlock = 1;
|
|
pub const EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION = 1;
|
|
pub const EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME = "VK_EXT_fragment_shader_interlock";
|
|
|
|
pub const PhysicalDeviceFragmentShaderInterlockFeaturesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
fragmentShaderSampleInterlock: Bool32,
|
|
fragmentShaderPixelInterlock: Bool32,
|
|
fragmentShaderShadingRateInterlock: Bool32,
|
|
};
|
|
|
|
|
|
pub const EXT_ycbcr_image_arrays = 1;
|
|
pub const EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION = 1;
|
|
pub const EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME = "VK_EXT_ycbcr_image_arrays";
|
|
|
|
pub const PhysicalDeviceYcbcrImageArraysFeaturesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
ycbcrImageArrays: Bool32,
|
|
};
|
|
|
|
|
|
pub const EXT_headless_surface = 1;
|
|
pub const EXT_HEADLESS_SURFACE_SPEC_VERSION = 1;
|
|
pub const EXT_HEADLESS_SURFACE_EXTENSION_NAME = "VK_EXT_headless_surface";
|
|
|
|
pub const HeadlessSurfaceCreateFlagsEXT = packed struct {
|
|
__reserved_bits_00_31: u32 = 0,
|
|
pub usingnamespace FlagsMixin(@This());
|
|
};
|
|
|
|
pub const HeadlessSurfaceCreateInfoEXT = extern struct {
|
|
sType: StructureType = .HEADLESS_SURFACE_CREATE_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
flags: HeadlessSurfaceCreateFlagsEXT align(4) = HeadlessSurfaceCreateFlagsEXT{},
|
|
};
|
|
|
|
pub extern fn vkCreateHeadlessSurfaceEXT(
|
|
instance: Instance,
|
|
pCreateInfo: *const HeadlessSurfaceCreateInfoEXT,
|
|
pAllocator: ?*const AllocationCallbacks,
|
|
pSurface: *SurfaceKHR,
|
|
) callconv(CallConv) Result;
|
|
|
|
pub inline fn CreateHeadlessSurfaceEXT(instance: Instance, createInfo: HeadlessSurfaceCreateInfoEXT, pAllocator: ?*const AllocationCallbacks) error{VK_OUT_OF_HOST_MEMORY,VK_OUT_OF_DEVICE_MEMORY,VK_UNDOCUMENTED_ERROR}!SurfaceKHR {
|
|
var out_surface: SurfaceKHR = undefined;
|
|
const result = vkCreateHeadlessSurfaceEXT(instance, &createInfo, pAllocator, &out_surface);
|
|
if (@bitCast(c_int, result) < 0) {
|
|
return switch (result) {
|
|
.ERROR_OUT_OF_HOST_MEMORY => error.VK_OUT_OF_HOST_MEMORY,
|
|
.ERROR_OUT_OF_DEVICE_MEMORY => error.VK_OUT_OF_DEVICE_MEMORY,
|
|
else => error.VK_UNDOCUMENTED_ERROR,
|
|
};
|
|
}
|
|
return out_surface;
|
|
}
|
|
|
|
|
|
pub const EXT_line_rasterization = 1;
|
|
pub const EXT_LINE_RASTERIZATION_SPEC_VERSION = 1;
|
|
pub const EXT_LINE_RASTERIZATION_EXTENSION_NAME = "VK_EXT_line_rasterization";
|
|
|
|
pub const LineRasterizationModeEXT = enum(i32) {
|
|
DEFAULT = 0,
|
|
RECTANGULAR = 1,
|
|
BRESENHAM = 2,
|
|
RECTANGULAR_SMOOTH = 3,
|
|
_,
|
|
};
|
|
|
|
pub const PhysicalDeviceLineRasterizationFeaturesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
rectangularLines: Bool32,
|
|
bresenhamLines: Bool32,
|
|
smoothLines: Bool32,
|
|
stippledRectangularLines: Bool32,
|
|
stippledBresenhamLines: Bool32,
|
|
stippledSmoothLines: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDeviceLineRasterizationPropertiesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
lineSubPixelPrecisionBits: u32,
|
|
};
|
|
|
|
pub const PipelineRasterizationLineStateCreateInfoEXT = extern struct {
|
|
sType: StructureType = .PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT,
|
|
pNext: ?*const anyopaque = null,
|
|
lineRasterizationMode: LineRasterizationModeEXT,
|
|
stippledLineEnable: Bool32,
|
|
lineStippleFactor: u32 = 0,
|
|
lineStipplePattern: u16 = 0,
|
|
};
|
|
|
|
pub extern fn vkCmdSetLineStippleEXT(
|
|
commandBuffer: CommandBuffer,
|
|
lineStippleFactor: u32,
|
|
lineStipplePattern: u16,
|
|
) callconv(CallConv) void;
|
|
|
|
pub const CmdSetLineStippleEXT = vkCmdSetLineStippleEXT;
|
|
|
|
|
|
pub const EXT_host_query_reset = 1;
|
|
pub const EXT_HOST_QUERY_RESET_SPEC_VERSION = 1;
|
|
pub const EXT_HOST_QUERY_RESET_EXTENSION_NAME = "VK_EXT_host_query_reset";
|
|
|
|
pub const PhysicalDeviceHostQueryResetFeaturesEXT = PhysicalDeviceHostQueryResetFeatures;
|
|
|
|
pub extern fn vkResetQueryPoolEXT(
|
|
device: Device,
|
|
queryPool: QueryPool,
|
|
firstQuery: u32,
|
|
queryCount: u32,
|
|
) callconv(CallConv) void;
|
|
|
|
pub const ResetQueryPoolEXT = vkResetQueryPoolEXT;
|
|
|
|
|
|
pub const EXT_index_type_uint8 = 1;
|
|
pub const EXT_INDEX_TYPE_UINT8_SPEC_VERSION = 1;
|
|
pub const EXT_INDEX_TYPE_UINT8_EXTENSION_NAME = "VK_EXT_index_type_uint8";
|
|
|
|
pub const PhysicalDeviceIndexTypeUint8FeaturesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
indexTypeUint8: Bool32,
|
|
};
|
|
|
|
|
|
pub const EXT_shader_demote_to_helper_invocation = 1;
|
|
pub const EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION = 1;
|
|
pub const EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME = "VK_EXT_shader_demote_to_helper_invocation";
|
|
|
|
pub const PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
shaderDemoteToHelperInvocation: Bool32,
|
|
};
|
|
|
|
|
|
pub const EXT_texel_buffer_alignment = 1;
|
|
pub const EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION = 1;
|
|
pub const EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME = "VK_EXT_texel_buffer_alignment";
|
|
|
|
pub const PhysicalDeviceTexelBufferAlignmentFeaturesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
texelBufferAlignment: Bool32,
|
|
};
|
|
|
|
pub const PhysicalDeviceTexelBufferAlignmentPropertiesEXT = extern struct {
|
|
sType: StructureType = .PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT,
|
|
pNext: ?*anyopaque = null,
|
|
storageTexelBufferOffsetAlignmentBytes: DeviceSize,
|
|
storageTexelBufferOffsetSingleTexelAlignment: Bool32,
|
|
uniformTexelBufferOffsetAlignmentBytes: DeviceSize,
|
|
uniformTexelBufferOffsetSingleTexelAlignment: Bool32,
|
|
};
|
|
|
|
|
|
pub const GOOGLE_user_type = 1;
|
|
pub const GOOGLE_USER_TYPE_SPEC_VERSION = 1;
|
|
pub const GOOGLE_USER_TYPE_EXTENSION_NAME = "VK_GOOGLE_user_type";
|
|
|